From 7cd4a3c5d410f5cb3d4c033dc7be346ee34bac0b Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 15 Apr 2022 13:40:19 +1000 Subject: [PATCH] Decompile cd000253c4 --- src/include/bss.h | 2 +- src/include/lib/collision.h | 2 +- src/lib/collision.c | 51 +++++-------------------------------- 3 files changed, 9 insertions(+), 46 deletions(-) diff --git a/src/include/bss.h b/src/include/bss.h index fdf84ca24..e9a9ddda8 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -39,7 +39,7 @@ extern s32 *var8009a888; extern union filedataptr g_TileFileData; extern s32 g_TileNumRooms; extern u32 *g_TileRooms; -extern u32 var8009a918; +extern struct tiletype2 var8009a918; extern u8 g_RdpDramStack[SP_DRAM_STACK_SIZE8]; extern N_ALSndPlayer var8009c2d0; extern struct var8009c340 var8009c340; diff --git a/src/include/lib/collision.h b/src/include/lib/collision.h index f2dbfa7dd..65802b23a 100644 --- a/src/include/lib/collision.h +++ b/src/include/lib/collision.h @@ -25,7 +25,7 @@ void cd000251ac(struct coord *arg0, struct coord *arg1, struct coord *arg2, stru void cd00025254(struct coord *arg0, struct coord *arg1, struct coord *pos, struct prop *prop, f32 arg4, struct tile *tile); void cd00025314(struct coord *pos, struct coord *arg1); bool cd00025364(struct coord *arg0, struct coord *arg1); -u32 cd000253c4(void); +void cd000253c4(struct tiletype2 *tile); s32 cd00025410(f32 arg0, f32 arg1, f32 arg2, f32 arg3); s32 cd000254d8(struct coord *arg0, struct coord *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 *arg6); f32 cd00025654(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3); diff --git a/src/lib/collision.c b/src/lib/collision.c index 23768a8cc..cdc5abfcc 100644 --- a/src/lib/collision.c +++ b/src/lib/collision.c @@ -35,27 +35,7 @@ struct coord var8009a8f8; s32 var8009a904; struct coord var8009a908; s32 var8009a914; - -u32 var8009a918; -u32 var8009a91c; -u32 var8009a920; -u32 var8009a924; -u32 var8009a928; -u32 var8009a92c; -u32 var8009a930; -u32 var8009a934; -u32 var8009a938; -u32 var8009a93c; -u32 var8009a940; -u32 var8009a944; -u32 var8009a948; -u32 var8009a94c; -u32 var8009a950; -u32 var8009a954; -u32 var8009a958; -u32 var8009a95c; -u32 var8009a960; - +struct tiletype2 var8009a918; struct tile *var8009a964; s32 var8009a968; s32 var8009a96c; @@ -299,29 +279,12 @@ bool cd00025364(struct coord *arg0, struct coord *arg1) return var8009a8f4; } -GLOBAL_ASM( -glabel cd000253c4 -/* 253c4: 3c0e800a */ lui $t6,%hi(var8009a918) -/* 253c8: 25cea918 */ addiu $t6,$t6,%lo(var8009a918) -/* 253cc: 00804025 */ or $t0,$a0,$zero -/* 253d0: 24990048 */ addiu $t9,$a0,0x48 -.L000253d4: -/* 253d4: 8d010000 */ lw $at,0x0($t0) -/* 253d8: 2508000c */ addiu $t0,$t0,0xc -/* 253dc: 25ce000c */ addiu $t6,$t6,0xc -/* 253e0: adc1fff4 */ sw $at,-0xc($t6) -/* 253e4: 8d01fff8 */ lw $at,-0x8($t0) -/* 253e8: adc1fff8 */ sw $at,-0x8($t6) -/* 253ec: 8d01fffc */ lw $at,-0x4($t0) -/* 253f0: 1519fff8 */ bne $t0,$t9,.L000253d4 -/* 253f4: adc1fffc */ sw $at,-0x4($t6) -/* 253f8: 8d010000 */ lw $at,0x0($t0) -/* 253fc: 24090001 */ addiu $t1,$zero,0x1 -/* 25400: adc10000 */ sw $at,0x0($t6) -/* 25404: 3c018006 */ lui $at,%hi(var8005f034) -/* 25408: 03e00008 */ jr $ra -/* 2540c: ac29f034 */ sw $t1,%lo(var8005f034)($at) -); +void cd000253c4(struct tiletype2 *tile) +{ + var8009a918 = *tile; + + var8005f034 = true; +} s32 cd00025410(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {