Decompile modelSetDistanceChecksDisabled

This commit is contained in:
Ryan Dwyer 2021-04-30 11:19:09 +10:00
parent 69d8005b89
commit 209a9aeb16
5 changed files with 26 additions and 29 deletions

View File

@ -7876,7 +7876,7 @@ glabel var7f1a99ecpf
/* f023ea8: 10400004 */ beqz $v0,.PF0f023ebc
/* f023eac: 3c013ea0 */ lui $at,0x3ea0
/* f023eb0: 44816000 */ mtc1 $at,$f12
/* f023eb4: 0c0068a7 */ jal func0001a50c
/* f023eb4: 0c0068a7 */ jal modelSetDistanceScale
/* f023eb8: 00000000 */ nop
.PF0f023ebc:
/* f023ebc: 3c0a7f02 */ lui $t2,0x7f02
@ -8185,7 +8185,7 @@ glabel var7f1a99ecpf
.PF0f024334:
/* f024334: ac20ec74 */ sw $zero,-0x138c($at)
/* f024338: 3c018006 */ lui $at,0x8006
/* f02433c: 0c0068a7 */ jal func0001a50c
/* f02433c: 0c0068a7 */ jal modelSetDistanceScale
/* f024340: c42c26c8 */ lwc1 $f12,0x26c8($at)
/* f024344: 8fab01f0 */ lw $t3,0x1f0($sp)
/* f024348: 260400f8 */ addiu $a0,$s0,0xf8
@ -9314,7 +9314,7 @@ glabel var7f1a87d8
/* f023d84: 10400004 */ beqz $v0,.L0f023d98
/* f023d88: 3c013ea0 */ lui $at,0x3ea0
/* f023d8c: 44816000 */ mtc1 $at,$f12
/* f023d90: 0c006943 */ jal func0001a50c
/* f023d90: 0c006943 */ jal modelSetDistanceScale
/* f023d94: 00000000 */ nop
.L0f023d98:
/* f023d98: 3c0c7f02 */ lui $t4,%hi(func0f02152c)
@ -9623,7 +9623,7 @@ glabel var7f1a87d8
.L0f024210:
/* f024210: ac20efcc */ sw $zero,%lo(var8005efcc)($at)
/* f024214: 3c018006 */ lui $at,%hi(var800629e8)
/* f024218: 0c006943 */ jal func0001a50c
/* f024218: 0c006943 */ jal modelSetDistanceScale
/* f02421c: c42c29e8 */ lwc1 $f12,%lo(var800629e8)($at)
/* f024220: 8fad01f0 */ lw $t5,0x1f0($sp)
/* f024224: 260400f8 */ addiu $a0,$s0,0xf8
@ -10693,7 +10693,7 @@ glabel var7f1a87d8
/* f02379c: 10400004 */ beqz $v0,.NB0f0237b0
/* f0237a0: 3c013ea0 */ lui $at,0x3ea0
/* f0237a4: 44816000 */ mtc1 $at,$f12
/* f0237a8: 0c006d9f */ jal func0001a50c
/* f0237a8: 0c006d9f */ jal modelSetDistanceScale
/* f0237ac: 00000000 */ sll $zero,$zero,0x0
.NB0f0237b0:
/* f0237b0: 3c0e7f02 */ lui $t6,0x7f02
@ -11002,7 +11002,7 @@ glabel var7f1a87d8
.NB0f023c28:
/* f023c28: ac20139c */ sw $zero,0x139c($at)
/* f023c2c: 3c018006 */ lui $at,0x8006
/* f023c30: 0c006d9f */ jal func0001a50c
/* f023c30: 0c006d9f */ jal modelSetDistanceScale
/* f023c34: c42c4ef8 */ lwc1 $f12,0x4ef8($at)
/* f023c38: 8faa01f0 */ lw $t2,0x1f0($sp)
/* f023c3c: 260400f8 */ addiu $a0,$s0,0xf8

View File

@ -55,8 +55,8 @@ extern u32 var8005ef40;
extern u32 var8005ef5c;
extern u32 var8005ef7c;
extern u32 var8005ef90;
extern u32 var8005efb4;
extern f32 var8005efb8;
extern bool g_ModelDistanceDisabled;
extern f32 g_ModelDistanceScale;
extern bool var8005efbc;
extern u32 var8005efc0;
extern bool (*var8005efc4)(struct model *model, struct modelnode *node);

