diff --git a/src/game/game_015010.c b/src/game/game_015010.c index 5fe07d6a5..0271c80e7 100644 --- a/src/game/game_015010.c +++ b/src/game/game_015010.c @@ -43,7 +43,7 @@ void func0f015010(void) case OBJTYPE_HOVERCAR: case OBJTYPE_CHOPPER: case OBJTYPE_ESCASTEP: - func0f06b34c(ptr, 1); + func0f06b34c(ptr, true); break; case OBJTYPE_DOORSCALE: case OBJTYPE_CHR: diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 4d79a6e41..524b62e38 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -12403,7 +12403,7 @@ void func0f09fa20(s32 handnum) struct hand *hand = &g_Vars.currentplayer->hands[handnum]; if (hand->rocket) { - func0f06b34c(hand->rocket, 1); + func0f06b34c(hand->rocket, true); hand->rocket = NULL; } } diff --git a/src/game/propobj.c b/src/game/propobj.c index de192f054..bcd0e5638 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -75927,45 +75927,22 @@ void alarmTick(void) var80069910 = 0; } -GLOBAL_ASM( -glabel func0f091030 -/* f091030: 3c02800a */ lui $v0,%hi(g_Vars+0x33c) -/* f091034: 8c42a2fc */ lw $v0,%lo(g_Vars+0x33c)($v0) -/* f091038: 27bdffe8 */ addiu $sp,$sp,-24 -/* f09103c: afbf0014 */ sw $ra,0x14($sp) -/* f091040: 10400016 */ beqz $v0,.L0f09109c -/* f091044: 24050001 */ addiu $a1,$zero,0x1 -/* f091048: 904e0000 */ lbu $t6,0x0($v0) -.L0f09104c: -/* f09104c: 54ae0011 */ bnel $a1,$t6,.L0f091094 -/* f091050: 8c420020 */ lw $v0,0x20($v0) -/* f091054: 904f0001 */ lbu $t7,0x1($v0) -/* f091058: 31f800c2 */ andi $t8,$t7,0xc2 -/* f09105c: 5700000d */ bnezl $t8,.L0f091094 -/* f091060: 8c420020 */ lw $v0,0x20($v0) -/* f091064: 8c440004 */ lw $a0,0x4($v0) -/* f091068: 90830002 */ lbu $v1,0x2($a0) -/* f09106c: 30790040 */ andi $t9,$v1,0x40 -/* f091070: 13200007 */ beqz $t9,.L0f091090 -/* f091074: 30680080 */ andi $t0,$v1,0x80 -/* f091078: 51000006 */ beqzl $t0,.L0f091094 -/* f09107c: 8c420020 */ lw $v0,0x20($v0) -/* f091080: 0fc1acd3 */ jal func0f06b34c -/* f091084: 24050001 */ addiu $a1,$zero,0x1 -/* f091088: 10000005 */ b .L0f0910a0 -/* f09108c: 8fbf0014 */ lw $ra,0x14($sp) -.L0f091090: -/* f091090: 8c420020 */ lw $v0,0x20($v0) -.L0f091094: -/* f091094: 5440ffed */ bnezl $v0,.L0f09104c -/* f091098: 904e0000 */ lbu $t6,0x0($v0) -.L0f09109c: -/* f09109c: 8fbf0014 */ lw $ra,0x14($sp) -.L0f0910a0: -/* f0910a0: 27bd0018 */ addiu $sp,$sp,0x18 -/* f0910a4: 03e00008 */ jr $ra -/* f0910a8: 00000000 */ nop -); +void func0f091030(void) +{ + struct prop *prop = g_Vars.list1head; + + while (prop) { + if (prop->type == PROPTYPE_OBJ + && (prop->flags & (PROPFLAG_02 | PROPFLAG_40 | PROPFLAG_80)) == 0 + && (prop->obj->hidden2 & OBJH2FLAG_40) + && (prop->obj->hidden2 & OBJH2FLAG_80)) { + func0f06b34c(prop->obj, true); + return; + } + + prop = prop->next; + } +} #if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( diff --git a/src/include/constants.h b/src/include/constants.h index 14787a035..32c7112ce 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2620,6 +2620,7 @@ #define OBJH2FLAG_08 0x08 #define OBJH2FLAG_10 0x10 #define OBJH2FLAG_40 0x40 +#define OBJH2FLAG_80 0x80 #define OBJTYPE_DOOR 0x01 #define OBJTYPE_DOORSCALE 0x02 diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index ddac1aa81..959570d21 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -107,7 +107,7 @@ u32 func0f06ab60(void); void objEndFlight(struct defaultobj *obj); void func0f06ac90(struct prop *prop); void func0f06ad2c(void *ptr, bool arg1, bool arg2); -void func0f06b34c(void *obj, s32 arg1); +void func0f06b34c(void *obj, bool arg1); u32 func0f06b36c(void); bool func0f06b39c(struct coord *arg0, struct coord *arg1, struct coord *arg2, f32 arg3); u32 func0f06b488(void);