1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

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 <Dragorn421@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>

* cleanup

* Update src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>

* small cleanup

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
petrie911 2020-10-04 07:54:09 -05:00 committed by GitHub
parent a52743e8cd
commit 4ac8e70f5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 263 additions and 880 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

4
spec
View File

@ -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

View File

@ -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];

View File

@ -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);
}

View File

@ -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;