View File

@ -4,8 +4,7 @@
#include "data.h"
#include "types.h"
u32 func0001a500(void);
void func0001a50c(f32 value);
void modelSetDistanceScale(f32 value);
void func0001a518(void *callback);
s32 func0001a524(struct modelnode *node, s32 arg1);
Mtxf *func0001a5cc(struct model *model, struct modelnode *node, s32 arg2);

View File

@ -50,8 +50,8 @@ u32 var8005efb0 = 0x00000000;
u32 var8005efb0_2 = 0;
#endif
u32 var8005efb4 = 0x00000000;
f32 var8005efb8 = 1;
bool g_ModelDistanceDisabled = false;
f32 g_ModelDistanceScale = 1;
bool var8005efbc = false;
u32 var8005efc0 = 0x00000000;
bool (*var8005efc4)(struct model *model, struct modelnode *node) = NULL;
@ -821,8 +821,8 @@ glabel func00018680
/* 1900c: 0000000c */ syscall
/* 19010: 0c006897 */ jal func0001a25c
/* 19014: 001c4020 */ add $t0,$zero,$gp
/* 19018: 3c0a8006 */ lui $t2,%hi(var8005efb4)
/* 1901c: 254aefb4 */ addiu $t2,$t2,%lo(var8005efb4)
/* 19018: 3c0a8006 */ lui $t2,%hi(g_ModelDistanceDisabled)
/* 1901c: 254aefb4 */ addiu $t2,$t2,%lo(g_ModelDistanceDisabled)
/* 19020: 0c006747 */ jal func00019d1c
/* 19024: 8f890004 */ lw $t1,0x4($gp)
/* 19028: 8d4a0000 */ lw $t2,0x0($t2)
@ -837,8 +837,8 @@ glabel func00018680
/* 1904c: 46000007 */ neg.s $f0,$f0
/* 19050: c5411774 */ lwc1 $f1,0x1774($t2)
/* 19054: 46010002 */ mul.s $f0,$f0,$f1
/* 19058: 3c088006 */ lui $t0,%hi(var8005efb8)
/* 1905c: 2508efb8 */ addiu $t0,$t0,%lo(var8005efb8)
/* 19058: 3c088006 */ lui $t0,%hi(g_ModelDistanceScale)
/* 1905c: 2508efb8 */ addiu $t0,$t0,%lo(g_ModelDistanceScale)
/* 19060: c5010000 */ lwc1 $f1,0x0($t0)
/* 19064: 46010002 */ mul.s $f0,$f0,$f1
.L00019068:

View File

@ -18,16 +18,14 @@
#include "data.h"
#include "types.h"
GLOBAL_ASM(
glabel func0001a500
/* 1a500: 3c018006 */ lui $at,%hi(var8005efb4)
/* 1a504: 03e00008 */ jr $ra
/* 1a508: ac24efb4 */ sw $a0,%lo(var8005efb4)($at)
);
void func0001a50c(f32 value)
void modelSetDistanceChecksDisabled(bool disabled)
{
var8005efb8 = value;
g_ModelDistanceDisabled = disabled;
}
void modelSetDistanceScale(f32 scale)
{
g_ModelDistanceScale = scale;
}
void func0001a518(void *callback)
@ -2748,7 +2746,7 @@ glabel func0001c5b4
);
/**
* For a near/far node, set its target to visible based on distance.
* For a distance node, set its target to visible based on distance.
*/
void func0001c664(struct model *model, struct modelnode *node)
{
@ -2757,13 +2755,13 @@ void func0001c664(struct model *model, struct modelnode *node)
Mtxf *mtx = func0001a5cc(model, node, 0);
f32 distance;
if (var8005efb4 || !mtx) {
if (g_ModelDistanceDisabled || !mtx) {
distance = 0;
} else {
distance = -mtx->m[3][2] * currentPlayerGetLodScaleZ();
if (var8005efb8 != 1) {
distance *= var8005efb8;
if (g_ModelDistanceScale != 1) {
distance *= g_ModelDistanceScale;
}
}