Decompile propUpdateGeometry

This commit is contained in:
Ryan Dwyer 2021-01-07 12:30:30 +10:00
parent 92fad46faf
commit 604d24e71f
7 changed files with 34 additions and 60 deletions

View File

@ -6763,43 +6763,17 @@ void propGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin)
}
}
GLOBAL_ASM(
glabel func0f066290
/* f066290: 27bdffe8 */ addiu $sp,$sp,-24
/* f066294: afbf0014 */ sw $ra,0x14($sp)
/* f066298: 90820000 */ lbu $v0,0x0($a0)
/* f06629c: 24010006 */ addiu $at,$zero,0x6
/* f0662a0: 00001825 */ or $v1,$zero,$zero
/* f0662a4: 54410006 */ bnel $v0,$at,.L0f0662c0
/* f0662a8: 24010003 */ addiu $at,$zero,0x3
/* f0662ac: 0fc307c2 */ jal func0f0c1f08
/* f0662b0: 00000000 */ nop
/* f0662b4: 10000010 */ b .L0f0662f8
/* f0662b8: 00401825 */ or $v1,$v0,$zero
/* f0662bc: 24010003 */ addiu $at,$zero,0x3
.L0f0662c0:
/* f0662c0: 54410006 */ bnel $v0,$at,.L0f0662dc
/* f0662c4: 24010001 */ addiu $at,$zero,0x1
/* f0662c8: 0fc0a234 */ jal chrUpdateGeometry
/* f0662cc: 00000000 */ nop
/* f0662d0: 10000009 */ b .L0f0662f8
/* f0662d4: 00401825 */ or $v1,$v0,$zero
/* f0662d8: 24010001 */ addiu $at,$zero,0x1
.L0f0662dc:
/* f0662dc: 10410003 */ beq $v0,$at,.L0f0662ec
/* f0662e0: 24010002 */ addiu $at,$zero,0x2
/* f0662e4: 54410005 */ bnel $v0,$at,.L0f0662fc
/* f0662e8: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0662ec:
/* f0662ec: 0fc21d16 */ jal func0f087458
/* f0662f0: 00000000 */ nop
/* f0662f4: 00401825 */ or $v1,$v0,$zero
.L0f0662f8:
/* f0662f8: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0662fc:
/* f0662fc: 27bd0018 */ addiu $sp,$sp,0x18
/* f066300: 00601025 */ or $v0,$v1,$zero
/* f066304: 03e00008 */ jr $ra
/* f066308: 00000000 */ nop
/* f06630c: 00000000 */ nop
);
bool propUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2)
{
bool result = false;
if (prop->type == PROPTYPE_PLAYER) {
result = playerUpdateGeometry(prop, arg1, arg2);
} else if (prop->type == PROPTYPE_CHR) {
result = chrUpdateGeometry(prop, arg1, arg2);
} else if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_DOOR) {
result = objUpdateGeometry(prop, arg1, arg2);
}
return result;
}

View File

