From b30bfd3da7ffc2a717c090cf27996e70749a4a5b Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 12 Jun 2020 20:37:40 +1000 Subject: [PATCH] Decompile smokeCreateSimple --- ld/gamefiles.inc | 2 +- src/game/chr/chr.c | 2 +- src/game/chr/chraicommands.c | 2 +- src/game/dlights.c | 4 ++-- src/game/explosion.c | 10 ++++----- src/game/game_0601b0.c | 4 ++-- src/game/game_097ba0.c | 2 +- src/game/propobj.c | 14 ++++++------ src/game/{game_12d3f0.c => smoke.c} | 25 +++++++-------------- src/game/splat.c | 4 ++-- src/include/game/{game_12d3f0.h => smoke.h} | 8 +++---- src/include/types.h | 4 ++++ 12 files changed, 38 insertions(+), 43 deletions(-) rename src/game/{game_12d3f0.c => smoke.c} (99%) rename src/include/game/{game_12d3f0.h => smoke.h} (61%) diff --git a/ld/gamefiles.inc b/ld/gamefiles.inc index cf91839c6..986837d16 100644 --- a/ld/gamefiles.inc +++ b/ld/gamefiles.inc @@ -131,7 +131,7 @@ build/ROMID/game/game_128f30.o (section); \ build/ROMID/game/game_129210.o (section); \ build/ROMID/game/explosion.o (section); \ - build/ROMID/game/game_12d3f0.o (section); \ + build/ROMID/game/smoke.o (section); \ build/ROMID/game/game_12f6c0.o (section); \ build/ROMID/game/weather.o (section); \ build/ROMID/game/game_135c70.o (section); \ diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index af1269f94..e894b851c 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -27,7 +27,7 @@ #include "game/game_128f30.h" #include "game/game_129210.h" #include "game/explosion.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_12f6c0.h" #include "game/game_157db0.h" #include "game/game_165670.h" diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 604cf3ee6..dfe0b3625 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -32,7 +32,7 @@ #include "game/game_111600.h" #include "game/game_127910.h" #include "game/explosion.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/weather.h" #include "game/game_157db0.h" #include "game/game_1655c0.h" diff --git a/src/game/dlights.c b/src/game/dlights.c index a8a56b959..469fd8484 100644 --- a/src/game/dlights.c +++ b/src/game/dlights.c @@ -12,7 +12,7 @@ #include "game/game_092610.h" #include "game/game_0b3350.h" #include "game/game_0b63b0.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_12f6c0.h" #include "game/game_157db0.h" #include "game/game_166e40.h" @@ -3081,7 +3081,7 @@ glabel func0f002ef8 /* f0032d8: a7b80066 */ sh $t8,0x66($sp) /* f0032dc: 27a40074 */ addiu $a0,$sp,0x74 /* f0032e0: 27a50064 */ addiu $a1,$sp,0x64 -/* f0032e4: 0fc4ba08 */ jal func0f12e820 +/* f0032e4: 0fc4ba08 */ jal smokeCreateSimple /* f0032e8: 24060007 */ addiu $a2,$zero,0x7 .L0f0032ec: /* f0032ec: 8fa400d8 */ lw $a0,0xd8($sp) diff --git a/src/game/explosion.c b/src/game/explosion.c index cd2f5b8cc..536186673 100644 --- a/src/game/explosion.c +++ b/src/game/explosion.c @@ -15,7 +15,7 @@ #include "game/game_092610.h" #include "game/game_0b3350.h" #include "game/explosion.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_157db0.h" #include "game/game_1668e0.h" #include "game/game_166e40.h" @@ -296,7 +296,7 @@ glabel var7f1b5584 /* f12a080: 00d93021 */ addu $a2,$a2,$t9 /* f12a084: 90c6e4dc */ lbu $a2,%lo(g_ExplosionTypes+0x24)($a2) /* f12a088: 27c40008 */ addiu $a0,$s8,0x8 -/* f12a08c: 0fc4ba08 */ jal func0f12e820 +/* f12a08c: 0fc4ba08 */ jal smokeCreateSimple /* f12a090: 27c50028 */ addiu $a1,$s8,0x28 /* f12a094: 10000300 */ beqz $zero,.L0f12ac98 /* f12a098: 24020001 */ addiu $v0,$zero,0x1 @@ -309,7 +309,7 @@ glabel var7f1b5584 /* f12a0b0: 3c068008 */ lui $a2,%hi(g_ExplosionTypes+0x24) /* f12a0b4: 00cc3021 */ addu $a2,$a2,$t4 /* f12a0b8: 90c6e4dc */ lbu $a2,%lo(g_ExplosionTypes+0x24)($a2) -/* f12a0bc: 0fc4ba08 */ jal func0f12e820 +/* f12a0bc: 0fc4ba08 */ jal smokeCreateSimple /* f12a0c0: 02802825 */ or $a1,$s4,$zero .L0f12a0c4: /* f12a0c4: 100002f4 */ beqz $zero,.L0f12ac98 @@ -2631,12 +2631,12 @@ glabel var7f1b55a8 /* f12c308: 00000000 */ sll $zero,$zero,0x0 /* f12c30c: 24440008 */ addiu $a0,$v0,0x8 /* f12c310: 24450028 */ addiu $a1,$v0,0x28 -/* f12c314: 0fc4ba08 */ jal func0f12e820 +/* f12c314: 0fc4ba08 */ jal smokeCreateSimple /* f12c318: 92c60024 */ lbu $a2,0x24($s6) /* f12c31c: 10000004 */ beqz $zero,.L0f12c330 /* f12c320: 8fae0094 */ lw $t6,0x94($sp) .L0f12c324: -/* f12c324: 0fc4ba08 */ jal func0f12e820 +/* f12c324: 0fc4ba08 */ jal smokeCreateSimple /* f12c328: 92c60024 */ lbu $a2,0x24($s6) .L0f12c32c: /* f12c32c: 8fae0094 */ lw $t6,0x94($sp) diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index c6a11c1de..4448419fb 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -23,7 +23,7 @@ #include "game/game_0b63b0.h" #include "game/game_127910.h" #include "game/explosion.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_12f6c0.h" #include "game/game_157db0.h" #include "game/game_190260.h" @@ -1722,7 +1722,7 @@ glabel var7f1a9eb8 /* f061938: 1540000f */ bnez $t2,.L0f061978 /* f06193c: 27a40694 */ addiu $a0,$sp,0x694 /* f061940: 02002825 */ or $a1,$s0,$zero -/* f061944: 0fc4ba08 */ jal func0f12e820 +/* f061944: 0fc4ba08 */ jal smokeCreateSimple /* f061948: 24060007 */ addiu $a2,$zero,0x7 /* f06194c: 1000000a */ beqz $zero,.L0f061978 /* f061950: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 104966bd6..c5043a6a0 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -30,7 +30,7 @@ #include "game/game_0d7070.h" #include "game/game_111600.h" #include "game/game_127910.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_1531a0.h" #include "game/game_166e40.h" #include "game/game_167ae0.h" diff --git a/src/game/propobj.c b/src/game/propobj.c index 2ee91b31f..5805a3bbe 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -43,7 +43,7 @@ #include "game/game_128f30.h" #include "game/game_129210.h" #include "game/explosion.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_12f6c0.h" #include "game/game_150820.h" #include "game/game_1531a0.h" @@ -15677,7 +15677,7 @@ glabel var7f1aa3d0 /* f073860: 1c400006 */ bgtz $v0,.L0f07387c /* f073864: 26650028 */ addiu $a1,$s3,0x28 /* f073868: ae4b00f4 */ sw $t3,0xf4($s2) -/* f07386c: 0fc4ba08 */ jal func0f12e820 +/* f07386c: 0fc4ba08 */ jal smokeCreateSimple /* f073870: 24060008 */ addiu $a2,$zero,0x8 /* f073874: 10000004 */ beqz $zero,.L0f073888 /* f073878: 00000000 */ sll $zero,$zero,0x0 @@ -18908,7 +18908,7 @@ glabel var7f1aa438 /* f0766b0: e7a6010c */ swc1 $f6,0x10c($sp) /* f0766b4: c6480010 */ lwc1 $f8,0x10($s2) /* f0766b8: 460a4181 */ sub.s $f6,$f8,$f10 -/* f0766bc: 0fc4ba08 */ jal func0f12e820 +/* f0766bc: 0fc4ba08 */ jal smokeCreateSimple /* f0766c0: e7a60110 */ swc1 $f6,0x110($sp) /* f0766c4: 1000006a */ beqz $zero,.L0f076870 /* f0766c8: 8fac0600 */ lw $t4,0x600($sp) @@ -18922,7 +18922,7 @@ glabel var7f1aa438 /* f0766e4: a6200062 */ sh $zero,0x62($s1) .L0f0766e8: /* f0766e8: 8fa5006c */ lw $a1,0x6c($sp) -/* f0766ec: 0fc4ba08 */ jal func0f12e820 +/* f0766ec: 0fc4ba08 */ jal smokeCreateSimple /* f0766f0: 2406000b */ addiu $a2,$zero,0xb /* f0766f4: 1000005e */ beqz $zero,.L0f076870 /* f0766f8: 8fac0600 */ lw $t4,0x600($sp) @@ -19022,7 +19022,7 @@ glabel var7f1aa438 /* f076858: 10470004 */ beq $v0,$a3,.L0f07686c /* f07685c: 26440008 */ addiu $a0,$s2,0x8 /* f076860: 8fa5006c */ lw $a1,0x6c($sp) -/* f076864: 0fc4ba08 */ jal func0f12e820 +/* f076864: 0fc4ba08 */ jal smokeCreateSimple /* f076868: 24060009 */ addiu $a2,$zero,0x9 .L0f07686c: /* f07686c: 8fac0600 */ lw $t4,0x600($sp) @@ -24402,7 +24402,7 @@ glabel var7f1aa5d0 /* f07b3a8: e7b200cc */ swc1 $f18,0xcc($sp) /* f07b3ac: 27a400b8 */ addiu $a0,$sp,0xb8 /* f07b3b0: 26050028 */ addiu $a1,$s0,0x28 -/* f07b3b4: 0fc4ba08 */ jal func0f12e820 +/* f07b3b4: 0fc4ba08 */ jal smokeCreateSimple /* f07b3b8: 24060003 */ addiu $a2,$zero,0x3 /* f07b3bc: 24190018 */ addiu $t9,$zero,0x18 /* f07b3c0: afb90010 */ sw $t9,0x10($sp) @@ -25853,7 +25853,7 @@ glabel var7f1aa698 /* f07c74c: ae0900e4 */ sw $t1,0xe4($s0) .L0f07c750: /* f07c750: 8fa50040 */ lw $a1,0x40($sp) -/* f07c754: 0fc4ba08 */ jal func0f12e820 +/* f07c754: 0fc4ba08 */ jal smokeCreateSimple /* f07c758: 24060003 */ addiu $a2,$zero,0x3 /* f07c75c: c6120080 */ lwc1 $f18,0x80($s0) /* f07c760: 44802000 */ mtc1 $zero,$f4 diff --git a/src/game/game_12d3f0.c b/src/game/smoke.c similarity index 99% rename from src/game/game_12d3f0.c rename to src/game/smoke.c index ab284151f..bbec0ac8f 100644 --- a/src/game/game_12d3f0.c +++ b/src/game/smoke.c @@ -10,7 +10,7 @@ #include "game/dlights.h" #include "game/game_0601b0.h" #include "game/game_0b3350.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_157db0.h" #include "game/game_1668e0.h" #include "game/game_166e40.h" @@ -970,7 +970,7 @@ glabel func0f12d3f0 ); GLOBAL_ASM( -glabel func0f12e1c0 +glabel smokeCreate /* f12e1c0: 27bdffd0 */ addiu $sp,$sp,-48 /* f12e1c4: 3c02800a */ lui $v0,%hi(g_Vars) /* f12e1c8: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars) @@ -1232,7 +1232,7 @@ glabel func0f12e454 .L0f12e564: /* f12e564: 8fa40020 */ lw $a0,0x20($sp) /* f12e568: 8fa50024 */ lw $a1,0x24($sp) -/* f12e56c: 0fc4b870 */ jal func0f12e1c0 +/* f12e56c: 0fc4b870 */ jal smokeCreate /* f12e570: 87a6002a */ lh $a2,0x2a($sp) /* f12e574: 50400009 */ beqzl $v0,.L0f12e59c /* f12e578: 00001025 */ or $v0,$zero,$zero @@ -1330,7 +1330,7 @@ glabel func0f12e5b0 .L0f12e6c0: /* f12e6c0: 8fa40024 */ lw $a0,0x24($sp) /* f12e6c4: 8fa50028 */ lw $a1,0x28($sp) -/* f12e6c8: 0fc4b870 */ jal func0f12e1c0 +/* f12e6c8: 0fc4b870 */ jal smokeCreate /* f12e6cc: 87a6002e */ lh $a2,0x2e($sp) /* f12e6d0: 5040000b */ beqzl $v0,.L0f12e700 /* f12e6d4: 00001025 */ or $v0,$zero,$zero @@ -1434,19 +1434,10 @@ glabel func0f12e77c /* f12e81c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f12e820 -/* f12e820: 27bdffe8 */ addiu $sp,$sp,-24 -/* f12e824: afbf0014 */ sw $ra,0x14($sp) -/* f12e828: afa60020 */ sw $a2,0x20($sp) -/* f12e82c: 00067400 */ sll $t6,$a2,0x10 -/* f12e830: 0fc4b870 */ jal func0f12e1c0 -/* f12e834: 000e3403 */ sra $a2,$t6,0x10 -/* f12e838: 8fbf0014 */ lw $ra,0x14($sp) -/* f12e83c: 27bd0018 */ addiu $sp,$sp,0x18 -/* f12e840: 03e00008 */ jr $ra -/* f12e844: 00000000 */ sll $zero,$zero,0x0 -); +struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type) +{ + return smokeCreate(pos, rooms, type); +} GLOBAL_ASM( glabel func0f12e848 diff --git a/src/game/splat.c b/src/game/splat.c index 7a118ec9e..5854c6551 100644 --- a/src/game/splat.c +++ b/src/game/splat.c @@ -7,7 +7,7 @@ #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" -#include "game/game_12d3f0.h" +#include "game/smoke.h" #include "game/game_157db0.h" #include "game/propobj.h" #include "game/splat.h" @@ -1229,7 +1229,7 @@ glabel var7f1b6048 /* f149c3c: 00023400 */ sll $a2,$v0,0x10 /* f149c40: 00065c03 */ sra $t3,$a2,0x10 /* f149c44: 01603025 */ or $a2,$t3,$zero -/* f149c48: 0fc4ba08 */ jal func0f12e820 +/* f149c48: 0fc4ba08 */ jal smokeCreateSimple /* f149c4c: 8fa4006c */ lw $a0,0x6c($sp) /* f149c50: 8fbf005c */ lw $ra,0x5c($sp) .L0f149c54: diff --git a/src/include/game/game_12d3f0.h b/src/include/game/smoke.h similarity index 61% rename from src/include/game/game_12d3f0.h rename to src/include/game/smoke.h index 8f10e95e7..da38de6f6 100644 --- a/src/include/game/game_12d3f0.h +++ b/src/include/game/smoke.h @@ -1,16 +1,16 @@ -#ifndef _IN_GAME_GAME_12D3F0_H -#define _IN_GAME_GAME_12D3F0_H +#ifndef _IN_GAME_SMOKE_H +#define _IN_GAME_SMOKE_H #include #include "types.h" u32 func0f12d3f0(void); -u32 func0f12e1c0(void); +struct smoke *smokeCreate(struct coord *pos, s16 *rooms, s16 type); u32 func0f12e454(void); u32 func0f12e5b0(void); void func0f12e714(struct prop *prop, s32 arg1); u32 func0f12e74c(void); u32 func0f12e77c(void); -u32 func0f12e820(void); +struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type); u32 func0f12e848(void); u32 func0f12f184(void); u32 func0f12f230(void); diff --git a/src/include/types.h b/src/include/types.h index 0cadcf4b4..b9c33c7d7 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4568,6 +4568,10 @@ struct smoketype { f32 unk20; }; +struct smoke { + u32 unk00; +}; + struct textoverride { /*0x00*/ u32 unk00; /*0x04*/ u32 unk04;