From 5f0721276ca414d8bdae6913a4d29b7c77b2ef6f Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 26 Jan 2020 21:38:13 +1000 Subject: [PATCH] Decompile padUnsetFlag --- src/game/game_115ab0.c | 27 +++++++++------------------ src/game/game_1999b0.c | 2 +- src/include/game/game_115ab0.h | 2 +- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/game/game_115ab0.c b/src/game/game_115ab0.c index 4e296e189..ca757db1e 100644 --- a/src/game/game_115ab0.c +++ b/src/game/game_115ab0.c @@ -1064,25 +1064,16 @@ void padSetFlag(s32 padnum, u32 flag) *header = *header ^ ((*header >> 14) ^ ((*header >> 14) | flag)) << 14; } +void padUnsetFlag(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 -/* f116280: 3c0e800a */ lui $t6,0x800a -/* f116284: 8dce2354 */ lw $t6,0x2354($t6) -/* f116288: 00047840 */ sll $t7,$a0,0x1 -/* f11628c: 3c19800a */ lui $t9,0x800a -/* f116290: 01cfc021 */ addu $t8,$t6,$t7 -/* f116294: 97020000 */ lhu $v0,0x0($t8) -/* f116298: 8f39d04c */ lw $t9,-0x2fb4($t9) -/* f11629c: 00a04027 */ nor $t0,$a1,$zero -/* f1162a0: 03221821 */ addu $v1,$t9,$v0 -/* f1162a4: 8c660000 */ lw $a2,0x0($v1) -/* f1162a8: 00063b82 */ srl $a3,$a2,0xe -/* f1162ac: 00e84824 */ and $t1,$a3,$t0 -/* f1162b0: 01275026 */ xor $t2,$t1,$a3 -/* f1162b4: 000a5b80 */ sll $t3,$t2,0xe -/* f1162b8: 01666026 */ xor $t4,$t3,$a2 -/* f1162bc: 03e00008 */ jr $ra -/* f1162c0: ac6c0000 */ sw $t4,0x0($v1) +glabel func0f1162c4 /* f1162c4: afa50004 */ sw $a1,0x4($sp) /* f1162c8: 03e00008 */ jr $ra /* f1162cc: 00801025 */ or $v0,$a0,$zero diff --git a/src/game/game_1999b0.c b/src/game/game_1999b0.c index e72fe59a3..a08b54632 100644 --- a/src/game/game_1999b0.c +++ b/src/game/game_1999b0.c @@ -1498,7 +1498,7 @@ glabel func0f19ab70 /* f19ad44: 0581000a */ bgez $t4,.L0f19ad70 /* f19ad48: 27aa00b4 */ addiu $t2,$sp,0xb4 /* f19ad4c: 8e240000 */ lw $a0,0x0($s1) -/* f19ad50: 0fc458a0 */ jal func0f116280 +/* f19ad50: 0fc458a0 */ jal padUnsetFlag /* f19ad54: 01aa8021 */ addu $s0,$t5,$t2 /* f19ad58: 8e2e0000 */ lw $t6,0x0($s1) /* f19ad5c: 26b50001 */ addiu $s5,$s5,0x1 diff --git a/src/include/game/game_115ab0.h b/src/include/game/game_115ab0.h index 76c38e34d..e7fa8599b 100644 --- a/src/include/game/game_115ab0.h +++ b/src/include/game/game_115ab0.h @@ -9,7 +9,7 @@ void padGetCentre(s32 padnum, struct coord *coord); u32 func0f116068(void); void padCopyBboxFromPad(s32 padnum, struct pad *src); void padSetFlag(s32 padnum, u32 flag); -u32 func0f116280(void); +void padUnsetFlag(s32 padnum, u32 flag); u32 func0f1162d0(void); u32 func0f1162e0(s16 cover, struct coord **pos); u32 func0f11645c(void);