From a91dc185b7096ca6adec92e5bd647230fc0c4f7a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 26 Jan 2020 21:36:19 +1000 Subject: [PATCH] Decompile padSetFlag --- src/game/game_115ab0.c | 26 +++++++------------------- src/game/game_187770.c | 2 +- src/include/game/game_115ab0.h | 2 +- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/game/game_115ab0.c b/src/game/game_115ab0.c index e2f0a368e..4e296e189 100644 --- a/src/game/game_115ab0.c +++ b/src/game/game_115ab0.c @@ -1056,25 +1056,13 @@ void padCopyBboxFromPad(s32 padnum, struct pad *src) } } -GLOBAL_ASM( -glabel func0f116240 -/* f116240: 3c0e800a */ lui $t6,0x800a -/* f116244: 8dce2354 */ lw $t6,0x2354($t6) -/* f116248: 00047840 */ sll $t7,$a0,0x1 -/* f11624c: 3c19800a */ lui $t9,0x800a -/* f116250: 01cfc021 */ addu $t8,$t6,$t7 -/* f116254: 97020000 */ lhu $v0,0x0($t8) -/* f116258: 8f39d04c */ lw $t9,-0x2fb4($t9) -/* f11625c: 03221821 */ addu $v1,$t9,$v0 -/* f116260: 8c660000 */ lw $a2,0x0($v1) -/* f116264: 00063b82 */ srl $a3,$a2,0xe -/* f116268: 00e54025 */ or $t0,$a3,$a1 -/* f11626c: 01074826 */ xor $t1,$t0,$a3 -/* f116270: 00095380 */ sll $t2,$t1,0xe -/* f116274: 01465826 */ xor $t3,$t2,$a2 -/* f116278: 03e00008 */ jr $ra -/* f11627c: ac6b0000 */ sw $t3,0x0($v1) -); +void padSetFlag(s32 padnum, u32 flag) +{ + u32 offset = g_PadOffsets[padnum]; + u32 *header = (u32 *)&g_StageSetup.padfiledata[offset]; + + *header = *header ^ ((*header >> 14) ^ ((*header >> 14) | flag)) << 14; +} GLOBAL_ASM( glabel func0f116280 diff --git a/src/game/game_187770.c b/src/game/game_187770.c index dd05d255c..dc8f528e3 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -17188,7 +17188,7 @@ glabel func0f194b40 /* f196a38: 86440048 */ lh $a0,0x48($s2) /* f196a3c: 04820006 */ bltzl $a0,.L0f196a58 /* f196a40: 8644004a */ lh $a0,0x4a($s2) -/* f196a44: 0fc45890 */ jal func0f116240 +/* f196a44: 0fc45890 */ jal padSetFlag /* f196a48: 3c050002 */ lui $a1,0x2 /* f196a4c: 10000007 */ beqz $zero,.L0f196a6c /* f196a50: 828a0007 */ lb $t2,0x7($s4) diff --git a/src/include/game/game_115ab0.h b/src/include/game/game_115ab0.h index 9e45af5d1..76c38e34d 100644 --- a/src/include/game/game_115ab0.h +++ b/src/include/game/game_115ab0.h @@ -8,7 +8,7 @@ bool padHasBboxData(s32 padnum); void padGetCentre(s32 padnum, struct coord *coord); u32 func0f116068(void); void padCopyBboxFromPad(s32 padnum, struct pad *src); -u32 func0f116240(void); +void padSetFlag(s32 padnum, u32 flag); u32 func0f116280(void); u32 func0f1162d0(void); u32 func0f1162e0(s16 cover, struct coord **pos);