diff --git a/src/game/game_015330.c b/src/game/game_015330.c index 1b61e17b2..6580fc283 100644 --- a/src/game/game_015330.c +++ b/src/game/game_015330.c @@ -11,58 +11,19 @@ #include "gvars/gvars.h" #include "types.h" -GLOBAL_ASM( -glabel func0f015330 -/* f015330: 27bdffd8 */ addiu $sp,$sp,-40 -/* f015334: afb1001c */ sw $s1,0x1c($sp) -/* f015338: 3c11800a */ lui $s1,%hi(g_Smokes) -/* f01533c: 26313440 */ addiu $s1,$s1,%lo(g_Smokes) -/* f015340: 8e2e0000 */ lw $t6,0x0($s1) -/* f015344: afbf0024 */ sw $ra,0x24($sp) -/* f015348: afb20020 */ sw $s2,0x20($sp) -/* f01534c: 11c0001f */ beqz $t6,.L0f0153cc -/* f015350: afb00018 */ sw $s0,0x18($sp) -/* f015354: 3c02800a */ lui $v0,%hi(g_NumSmokes) -/* f015358: 8c423444 */ lw $v0,%lo(g_NumSmokes)($v0) -/* f01535c: 00009025 */ or $s2,$zero,$zero -/* f015360: 00008025 */ or $s0,$zero,$zero -/* f015364: 5840001a */ blezl $v0,.L0f0153d0 -/* f015368: 8fbf0024 */ lw $ra,0x24($sp) -.L0f01536c: -/* f01536c: 8e2f0000 */ lw $t7,0x0($s1) -/* f015370: 01f0c021 */ addu $t8,$t7,$s0 -/* f015374: 8f040000 */ lw $a0,0x0($t8) -/* f015378: 50800011 */ beqzl $a0,.L0f0153c0 -/* f01537c: 26520001 */ addiu $s2,$s2,0x1 -/* f015380: 0fc18171 */ jal func0f0605c4 -/* f015384: 00000000 */ nop -/* f015388: 8e390000 */ lw $t9,0x0($s1) -/* f01538c: 03304021 */ addu $t0,$t9,$s0 -/* f015390: 0fc180c0 */ jal propHide -/* f015394: 8d040000 */ lw $a0,0x0($t0) -/* f015398: 8e290000 */ lw $t1,0x0($s1) -/* f01539c: 01305021 */ addu $t2,$t1,$s0 -/* f0153a0: 0fc1810e */ jal propFree -/* f0153a4: 8d440000 */ lw $a0,0x0($t2) -/* f0153a8: 8e2b0000 */ lw $t3,0x0($s1) -/* f0153ac: 3c02800a */ lui $v0,%hi(g_NumSmokes) -/* f0153b0: 01706021 */ addu $t4,$t3,$s0 -/* f0153b4: ad800000 */ sw $zero,0x0($t4) -/* f0153b8: 8c423444 */ lw $v0,%lo(g_NumSmokes)($v0) -/* f0153bc: 26520001 */ addiu $s2,$s2,0x1 -.L0f0153c0: -/* f0153c0: 0242082a */ slt $at,$s2,$v0 -/* f0153c4: 1420ffe9 */ bnez $at,.L0f01536c -/* f0153c8: 2610019c */ addiu $s0,$s0,0x19c -.L0f0153cc: -/* f0153cc: 8fbf0024 */ lw $ra,0x24($sp) -.L0f0153d0: -/* f0153d0: 8fb00018 */ lw $s0,0x18($sp) -/* f0153d4: 8fb1001c */ lw $s1,0x1c($sp) -/* f0153d8: 8fb20020 */ lw $s2,0x20($sp) -/* f0153dc: 03e00008 */ jr $ra -/* f0153e0: 27bd0028 */ addiu $sp,$sp,0x28 -/* f0153e4: 00000000 */ nop -/* f0153e8: 00000000 */ nop -/* f0153ec: 00000000 */ nop -); +void smokeClearAll(void) +{ + s32 i; + + if (g_Smokes) { + for (i = 0; i < g_NumSmokes; i++) { + if (g_Smokes[i].prop) { + func0f0605c4(g_Smokes[i].prop); + propHide(g_Smokes[i].prop); + propFree(g_Smokes[i].prop); + + g_Smokes[i].prop = NULL; + } + } + } +} diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 98e6b5b28..3248c88a1 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -2763,7 +2763,7 @@ void stageLoad(void) func0f014f10(); func0f015280(); - func0f015330(); + smokeClearAll(); func0f015400(); func0f015410(); func0f015420(); diff --git a/src/include/game/game_015330.h b/src/include/game/game_015330.h index 53ff2e461..f0f5d3d98 100644 --- a/src/include/game/game_015330.h +++ b/src/include/game/game_015330.h @@ -3,6 +3,6 @@ #include #include "types.h" -u32 func0f015330(void); +void smokeClearAll(void); #endif