From 4ac8e70f5ac83ba1bc214d60acae37e60ee42c1d Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Sun, 4 Oct 2020 07:54:09 -0500 Subject: [PATCH] Obj_Syokudai (#412) * Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * torches * Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c Co-authored-by: Dragorn421 * Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c Co-authored-by: Dragorn421 * cleanup * Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c Co-authored-by: Dragorn421 * small cleanup Co-authored-by: Dragorn421 --- .../ovl_Obj_Syokudai/ObjSyokudai_Destroy.s | 25 - .../ovl_Obj_Syokudai/ObjSyokudai_Draw.s | 224 --------- .../ovl_Obj_Syokudai/ObjSyokudai_Init.s | 126 ----- .../ovl_Obj_Syokudai/ObjSyokudai_Update.s | 438 ------------------ data/overlays/actors/z_obj_syokudai.bss.s | 14 - data/overlays/actors/z_obj_syokudai.data.s | 28 -- data/overlays/actors/z_obj_syokudai.reloc.s | 13 - include/functions.h | 2 +- spec | 4 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.h | 4 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 258 ++++++++++- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.h | 7 +- 12 files changed, 263 insertions(+), 880 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Update.s delete mode 100644 data/overlays/actors/z_obj_syokudai.bss.s delete mode 100644 data/overlays/actors/z_obj_syokudai.data.s delete mode 100644 data/overlays/actors/z_obj_syokudai.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Destroy.s deleted file mode 100644 index 04140081ac..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Destroy.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel ObjSyokudai_Destroy -/* 001C0 80B9F470 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 001C4 80B9F474 AFA40018 */ sw $a0, 0x0018($sp) -/* 001C8 80B9F478 AFA5001C */ sw $a1, 0x001C($sp) -/* 001CC 80B9F47C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 001D0 80B9F480 8FA50018 */ lw $a1, 0x0018($sp) -/* 001D4 80B9F484 AFBF0014 */ sw $ra, 0x0014($sp) -/* 001D8 80B9F488 0C0170EB */ jal Collider_DestroyCylinder - -/* 001DC 80B9F48C 24A5014C */ addiu $a1, $a1, 0x014C ## $a1 = 0000014C -/* 001E0 80B9F490 8FA50018 */ lw $a1, 0x0018($sp) -/* 001E4 80B9F494 8FA4001C */ lw $a0, 0x001C($sp) -/* 001E8 80B9F498 0C0170EB */ jal Collider_DestroyCylinder - -/* 001EC 80B9F49C 24A50198 */ addiu $a1, $a1, 0x0198 ## $a1 = 00000198 -/* 001F0 80B9F4A0 8FA4001C */ lw $a0, 0x001C($sp) -/* 001F4 80B9F4A4 8FAE0018 */ lw $t6, 0x0018($sp) -/* 001F8 80B9F4A8 248507A8 */ addiu $a1, $a0, 0x07A8 ## $a1 = 000007A8 -/* 001FC 80B9F4AC 0C01E9F1 */ jal LightContext_RemoveLight - -/* 00200 80B9F4B0 8DC601E8 */ lw $a2, 0x01E8($t6) ## 000001E8 -/* 00204 80B9F4B4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00208 80B9F4B8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0020C 80B9F4BC 03E00008 */ jr $ra -/* 00210 80B9F4C0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Draw.s b/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Draw.s deleted file mode 100644 index f93da78e83..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Draw.s +++ /dev/null @@ -1,224 +0,0 @@ -.rdata -glabel D_80B9FE90 - .asciz "../z_obj_syokudai.c" - .balign 4 - -glabel D_80B9FEA4 - .asciz "../z_obj_syokudai.c" - .balign 4 - -glabel D_80B9FEB8 - .asciz "../z_obj_syokudai.c" - .balign 4 - -glabel D_80B9FECC - .asciz "../z_obj_syokudai.c" - .balign 4 - -.late_rodata -glabel D_80B9FEE0 - .float 0.0027 - -glabel D_80B9FEE4 - .float 9.58738019108e-05 - -.text -glabel ObjSyokudai_Draw -/* 00834 80B9FAE4 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70 -/* 00838 80B9FAE8 AFBF0044 */ sw $ra, 0x0044($sp) -/* 0083C 80B9FAEC AFB20040 */ sw $s2, 0x0040($sp) -/* 00840 80B9FAF0 AFB1003C */ sw $s1, 0x003C($sp) -/* 00844 80B9FAF4 AFB00038 */ sw $s0, 0x0038($sp) -/* 00848 80B9FAF8 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 0084C 80B9FAFC 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000 -/* 00850 80B9FB00 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 00854 80B9FB04 000E7983 */ sra $t7, $t6, 6 -/* 00858 80B9FB08 31F8000F */ andi $t8, $t7, 0x000F ## $t8 = 00000000 -/* 0085C 80B9FB0C 0018C880 */ sll $t9, $t8, 2 -/* 00860 80B9FB10 0338C823 */ subu $t9, $t9, $t8 -/* 00864 80B9FB14 0019C8C0 */ sll $t9, $t9, 3 -/* 00868 80B9FB18 0338C821 */ addu $t9, $t9, $t8 -/* 0086C 80B9FB1C 0019C840 */ sll $t9, $t9, 1 -/* 00870 80B9FB20 27280064 */ addiu $t0, $t9, 0x0064 ## $t0 = 00000064 -/* 00874 80B9FB24 AFA80084 */ sw $t0, 0x0084($sp) -/* 00878 80B9FB28 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 0087C 80B9FB2C 3C0680BA */ lui $a2, %hi(D_80B9FE90) ## $a2 = 80BA0000 -/* 00880 80B9FB30 24C6FE90 */ addiu $a2, $a2, %lo(D_80B9FE90) ## $a2 = 80B9FE90 -/* 00884 80B9FB34 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0 -/* 00888 80B9FB38 240702C3 */ addiu $a3, $zero, 0x02C3 ## $a3 = 000002C3 -/* 0088C 80B9FB3C 0C031AB1 */ jal Graph_OpenDisps -/* 00890 80B9FB40 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00894 80B9FB44 0C024F46 */ jal func_80093D18 -/* 00898 80B9FB48 8E440000 */ lw $a0, 0x0000($s2) ## 00000000 -/* 0089C 80B9FB4C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 008A0 80B9FB50 3C0ADA38 */ lui $t2, 0xDA38 ## $t2 = DA380000 -/* 008A4 80B9FB54 354A0003 */ ori $t2, $t2, 0x0003 ## $t2 = DA380003 -/* 008A8 80B9FB58 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 008AC 80B9FB5C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0 -/* 008B0 80B9FB60 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 008B4 80B9FB64 8E440000 */ lw $a0, 0x0000($s2) ## 00000000 -/* 008B8 80B9FB68 3C0580BA */ lui $a1, %hi(D_80B9FEA4) ## $a1 = 80BA0000 -/* 008BC 80B9FB6C 24A5FEA4 */ addiu $a1, $a1, %lo(D_80B9FEA4) ## $a1 = 80B9FEA4 -/* 008C0 80B9FB70 240602CA */ addiu $a2, $zero, 0x02CA ## $a2 = 000002CA -/* 008C4 80B9FB74 0C0346A2 */ jal Matrix_NewMtx -/* 008C8 80B9FB78 AFA2006C */ sw $v0, 0x006C($sp) -/* 008CC 80B9FB7C 8FA3006C */ lw $v1, 0x006C($sp) -/* 008D0 80B9FB80 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000 -/* 008D4 80B9FB84 3C1880BA */ lui $t8, %hi(D_80B9FE7C) ## $t8 = 80BA0000 -/* 008D8 80B9FB88 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 008DC 80B9FB8C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 008E0 80B9FB90 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 008E4 80B9FB94 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 008E8 80B9FB98 AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0 -/* 008EC 80B9FB9C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 008F0 80B9FBA0 962D001C */ lhu $t5, 0x001C($s1) ## 0000001C -/* 008F4 80B9FBA4 000D7303 */ sra $t6, $t5, 12 -/* 008F8 80B9FBA8 000E7880 */ sll $t7, $t6, 2 -/* 008FC 80B9FBAC 030FC021 */ addu $t8, $t8, $t7 -/* 00900 80B9FBB0 8F18FE7C */ lw $t8, %lo(D_80B9FE7C)($t8) -/* 00904 80B9FBB4 AC580004 */ sw $t8, 0x0004($v0) ## 00000004 -/* 00908 80B9FBB8 862201E4 */ lh $v0, 0x01E4($s1) ## 000001E4 -/* 0090C 80B9FBBC 8FA30084 */ lw $v1, 0x0084($sp) -/* 00910 80B9FBC0 1040007F */ beq $v0, $zero, .L80B9FDC0 -/* 00914 80B9FBC4 00000000 */ nop -/* 00918 80B9FBC8 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 0091C 80B9FBCC 0062082A */ slt $at, $v1, $v0 -/* 00920 80B9FBD0 10200008 */ beq $at, $zero, .L80B9FBF4 -/* 00924 80B9FBD4 0062C823 */ subu $t9, $v1, $v0 -/* 00928 80B9FBD8 2728000A */ addiu $t0, $t9, 0x000A ## $t0 = 0000000A -/* 0092C 80B9FBDC 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00 -/* 00930 80B9FBE0 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 00934 80B9FBE4 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00 -/* 00938 80B9FBE8 468021A0 */ cvt.s.w $f6, $f4 -/* 0093C 80B9FBEC 1000000A */ beq $zero, $zero, .L80B9FC18 -/* 00940 80B9FBF0 46083003 */ div.s $f0, $f6, $f8 -.L80B9FBF4: -/* 00944 80B9FBF4 18400008 */ blez $v0, .L80B9FC18 -/* 00948 80B9FBF8 28410014 */ slti $at, $v0, 0x0014 -/* 0094C 80B9FBFC 10200006 */ beq $at, $zero, .L80B9FC18 -/* 00950 80B9FC00 00000000 */ nop -/* 00954 80B9FC04 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00 -/* 00958 80B9FC08 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 0095C 80B9FC0C 44819000 */ mtc1 $at, $f18 ## $f18 = 20.00 -/* 00960 80B9FC10 46805420 */ cvt.s.w $f16, $f10 -/* 00964 80B9FC14 46128003 */ div.s $f0, $f16, $f18 -.L80B9FC18: -/* 00968 80B9FC18 3C0180BA */ lui $at, %hi(D_80B9FEE0) ## $at = 80BA0000 -/* 0096C 80B9FC1C C424FEE0 */ lwc1 $f4, %lo(D_80B9FEE0)($at) -/* 00970 80B9FC20 8E440000 */ lw $a0, 0x0000($s2) ## 00000000 -/* 00974 80B9FC24 46040002 */ mul.s $f0, $f0, $f4 -/* 00978 80B9FC28 0C024F61 */ jal func_80093D84 -/* 0097C 80B9FC2C E7A00064 */ swc1 $f0, 0x0064($sp) -/* 00980 80B9FC30 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00984 80B9FC34 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000 -/* 00988 80B9FC38 354A0020 */ ori $t2, $t2, 0x0020 ## $t2 = DB060020 -/* 0098C 80B9FC3C 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 00990 80B9FC40 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0 -/* 00994 80B9FC44 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 00998 80B9FC48 8E440000 */ lw $a0, 0x0000($s2) ## 00000000 -/* 0099C 80B9FC4C 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020 -/* 009A0 80B9FC50 240C0040 */ addiu $t4, $zero, 0x0040 ## $t4 = 00000040 -/* 009A4 80B9FC54 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 009A8 80B9FC58 AFAD0018 */ sw $t5, 0x0018($sp) -/* 009AC 80B9FC5C AFAC0014 */ sw $t4, 0x0014($sp) -/* 009B0 80B9FC60 AFAB0010 */ sw $t3, 0x0010($sp) -/* 009B4 80B9FC64 AFA0001C */ sw $zero, 0x001C($sp) -/* 009B8 80B9FC68 922E01E6 */ lbu $t6, 0x01E6($s1) ## 000001E6 -/* 009BC 80B9FC6C 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020 -/* 009C0 80B9FC70 24080080 */ addiu $t0, $zero, 0x0080 ## $t0 = 00000080 -/* 009C4 80B9FC74 000E0823 */ subu $at, $zero, $t6 -/* 009C8 80B9FC78 00017880 */ sll $t7, $at, 2 -/* 009CC 80B9FC7C 01E17821 */ addu $t7, $t7, $at -/* 009D0 80B9FC80 000F7880 */ sll $t7, $t7, 2 -/* 009D4 80B9FC84 31F801FF */ andi $t8, $t7, 0x01FF ## $t8 = 00000000 -/* 009D8 80B9FC88 AFB80020 */ sw $t8, 0x0020($sp) -/* 009DC 80B9FC8C AFA80028 */ sw $t0, 0x0028($sp) -/* 009E0 80B9FC90 AFB90024 */ sw $t9, 0x0024($sp) -/* 009E4 80B9FC94 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 009E8 80B9FC98 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 009EC 80B9FC9C 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 009F0 80B9FCA0 0C0253D0 */ jal Gfx_TwoTexScroll -/* 009F4 80B9FCA4 AFA20060 */ sw $v0, 0x0060($sp) -/* 009F8 80B9FCA8 8FA30060 */ lw $v1, 0x0060($sp) -/* 009FC 80B9FCAC 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000 -/* 00A00 80B9FCB0 3C0BFFFF */ lui $t3, 0xFFFF ## $t3 = FFFF0000 -/* 00A04 80B9FCB4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00A08 80B9FCB8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00A0C 80B9FCBC 356B00FF */ ori $t3, $t3, 0x00FF ## $t3 = FFFF00FF -/* 00A10 80B9FCC0 354A8080 */ ori $t2, $t2, 0x8080 ## $t2 = FA008080 -/* 00A14 80B9FCC4 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 00A18 80B9FCC8 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0 -/* 00A1C 80B9FCCC AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 00A20 80B9FCD0 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 00A24 80B9FCD4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00A28 80B9FCD8 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00 -/* 00A2C 80B9FCDC 3C014250 */ lui $at, 0x4250 ## $at = 42500000 -/* 00A30 80B9FCE0 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008 -/* 00A34 80B9FCE4 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0 -/* 00A38 80B9FCE8 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000 -/* 00A3C 80B9FCEC 3C0EFF00 */ lui $t6, 0xFF00 ## $t6 = FF000000 -/* 00A40 80B9FCF0 44817000 */ mtc1 $at, $f14 ## $f14 = 52.00 -/* 00A44 80B9FCF4 44066000 */ mfc1 $a2, $f12 -/* 00A48 80B9FCF8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001 -/* 00A4C 80B9FCFC AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004 -/* 00A50 80B9FD00 0C034261 */ jal Matrix_Translate -/* 00A54 80B9FD04 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000 -/* 00A58 80B9FD08 864F07A0 */ lh $t7, 0x07A0($s2) ## 000007A0 -/* 00A5C 80B9FD0C 000FC080 */ sll $t8, $t7, 2 -/* 00A60 80B9FD10 0258C821 */ addu $t9, $s2, $t8 -/* 00A64 80B9FD14 0C016A7D */ jal func_8005A9F4 -/* 00A68 80B9FD18 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 -/* 00A6C 80B9FD1C 862800B6 */ lh $t0, 0x00B6($s1) ## 000000B6 -/* 00A70 80B9FD20 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000 -/* 00A74 80B9FD24 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 00A78 80B9FD28 00484823 */ subu $t1, $v0, $t0 -/* 00A7C 80B9FD2C 01215021 */ addu $t2, $t1, $at -/* 00A80 80B9FD30 000A5C00 */ sll $t3, $t2, 16 -/* 00A84 80B9FD34 000B6403 */ sra $t4, $t3, 16 -/* 00A88 80B9FD38 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00 -/* 00A8C 80B9FD3C 3C0180BA */ lui $at, %hi(D_80B9FEE4) ## $at = 80BA0000 -/* 00A90 80B9FD40 C42AFEE4 */ lwc1 $f10, %lo(D_80B9FEE4)($at) -/* 00A94 80B9FD44 46803220 */ cvt.s.w $f8, $f6 -/* 00A98 80B9FD48 460A4302 */ mul.s $f12, $f8, $f10 -/* 00A9C 80B9FD4C 0C034348 */ jal Matrix_RotateY -/* 00AA0 80B9FD50 00000000 */ nop -/* 00AA4 80B9FD54 C7AC0064 */ lwc1 $f12, 0x0064($sp) -/* 00AA8 80B9FD58 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001 -/* 00AAC 80B9FD5C 44066000 */ mfc1 $a2, $f12 -/* 00AB0 80B9FD60 0C0342A3 */ jal Matrix_Scale -/* 00AB4 80B9FD64 46006386 */ mov.s $f14, $f12 -/* 00AB8 80B9FD68 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00ABC 80B9FD6C 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000 -/* 00AC0 80B9FD70 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003 -/* 00AC4 80B9FD74 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00AC8 80B9FD78 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0 -/* 00ACC 80B9FD7C AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 00AD0 80B9FD80 8E440000 */ lw $a0, 0x0000($s2) ## 00000000 -/* 00AD4 80B9FD84 3C0580BA */ lui $a1, %hi(D_80B9FEB8) ## $a1 = 80BA0000 -/* 00AD8 80B9FD88 24A5FEB8 */ addiu $a1, $a1, %lo(D_80B9FEB8) ## $a1 = 80B9FEB8 -/* 00ADC 80B9FD8C 240602E9 */ addiu $a2, $zero, 0x02E9 ## $a2 = 000002E9 -/* 00AE0 80B9FD90 0C0346A2 */ jal Matrix_NewMtx -/* 00AE4 80B9FD94 AFA20054 */ sw $v0, 0x0054($sp) -/* 00AE8 80B9FD98 8FA30054 */ lw $v1, 0x0054($sp) -/* 00AEC 80B9FD9C 3C190405 */ lui $t9, 0x0405 ## $t9 = 04050000 -/* 00AF0 80B9FDA0 2739D4E0 */ addiu $t9, $t9, 0xD4E0 ## $t9 = 0404D4E0 -/* 00AF4 80B9FDA4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00AF8 80B9FDA8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00AFC 80B9FDAC 3C18DE00 */ lui $t8, 0xDE00 ## $t8 = DE000000 -/* 00B00 80B9FDB0 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 00B04 80B9FDB4 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0 -/* 00B08 80B9FDB8 AC590004 */ sw $t9, 0x0004($v0) ## 00000004 -/* 00B0C 80B9FDBC AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -.L80B9FDC0: -/* 00B10 80B9FDC0 3C0680BA */ lui $a2, %hi(D_80B9FECC) ## $a2 = 80BA0000 -/* 00B14 80B9FDC4 24C6FECC */ addiu $a2, $a2, %lo(D_80B9FECC) ## $a2 = 80B9FECC -/* 00B18 80B9FDC8 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0 -/* 00B1C 80B9FDCC 8E450000 */ lw $a1, 0x0000($s2) ## 00000000 -/* 00B20 80B9FDD0 0C031AD5 */ jal Graph_CloseDisps -/* 00B24 80B9FDD4 240702ED */ addiu $a3, $zero, 0x02ED ## $a3 = 000002ED -/* 00B28 80B9FDD8 8FBF0044 */ lw $ra, 0x0044($sp) -/* 00B2C 80B9FDDC 8FB00038 */ lw $s0, 0x0038($sp) -/* 00B30 80B9FDE0 8FB1003C */ lw $s1, 0x003C($sp) -/* 00B34 80B9FDE4 8FB20040 */ lw $s2, 0x0040($sp) -/* 00B38 80B9FDE8 03E00008 */ jr $ra -/* 00B3C 80B9FDEC 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Init.s deleted file mode 100644 index efb2472366..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Init.s +++ /dev/null @@ -1,126 +0,0 @@ -glabel ObjSyokudai_Init -/* 00000 80B9F2B0 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 00004 80B9F2B4 AFBF002C */ sw $ra, 0x002C($sp) -/* 00008 80B9F2B8 AFB10028 */ sw $s1, 0x0028($sp) -/* 0000C 80B9F2BC AFB00024 */ sw $s0, 0x0024($sp) -/* 00010 80B9F2C0 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 00014 80B9F2C4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00018 80B9F2C8 3C0580BA */ lui $a1, %hi(D_80B9FE68) ## $a1 = 80BA0000 -/* 0001C 80B9F2CC 31CFF000 */ andi $t7, $t6, 0xF000 ## $t7 = 00000000 -/* 00020 80B9F2D0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00024 80B9F2D4 AFAF0034 */ sw $t7, 0x0034($sp) -/* 00028 80B9F2D8 0C01E037 */ jal Actor_ProcessInitChain - -/* 0002C 80B9F2DC 24A5FE68 */ addiu $a1, $a1, %lo(D_80B9FE68) ## $a1 = 80B9FE68 -/* 00030 80B9F2E0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00034 80B9F2E4 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4 -/* 00038 80B9F2E8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 0003C 80B9F2EC 44050000 */ mfc1 $a1, $f0 -/* 00040 80B9F2F0 44070000 */ mfc1 $a3, $f0 -/* 00044 80B9F2F4 0C00AC78 */ jal ActorShape_Init - -/* 00048 80B9F2F8 00000000 */ nop -/* 0004C 80B9F2FC 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00050 80B9F300 AFA50030 */ sw $a1, 0x0030($sp) -/* 00054 80B9F304 0C0170D9 */ jal Collider_InitCylinder - -/* 00058 80B9F308 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0005C 80B9F30C 3C0780BA */ lui $a3, %hi(D_80B9FE10) ## $a3 = 80BA0000 -/* 00060 80B9F310 8FA50030 */ lw $a1, 0x0030($sp) -/* 00064 80B9F314 24E7FE10 */ addiu $a3, $a3, %lo(D_80B9FE10) ## $a3 = 80B9FE10 -/* 00068 80B9F318 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0006C 80B9F31C 0C01712B */ jal Collider_SetCylinder - -/* 00070 80B9F320 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00074 80B9F324 8618001C */ lh $t8, 0x001C($s0) ## 0000001C -/* 00078 80B9F328 3C0880BA */ lui $t0, %hi(D_80B9FE78) ## $t0 = 80BA0000 -/* 0007C 80B9F32C 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198 -/* 00080 80B9F330 0018CB03 */ sra $t9, $t8, 12 -/* 00084 80B9F334 01194021 */ addu $t0, $t0, $t9 -/* 00088 80B9F338 9108FE78 */ lbu $t0, %lo(D_80B9FE78)($t0) -/* 0008C 80B9F33C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00090 80B9F340 A2080160 */ sb $t0, 0x0160($s0) ## 00000160 -/* 00094 80B9F344 0C0170D9 */ jal Collider_InitCylinder - -/* 00098 80B9F348 AFA50030 */ sw $a1, 0x0030($sp) -/* 0009C 80B9F34C 3C0780BA */ lui $a3, %hi(D_80B9FE3C) ## $a3 = 80BA0000 -/* 000A0 80B9F350 8FA50030 */ lw $a1, 0x0030($sp) -/* 000A4 80B9F354 24E7FE3C */ addiu $a3, $a3, %lo(D_80B9FE3C) ## $a3 = 80B9FE3C -/* 000A8 80B9F358 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 000AC 80B9F35C 0C01712B */ jal Collider_SetCylinder - -/* 000B0 80B9F360 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 000B4 80B9F364 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -/* 000B8 80B9F368 3C01428C */ lui $at, 0x428C ## $at = 428C0000 -/* 000BC 80B9F36C 44815000 */ mtc1 $at, $f10 ## $f10 = 70.00 -/* 000C0 80B9F370 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028 -/* 000C4 80B9F374 4600218D */ trunc.w.s $f6, $f4 -/* 000C8 80B9F378 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C -/* 000CC 80B9F37C 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF -/* 000D0 80B9F380 460A4400 */ add.s $f16, $f8, $f10 -/* 000D4 80B9F384 44053000 */ mfc1 $a1, $f6 -/* 000D8 80B9F388 A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE -/* 000DC 80B9F38C 4600218D */ trunc.w.s $f6, $f4 -/* 000E0 80B9F390 260401EC */ addiu $a0, $s0, 0x01EC ## $a0 = 000001EC -/* 000E4 80B9F394 240D00FF */ addiu $t5, $zero, 0x00FF ## $t5 = 000000FF -/* 000E8 80B9F398 4600848D */ trunc.w.s $f18, $f16 -/* 000EC 80B9F39C 44073000 */ mfc1 $a3, $f6 -/* 000F0 80B9F3A0 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF -/* 000F4 80B9F3A4 240F00B4 */ addiu $t7, $zero, 0x00B4 ## $t7 = 000000B4 -/* 000F8 80B9F3A8 44069000 */ mfc1 $a2, $f18 -/* 000FC 80B9F3AC 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 00100 80B9F3B0 00052C00 */ sll $a1, $a1, 16 -/* 00104 80B9F3B4 00073C00 */ sll $a3, $a3, 16 -/* 00108 80B9F3B8 00063400 */ sll $a2, $a2, 16 -/* 0010C 80B9F3BC 00063403 */ sra $a2, $a2, 16 -/* 00110 80B9F3C0 00073C03 */ sra $a3, $a3, 16 -/* 00114 80B9F3C4 00052C03 */ sra $a1, $a1, 16 -/* 00118 80B9F3C8 AFB8001C */ sw $t8, 0x001C($sp) -/* 0011C 80B9F3CC AFAF0018 */ sw $t7, 0x0018($sp) -/* 00120 80B9F3D0 AFAE0014 */ sw $t6, 0x0014($sp) -/* 00124 80B9F3D4 AFAD0010 */ sw $t5, 0x0010($sp) -/* 00128 80B9F3D8 0C01E77C */ jal Lights_PointGlowSetInfo - -/* 0012C 80B9F3DC AFA40030 */ sw $a0, 0x0030($sp) -/* 00130 80B9F3E0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00134 80B9F3E4 262507A8 */ addiu $a1, $s1, 0x07A8 ## $a1 = 000007A8 -/* 00138 80B9F3E8 0C01E9D9 */ jal LightContext_InsertLight - -/* 0013C 80B9F3EC 8FA60030 */ lw $a2, 0x0030($sp) -/* 00140 80B9F3F0 8603001C */ lh $v1, 0x001C($s0) ## 0000001C -/* 00144 80B9F3F4 AE0201E8 */ sw $v0, 0x01E8($s0) ## 000001E8 -/* 00148 80B9F3F8 8FA80034 */ lw $t0, 0x0034($sp) -/* 0014C 80B9F3FC 30790400 */ andi $t9, $v1, 0x0400 ## $t9 = 00000000 -/* 00150 80B9F400 17200006 */ bne $t9, $zero, .L80B9F41C -/* 00154 80B9F404 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 00158 80B9F408 11010006 */ beq $t0, $at, .L80B9F424 -/* 0015C 80B9F40C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00160 80B9F410 0C00B2D0 */ jal Flags_GetSwitch - -/* 00164 80B9F414 3065003F */ andi $a1, $v1, 0x003F ## $a1 = 00000000 -/* 00168 80B9F418 10400002 */ beq $v0, $zero, .L80B9F424 -.L80B9F41C: -/* 0016C 80B9F41C 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF -/* 00170 80B9F420 A60901E4 */ sh $t1, 0x01E4($s0) ## 000001E4 -.L80B9F424: -/* 00174 80B9F424 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00178 80B9F428 00000000 */ nop -/* 0017C 80B9F42C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 00180 80B9F430 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00 -/* 00184 80B9F434 3C0180BA */ lui $at, %hi(D_80B9FF90) ## $at = 80BA0000 -/* 00188 80B9F438 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0018C 80B9F43C 46080282 */ mul.s $f10, $f0, $f8 -/* 00190 80B9F440 3C054270 */ lui $a1, 0x4270 ## $a1 = 42700000 -/* 00194 80B9F444 4600540D */ trunc.w.s $f16, $f10 -/* 00198 80B9F448 440B8000 */ mfc1 $t3, $f16 -/* 0019C 80B9F44C 00000000 */ nop -/* 001A0 80B9F450 A20B01E6 */ sb $t3, 0x01E6($s0) ## 000001E6 -/* 001A4 80B9F454 0C00B56E */ jal Actor_SetHeight - -/* 001A8 80B9F458 AC20FF90 */ sw $zero, %lo(D_80B9FF90)($at) -/* 001AC 80B9F45C 8FBF002C */ lw $ra, 0x002C($sp) -/* 001B0 80B9F460 8FB00024 */ lw $s0, 0x0024($sp) -/* 001B4 80B9F464 8FB10028 */ lw $s1, 0x0028($sp) -/* 001B8 80B9F468 03E00008 */ jr $ra -/* 001BC 80B9F46C 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Update.s deleted file mode 100644 index c4ffa2a9e3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Update.s +++ /dev/null @@ -1,438 +0,0 @@ -glabel ObjSyokudai_Update -/* 00214 80B9F4C4 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80 -/* 00218 80B9F4C8 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0021C 80B9F4CC AFB00020 */ sw $s0, 0x0020($sp) -/* 00220 80B9F4D0 AFA50084 */ sw $a1, 0x0084($sp) -/* 00224 80B9F4D4 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00228 80B9F4D8 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 0022C 80B9F4DC 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A -/* 00230 80B9F4E0 00024983 */ sra $t1, $v0, 6 -/* 00234 80B9F4E4 3129000F */ andi $t1, $t1, 0x000F ## $t1 = 00000000 -/* 00238 80B9F4E8 304E003F */ andi $t6, $v0, 0x003F ## $t6 = 00000000 -/* 0023C 80B9F4EC 304FF000 */ andi $t7, $v0, 0xF000 ## $t7 = 00000000 -/* 00240 80B9F4F0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00244 80B9F4F4 AFAE0070 */ sw $t6, 0x0070($sp) -/* 00248 80B9F4F8 AFAF006C */ sw $t7, 0x006C($sp) -/* 0024C 80B9F4FC AFB8005C */ sw $t8, 0x005C($sp) -/* 00250 80B9F500 A3A0005B */ sb $zero, 0x005B($sp) -/* 00254 80B9F504 15210002 */ bne $t1, $at, .L80B9F510 -/* 00258 80B9F508 AFA90068 */ sw $t1, 0x0068($sp) -/* 0025C 80B9F50C 24090018 */ addiu $t1, $zero, 0x0018 ## $t1 = 00000018 -.L80B9F510: -/* 00260 80B9F510 8FA40084 */ lw $a0, 0x0084($sp) -/* 00264 80B9F514 8E060024 */ lw $a2, 0x0024($s0) ## 00000024 -/* 00268 80B9F518 8E07002C */ lw $a3, 0x002C($s0) ## 0000002C -/* 0026C 80B9F51C 27AA0060 */ addiu $t2, $sp, 0x0060 ## $t2 = FFFFFFE0 -/* 00270 80B9F520 27AB0064 */ addiu $t3, $sp, 0x0064 ## $t3 = FFFFFFE4 -/* 00274 80B9F524 AFAB0014 */ sw $t3, 0x0014($sp) -/* 00278 80B9F528 AFAA0010 */ sw $t2, 0x0010($sp) -/* 0027C 80B9F52C AFA90074 */ sw $t1, 0x0074($sp) -/* 00280 80B9F530 0C010891 */ jal func_80042244 -/* 00284 80B9F534 248507C0 */ addiu $a1, $a0, 0x07C0 ## $a1 = 000007C0 -/* 00288 80B9F538 10400018 */ beq $v0, $zero, .L80B9F59C -/* 0028C 80B9F53C 8FA90074 */ lw $t1, 0x0074($sp) -/* 00290 80B9F540 C7A60060 */ lwc1 $f6, 0x0060($sp) -/* 00294 80B9F544 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028 -/* 00298 80B9F548 3C014250 */ lui $at, 0x4250 ## $at = 42500000 -/* 0029C 80B9F54C 44812000 */ mtc1 $at, $f4 ## $f4 = 52.00 -/* 002A0 80B9F550 46083281 */ sub.s $f10, $f6, $f8 -/* 002A4 80B9F554 460A203C */ c.lt.s $f4, $f10 -/* 002A8 80B9F558 00000000 */ nop -/* 002AC 80B9F55C 45020010 */ bc1fl .L80B9F5A0 -/* 002B0 80B9F560 860F001C */ lh $t7, 0x001C($s0) ## 0000001C -/* 002B4 80B9F564 A60001E4 */ sh $zero, 0x01E4($s0) ## 000001E4 -/* 002B8 80B9F568 8FAC006C */ lw $t4, 0x006C($sp) -/* 002BC 80B9F56C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 002C0 80B9F570 8FA50070 */ lw $a1, 0x0070($sp) -/* 002C4 80B9F574 158100E6 */ bne $t4, $at, .L80B9F910 -/* 002C8 80B9F578 8FA40084 */ lw $a0, 0x0084($sp) -/* 002CC 80B9F57C 0C00B2ED */ jal Flags_UnsetSwitch - -/* 002D0 80B9F580 AFA90074 */ sw $t1, 0x0074($sp) -/* 002D4 80B9F584 8FA90074 */ lw $t1, 0x0074($sp) -/* 002D8 80B9F588 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 002DC 80B9F58C 512000E1 */ beql $t1, $zero, .L80B9F914 -/* 002E0 80B9F590 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 002E4 80B9F594 100000DE */ beq $zero, $zero, .L80B9F910 -/* 002E8 80B9F598 A60D01E4 */ sh $t5, 0x01E4($s0) ## 000001E4 -.L80B9F59C: -/* 002EC 80B9F59C 860F001C */ lh $t7, 0x001C($s0) ## 0000001C -.L80B9F5A0: -/* 002F0 80B9F5A0 8FAE0084 */ lw $t6, 0x0084($sp) -/* 002F4 80B9F5A4 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 002F8 80B9F5A8 31F80400 */ andi $t8, $t7, 0x0400 ## $t8 = 00000000 -/* 002FC 80B9F5AC 13000003 */ beq $t8, $zero, .L80B9F5BC -/* 00300 80B9F5B0 8DC81C44 */ lw $t0, 0x1C44($t6) ## 00001C44 -/* 00304 80B9F5B4 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF -/* 00308 80B9F5B8 A61901E4 */ sh $t9, 0x01E4($s0) ## 000001E4 -.L80B9F5BC: -/* 0030C 80B9F5BC 11200025 */ beq $t1, $zero, .L80B9F654 -/* 00310 80B9F5C0 8FA40084 */ lw $a0, 0x0084($sp) -/* 00314 80B9F5C4 8FA50070 */ lw $a1, 0x0070($sp) -/* 00318 80B9F5C8 AFA7004C */ sw $a3, 0x004C($sp) -/* 0031C 80B9F5CC AFA80054 */ sw $t0, 0x0054($sp) -/* 00320 80B9F5D0 0C00B2D0 */ jal Flags_GetSwitch - -/* 00324 80B9F5D4 AFA90074 */ sw $t1, 0x0074($sp) -/* 00328 80B9F5D8 8FA7004C */ lw $a3, 0x004C($sp) -/* 0032C 80B9F5DC 8FA80054 */ lw $t0, 0x0054($sp) -/* 00330 80B9F5E0 10400017 */ beq $v0, $zero, .L80B9F640 -/* 00334 80B9F5E4 8FA90074 */ lw $t1, 0x0074($sp) -/* 00338 80B9F5E8 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -/* 0033C 80B9F5EC 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 00340 80B9F5F0 1460000F */ bne $v1, $zero, .L80B9F630 -/* 00344 80B9F5F4 00000000 */ nop -/* 00348 80B9F5F8 A60A01E4 */ sh $t2, 0x01E4($s0) ## 000001E4 -/* 0034C 80B9F5FC 8FAB006C */ lw $t3, 0x006C($sp) -/* 00350 80B9F600 8FA40084 */ lw $a0, 0x0084($sp) -/* 00354 80B9F604 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00358 80B9F608 55600013 */ bnel $t3, $zero, .L80B9F658 -/* 0035C 80B9F60C 920F01A9 */ lbu $t7, 0x01A9($s0) ## 000001A9 -/* 00360 80B9F610 AFA7004C */ sw $a3, 0x004C($sp) -/* 00364 80B9F614 AFA80054 */ sw $t0, 0x0054($sp) -/* 00368 80B9F618 0C020120 */ jal func_80080480 -/* 0036C 80B9F61C AFA90074 */ sw $t1, 0x0074($sp) -/* 00370 80B9F620 8FA7004C */ lw $a3, 0x004C($sp) -/* 00374 80B9F624 8FA80054 */ lw $t0, 0x0054($sp) -/* 00378 80B9F628 1000000A */ beq $zero, $zero, .L80B9F654 -/* 0037C 80B9F62C 8FA90074 */ lw $t1, 0x0074($sp) -.L80B9F630: -/* 00380 80B9F630 18600008 */ blez $v1, .L80B9F654 -/* 00384 80B9F634 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF -/* 00388 80B9F638 10000006 */ beq $zero, $zero, .L80B9F654 -/* 0038C 80B9F63C A60C01E4 */ sh $t4, 0x01E4($s0) ## 000001E4 -.L80B9F640: -/* 00390 80B9F640 860D01E4 */ lh $t5, 0x01E4($s0) ## 000001E4 -/* 00394 80B9F644 240E0014 */ addiu $t6, $zero, 0x0014 ## $t6 = 00000014 -/* 00398 80B9F648 05A30003 */ bgezl $t5, .L80B9F658 -/* 0039C 80B9F64C 920F01A9 */ lbu $t7, 0x01A9($s0) ## 000001A9 -/* 003A0 80B9F650 A60E01E4 */ sh $t6, 0x01E4($s0) ## 000001E4 -.L80B9F654: -/* 003A4 80B9F654 920F01A9 */ lbu $t7, 0x01A9($s0) ## 000001A9 -.L80B9F658: -/* 003A8 80B9F658 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000 -/* 003AC 80B9F65C 5300000C */ beql $t8, $zero, .L80B9F690 -/* 003B0 80B9F660 810B0151 */ lb $t3, 0x0151($t0) ## 00000151 -/* 003B4 80B9F664 8E1901D4 */ lw $t9, 0x01D4($s0) ## 000001D4 -/* 003B8 80B9F668 3C010002 */ lui $at, 0x0002 ## $at = 00020000 -/* 003BC 80B9F66C 34210820 */ ori $at, $at, 0x0820 ## $at = 00020820 -/* 003C0 80B9F670 8F220000 */ lw $v0, 0x0000($t9) ## 00000000 -/* 003C4 80B9F674 00415024 */ and $t2, $v0, $at -/* 003C8 80B9F678 11400002 */ beq $t2, $zero, .L80B9F684 -/* 003CC 80B9F67C 00000000 */ nop -/* 003D0 80B9F680 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001 -.L80B9F684: -/* 003D4 80B9F684 10000021 */ beq $zero, $zero, .L80B9F70C -/* 003D8 80B9F688 AFA20048 */ sw $v0, 0x0048($sp) -/* 003DC 80B9F68C 810B0151 */ lb $t3, 0x0151($t0) ## 00000151 -.L80B9F690: -/* 003E0 80B9F690 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 003E4 80B9F694 250408B8 */ addiu $a0, $t0, 0x08B8 ## $a0 = 000008B8 -/* 003E8 80B9F698 1561001C */ bne $t3, $at, .L80B9F70C -/* 003EC 80B9F69C 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 003F0 80B9F6A0 27A6003C */ addiu $a2, $sp, 0x003C ## $a2 = FFFFFFBC -/* 003F4 80B9F6A4 AFA7004C */ sw $a3, 0x004C($sp) -/* 003F8 80B9F6A8 AFA80054 */ sw $t0, 0x0054($sp) -/* 003FC 80B9F6AC 0C01DFB4 */ jal Math_Vec3f_Diff - ## Vec3f_Sub -/* 00400 80B9F6B0 AFA90074 */ sw $t1, 0x0074($sp) -/* 00404 80B9F6B4 3C014286 */ lui $at, 0x4286 ## $at = 42860000 -/* 00408 80B9F6B8 C7A00040 */ lwc1 $f0, 0x0040($sp) -/* 0040C 80B9F6BC 44818000 */ mtc1 $at, $f16 ## $f16 = 67.00 -/* 00410 80B9F6C0 C7A2003C */ lwc1 $f2, 0x003C($sp) -/* 00414 80B9F6C4 C7AC0044 */ lwc1 $f12, 0x0044($sp) -/* 00418 80B9F6C8 46100001 */ sub.s $f0, $f0, $f16 -/* 0041C 80B9F6CC 46021482 */ mul.s $f18, $f2, $f2 -/* 00420 80B9F6D0 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000 -/* 00424 80B9F6D4 44818000 */ mtc1 $at, $f16 ## $f16 = 400.00 -/* 00428 80B9F6D8 46000182 */ mul.s $f6, $f0, $f0 -/* 0042C 80B9F6DC 8FA7004C */ lw $a3, 0x004C($sp) -/* 00430 80B9F6E0 8FA80054 */ lw $t0, 0x0054($sp) -/* 00434 80B9F6E4 460C6102 */ mul.s $f4, $f12, $f12 -/* 00438 80B9F6E8 8FA90074 */ lw $t1, 0x0074($sp) -/* 0043C 80B9F6EC E7A00040 */ swc1 $f0, 0x0040($sp) -/* 00440 80B9F6F0 46069200 */ add.s $f8, $f18, $f6 -/* 00444 80B9F6F4 46044280 */ add.s $f10, $f8, $f4 -/* 00448 80B9F6F8 4610503C */ c.lt.s $f10, $f16 -/* 0044C 80B9F6FC 00000000 */ nop -/* 00450 80B9F700 45000002 */ bc1f .L80B9F70C -/* 00454 80B9F704 00000000 */ nop -/* 00458 80B9F708 2407FFFF */ addiu $a3, $zero, 0xFFFF ## $a3 = FFFFFFFF -.L80B9F70C: -/* 0045C 80B9F70C 10E00080 */ beq $a3, $zero, .L80B9F910 -/* 00460 80B9F710 8FA20048 */ lw $v0, 0x0048($sp) -/* 00464 80B9F714 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -/* 00468 80B9F718 8FAC006C */ lw $t4, 0x006C($sp) -/* 0046C 80B9F71C 10600037 */ beq $v1, $zero, .L80B9F7FC -/* 00470 80B9F720 00000000 */ nop -/* 00474 80B9F724 04E10017 */ bgez $a3, .L80B9F784 -/* 00478 80B9F728 304F0020 */ andi $t7, $v0, 0x0020 ## $t7 = 00000000 -/* 0047C 80B9F72C 85020860 */ lh $v0, 0x0860($t0) ## 00000860 -/* 00480 80B9F730 3C078013 */ lui $a3, %hi(D_801333E0) -/* 00484 80B9F734 24E733E0 */ addiu $a3, %lo(D_801333E0) -/* 00488 80B9F738 1440000D */ bne $v0, $zero, .L80B9F770 -/* 0048C 80B9F73C 284100C8 */ slti $at, $v0, 0x00C8 -/* 00490 80B9F740 240C00D2 */ addiu $t4, $zero, 0x00D2 ## $t4 = 000000D2 -/* 00494 80B9F744 3C0D8013 */ lui $t5, %hi(D_801333E8) -/* 00498 80B9F748 A50C0860 */ sh $t4, 0x0860($t0) ## 00000860 -/* 0049C 80B9F74C 25AD33E8 */ addiu $t5, %lo(D_801333E8) -/* 004A0 80B9F750 AFAD0014 */ sw $t5, 0x0014($sp) -/* 004A4 80B9F754 AFA70010 */ sw $a3, 0x0010($sp) -/* 004A8 80B9F758 24042822 */ addiu $a0, $zero, 0x2822 ## $a0 = 00002822 -/* 004AC 80B9F75C 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4 -/* 004B0 80B9F760 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 004B4 80B9F764 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -/* 004B8 80B9F768 10000014 */ beq $zero, $zero, .L80B9F7BC -/* 004BC 80B9F76C 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -.L80B9F770: -/* 004C0 80B9F770 10200012 */ beq $at, $zero, .L80B9F7BC -/* 004C4 80B9F774 240E00C8 */ addiu $t6, $zero, 0x00C8 ## $t6 = 000000C8 -/* 004C8 80B9F778 A50E0860 */ sh $t6, 0x0860($t0) ## 00000860 -/* 004CC 80B9F77C 1000000F */ beq $zero, $zero, .L80B9F7BC -/* 004D0 80B9F780 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -.L80B9F784: -/* 004D4 80B9F784 11E0000D */ beq $t7, $zero, .L80B9F7BC -/* 004D8 80B9F788 00000000 */ nop -/* 004DC 80B9F78C 8E0201A0 */ lw $v0, 0x01A0($s0) ## 000001A0 -/* 004E0 80B9F790 8C580130 */ lw $t8, 0x0130($v0) ## 00000130 -/* 004E4 80B9F794 13000009 */ beq $t8, $zero, .L80B9F7BC -/* 004E8 80B9F798 00000000 */ nop -/* 004EC 80B9F79C 84590000 */ lh $t9, 0x0000($v0) ## 00000000 -/* 004F0 80B9F7A0 24010016 */ addiu $at, $zero, 0x0016 ## $at = 00000016 -/* 004F4 80B9F7A4 240A0800 */ addiu $t2, $zero, 0x0800 ## $t2 = 00000800 -/* 004F8 80B9F7A8 17210004 */ bne $t9, $at, .L80B9F7BC -/* 004FC 80B9F7AC 00000000 */ nop -/* 00500 80B9F7B0 A440001C */ sh $zero, 0x001C($v0) ## 0000001C -/* 00504 80B9F7B4 AC4A01A8 */ sw $t2, 0x01A8($v0) ## 000001A8 -/* 00508 80B9F7B8 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -.L80B9F7BC: -/* 0050C 80B9F7BC 04600054 */ bltz $v1, .L80B9F910 -/* 00510 80B9F7C0 8FA20068 */ lw $v0, 0x0068($sp) -/* 00514 80B9F7C4 00400821 */ addu $at, $v0, $zero -/* 00518 80B9F7C8 00021080 */ sll $v0, $v0, 2 -/* 0051C 80B9F7CC 00411023 */ subu $v0, $v0, $at -/* 00520 80B9F7D0 000210C0 */ sll $v0, $v0, 3 -/* 00524 80B9F7D4 00411021 */ addu $v0, $v0, $at -/* 00528 80B9F7D8 00021040 */ sll $v0, $v0, 1 -/* 0052C 80B9F7DC 24420064 */ addiu $v0, $v0, 0x0064 ## $v0 = 00000064 -/* 00530 80B9F7E0 0062082A */ slt $at, $v1, $v0 -/* 00534 80B9F7E4 1020004A */ beq $at, $zero, .L80B9F910 -/* 00538 80B9F7E8 8FAB006C */ lw $t3, 0x006C($sp) -/* 0053C 80B9F7EC 51600049 */ beql $t3, $zero, .L80B9F914 -/* 00540 80B9F7F0 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00544 80B9F7F4 10000046 */ beq $zero, $zero, .L80B9F910 -/* 00548 80B9F7F8 A60201E4 */ sh $v0, 0x01E4($s0) ## 000001E4 -.L80B9F7FC: -/* 0054C 80B9F7FC 51800045 */ beql $t4, $zero, .L80B9F914 -/* 00550 80B9F800 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00554 80B9F804 18E00005 */ blez $a3, .L80B9F81C -/* 00558 80B9F808 3C010002 */ lui $at, 0x0002 ## $at = 00020000 -/* 0055C 80B9F80C 34210800 */ ori $at, $at, 0x0800 ## $at = 00020800 -/* 00560 80B9F810 00416824 */ and $t5, $v0, $at -/* 00564 80B9F814 15A00006 */ bne $t5, $zero, .L80B9F830 -/* 00568 80B9F818 00000000 */ nop -.L80B9F81C: -/* 0056C 80B9F81C 04E3003D */ bgezl $a3, .L80B9F914 -/* 00570 80B9F820 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00574 80B9F824 850E0860 */ lh $t6, 0x0860($t0) ## 00000860 -/* 00578 80B9F828 51C0003A */ beql $t6, $zero, .L80B9F914 -/* 0057C 80B9F82C 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -.L80B9F830: -/* 00580 80B9F830 04E10007 */ bgez $a3, .L80B9F850 -/* 00584 80B9F834 3C0B80BA */ lui $t3, %hi(D_80B9FF90) ## $t3 = 80BA0000 -/* 00588 80B9F838 850F0860 */ lh $t7, 0x0860($t0) ## 00000860 -/* 0058C 80B9F83C 241800C8 */ addiu $t8, $zero, 0x00C8 ## $t8 = 000000C8 -/* 00590 80B9F840 29E100C8 */ slti $at, $t7, 0x00C8 -/* 00594 80B9F844 10200002 */ beq $at, $zero, .L80B9F850 -/* 00598 80B9F848 00000000 */ nop -/* 0059C 80B9F84C A5180860 */ sh $t8, 0x0860($t0) ## 00000860 -.L80B9F850: -/* 005A0 80B9F850 1520000E */ bne $t1, $zero, .L80B9F88C -/* 005A4 80B9F854 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF -/* 005A8 80B9F858 A61901E4 */ sh $t9, 0x01E4($s0) ## 000001E4 -/* 005AC 80B9F85C 8FAA006C */ lw $t2, 0x006C($sp) -/* 005B0 80B9F860 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 005B4 80B9F864 8FA40084 */ lw $a0, 0x0084($sp) -/* 005B8 80B9F868 1141001F */ beq $t2, $at, .L80B9F8E8 -/* 005BC 80B9F86C 00000000 */ nop -/* 005C0 80B9F870 0C00B2DD */ jal Flags_SetSwitch - -/* 005C4 80B9F874 8FA50070 */ lw $a1, 0x0070($sp) -/* 005C8 80B9F878 8FA40084 */ lw $a0, 0x0084($sp) -/* 005CC 80B9F87C 0C020120 */ jal func_80080480 -/* 005D0 80B9F880 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 005D4 80B9F884 10000018 */ beq $zero, $zero, .L80B9F8E8 -/* 005D8 80B9F888 00000000 */ nop -.L80B9F88C: -/* 005DC 80B9F88C 8D6BFF90 */ lw $t3, %lo(D_80B9FF90)($t3) -/* 005E0 80B9F890 3C0180BA */ lui $at, %hi(D_80B9FF90) ## $at = 80BA0000 -/* 005E4 80B9F894 8FAE0068 */ lw $t6, 0x0068($sp) -/* 005E8 80B9F898 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001 -/* 005EC 80B9F89C AC2CFF90 */ sw $t4, %lo(D_80B9FF90)($at) -/* 005F0 80B9F8A0 0189082A */ slt $at, $t4, $t1 -/* 005F4 80B9F8A4 1420000A */ bne $at, $zero, .L80B9F8D0 -/* 005F8 80B9F8A8 000E7880 */ sll $t7, $t6, 2 -/* 005FC 80B9F8AC 8FA40084 */ lw $a0, 0x0084($sp) -/* 00600 80B9F8B0 0C00B2DD */ jal Flags_SetSwitch - -/* 00604 80B9F8B4 8FA50070 */ lw $a1, 0x0070($sp) -/* 00608 80B9F8B8 8FA40084 */ lw $a0, 0x0084($sp) -/* 0060C 80B9F8BC 0C020120 */ jal func_80080480 -/* 00610 80B9F8C0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00614 80B9F8C4 240DFFFF */ addiu $t5, $zero, 0xFFFF ## $t5 = FFFFFFFF -/* 00618 80B9F8C8 10000007 */ beq $zero, $zero, .L80B9F8E8 -/* 0061C 80B9F8CC A60D01E4 */ sh $t5, 0x01E4($s0) ## 000001E4 -.L80B9F8D0: -/* 00620 80B9F8D0 01EE7823 */ subu $t7, $t7, $t6 -/* 00624 80B9F8D4 000F78C0 */ sll $t7, $t7, 3 -/* 00628 80B9F8D8 01EE7821 */ addu $t7, $t7, $t6 -/* 0062C 80B9F8DC 000F7840 */ sll $t7, $t7, 1 -/* 00630 80B9F8E0 25F8006E */ addiu $t8, $t7, 0x006E ## $t8 = 0000006E -/* 00634 80B9F8E4 A61801E4 */ sh $t8, 0x01E4($s0) ## 000001E4 -.L80B9F8E8: -/* 00638 80B9F8E8 3C078013 */ lui $a3, %hi(D_801333E0) -/* 0063C 80B9F8EC 3C198013 */ lui $t9, %hi(D_801333E8) -/* 00640 80B9F8F0 24E733E0 */ addiu $a3, %lo(D_801333E0) -/* 00644 80B9F8F4 273933E8 */ addiu $t9, %lo(D_801333E8) -/* 00648 80B9F8F8 AFB90014 */ sw $t9, 0x0014($sp) -/* 0064C 80B9F8FC AFA70010 */ sw $a3, 0x0010($sp) -/* 00650 80B9F900 24042822 */ addiu $a0, $zero, 0x2822 ## $a0 = 00002822 -/* 00654 80B9F904 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4 -/* 00658 80B9F908 0C03DCE3 */ jal Audio_PlaySoundGeneral - -/* 0065C 80B9F90C 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004 -.L80B9F910: -/* 00660 80B9F910 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -.L80B9F914: -/* 00664 80B9F914 AFA5002C */ sw $a1, 0x002C($sp) -/* 00668 80B9F918 0C0189B7 */ jal Collider_CylinderUpdate - -/* 0066C 80B9F91C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00670 80B9F920 8FA40084 */ lw $a0, 0x0084($sp) -/* 00674 80B9F924 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00678 80B9F928 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 0067C 80B9F92C 00812821 */ addu $a1, $a0, $at -/* 00680 80B9F930 AFA50030 */ sw $a1, 0x0030($sp) -/* 00684 80B9F934 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOT -/* 00688 80B9F938 8FA6002C */ lw $a2, 0x002C($sp) -/* 0068C 80B9F93C 8FA40084 */ lw $a0, 0x0084($sp) -/* 00690 80B9F940 8FA50030 */ lw $a1, 0x0030($sp) -/* 00694 80B9F944 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00698 80B9F948 8FA6002C */ lw $a2, 0x002C($sp) -/* 0069C 80B9F94C 26060198 */ addiu $a2, $s0, 0x0198 ## $a2 = 00000198 -/* 006A0 80B9F950 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000198 -/* 006A4 80B9F954 AFA6002C */ sw $a2, 0x002C($sp) -/* 006A8 80B9F958 0C0189B7 */ jal Collider_CylinderUpdate - -/* 006AC 80B9F95C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 006B0 80B9F960 8FA40084 */ lw $a0, 0x0084($sp) -/* 006B4 80B9F964 8FA6002C */ lw $a2, 0x002C($sp) -/* 006B8 80B9F968 0C01767D */ jal CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 006BC 80B9F96C 8FA50030 */ lw $a1, 0x0030($sp) -/* 006C0 80B9F970 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -/* 006C4 80B9F974 1860000D */ blez $v1, .L80B9F9AC -/* 006C8 80B9F978 246AFFFF */ addiu $t2, $v1, 0xFFFF ## $t2 = FFFFFFFF -/* 006CC 80B9F97C A60A01E4 */ sh $t2, 0x01E4($s0) ## 000001E4 -/* 006D0 80B9F980 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -/* 006D4 80B9F984 8FAB006C */ lw $t3, 0x006C($sp) -/* 006D8 80B9F988 14600008 */ bne $v1, $zero, .L80B9F9AC -/* 006DC 80B9F98C 00000000 */ nop -/* 006E0 80B9F990 11600006 */ beq $t3, $zero, .L80B9F9AC -/* 006E4 80B9F994 3C0280BA */ lui $v0, %hi(D_80B9FF90) ## $v0 = 80BA0000 -/* 006E8 80B9F998 2442FF90 */ addiu $v0, $v0, %lo(D_80B9FF90) ## $v0 = 80B9FF90 -/* 006EC 80B9F99C 8C4C0000 */ lw $t4, 0x0000($v0) ## 80B9FF90 -/* 006F0 80B9F9A0 258DFFFF */ addiu $t5, $t4, 0xFFFF ## $t5 = FFFFFFFF -/* 006F4 80B9F9A4 AC4D0000 */ sw $t5, 0x0000($v0) ## 80B9FF90 -/* 006F8 80B9F9A8 860301E4 */ lh $v1, 0x01E4($s0) ## 000001E4 -.L80B9F9AC: -/* 006FC 80B9F9AC 5060003F */ beql $v1, $zero, .L80B9FAAC -/* 00700 80B9F9B0 93A6005B */ lbu $a2, 0x005B($sp) -/* 00704 80B9F9B4 04600002 */ bltz $v1, .L80B9F9C0 -/* 00708 80B9F9B8 28610014 */ slti $at, $v1, 0x0014 -/* 0070C 80B9F9BC 14200003 */ bne $at, $zero, .L80B9F9CC -.L80B9F9C0: -/* 00710 80B9F9C0 240E00C8 */ addiu $t6, $zero, 0x00C8 ## $t6 = 000000C8 -/* 00714 80B9F9C4 1000000D */ beq $zero, $zero, .L80B9F9FC -/* 00718 80B9F9C8 AFAE005C */ sw $t6, 0x005C($sp) -.L80B9F9CC: -/* 0071C 80B9F9CC 44839000 */ mtc1 $v1, $f18 ## $f18 = 0.00 -/* 00720 80B9F9D0 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 00724 80B9F9D4 44814000 */ mtc1 $at, $f8 ## $f8 = 200.00 -/* 00728 80B9F9D8 468091A0 */ cvt.s.w $f6, $f18 -/* 0072C 80B9F9DC 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 00730 80B9F9E0 44815000 */ mtc1 $at, $f10 ## $f10 = 20.00 -/* 00734 80B9F9E4 46083102 */ mul.s $f4, $f6, $f8 -/* 00738 80B9F9E8 460A2403 */ div.s $f16, $f4, $f10 -/* 0073C 80B9F9EC 4600848D */ trunc.w.s $f18, $f16 -/* 00740 80B9F9F0 44189000 */ mfc1 $t8, $f18 -/* 00744 80B9F9F4 00000000 */ nop -/* 00748 80B9F9F8 AFB8005C */ sw $t8, 0x005C($sp) -.L80B9F9FC: -/* 0074C 80B9F9FC 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00750 80B9FA00 00000000 */ nop -/* 00754 80B9FA04 3C0142FE */ lui $at, 0x42FE ## $at = 42FE0000 -/* 00758 80B9FA08 44813000 */ mtc1 $at, $f6 ## $f6 = 127.00 -/* 0075C 80B9FA0C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 00760 80B9FA10 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 00764 80B9FA14 46060202 */ mul.s $f8, $f0, $f6 -/* 00768 80B9FA18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0076C 80B9FA1C 24052031 */ addiu $a1, $zero, 0x2031 ## $a1 = 00002031 -/* 00770 80B9FA20 4459F800 */ cfc1 $t9, $31 -/* 00774 80B9FA24 44CAF800 */ ctc1 $t2, $31 -/* 00778 80B9FA28 00000000 */ nop -/* 0077C 80B9FA2C 46004124 */ cvt.w.s $f4, $f8 -/* 00780 80B9FA30 444AF800 */ cfc1 $t2, $31 -/* 00784 80B9FA34 00000000 */ nop -/* 00788 80B9FA38 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 0078C 80B9FA3C 51400013 */ beql $t2, $zero, .L80B9FA8C -/* 00790 80B9FA40 440A2000 */ mfc1 $t2, $f4 -/* 00794 80B9FA44 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00 -/* 00798 80B9FA48 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 0079C 80B9FA4C 46044101 */ sub.s $f4, $f8, $f4 -/* 007A0 80B9FA50 44CAF800 */ ctc1 $t2, $31 -/* 007A4 80B9FA54 00000000 */ nop -/* 007A8 80B9FA58 46002124 */ cvt.w.s $f4, $f4 -/* 007AC 80B9FA5C 444AF800 */ cfc1 $t2, $31 -/* 007B0 80B9FA60 00000000 */ nop -/* 007B4 80B9FA64 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 007B8 80B9FA68 15400005 */ bne $t2, $zero, .L80B9FA80 -/* 007BC 80B9FA6C 00000000 */ nop -/* 007C0 80B9FA70 440A2000 */ mfc1 $t2, $f4 -/* 007C4 80B9FA74 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 007C8 80B9FA78 10000007 */ beq $zero, $zero, .L80B9FA98 -/* 007CC 80B9FA7C 01415025 */ or $t2, $t2, $at ## $t2 = 80000000 -.L80B9FA80: -/* 007D0 80B9FA80 10000005 */ beq $zero, $zero, .L80B9FA98 -/* 007D4 80B9FA84 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 007D8 80B9FA88 440A2000 */ mfc1 $t2, $f4 -.L80B9FA8C: -/* 007DC 80B9FA8C 00000000 */ nop -/* 007E0 80B9FA90 0540FFFB */ bltz $t2, .L80B9FA80 -/* 007E4 80B9FA94 00000000 */ nop -.L80B9FA98: -/* 007E8 80B9FA98 44D9F800 */ ctc1 $t9, $31 -/* 007EC 80B9FA9C 254C0080 */ addiu $t4, $t2, 0x0080 ## $t4 = 0000007F -/* 007F0 80B9FAA0 0C00BE5D */ jal func_8002F974 -/* 007F4 80B9FAA4 A3AC005B */ sb $t4, 0x005B($sp) -/* 007F8 80B9FAA8 93A6005B */ lbu $a2, 0x005B($sp) -.L80B9FAAC: -/* 007FC 80B9FAAC 8FAE005C */ lw $t6, 0x005C($sp) -/* 00800 80B9FAB0 260401EC */ addiu $a0, $s0, 0x01EC ## $a0 = 000001EC -/* 00804 80B9FAB4 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00808 80B9FAB8 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 0080C 80B9FABC 0C01E796 */ jal Lights_PointSetColorAndRadius - -/* 00810 80B9FAC0 AFAE0010 */ sw $t6, 0x0010($sp) -/* 00814 80B9FAC4 920F01E6 */ lbu $t7, 0x01E6($s0) ## 000001E6 -/* 00818 80B9FAC8 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 0081C 80B9FACC A21801E6 */ sb $t8, 0x01E6($s0) ## 000001E6 -/* 00820 80B9FAD0 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00824 80B9FAD4 8FB00020 */ lw $s0, 0x0020($sp) -/* 00828 80B9FAD8 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000 -/* 0082C 80B9FADC 03E00008 */ jr $ra -/* 00830 80B9FAE0 00000000 */ nop diff --git a/data/overlays/actors/z_obj_syokudai.bss.s b/data/overlays/actors/z_obj_syokudai.bss.s deleted file mode 100644 index 0c89d1df66..0000000000 --- a/data/overlays/actors/z_obj_syokudai.bss.s +++ /dev/null @@ -1,14 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -.balign 16 - -glabel D_80B9FF90 - .space 0x10 - diff --git a/data/overlays/actors/z_obj_syokudai.data.s b/data/overlays/actors/z_obj_syokudai.data.s deleted file mode 100644 index 756162ae81..0000000000 --- a/data/overlays/actors/z_obj_syokudai.data.s +++ /dev/null @@ -1,28 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .data - -.balign 16 - -glabel Obj_Syokudai_InitVars - .word 0x005E0600, 0x00000410, 0x00A40000, 0x000001FC -.word ObjSyokudai_Init -.word ObjSyokudai_Destroy -.word ObjSyokudai_Update -.word ObjSyokudai_Draw -glabel D_80B9FE10 - .word 0x09000D39, 0x20010000, 0x02000000, 0x00100000, 0x00000000, 0xEE01FFFF, 0x00000000, 0x00050100, 0x000C002D, 0x00000000, 0x00000000 -glabel D_80B9FE3C - .word 0x0A000900, 0x00010000, 0x02000000, 0x00000000, 0x00000000, 0x00020820, 0x00000000, 0x00010000, 0x000F002D, 0x002D0000, 0x00000000 -glabel D_80B9FE68 - .word 0xC85003E8, 0xB0F40FA0, 0xB0F80320, 0x30FC0320 -glabel D_80B9FE78 - .word 0x090B0B00 -glabel D_80B9FE7C - .word 0x060003A0, 0x06000B90, 0x06000870, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_obj_syokudai.reloc.s b/data/overlays/actors/z_obj_syokudai.reloc.s deleted file mode 100644 index 74ba6b7083..0000000000 --- a/data/overlays/actors/z_obj_syokudai.reloc.s +++ /dev/null @@ -1,13 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purpose registers - -.section .rodata - -.balign 16 - -glabel D_80B9FEF0 - .incbin "baserom/ovl_Obj_Syokudai", 0xC40, 0x000000A0 diff --git a/include/functions.h b/include/functions.h index 76527546db..af8093cca0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1115,7 +1115,7 @@ Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b); // ? func_80080024(?); s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4); void func_800803F0(GlobalContext* globalCtx, s16 camId); -UNK_RET func_80080480(GlobalContext* globalCtx, Actor* actor); +s16 func_80080480(GlobalContext* globalCtx, Actor* actor); UNK_TYPE func_800806BC(GlobalContext* globalCtx, Actor* actor, UNK_TYPE); UNK_TYPE func_80080728(GlobalContext* globalCtx, u8 actorType); void func_80080788(UNK_TYPE, UNK_TYPE); diff --git a/spec b/spec index fc9405d6c4..3182af81c0 100644 --- a/spec +++ b/spec @@ -3580,9 +3580,7 @@ endseg beginseg name "ovl_Obj_Syokudai" include "build/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" - include "build/data/overlays/actors/z_obj_syokudai.data.o" - include "build/data/overlays/actors/z_obj_syokudai.bss.o" - include "build/data/overlays/actors/z_obj_syokudai.reloc.o" + include "build/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h index dc9e80202f..2fe8830fd4 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.h @@ -8,7 +8,9 @@ struct EnArrow; typedef struct EnArrow { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0xFC]; + /* 0x014C */ char unk_14C[0x5C]; + /* 0x01A8 */ s32 unk_1A8; // related to arrows being on fire + /* 0x01AC */ char unk_1AC[0x9C]; /* 0x0248 */ u8 timer; // used for dissapearing when flying or hitting a wall /* 0x0249 */ u8 hitWall; /* 0x024A */ char unk_24A[0x16]; diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 8b5664b1e8..daa7d7477b 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -5,6 +5,7 @@ */ #include "z_obj_syokudai.h" +#include "overlays/actors/ovl_En_Arrow/z_en_arrow.h" #define FLAGS 0x00000410 @@ -15,7 +16,8 @@ void ObjSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx); void ObjSyokudai_Update(Actor* thisx, GlobalContext* globalCtx); void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +extern Gfx D_0404D4E0[]; + const ActorInit Obj_Syokudai_InitVars = { ACTOR_OBJ_SYOKUDAI, ACTORTYPE_PROP, @@ -27,11 +29,255 @@ const ActorInit Obj_Syokudai_InitVars = { (ActorFunc)ObjSyokudai_Update, (ActorFunc)ObjSyokudai_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Destroy.s") +static ColliderCylinderInit sCylInitStand = { + { COLTYPE_METAL_SHIELD, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER }, + { 0x02, { 0x00100000, 0x00, 0x00 }, { 0xEE01FFFF, 0x00, 0x00 }, 0x00, 0x05, 0x01 }, + { 12, 45, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Update.s") +static ColliderCylinderInit sCylInitFlame = { + { COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_CYLINDER }, + { 0x02, { 0x00000000, 0x00, 0x00 }, { 0x00020820, 0x00, 0x00 }, 0x00, 0x01, 0x00 }, + { 15, 45, 45, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Syokudai/ObjSyokudai_Draw.s") +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneScale, 800, ICHAIN_CONTINUE), + ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_STOP), +}; + +static s32 sLitTorchCount; + +void ObjSyokudai_Init(Actor* thisx, GlobalContext* globalCtx) { + static u8 sColTypesStand[] = { 0x09, 0x0B, 0x0B }; + s32 pad; + ObjSyokudai* this = THIS; + s32 torchType = this->actor.params & 0xF000; + + Actor_ProcessInitChain(&this->actor, sInitChain); + ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f); + + Collider_InitCylinder(globalCtx, &this->colliderStand); + Collider_SetCylinder(globalCtx, &this->colliderStand, &this->actor, &sCylInitStand); + this->colliderStand.base.type = sColTypesStand[this->actor.params >> 0xC]; + + Collider_InitCylinder(globalCtx, &this->colliderFlame); + Collider_SetCylinder(globalCtx, &this->colliderFlame, &this->actor, &sCylInitFlame); + + this->actor.colChkInfo.mass = 0xFF; + + Lights_PointGlowSetInfo(&this->lightInfo, this->actor.posRot.pos.x, this->actor.posRot.pos.y + 70.0f, + this->actor.posRot.pos.z, 255, 255, 180, -1); + this->lightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &this->lightInfo); + + if ((this->actor.params & 0x400) || ((torchType != 2) && Flags_GetSwitch(globalCtx, this->actor.params & 0x3F))) { + this->litTimer = -1; + } + + this->flameTexScroll = (s32)(Math_Rand_ZeroOne() * 20.0f); + sLitTorchCount = 0; + Actor_SetHeight(&this->actor, 60.0f); +} + +void ObjSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + ObjSyokudai* this = THIS; + + Collider_DestroyCylinder(globalCtx, &this->colliderStand); + Collider_DestroyCylinder(globalCtx, &this->colliderFlame); + LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, this->lightNode); +} + +void ObjSyokudai_Update(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; + ObjSyokudai* this = THIS; + s32 torchCount = (this->actor.params >> 6) & 0xF; + s32 switchFlag = this->actor.params & 0x3F; + s32 torchType = this->actor.params & 0xF000; + s32 litTimeScale; + WaterBox* dummy; + f32 waterSurface; + s32 lightRadius = -1; + u8 brightness = 0; + Player* player; + EnArrow* arrow; + s32 interactionType; + u32 toucherFlags; + Vec3f tipToFlame; + ColliderCylinder* colliderStand; + ColliderCylinder* colliderFlame; + + litTimeScale = torchCount; + if (torchCount == 10) { + torchCount = 24; + } + if (func_80042244(globalCtx, &globalCtx->colCtx, this->actor.posRot.pos.x, this->actor.posRot.pos.z, &waterSurface, + &dummy) && + ((waterSurface - this->actor.posRot.pos.y) > 52.0f)) { + this->litTimer = 0; + if (torchType == 1) { + Flags_UnsetSwitch(globalCtx, switchFlag); + if (torchCount != 0) { + this->litTimer = 1; + } + } + } else { + player = PLAYER; + interactionType = 0; + if (this->actor.params & 0x400) { + this->litTimer = -1; + } + if (torchCount != 0) { + if (Flags_GetSwitch(globalCtx, switchFlag)) { + if (this->litTimer == 0) { + this->litTimer = -1; + if (torchType == 0) { + func_80080480(globalCtx, &this->actor); + } + } else if (this->litTimer > 0) { + this->litTimer = -1; + } + } else if (this->litTimer < 0) { + this->litTimer = 20; + } + } + if (this->colliderFlame.base.acFlags & 2) { + toucherFlags = this->colliderFlame.body.acHitItem->toucher.flags; + if (toucherFlags & 0x20820) { + interactionType = 1; + } + } else if (player->heldItemActionParam == 6) { + Math_Vec3f_Diff(&player->swordInfo[0].tip, &this->actor.posRot.pos, &tipToFlame); + tipToFlame.y -= 67.0f; + if ((SQ(tipToFlame.x) + SQ(tipToFlame.y) + SQ(tipToFlame.z)) < SQ(20.0f)) { + interactionType = -1; + } + } + if (interactionType != 0) { + if (this->litTimer != 0) { + if (interactionType < 0) { + if (player->unk_860 == 0) { + player->unk_860 = 210; + Audio_PlaySoundGeneral(NA_SE_EV_FLAME_IGNITION, &this->actor.projectedPos, 4, &D_801333E0, + &D_801333E0, &D_801333E8); + } else if (player->unk_860 < 200) { + player->unk_860 = 200; + } + } else if (toucherFlags & 0x20) { + arrow = (EnArrow*)this->colliderFlame.base.ac; + if ((arrow->actor.update != NULL) && (arrow->actor.id == ACTOR_EN_ARROW)) { + arrow->actor.params = 0; + arrow->unk_1A8 = 0x800; + } + } + if ((0 <= this->litTimer) && (this->litTimer < (50 * litTimeScale + 100)) && (torchType != 0)) { + this->litTimer = 50 * litTimeScale + 100; + } + } else if ((torchType != 0) && (((interactionType > 0) && (toucherFlags & 0x20800)) || + ((interactionType < 0) && (player->unk_860 != 0)))) { + + if ((interactionType < 0) && (player->unk_860 < 200)) { + player->unk_860 = 200; + } + if (torchCount == 0) { + this->litTimer = -1; + if (torchType != 2) { + Flags_SetSwitch(globalCtx, switchFlag); + func_80080480(globalCtx, &this->actor); + } + } else { + sLitTorchCount++; + if (sLitTorchCount >= torchCount) { + Flags_SetSwitch(globalCtx, switchFlag); + func_80080480(globalCtx, &this->actor); + this->litTimer = -1; + } else { + this->litTimer = (litTimeScale * 50) + 110; + } + } + Audio_PlaySoundGeneral(NA_SE_EV_FLAME_IGNITION, &this->actor.projectedPos, 4, &D_801333E0, &D_801333E0, + &D_801333E8); + } + } + } + colliderStand = &this->colliderStand; + Collider_CylinderUpdate(&this->actor, colliderStand); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &colliderStand->base); + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &colliderStand->base); + + colliderFlame = &this->colliderFlame; + Collider_CylinderUpdate(&this->actor, colliderFlame); + CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &colliderFlame->base); + + if (this->litTimer > 0) { + this->litTimer--; + if ((this->litTimer == 0) && (torchType != 0)) { + sLitTorchCount--; + } + } + if (this->litTimer != 0) { + if ((this->litTimer < 0) || (this->litTimer >= 20)) { + lightRadius = 200; + } else { + lightRadius = (this->litTimer * 200.0f) / 20.0f; + } + brightness = (u8)(Math_Rand_ZeroOne() * 127.0f) + 128; + func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG); + } + Lights_PointSetColorAndRadius(&this->lightInfo, brightness, brightness, 0, lightRadius); + this->flameTexScroll++; +} + +void ObjSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) { + static Gfx* displayLists[] = { 0x060003A0, 0x06000B90, 0x06000870 }; + s32 pad; + ObjSyokudai* this = THIS; + s32 timerMax; + + timerMax = (((this->actor.params >> 6) & 0xF) * 50) + 100; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 707); + func_80093D18(globalCtx->state.gfxCtx); + + gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 714), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPDisplayList(oGfxCtx->polyOpa.p++, displayLists[(u16)this->actor.params >> 0xC]); + + if (this->litTimer != 0) { + f32 flameScale = 1.0f; + + if (this->litTimer > timerMax) { + flameScale = (timerMax - this->litTimer + 10) / 10.0f; + } else if ((this->litTimer > 0) && (this->litTimer < 20)) { + flameScale = this->litTimer / 20.0f; + } + flameScale *= 0.0027f; + + func_80093D84(globalCtx->state.gfxCtx); + + gSPSegment(oGfxCtx->polyXlu.p++, 0x08, + Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 0x20, 0x40, 1, 0, + (this->flameTexScroll * -20) & 0x1FF, 0x20, 0x80)); + + gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, 255, 255, 0, 255); + + gDPSetEnvColor(oGfxCtx->polyXlu.p++, 255, 0, 0, 0); + + Matrix_Translate(0.0f, 52.0f, 0.0f, MTXMODE_APPLY); + Matrix_RotateY( + (s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * + (M_PI / 0x8000), + MTXMODE_APPLY); + Matrix_Scale(flameScale, flameScale, flameScale, MTXMODE_APPLY); + + gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 745), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPDisplayList(oGfxCtx->polyXlu.p++, D_0404D4E0); + } + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_obj_syokudai.c", 749); +} diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h index 1c2a780889..4a6f1f479b 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h @@ -8,7 +8,12 @@ struct ObjSyokudai; typedef struct ObjSyokudai { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0xB0]; + /* 0x014C */ ColliderCylinder colliderStand; + /* 0x0198 */ ColliderCylinder colliderFlame; + /* 0x01E4 */ s16 litTimer; + /* 0x01E6 */ u8 flameTexScroll; + /* 0x01E8 */ LightNode* lightNode; + /* 0x01EC */ LightInfo lightInfo; } ObjSyokudai; // size = 0x01FC extern const ActorInit Obj_Syokudai_InitVars;