From cd59c12e12e9a4dff011107c7eb7b850d637e6f3 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 23 Jan 2020 22:17:05 +1000 Subject: [PATCH] Decompile func0f08e1a0 --- src/game/game_066310.c | 52 +++++++++++----------------------- src/include/game/game_066310.h | 4 +-- 2 files changed, 19 insertions(+), 37 deletions(-) diff --git a/src/game/game_066310.c b/src/game/game_066310.c index c41eca4f2..a56bf7523 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -46259,40 +46259,22 @@ glabel func0f08e0c4 /* f08e19c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f08e1a0 -/* f08e1a0: 27bdffe8 */ addiu $sp,$sp,-24 -/* f08e1a4: afbf0014 */ sw $ra,0x14($sp) -/* f08e1a8: 8c8e0008 */ lw $t6,0x8($a0) -/* f08e1ac: 3c01bfff */ lui $at,0xbfff -/* f08e1b0: 3421ffff */ ori $at,$at,0xffff -/* f08e1b4: 01c17824 */ and $t7,$t6,$at -/* f08e1b8: 00803025 */ or $a2,$a0,$zero -/* f08e1bc: ac8f0008 */ sw $t7,0x8($a0) -/* f08e1c0: 8cc50014 */ lw $a1,0x14($a2) -/* f08e1c4: 808400c6 */ lb $a0,0xc6($a0) -/* f08e1c8: 0fc236aa */ jal func0f08daa8 -/* f08e1cc: afa60018 */ sw $a2,0x18($sp) -/* f08e1d0: 8fa60018 */ lw $a2,0x18($sp) -/* f08e1d4: 2402000b */ addiu $v0,$zero,0xb -/* f08e1d8: 2419003c */ addiu $t9,$zero,0x3c -/* f08e1dc: 94d80072 */ lhu $t8,0x72($a2) -/* f08e1e0: 54580004 */ bnel $v0,$t8,.L0f08e1f4 -/* f08e1e4: a0c000c7 */ sb $zero,0xc7($a2) -/* f08e1e8: 10000002 */ beqz $zero,.L0f08e1f4 -/* f08e1ec: a0d900c7 */ sb $t9,0xc7($a2) -/* f08e1f0: a0c000c7 */ sb $zero,0xc7($a2) -.L0f08e1f4: -/* f08e1f4: 94c80072 */ lhu $t0,0x72($a2) -/* f08e1f8: 54480003 */ bnel $v0,$t0,.L0f08e208 -/* f08e1fc: 8fbf0014 */ lw $ra,0x14($sp) -/* f08e200: a0c000cc */ sb $zero,0xcc($a2) -/* f08e204: 8fbf0014 */ lw $ra,0x14($sp) -.L0f08e208: -/* f08e208: 27bd0018 */ addiu $sp,$sp,0x18 -/* f08e20c: 03e00008 */ jr $ra -/* f08e210: 00000000 */ sll $zero,$zero,0x0 -); +void func0f08e1a0(struct doorobj *door) +{ + door->base.flags &= ~OBJECTFLAG0_40000000; + + func0f08daa8(door->soundtype, door->base.prop); + + if (door->doortype == DOORTYPE_LASER) { + door->fadetime60 = 60; + } else { + door->fadetime60 = 0; + } + + if (door->doortype == DOORTYPE_LASER) { + door->laserfade = 0; + } +} u32 decodeXorAaaaaaaa(u32 value) { @@ -46366,7 +46348,7 @@ void doorSetMode(struct doorobj *door, s32 newmode) door->mode = newmode; } else if (newmode == 2) { if (door->mode == 0 && door->frac > 0) { - func0f08e1a0(); + func0f08e1a0(door); } if ((door->mode != 0 && door->mode != 3) || door->frac > 0) { diff --git a/src/include/game/game_066310.h b/src/include/game/game_066310.h index 64e1f9e1f..3f2ac4db5 100644 --- a/src/include/game/game_066310.h +++ b/src/include/game/game_066310.h @@ -298,11 +298,11 @@ u32 func0f08d4e8(struct doorobj *door); void func0f08d514(struct doorobj *door); u32 func0f08d540(void); u32 func0f08d784(void); -u32 func0f08daa8(void); +void func0f08daa8(s8 soundtype, struct prop *prop); void func0f08dd44(s8 soundtype, struct prop *prop); void func0f08df10(s8 soundtype, struct prop *prop); u32 func0f08e0c4(void); -u32 func0f08e1a0(void); +void func0f08e1a0(struct doorobj *door); u32 decodeXorAaaaaaaa(u32 value); void func0f08e224(struct doorobj *door); void func0f08e2ac(struct doorobj *door);