@ -10643,7 +10643,7 @@ void func0f0c1e54(struct prop *prop, bool enable)
g_Vars.players[playernum]->bondperimenabled = enable;
}
bool func0f0c1f08(struct prop *prop, struct geo **arg1, struct geo **arg2)
bool playerUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2)
{
s32 playernum = propGetPlayerNum(prop);

View File

@ -2637,7 +2637,7 @@ glabel func0f068218
/* f068270: 1040000d */ beqz $v0,.L0f0682a8
/* f068274: 02002025 */ or $a0,$s0,$zero
/* f068278: 02602825 */ or $a1,$s3,$zero
/* f06827c: 0fc198a4 */ jal func0f066290
/* f06827c: 0fc198a4 */ jal propUpdateGeometry
/* f068280: 02803025 */ or $a2,$s4,$zero
/* f068284: 10400008 */ beqz $v0,.L0f0682a8
/* f068288: 8fa60038 */ lw $a2,0x38($sp)
@ -5355,7 +5355,7 @@ glabel var7f1aa200
/* f06aa24: 8c440014 */ lw $a0,0x14($v0)
/* f06aa28: e7ae00bc */ swc1 $f14,0xbc($sp)
/* f06aa2c: 27a5003c */ addiu $a1,$sp,0x3c
/* f06aa30: 0fc198a4 */ jal func0f066290
/* f06aa30: 0fc198a4 */ jal propUpdateGeometry
/* f06aa34: 27a60038 */ addiu $a2,$sp,0x38
/* f06aa38: 10400027 */ beqz $v0,.L0f06aad8
/* f06aa3c: c7ae00bc */ lwc1 $f14,0xbc($sp)
@ -14941,7 +14941,7 @@ glabel func0f0732d4
/* f073300: afb1001c */ sw $s1,0x1c($sp)
/* f073304: afb00018 */ sw $s0,0x18($sp)
/* f073308: 27a5009c */ addiu $a1,$sp,0x9c
/* f07330c: 0fc198a4 */ jal func0f066290
/* f07330c: 0fc198a4 */ jal propUpdateGeometry
/* f073310: 27a60098 */ addiu $a2,$sp,0x98
/* f073314: 1040004c */ beqz $v0,.L0f073448
/* f073318: 27b000a0 */ addiu $s0,$sp,0xa0
@ -28258,7 +28258,7 @@ s32 objTick(struct prop *prop)
f32 sp112;
s32 tagnum;
struct geo *geos[2];
u32 sp96;
struct geo *sp96;
f32 damage;
if (sp572) {
@ -28330,7 +28330,7 @@ s32 objTick(struct prop *prop)
func0f069c70(obj, true, true);
sp592 = true;
if (func0f087458(prop, geos, &sp96)
if (objUpdateGeometry(prop, geos, &sp96)
&& geos[0]->type == GEOTYPE_2
&& func0002e4c4(geos[0], prop->rooms, 4) == 0) {
damage = ((obj->maxdamage - obj->damage) + 1) / 250.0f;
@ -34997,7 +34997,7 @@ glabel func0f0840ac
/* f0840d4: afb10018 */ sw $s1,0x18($sp)
/* f0840d8: afb00014 */ sw $s0,0x14($sp)
/* f0840dc: 27a5004c */ addiu $a1,$sp,0x4c
/* f0840e0: 0fc198a4 */ jal func0f066290
/* f0840e0: 0fc198a4 */ jal propUpdateGeometry
/* f0840e4: 27a60048 */ addiu $a2,$sp,0x48
/* f0840e8: 10400031 */ beqz $v0,.L0f0841b0
/* f0840ec: 27b00050 */ addiu $s0,$sp,0x50
@ -38360,7 +38360,7 @@ void propObjSetOrUnsetHiddenFlag00400000(struct prop *prop, bool enable)
}
GLOBAL_ASM(
glabel func0f087458
glabel objUpdateGeometry
/* f087458: 8c830004 */ lw $v1,0x4($a0)
/* f08745c: 8c670044 */ lw $a3,0x44($v1)
/* f087460: 50e0003e */ beqzl $a3,.L0f08755c

View File

@ -58,6 +58,6 @@ void func0f065e98(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2
void roomGetProps(s16 *room, s16 *propnums, u32 size);
u32 func0f066054(void);
void propGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
u32 func0f066290(void);
bool propUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
#endif

View File

@ -74,7 +74,7 @@ void func0f0c1ba4(struct coord *pos, struct coord *up, struct coord *look, struc
void func0f0c1bd8(struct coord *pos, struct coord *up, struct coord *look);
void allPlayersClearMemCamRoom(void);
void func0f0c1e54(struct prop *prop, bool enable);
bool func0f0c1f08(struct prop *prop, struct geo **arg1, struct geo **arg2);
bool playerUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
void currentPlayerUpdatePerimInfo(void);
void propPlayerGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
f32 currentPlayerGetHealthFrac(void);

View File

@ -243,7 +243,7 @@ u32 func0f0869cc(void);
bool currentPlayerTryMountHoverbike(struct prop *prop);
bool propobjInteract(struct prop *prop);
void propObjSetOrUnsetHiddenFlag00400000(struct prop *prop, bool enable);
bool func0f087458(struct prop *prop, struct geo **geos, u32 *arg2);
bool objUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
void propObjGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
void ammotypeGetPickedUpText(char *dst);
void ammotypeGetDeterminer(char *dst, s32 ammotype, s32 qty);

View File

@ -3707,7 +3707,7 @@ glabel platformGetRidingProps
/* 26750: afa40278 */ sw $a0,0x278($sp)
/* 26754: afa0005c */ sw $zero,0x5c($sp)
/* 26758: 27a60270 */ addiu $a2,$sp,0x270
/* 2675c: 0fc198a4 */ jal func0f066290
/* 2675c: 0fc198a4 */ jal propUpdateGeometry
/* 26760: 27a50274 */ addiu $a1,$sp,0x274
/* 26764: 10400095 */ beqz $v0,.L000269bc
/* 26768: 27b0006c */ addiu $s0,$sp,0x6c
@ -4298,7 +4298,7 @@ glabel func00026e7c
/* 26fd8: 27a60278 */ addiu $a2,$sp,0x278
/* 26fdc: 00007812 */ mflo $t7
/* 26fe0: 01f88021 */ addu $s0,$t7,$t8
/* 26fe4: 0fc198a4 */ jal func0f066290
/* 26fe4: 0fc198a4 */ jal propUpdateGeometry
/* 26fe8: 02002025 */ or $a0,$s0,$zero
/* 26fec: 1040000e */ beqz $v0,.L00027028
/* 26ff0: 03c02025 */ or $a0,$s8,$zero
@ -5326,7 +5326,7 @@ glabel func00027d1c
/* 27ea8: 10400019 */ beqz $v0,.L00027f10
/* 27eac: 02002025 */ or $a0,$s0,$zero
/* 27eb0: 27a5029c */ addiu $a1,$sp,0x29c
/* 27eb4: 0fc198a4 */ jal func0f066290
/* 27eb4: 0fc198a4 */ jal propUpdateGeometry
/* 27eb8: 27a60298 */ addiu $a2,$sp,0x298
/* 27ebc: 10400014 */ beqz $v0,.L00027f10
/* 27ec0: 03c02025 */ or $a0,$s8,$zero
@ -6492,7 +6492,7 @@ glabel func00028df0
/* 28f6c: 10400012 */ beqz $v0,.L00028fb8
/* 28f70: 02002025 */ or $a0,$s0,$zero
/* 28f74: 27a50294 */ addiu $a1,$sp,0x294
/* 28f78: 0fc198a4 */ jal func0f066290
/* 28f78: 0fc198a4 */ jal propUpdateGeometry
/* 28f7c: 27a60290 */ addiu $a2,$sp,0x290
/* 28f80: 1040000d */ beqz $v0,.L00028fb8
/* 28f84: 8fa40294 */ lw $a0,0x294($sp)
@ -11126,7 +11126,7 @@ glabel func0002d15c
/* 2d304: 10400017 */ beqz $v0,.L0002d364
/* 2d308: 02202025 */ or $a0,$s1,$zero
/* 2d30c: 27a5028c */ addiu $a1,$sp,0x28c
/* 2d310: 0fc198a4 */ jal func0f066290
/* 2d310: 0fc198a4 */ jal propUpdateGeometry
/* 2d314: 27a60288 */ addiu $a2,$sp,0x288
/* 2d318: 10400012 */ beqz $v0,.L0002d364
/* 2d31c: 8fa4028c */ lw $a0,0x28c($sp)
@ -11310,7 +11310,7 @@ glabel func0002d3b0
/* 2d5b0: 10400029 */ beqz $v0,.L0002d658
/* 2d5b4: 02002025 */ or $a0,$s0,$zero
/* 2d5b8: 02e02825 */ or $a1,$s7,$zero
/* 2d5bc: 0fc198a4 */ jal func0f066290
/* 2d5bc: 0fc198a4 */ jal propUpdateGeometry
/* 2d5c0: 03c03025 */ or $a2,$s8,$zero
/* 2d5c4: 10400024 */ beqz $v0,.L0002d658
/* 2d5c8: 8fa402d4 */ lw $a0,0x2d4($sp)
@ -11998,7 +11998,7 @@ glabel func0002ded8
/* 2df2c: 46083281 */ sub.s $f10,$f6,$f8
/* 2df30: afa70094 */ sw $a3,0x94($sp)
/* 2df34: 27a5008c */ addiu $a1,$sp,0x8c
/* 2df38: 0fc198a4 */ jal func0f066290
/* 2df38: 0fc198a4 */ jal propUpdateGeometry
/* 2df3c: e7aa0084 */ swc1 $f10,0x84($sp)
/* 2df40: 10400028 */ beqz $v0,.L0002dfe4
/* 2df44: 8fa70094 */ lw $a3,0x94($sp)
@ -12484,7 +12484,7 @@ glabel func0002e4c4
/* 2e5f8: 10400010 */ beqz $v0,.L0002e63c
/* 2e5fc: 02202025 */ or $a0,$s1,$zero
/* 2e600: 02a02825 */ or $a1,$s5,$zero
/* 2e604: 0fc198a4 */ jal func0f066290
/* 2e604: 0fc198a4 */ jal propUpdateGeometry
/* 2e608: 02c03025 */ or $a2,$s6,$zero
/* 2e60c: 1040000b */ beqz $v0,.L0002e63c
/* 2e610: 8fa4025c */ lw $a0,0x25c($sp)
@ -13356,7 +13356,7 @@ glabel func0002f02c
/* 2f258: 02002025 */ or $a0,$s0,$zero
/* 2f25c: 03c02825 */ or $a1,$s8,$zero
/* 2f260: 27a60338 */ addiu $a2,$sp,0x338
/* 2f264: 0fc198a4 */ jal func0f066290
/* 2f264: 0fc198a4 */ jal propUpdateGeometry
/* 2f268: afa9012c */ sw $t1,0x12c($sp)
/* 2f26c: 1040000d */ beqz $v0,.L0002f2a4
/* 2f270: 8fa9012c */ lw $t1,0x12c($sp)