From 339436b8ed1d84e7509fb71555f2dd01cf63602b Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 21 Mar 2020 14:13:07 +1000 Subject: [PATCH] Decompile func0f1a0c30 --- src/game/game_19c990.c | 54 +++++++--------------------------- src/include/game/game_19c990.h | 2 +- src/include/types.h | 3 +- 3 files changed, 14 insertions(+), 45 deletions(-) diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 6cf0ee58d..85f2f6123 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -4934,49 +4934,17 @@ glabel func0f1a0a70 /* f1a0c2c: 27bd0060 */ addiu $sp,$sp,0x60 ); -GLOBAL_ASM( -glabel func0f1a0c30 -/* f1a0c30: 3c03800b */ lui $v1,%hi(g_FiringRangeData) -/* f1a0c34: 2463cd20 */ addiu $v1,$v1,%lo(g_FiringRangeData) -/* f1a0c38: 806e0464 */ lb $t6,0x464($v1) -/* f1a0c3c: 27bdffe8 */ addiu $sp,$sp,-24 -/* f1a0c40: afbf0014 */ sw $ra,0x14($sp) -/* f1a0c44: 19c0000a */ blez $t6,.L0f1a0c70 -/* f1a0c48: 3c18800a */ lui $t8,%hi(g_Vars+0x284) -/* f1a0c4c: 90620465 */ lbu $v0,0x465($v1) -/* f1a0c50: 24010002 */ addiu $at,$zero,0x2 -/* f1a0c54: 00027942 */ srl $t7,$v0,0x5 -/* f1a0c58: 11e10003 */ beq $t7,$at,.L0f1a0c68 -/* f1a0c5c: 24010003 */ addiu $at,$zero,0x3 -/* f1a0c60: 15e10003 */ bne $t7,$at,.L0f1a0c70 -/* f1a0c64: 00000000 */ sll $zero,$zero,0x0 -.L0f1a0c68: -/* f1a0c68: 10000011 */ beqz $zero,.L0f1a0cb0 -/* f1a0c6c: 24020001 */ addiu $v0,$zero,0x1 -.L0f1a0c70: -/* f1a0c70: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8) -/* f1a0c74: 8f1900bc */ lw $t9,0xbc($t8) -/* f1a0c78: 87220028 */ lh $v0,0x28($t9) -/* f1a0c7c: 3848000a */ xori $t0,$v0,0xa -/* f1a0c80: 2d020001 */ sltiu $v0,$t0,0x1 -/* f1a0c84: 5040000b */ beqzl $v0,.L0f1a0cb4 -/* f1a0c88: 8fbf0014 */ lw $ra,0x14($sp) -/* f1a0c8c: 3c028009 */ lui $v0,%hi(var80088804) -/* f1a0c90: 90428804 */ lbu $v0,%lo(var80088804)($v0) -/* f1a0c94: 0002482b */ sltu $t1,$zero,$v0 -/* f1a0c98: 11200005 */ beqz $t1,.L0f1a0cb0 -/* f1a0c9c: 01201025 */ or $v0,$t1,$zero -/* f1a0ca0: 0c003a61 */ jal getCurrentStageId -/* f1a0ca4: 00000000 */ sll $zero,$zero,0x0 -/* f1a0ca8: 384a0026 */ xori $t2,$v0,0x26 -/* f1a0cac: 2d420001 */ sltiu $v0,$t2,0x1 -.L0f1a0cb0: -/* f1a0cb0: 8fbf0014 */ lw $ra,0x14($sp) -.L0f1a0cb4: -/* f1a0cb4: 27bd0018 */ addiu $sp,$sp,0x18 -/* f1a0cb8: 03e00008 */ jr $ra -/* f1a0cbc: 00000000 */ sll $zero,$zero,0x0 -); +s32 func0f1a0c30(void) +{ + if (g_FiringRangeData.unk464 > 0 && + (g_FiringRangeData.unk465 == 2 || g_FiringRangeData.unk465 == 3)) { + return true; + } + + return g_Vars.currentplayer->prop->rooms[0] == CIROOM_FIRINGRANGE + && var80088804 + && getCurrentStageId() == STAGE_CITRAINING; +} GLOBAL_ASM( glabel func0f1a0cc0 diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index d134e70fe..0aaedfe9b 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -54,7 +54,7 @@ u32 func0f19f524(void); void func0f19f994(void); u32 func0f1a0924(void); u32 func0f1a0a70(void); -u32 func0f1a0c30(void); +s32 func0f1a0c30(void); u32 func0f1a0cc0(void); u32 func0f1a0fc8(void); bool ciIsChrBioUnlocked(u32 bodynum); diff --git a/src/include/types.h b/src/include/types.h index 9075f10ee..b316698db 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5617,7 +5617,8 @@ struct frdata { /*0x45e*/ u16 numhitstype2; /*0x460*/ u16 numhitstype3; /*0x462*/ u16 numhitstype4; - /*0x464*/ u32 unk464; + /*0x464*/ s8 unk464; + /*0x464*/ u8 unk465 : 3; /*0x468*/ u32 unk468; /*0x46c*/ u32 unk46c; /*0x470*/ u32 unk470;