diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index dfe0b3625..325dc013c 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -2352,7 +2352,7 @@ bool aiDestroyObject(void) if (entity->modelnum == MODEL_ELVIS_SAUCER) { obj->flags = (obj->flags & ~OBJFLAG_00010000) | OBJFLAG_INVINCIBLE; explosionCreateSimple(entity->prop, &entity->prop->pos, entity->prop->rooms, EXPLOSIONTYPE_3, 0); - func0f12e714(entity->prop, 0x16); + smokeCreateAtProp(entity->prop, SMOKETYPE_22); } else { f32 damage = ((obj->maxdamage - obj->damage) + 1) / 250.0f; func0f0852ac(obj, damage, &obj->prop->pos, 0x22, -1); diff --git a/src/game/propobj.c b/src/game/propobj.c index 5805a3bbe..d8baba154 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -18715,7 +18715,7 @@ glabel var7f1aa438 /* f0763e4: 02402025 */ or $a0,$s2,$zero /* f0763e8: 57010004 */ bnel $t8,$at,.L0f0763fc /* f0763ec: 8fad0350 */ lw $t5,0x350($sp) -/* f0763f0: 0fc4b9c5 */ jal func0f12e714 +/* f0763f0: 0fc4b9c5 */ jal smokeCreateAtProp /* f0763f4: 24050013 */ addiu $a1,$zero,0x13 /* f0763f8: 8fad0350 */ lw $t5,0x350($sp) .L0f0763fc: diff --git a/src/game/smoke.c b/src/game/smoke.c index bbec0ac8f..9662a0484 100644 --- a/src/game/smoke.c +++ b/src/game/smoke.c @@ -1352,23 +1352,10 @@ glabel func0f12e5b0 /* f12e710: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f12e714 -/* f12e714: 27bdffe0 */ addiu $sp,$sp,-32 -/* f12e718: 00053c00 */ sll $a3,$a1,0x10 -/* f12e71c: 00077403 */ sra $t6,$a3,0x10 -/* f12e720: afbf001c */ sw $ra,0x1c($sp) -/* f12e724: afa50024 */ sw $a1,0x24($sp) -/* f12e728: 01c03825 */ or $a3,$t6,$zero -/* f12e72c: 24850008 */ addiu $a1,$a0,0x8 -/* f12e730: afa00010 */ sw $zero,0x10($sp) -/* f12e734: 0fc4b96c */ jal func0f12e5b0 -/* f12e738: 24860028 */ addiu $a2,$a0,0x28 -/* f12e73c: 8fbf001c */ lw $ra,0x1c($sp) -/* f12e740: 27bd0020 */ addiu $sp,$sp,0x20 -/* f12e744: 03e00008 */ jr $ra -/* f12e748: 00000000 */ sll $zero,$zero,0x0 -); +void smokeCreateAtProp(struct prop *prop, s16 type) +{ + func0f12e5b0(prop, &prop->pos, prop->rooms, type, 0); +} GLOBAL_ASM( glabel func0f12e74c diff --git a/src/include/constants.h b/src/include/constants.h index f04adc3d0..a0accc8ad 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -2373,14 +2373,15 @@ #define SLOWMOTION_ON 1 #define SLOWMOTION_SMART 2 -#define SMOKETYPE_0 0 -#define SMOKETYPE_1 1 -#define SMOKETYPE_2 2 -#define SMOKETYPE_3 3 -#define SMOKETYPE_4 4 -#define SMOKETYPE_5 5 -#define SMOKETYPE_6 6 -#define SMOKETYPE_7 7 +#define SMOKETYPE_0 0 +#define SMOKETYPE_1 1 +#define SMOKETYPE_2 2 +#define SMOKETYPE_3 3 +#define SMOKETYPE_4 4 +#define SMOKETYPE_5 5 +#define SMOKETYPE_6 6 +#define SMOKETYPE_7 7 +#define SMOKETYPE_22 22 #define SOLOSTAGEINDEX_DEFECTION 0 #define SOLOSTAGEINDEX_INVESTIGATION 1 diff --git a/src/include/game/smoke.h b/src/include/game/smoke.h index da38de6f6..8c9686112 100644 --- a/src/include/game/smoke.h +++ b/src/include/game/smoke.h @@ -6,8 +6,8 @@ u32 func0f12d3f0(void); struct smoke *smokeCreate(struct coord *pos, s16 *rooms, s16 type); u32 func0f12e454(void); -u32 func0f12e5b0(void); -void func0f12e714(struct prop *prop, s32 arg1); +bool func0f12e5b0(struct prop *prop, struct coord *pos, s16 *rooms, s16 type, u32 arg4); +void smokeCreateAtProp(struct prop *prop, s16 type); u32 func0f12e74c(void); u32 func0f12e77c(void); struct smoke *smokeCreateSimple(struct coord *pos, s16 *rooms, s16 type);