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

Decompile Object Kankyo (#960)

* Decompile Object Kankyo

* Remove asm, format

* Start documenting object kankyo

* Document object kankyo

* Remove reloc

* Review changes

and formatted again :(

* WIP

* Review changes
This commit is contained in:
Synray 2021-09-26 06:35:01 -07:00 committed by GitHub
parent 16471bb68d
commit 52f93d135f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 926 additions and 3568 deletions

View File

@ -1,10 +0,0 @@
glabel ObjectKankyo_Destroy
/* 00308 80BA2DA8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0030C 80BA2DAC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00310 80BA2DB0 0C00B55C */ jal Actor_Kill
/* 00314 80BA2DB4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00318 80BA2DB8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0031C 80BA2DBC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00320 80BA2DC0 03E00008 */ jr $ra
/* 00324 80BA2DC4 00000000 */ nop

View File

@ -1,52 +0,0 @@
.late_rodata
glabel jtbl_80BA5C84
.word L80BA3C3C
.word L80BA3C84
.word L80BA3C4C
.word L80BA3C5C
.word L80BA3C6C
.word L80BA3C7C
.text
glabel ObjectKankyo_Draw
/* 01170 80BA3C10 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01174 80BA3C14 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01178 80BA3C18 948E001C */ lhu $t6, 0x001C($a0) ## 0000001C
/* 0117C 80BA3C1C 2DC10006 */ sltiu $at, $t6, 0x0006
/* 01180 80BA3C20 10200018 */ beq $at, $zero, .L80BA3C84
/* 01184 80BA3C24 000E7080 */ sll $t6, $t6, 2
/* 01188 80BA3C28 3C0180BA */ lui $at, %hi(jtbl_80BA5C84) ## $at = 80BA0000
/* 0118C 80BA3C2C 002E0821 */ addu $at, $at, $t6
/* 01190 80BA3C30 8C2E5C84 */ lw $t6, %lo(jtbl_80BA5C84)($at)
/* 01194 80BA3C34 01C00008 */ jr $t6
/* 01198 80BA3C38 00000000 */ nop
glabel L80BA3C3C
/* 0119C 80BA3C3C 0C2E8F25 */ jal func_80BA3C94
/* 011A0 80BA3C40 00000000 */ nop
/* 011A4 80BA3C44 10000010 */ beq $zero, $zero, .L80BA3C88
/* 011A8 80BA3C48 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA3C4C
/* 011AC 80BA3C4C 0C2E926F */ jal func_80BA49BC
/* 011B0 80BA3C50 00000000 */ nop
/* 011B4 80BA3C54 1000000C */ beq $zero, $zero, .L80BA3C88
/* 011B8 80BA3C58 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA3C5C
/* 011BC 80BA3C5C 0C2E9053 */ jal func_80BA414C
/* 011C0 80BA3C60 00000000 */ nop
/* 011C4 80BA3C64 10000008 */ beq $zero, $zero, .L80BA3C88
/* 011C8 80BA3C68 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA3C6C
/* 011CC 80BA3C6C 0C2E935F */ jal func_80BA4D7C
/* 011D0 80BA3C70 00000000 */ nop
/* 011D4 80BA3C74 10000004 */ beq $zero, $zero, .L80BA3C88
/* 011D8 80BA3C78 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA3C7C
/* 011DC 80BA3C7C 0C2E952B */ jal func_80BA54AC
/* 011E0 80BA3C80 00000000 */ nop
glabel L80BA3C84
.L80BA3C84:
/* 011E4 80BA3C84 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA3C88:
/* 011E8 80BA3C88 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 011EC 80BA3C8C 03E00008 */ jr $ra
/* 011F0 80BA3C90 00000000 */ nop

View File

@ -1,257 +0,0 @@
.late_rodata
glabel jtbl_80BA5BE0
.word L80BA2B10
.word L80BA2D98
.word L80BA2B90
.word L80BA2B50
.word L80BA2BA8
.word L80BA2BE4
glabel D_80BA5BF8
.float 0.1
glabel D_80BA5BFC
.float 0.1
glabel D_80BA5C00
.float 0.1
glabel D_80BA5C04
.float 0.1
glabel D_80BA5C08
.float 0.1
glabel D_80BA5C0C
.float 0.1
glabel D_80BA5C10
.float 0.1
.text
glabel ObjectKankyo_Init
/* 00008 80BA2AA8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0000C 80BA2AAC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00010 80BA2AB0 AFA5001C */ sw $a1, 0x001C($sp)
/* 00014 80BA2AB4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00018 80BA2AB8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 0001C 80BA2ABC 24030054 */ addiu $v1, $zero, 0x0054 ## $v1 = 00000054
.L80BA2AC0:
/* 00020 80BA2AC0 00430019 */ multu $v0, $v1
/* 00024 80BA2AC4 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 00028 80BA2AC8 00021400 */ sll $v0, $v0, 16
/* 0002C 80BA2ACC 00021403 */ sra $v0, $v0, 16
/* 00030 80BA2AD0 28410040 */ slti $at, $v0, 0x0040
/* 00034 80BA2AD4 00007012 */ mflo $t6
/* 00038 80BA2AD8 00CE7821 */ addu $t7, $a2, $t6
/* 0003C 80BA2ADC 1420FFF8 */ bne $at, $zero, .L80BA2AC0
/* 00040 80BA2AE0 A1E0014C */ sb $zero, 0x014C($t7) ## 0000014C
/* 00044 80BA2AE4 94D9001C */ lhu $t9, 0x001C($a2) ## 0000001C
/* 00048 80BA2AE8 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF
/* 0004C 80BA2AEC A0D80003 */ sb $t8, 0x0003($a2) ## 00000003
/* 00050 80BA2AF0 2F210006 */ sltiu $at, $t9, 0x0006
/* 00054 80BA2AF4 102000A8 */ beq $at, $zero, .L80BA2D98
/* 00058 80BA2AF8 0019C880 */ sll $t9, $t9, 2
/* 0005C 80BA2AFC 3C0180BA */ lui $at, %hi(jtbl_80BA5BE0) ## $at = 80BA0000
/* 00060 80BA2B00 00390821 */ addu $at, $at, $t9
/* 00064 80BA2B04 8C395BE0 */ lw $t9, %lo(jtbl_80BA5BE0)($at)
/* 00068 80BA2B08 03200008 */ jr $t9
/* 0006C 80BA2B0C 00000000 */ nop
glabel L80BA2B10
/* 00070 80BA2B10 3C0880BA */ lui $t0, %hi(D_80BA5940) ## $t0 = 80BA0000
/* 00074 80BA2B14 91085940 */ lbu $t0, %lo(D_80BA5940)($t0)
/* 00078 80BA2B18 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0007C 80BA2B1C 3C0580BA */ lui $a1, %hi(func_80BA2DD4) ## $a1 = 80BA0000
/* 00080 80BA2B20 15000007 */ bne $t0, $zero, .L80BA2B40
/* 00084 80BA2B24 00000000 */ nop
/* 00088 80BA2B28 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 0008C 80BA2B2C 24A52DD4 */ addiu $a1, $a1, %lo(func_80BA2DD4) ## $a1 = 80BA2DD4
/* 00090 80BA2B30 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 00094 80BA2B34 3C0180BA */ lui $at, %hi(D_80BA5940) ## $at = 80BA0000
/* 00098 80BA2B38 10000097 */ beq $zero, $zero, .L80BA2D98
/* 0009C 80BA2B3C A0295940 */ sb $t1, %lo(D_80BA5940)($at)
.L80BA2B40:
/* 000A0 80BA2B40 0C00B55C */ jal Actor_Kill
/* 000A4 80BA2B44 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 000A8 80BA2B48 10000094 */ beq $zero, $zero, .L80BA2D9C
/* 000AC 80BA2B4C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA2B50
/* 000B0 80BA2B50 3C0A80BA */ lui $t2, %hi(D_80BA5940) ## $t2 = 80BA0000
/* 000B4 80BA2B54 914A5940 */ lbu $t2, %lo(D_80BA5940)($t2)
/* 000B8 80BA2B58 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 000BC 80BA2B5C 3C0580BA */ lui $a1, %hi(func_80BA2DC8) ## $a1 = 80BA0000
/* 000C0 80BA2B60 15400007 */ bne $t2, $zero, .L80BA2B80
/* 000C4 80BA2B64 00000000 */ nop
/* 000C8 80BA2B68 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 000CC 80BA2B6C 24A52DC8 */ addiu $a1, $a1, %lo(func_80BA2DC8) ## $a1 = 80BA2DC8
/* 000D0 80BA2B70 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 000D4 80BA2B74 3C0180BA */ lui $at, %hi(D_80BA5940) ## $at = 80BA0000
/* 000D8 80BA2B78 10000087 */ beq $zero, $zero, .L80BA2D98
/* 000DC 80BA2B7C A02B5940 */ sb $t3, %lo(D_80BA5940)($at)
.L80BA2B80:
/* 000E0 80BA2B80 0C00B55C */ jal Actor_Kill
/* 000E4 80BA2B84 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 000E8 80BA2B88 10000084 */ beq $zero, $zero, .L80BA2D9C
/* 000EC 80BA2B8C 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA2B90
/* 000F0 80BA2B90 3C0580BA */ lui $a1, %hi(func_80BA4914) ## $a1 = 80BA0000
/* 000F4 80BA2B94 24A54914 */ addiu $a1, $a1, %lo(func_80BA4914) ## $a1 = 80BA4914
/* 000F8 80BA2B98 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 000FC 80BA2B9C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00100 80BA2BA0 1000007E */ beq $zero, $zero, .L80BA2D9C
/* 00104 80BA2BA4 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA2BA8
/* 00108 80BA2BA8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 0010C 80BA2BAC A0C0018C */ sb $zero, 0x018C($a2) ## 0000018C
/* 00110 80BA2BB0 24070007 */ addiu $a3, $zero, 0x0007 ## $a3 = 00000007
/* 00114 80BA2BB4 E4C40198 */ swc1 $f4, 0x0198($a2) ## 00000198
/* 00118 80BA2BB8 8FA4001C */ lw $a0, 0x001C($sp)
/* 0011C 80BA2BBC AFA60018 */ sw $a2, 0x0018($sp)
/* 00120 80BA2BC0 0C00CDD2 */ jal Actor_ChangeCategory
/* 00124 80BA2BC4 24851C24 */ addiu $a1, $a0, 0x1C24 ## $a1 = 00001C24
/* 00128 80BA2BC8 8FA40018 */ lw $a0, 0x0018($sp)
/* 0012C 80BA2BCC 3C0580BA */ lui $a1, %hi(func_80BA4BFC) ## $a1 = 80BA0000
/* 00130 80BA2BD0 24A54BFC */ addiu $a1, $a1, %lo(func_80BA4BFC) ## $a1 = 80BA4BFC
/* 00134 80BA2BD4 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 00138 80BA2BD8 A0801659 */ sb $zero, 0x1659($a0) ## 00001659
/* 0013C 80BA2BDC 1000006F */ beq $zero, $zero, .L80BA2D9C
/* 00140 80BA2BE0 8FBF0014 */ lw $ra, 0x0014($sp)
glabel L80BA2BE4
/* 00144 80BA2BE4 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00148 80BA2BE8 A0C0018C */ sb $zero, 0x018C($a2) ## 0000018C
/* 0014C 80BA2BEC 3C0180BA */ lui $at, %hi(D_80BA5BF8) ## $at = 80BA0000
/* 00150 80BA2BF0 E4C60198 */ swc1 $f6, 0x0198($a2) ## 00000198
/* 00154 80BA2BF4 C4205BF8 */ lwc1 $f0, %lo(D_80BA5BF8)($at)
/* 00158 80BA2BF8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80BA2BFC:
/* 0015C 80BA2BFC 00430019 */ multu $v0, $v1
/* 00160 80BA2C00 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 00164 80BA2C04 00021400 */ sll $v0, $v0, 16
/* 00168 80BA2C08 00021403 */ sra $v0, $v0, 16
/* 0016C 80BA2C0C 28410006 */ slti $at, $v0, 0x0006
/* 00170 80BA2C10 00006812 */ mflo $t5
/* 00174 80BA2C14 00CD7021 */ addu $t6, $a2, $t5
/* 00178 80BA2C18 1420FFF8 */ bne $at, $zero, .L80BA2BFC
/* 0017C 80BA2C1C E5C00190 */ swc1 $f0, 0x0190($t6) ## 00000190
/* 00180 80BA2C20 240400BB */ addiu $a0, $zero, 0x00BB ## $a0 = 000000BB
/* 00184 80BA2C24 0C00D6D3 */ jal Flags_GetEventChkInf
/* 00188 80BA2C28 AFA60018 */ sw $a2, 0x0018($sp)
/* 0018C 80BA2C2C 10400004 */ beq $v0, $zero, .L80BA2C40
/* 00190 80BA2C30 8FA60018 */ lw $a2, 0x0018($sp)
/* 00194 80BA2C34 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 00198 80BA2C38 00000000 */ nop
/* 0019C 80BA2C3C E4C80190 */ swc1 $f8, 0x0190($a2) ## 00000190
.L80BA2C40:
/* 001A0 80BA2C40 240400BC */ addiu $a0, $zero, 0x00BC ## $a0 = 000000BC
/* 001A4 80BA2C44 0C00D6D3 */ jal Flags_GetEventChkInf
/* 001A8 80BA2C48 AFA60018 */ sw $a2, 0x0018($sp)
/* 001AC 80BA2C4C 10400004 */ beq $v0, $zero, .L80BA2C60
/* 001B0 80BA2C50 8FA60018 */ lw $a2, 0x0018($sp)
/* 001B4 80BA2C54 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 001B8 80BA2C58 00000000 */ nop
/* 001BC 80BA2C5C E4CA01E4 */ swc1 $f10, 0x01E4($a2) ## 000001E4
.L80BA2C60:
/* 001C0 80BA2C60 240400BD */ addiu $a0, $zero, 0x00BD ## $a0 = 000000BD
/* 001C4 80BA2C64 0C00D6D3 */ jal Flags_GetEventChkInf
/* 001C8 80BA2C68 AFA60018 */ sw $a2, 0x0018($sp)
/* 001CC 80BA2C6C 10400004 */ beq $v0, $zero, .L80BA2C80
/* 001D0 80BA2C70 8FA60018 */ lw $a2, 0x0018($sp)
/* 001D4 80BA2C74 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
/* 001D8 80BA2C78 00000000 */ nop
/* 001DC 80BA2C7C E4D00238 */ swc1 $f16, 0x0238($a2) ## 00000238
.L80BA2C80:
/* 001E0 80BA2C80 240400BE */ addiu $a0, $zero, 0x00BE ## $a0 = 000000BE
/* 001E4 80BA2C84 0C00D6D3 */ jal Flags_GetEventChkInf
/* 001E8 80BA2C88 AFA60018 */ sw $a2, 0x0018($sp)
/* 001EC 80BA2C8C 10400004 */ beq $v0, $zero, .L80BA2CA0
/* 001F0 80BA2C90 8FA60018 */ lw $a2, 0x0018($sp)
/* 001F4 80BA2C94 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 001F8 80BA2C98 00000000 */ nop
/* 001FC 80BA2C9C E4D2028C */ swc1 $f18, 0x028C($a2) ## 0000028C
.L80BA2CA0:
/* 00200 80BA2CA0 240400BF */ addiu $a0, $zero, 0x00BF ## $a0 = 000000BF
/* 00204 80BA2CA4 0C00D6D3 */ jal Flags_GetEventChkInf
/* 00208 80BA2CA8 AFA60018 */ sw $a2, 0x0018($sp)
/* 0020C 80BA2CAC 10400004 */ beq $v0, $zero, .L80BA2CC0
/* 00210 80BA2CB0 8FA60018 */ lw $a2, 0x0018($sp)
/* 00214 80BA2CB4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00218 80BA2CB8 00000000 */ nop
/* 0021C 80BA2CBC E4C402E0 */ swc1 $f4, 0x02E0($a2) ## 000002E0
.L80BA2CC0:
/* 00220 80BA2CC0 240400AD */ addiu $a0, $zero, 0x00AD ## $a0 = 000000AD
/* 00224 80BA2CC4 0C00D6D3 */ jal Flags_GetEventChkInf
/* 00228 80BA2CC8 AFA60018 */ sw $a2, 0x0018($sp)
/* 0022C 80BA2CCC 3C0180BA */ lui $at, %hi(D_80BA5C10) ## $at = 80BA0000
/* 00230 80BA2CD0 C4205C10 */ lwc1 $f0, %lo(D_80BA5C10)($at)
/* 00234 80BA2CD4 10400004 */ beq $v0, $zero, .L80BA2CE8
/* 00238 80BA2CD8 8FA60018 */ lw $a2, 0x0018($sp)
/* 0023C 80BA2CDC 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00240 80BA2CE0 00000000 */ nop
/* 00244 80BA2CE4 E4C60334 */ swc1 $f6, 0x0334($a2) ## 00000334
.L80BA2CE8:
/* 00248 80BA2CE8 3C038016 */ lui $v1, %hi(gSaveContext)
/* 0024C 80BA2CEC 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00250 80BA2CF0 906F1414 */ lbu $t7, 0x1414($v1) ## 8015FA74
/* 00254 80BA2CF4 3C0580BA */ lui $a1, %hi(func_80BA5304) ## $a1 = 80BA0000
/* 00258 80BA2CF8 24A55304 */ addiu $a1, $a1, %lo(func_80BA5304) ## $a1 = 80BA5304
/* 0025C 80BA2CFC 11E00024 */ beq $t7, $zero, .L80BA2D90
/* 00260 80BA2D00 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00264 80BA2D04 8C620000 */ lw $v0, 0x0000($v1) ## 8015E660
/* 00268 80BA2D08 24010538 */ addiu $at, $zero, 0x0538 ## $at = 00000538
/* 0026C 80BA2D0C 54410005 */ bnel $v0, $at, .L80BA2D24
/* 00270 80BA2D10 2401053C */ addiu $at, $zero, 0x053C ## $at = 0000053C
/* 00274 80BA2D14 E4C00190 */ swc1 $f0, 0x0190($a2) ## 00000190
/* 00278 80BA2D18 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0027C 80BA2D1C 8C42E660 */ lw $v0, %lo(gSaveContext)($v0)
/* 00280 80BA2D20 2401053C */ addiu $at, $zero, 0x053C ## $at = 0000053C
.L80BA2D24:
/* 00284 80BA2D24 54410005 */ bnel $v0, $at, .L80BA2D3C
/* 00288 80BA2D28 24010540 */ addiu $at, $zero, 0x0540 ## $at = 00000540
/* 0028C 80BA2D2C E4C001E4 */ swc1 $f0, 0x01E4($a2) ## 000001E4
/* 00290 80BA2D30 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00294 80BA2D34 8C42E660 */ lw $v0, %lo(gSaveContext)($v0)
/* 00298 80BA2D38 24010540 */ addiu $at, $zero, 0x0540 ## $at = 00000540
.L80BA2D3C:
/* 0029C 80BA2D3C 54410005 */ bnel $v0, $at, .L80BA2D54
/* 002A0 80BA2D40 24010544 */ addiu $at, $zero, 0x0544 ## $at = 00000544
/* 002A4 80BA2D44 E4C00238 */ swc1 $f0, 0x0238($a2) ## 00000238
/* 002A8 80BA2D48 3C028016 */ lui $v0, %hi(gSaveContext)
/* 002AC 80BA2D4C 8C42E660 */ lw $v0, %lo(gSaveContext)($v0)
/* 002B0 80BA2D50 24010544 */ addiu $at, $zero, 0x0544 ## $at = 00000544
.L80BA2D54:
/* 002B4 80BA2D54 54410005 */ bnel $v0, $at, .L80BA2D6C
/* 002B8 80BA2D58 24010548 */ addiu $at, $zero, 0x0548 ## $at = 00000548
/* 002BC 80BA2D5C E4C0028C */ swc1 $f0, 0x028C($a2) ## 0000028C
/* 002C0 80BA2D60 3C028016 */ lui $v0, %hi(gSaveContext)
/* 002C4 80BA2D64 8C42E660 */ lw $v0, %lo(gSaveContext)($v0)
/* 002C8 80BA2D68 24010548 */ addiu $at, $zero, 0x0548 ## $at = 00000548
.L80BA2D6C:
/* 002CC 80BA2D6C 54410005 */ bnel $v0, $at, .L80BA2D84
/* 002D0 80BA2D70 2401054C */ addiu $at, $zero, 0x054C ## $at = 0000054C
/* 002D4 80BA2D74 E4C002E0 */ swc1 $f0, 0x02E0($a2) ## 000002E0
/* 002D8 80BA2D78 3C028016 */ lui $v0, %hi(gSaveContext)
/* 002DC 80BA2D7C 8C42E660 */ lw $v0, %lo(gSaveContext)($v0)
/* 002E0 80BA2D80 2401054C */ addiu $at, $zero, 0x054C ## $at = 0000054C
.L80BA2D84:
/* 002E4 80BA2D84 14410002 */ bne $v0, $at, .L80BA2D90
/* 002E8 80BA2D88 00000000 */ nop
/* 002EC 80BA2D8C E4C00334 */ swc1 $f0, 0x0334($a2) ## 00000334
.L80BA2D90:
/* 002F0 80BA2D90 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 002F4 80BA2D94 A0C01659 */ sb $zero, 0x1659($a2) ## 00001659
glabel L80BA2D98
.L80BA2D98:
/* 002F8 80BA2D98 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA2D9C:
/* 002FC 80BA2D9C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00300 80BA2DA0 03E00008 */ jr $ra
/* 00304 80BA2DA4 00000000 */ nop

View File

@ -1,3 +0,0 @@
glabel ObjectKankyo_SetupAction
/* 00000 80BA2AA0 03E00008 */ jr $ra
/* 00004 80BA2AA4 AC85165C */ sw $a1, 0x165C($a0) ## 0000165C

View File

@ -1,10 +0,0 @@
glabel ObjectKankyo_Update
/* 0114C 80BA3BEC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01150 80BA3BF0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01154 80BA3BF4 8C99165C */ lw $t9, 0x165C($a0) ## 0000165C
/* 01158 80BA3BF8 0320F809 */ jalr $ra, $t9
/* 0115C 80BA3BFC 00000000 */ nop
/* 01160 80BA3C00 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01164 80BA3C04 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01168 80BA3C08 03E00008 */ jr $ra
/* 0116C 80BA3C0C 00000000 */ nop

View File

@ -1,4 +0,0 @@
glabel func_80BA2DC8
/* 00328 80BA2DC8 AFA40000 */ sw $a0, 0x0000($sp)
/* 0032C 80BA2DCC 03E00008 */ jr $ra
/* 00330 80BA2DD0 AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,339 +0,0 @@
.rdata
glabel D_80BA5A40
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5A58
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5A70
.asciz "../z_object_kankyo.c"
.balign 4
.late_rodata
glabel D_80BA5C9C
.float 0.017453292
glabel D_80BA5CA0
.float 0.05
.text
glabel func_80BA3C94
/* 011F4 80BA3C94 27BDFF48 */ addiu $sp, $sp, 0xFF48 ## $sp = FFFFFF48
/* 011F8 80BA3C98 3C0F80BA */ lui $t7, %hi(D_80BA596C) ## $t7 = 80BA0000
/* 011FC 80BA3C9C AFBF003C */ sw $ra, 0x003C($sp)
/* 01200 80BA3CA0 AFB70038 */ sw $s7, 0x0038($sp)
/* 01204 80BA3CA4 AFB60034 */ sw $s6, 0x0034($sp)
/* 01208 80BA3CA8 AFB50030 */ sw $s5, 0x0030($sp)
/* 0120C 80BA3CAC AFB4002C */ sw $s4, 0x002C($sp)
/* 01210 80BA3CB0 AFB30028 */ sw $s3, 0x0028($sp)
/* 01214 80BA3CB4 AFB20024 */ sw $s2, 0x0024($sp)
/* 01218 80BA3CB8 AFB10020 */ sw $s1, 0x0020($sp)
/* 0121C 80BA3CBC AFB0001C */ sw $s0, 0x001C($sp)
/* 01220 80BA3CC0 F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 01224 80BA3CC4 25EF596C */ addiu $t7, $t7, %lo(D_80BA596C) ## $t7 = 80BA596C
/* 01228 80BA3CC8 8DF90000 */ lw $t9, 0x0000($t7) ## 80BA596C
/* 0122C 80BA3CCC 27AE00A0 */ addiu $t6, $sp, 0x00A0 ## $t6 = FFFFFFE8
/* 01230 80BA3CD0 8DF80004 */ lw $t8, 0x0004($t7) ## 80BA5970
/* 01234 80BA3CD4 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFE8
/* 01238 80BA3CD8 8DF90008 */ lw $t9, 0x0008($t7) ## 80BA5974
/* 0123C 80BA3CDC 3C0980BA */ lui $t1, %hi(D_80BA5978) ## $t1 = 80BA0000
/* 01240 80BA3CE0 25295978 */ addiu $t1, $t1, %lo(D_80BA5978) ## $t1 = 80BA5978
/* 01244 80BA3CE4 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFEC
/* 01248 80BA3CE8 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF0
/* 0124C 80BA3CEC 8D2B0000 */ lw $t3, 0x0000($t1) ## 80BA5978
/* 01250 80BA3CF0 27A80094 */ addiu $t0, $sp, 0x0094 ## $t0 = FFFFFFDC
/* 01254 80BA3CF4 8D2A0004 */ lw $t2, 0x0004($t1) ## 80BA597C
/* 01258 80BA3CF8 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFDC
/* 0125C 80BA3CFC 8D2B0008 */ lw $t3, 0x0008($t1) ## 80BA5980
/* 01260 80BA3D00 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFE0
/* 01264 80BA3D04 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 01268 80BA3D08 AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFE4
/* 0126C 80BA3D0C 8CAC0790 */ lw $t4, 0x0790($a1) ## 00000790
/* 01270 80BA3D10 3C0680BA */ lui $a2, %hi(D_80BA5A40) ## $a2 = 80BA0000
/* 01274 80BA3D14 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 01278 80BA3D18 858D014C */ lh $t5, 0x014C($t4) ## 0000014C
/* 0127C 80BA3D1C 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 01280 80BA3D20 24C65A40 */ addiu $a2, $a2, %lo(D_80BA5A40) ## $a2 = 80BA5A40
/* 01284 80BA3D24 31AE0100 */ andi $t6, $t5, 0x0100 ## $t6 = 00000000
/* 01288 80BA3D28 15C000FC */ bne $t6, $zero, .L80BA411C
/* 0128C 80BA3D2C 27A4007C */ addiu $a0, $sp, 0x007C ## $a0 = FFFFFFC4
/* 01290 80BA3D30 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01294 80BA3D34 24070327 */ addiu $a3, $zero, 0x0327 ## $a3 = 00000327
/* 01298 80BA3D38 0C031AB1 */ jal Graph_OpenDisps
/* 0129C 80BA3D3C 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 012A0 80BA3D40 8E4402D0 */ lw $a0, 0x02D0($s2) ## 000002D0
/* 012A4 80BA3D44 0C024DDD */ jal Gfx_CallSetupDL
/* 012A8 80BA3D48 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 012AC 80BA3D4C 3C040405 */ lui $a0, %hi(gSun1Tex) ## $a0 = 04050000
/* 012B0 80BA3D50 2484C160 */ addiu $a0, $a0, %lo(gSun1Tex) ## $a0 = 0404C160
/* 012B4 80BA3D54 0004C900 */ sll $t9, $a0, 4
/* 012B8 80BA3D58 AE4202D0 */ sw $v0, 0x02D0($s2) ## 000002D0
/* 012BC 80BA3D5C 00194702 */ srl $t0, $t9, 28
/* 012C0 80BA3D60 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 012C4 80BA3D64 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
/* 012C8 80BA3D68 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
/* 012CC 80BA3D6C AE4F02D0 */ sw $t7, 0x02D0($s2) ## 000002D0
/* 012D0 80BA3D70 00084880 */ sll $t1, $t0, 2
/* 012D4 80BA3D74 3C0A8016 */ lui $t2, %hi(gSegments)
/* 012D8 80BA3D78 01495021 */ addu $t2, $t2, $t1
/* 012DC 80BA3D7C AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 012E0 80BA3D80 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 012E4 80BA3D84 8D4A6FA8 */ lw $t2, %lo(gSegments)($t2)
/* 012E8 80BA3D88 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 012EC 80BA3D8C 00815824 */ and $t3, $a0, $at
/* 012F0 80BA3D90 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 012F4 80BA3D94 014B6021 */ addu $t4, $t2, $t3
/* 012F8 80BA3D98 01816821 */ addu $t5, $t4, $at
/* 012FC 80BA3D9C AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 01300 80BA3DA0 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01304 80BA3DA4 3C180405 */ lui $t8, %hi(gKokiriDustMoteTextureLoadDL ) ## $t8 = 04050000
/* 01308 80BA3DA8 2718D160 */ addiu $t8, $t8, %lo(gKokiriDustMoteTextureLoadDL ) ## $t8 = 0404D160
/* 0130C 80BA3DAC 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 01310 80BA3DB0 AE4E02D0 */ sw $t6, 0x02D0($s2) ## 000002D0
/* 01314 80BA3DB4 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 01318 80BA3DB8 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 0131C 80BA3DBC 0334C821 */ addu $t9, $t9, $s4
/* 01320 80BA3DC0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 01324 80BA3DC4 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 01328 80BA3DC8 93390B15 */ lbu $t9, 0x0B15($t9) ## 00010B15
/* 0132C 80BA3DCC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01330 80BA3DD0 02014021 */ addu $t0, $s0, $at
/* 01334 80BA3DD4 1B2000CB */ blez $t9, .L80BA4104
/* 01338 80BA3DD8 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 0133C 80BA3DDC 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
/* 01340 80BA3DE0 02815021 */ addu $t2, $s4, $at
/* 01344 80BA3DE4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 01348 80BA3DE8 3C090405 */ lui $t1, %hi(gKokiriDustMoteDL) ## $t1 = 04050000
/* 0134C 80BA3DEC 2529D1A8 */ addiu $t1, $t1, %lo(gKokiriDustMoteDL) ## $t1 = 0404D1A8
/* 01350 80BA3DF0 4481A000 */ mtc1 $at, $f20 ## $f20 = 1.00
/* 01354 80BA3DF4 AFA90048 */ sw $t1, 0x0048($sp)
/* 01358 80BA3DF8 AFAA0040 */ sw $t2, 0x0040($sp)
/* 0135C 80BA3DFC AFA80050 */ sw $t0, 0x0050($sp)
/* 01360 80BA3E00 3C17FB00 */ lui $s7, 0xFB00 ## $s7 = FB000000
/* 01364 80BA3E04 3C16FA00 */ lui $s6, 0xFA00 ## $s6 = FA000000
/* 01368 80BA3E08 24150002 */ addiu $s5, $zero, 0x0002 ## $s5 = 00000002
/* 0136C 80BA3E0C 00135880 */ sll $t3, $s3, 2
.L80BA3E10:
/* 01370 80BA3E10 01735821 */ addu $t3, $t3, $s3
/* 01374 80BA3E14 000B5880 */ sll $t3, $t3, 2
/* 01378 80BA3E18 01735821 */ addu $t3, $t3, $s3
/* 0137C 80BA3E1C 000B5880 */ sll $t3, $t3, 2
/* 01380 80BA3E20 022B8021 */ addu $s0, $s1, $t3
/* 01384 80BA3E24 C6040150 */ lwc1 $f4, 0x0150($s0) ## 00000150
/* 01388 80BA3E28 C6060168 */ lwc1 $f6, 0x0168($s0) ## 00000168
/* 0138C 80BA3E2C C6100158 */ lwc1 $f16, 0x0158($s0) ## 00000158
/* 01390 80BA3E30 C6120170 */ lwc1 $f18, 0x0170($s0) ## 00000170
/* 01394 80BA3E34 46062300 */ add.s $f12, $f4, $f6
/* 01398 80BA3E38 C6080154 */ lwc1 $f8, 0x0154($s0) ## 00000154
/* 0139C 80BA3E3C C60A016C */ lwc1 $f10, 0x016C($s0) ## 0000016C
/* 013A0 80BA3E40 46128100 */ add.s $f4, $f16, $f18
/* 013A4 80BA3E44 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 013A8 80BA3E48 460A4380 */ add.s $f14, $f8, $f10
/* 013AC 80BA3E4C 44062000 */ mfc1 $a2, $f4
/* 013B0 80BA3E50 0C034261 */ jal Matrix_Translate
/* 013B4 80BA3E54 00000000 */ nop
/* 013B8 80BA3E58 920C018C */ lbu $t4, 0x018C($s0) ## 0000018C
/* 013BC 80BA3E5C 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 013C0 80BA3E60 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00
/* 013C4 80BA3E64 05810004 */ bgez $t4, .L80BA3E78
/* 013C8 80BA3E68 46803220 */ cvt.s.w $f8, $f6
/* 013CC 80BA3E6C 44815000 */ mtc1 $at, $f10 ## $f10 = 4294967296.00
/* 013D0 80BA3E70 00000000 */ nop
/* 013D4 80BA3E74 460A4200 */ add.s $f8, $f8, $f10
.L80BA3E78:
/* 013D8 80BA3E78 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 013DC 80BA3E7C 44818000 */ mtc1 $at, $f16 ## $f16 = 50.00
/* 013E0 80BA3E80 00000000 */ nop
/* 013E4 80BA3E84 46104003 */ div.s $f0, $f8, $f16
/* 013E8 80BA3E88 4600A03C */ c.lt.s $f20, $f0
/* 013EC 80BA3E8C 00000000 */ nop
/* 013F0 80BA3E90 45020003 */ bc1fl .L80BA3EA0
/* 013F4 80BA3E94 C6120190 */ lwc1 $f18, 0x0190($s0) ## 00000190
/* 013F8 80BA3E98 4600A006 */ mov.s $f0, $f20
/* 013FC 80BA3E9C C6120190 */ lwc1 $f18, 0x0190($s0) ## 00000190
.L80BA3EA0:
/* 01400 80BA3EA0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01404 80BA3EA4 46009302 */ mul.s $f12, $f18, $f0
/* 01408 80BA3EA8 44066000 */ mfc1 $a2, $f12
/* 0140C 80BA3EAC 0C0342A3 */ jal Matrix_Scale
/* 01410 80BA3EB0 46006386 */ mov.s $f14, $f12
/* 01414 80BA3EB4 2A610020 */ slti $at, $s3, 0x0020
/* 01418 80BA3EB8 1020000F */ beq $at, $zero, .L80BA3EF8
/* 0141C 80BA3EBC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 01420 80BA3EC0 920D014C */ lbu $t5, 0x014C($s0) ## 0000014C
/* 01424 80BA3EC4 52AD0007 */ beql $s5, $t5, .L80BA3EE4
/* 01428 80BA3EC8 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 0142C 80BA3ECC 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 01430 80BA3ED0 1840002D */ blez $v0, .L80BA3F88
/* 01434 80BA3ED4 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 01438 80BA3ED8 1000002B */ beq $zero, $zero, .L80BA3F88
/* 0143C 80BA3EDC A20E018C */ sb $t6, 0x018C($s0) ## 0000018C
/* 01440 80BA3EE0 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
.L80BA3EE4:
/* 01444 80BA3EE4 28410064 */ slti $at, $v0, 0x0064
/* 01448 80BA3EE8 10200027 */ beq $at, $zero, .L80BA3F88
/* 0144C 80BA3EEC 244F0001 */ addiu $t7, $v0, 0x0001 ## $t7 = 00000001
/* 01450 80BA3EF0 10000025 */ beq $zero, $zero, .L80BA3F88
/* 01454 80BA3EF4 A20F018C */ sb $t7, 0x018C($s0) ## 0000018C
.L80BA3EF8:
/* 01458 80BA3EF8 9218014C */ lbu $t8, 0x014C($s0) ## 0000014C
/* 0145C 80BA3EFC 52B80013 */ beql $s5, $t8, .L80BA3F4C
/* 01460 80BA3F00 960B0188 */ lhu $t3, 0x0188($s0) ## 00000188
/* 01464 80BA3F04 96190188 */ lhu $t9, 0x0188($s0) ## 00000188
/* 01468 80BA3F08 3328001F */ andi $t0, $t9, 0x001F ## $t0 = 00000000
/* 0146C 80BA3F0C 29010010 */ slti $at, $t0, 0x0010
/* 01470 80BA3F10 50200008 */ beql $at, $zero, .L80BA3F34
/* 01474 80BA3F14 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 01478 80BA3F18 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 0147C 80BA3F1C 284100EB */ slti $at, $v0, 0x00EB
/* 01480 80BA3F20 10200019 */ beq $at, $zero, .L80BA3F88
/* 01484 80BA3F24 24490014 */ addiu $t1, $v0, 0x0014 ## $t1 = 00000014
/* 01488 80BA3F28 10000017 */ beq $zero, $zero, .L80BA3F88
/* 0148C 80BA3F2C A209018C */ sb $t1, 0x018C($s0) ## 0000018C
/* 01490 80BA3F30 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
.L80BA3F34:
/* 01494 80BA3F34 28410015 */ slti $at, $v0, 0x0015
/* 01498 80BA3F38 14200013 */ bne $at, $zero, .L80BA3F88
/* 0149C 80BA3F3C 244AFFEC */ addiu $t2, $v0, 0xFFEC ## $t2 = FFFFFFEC
/* 014A0 80BA3F40 10000011 */ beq $zero, $zero, .L80BA3F88
/* 014A4 80BA3F44 A20A018C */ sb $t2, 0x018C($s0) ## 0000018C
/* 014A8 80BA3F48 960B0188 */ lhu $t3, 0x0188($s0) ## 00000188
.L80BA3F4C:
/* 014AC 80BA3F4C 316C000F */ andi $t4, $t3, 0x000F ## $t4 = 00000000
/* 014B0 80BA3F50 29810008 */ slti $at, $t4, 0x0008
/* 014B4 80BA3F54 50200008 */ beql $at, $zero, .L80BA3F78
/* 014B8 80BA3F58 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 014BC 80BA3F5C 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 014C0 80BA3F60 284100FF */ slti $at, $v0, 0x00FF
/* 014C4 80BA3F64 10200008 */ beq $at, $zero, .L80BA3F88
/* 014C8 80BA3F68 244D0064 */ addiu $t5, $v0, 0x0064 ## $t5 = 00000064
/* 014CC 80BA3F6C 10000006 */ beq $zero, $zero, .L80BA3F88
/* 014D0 80BA3F70 A20D018C */ sb $t5, 0x018C($s0) ## 0000018C
/* 014D4 80BA3F74 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
.L80BA3F78:
/* 014D8 80BA3F78 2841000B */ slti $at, $v0, 0x000B
/* 014DC 80BA3F7C 14200002 */ bne $at, $zero, .L80BA3F88
/* 014E0 80BA3F80 244EFFF6 */ addiu $t6, $v0, 0xFFF6 ## $t6 = FFFFFFF6
/* 014E4 80BA3F84 A20E018C */ sb $t6, 0x018C($s0) ## 0000018C
.L80BA3F88:
/* 014E8 80BA3F88 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 014EC 80BA3F8C 3C18E700 */ lui $t8, 0xE700 ## $t8 = E7000000
/* 014F0 80BA3F90 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 014F4 80BA3F94 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 014F8 80BA3F98 AE4F02D0 */ sw $t7, 0x02D0($s2) ## 000002D0
/* 014FC 80BA3F9C AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 01500 80BA3FA0 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 01504 80BA3FA4 32620001 */ andi $v0, $s3, 0x0001 ## $v0 = 00000000
/* 01508 80BA3FA8 50400006 */ beql $v0, $zero, .L80BA3FC4
/* 0150C 80BA3FAC 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01510 80BA3FB0 50410015 */ beql $v0, $at, .L80BA4008
/* 01514 80BA3FB4 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01518 80BA3FB8 10000023 */ beq $zero, $zero, .L80BA4048
/* 0151C 80BA3FBC 00000000 */ nop
/* 01520 80BA3FC0 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
.L80BA3FC4:
/* 01524 80BA3FC4 24019B00 */ addiu $at, $zero, 0x9B00 ## $at = FFFF9B00
/* 01528 80BA3FC8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0152C 80BA3FCC AE5902D0 */ sw $t9, 0x02D0($s2) ## 000002D0
/* 01530 80BA3FD0 AC560000 */ sw $s6, 0x0000($v0) ## 00000000
/* 01534 80BA3FD4 9209018C */ lbu $t1, 0x018C($s0) ## 0000018C
/* 01538 80BA3FD8 01215025 */ or $t2, $t1, $at ## $t2 = FFFF9B14
/* 0153C 80BA3FDC AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 01540 80BA3FE0 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01544 80BA3FE4 3C01FAB4 */ lui $at, 0xFAB4 ## $at = FAB40000
/* 01548 80BA3FE8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 0154C 80BA3FEC AE4B02D0 */ sw $t3, 0x02D0($s2) ## 000002D0
/* 01550 80BA3FF0 AC570000 */ sw $s7, 0x0000($v0) ## 00000000
/* 01554 80BA3FF4 920D018C */ lbu $t5, 0x018C($s0) ## 0000018C
/* 01558 80BA3FF8 01A17025 */ or $t6, $t5, $at ## $t6 = FAB40064
/* 0155C 80BA3FFC 10000012 */ beq $zero, $zero, .L80BA4048
/* 01560 80BA4000 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 01564 80BA4004 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
.L80BA4008:
/* 01568 80BA4008 2401FF00 */ addiu $at, $zero, 0xFF00 ## $at = FFFFFF00
/* 0156C 80BA400C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 01570 80BA4010 AE4F02D0 */ sw $t7, 0x02D0($s2) ## 000002D0
/* 01574 80BA4014 AC560000 */ sw $s6, 0x0000($v0) ## 00000000
/* 01578 80BA4018 9219018C */ lbu $t9, 0x018C($s0) ## 0000018C
/* 0157C 80BA401C 03214025 */ or $t0, $t9, $at ## $t0 = FFFFFF08
/* 01580 80BA4020 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 01584 80BA4024 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01588 80BA4028 3C010064 */ lui $at, 0x0064 ## $at = 00640000
/* 0158C 80BA402C 3421FF00 */ ori $at, $at, 0xFF00 ## $at = 0064FF00
/* 01590 80BA4030 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 01594 80BA4034 AE4902D0 */ sw $t1, 0x02D0($s2) ## 000002D0
/* 01598 80BA4038 AC570000 */ sw $s7, 0x0000($v0) ## 00000000
/* 0159C 80BA403C 920B018C */ lbu $t3, 0x018C($s0) ## 0000018C
/* 015A0 80BA4040 01616025 */ or $t4, $t3, $at ## $t4 = 0064FF08
/* 015A4 80BA4044 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
.L80BA4048:
/* 015A8 80BA4048 0C03424C */ jal Matrix_Mult
/* 015AC 80BA404C 8FA40040 */ lw $a0, 0x0040($sp)
/* 015B0 80BA4050 8E8D009C */ lw $t5, 0x009C($s4) ## 0000009C
/* 015B4 80BA4054 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 015B8 80BA4058 448D2000 */ mtc1 $t5, $f4 ## $f4 = 0.00
/* 015BC 80BA405C 05A10004 */ bgez $t5, .L80BA4070
/* 015C0 80BA4060 468021A0 */ cvt.s.w $f6, $f4
/* 015C4 80BA4064 44815000 */ mtc1 $at, $f10 ## $f10 = 4294967296.00
/* 015C8 80BA4068 00000000 */ nop
/* 015CC 80BA406C 460A3180 */ add.s $f6, $f6, $f10
.L80BA4070:
/* 015D0 80BA4070 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 015D4 80BA4074 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 015D8 80BA4078 3C0180BA */ lui $at, %hi(D_80BA5C9C) ## $at = 80BA0000
/* 015DC 80BA407C C4325C9C */ lwc1 $f18, %lo(D_80BA5C9C)($at)
/* 015E0 80BA4080 46083402 */ mul.s $f16, $f6, $f8
/* 015E4 80BA4084 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 015E8 80BA4088 46128302 */ mul.s $f12, $f16, $f18
/* 015EC 80BA408C 0C0343B5 */ jal Matrix_RotateZ
/* 015F0 80BA4090 00000000 */ nop
/* 015F4 80BA4094 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 015F8 80BA4098 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 015FC 80BA409C 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 01600 80BA40A0 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 01604 80BA40A4 AE4E02D0 */ sw $t6, 0x02D0($s2) ## 000002D0
/* 01608 80BA40A8 3C0580BA */ lui $a1, %hi(D_80BA5A58) ## $a1 = 80BA0000
/* 0160C 80BA40AC AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 01610 80BA40B0 8E840000 */ lw $a0, 0x0000($s4) ## 00000000
/* 01614 80BA40B4 24A55A58 */ addiu $a1, $a1, %lo(D_80BA5A58) ## $a1 = 80BA5A58
/* 01618 80BA40B8 24060391 */ addiu $a2, $zero, 0x0391 ## $a2 = 00000391
/* 0161C 80BA40BC 0C0346A2 */ jal Matrix_NewMtx
/* 01620 80BA40C0 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 01624 80BA40C4 AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 01628 80BA40C8 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 0162C 80BA40CC 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
/* 01630 80BA40D0 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 01634 80BA40D4 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 01638 80BA40D8 AE5802D0 */ sw $t8, 0x02D0($s2) ## 000002D0
/* 0163C 80BA40DC AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 01640 80BA40E0 8FA80048 */ lw $t0, 0x0048($sp)
/* 01644 80BA40E4 00139C00 */ sll $s3, $s3, 16
/* 01648 80BA40E8 00139C03 */ sra $s3, $s3, 16
/* 0164C 80BA40EC AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 01650 80BA40F0 8FA90050 */ lw $t1, 0x0050($sp)
/* 01654 80BA40F4 912A0B15 */ lbu $t2, 0x0B15($t1) ## 00000B15
/* 01658 80BA40F8 026A082A */ slt $at, $s3, $t2
/* 0165C 80BA40FC 5420FF44 */ bnel $at, $zero, .L80BA3E10
/* 01660 80BA4100 00135880 */ sll $t3, $s3, 2
.L80BA4104:
/* 01664 80BA4104 3C0680BA */ lui $a2, %hi(D_80BA5A70) ## $a2 = 80BA0000
/* 01668 80BA4108 24C65A70 */ addiu $a2, $a2, %lo(D_80BA5A70) ## $a2 = 80BA5A70
/* 0166C 80BA410C 27A4007C */ addiu $a0, $sp, 0x007C ## $a0 = FFFFFFC4
/* 01670 80BA4110 8E850000 */ lw $a1, 0x0000($s4) ## 00000000
/* 01674 80BA4114 0C031AD5 */ jal Graph_CloseDisps
/* 01678 80BA4118 2407039A */ addiu $a3, $zero, 0x039A ## $a3 = 0000039A
.L80BA411C:
/* 0167C 80BA411C 8FBF003C */ lw $ra, 0x003C($sp)
/* 01680 80BA4120 D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 01684 80BA4124 8FB0001C */ lw $s0, 0x001C($sp)
/* 01688 80BA4128 8FB10020 */ lw $s1, 0x0020($sp)
/* 0168C 80BA412C 8FB20024 */ lw $s2, 0x0024($sp)
/* 01690 80BA4130 8FB30028 */ lw $s3, 0x0028($sp)
/* 01694 80BA4134 8FB4002C */ lw $s4, 0x002C($sp)
/* 01698 80BA4138 8FB50030 */ lw $s5, 0x0030($sp)
/* 0169C 80BA413C 8FB60034 */ lw $s6, 0x0034($sp)
/* 016A0 80BA4140 8FB70038 */ lw $s7, 0x0038($sp)
/* 016A4 80BA4144 03E00008 */ jr $ra
/* 016A8 80BA4148 27BD00B8 */ addiu $sp, $sp, 0x00B8 ## $sp = 00000000

View File

@ -1,552 +0,0 @@
.rdata
glabel D_80BA5A88
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5AA0
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5AB8
.asciz "../z_object_kankyo.c"
.balign 4
.late_rodata
glabel D_80BA5CA4
.float 0.049999997
glabel D_80BA5CA8
.float 0.01
glabel D_80BA5CAC
.float 0.01
glabel D_80BA5CB0
.float 0.05
.text
glabel func_80BA414C
/* 016AC 80BA414C 27BDFEE8 */ addiu $sp, $sp, 0xFEE8 ## $sp = FFFFFEE8
/* 016B0 80BA4150 3C0F80BA */ lui $t7, %hi(D_80BA5984) ## $t7 = 80BA0000
/* 016B4 80BA4154 AFBF005C */ sw $ra, 0x005C($sp)
/* 016B8 80BA4158 AFB50058 */ sw $s5, 0x0058($sp)
/* 016BC 80BA415C AFB40054 */ sw $s4, 0x0054($sp)
/* 016C0 80BA4160 AFB30050 */ sw $s3, 0x0050($sp)
/* 016C4 80BA4164 AFB2004C */ sw $s2, 0x004C($sp)
/* 016C8 80BA4168 AFB10048 */ sw $s1, 0x0048($sp)
/* 016CC 80BA416C AFB00044 */ sw $s0, 0x0044($sp)
/* 016D0 80BA4170 F7BE0038 */ sdc1 $f30, 0x0038($sp)
/* 016D4 80BA4174 F7BC0030 */ sdc1 $f28, 0x0030($sp)
/* 016D8 80BA4178 F7BA0028 */ sdc1 $f26, 0x0028($sp)
/* 016DC 80BA417C F7B80020 */ sdc1 $f24, 0x0020($sp)
/* 016E0 80BA4180 F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 016E4 80BA4184 F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 016E8 80BA4188 25EF5984 */ addiu $t7, $t7, %lo(D_80BA5984) ## $t7 = 80BA5984
/* 016EC 80BA418C 8DF90000 */ lw $t9, 0x0000($t7) ## 80BA5984
/* 016F0 80BA4190 27AE00E0 */ addiu $t6, $sp, 0x00E0 ## $t6 = FFFFFFC8
/* 016F4 80BA4194 8DF80004 */ lw $t8, 0x0004($t7) ## 80BA5988
/* 016F8 80BA4198 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFC8
/* 016FC 80BA419C 8DF90008 */ lw $t9, 0x0008($t7) ## 80BA598C
/* 01700 80BA41A0 3C0980BA */ lui $t1, %hi(D_80BA5990) ## $t1 = 80BA0000
/* 01704 80BA41A4 25295990 */ addiu $t1, $t1, %lo(D_80BA5990) ## $t1 = 80BA5990
/* 01708 80BA41A8 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFCC
/* 0170C 80BA41AC ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFD0
/* 01710 80BA41B0 8D2B0000 */ lw $t3, 0x0000($t1) ## 80BA5990
/* 01714 80BA41B4 27A800D4 */ addiu $t0, $sp, 0x00D4 ## $t0 = FFFFFFBC
/* 01718 80BA41B8 8D2A0004 */ lw $t2, 0x0004($t1) ## 80BA5994
/* 0171C 80BA41BC AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFBC
/* 01720 80BA41C0 8D2B0008 */ lw $t3, 0x0008($t1) ## 80BA5998
/* 01724 80BA41C4 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFC0
/* 01728 80BA41C8 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 0172C 80BA41CC AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFC4
/* 01730 80BA41D0 8CAC0790 */ lw $t4, 0x0790($a1) ## 00000790
/* 01734 80BA41D4 3C0680BA */ lui $a2, %hi(D_80BA5A88) ## $a2 = 80BA0000
/* 01738 80BA41D8 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 0173C 80BA41DC 858D014C */ lh $t5, 0x014C($t4) ## 0000014C
/* 01740 80BA41E0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 01744 80BA41E4 24C65A88 */ addiu $a2, $a2, %lo(D_80BA5A88) ## $a2 = 80BA5A88
/* 01748 80BA41E8 31AE0100 */ andi $t6, $t5, 0x0100 ## $t6 = 00000000
/* 0174C 80BA41EC 15C001BA */ bne $t6, $zero, .L80BA48D8
/* 01750 80BA41F0 27A400B4 */ addiu $a0, $sp, 0x00B4 ## $a0 = FFFFFF9C
/* 01754 80BA41F4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01758 80BA41F8 240703BE */ addiu $a3, $zero, 0x03BE ## $a3 = 000003BE
/* 0175C 80BA41FC 0C031AB1 */ jal Graph_OpenDisps
/* 01760 80BA4200 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 01764 80BA4204 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 01768 80BA4208 02611821 */ addu $v1, $s3, $at
/* 0176C 80BA420C 90620B14 */ lbu $v0, 0x0B14($v1) ## 00000B14
/* 01770 80BA4210 90640B15 */ lbu $a0, 0x0B15($v1) ## 00000B15
/* 01774 80BA4214 3C15E700 */ lui $s5, 0xE700 ## $s5 = E7000000
/* 01778 80BA4218 0044082A */ slt $at, $v0, $a0
/* 0177C 80BA421C 5020000A */ beql $at, $zero, .L80BA4248
/* 01780 80BA4220 0082082A */ slt $at, $a0, $v0
/* 01784 80BA4224 8E6F009C */ lw $t7, 0x009C($s3) ## 0000009C
/* 01788 80BA4228 24590002 */ addiu $t9, $v0, 0x0002 ## $t9 = 00000002
/* 0178C 80BA422C 31F8000F */ andi $t8, $t7, 0x000F ## $t8 = 00000000
/* 01790 80BA4230 1700000E */ bne $t8, $zero, .L80BA426C
/* 01794 80BA4234 00000000 */ nop
/* 01798 80BA4238 A0790B14 */ sb $t9, 0x0B14($v1) ## 00000B14
/* 0179C 80BA423C 1000000B */ beq $zero, $zero, .L80BA426C
/* 017A0 80BA4240 332200FF */ andi $v0, $t9, 0x00FF ## $v0 = 00000002
/* 017A4 80BA4244 0082082A */ slt $at, $a0, $v0
.L80BA4248:
/* 017A8 80BA4248 10200008 */ beq $at, $zero, .L80BA426C
/* 017AC 80BA424C 00000000 */ nop
/* 017B0 80BA4250 8E68009C */ lw $t0, 0x009C($s3) ## 0000009C
/* 017B4 80BA4254 244AFFFE */ addiu $t2, $v0, 0xFFFE ## $t2 = 00000000
/* 017B8 80BA4258 3109000F */ andi $t1, $t0, 0x000F ## $t1 = 00000000
/* 017BC 80BA425C 15200003 */ bne $t1, $zero, .L80BA426C
/* 017C0 80BA4260 00000000 */ nop
/* 017C4 80BA4264 A06A0B14 */ sb $t2, 0x0B14($v1) ## 00000B14
/* 017C8 80BA4268 314200FF */ andi $v0, $t2, 0x00FF ## $v0 = 00000000
.L80BA426C:
/* 017CC 80BA426C 18400194 */ blez $v0, .L80BA48C0
/* 017D0 80BA4270 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000
/* 017D4 80BA4274 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 017D8 80BA4278 02015821 */ addu $t3, $s0, $at
/* 017DC 80BA427C 3C020405 */ lui $v0, %hi(gDust5Tex) ## $v0 = 04050000
/* 017E0 80BA4280 24422DB0 */ addiu $v0, $v0, %lo(gDust5Tex) ## $v0 = 04052DB0
/* 017E4 80BA4284 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 017E8 80BA4288 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 017EC 80BA428C 0041C824 */ and $t9, $v0, $at
/* 017F0 80BA4290 00026100 */ sll $t4, $v0, 4
/* 017F4 80BA4294 000C6F02 */ srl $t5, $t4, 28
/* 017F8 80BA4298 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 017FC 80BA429C 3C0F8016 */ lui $t7, %hi(gSegments)
/* 01800 80BA42A0 25EF6FA8 */ addiu $t7, %lo(gSegments)
/* 01804 80BA42A4 000D7080 */ sll $t6, $t5, 2
/* 01808 80BA42A8 3C080100 */ lui $t0, %hi(D_01000000) ## $t0 = 01000000
/* 0180C 80BA42AC 3C090401 */ lui $t1, %hi(gEffDustDL) ## $t1 = 04010000
/* 01810 80BA42B0 25290050 */ addiu $t1, $t1, %lo(gEffDustDL) ## $t1 = 04010050
/* 01814 80BA42B4 25080000 */ addiu $t0, $t0, %lo(D_01000000) ## $t0 = 01000000
/* 01818 80BA42B8 01CFC021 */ addu $t8, $t6, $t7
/* 0181C 80BA42BC 4481F000 */ mtc1 $at, $f30 ## $f30 = 80.00
/* 01820 80BA42C0 4481E000 */ mtc1 $at, $f28 ## $f28 = 80.00
/* 01824 80BA42C4 AFB8007C */ sw $t8, 0x007C($sp)
/* 01828 80BA42C8 AFA80074 */ sw $t0, 0x0074($sp)
/* 0182C 80BA42CC AFA90070 */ sw $t1, 0x0070($sp)
/* 01830 80BA42D0 AFB90078 */ sw $t9, 0x0078($sp)
/* 01834 80BA42D4 AFAB0084 */ sw $t3, 0x0084($sp)
/* 01838 80BA42D8 00145080 */ sll $t2, $s4, 2
.L80BA42DC:
/* 0183C 80BA42DC 01545021 */ addu $t2, $t2, $s4
/* 01840 80BA42E0 000A5080 */ sll $t2, $t2, 2
/* 01844 80BA42E4 01545021 */ addu $t2, $t2, $s4
/* 01848 80BA42E8 000A5080 */ sll $t2, $t2, 2
/* 0184C 80BA42EC 022A8021 */ addu $s0, $s1, $t2
/* 01850 80BA42F0 9202014C */ lbu $v0, 0x014C($s0) ## 0000014C
/* 01854 80BA42F4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 01858 80BA42F8 50400010 */ beql $v0, $zero, .L80BA433C
/* 0185C 80BA42FC C67200E0 */ lwc1 $f18, 0x00E0($s3) ## 000000E0
/* 01860 80BA4300 10410061 */ beq $v0, $at, .L80BA4488
/* 01864 80BA4304 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 01868 80BA4308 5041010B */ beql $v0, $at, .L80BA4738
/* 0186C 80BA430C C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
/* 01870 80BA4310 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
/* 01874 80BA4314 C606016C */ lwc1 $f6, 0x016C($s0) ## 0000016C
/* 01878 80BA4318 C6080158 */ lwc1 $f8, 0x0158($s0) ## 00000158
/* 0187C 80BA431C C60A0170 */ lwc1 $f10, 0x0170($s0) ## 00000170
/* 01880 80BA4320 46062380 */ add.s $f14, $f4, $f6
/* 01884 80BA4324 C6060168 */ lwc1 $f6, 0x0168($s0) ## 00000168
/* 01888 80BA4328 C6040150 */ lwc1 $f4, 0x0150($s0) ## 00000150
/* 0188C 80BA432C 460A4080 */ add.s $f2, $f8, $f10
/* 01890 80BA4330 1000010A */ beq $zero, $zero, .L80BA475C
/* 01894 80BA4334 46062300 */ add.s $f12, $f4, $f6
/* 01898 80BA4338 C67200E0 */ lwc1 $f18, 0x00E0($s3) ## 000000E0
.L80BA433C:
/* 0189C 80BA433C C66800EC */ lwc1 $f8, 0x00EC($s3) ## 000000EC
/* 018A0 80BA4340 C66A00F0 */ lwc1 $f10, 0x00F0($s3) ## 000000F0
/* 018A4 80BA4344 C66400E4 */ lwc1 $f4, 0x00E4($s3) ## 000000E4
/* 018A8 80BA4348 46124081 */ sub.s $f2, $f8, $f18
/* 018AC 80BA434C C66800E8 */ lwc1 $f8, 0x00E8($s3) ## 000000E8
/* 018B0 80BA4350 C66600F4 */ lwc1 $f6, 0x00F4($s3) ## 000000F4
/* 018B4 80BA4354 46045301 */ sub.s $f12, $f10, $f4
/* 018B8 80BA4358 46021282 */ mul.s $f10, $f2, $f2
/* 018BC 80BA435C 46083381 */ sub.s $f14, $f6, $f8
/* 018C0 80BA4360 460C6102 */ mul.s $f4, $f12, $f12
/* 018C4 80BA4364 46045180 */ add.s $f6, $f10, $f4
/* 018C8 80BA4368 460E7202 */ mul.s $f8, $f14, $f14
/* 018CC 80BA436C 46083000 */ add.s $f0, $f6, $f8
/* 018D0 80BA4370 46000004 */ sqrt.s $f0, $f0
/* 018D4 80BA4374 46001283 */ div.s $f10, $f2, $f0
/* 018D8 80BA4378 46007403 */ div.s $f16, $f14, $f0
/* 018DC 80BA437C 461E5102 */ mul.s $f4, $f10, $f30
/* 018E0 80BA4380 46006283 */ div.s $f10, $f12, $f0
/* 018E4 80BA4384 46049180 */ add.s $f6, $f18, $f4
/* 018E8 80BA4388 E6060168 */ swc1 $f6, 0x0168($s0) ## 00000168
/* 018EC 80BA438C C66800E4 */ lwc1 $f8, 0x00E4($s3) ## 000000E4
/* 018F0 80BA4390 461E5102 */ mul.s $f4, $f10, $f30
/* 018F4 80BA4394 46044180 */ add.s $f6, $f8, $f4
/* 018F8 80BA4398 461E8202 */ mul.s $f8, $f16, $f30
/* 018FC 80BA439C E606016C */ swc1 $f6, 0x016C($s0) ## 0000016C
/* 01900 80BA43A0 C66A00E8 */ lwc1 $f10, 0x00E8($s3) ## 000000E8
/* 01904 80BA43A4 46085100 */ add.s $f4, $f10, $f8
/* 01908 80BA43A8 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0190C 80BA43AC E6040170 */ swc1 $f4, 0x0170($s0) ## 00000170
/* 01910 80BA43B0 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01914 80BA43B4 4481A000 */ mtc1 $at, $f20 ## $f20 = 0.50
/* 01918 80BA43B8 3C014320 */ lui $at, 0x4320 ## $at = 43200000
/* 0191C 80BA43BC 4481C000 */ mtc1 $at, $f24 ## $f24 = 160.00
/* 01920 80BA43C0 46140181 */ sub.s $f6, $f0, $f20
/* 01924 80BA43C4 E61E0154 */ swc1 $f30, 0x0154($s0) ## 00000154
/* 01928 80BA43C8 46183282 */ mul.s $f10, $f6, $f24
/* 0192C 80BA43CC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 01930 80BA43D0 E60A0150 */ swc1 $f10, 0x0150($s0) ## 00000150
/* 01934 80BA43D4 46140201 */ sub.s $f8, $f0, $f20
/* 01938 80BA43D8 C6060154 */ lwc1 $f6, 0x0154($s0) ## 00000154
/* 0193C 80BA43DC C60A016C */ lwc1 $f10, 0x016C($s0) ## 0000016C
/* 01940 80BA43E0 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 01944 80BA43E4 46184102 */ mul.s $f4, $f8, $f24
/* 01948 80BA43E8 460A3200 */ add.s $f8, $f6, $f10
/* 0194C 80BA43EC 4481B000 */ mtc1 $at, $f22 ## $f22 = 50.00
/* 01950 80BA43F0 00000000 */ nop
/* 01954 80BA43F4 4616403C */ c.lt.s $f8, $f22
/* 01958 80BA43F8 E6040158 */ swc1 $f4, 0x0158($s0) ## 00000158
/* 0195C 80BA43FC 45000002 */ bc1f .L80BA4408
/* 01960 80BA4400 00000000 */ nop
/* 01964 80BA4404 E616016C */ swc1 $f22, 0x016C($s0) ## 0000016C
.L80BA4408:
/* 01968 80BA4408 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0196C 80BA440C 00000000 */ nop
/* 01970 80BA4410 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 01974 80BA4414 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 01978 80BA4418 00000000 */ nop
/* 0197C 80BA441C 46040182 */ mul.s $f6, $f0, $f4
/* 01980 80BA4420 46143280 */ add.s $f10, $f6, $f20
/* 01984 80BA4424 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 01988 80BA4428 E60A0180 */ swc1 $f10, 0x0180($s0) ## 00000180
/* 0198C 80BA442C 3C0143B4 */ lui $at, 0x43B4 ## $at = 43B40000
/* 01990 80BA4430 44814000 */ mtc1 $at, $f8 ## $f8 = 360.00
/* 01994 80BA4434 00000000 */ nop
/* 01998 80BA4438 46080102 */ mul.s $f4, $f0, $f8
/* 0199C 80BA443C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 019A0 80BA4440 E6040174 */ swc1 $f4, 0x0174($s0) ## 00000174
/* 019A4 80BA4444 3C0143B4 */ lui $at, 0x43B4 ## $at = 43B40000
/* 019A8 80BA4448 44813000 */ mtc1 $at, $f6 ## $f6 = 360.00
/* 019AC 80BA444C C6080154 */ lwc1 $f8, 0x0154($s0) ## 00000154
/* 019B0 80BA4450 C604016C */ lwc1 $f4, 0x016C($s0) ## 0000016C
/* 019B4 80BA4454 46060282 */ mul.s $f10, $f0, $f6
/* 019B8 80BA4458 920B014C */ lbu $t3, 0x014C($s0) ## 0000014C
/* 019BC 80BA445C 46044380 */ add.s $f14, $f8, $f4
/* 019C0 80BA4460 C6040168 */ lwc1 $f4, 0x0168($s0) ## 00000168
/* 019C4 80BA4464 C6080150 */ lwc1 $f8, 0x0150($s0) ## 00000150
/* 019C8 80BA4468 C6060158 */ lwc1 $f6, 0x0158($s0) ## 00000158
/* 019CC 80BA446C 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001
/* 019D0 80BA4470 E60A017C */ swc1 $f10, 0x017C($s0) ## 0000017C
/* 019D4 80BA4474 C60A0170 */ lwc1 $f10, 0x0170($s0) ## 00000170
/* 019D8 80BA4478 A20C014C */ sb $t4, 0x014C($s0) ## 0000014C
/* 019DC 80BA447C 46044300 */ add.s $f12, $f8, $f4
/* 019E0 80BA4480 100000B6 */ beq $zero, $zero, .L80BA475C
/* 019E4 80BA4484 460A3080 */ add.s $f2, $f6, $f10
.L80BA4488:
/* 019E8 80BA4488 C67200E0 */ lwc1 $f18, 0x00E0($s3) ## 000000E0
/* 019EC 80BA448C C66600EC */ lwc1 $f6, 0x00EC($s3) ## 000000EC
/* 019F0 80BA4490 C67400E4 */ lwc1 $f20, 0x00E4($s3) ## 000000E4
/* 019F4 80BA4494 C66A00F0 */ lwc1 $f10, 0x00F0($s3) ## 000000F0
/* 019F8 80BA4498 46123081 */ sub.s $f2, $f6, $f18
/* 019FC 80BA449C C67000E8 */ lwc1 $f16, 0x00E8($s3) ## 000000E8
/* 01A00 80BA44A0 C66800F4 */ lwc1 $f8, 0x00F4($s3) ## 000000F4
/* 01A04 80BA44A4 46145301 */ sub.s $f12, $f10, $f20
/* 01A08 80BA44A8 46021102 */ mul.s $f4, $f2, $f2
/* 01A0C 80BA44AC 46104381 */ sub.s $f14, $f8, $f16
/* 01A10 80BA44B0 460C6182 */ mul.s $f6, $f12, $f12
/* 01A14 80BA44B4 4600E607 */ neg.s $f24, $f28
/* 01A18 80BA44B8 460E7202 */ mul.s $f8, $f14, $f14
/* 01A1C 80BA44BC 46062280 */ add.s $f10, $f4, $f6
/* 01A20 80BA44C0 46085000 */ add.s $f0, $f10, $f8
/* 01A24 80BA44C4 46000004 */ sqrt.s $f0, $f0
/* 01A28 80BA44C8 46001103 */ div.s $f4, $f2, $f0
/* 01A2C 80BA44CC 46006283 */ div.s $f10, $f12, $f0
/* 01A30 80BA44D0 461E2182 */ mul.s $f6, $f4, $f30
/* 01A34 80BA44D4 46069680 */ add.s $f26, $f18, $f6
/* 01A38 80BA44D8 461E5202 */ mul.s $f8, $f10, $f30
/* 01A3C 80BA44DC 46007183 */ div.s $f6, $f14, $f0
/* 01A40 80BA44E0 4608A100 */ add.s $f4, $f20, $f8
/* 01A44 80BA44E4 E7A400F0 */ swc1 $f4, 0x00F0($sp)
/* 01A48 80BA44E8 461E3282 */ mul.s $f10, $f6, $f30
/* 01A4C 80BA44EC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 01A50 80BA44F0 460A8580 */ add.s $f22, $f16, $f10
/* 01A54 80BA44F4 3C0180BA */ lui $at, %hi(D_80BA5CA4) ## $at = 80BA0000
/* 01A58 80BA44F8 C4345CA4 */ lwc1 $f20, %lo(D_80BA5CA4)($at)
/* 01A5C 80BA44FC C6080174 */ lwc1 $f8, 0x0174($s0) ## 00000174
/* 01A60 80BA4500 4600A102 */ mul.s $f4, $f20, $f0
/* 01A64 80BA4504 46044180 */ add.s $f6, $f8, $f4
/* 01A68 80BA4508 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 01A6C 80BA450C E6060174 */ swc1 $f6, 0x0174($s0) ## 00000174
/* 01A70 80BA4510 4600A202 */ mul.s $f8, $f20, $f0
/* 01A74 80BA4514 C60A017C */ lwc1 $f10, 0x017C($s0) ## 0000017C
/* 01A78 80BA4518 3C0180BA */ lui $at, %hi(D_80BA5CA8) ## $at = 80BA0000
/* 01A7C 80BA451C C6060174 */ lwc1 $f6, 0x0174($s0) ## 00000174
/* 01A80 80BA4520 46085100 */ add.s $f4, $f10, $f8
/* 01A84 80BA4524 E604017C */ swc1 $f4, 0x017C($s0) ## 0000017C
/* 01A88 80BA4528 C42A5CA8 */ lwc1 $f10, %lo(D_80BA5CA8)($at)
/* 01A8C 80BA452C 460A3302 */ mul.s $f12, $f6, $f10
/* 01A90 80BA4530 0C0400A4 */ jal sinf
/* 01A94 80BA4534 00000000 */ nop
/* 01A98 80BA4538 C6080150 */ lwc1 $f8, 0x0150($s0) ## 00000150
/* 01A9C 80BA453C 3C0180BA */ lui $at, %hi(D_80BA5CAC) ## $at = 80BA0000
/* 01AA0 80BA4540 C606017C */ lwc1 $f6, 0x017C($s0) ## 0000017C
/* 01AA4 80BA4544 46004100 */ add.s $f4, $f8, $f0
/* 01AA8 80BA4548 E6040150 */ swc1 $f4, 0x0150($s0) ## 00000150
/* 01AAC 80BA454C C42A5CAC */ lwc1 $f10, %lo(D_80BA5CAC)($at)
/* 01AB0 80BA4550 460A3302 */ mul.s $f12, $f6, $f10
/* 01AB4 80BA4554 0C041184 */ jal cosf
/* 01AB8 80BA4558 00000000 */ nop
/* 01ABC 80BA455C C6080158 */ lwc1 $f8, 0x0158($s0) ## 00000158
/* 01AC0 80BA4560 C6060154 */ lwc1 $f6, 0x0154($s0) ## 00000154
/* 01AC4 80BA4564 C60A0180 */ lwc1 $f10, 0x0180($s0) ## 00000180
/* 01AC8 80BA4568 46004100 */ add.s $f4, $f8, $f0
/* 01ACC 80BA456C 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 01AD0 80BA4570 460A3201 */ sub.s $f8, $f6, $f10
/* 01AD4 80BA4574 E6040158 */ swc1 $f4, 0x0158($s0) ## 00000158
/* 01AD8 80BA4578 C606016C */ lwc1 $f6, 0x016C($s0) ## 0000016C
/* 01ADC 80BA457C E6080154 */ swc1 $f8, 0x0154($s0) ## 00000154
/* 01AE0 80BA4580 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
/* 01AE4 80BA4584 C62A0028 */ lwc1 $f10, 0x0028($s1) ## 00000028
/* 01AE8 80BA4588 46062380 */ add.s $f14, $f4, $f6
/* 01AEC 80BA458C 460A703C */ c.lt.s $f14, $f10
/* 01AF0 80BA4590 00000000 */ nop
/* 01AF4 80BA4594 4503000A */ bc1tl .L80BA45C0
/* 01AF8 80BA4598 920D014C */ lbu $t5, 0x014C($s0) ## 0000014C
/* 01AFC 80BA459C C66800E4 */ lwc1 $f8, 0x00E4($s3) ## 000000E4
/* 01B00 80BA45A0 44812000 */ mtc1 $at, $f4 ## $f4 = 150.00
/* 01B04 80BA45A4 00000000 */ nop
/* 01B08 80BA45A8 46044181 */ sub.s $f6, $f8, $f4
/* 01B0C 80BA45AC 4606703C */ c.lt.s $f14, $f6
/* 01B10 80BA45B0 00000000 */ nop
/* 01B14 80BA45B4 45020005 */ bc1fl .L80BA45CC
/* 01B18 80BA45B8 C60A0150 */ lwc1 $f10, 0x0150($s0) ## 00000150
/* 01B1C 80BA45BC 920D014C */ lbu $t5, 0x014C($s0) ## 0000014C
.L80BA45C0:
/* 01B20 80BA45C0 25AE0001 */ addiu $t6, $t5, 0x0001 ## $t6 = 00000001
/* 01B24 80BA45C4 A20E014C */ sb $t6, 0x014C($s0) ## 0000014C
/* 01B28 80BA45C8 C60A0150 */ lwc1 $f10, 0x0150($s0) ## 00000150
.L80BA45CC:
/* 01B2C 80BA45CC C6080168 */ lwc1 $f8, 0x0168($s0) ## 00000168
/* 01B30 80BA45D0 46085100 */ add.s $f4, $f10, $f8
/* 01B34 80BA45D4 461A2301 */ sub.s $f12, $f4, $f26
/* 01B38 80BA45D8 460CE03C */ c.lt.s $f28, $f12
/* 01B3C 80BA45DC 00000000 */ nop
/* 01B40 80BA45E0 4503001F */ bc1tl .L80BA4660
/* 01B44 80BA45E4 460CE03C */ c.lt.s $f28, $f12
/* 01B48 80BA45E8 4618603C */ c.lt.s $f12, $f24
/* 01B4C 80BA45EC 00000000 */ nop
/* 01B50 80BA45F0 4503001B */ bc1tl .L80BA4660
/* 01B54 80BA45F4 460CE03C */ c.lt.s $f28, $f12
/* 01B58 80BA45F8 C6060154 */ lwc1 $f6, 0x0154($s0) ## 00000154
/* 01B5C 80BA45FC C60A016C */ lwc1 $f10, 0x016C($s0) ## 0000016C
/* 01B60 80BA4600 C7A400F0 */ lwc1 $f4, 0x00F0($sp)
/* 01B64 80BA4604 460A3200 */ add.s $f8, $f6, $f10
/* 01B68 80BA4608 46044001 */ sub.s $f0, $f8, $f4
/* 01B6C 80BA460C 4600E03C */ c.lt.s $f28, $f0
/* 01B70 80BA4610 00000000 */ nop
/* 01B74 80BA4614 45030012 */ bc1tl .L80BA4660
/* 01B78 80BA4618 460CE03C */ c.lt.s $f28, $f12
/* 01B7C 80BA461C 4618003C */ c.lt.s $f0, $f24
/* 01B80 80BA4620 00000000 */ nop
/* 01B84 80BA4624 4503000E */ bc1tl .L80BA4660
/* 01B88 80BA4628 460CE03C */ c.lt.s $f28, $f12
/* 01B8C 80BA462C C6060158 */ lwc1 $f6, 0x0158($s0) ## 00000158
/* 01B90 80BA4630 C60A0170 */ lwc1 $f10, 0x0170($s0) ## 00000170
/* 01B94 80BA4634 460A3080 */ add.s $f2, $f6, $f10
/* 01B98 80BA4638 46161001 */ sub.s $f0, $f2, $f22
/* 01B9C 80BA463C 4600E03C */ c.lt.s $f28, $f0
/* 01BA0 80BA4640 00000000 */ nop
/* 01BA4 80BA4644 45030006 */ bc1tl .L80BA4660
/* 01BA8 80BA4648 460CE03C */ c.lt.s $f28, $f12
/* 01BAC 80BA464C 4618003C */ c.lt.s $f0, $f24
/* 01BB0 80BA4650 00000000 */ nop
/* 01BB4 80BA4654 45020031 */ bc1fl .L80BA471C
/* 01BB8 80BA4658 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
/* 01BBC 80BA465C 460CE03C */ c.lt.s $f28, $f12
.L80BA4660:
/* 01BC0 80BA4660 00000000 */ nop
/* 01BC4 80BA4664 4502000A */ bc1fl .L80BA4690
/* 01BC8 80BA4668 4618603C */ c.lt.s $f12, $f24
/* 01BCC 80BA466C 461CD201 */ sub.s $f8, $f26, $f28
/* 01BD0 80BA4670 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 01BD4 80BA4674 E6080168 */ swc1 $f8, 0x0168($s0) ## 00000168
/* 01BD8 80BA4678 E6040150 */ swc1 $f4, 0x0150($s0) ## 00000150
/* 01BDC 80BA467C C6060150 */ lwc1 $f6, 0x0150($s0) ## 00000150
/* 01BE0 80BA4680 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168
/* 01BE4 80BA4684 460A3200 */ add.s $f8, $f6, $f10
/* 01BE8 80BA4688 461A4301 */ sub.s $f12, $f8, $f26
/* 01BEC 80BA468C 4618603C */ c.lt.s $f12, $f24
.L80BA4690:
/* 01BF0 80BA4690 00000000 */ nop
/* 01BF4 80BA4694 45020006 */ bc1fl .L80BA46B0
/* 01BF8 80BA4698 C60A0158 */ lwc1 $f10, 0x0158($s0) ## 00000158
/* 01BFC 80BA469C 461CD100 */ add.s $f4, $f26, $f28
/* 01C00 80BA46A0 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 01C04 80BA46A4 E6040168 */ swc1 $f4, 0x0168($s0) ## 00000168
/* 01C08 80BA46A8 E6060150 */ swc1 $f6, 0x0150($s0) ## 00000150
/* 01C0C 80BA46AC C60A0158 */ lwc1 $f10, 0x0158($s0) ## 00000158
.L80BA46B0:
/* 01C10 80BA46B0 C6080170 */ lwc1 $f8, 0x0170($s0) ## 00000170
/* 01C14 80BA46B4 46085080 */ add.s $f2, $f10, $f8
/* 01C18 80BA46B8 46161001 */ sub.s $f0, $f2, $f22
/* 01C1C 80BA46BC 4600E03C */ c.lt.s $f28, $f0
/* 01C20 80BA46C0 00000000 */ nop
/* 01C24 80BA46C4 4502000A */ bc1fl .L80BA46F0
/* 01C28 80BA46C8 4618003C */ c.lt.s $f0, $f24
/* 01C2C 80BA46CC 461CB101 */ sub.s $f4, $f22, $f28
/* 01C30 80BA46D0 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 01C34 80BA46D4 E6040170 */ swc1 $f4, 0x0170($s0) ## 00000170
/* 01C38 80BA46D8 E6060158 */ swc1 $f6, 0x0158($s0) ## 00000158
/* 01C3C 80BA46DC C60A0158 */ lwc1 $f10, 0x0158($s0) ## 00000158
/* 01C40 80BA46E0 C6080170 */ lwc1 $f8, 0x0170($s0) ## 00000170
/* 01C44 80BA46E4 46085080 */ add.s $f2, $f10, $f8
/* 01C48 80BA46E8 46161001 */ sub.s $f0, $f2, $f22
/* 01C4C 80BA46EC 4618003C */ c.lt.s $f0, $f24
.L80BA46F0:
/* 01C50 80BA46F0 00000000 */ nop
/* 01C54 80BA46F4 45020009 */ bc1fl .L80BA471C
/* 01C58 80BA46F8 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
/* 01C5C 80BA46FC 461CB100 */ add.s $f4, $f22, $f28
/* 01C60 80BA4700 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 01C64 80BA4704 E6040170 */ swc1 $f4, 0x0170($s0) ## 00000170
/* 01C68 80BA4708 E6060158 */ swc1 $f6, 0x0158($s0) ## 00000158
/* 01C6C 80BA470C C60A0158 */ lwc1 $f10, 0x0158($s0) ## 00000158
/* 01C70 80BA4710 C6080170 */ lwc1 $f8, 0x0170($s0) ## 00000170
/* 01C74 80BA4714 46085080 */ add.s $f2, $f10, $f8
/* 01C78 80BA4718 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
.L80BA471C:
/* 01C7C 80BA471C C606016C */ lwc1 $f6, 0x016C($s0) ## 0000016C
/* 01C80 80BA4720 C60A0150 */ lwc1 $f10, 0x0150($s0) ## 00000150
/* 01C84 80BA4724 C6080168 */ lwc1 $f8, 0x0168($s0) ## 00000168
/* 01C88 80BA4728 46062380 */ add.s $f14, $f4, $f6
/* 01C8C 80BA472C 1000000B */ beq $zero, $zero, .L80BA475C
/* 01C90 80BA4730 46085300 */ add.s $f12, $f10, $f8
/* 01C94 80BA4734 C6040154 */ lwc1 $f4, 0x0154($s0) ## 00000154
.L80BA4738:
/* 01C98 80BA4738 C606016C */ lwc1 $f6, 0x016C($s0) ## 0000016C
/* 01C9C 80BA473C C60A0158 */ lwc1 $f10, 0x0158($s0) ## 00000158
/* 01CA0 80BA4740 C6080170 */ lwc1 $f8, 0x0170($s0) ## 00000170
/* 01CA4 80BA4744 46062380 */ add.s $f14, $f4, $f6
/* 01CA8 80BA4748 C6060168 */ lwc1 $f6, 0x0168($s0) ## 00000168
/* 01CAC 80BA474C C6040150 */ lwc1 $f4, 0x0150($s0) ## 00000150
/* 01CB0 80BA4750 A200014C */ sb $zero, 0x014C($s0) ## 0000014C
/* 01CB4 80BA4754 46085080 */ add.s $f2, $f10, $f8
/* 01CB8 80BA4758 46062300 */ add.s $f12, $f4, $f6
.L80BA475C:
/* 01CBC 80BA475C 44061000 */ mfc1 $a2, $f2
/* 01CC0 80BA4760 0C034261 */ jal Matrix_Translate
/* 01CC4 80BA4764 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01CC8 80BA4768 3C0180BA */ lui $at, %hi(D_80BA5CB0) ## $at = 80BA0000
/* 01CCC 80BA476C C42E5CB0 */ lwc1 $f14, %lo(D_80BA5CB0)($at)
/* 01CD0 80BA4770 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01CD4 80BA4774 44067000 */ mfc1 $a2, $f14
/* 01CD8 80BA4778 0C0342A3 */ jal Matrix_Scale
/* 01CDC 80BA477C 46007306 */ mov.s $f12, $f14
/* 01CE0 80BA4780 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01CE4 80BA4784 3C04C8C8 */ lui $a0, 0xC8C8 ## $a0 = C8C80000
/* 01CE8 80BA4788 3484C8B4 */ ori $a0, $a0, 0xC8B4 ## $a0 = C8C8C8B4
/* 01CEC 80BA478C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 01CF0 80BA4790 AE4F02D0 */ sw $t7, 0x02D0($s2) ## 000002D0
/* 01CF4 80BA4794 AC550000 */ sw $s5, 0x0000($v0) ## 00000000
/* 01CF8 80BA4798 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 01CFC 80BA479C 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01D00 80BA47A0 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000
/* 01D04 80BA47A4 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000
/* 01D08 80BA47A8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 01D0C 80BA47AC AE5802D0 */ sw $t8, 0x02D0($s2) ## 000002D0
/* 01D10 80BA47B0 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 01D14 80BA47B4 AC440004 */ sw $a0, 0x0004($v0) ## 00000004
/* 01D18 80BA47B8 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01D1C 80BA47BC 3C0BDA38 */ lui $t3, 0xDA38 ## $t3 = DA380000
/* 01D20 80BA47C0 356B0003 */ ori $t3, $t3, 0x0003 ## $t3 = DA380003
/* 01D24 80BA47C4 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 01D28 80BA47C8 AE4802D0 */ sw $t0, 0x02D0($s2) ## 000002D0
/* 01D2C 80BA47CC AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 01D30 80BA47D0 AC440004 */ sw $a0, 0x0004($v0) ## 00000004
/* 01D34 80BA47D4 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01D38 80BA47D8 3C0580BA */ lui $a1, %hi(D_80BA5AA0) ## $a1 = 80BA0000
/* 01D3C 80BA47DC 24A55AA0 */ addiu $a1, $a1, %lo(D_80BA5AA0) ## $a1 = 80BA5AA0
/* 01D40 80BA47E0 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 01D44 80BA47E4 AE4A02D0 */ sw $t2, 0x02D0($s2) ## 000002D0
/* 01D48 80BA47E8 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 01D4C 80BA47EC 8E640000 */ lw $a0, 0x0000($s3) ## 00000000
/* 01D50 80BA47F0 24060453 */ addiu $a2, $zero, 0x0453 ## $a2 = 00000453
/* 01D54 80BA47F4 0C0346A2 */ jal Matrix_NewMtx
/* 01D58 80BA47F8 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 01D5C 80BA47FC AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 01D60 80BA4800 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01D64 80BA4804 3C0DDB06 */ lui $t5, 0xDB06 ## $t5 = DB060000
/* 01D68 80BA4808 35AD0020 */ ori $t5, $t5, 0x0020 ## $t5 = DB060020
/* 01D6C 80BA480C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 01D70 80BA4810 AE4C02D0 */ sw $t4, 0x02D0($s2) ## 000002D0
/* 01D74 80BA4814 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 01D78 80BA4818 8FAE007C */ lw $t6, 0x007C($sp)
/* 01D7C 80BA481C 8FB80078 */ lw $t8, 0x0078($sp)
/* 01D80 80BA4820 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 01D84 80BA4824 8DCF0000 */ lw $t7, 0x0000($t6) ## 00000000
/* 01D88 80BA4828 01F8C821 */ addu $t9, $t7, $t8
/* 01D8C 80BA482C 03214021 */ addu $t0, $t9, $at
/* 01D90 80BA4830 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 01D94 80BA4834 0C025314 */ jal func_80094C50
/* 01D98 80BA4838 8E640000 */ lw $a0, 0x0000($s3) ## 00000000
/* 01D9C 80BA483C 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01DA0 80BA4840 3C0ADA38 */ lui $t2, 0xDA38 ## $t2 = DA380000
/* 01DA4 80BA4844 354A0001 */ ori $t2, $t2, 0x0001 ## $t2 = DA380001
/* 01DA8 80BA4848 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 01DAC 80BA484C AE4902D0 */ sw $t1, 0x02D0($s2) ## 000002D0
/* 01DB0 80BA4850 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 01DB4 80BA4854 8FAB0074 */ lw $t3, 0x0074($sp)
/* 01DB8 80BA4858 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
/* 01DBC 80BA485C 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001
/* 01DC0 80BA4860 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 01DC4 80BA4864 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01DC8 80BA4868 0014A400 */ sll $s4, $s4, 16
/* 01DCC 80BA486C 0014A403 */ sra $s4, $s4, 16
/* 01DD0 80BA4870 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 01DD4 80BA4874 AE4C02D0 */ sw $t4, 0x02D0($s2) ## 000002D0
/* 01DD8 80BA4878 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 01DDC 80BA487C AC550000 */ sw $s5, 0x0000($v0) ## 00000000
/* 01DE0 80BA4880 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01DE4 80BA4884 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 01DE8 80BA4888 AE4D02D0 */ sw $t5, 0x02D0($s2) ## 000002D0
/* 01DEC 80BA488C AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 01DF0 80BA4890 8FAF0070 */ lw $t7, 0x0070($sp)
/* 01DF4 80BA4894 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 01DF8 80BA4898 8E4202D0 */ lw $v0, 0x02D0($s2) ## 000002D0
/* 01DFC 80BA489C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 01E00 80BA48A0 AE5802D0 */ sw $t8, 0x02D0($s2) ## 000002D0
/* 01E04 80BA48A4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 01E08 80BA48A8 AC550000 */ sw $s5, 0x0000($v0) ## 00000000
/* 01E0C 80BA48AC 8FB90084 */ lw $t9, 0x0084($sp)
/* 01E10 80BA48B0 93280B14 */ lbu $t0, 0x0B14($t9) ## 00000B14
/* 01E14 80BA48B4 0288082A */ slt $at, $s4, $t0
/* 01E18 80BA48B8 5420FE88 */ bnel $at, $zero, .L80BA42DC
/* 01E1C 80BA48BC 00145080 */ sll $t2, $s4, 2
.L80BA48C0:
/* 01E20 80BA48C0 3C0680BA */ lui $a2, %hi(D_80BA5AB8) ## $a2 = 80BA0000
/* 01E24 80BA48C4 24C65AB8 */ addiu $a2, $a2, %lo(D_80BA5AB8) ## $a2 = 80BA5AB8
/* 01E28 80BA48C8 27A400B4 */ addiu $a0, $sp, 0x00B4 ## $a0 = FFFFFF9C
/* 01E2C 80BA48CC 8E650000 */ lw $a1, 0x0000($s3) ## 00000000
/* 01E30 80BA48D0 0C031AD5 */ jal Graph_CloseDisps
/* 01E34 80BA48D4 24070467 */ addiu $a3, $zero, 0x0467 ## $a3 = 00000467
.L80BA48D8:
/* 01E38 80BA48D8 8FBF005C */ lw $ra, 0x005C($sp)
/* 01E3C 80BA48DC D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 01E40 80BA48E0 D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 01E44 80BA48E4 D7B80020 */ ldc1 $f24, 0x0020($sp)
/* 01E48 80BA48E8 D7BA0028 */ ldc1 $f26, 0x0028($sp)
/* 01E4C 80BA48EC D7BC0030 */ ldc1 $f28, 0x0030($sp)
/* 01E50 80BA48F0 D7BE0038 */ ldc1 $f30, 0x0038($sp)
/* 01E54 80BA48F4 8FB00044 */ lw $s0, 0x0044($sp)
/* 01E58 80BA48F8 8FB10048 */ lw $s1, 0x0048($sp)
/* 01E5C 80BA48FC 8FB2004C */ lw $s2, 0x004C($sp)
/* 01E60 80BA4900 8FB30050 */ lw $s3, 0x0050($sp)
/* 01E64 80BA4904 8FB40054 */ lw $s4, 0x0054($sp)
/* 01E68 80BA4908 8FB50058 */ lw $s5, 0x0058($sp)
/* 01E6C 80BA490C 03E00008 */ jr $ra
/* 01E70 80BA4910 27BD0118 */ addiu $sp, $sp, 0x0118 ## $sp = 00000000

View File

@ -1,49 +0,0 @@
glabel func_80BA4914
/* 01E74 80BA4914 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 01E78 80BA4918 11C00026 */ beq $t6, $zero, .L80BA49B4
/* 01E7C 80BA491C 00000000 */ nop
/* 01E80 80BA4920 8CA21D8C */ lw $v0, 0x1D8C($a1) ## 00001D8C
/* 01E84 80BA4924 10400023 */ beq $v0, $zero, .L80BA49B4
/* 01E88 80BA4928 00000000 */ nop
/* 01E8C 80BA492C 9083014C */ lbu $v1, 0x014C($a0) ## 0000014C
/* 01E90 80BA4930 50600009 */ beql $v1, $zero, .L80BA4958
/* 01E94 80BA4934 A480019C */ sh $zero, 0x019C($a0) ## 0000019C
/* 01E98 80BA4938 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 01E9C 80BA493C 1065000F */ beq $v1, $a1, .L80BA497C
/* 01EA0 80BA4940 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 01EA4 80BA4944 50610018 */ beql $v1, $at, .L80BA49A8
/* 01EA8 80BA4948 944E0000 */ lhu $t6, 0x0000($v0) ## 00000000
/* 01EAC 80BA494C 03E00008 */ jr $ra
/* 01EB0 80BA4950 00000000 */ nop
.L80BA4954:
/* 01EB4 80BA4954 A480019C */ sh $zero, 0x019C($a0) ## 0000019C
.L80BA4958:
/* 01EB8 80BA4958 8CAF1D8C */ lw $t7, 0x1D8C($a1) ## 00001D8D
/* 01EBC 80BA495C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 01EC0 80BA4960 95F80000 */ lhu $t8, 0x0000($t7) ## 00000000
/* 01EC4 80BA4964 17010013 */ bne $t8, $at, .L80BA49B4
/* 01EC8 80BA4968 00000000 */ nop
/* 01ECC 80BA496C 9099014C */ lbu $t9, 0x014C($a0) ## 0000014C
/* 01ED0 80BA4970 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001
/* 01ED4 80BA4974 03E00008 */ jr $ra
/* 01ED8 80BA4978 A088014C */ sb $t0, 0x014C($a0) ## 0000014C
.L80BA497C:
/* 01EDC 80BA497C 9489019C */ lhu $t1, 0x019C($a0) ## 0000019C
/* 01EE0 80BA4980 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 01EE4 80BA4984 314BFFFF */ andi $t3, $t2, 0xFFFF ## $t3 = 00000001
/* 01EE8 80BA4988 29610007 */ slti $at, $t3, 0x0007
/* 01EEC 80BA498C 14200009 */ bne $at, $zero, .L80BA49B4
/* 01EF0 80BA4990 A48A019C */ sh $t2, 0x019C($a0) ## 0000019C
/* 01EF4 80BA4994 908C014C */ lbu $t4, 0x014C($a0) ## 0000014C
/* 01EF8 80BA4998 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001
/* 01EFC 80BA499C 03E00008 */ jr $ra
/* 01F00 80BA49A0 A08D014C */ sb $t5, 0x014C($a0) ## 0000014C
.L80BA49A4:
/* 01F04 80BA49A4 944E0000 */ lhu $t6, 0x0000($v0) ## 00000000
.L80BA49A8:
/* 01F08 80BA49A8 14AE0002 */ bne $a1, $t6, .L80BA49B4
/* 01F0C 80BA49AC 00000000 */ nop
/* 01F10 80BA49B0 A080014C */ sb $zero, 0x014C($a0) ## 0000014C
.L80BA49B4:
/* 01F14 80BA49B4 03E00008 */ jr $ra
/* 01F18 80BA49B8 00000000 */ nop

View File

@ -1,167 +0,0 @@
.rdata
glabel D_80BA5AD0
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5AE8
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5B00
.asciz "../z_object_kankyo.c"
.balign 4
.late_rodata
glabel D_80BA5CB4
.float 0.34906584
glabel D_80BA5CB8
.float 0.34906584
.text
glabel func_80BA49BC
/* 01F1C 80BA49BC 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 01F20 80BA49C0 AFBF001C */ sw $ra, 0x001C($sp)
/* 01F24 80BA49C4 AFB00018 */ sw $s0, 0x0018($sp)
/* 01F28 80BA49C8 AFA40060 */ sw $a0, 0x0060($sp)
/* 01F2C 80BA49CC AFA50064 */ sw $a1, 0x0064($sp)
/* 01F30 80BA49D0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01F34 80BA49D4 3C0680BA */ lui $a2, %hi(D_80BA5AD0) ## $a2 = 80BA0000
/* 01F38 80BA49D8 24C65AD0 */ addiu $a2, $a2, %lo(D_80BA5AD0) ## $a2 = 80BA5AD0
/* 01F3C 80BA49DC 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFE4
/* 01F40 80BA49E0 2407049E */ addiu $a3, $zero, 0x049E ## $a3 = 0000049E
/* 01F44 80BA49E4 0C031AB1 */ jal Graph_OpenDisps
/* 01F48 80BA49E8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 01F4C 80BA49EC 8FAF0060 */ lw $t7, 0x0060($sp)
/* 01F50 80BA49F0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 01F54 80BA49F4 8FB90064 */ lw $t9, 0x0064($sp)
/* 01F58 80BA49F8 91F8014C */ lbu $t8, 0x014C($t7) ## 0000014C
/* 01F5C 80BA49FC 57010074 */ bnel $t8, $at, .L80BA4BD0
/* 01F60 80BA4A00 8FAB0064 */ lw $t3, 0x0064($sp)
/* 01F64 80BA4A04 8F221D8C */ lw $v0, 0x1D8C($t9) ## 00001D8C
/* 01F68 80BA4A08 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01F6C 80BA4A0C 8C4A0014 */ lw $t2, 0x0014($v0) ## 00000014
/* 01F70 80BA4A10 8C48000C */ lw $t0, 0x000C($v0) ## 0000000C
/* 01F74 80BA4A14 8C490010 */ lw $t1, 0x0010($v0) ## 00000010
/* 01F78 80BA4A18 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 01F7C 80BA4A1C 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 01F80 80BA4A20 44893000 */ mtc1 $t1, $f6 ## $f6 = 0.00
/* 01F84 80BA4A24 46804220 */ cvt.s.w $f8, $f8
/* 01F88 80BA4A28 46802320 */ cvt.s.w $f12, $f4
/* 01F8C 80BA4A2C 44064000 */ mfc1 $a2, $f8
/* 01F90 80BA4A30 0C034261 */ jal Matrix_Translate
/* 01F94 80BA4A34 468033A0 */ cvt.s.w $f14, $f6
/* 01F98 80BA4A38 3C0180BA */ lui $at, %hi(D_80BA5CB4) ## $at = 80BA0000
/* 01F9C 80BA4A3C C42C5CB4 */ lwc1 $f12, %lo(D_80BA5CB4)($at)
/* 01FA0 80BA4A40 0C0342DC */ jal Matrix_RotateX
/* 01FA4 80BA4A44 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 01FA8 80BA4A48 3C0180BA */ lui $at, %hi(D_80BA5CB8) ## $at = 80BA0000
/* 01FAC 80BA4A4C C42C5CB8 */ lwc1 $f12, %lo(D_80BA5CB8)($at)
/* 01FB0 80BA4A50 0C0343B5 */ jal Matrix_RotateZ
/* 01FB4 80BA4A54 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 01FB8 80BA4A58 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 01FBC 80BA4A5C 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00
/* 01FC0 80BA4A60 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 01FC4 80BA4A64 44817000 */ mtc1 $at, $f14 ## $f14 = 5.00
/* 01FC8 80BA4A68 44066000 */ mfc1 $a2, $f12
/* 01FCC 80BA4A6C 0C0342A3 */ jal Matrix_Scale
/* 01FD0 80BA4A70 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01FD4 80BA4A74 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01FD8 80BA4A78 3C0CFA00 */ lui $t4, 0xFA00 ## $t4 = FA000000
/* 01FDC 80BA4A7C 240DFF80 */ addiu $t5, $zero, 0xFF80 ## $t5 = FFFFFF80
/* 01FE0 80BA4A80 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 01FE4 80BA4A84 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 01FE8 80BA4A88 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 01FEC 80BA4A8C AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 01FF0 80BA4A90 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 01FF4 80BA4A94 3C1800FF */ lui $t8, 0x00FF ## $t8 = 00FF0000
/* 01FF8 80BA4A98 3718FF80 */ ori $t8, $t8, 0xFF80 ## $t8 = 00FFFF80
/* 01FFC 80BA4A9C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 02000 80BA4AA0 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 02004 80BA4AA4 3C0FFB00 */ lui $t7, 0xFB00 ## $t7 = FB000000
/* 02008 80BA4AA8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 0200C 80BA4AAC AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 02010 80BA4AB0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 02014 80BA4AB4 3C08DA38 */ lui $t0, 0xDA38 ## $t0 = DA380000
/* 02018 80BA4AB8 35080003 */ ori $t0, $t0, 0x0003 ## $t0 = DA380003
/* 0201C 80BA4ABC 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 02020 80BA4AC0 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 02024 80BA4AC4 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 02028 80BA4AC8 8FA90064 */ lw $t1, 0x0064($sp)
/* 0202C 80BA4ACC 3C0580BA */ lui $a1, %hi(D_80BA5AE8) ## $a1 = 80BA0000
/* 02030 80BA4AD0 24A55AE8 */ addiu $a1, $a1, %lo(D_80BA5AE8) ## $a1 = 80BA5AE8
/* 02034 80BA4AD4 8D240000 */ lw $a0, 0x0000($t1) ## 00000000
/* 02038 80BA4AD8 240604BD */ addiu $a2, $zero, 0x04BD ## $a2 = 000004BD
/* 0203C 80BA4ADC 0C0346A2 */ jal Matrix_NewMtx
/* 02040 80BA4AE0 AFA20038 */ sw $v0, 0x0038($sp)
/* 02044 80BA4AE4 8FA30038 */ lw $v1, 0x0038($sp)
/* 02048 80BA4AE8 3C0BDB06 */ lui $t3, 0xDB06 ## $t3 = DB060000
/* 0204C 80BA4AEC 356B0020 */ ori $t3, $t3, 0x0020 ## $t3 = DB060020
/* 02050 80BA4AF0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 02054 80BA4AF4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 02058 80BA4AF8 3C0480BA */ lui $a0, %hi(D_80BA58E0) ## $a0 = 80BA0000
/* 0205C 80BA4AFC 3C098016 */ lui $t1, %hi(gSegments)
/* 02060 80BA4B00 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 02064 80BA4B04 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 02068 80BA4B08 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 0206C 80BA4B0C 8FAC0060 */ lw $t4, 0x0060($sp)
/* 02070 80BA4B10 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 02074 80BA4B14 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 02078 80BA4B18 958D019C */ lhu $t5, 0x019C($t4) ## 0000019C
/* 0207C 80BA4B1C 000D7080 */ sll $t6, $t5, 2
/* 02080 80BA4B20 008E2021 */ addu $a0, $a0, $t6
/* 02084 80BA4B24 8C8458E0 */ lw $a0, %lo(D_80BA58E0)($a0)
/* 02088 80BA4B28 0004C100 */ sll $t8, $a0, 4
/* 0208C 80BA4B2C 0018CF02 */ srl $t9, $t8, 28
/* 02090 80BA4B30 00194080 */ sll $t0, $t9, 2
/* 02094 80BA4B34 01284821 */ addu $t1, $t1, $t0
/* 02098 80BA4B38 8D296FA8 */ lw $t1, %lo(gSegments)($t1)
/* 0209C 80BA4B3C 00817824 */ and $t7, $a0, $at
/* 020A0 80BA4B40 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 020A4 80BA4B44 01E95021 */ addu $t2, $t7, $t1
/* 020A8 80BA4B48 01415821 */ addu $t3, $t2, $at
/* 020AC 80BA4B4C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 020B0 80BA4B50 8FAC0064 */ lw $t4, 0x0064($sp)
/* 020B4 80BA4B54 0C025314 */ jal func_80094C50
/* 020B8 80BA4B58 8D840000 */ lw $a0, 0x0000($t4) ## 00000000
/* 020BC 80BA4B5C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 020C0 80BA4B60 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 020C4 80BA4B64 3C180100 */ lui $t8, %hi(D_01000000) ## $t8 = 01000000
/* 020C8 80BA4B68 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 020CC 80BA4B6C AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 020D0 80BA4B70 27180000 */ addiu $t8, $t8, %lo(D_01000000) ## $t8 = 01000000
/* 020D4 80BA4B74 35CE0001 */ ori $t6, $t6, 0x0001 ## $t6 = DA380001
/* 020D8 80BA4B78 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 020DC 80BA4B7C AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 020E0 80BA4B80 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 020E4 80BA4B84 3C04E700 */ lui $a0, 0xE700 ## $a0 = E7000000
/* 020E8 80BA4B88 3C090403 */ lui $t1, %hi(gEffLightningDL) ## $t1 = 04030000
/* 020EC 80BA4B8C 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 020F0 80BA4B90 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 020F4 80BA4B94 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 020F8 80BA4B98 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 020FC 80BA4B9C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 02100 80BA4BA0 2529CF30 */ addiu $t1, $t1, %lo(gEffLightningDL) ## $t1 = 0402CF30
/* 02104 80BA4BA4 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 02108 80BA4BA8 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 0210C 80BA4BAC AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0
/* 02110 80BA4BB0 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 02114 80BA4BB4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 02118 80BA4BB8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0211C 80BA4BBC 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 02120 80BA4BC0 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 02124 80BA4BC4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 02128 80BA4BC8 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 0212C 80BA4BCC 8FAB0064 */ lw $t3, 0x0064($sp)
.L80BA4BD0:
/* 02130 80BA4BD0 3C0680BA */ lui $a2, %hi(D_80BA5B00) ## $a2 = 80BA0000
/* 02134 80BA4BD4 24C65B00 */ addiu $a2, $a2, %lo(D_80BA5B00) ## $a2 = 80BA5B00
/* 02138 80BA4BD8 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFE4
/* 0213C 80BA4BDC 240704D1 */ addiu $a3, $zero, 0x04D1 ## $a3 = 000004D1
/* 02140 80BA4BE0 0C031AD5 */ jal Graph_CloseDisps
/* 02144 80BA4BE4 8D650000 */ lw $a1, 0x0000($t3) ## 00000000
/* 02148 80BA4BE8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0214C 80BA4BEC 8FB00018 */ lw $s0, 0x0018($sp)
/* 02150 80BA4BF0 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
/* 02154 80BA4BF4 03E00008 */ jr $ra
/* 02158 80BA4BF8 00000000 */ nop

View File

@ -1,42 +0,0 @@
.rdata
glabel D_80BA5B18
.asciz "0"
.balign 4
glabel D_80BA5B1C
.asciz "../z_object_kankyo.c"
.balign 4
.text
glabel func_80BA4BFC
/* 0215C 80BA4BFC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 02160 80BA4C00 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 02164 80BA4C04 AFA40018 */ sw $a0, 0x0018($sp)
/* 02168 80BA4C08 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 0216C 80BA4C0C AFBF0014 */ sw $ra, 0x0014($sp)
/* 02170 80BA4C10 00A12021 */ addu $a0, $a1, $at
/* 02174 80BA4C14 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 02178 80BA4C18 240500A1 */ addiu $a1, $zero, 0x00A1 ## $a1 = 000000A1
/* 0217C 80BA4C1C 04410009 */ bgez $v0, .L80BA4C44
/* 02180 80BA4C20 8FAE0018 */ lw $t6, 0x0018($sp)
/* 02184 80BA4C24 3C0480BA */ lui $a0, %hi(D_80BA5B18) ## $a0 = 80BA0000
/* 02188 80BA4C28 3C0580BA */ lui $a1, %hi(D_80BA5B1C) ## $a1 = 80BA0000
/* 0218C 80BA4C2C 24A55B1C */ addiu $a1, $a1, %lo(D_80BA5B1C) ## $a1 = 80BA5B1C
/* 02190 80BA4C30 24845B18 */ addiu $a0, $a0, %lo(D_80BA5B18) ## $a0 = 80BA5B18
/* 02194 80BA4C34 0C0007FC */ jal __assert
/* 02198 80BA4C38 240604E3 */ addiu $a2, $zero, 0x04E3 ## $a2 = 000004E3
/* 0219C 80BA4C3C 10000002 */ beq $zero, $zero, .L80BA4C48
/* 021A0 80BA4C40 00000000 */ nop
.L80BA4C44:
/* 021A4 80BA4C44 A1C21658 */ sb $v0, 0x1658($t6) ## 00001658
.L80BA4C48:
/* 021A8 80BA4C48 3C0580BA */ lui $a1, %hi(func_80BA4C68) ## $a1 = 80BA0000
/* 021AC 80BA4C4C 24A54C68 */ addiu $a1, $a1, %lo(func_80BA4C68) ## $a1 = 80BA4C68
/* 021B0 80BA4C50 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 021B4 80BA4C54 8FA40018 */ lw $a0, 0x0018($sp)
/* 021B8 80BA4C58 8FBF0014 */ lw $ra, 0x0014($sp)
/* 021BC 80BA4C5C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 021C0 80BA4C60 03E00008 */ jr $ra
/* 021C4 80BA4C64 00000000 */ nop

View File

@ -1,30 +0,0 @@
glabel func_80BA4C68
/* 021C8 80BA4C68 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 021CC 80BA4C6C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 021D0 80BA4C70 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 021D4 80BA4C74 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 021D8 80BA4C78 AFBF0014 */ sw $ra, 0x0014($sp)
/* 021DC 80BA4C7C 00A12021 */ addu $a0, $a1, $at
/* 021E0 80BA4C80 90C51658 */ lbu $a1, 0x1658($a2) ## 00001658
/* 021E4 80BA4C84 0C026062 */ jal Object_IsLoaded
/* 021E8 80BA4C88 AFA60018 */ sw $a2, 0x0018($sp)
/* 021EC 80BA4C8C 1040000D */ beq $v0, $zero, .L80BA4CC4
/* 021F0 80BA4C90 8FA60018 */ lw $a2, 0x0018($sp)
/* 021F4 80BA4C94 3C0140E0 */ lui $at, 0x40E0 ## $at = 40E00000
/* 021F8 80BA4C98 90CF1658 */ lbu $t7, 0x1658($a2) ## 00001658
/* 021FC 80BA4C9C 44812000 */ mtc1 $at, $f4 ## $f4 = 7.00
/* 02200 80BA4CA0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 02204 80BA4CA4 3C0580BA */ lui $a1, %hi(func_80BA4CD4) ## $a1 = 80BA0000
/* 02208 80BA4CA8 A0CE1659 */ sb $t6, 0x1659($a2) ## 00001659
/* 0220C 80BA4CAC A0C0018C */ sb $zero, 0x018C($a2) ## 0000018C
/* 02210 80BA4CB0 24A54CD4 */ addiu $a1, $a1, %lo(func_80BA4CD4) ## $a1 = 80BA4CD4
/* 02214 80BA4CB4 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 02218 80BA4CB8 A0CF001E */ sb $t7, 0x001E($a2) ## 0000001E
/* 0221C 80BA4CBC 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 02220 80BA4CC0 E4C40190 */ swc1 $f4, 0x0190($a2) ## 00000190
.L80BA4CC4:
/* 02224 80BA4CC4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 02228 80BA4CC8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0222C 80BA4CCC 03E00008 */ jr $ra
/* 02230 80BA4CD0 00000000 */ nop

View File

@ -1,53 +0,0 @@
.late_rodata
glabel D_80BA5CBC
.float 0.01
.text
glabel func_80BA4CD4
/* 02234 80BA4CD4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 02238 80BA4CD8 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0223C 80BA4CDC AFB00020 */ sw $s0, 0x0020($sp)
/* 02240 80BA4CE0 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 02244 80BA4CE4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 02248 80BA4CE8 51C00020 */ beql $t6, $zero, .L80BA4D6C
/* 0224C 80BA4CEC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 02250 80BA4CF0 8CA21D90 */ lw $v0, 0x1D90($a1) ## 00001D90
/* 02254 80BA4CF4 5040001D */ beql $v0, $zero, .L80BA4D6C
/* 02258 80BA4CF8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0225C 80BA4CFC 944F0000 */ lhu $t7, 0x0000($v0) ## 00000000
/* 02260 80BA4D00 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 02264 80BA4D04 55E10019 */ bnel $t7, $at, .L80BA4D6C
/* 02268 80BA4D08 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0226C 80BA4D0C 0C00BE0A */ jal Audio_PlayActorSound2
/* 02270 80BA4D10 2405309A */ addiu $a1, $zero, 0x309A ## $a1 = 0000309A
/* 02274 80BA4D14 9202018C */ lbu $v0, 0x018C($s0) ## 0000018C
/* 02278 80BA4D18 3C053FE6 */ lui $a1, 0x3FE6 ## $a1 = 3FE60000
/* 0227C 80BA4D1C 34A56666 */ ori $a1, $a1, 0x6666 ## $a1 = 3FE66666
/* 02280 80BA4D20 0002C400 */ sll $t8, $v0, 16
/* 02284 80BA4D24 0018CC03 */ sra $t9, $t8, 16
/* 02288 80BA4D28 27280014 */ addiu $t0, $t9, 0x0014 ## $t0 = 00000014
/* 0228C 80BA4D2C 29010100 */ slti $at, $t0, 0x0100
/* 02290 80BA4D30 14200004 */ bne $at, $zero, .L80BA4D44
/* 02294 80BA4D34 26040190 */ addiu $a0, $s0, 0x0190 ## $a0 = 00000190
/* 02298 80BA4D38 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
/* 0229C 80BA4D3C 10000003 */ beq $zero, $zero, .L80BA4D4C
/* 022A0 80BA4D40 A209018C */ sb $t1, 0x018C($s0) ## 0000018C
.L80BA4D44:
/* 022A4 80BA4D44 244A0014 */ addiu $t2, $v0, 0x0014 ## $t2 = 00000014
/* 022A8 80BA4D48 A20A018C */ sb $t2, 0x018C($s0) ## 0000018C
.L80BA4D4C:
/* 022AC 80BA4D4C 3C0180BA */ lui $at, %hi(D_80BA5CBC) ## $at = 80BA0000
/* 022B0 80BA4D50 C4245CBC */ lwc1 $f4, %lo(D_80BA5CBC)($at)
/* 022B4 80BA4D54 3C073E8F */ lui $a3, 0x3E8F ## $a3 = 3E8F0000
/* 022B8 80BA4D58 34E75C29 */ ori $a3, $a3, 0x5C29 ## $a3 = 3E8F5C29
/* 022BC 80BA4D5C 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 022C0 80BA4D60 0C01E0C4 */ jal Math_SmoothStepToF
/* 022C4 80BA4D64 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 022C8 80BA4D68 8FBF0024 */ lw $ra, 0x0024($sp)
.L80BA4D6C:
/* 022CC 80BA4D6C 8FB00020 */ lw $s0, 0x0020($sp)
/* 022D0 80BA4D70 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 022D4 80BA4D74 03E00008 */ jr $ra
/* 022D8 80BA4D78 00000000 */ nop

View File

@ -1,393 +0,0 @@
.rdata
glabel D_80BA5B34
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5B4C
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5B64
.asciz "../z_object_kankyo.c"
.balign 4
.late_rodata
glabel D_80BA5CC0
.float 0.142857149
glabel D_80BA5CC4
.float 0.142857149
glabel D_80BA5CC8
.float 0.1
.text
glabel func_80BA4D7C
/* 022DC 80BA4D7C 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 022E0 80BA4D80 AFB10018 */ sw $s1, 0x0018($sp)
/* 022E4 80BA4D84 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 022E8 80BA4D88 AFBF001C */ sw $ra, 0x001C($sp)
/* 022EC 80BA4D8C AFB00014 */ sw $s0, 0x0014($sp)
/* 022F0 80BA4D90 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 022F4 80BA4D94 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 022F8 80BA4D98 3C0680BA */ lui $a2, %hi(D_80BA5B34) ## $a2 = 80BA0000
/* 022FC 80BA4D9C 24C65B34 */ addiu $a2, $a2, %lo(D_80BA5B34) ## $a2 = 80BA5B34
/* 02300 80BA4DA0 27A40048 */ addiu $a0, $sp, 0x0048 ## $a0 = FFFFFFC8
/* 02304 80BA4DA4 2407052C */ addiu $a3, $zero, 0x052C ## $a3 = 0000052C
/* 02308 80BA4DA8 0C031AB1 */ jal Graph_OpenDisps
/* 0230C 80BA4DAC AFA50058 */ sw $a1, 0x0058($sp)
/* 02310 80BA4DB0 922E1D6C */ lbu $t6, 0x1D6C($s1) ## 00001D6C
/* 02314 80BA4DB4 8FA80058 */ lw $t0, 0x0058($sp)
/* 02318 80BA4DB8 11C00147 */ beq $t6, $zero, .L80BA52D8
/* 0231C 80BA4DBC 00000000 */ nop
/* 02320 80BA4DC0 8E221D90 */ lw $v0, 0x1D90($s1) ## 00001D90
/* 02324 80BA4DC4 10400144 */ beq $v0, $zero, .L80BA52D8
/* 02328 80BA4DC8 00000000 */ nop
/* 0232C 80BA4DCC 944F0000 */ lhu $t7, 0x0000($v0) ## 00000000
/* 02330 80BA4DD0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 02334 80BA4DD4 15E10140 */ bne $t7, $at, .L80BA52D8
/* 02338 80BA4DD8 00000000 */ nop
/* 0233C 80BA4DDC 92181659 */ lbu $t8, 0x1659($s0) ## 00001659
/* 02340 80BA4DE0 1300013D */ beq $t8, $zero, .L80BA52D8
/* 02344 80BA4DE4 00000000 */ nop
/* 02348 80BA4DE8 9219014C */ lbu $t9, 0x014C($s0) ## 0000014C
/* 0234C 80BA4DEC 17200011 */ bne $t9, $zero, .L80BA4E34
/* 02350 80BA4DF0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 02354 80BA4DF4 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 02358 80BA4DF8 3C0180BA */ lui $at, %hi(D_80BA5CC0) ## $at = 80BA0000
/* 0235C 80BA4DFC C4265CC0 */ lwc1 $f6, %lo(D_80BA5CC0)($at)
/* 02360 80BA4E00 C6040198 */ lwc1 $f4, 0x0198($s0) ## 00000198
/* 02364 80BA4E04 46062200 */ add.s $f8, $f4, $f6
/* 02368 80BA4E08 E6080198 */ swc1 $f8, 0x0198($s0) ## 00000198
/* 0236C 80BA4E0C C60A0198 */ lwc1 $f10, 0x0198($s0) ## 00000198
/* 02370 80BA4E10 460A003E */ c.le.s $f0, $f10
/* 02374 80BA4E14 00000000 */ nop
/* 02378 80BA4E18 45020016 */ bc1fl .L80BA4E74
/* 0237C 80BA4E1C 960B019C */ lhu $t3, 0x019C($s0) ## 0000019C
/* 02380 80BA4E20 9209014C */ lbu $t1, 0x014C($s0) ## 0000014C
/* 02384 80BA4E24 E6000198 */ swc1 $f0, 0x0198($s0) ## 00000198
/* 02388 80BA4E28 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 0238C 80BA4E2C 10000010 */ beq $zero, $zero, .L80BA4E70
/* 02390 80BA4E30 A20A014C */ sb $t2, 0x014C($s0) ## 0000014C
.L80BA4E34:
/* 02394 80BA4E34 3C0180BA */ lui $at, %hi(D_80BA5CC4) ## $at = 80BA0000
/* 02398 80BA4E38 C4265CC4 */ lwc1 $f6, %lo(D_80BA5CC4)($at)
/* 0239C 80BA4E3C C6040198 */ lwc1 $f4, 0x0198($s0) ## 00000198
/* 023A0 80BA4E40 3C0180BA */ lui $at, %hi(D_80BA5CC8) ## $at = 80BA0000
/* 023A4 80BA4E44 46062201 */ sub.s $f8, $f4, $f6
/* 023A8 80BA4E48 E6080198 */ swc1 $f8, 0x0198($s0) ## 00000198
/* 023AC 80BA4E4C C6040198 */ lwc1 $f4, 0x0198($s0) ## 00000198
/* 023B0 80BA4E50 C42A5CC8 */ lwc1 $f10, %lo(D_80BA5CC8)($at)
/* 023B4 80BA4E54 460A203E */ c.le.s $f4, $f10
/* 023B8 80BA4E58 00000000 */ nop
/* 023BC 80BA4E5C 45020005 */ bc1fl .L80BA4E74
/* 023C0 80BA4E60 960B019C */ lhu $t3, 0x019C($s0) ## 0000019C
/* 023C4 80BA4E64 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 023C8 80BA4E68 A200014C */ sb $zero, 0x014C($s0) ## 0000014C
/* 023CC 80BA4E6C E6060198 */ swc1 $f6, 0x0198($s0) ## 00000198
.L80BA4E70:
/* 023D0 80BA4E70 960B019C */ lhu $t3, 0x019C($s0) ## 0000019C
.L80BA4E74:
/* 023D4 80BA4E74 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001
/* 023D8 80BA4E78 318DFFFF */ andi $t5, $t4, 0xFFFF ## $t5 = 00000001
/* 023DC 80BA4E7C 29A10008 */ slti $at, $t5, 0x0008
/* 023E0 80BA4E80 14200002 */ bne $at, $zero, .L80BA4E8C
/* 023E4 80BA4E84 A60C019C */ sh $t4, 0x019C($s0) ## 0000019C
/* 023E8 80BA4E88 A600019C */ sh $zero, 0x019C($s0) ## 0000019C
.L80BA4E8C:
/* 023EC 80BA4E8C 8E221D90 */ lw $v0, 0x1D90($s1) ## 00001D90
/* 023F0 80BA4E90 8C4E000C */ lw $t6, 0x000C($v0) ## 0000000C
/* 023F4 80BA4E94 8C590018 */ lw $t9, 0x0018($v0) ## 00000018
/* 023F8 80BA4E98 8C4F0010 */ lw $t7, 0x0010($v0) ## 00000010
/* 023FC 80BA4E9C 448E4000 */ mtc1 $t6, $f8 ## $f8 = 0.00
/* 02400 80BA4EA0 44993000 */ mtc1 $t9, $f6 ## $f6 = 0.00
/* 02404 80BA4EA4 8C580014 */ lw $t8, 0x0014($v0) ## 00000014
/* 02408 80BA4EA8 468040A0 */ cvt.s.w $f2, $f8
/* 0240C 80BA4EAC 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00
/* 02410 80BA4EB0 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 02414 80BA4EB4 46803220 */ cvt.s.w $f8, $f6
/* 02418 80BA4EB8 46805420 */ cvt.s.w $f16, $f10
/* 0241C 80BA4EBC E7A80060 */ swc1 $f8, 0x0060($sp)
/* 02420 80BA4EC0 8C49001C */ lw $t1, 0x001C($v0) ## 0000001C
/* 02424 80BA4EC4 44895000 */ mtc1 $t1, $f10 ## $f10 = 0.00
/* 02428 80BA4EC8 468024A0 */ cvt.s.w $f18, $f4
/* 0242C 80BA4ECC 46805120 */ cvt.s.w $f4, $f10
/* 02430 80BA4ED0 E7A40064 */ swc1 $f4, 0x0064($sp)
/* 02434 80BA4ED4 8C4A0020 */ lw $t2, 0x0020($v0) ## 00000020
/* 02438 80BA4ED8 448A3000 */ mtc1 $t2, $f6 ## $f6 = 0.00
/* 0243C 80BA4EDC 00000000 */ nop
/* 02440 80BA4EE0 46803220 */ cvt.s.w $f8, $f6
/* 02444 80BA4EE4 E7A80068 */ swc1 $f8, 0x0068($sp)
/* 02448 80BA4EE8 96261D74 */ lhu $a2, 0x1D74($s1) ## 00001D74
/* 0244C 80BA4EEC 94450002 */ lhu $a1, 0x0002($v0) ## 00000002
/* 02450 80BA4EF0 94440004 */ lhu $a0, 0x0004($v0) ## 00000004
/* 02454 80BA4EF4 E7B20074 */ swc1 $f18, 0x0074($sp)
/* 02458 80BA4EF8 E7B00070 */ swc1 $f16, 0x0070($sp)
/* 0245C 80BA4EFC E7A2006C */ swc1 $f2, 0x006C($sp)
/* 02460 80BA4F00 0C01BE4F */ jal Environment_LerpWeight
/* 02464 80BA4F04 AFA80058 */ sw $t0, 0x0058($sp)
/* 02468 80BA4F08 C7A2006C */ lwc1 $f2, 0x006C($sp)
/* 0246C 80BA4F0C C7AA0060 */ lwc1 $f10, 0x0060($sp)
/* 02470 80BA4F10 C7B00070 */ lwc1 $f16, 0x0070($sp)
/* 02474 80BA4F14 C7A80064 */ lwc1 $f8, 0x0064($sp)
/* 02478 80BA4F18 46025101 */ sub.s $f4, $f10, $f2
/* 0247C 80BA4F1C C7B20074 */ lwc1 $f18, 0x0074($sp)
/* 02480 80BA4F20 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 02484 80BA4F24 46104281 */ sub.s $f10, $f8, $f16
/* 02488 80BA4F28 46002182 */ mul.s $f6, $f4, $f0
/* 0248C 80BA4F2C 46023300 */ add.s $f12, $f6, $f2
/* 02490 80BA4F30 C7A60068 */ lwc1 $f6, 0x0068($sp)
/* 02494 80BA4F34 46005102 */ mul.s $f4, $f10, $f0
/* 02498 80BA4F38 46123201 */ sub.s $f8, $f6, $f18
/* 0249C 80BA4F3C 46004282 */ mul.s $f10, $f8, $f0
/* 024A0 80BA4F40 46102380 */ add.s $f14, $f4, $f16
/* 024A4 80BA4F44 46125100 */ add.s $f4, $f10, $f18
/* 024A8 80BA4F48 44062000 */ mfc1 $a2, $f4
/* 024AC 80BA4F4C 0C034261 */ jal Matrix_Translate
/* 024B0 80BA4F50 00000000 */ nop
/* 024B4 80BA4F54 C60C0190 */ lwc1 $f12, 0x0190($s0) ## 00000190
/* 024B8 80BA4F58 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 024BC 80BA4F5C 44066000 */ mfc1 $a2, $f12
/* 024C0 80BA4F60 0C0342A3 */ jal Matrix_Scale
/* 024C4 80BA4F64 46006386 */ mov.s $f14, $f12
/* 024C8 80BA4F68 0C024F61 */ jal func_80093D84
/* 024CC 80BA4F6C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 024D0 80BA4F70 8FA80058 */ lw $t0, 0x0058($sp)
/* 024D4 80BA4F74 3C0CE700 */ lui $t4, 0xE700 ## $t4 = E7000000
/* 024D8 80BA4F78 3C0EFA00 */ lui $t6, 0xFA00 ## $t6 = FA000000
/* 024DC 80BA4F7C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 024E0 80BA4F80 3C0142D2 */ lui $at, 0x42D2 ## $at = 42D20000
/* 024E4 80BA4F84 44813000 */ mtc1 $at, $f6 ## $f6 = 105.00
/* 024E8 80BA4F88 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 024EC 80BA4F8C AD0B02D0 */ sw $t3, 0x02D0($t0) ## 000002D0
/* 024F0 80BA4F90 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 024F4 80BA4F94 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 024F8 80BA4F98 8D0302D0 */ lw $v1, 0x02D0($t0) ## 000002D0
/* 024FC 80BA4F9C 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 02500 80BA4FA0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 02504 80BA4FA4 246D0008 */ addiu $t5, $v1, 0x0008 ## $t5 = 00000008
/* 02508 80BA4FA8 AD0D02D0 */ sw $t5, 0x02D0($t0) ## 000002D0
/* 0250C 80BA4FAC AC6E0000 */ sw $t6, 0x0000($v1) ## 00000000
/* 02510 80BA4FB0 C6080198 */ lwc1 $f8, 0x0198($s0) ## 00000198
/* 02514 80BA4FB4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 02518 80BA4FB8 46083282 */ mul.s $f10, $f6, $f8
/* 0251C 80BA4FBC 444FF800 */ cfc1 $t7, $31
/* 02520 80BA4FC0 44C4F800 */ ctc1 $a0, $31
/* 02524 80BA4FC4 00000000 */ nop
/* 02528 80BA4FC8 46005124 */ cvt.w.s $f4, $f10
/* 0252C 80BA4FCC 4444F800 */ cfc1 $a0, $31
/* 02530 80BA4FD0 00000000 */ nop
/* 02534 80BA4FD4 30840078 */ andi $a0, $a0, 0x0078 ## $a0 = 00000000
/* 02538 80BA4FD8 50800013 */ beql $a0, $zero, .L80BA5028
/* 0253C 80BA4FDC 44042000 */ mfc1 $a0, $f4
/* 02540 80BA4FE0 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00
/* 02544 80BA4FE4 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 02548 80BA4FE8 46045101 */ sub.s $f4, $f10, $f4
/* 0254C 80BA4FEC 44C4F800 */ ctc1 $a0, $31
/* 02550 80BA4FF0 00000000 */ nop
/* 02554 80BA4FF4 46002124 */ cvt.w.s $f4, $f4
/* 02558 80BA4FF8 4444F800 */ cfc1 $a0, $31
/* 0255C 80BA4FFC 00000000 */ nop
/* 02560 80BA5000 30840078 */ andi $a0, $a0, 0x0078 ## $a0 = 00000000
/* 02564 80BA5004 14800005 */ bne $a0, $zero, .L80BA501C
/* 02568 80BA5008 00000000 */ nop
/* 0256C 80BA500C 44042000 */ mfc1 $a0, $f4
/* 02570 80BA5010 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 02574 80BA5014 10000007 */ beq $zero, $zero, .L80BA5034
/* 02578 80BA5018 00812025 */ or $a0, $a0, $at ## $a0 = 80000000
.L80BA501C:
/* 0257C 80BA501C 10000005 */ beq $zero, $zero, .L80BA5034
/* 02580 80BA5020 2404FFFF */ addiu $a0, $zero, 0xFFFF ## $a0 = FFFFFFFF
/* 02584 80BA5024 44042000 */ mfc1 $a0, $f4
.L80BA5028:
/* 02588 80BA5028 00000000 */ nop
/* 0258C 80BA502C 0480FFFB */ bltz $a0, .L80BA501C
/* 02590 80BA5030 00000000 */ nop
.L80BA5034:
/* 02594 80BA5034 9219018C */ lbu $t9, 0x018C($s0) ## 0000018C
/* 02598 80BA5038 24840096 */ addiu $a0, $a0, 0x0096 ## $a0 = 00000095
/* 0259C 80BA503C 308400FF */ andi $a0, $a0, 0x00FF ## $a0 = 00000095
/* 025A0 80BA5040 00044E00 */ sll $t1, $a0, 24
/* 025A4 80BA5044 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 025A8 80BA5048 03295025 */ or $t2, $t9, $t1 ## $t2 = 00000000
/* 025AC 80BA504C 01415825 */ or $t3, $t2, $at ## $t3 = 00FF0000
/* 025B0 80BA5050 00046200 */ sll $t4, $a0, 8
/* 025B4 80BA5054 016C6825 */ or $t5, $t3, $t4 ## $t5 = E7FF0000
/* 025B8 80BA5058 AC6D0004 */ sw $t5, 0x0004($v1) ## 00000004
/* 025BC 80BA505C 8D0302D0 */ lw $v1, 0x02D0($t0) ## 000002D0
/* 025C0 80BA5060 44CFF800 */ ctc1 $t7, $31
/* 025C4 80BA5064 3C0FFB00 */ lui $t7, 0xFB00 ## $t7 = FB000000
/* 025C8 80BA5068 246E0008 */ addiu $t6, $v1, 0x0008 ## $t6 = 00000008
/* 025CC 80BA506C AD0E02D0 */ sw $t6, 0x02D0($t0) ## 000002D0
/* 025D0 80BA5070 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 025D4 80BA5074 AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000
/* 025D8 80BA5078 C6000198 */ lwc1 $f0, 0x0198($s0) ## 00000198
/* 025DC 80BA507C 44813000 */ mtc1 $at, $f6 ## $f6 = 255.00
/* 025E0 80BA5080 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 025E4 80BA5084 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 025E8 80BA5088 46003202 */ mul.s $f8, $f6, $f0
/* 025EC 80BA508C 4458F800 */ cfc1 $t8, $31
/* 025F0 80BA5090 44C4F800 */ ctc1 $a0, $31
/* 025F4 80BA5094 00000000 */ nop
/* 025F8 80BA5098 460042A4 */ cvt.w.s $f10, $f8
/* 025FC 80BA509C 4444F800 */ cfc1 $a0, $31
/* 02600 80BA50A0 00000000 */ nop
/* 02604 80BA50A4 30840078 */ andi $a0, $a0, 0x0078 ## $a0 = 00000000
/* 02608 80BA50A8 50800013 */ beql $a0, $zero, .L80BA50F8
/* 0260C 80BA50AC 44045000 */ mfc1 $a0, $f10
/* 02610 80BA50B0 44815000 */ mtc1 $at, $f10 ## $f10 = 2147483648.00
/* 02614 80BA50B4 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 02618 80BA50B8 460A4281 */ sub.s $f10, $f8, $f10
/* 0261C 80BA50BC 44C4F800 */ ctc1 $a0, $31
/* 02620 80BA50C0 00000000 */ nop
/* 02624 80BA50C4 460052A4 */ cvt.w.s $f10, $f10
/* 02628 80BA50C8 4444F800 */ cfc1 $a0, $31
/* 0262C 80BA50CC 00000000 */ nop
/* 02630 80BA50D0 30840078 */ andi $a0, $a0, 0x0078 ## $a0 = 00000000
/* 02634 80BA50D4 14800005 */ bne $a0, $zero, .L80BA50EC
/* 02638 80BA50D8 00000000 */ nop
/* 0263C 80BA50DC 44045000 */ mfc1 $a0, $f10
/* 02640 80BA50E0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 02644 80BA50E4 10000007 */ beq $zero, $zero, .L80BA5104
/* 02648 80BA50E8 00812025 */ or $a0, $a0, $at ## $a0 = 80000000
.L80BA50EC:
/* 0264C 80BA50EC 10000005 */ beq $zero, $zero, .L80BA5104
/* 02650 80BA50F0 2404FFFF */ addiu $a0, $zero, 0xFFFF ## $a0 = FFFFFFFF
/* 02654 80BA50F4 44045000 */ mfc1 $a0, $f10
.L80BA50F8:
/* 02658 80BA50F8 00000000 */ nop
/* 0265C 80BA50FC 0480FFFB */ bltz $a0, .L80BA50EC
/* 02660 80BA5100 00000000 */ nop
.L80BA5104:
/* 02664 80BA5104 3C01431B */ lui $at, 0x431B ## $at = 431B0000
/* 02668 80BA5108 44D8F800 */ ctc1 $t8, $31
/* 0266C 80BA510C 44812000 */ mtc1 $at, $f4 ## $f4 = 155.00
/* 02670 80BA5110 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 02674 80BA5114 308400FF */ andi $a0, $a0, 0x00FF ## $a0 = 000000FF
/* 02678 80BA5118 46002182 */ mul.s $f6, $f4, $f0
/* 0267C 80BA511C 309900FF */ andi $t9, $a0, 0x00FF ## $t9 = 000000FF
/* 02680 80BA5120 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 02684 80BA5124 9209018C */ lbu $t1, 0x018C($s0) ## 0000018C
/* 02688 80BA5128 444AF800 */ cfc1 $t2, $31
/* 0268C 80BA512C 44CBF800 */ ctc1 $t3, $31
/* 02690 80BA5130 00000000 */ nop
/* 02694 80BA5134 46003224 */ cvt.w.s $f8, $f6
/* 02698 80BA5138 444BF800 */ cfc1 $t3, $31
/* 0269C 80BA513C 00000000 */ nop
/* 026A0 80BA5140 316B0078 */ andi $t3, $t3, 0x0078 ## $t3 = 00000000
/* 026A4 80BA5144 51600013 */ beql $t3, $zero, .L80BA5194
/* 026A8 80BA5148 440B4000 */ mfc1 $t3, $f8
/* 026AC 80BA514C 44814000 */ mtc1 $at, $f8 ## $f8 = 2147483648.00
/* 026B0 80BA5150 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 026B4 80BA5154 46083201 */ sub.s $f8, $f6, $f8
/* 026B8 80BA5158 44CBF800 */ ctc1 $t3, $31
/* 026BC 80BA515C 00000000 */ nop
/* 026C0 80BA5160 46004224 */ cvt.w.s $f8, $f8
/* 026C4 80BA5164 444BF800 */ cfc1 $t3, $31
/* 026C8 80BA5168 00000000 */ nop
/* 026CC 80BA516C 316B0078 */ andi $t3, $t3, 0x0078 ## $t3 = 00000000
/* 026D0 80BA5170 15600005 */ bne $t3, $zero, .L80BA5188
/* 026D4 80BA5174 00000000 */ nop
/* 026D8 80BA5178 440B4000 */ mfc1 $t3, $f8
/* 026DC 80BA517C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 026E0 80BA5180 10000007 */ beq $zero, $zero, .L80BA51A0
/* 026E4 80BA5184 01615825 */ or $t3, $t3, $at ## $t3 = 80000000
.L80BA5188:
/* 026E8 80BA5188 10000005 */ beq $zero, $zero, .L80BA51A0
/* 026EC 80BA518C 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF
/* 026F0 80BA5190 440B4000 */ mfc1 $t3, $f8
.L80BA5194:
/* 026F4 80BA5194 00000000 */ nop
/* 026F8 80BA5198 0560FFFB */ bltz $t3, .L80BA5188
/* 026FC 80BA519C 00000000 */ nop
.L80BA51A0:
/* 02700 80BA51A0 01606025 */ or $t4, $t3, $zero ## $t4 = FFFFFFFF
/* 02704 80BA51A4 258E0064 */ addiu $t6, $t4, 0x0064 ## $t6 = 00000063
/* 02708 80BA51A8 000E7E00 */ sll $t7, $t6, 24
/* 0270C 80BA51AC 240C00FF */ addiu $t4, $zero, 0x00FF ## $t4 = 000000FF
/* 02710 80BA51B0 01846823 */ subu $t5, $t4, $a0
/* 02714 80BA51B4 012FC025 */ or $t8, $t1, $t7 ## $t8 = FB000000
/* 02718 80BA51B8 44CAF800 */ ctc1 $t2, $31
/* 0271C 80BA51BC 00195400 */ sll $t2, $t9, 16
/* 02720 80BA51C0 31AE00FF */ andi $t6, $t5, 0x00FF ## $t6 = 00000000
/* 02724 80BA51C4 000E4A00 */ sll $t1, $t6, 8
/* 02728 80BA51C8 030A5825 */ or $t3, $t8, $t2 ## $t3 = FB000000
/* 0272C 80BA51CC 01697825 */ or $t7, $t3, $t1 ## $t7 = FB000000
/* 02730 80BA51D0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 02734 80BA51D4 AC6F0004 */ sw $t7, 0x0004($v1) ## 00000004
/* 02738 80BA51D8 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
/* 0273C 80BA51DC 02212021 */ addu $a0, $s1, $at
/* 02740 80BA51E0 0C03424C */ jal Matrix_Mult
/* 02744 80BA51E4 AFA80058 */ sw $t0, 0x0058($sp)
/* 02748 80BA51E8 8FA80058 */ lw $t0, 0x0058($sp)
/* 0274C 80BA51EC 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 02750 80BA51F0 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 02754 80BA51F4 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 02758 80BA51F8 3C0580BA */ lui $a1, %hi(D_80BA5B4C) ## $a1 = 80BA0000
/* 0275C 80BA51FC 24A55B4C */ addiu $a1, $a1, %lo(D_80BA5B4C) ## $a1 = 80BA5B4C
/* 02760 80BA5200 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 02764 80BA5204 AD1902D0 */ sw $t9, 0x02D0($t0) ## 000002D0
/* 02768 80BA5208 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 0276C 80BA520C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 02770 80BA5210 24060588 */ addiu $a2, $zero, 0x0588 ## $a2 = 00000588
/* 02774 80BA5214 AFA80058 */ sw $t0, 0x0058($sp)
/* 02778 80BA5218 0C0346A2 */ jal Matrix_NewMtx
/* 0277C 80BA521C AFA20038 */ sw $v0, 0x0038($sp)
/* 02780 80BA5220 8FA30038 */ lw $v1, 0x0038($sp)
/* 02784 80BA5224 8FA80058 */ lw $t0, 0x0058($sp)
/* 02788 80BA5228 3C0CDB06 */ lui $t4, 0xDB06 ## $t4 = DB060000
/* 0278C 80BA522C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 02790 80BA5230 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 02794 80BA5234 358C0020 */ ori $t4, $t4, 0x0020 ## $t4 = DB060020
/* 02798 80BA5238 3C0480BA */ lui $a0, %hi(D_80BA5900) ## $a0 = 80BA0000
/* 0279C 80BA523C 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 027A0 80BA5240 AD0A02D0 */ sw $t2, 0x02D0($t0) ## 000002D0
/* 027A4 80BA5244 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 027A8 80BA5248 960D019C */ lhu $t5, 0x019C($s0) ## 0000019C
/* 027AC 80BA524C 3C188016 */ lui $t8, %hi(gSegments)
/* 027B0 80BA5250 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 027B4 80BA5254 000D7080 */ sll $t6, $t5, 2
/* 027B8 80BA5258 008E2021 */ addu $a0, $a0, $t6
/* 027BC 80BA525C 8C845900 */ lw $a0, %lo(D_80BA5900)($a0)
/* 027C0 80BA5260 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 027C4 80BA5264 00044900 */ sll $t1, $a0, 4
/* 027C8 80BA5268 00097F02 */ srl $t7, $t1, 28
/* 027CC 80BA526C 000FC880 */ sll $t9, $t7, 2
/* 027D0 80BA5270 0319C021 */ addu $t8, $t8, $t9
/* 027D4 80BA5274 8F186FA8 */ lw $t8, %lo(gSegments)($t8)
/* 027D8 80BA5278 00815824 */ and $t3, $a0, $at
/* 027DC 80BA527C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 027E0 80BA5280 01785021 */ addu $t2, $t3, $t8
/* 027E4 80BA5284 01416021 */ addu $t4, $t2, $at
/* 027E8 80BA5288 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 027EC 80BA528C 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 027F0 80BA5290 3C04E700 */ lui $a0, 0xE700 ## $a0 = E7000000
/* 027F4 80BA5294 3C0F0601 */ lui $t7, %hi(D_06009620) ## $t7 = 06010000
/* 027F8 80BA5298 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 027FC 80BA529C AD0D02D0 */ sw $t5, 0x02D0($t0) ## 000002D0
/* 02800 80BA52A0 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 02804 80BA52A4 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
/* 02808 80BA52A8 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 0280C 80BA52AC 25EF9620 */ addiu $t7, $t7, %lo(D_06009620) ## $t7 = 06009620
/* 02810 80BA52B0 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 02814 80BA52B4 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 02818 80BA52B8 AD0E02D0 */ sw $t6, 0x02D0($t0) ## 000002D0
/* 0281C 80BA52BC AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 02820 80BA52C0 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 02824 80BA52C4 8D0202D0 */ lw $v0, 0x02D0($t0) ## 000002D0
/* 02828 80BA52C8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0282C 80BA52CC AD1902D0 */ sw $t9, 0x02D0($t0) ## 000002D0
/* 02830 80BA52D0 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 02834 80BA52D4 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
.L80BA52D8:
/* 02838 80BA52D8 3C0680BA */ lui $a2, %hi(D_80BA5B64) ## $a2 = 80BA0000
/* 0283C 80BA52DC 24C65B64 */ addiu $a2, $a2, %lo(D_80BA5B64) ## $a2 = 80BA5B64
/* 02840 80BA52E0 27A40048 */ addiu $a0, $sp, 0x0048 ## $a0 = FFFFFFC8
/* 02844 80BA52E4 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 02848 80BA52E8 0C031AD5 */ jal Graph_CloseDisps
/* 0284C 80BA52EC 24070598 */ addiu $a3, $zero, 0x0598 ## $a3 = 00000598
/* 02850 80BA52F0 8FBF001C */ lw $ra, 0x001C($sp)
/* 02854 80BA52F4 8FB00014 */ lw $s0, 0x0014($sp)
/* 02858 80BA52F8 8FB10018 */ lw $s1, 0x0018($sp)
/* 0285C 80BA52FC 03E00008 */ jr $ra
/* 02860 80BA5300 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000

View File

@ -1,42 +0,0 @@
.rdata
glabel D_80BA5B7C
.asciz "0"
.balign 4
glabel D_80BA5B80
.asciz "../z_object_kankyo.c"
.balign 4
.text
glabel func_80BA5304
/* 02864 80BA5304 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 02868 80BA5308 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0286C 80BA530C AFA40018 */ sw $a0, 0x0018($sp)
/* 02870 80BA5310 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 02874 80BA5314 AFBF0014 */ sw $ra, 0x0014($sp)
/* 02878 80BA5318 00A12021 */ addu $a0, $a1, $at
/* 0287C 80BA531C 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 02880 80BA5320 24050179 */ addiu $a1, $zero, 0x0179 ## $a1 = 00000179
/* 02884 80BA5324 04410009 */ bgez $v0, .L80BA534C
/* 02888 80BA5328 8FAE0018 */ lw $t6, 0x0018($sp)
/* 0288C 80BA532C 3C0480BA */ lui $a0, %hi(D_80BA5B7C) ## $a0 = 80BA0000
/* 02890 80BA5330 3C0580BA */ lui $a1, %hi(D_80BA5B80) ## $a1 = 80BA0000
/* 02894 80BA5334 24A55B80 */ addiu $a1, $a1, %lo(D_80BA5B80) ## $a1 = 80BA5B80
/* 02898 80BA5338 24845B7C */ addiu $a0, $a0, %lo(D_80BA5B7C) ## $a0 = 80BA5B7C
/* 0289C 80BA533C 0C0007FC */ jal __assert
/* 028A0 80BA5340 240605A9 */ addiu $a2, $zero, 0x05A9 ## $a2 = 000005A9
/* 028A4 80BA5344 10000002 */ beq $zero, $zero, .L80BA5350
/* 028A8 80BA5348 00000000 */ nop
.L80BA534C:
/* 028AC 80BA534C A1C21658 */ sb $v0, 0x1658($t6) ## 00001658
.L80BA5350:
/* 028B0 80BA5350 3C0580BA */ lui $a1, %hi(func_80BA5370) ## $a1 = 80BA0000
/* 028B4 80BA5354 24A55370 */ addiu $a1, $a1, %lo(func_80BA5370) ## $a1 = 80BA5370
/* 028B8 80BA5358 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 028BC 80BA535C 8FA40018 */ lw $a0, 0x0018($sp)
/* 028C0 80BA5360 8FBF0014 */ lw $ra, 0x0014($sp)
/* 028C4 80BA5364 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 028C8 80BA5368 03E00008 */ jr $ra
/* 028CC 80BA536C 00000000 */ nop

View File

@ -1,26 +0,0 @@
glabel func_80BA5370
/* 028D0 80BA5370 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 028D4 80BA5374 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 028D8 80BA5378 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 028DC 80BA537C 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 028E0 80BA5380 AFBF0014 */ sw $ra, 0x0014($sp)
/* 028E4 80BA5384 00A12021 */ addu $a0, $a1, $at
/* 028E8 80BA5388 90C51658 */ lbu $a1, 0x1658($a2) ## 00001658
/* 028EC 80BA538C 0C026062 */ jal Object_IsLoaded
/* 028F0 80BA5390 AFA60018 */ sw $a2, 0x0018($sp)
/* 028F4 80BA5394 10400009 */ beq $v0, $zero, .L80BA53BC
/* 028F8 80BA5398 8FA60018 */ lw $a2, 0x0018($sp)
/* 028FC 80BA539C 90CF1658 */ lbu $t7, 0x1658($a2) ## 00001658
/* 02900 80BA53A0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 02904 80BA53A4 3C0580BA */ lui $a1, %hi(func_80BA53CC) ## $a1 = 80BA0000
/* 02908 80BA53A8 A0CE1659 */ sb $t6, 0x1659($a2) ## 00001659
/* 0290C 80BA53AC 24A553CC */ addiu $a1, $a1, %lo(func_80BA53CC) ## $a1 = 80BA53CC
/* 02910 80BA53B0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 02914 80BA53B4 0C2E8AA8 */ jal ObjectKankyo_SetupAction
/* 02918 80BA53B8 A0CF001E */ sb $t7, 0x001E($a2) ## 0000001E
.L80BA53BC:
/* 0291C 80BA53BC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 02920 80BA53C0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 02924 80BA53C4 03E00008 */ jr $ra
/* 02928 80BA53C8 00000000 */ nop

View File

@ -1,67 +0,0 @@
.late_rodata
glabel D_80BA5CCC
.float 0.1
.text
glabel func_80BA53CC
/* 0292C 80BA53CC 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 02930 80BA53D0 AFBF0034 */ sw $ra, 0x0034($sp)
/* 02934 80BA53D4 AFB50030 */ sw $s5, 0x0030($sp)
/* 02938 80BA53D8 AFB4002C */ sw $s4, 0x002C($sp)
/* 0293C 80BA53DC AFB30028 */ sw $s3, 0x0028($sp)
/* 02940 80BA53E0 AFB20024 */ sw $s2, 0x0024($sp)
/* 02944 80BA53E4 AFB10020 */ sw $s1, 0x0020($sp)
/* 02948 80BA53E8 AFB0001C */ sw $s0, 0x001C($sp)
/* 0294C 80BA53EC F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 02950 80BA53F0 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 02954 80BA53F4 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 02958 80BA53F8 0080A825 */ or $s5, $a0, $zero ## $s5 = 00000000
/* 0295C 80BA53FC 11C00021 */ beq $t6, $zero, .L80BA5484
/* 02960 80BA5400 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 02964 80BA5404 3C0180BA */ lui $at, %hi(D_80BA5CCC) ## $at = 80BA0000
/* 02968 80BA5408 C4345CCC */ lwc1 $f20, %lo(D_80BA5CCC)($at)
/* 0296C 80BA540C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 02970 80BA5410 24130054 */ addiu $s3, $zero, 0x0054 ## $s3 = 00000054
/* 02974 80BA5414 24120002 */ addiu $s2, $zero, 0x0002 ## $s2 = 00000002
.L80BA5418:
/* 02978 80BA5418 00027880 */ sll $t7, $v0, 2
/* 0297C 80BA541C 028FC021 */ addu $t8, $s4, $t7
/* 02980 80BA5420 8F031D90 */ lw $v1, 0x1D90($t8) ## 00001D90
/* 02984 80BA5424 50600013 */ beql $v1, $zero, .L80BA5474
/* 02988 80BA5428 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 0298C 80BA542C 94790000 */ lhu $t9, 0x0000($v1) ## 00000000
/* 02990 80BA5430 56590010 */ bnel $s2, $t9, .L80BA5474
/* 02994 80BA5434 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000002
/* 02998 80BA5438 02330019 */ multu $s1, $s3
/* 0299C 80BA543C 00004012 */ mflo $t0
/* 029A0 80BA5440 02A88021 */ addu $s0, $s5, $t0
/* 029A4 80BA5444 C6040190 */ lwc1 $f4, 0x0190($s0) ## 00000190
/* 029A8 80BA5448 4604A032 */ c.eq.s $f20, $f4
/* 029AC 80BA544C 00000000 */ nop
/* 029B0 80BA5450 45020004 */ bc1fl .L80BA5464
/* 029B4 80BA5454 4405A000 */ mfc1 $a1, $f20
/* 029B8 80BA5458 0C03CFCF */ jal func_800F3F3C
/* 029BC 80BA545C 2404000B */ addiu $a0, $zero, 0x000B ## $a0 = 0000000B
/* 029C0 80BA5460 4405A000 */ mfc1 $a1, $f20
.L80BA5464:
/* 029C4 80BA5464 4406A000 */ mfc1 $a2, $f20
/* 029C8 80BA5468 0C01E123 */ jal Math_ApproachZeroF
/* 029CC 80BA546C 26040190 */ addiu $a0, $s0, 0x0190 ## $a0 = 00000190
/* 029D0 80BA5470 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000003
.L80BA5474:
/* 029D4 80BA5474 323100FF */ andi $s1, $s1, 0x00FF ## $s1 = 00000003
/* 029D8 80BA5478 2A210006 */ slti $at, $s1, 0x0006
/* 029DC 80BA547C 1420FFE6 */ bne $at, $zero, .L80BA5418
/* 029E0 80BA5480 02201025 */ or $v0, $s1, $zero ## $v0 = 00000003
.L80BA5484:
/* 029E4 80BA5484 8FBF0034 */ lw $ra, 0x0034($sp)
/* 029E8 80BA5488 D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 029EC 80BA548C 8FB0001C */ lw $s0, 0x001C($sp)
/* 029F0 80BA5490 8FB10020 */ lw $s1, 0x0020($sp)
/* 029F4 80BA5494 8FB20024 */ lw $s2, 0x0024($sp)
/* 029F8 80BA5498 8FB30028 */ lw $s3, 0x0028($sp)
/* 029FC 80BA549C 8FB4002C */ lw $s4, 0x002C($sp)
/* 02A00 80BA54A0 8FB50030 */ lw $s5, 0x0030($sp)
/* 02A04 80BA54A4 03E00008 */ jr $ra
/* 02A08 80BA54A8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View File

@ -1,297 +0,0 @@
.rdata
glabel D_80BA5B98
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5BB0
.asciz "../z_object_kankyo.c"
.balign 4
glabel D_80BA5BC8
.asciz "../z_object_kankyo.c"
.balign 4
.late_rodata
glabel D_80BA5CD0
.float 0.1
glabel D_80BA5CD4
.float 0.001
glabel D_80BA5CD8
.float 0.017453292
.text
glabel func_80BA54AC
/* 02A0C 80BA54AC 27BDFEC8 */ addiu $sp, $sp, 0xFEC8 ## $sp = FFFFFEC8
/* 02A10 80BA54B0 3C0F80BA */ lui $t7, %hi(D_80BA599C) ## $t7 = 80BA0000
/* 02A14 80BA54B4 AFBF0074 */ sw $ra, 0x0074($sp)
/* 02A18 80BA54B8 AFBE0070 */ sw $s8, 0x0070($sp)
/* 02A1C 80BA54BC AFB7006C */ sw $s7, 0x006C($sp)
/* 02A20 80BA54C0 AFB60068 */ sw $s6, 0x0068($sp)
/* 02A24 80BA54C4 AFB50064 */ sw $s5, 0x0064($sp)
/* 02A28 80BA54C8 AFB40060 */ sw $s4, 0x0060($sp)
/* 02A2C 80BA54CC AFB3005C */ sw $s3, 0x005C($sp)
/* 02A30 80BA54D0 AFB20058 */ sw $s2, 0x0058($sp)
/* 02A34 80BA54D4 AFB10054 */ sw $s1, 0x0054($sp)
/* 02A38 80BA54D8 AFB00050 */ sw $s0, 0x0050($sp)
/* 02A3C 80BA54DC F7B80048 */ sdc1 $f24, 0x0048($sp)
/* 02A40 80BA54E0 F7B60040 */ sdc1 $f22, 0x0040($sp)
/* 02A44 80BA54E4 F7B40038 */ sdc1 $f20, 0x0038($sp)
/* 02A48 80BA54E8 25EF599C */ addiu $t7, $t7, %lo(D_80BA599C) ## $t7 = 80BA599C
/* 02A4C 80BA54EC 8DF90000 */ lw $t9, 0x0000($t7) ## 80BA599C
/* 02A50 80BA54F0 8DF80004 */ lw $t8, 0x0004($t7) ## 80BA59A0
/* 02A54 80BA54F4 27AE0114 */ addiu $t6, $sp, 0x0114 ## $t6 = FFFFFFDC
/* 02A58 80BA54F8 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFDC
/* 02A5C 80BA54FC ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFE0
/* 02A60 80BA5500 8DF8000C */ lw $t8, 0x000C($t7) ## 80BA59A8
/* 02A64 80BA5504 8DF90008 */ lw $t9, 0x0008($t7) ## 80BA59A4
/* 02A68 80BA5508 3C0980BA */ lui $t1, %hi(D_80BA59B4) ## $t1 = 80BA0000
/* 02A6C 80BA550C ADD8000C */ sw $t8, 0x000C($t6) ## FFFFFFE8
/* 02A70 80BA5510 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFE4
/* 02A74 80BA5514 8DF90010 */ lw $t9, 0x0010($t7) ## 80BA59AC
/* 02A78 80BA5518 8DF80014 */ lw $t8, 0x0014($t7) ## 80BA59B0
/* 02A7C 80BA551C 252959B4 */ addiu $t1, $t1, %lo(D_80BA59B4) ## $t1 = 80BA59B4
/* 02A80 80BA5520 ADD90010 */ sw $t9, 0x0010($t6) ## FFFFFFEC
/* 02A84 80BA5524 ADD80014 */ sw $t8, 0x0014($t6) ## FFFFFFF0
/* 02A88 80BA5528 8D2A0004 */ lw $t2, 0x0004($t1) ## 80BA59B8
/* 02A8C 80BA552C 8D2B0000 */ lw $t3, 0x0000($t1) ## 80BA59B4
/* 02A90 80BA5530 27A800FC */ addiu $t0, $sp, 0x00FC ## $t0 = FFFFFFC4
/* 02A94 80BA5534 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFC8
/* 02A98 80BA5538 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFC4
/* 02A9C 80BA553C 8D2B0008 */ lw $t3, 0x0008($t1) ## 80BA59BC
/* 02AA0 80BA5540 8D2A000C */ lw $t2, 0x000C($t1) ## 80BA59C0
/* 02AA4 80BA5544 3C0D80BA */ lui $t5, %hi(D_80BA59CC) ## $t5 = 80BA0000
/* 02AA8 80BA5548 AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFCC
/* 02AAC 80BA554C AD0A000C */ sw $t2, 0x000C($t0) ## FFFFFFD0
/* 02AB0 80BA5550 8D2A0014 */ lw $t2, 0x0014($t1) ## 80BA59C8
/* 02AB4 80BA5554 8D2B0010 */ lw $t3, 0x0010($t1) ## 80BA59C4
/* 02AB8 80BA5558 25AD59CC */ addiu $t5, $t5, %lo(D_80BA59CC) ## $t5 = 80BA59CC
/* 02ABC 80BA555C AD0A0014 */ sw $t2, 0x0014($t0) ## FFFFFFD8
/* 02AC0 80BA5560 AD0B0010 */ sw $t3, 0x0010($t0) ## FFFFFFD4
/* 02AC4 80BA5564 8DAE0004 */ lw $t6, 0x0004($t5) ## 80BA59D0
/* 02AC8 80BA5568 8DAF0000 */ lw $t7, 0x0000($t5) ## 80BA59CC
/* 02ACC 80BA556C 27AC00E4 */ addiu $t4, $sp, 0x00E4 ## $t4 = FFFFFFAC
/* 02AD0 80BA5570 AD8E0004 */ sw $t6, 0x0004($t4) ## FFFFFFB0
/* 02AD4 80BA5574 AD8F0000 */ sw $t7, 0x0000($t4) ## FFFFFFAC
/* 02AD8 80BA5578 8DAF0008 */ lw $t7, 0x0008($t5) ## 80BA59D4
/* 02ADC 80BA557C 8DAE000C */ lw $t6, 0x000C($t5) ## 80BA59D8
/* 02AE0 80BA5580 3C1980BA */ lui $t9, %hi(D_80BA59E4) ## $t9 = 80BA0000
/* 02AE4 80BA5584 AD8F0008 */ sw $t7, 0x0008($t4) ## FFFFFFB4
/* 02AE8 80BA5588 AD8E000C */ sw $t6, 0x000C($t4) ## FFFFFFB8
/* 02AEC 80BA558C 8DAE0014 */ lw $t6, 0x0014($t5) ## 80BA59E0
/* 02AF0 80BA5590 8DAF0010 */ lw $t7, 0x0010($t5) ## 80BA59DC
/* 02AF4 80BA5594 273959E4 */ addiu $t9, $t9, %lo(D_80BA59E4) ## $t9 = 80BA59E4
/* 02AF8 80BA5598 AD8E0014 */ sw $t6, 0x0014($t4) ## FFFFFFC0
/* 02AFC 80BA559C AD8F0010 */ sw $t7, 0x0010($t4) ## FFFFFFBC
/* 02B00 80BA55A0 8F280004 */ lw $t0, 0x0004($t9) ## 80BA59E8
/* 02B04 80BA55A4 8F290000 */ lw $t1, 0x0000($t9) ## 80BA59E4
/* 02B08 80BA55A8 27B800CC */ addiu $t8, $sp, 0x00CC ## $t8 = FFFFFF94
/* 02B0C 80BA55AC AF080004 */ sw $t0, 0x0004($t8) ## FFFFFF98
/* 02B10 80BA55B0 AF090000 */ sw $t1, 0x0000($t8) ## FFFFFF94
/* 02B14 80BA55B4 8F290008 */ lw $t1, 0x0008($t9) ## 80BA59EC
/* 02B18 80BA55B8 8F28000C */ lw $t0, 0x000C($t9) ## 80BA59F0
/* 02B1C 80BA55BC 3C0B80BA */ lui $t3, %hi(D_80BA59FC) ## $t3 = 80BA0000
/* 02B20 80BA55C0 AF090008 */ sw $t1, 0x0008($t8) ## FFFFFF9C
/* 02B24 80BA55C4 AF08000C */ sw $t0, 0x000C($t8) ## FFFFFFA0
/* 02B28 80BA55C8 8F280014 */ lw $t0, 0x0014($t9) ## 80BA59F8
/* 02B2C 80BA55CC 8F290010 */ lw $t1, 0x0010($t9) ## 80BA59F4
/* 02B30 80BA55D0 256B59FC */ addiu $t3, $t3, %lo(D_80BA59FC) ## $t3 = 80BA59FC
/* 02B34 80BA55D4 AF080014 */ sw $t0, 0x0014($t8) ## FFFFFFA8
/* 02B38 80BA55D8 AF090010 */ sw $t1, 0x0010($t8) ## FFFFFFA4
/* 02B3C 80BA55DC 8D6C0004 */ lw $t4, 0x0004($t3) ## 80BA5A00
/* 02B40 80BA55E0 8D6D0000 */ lw $t5, 0x0000($t3) ## 80BA59FC
/* 02B44 80BA55E4 27AA00B4 */ addiu $t2, $sp, 0x00B4 ## $t2 = FFFFFF7C
/* 02B48 80BA55E8 AD4C0004 */ sw $t4, 0x0004($t2) ## FFFFFF80
/* 02B4C 80BA55EC AD4D0000 */ sw $t5, 0x0000($t2) ## FFFFFF7C
/* 02B50 80BA55F0 8D6D0008 */ lw $t5, 0x0008($t3) ## 80BA5A04
/* 02B54 80BA55F4 8D6C000C */ lw $t4, 0x000C($t3) ## 80BA5A08
/* 02B58 80BA55F8 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 02B5C 80BA55FC AD4D0008 */ sw $t5, 0x0008($t2) ## FFFFFF84
/* 02B60 80BA5600 AD4C000C */ sw $t4, 0x000C($t2) ## FFFFFF88
/* 02B64 80BA5604 8D6C0014 */ lw $t4, 0x0014($t3) ## 80BA5A10
/* 02B68 80BA5608 8D6D0010 */ lw $t5, 0x0010($t3) ## 80BA5A0C
/* 02B6C 80BA560C 0080B025 */ or $s6, $a0, $zero ## $s6 = 00000000
/* 02B70 80BA5610 AD4C0014 */ sw $t4, 0x0014($t2) ## FFFFFF90
/* 02B74 80BA5614 AD4D0010 */ sw $t5, 0x0010($t2) ## FFFFFF8C
/* 02B78 80BA5618 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 02B7C 80BA561C 3C0680BA */ lui $a2, %hi(D_80BA5B98) ## $a2 = 80BA0000
/* 02B80 80BA5620 24C65B98 */ addiu $a2, $a2, %lo(D_80BA5B98) ## $a2 = 80BA5B98
/* 02B84 80BA5624 27A400A0 */ addiu $a0, $sp, 0x00A0 ## $a0 = FFFFFF68
/* 02B88 80BA5628 24070603 */ addiu $a3, $zero, 0x0603 ## $a3 = 00000603
/* 02B8C 80BA562C 0C031AB1 */ jal Graph_OpenDisps
/* 02B90 80BA5630 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 02B94 80BA5634 92CE1659 */ lbu $t6, 0x1659($s6) ## 00001659
/* 02B98 80BA5638 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 02B9C 80BA563C 3C0180BA */ lui $at, %hi(D_80BA5CD0) ## $at = 80BA0000
/* 02BA0 80BA5640 11C00090 */ beq $t6, $zero, .L80BA5884
/* 02BA4 80BA5644 24170054 */ addiu $s7, $zero, 0x0054 ## $s7 = 00000054
/* 02BA8 80BA5648 C4385CD0 */ lwc1 $f24, %lo(D_80BA5CD0)($at)
/* 02BAC 80BA564C 3C0180BA */ lui $at, %hi(D_80BA5CD4) ## $at = 80BA0000
/* 02BB0 80BA5650 C4365CD4 */ lwc1 $f22, %lo(D_80BA5CD4)($at)
/* 02BB4 80BA5654 3C0180BA */ lui $at, %hi(D_80BA5CD8) ## $at = 80BA0000
/* 02BB8 80BA5658 C4345CD8 */ lwc1 $f20, %lo(D_80BA5CD8)($at)
/* 02BBC 80BA565C 3C1EE700 */ lui $s8, 0xE700 ## $s8 = E7000000
.L80BA5660:
/* 02BC0 80BA5660 02770019 */ multu $s3, $s7
/* 02BC4 80BA5664 00138080 */ sll $s0, $s3, 2
/* 02BC8 80BA5668 3C150600 */ lui $s5, %hi(gDemoKekkaiDL_005FF0) ## $s5 = 06000000
/* 02BCC 80BA566C 26B55FF0 */ addiu $s5, $s5, %lo(gDemoKekkaiDL_005FF0) ## $s5 = 06005FF0
/* 02BD0 80BA5670 03B0C021 */ addu $t8, $sp, $s0
/* 02BD4 80BA5674 03B0C821 */ addu $t9, $sp, $s0
/* 02BD8 80BA5678 03B04021 */ addu $t0, $sp, $s0
/* 02BDC 80BA567C 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 02BE0 80BA5680 00007812 */ mflo $t7
/* 02BE4 80BA5684 02CF9021 */ addu $s2, $s6, $t7
/* 02BE8 80BA5688 C6440190 */ lwc1 $f4, 0x0190($s2) ## 00000190
/* 02BEC 80BA568C 4604B03C */ c.lt.s $f22, $f4
/* 02BF0 80BA5690 00000000 */ nop
/* 02BF4 80BA5694 45020076 */ bc1fl .L80BA5870
/* 02BF8 80BA5698 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 02BFC 80BA569C C70C0114 */ lwc1 $f12, 0x0114($t8) ## 00000114
/* 02C00 80BA56A0 C72E00FC */ lwc1 $f14, 0x00FC($t9) ## 000000FC
/* 02C04 80BA56A4 0C034261 */ jal Matrix_Translate
/* 02C08 80BA56A8 8D0600E4 */ lw $a2, 0x00E4($t0) ## 000000E4
/* 02C0C 80BA56AC 03B04821 */ addu $t1, $sp, $s0
/* 02C10 80BA56B0 C52600CC */ lwc1 $f6, 0x00CC($t1) ## 000000CC
/* 02C14 80BA56B4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 02C18 80BA56B8 46143302 */ mul.s $f12, $f6, $f20
/* 02C1C 80BA56BC 0C034348 */ jal Matrix_RotateY
/* 02C20 80BA56C0 00000000 */ nop
/* 02C24 80BA56C4 03B05021 */ addu $t2, $sp, $s0
/* 02C28 80BA56C8 C54800B4 */ lwc1 $f8, 0x00B4($t2) ## 000000B4
/* 02C2C 80BA56CC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 02C30 80BA56D0 46144302 */ mul.s $f12, $f8, $f20
/* 02C34 80BA56D4 0C0342DC */ jal Matrix_RotateX
/* 02C38 80BA56D8 00000000 */ nop
/* 02C3C 80BA56DC C64C0190 */ lwc1 $f12, 0x0190($s2) ## 00000190
/* 02C40 80BA56E0 4600C386 */ mov.s $f14, $f24
/* 02C44 80BA56E4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 02C48 80BA56E8 44066000 */ mfc1 $a2, $f12
/* 02C4C 80BA56EC 0C0342A3 */ jal Matrix_Scale
/* 02C50 80BA56F0 00000000 */ nop
/* 02C54 80BA56F4 0C024F61 */ jal func_80093D84
/* 02C58 80BA56F8 8E840000 */ lw $a0, 0x0000($s4) ## 00000000
/* 02C5C 80BA56FC 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02C60 80BA5700 3C0DFA00 */ lui $t5, 0xFA00 ## $t5 = FA000000
/* 02C64 80BA5704 00132880 */ sll $a1, $s3, 2
/* 02C68 80BA5708 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 02C6C 80BA570C AE2B02D0 */ sw $t3, 0x02D0($s1) ## 000002D0
/* 02C70 80BA5710 AC5E0000 */ sw $s8, 0x0000($v0) ## 00000000
/* 02C74 80BA5714 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 02C78 80BA5718 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02C7C 80BA571C 3C0E80BA */ lui $t6, %hi(D_80BA5A14) ## $t6 = 80BA0000
/* 02C80 80BA5720 25CE5A14 */ addiu $t6, $t6, %lo(D_80BA5A14) ## $t6 = 80BA5A14
/* 02C84 80BA5724 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 02C88 80BA5728 AE2C02D0 */ sw $t4, 0x02D0($s1) ## 000002D0
/* 02C8C 80BA572C 00B32823 */ subu $a1, $a1, $s3
/* 02C90 80BA5730 35AD0080 */ ori $t5, $t5, 0x0080 ## $t5 = FA000080
/* 02C94 80BA5734 00AE1821 */ addu $v1, $a1, $t6
/* 02C98 80BA5738 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 02C9C 80BA573C 90690000 */ lbu $t1, 0x0000($v1) ## 00000000
/* 02CA0 80BA5740 90780002 */ lbu $t8, 0x0002($v1) ## 00000002
/* 02CA4 80BA5744 906D0001 */ lbu $t5, 0x0001($v1) ## 00000001
/* 02CA8 80BA5748 00095600 */ sll $t2, $t1, 24
/* 02CAC 80BA574C 0018CA00 */ sll $t9, $t8, 8
/* 02CB0 80BA5750 032A5825 */ or $t3, $t9, $t2 ## $t3 = 00000000
/* 02CB4 80BA5754 000D7400 */ sll $t6, $t5, 16
/* 02CB8 80BA5758 016E7825 */ or $t7, $t3, $t6 ## $t7 = 80BA5A14
/* 02CBC 80BA575C 35F80080 */ ori $t8, $t7, 0x0080 ## $t8 = 80BA5A94
/* 02CC0 80BA5760 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 02CC4 80BA5764 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02CC8 80BA5768 3C1980BA */ lui $t9, %hi(D_80BA5A28) ## $t9 = 80BA0000
/* 02CCC 80BA576C 27395A28 */ addiu $t9, $t9, %lo(D_80BA5A28) ## $t9 = 80BA5A28
/* 02CD0 80BA5770 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 02CD4 80BA5774 AE2802D0 */ sw $t0, 0x02D0($s1) ## 000002D0
/* 02CD8 80BA5778 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000
/* 02CDC 80BA577C 00B91821 */ addu $v1, $a1, $t9
/* 02CE0 80BA5780 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 02CE4 80BA5784 906E0000 */ lbu $t6, 0x0000($v1) ## 00000000
/* 02CE8 80BA5788 906C0002 */ lbu $t4, 0x0002($v1) ## 00000002
/* 02CEC 80BA578C 90690001 */ lbu $t1, 0x0001($v1) ## 00000001
/* 02CF0 80BA5790 000E7E00 */ sll $t7, $t6, 24
/* 02CF4 80BA5794 000C6A00 */ sll $t5, $t4, 8
/* 02CF8 80BA5798 01AFC025 */ or $t8, $t5, $t7 ## $t8 = FABA5A94
/* 02CFC 80BA579C 0009CC00 */ sll $t9, $t1, 16
/* 02D00 80BA57A0 03195025 */ or $t2, $t8, $t9 ## $t2 = FABA5ABC
/* 02D04 80BA57A4 354C0080 */ ori $t4, $t2, 0x0080 ## $t4 = FABA5ABC
/* 02D08 80BA57A8 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 02D0C 80BA57AC 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02D10 80BA57B0 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 02D14 80BA57B4 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
/* 02D18 80BA57B8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 02D1C 80BA57BC AE2B02D0 */ sw $t3, 0x02D0($s1) ## 000002D0
/* 02D20 80BA57C0 3C0580BA */ lui $a1, %hi(D_80BA5BB0) ## $a1 = 80BA0000
/* 02D24 80BA57C4 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 02D28 80BA57C8 8E840000 */ lw $a0, 0x0000($s4) ## 00000000
/* 02D2C 80BA57CC 24A55BB0 */ addiu $a1, $a1, %lo(D_80BA5BB0) ## $a1 = 80BA5BB0
/* 02D30 80BA57D0 24060632 */ addiu $a2, $zero, 0x0632 ## $a2 = 00000632
/* 02D34 80BA57D4 0C0346A2 */ jal Matrix_NewMtx
/* 02D38 80BA57D8 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 02D3C 80BA57DC AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 02D40 80BA57E0 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02D44 80BA57E4 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 02D48 80BA57E8 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 02D4C 80BA57EC 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 02D50 80BA57F0 AE2D02D0 */ sw $t5, 0x02D0($s1) ## 000002D0
/* 02D54 80BA57F4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 02D58 80BA57F8 8E83009C */ lw $v1, 0x009C($s4) ## 0000009C
/* 02D5C 80BA57FC 8E840000 */ lw $a0, 0x0000($s4) ## 00000000
/* 02D60 80BA5800 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
/* 02D64 80BA5804 00033880 */ sll $a3, $v1, 2
/* 02D68 80BA5808 00E33821 */ addu $a3, $a3, $v1
/* 02D6C 80BA580C 00033080 */ sll $a2, $v1, 2
/* 02D70 80BA5810 00073840 */ sll $a3, $a3, 1
/* 02D74 80BA5814 24090040 */ addiu $t1, $zero, 0x0040 ## $t1 = 00000040
/* 02D78 80BA5818 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 02D7C 80BA581C 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 02D80 80BA5820 240A0040 */ addiu $t2, $zero, 0x0040 ## $t2 = 00000040
/* 02D84 80BA5824 00C33021 */ addu $a2, $a2, $v1
/* 02D88 80BA5828 AFA6001C */ sw $a2, 0x001C($sp)
/* 02D8C 80BA582C AFAA0028 */ sw $t2, 0x0028($sp)
/* 02D90 80BA5830 AFB90024 */ sw $t9, 0x0024($sp)
/* 02D94 80BA5834 AFB80018 */ sw $t8, 0x0018($sp)
/* 02D98 80BA5838 AFA90014 */ sw $t1, 0x0014($sp)
/* 02D9C 80BA583C AFA70020 */ sw $a3, 0x0020($sp)
/* 02DA0 80BA5840 AFA80010 */ sw $t0, 0x0010($sp)
/* 02DA4 80BA5844 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 02DA8 80BA5848 0C0253D0 */ jal Gfx_TwoTexScroll
/* 02DAC 80BA584C 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 02DB0 80BA5850 AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 02DB4 80BA5854 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 02DB8 80BA5858 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 02DBC 80BA585C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 02DC0 80BA5860 AE2C02D0 */ sw $t4, 0x02D0($s1) ## 000002D0
/* 02DC4 80BA5864 AC550004 */ sw $s5, 0x0004($v0) ## 00000004
/* 02DC8 80BA5868 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 02DCC 80BA586C 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000002
.L80BA5870:
/* 02DD0 80BA5870 00139C00 */ sll $s3, $s3, 16
/* 02DD4 80BA5874 00139C03 */ sra $s3, $s3, 16
/* 02DD8 80BA5878 2A610006 */ slti $at, $s3, 0x0006
/* 02DDC 80BA587C 1420FF78 */ bne $at, $zero, .L80BA5660
/* 02DE0 80BA5880 00000000 */ nop
.L80BA5884:
/* 02DE4 80BA5884 3C0680BA */ lui $a2, %hi(D_80BA5BC8) ## $a2 = 80BA0000
/* 02DE8 80BA5888 24C65BC8 */ addiu $a2, $a2, %lo(D_80BA5BC8) ## $a2 = 80BA5BC8
/* 02DEC 80BA588C 27A400A0 */ addiu $a0, $sp, 0x00A0 ## $a0 = FFFFFF68
/* 02DF0 80BA5890 8E850000 */ lw $a1, 0x0000($s4) ## 00000000
/* 02DF4 80BA5894 0C031AD5 */ jal Graph_CloseDisps
/* 02DF8 80BA5898 24070647 */ addiu $a3, $zero, 0x0647 ## $a3 = 00000647
/* 02DFC 80BA589C 8FBF0074 */ lw $ra, 0x0074($sp)
/* 02E00 80BA58A0 D7B40038 */ ldc1 $f20, 0x0038($sp)
/* 02E04 80BA58A4 D7B60040 */ ldc1 $f22, 0x0040($sp)
/* 02E08 80BA58A8 D7B80048 */ ldc1 $f24, 0x0048($sp)
/* 02E0C 80BA58AC 8FB00050 */ lw $s0, 0x0050($sp)
/* 02E10 80BA58B0 8FB10054 */ lw $s1, 0x0054($sp)
/* 02E14 80BA58B4 8FB20058 */ lw $s2, 0x0058($sp)
/* 02E18 80BA58B8 8FB3005C */ lw $s3, 0x005C($sp)
/* 02E1C 80BA58BC 8FB40060 */ lw $s4, 0x0060($sp)
/* 02E20 80BA58C0 8FB50064 */ lw $s5, 0x0064($sp)
/* 02E24 80BA58C4 8FB60068 */ lw $s6, 0x0068($sp)
/* 02E28 80BA58C8 8FB7006C */ lw $s7, 0x006C($sp)
/* 02E2C 80BA58CC 8FBE0070 */ lw $s8, 0x0070($sp)
/* 02E30 80BA58D0 03E00008 */ jr $ra
/* 02E34 80BA58D4 27BD0138 */ addiu $sp, $sp, 0x0138 ## $sp = 00000000
/* 02E38 80BA58D8 00000000 */ nop
/* 02E3C 80BA58DC 00000000 */ nop

View File

@ -3,7 +3,7 @@
<Texture Name="object_spot02_objects_Tex_000000" OutName="tex_00000000" Format="i8" Width="32" Height="64" Offset="0x0"/>
<Texture Name="object_spot02_objects_Tex_000800" OutName="tex_00000800" Format="i8" Width="32" Height="64" Offset="0x800"/>
<DList Name="object_spot02_objects_DL_0013F0" Offset="0x13F0"/>
<Blob Name="object_spot02_objects_Blob_0015D8" Size="0x8008" Offset="0x15D8"/>
<Blob Name="object_spot02_objects_Blob_0015D8" Size="0x0008" Offset="0x15D8"/>
<DList Name="object_spot02_objects_DL_009620" Offset="0x9620"/>
<Blob Name="object_spot02_objects_Blob_0096A8" Size="0x9008" Offset="0x96A8"/>
<DList Name="object_spot02_objects_DL_0126F0" Offset="0x126F0"/>
@ -21,5 +21,13 @@
<Texture Name="object_spot02_objects_Tex_014C20" OutName="tex_00014C20" Format="rgba16" Width="64" Height="32" Offset="0x14C20"/>
<Texture Name="object_spot02_objects_Tex_015C20" OutName="tex_00015C20" Format="rgba16" Width="32" Height="32" Offset="0x15C20"/>
<Texture Name="object_spot02_objects_Tex_016420" OutName="tex_00016420" Format="rgba16" Width="16" Height="16" Offset="0x16420"/>
<Texture Name="gEffSunGraveSpark1Tex" OutName="eff_sun_grave_spark_1" Format="i8" Width="64" Height="64" Offset="0x15E0"/>
<Texture Name="gEffSunGraveSpark2Tex" OutName="eff_sun_grave_spark_2" Format="i8" Width="64" Height="64" Offset="0x25E0"/>
<Texture Name="gEffSunGraveSpark3Tex" OutName="eff_sun_grave_spark_3" Format="i8" Width="64" Height="64" Offset="0x35E0"/>
<Texture Name="gEffSunGraveSpark4Tex" OutName="eff_sun_grave_spark_4" Format="i8" Width="64" Height="64" Offset="0x45E0"/>
<Texture Name="gEffSunGraveSpark5Tex" OutName="eff_sun_grave_spark_5" Format="i8" Width="64" Height="64" Offset="0x55E0"/>
<Texture Name="gEffSunGraveSpark6Tex" OutName="eff_sun_grave_spark_6" Format="i8" Width="64" Height="64" Offset="0x65E0"/>
<Texture Name="gEffSunGraveSpark7Tex" OutName="eff_sun_grave_spark_7" Format="i8" Width="64" Height="64" Offset="0x75E0"/>
<Texture Name="gEffSunGraveSpark8Tex" OutName="eff_sun_grave_spark_8" Format="i8" Width="64" Height="64" Offset="0x85E0"/>
</File>
</Root>

View File

@ -1,54 +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 D_80BA58E0
.word gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex, gEffLightning4Tex, gEffLightning5Tex, gEffLightning6Tex, gEffLightning7Tex, gEffLightning8Tex
glabel D_80BA5900
.word 0x060015E0, 0x060025E0, 0x060035E0, 0x060045E0, 0x060055E0, 0x060065E0, 0x060075E0, 0x060085E0
glabel Object_Kankyo_InitVars
.word 0x00970700, 0x02000030, 0x00010000, 0x00001660
.word ObjectKankyo_Init
.word ObjectKankyo_Destroy
.word ObjectKankyo_Update
.word ObjectKankyo_Draw
glabel D_80BA5940
.word 0x00000000
glabel D_80BA5944
.word 0x00000000
glabel D_80BA5948
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA5954
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA5960
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA596C
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA5978
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA5984
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA5990
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80BA599C
.word 0x43D70000, 0x44570000, 0x43D70000, 0xC3D50000, 0xC4578000, 0xC3DC0000
glabel D_80BA59B4
.word 0x4409C000, 0x4409C000, 0x4409C000, 0x440A8000, 0x4409C000, 0x4408C000
glabel D_80BA59CC
.word 0xC2C00000, 0xC4520000, 0xC4C62000, 0xC4C54000, 0xC4520000, 0xC29C0000
glabel D_80BA59E4
.word 0x41EF3333, 0x42B40000, 0x43160000, 0x41F00000, 0x42B40000, 0xC1F0CCCD
glabel D_80BA59FC
.word 0x42CECCCD, 0x42CF999A, 0x42CF3333, 0xC2CECCCD, 0xC2CF0000, 0x42CF0000
glabel D_80BA5A14
.word 0xFFFFAAAA, 0xFFFFFFAA, 0xFFFFFFAA, 0xFFFFAAFF, 0xFFAA0000
glabel D_80BA5A28
.word 0x00C80000, 0x32FF6400, 0xC8C80000, 0xC8FF00FF, 0x78000000, 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_80BA5CE0
.incbin "baserom/ovl_Object_Kankyo", 0x3240, 0x00000390

3
spec
View File

@ -3331,8 +3331,7 @@ endseg
beginseg
name "ovl_Object_Kankyo"
include "build/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o"
include "build/data/overlays/actors/z_object_kankyo.data.o"
include "build/data/overlays/actors/z_object_kankyo.reloc.o"
include "build/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o"
endseg
beginseg

View File

@ -181,7 +181,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
if (sp3F != 0) {
func_800F6D58(0xE, 4, 0x3F);
func_800F6D58(0xE, 1, 1);
globalCtx->envCtx.unk_EE[0] = 0x14;
globalCtx->envCtx.unk_EE[0] = 20;
}
break;
case 2:
@ -223,7 +223,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
}
break;
case 9:
globalCtx->envCtx.unk_EE[3] = 0x10;
globalCtx->envCtx.unk_EE[3] = 16;
break;
case 10:
Flags_SetEnv(globalCtx, 1);

View File

@ -7,6 +7,7 @@
#include "z_object_kankyo.h"
#include "objects/object_demo_kekkai/object_demo_kekkai.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/object_spot02_objects/object_spot02_objects.h"
#define FLAGS 0x02000030
@ -17,9 +18,35 @@ void ObjectKankyo_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjectKankyo_Update(Actor* thisx, GlobalContext* globalCtx);
void ObjectKankyo_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06009620;
void ObjectKankyo_SetupAction(ObjectKankyo* this, ObjectKankyoActionFunc func);
void ObjectKankyo_Fairies(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_SunGraveSparkInit(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_Snow(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_Lightning(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_InitBeams(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_WaitForSunGraveSparkObject(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_SunGraveSpark(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_WaitForBeamObject(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_Beams(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_DrawFairies(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_DrawSnow(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_DrawLightning(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_DrawSunGraveSpark(ObjectKankyo* this, GlobalContext* globalCtx);
void ObjectKankyo_DrawBeams(ObjectKankyo* this, GlobalContext* globalCtx);
extern Mtx D_01000000;
static void* sEffLightningTextures[] = {
gEffLightning1Tex, gEffLightning2Tex, gEffLightning3Tex, gEffLightning4Tex,
gEffLightning5Tex, gEffLightning6Tex, gEffLightning7Tex, gEffLightning8Tex,
};
static void* D_80BA5900[] = {
gEffSunGraveSpark1Tex, gEffSunGraveSpark2Tex, gEffSunGraveSpark3Tex, gEffSunGraveSpark4Tex,
gEffSunGraveSpark5Tex, gEffSunGraveSpark6Tex, gEffSunGraveSpark7Tex, gEffSunGraveSpark8Tex,
};
/*
const ActorInit Object_Kankyo_InitVars = {
ACTOR_OBJECT_KANKYO,
ACTORCAT_ITEMACTION,
@ -31,41 +58,884 @@ const ActorInit Object_Kankyo_InitVars = {
(ActorFunc)ObjectKankyo_Update,
(ActorFunc)ObjectKankyo_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/ObjectKankyo_SetupAction.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/ObjectKankyo_Init.s")
static u8 sIsSpawned = false;
static s16 sTrailingFairies = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/ObjectKankyo_Destroy.s")
void ObjectKankyo_SetupAction(ObjectKankyo* this, ObjectKankyoActionFunc action) {
this->actionFunc = action;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA2DC8.s")
void ObjectKankyo_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjectKankyo* this = THIS;
s32 pad;
s16 i;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA2DD4.s")
for (i = 0; i < ARRAY_COUNT(this->effects); i++) {
this->effects[i].state = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/ObjectKankyo_Update.s")
this->actor.room = -1;
switch (this->actor.params) {
case 0:
if (!sIsSpawned) {
ObjectKankyo_SetupAction(this, ObjectKankyo_Fairies);
sIsSpawned = true;
} else {
Actor_Kill(&this->actor);
}
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/ObjectKankyo_Draw.s")
case 3:
if (!sIsSpawned) {
ObjectKankyo_SetupAction(this, ObjectKankyo_Snow);
sIsSpawned = true;
} else {
Actor_Kill(&this->actor);
}
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA3C94.s")
case 2:
ObjectKankyo_SetupAction(this, ObjectKankyo_Lightning);
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA414C.s")
case 4:
this->effects[0].alpha = 0;
this->effects[0].amplitude = 0.0f;
Actor_ChangeCategory(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORCAT_ITEMACTION);
this->requiredObjectLoaded = false;
ObjectKankyo_SetupAction(this, ObjectKankyo_SunGraveSparkInit);
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4914.s")
case 5:
this->effects[0].alpha = 0;
this->effects[0].amplitude = 0.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA49BC.s")
for (i = 0; i < 6; i++) {
this->effects[i].size = 0.1f;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4BFC.s")
// Check which beams are disabled
if (Flags_GetEventChkInf(0xBB)) {
this->effects[0].size = 0.0f;
}
if (Flags_GetEventChkInf(0xBC)) {
this->effects[1].size = 0.0f;
}
if (Flags_GetEventChkInf(0xBD)) {
this->effects[2].size = 0.0f;
}
if (Flags_GetEventChkInf(0xBE)) {
this->effects[3].size = 0.0f;
}
if (Flags_GetEventChkInf(0xBF)) {
this->effects[4].size = 0.0f;
}
if (Flags_GetEventChkInf(0xAD)) {
this->effects[5].size = 0.0f;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4C68.s")
if (gSaveContext.cutsceneTrigger != 0) {
if (gSaveContext.entranceIndex == 0x0538) {
this->effects[0].size = 0.1f;
}
if (gSaveContext.entranceIndex == 0x053C) {
this->effects[1].size = 0.1f;
}
if (gSaveContext.entranceIndex == 0x0540) {
this->effects[2].size = 0.1f;
}
if (gSaveContext.entranceIndex == 0x0544) {
this->effects[3].size = 0.1f;
}
if (gSaveContext.entranceIndex == 0x0548) {
this->effects[4].size = 0.1f;
}
if (gSaveContext.entranceIndex == 0x054C) {
this->effects[5].size = 0.1f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4CD4.s")
this->requiredObjectLoaded = false;
ObjectKankyo_SetupAction(this, ObjectKankyo_InitBeams);
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA4D7C.s")
void ObjectKankyo_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Actor_Kill(thisx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA5304.s")
void ObjectKankyo_Snow(ObjectKankyo* this, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA5370.s")
void ObjectKankyo_Fairies(ObjectKankyo* this, GlobalContext* globalCtx) {
static Vec3f sSoundPos = { 0.0f, 0.0f, 0.0f };
Player* player;
f32 dist;
s32 playerMoved;
f32 dx;
f32 dy;
f32 dz;
f32 viewForwardsX;
f32 viewForwardsY;
f32 viewForwardsZ;
f32 maxDist;
f32 baseX;
f32 baseY;
f32 baseZ;
Vec3f vec1 = { 0.0f, 0.0f, 0.0f };
Vec3f vec2 = { 0.0f, 0.0f, 0.0f };
f32 random;
s16 i;
Vec3f viewForwards;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA53CC.s")
player = GET_PLAYER(globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Object_Kankyo/func_80BA54AC.s")
if (globalCtx->sceneNum == SCENE_SPOT04 && gSaveContext.sceneSetupIndex == 7) {
dist = Math3D_Vec3f_DistXYZ(&this->prevEyePos, &globalCtx->view.eye);
this->prevEyePos.x = globalCtx->view.eye.x;
this->prevEyePos.y = globalCtx->view.eye.y;
this->prevEyePos.z = globalCtx->view.eye.z;
dist /= 30.0f;
if (dist > 1.0f) {
dist = 1.0f;
}
func_800F436C(&sSoundPos, NA_SE_EV_NAVY_FLY - SFX_FLAG, (0.4f * dist) + 0.6f);
switch (globalCtx->csCtx.frames) {
case 473:
func_800788CC(NA_SE_VO_NA_HELLO_3);
break;
case 583:
func_800F4524(&D_801333D4, NA_SE_VO_NA_HELLO_2, 32);
break;
case 763:
func_80078884(NA_SE_EV_NAVY_CRASH - SFX_FLAG);
break;
case 771:
func_80078884(NA_SE_VO_RT_THROW);
break;
}
}
if (globalCtx->envCtx.unk_EE[3] < 64 &&
(gSaveContext.entranceIndex != 0x00EE || gSaveContext.sceneSetupIndex != 4 || globalCtx->envCtx.unk_EE[3])) {
globalCtx->envCtx.unk_EE[3] += 16;
}
for (i = 0; i < globalCtx->envCtx.unk_EE[3]; i++) {
// spawn in front of the camera
dx = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
dy = globalCtx->view.lookAt.y - globalCtx->view.eye.y;
dz = globalCtx->view.lookAt.z - globalCtx->view.eye.z;
dist = sqrtf(SQ(dx) + SQ(dy) + SQ(dz));
viewForwards.x = dx / dist;
viewForwards.y = dy / dist;
viewForwards.z = dz / dist;
viewForwardsX = viewForwards.x;
viewForwardsY = viewForwards.y;
viewForwardsZ = viewForwards.z;
switch (this->effects[i].state) {
case 0: // init
this->effects[i].base.x = globalCtx->view.eye.x + viewForwardsX * 80.0f;
this->effects[i].base.y = globalCtx->view.eye.y + viewForwardsY * 80.0f;
this->effects[i].base.z = globalCtx->view.eye.z + viewForwardsZ * 80.0f;
this->effects[i].pos.x = (Rand_ZeroOne() - 0.5f) * 160.0f;
this->effects[i].pos.y = 30.0f;
this->effects[i].pos.z = (Rand_ZeroOne() - 0.5f) * 160.0f;
this->effects[i].targetSpeed = Rand_ZeroOne() * 1.6f + 0.5f;
this->effects[i].alpha = 0;
this->effects[i].alphaTimer = Rand_ZeroOne() * 65535.0f;
this->effects[i].size = 0.1f;
this->effects[i].dirPhase.x = Rand_ZeroOne() * 360.0f;
this->effects[i].dirPhase.y = Rand_ZeroOne() * 360.0f;
this->effects[i].dirPhase.z = Rand_ZeroOne() * 360.0f;
this->effects[i].state++;
this->effects[i].timer = 0;
break;
case 1: // blinking fairies / inactive fairy trails
case 2: // fairy trails
this->effects[i].alphaTimer++;
baseX = globalCtx->view.eye.x + viewForwards.x * 80.0f;
baseY = globalCtx->view.eye.y + viewForwards.y * 80.0f;
baseZ = globalCtx->view.eye.z + viewForwards.z * 80.0f;
this->effects[i].prevPos.x = this->effects[i].pos.x;
this->effects[i].prevPos.y = this->effects[i].pos.y;
this->effects[i].prevPos.z = this->effects[i].pos.z;
playerMoved = true;
// y velocity is set to -4 when the player is on the ground
if (player->actor.velocity.x + player->actor.velocity.y + player->actor.velocity.z == -4.0f) {
playerMoved = false;
this->effects[i].timer++;
} else {
this->effects[i].timer = 0;
}
if (this->effects[i].state == 1) {
// the first 32 fairies are invisible until the player stands still
if (i < 32 && !playerMoved && this->effects[i].timer > 256) {
this->effects[i].timer = 0;
if (Rand_ZeroOne() < 0.5f) {
this->effects[i].angleVel = (s16)(Rand_ZeroOne() * 200.0f) + 200;
} else {
this->effects[i].angleVel = -((s16)(Rand_ZeroOne() * 200.0f) + 200);
}
this->effects[i].flightRadius = (s16)(Rand_ZeroOne() * 50.0f) + 15;
// uniformly scales the length and height of the wave that the lead fairy flies in
// lower numbers have a larger amplitude and period
this->effects[i].amplitude = (Rand_ZeroOne() * 10.0f + 10.0f) * 0.01f;
random = Rand_ZeroOne();
if (random < 0.2f) {
sTrailingFairies = 1;
} else if (random < 0.2f) {
// unreachable
sTrailingFairies = 3;
} else if (random < 0.4f) {
sTrailingFairies = 7;
} else {
sTrailingFairies = 15;
}
if ((i & sTrailingFairies) == 0) {
this->effects[i].pos.y = 0.0f;
}
this->effects[i].state = 2;
this->effects[i].targetSpeed = 0.0f;
}
Math_SmoothStepToF(&this->effects[i].size, 0.1f, 0.10f, 0.001f, 0.00001f);
Math_SmoothStepToF(&this->effects[i].speed, this->effects[i].targetSpeed, 0.5f, 0.2f, 0.02f);
this->effects[i].pos.x += sinf(this->effects[i].dirPhase.x) * this->effects[i].speed;
this->effects[i].pos.y += sinf(this->effects[i].dirPhase.y) * this->effects[i].speed;
this->effects[i].pos.z += sinf(this->effects[i].dirPhase.z) * this->effects[i].speed;
switch ((i >> 1) & 3) {
case 0:
this->effects[i].dirPhase.x += 0.008f;
this->effects[i].dirPhase.y += 0.05f * Rand_ZeroOne();
this->effects[i].dirPhase.z += 0.015f;
break;
case 1:
this->effects[i].dirPhase.x += 0.01f * Rand_ZeroOne();
this->effects[i].dirPhase.y += 0.05f * Rand_ZeroOne();
this->effects[i].dirPhase.z += 0.005f * Rand_ZeroOne();
break;
case 2:
this->effects[i].dirPhase.x += 0.01f * Rand_ZeroOne();
this->effects[i].dirPhase.y += 0.4f * Rand_ZeroOne();
this->effects[i].dirPhase.z += 0.004f * Rand_ZeroOne();
break;
case 3:
this->effects[i].dirPhase.x += 0.01 * Rand_ZeroOne();
this->effects[i].dirPhase.y += 0.08f * Rand_ZeroOne();
this->effects[i].dirPhase.z += 0.05f * Rand_ZeroOne();
break;
}
} else if (this->effects[i].state == 2) {
// scatter when the player moves or after a long enough time
if (playerMoved || this->effects[i].timer > 1280) {
this->effects[i].timer = 0;
this->effects[i].state = 1;
this->effects[i].speed = 1.5f;
this->effects[i].targetSpeed = Rand_ZeroOne() * 1.6f + 0.5f;
}
if ((i & sTrailingFairies) == 0) { // leader fairy
Math_SmoothStepToF(&this->effects[i].size, 0.25f, 0.1f, 0.001f, 0.00001f);
// move the center of the flight path to player's position
Math_SmoothStepToF(&this->effects[i].base.x, player->actor.world.pos.x, 0.5f, 1.0f, 0.2f);
Math_SmoothStepToF(&this->effects[i].base.y, player->actor.world.pos.y + 50.0f, 0.5f, 1.0f,
0.2f);
Math_SmoothStepToF(&this->effects[i].base.z, player->actor.world.pos.z, 0.5f, 1.0f, 0.2f);
// results unused
Math_SmoothStepToF(&this->effects[i].pos.x,
Math_SinS(this->effects[i].angle - 0x8000) * this->effects[i].flightRadius,
0.5f, 2.0f, 0.2f);
Math_SmoothStepToF(&this->effects[i].pos.z,
Math_CosS(this->effects[i].angle - 0x8000) * this->effects[i].flightRadius,
0.5f, 2.0f, 0.2f);
// the lead fairy's y position approximately follows a sine wave with `amplitude` as angular
// frequency and `1 / amplitude` as amplitude
this->effects[i].angle += this->effects[i].angleVel;
this->effects[i].pos.y += sinf(this->effects[i].dirPhase.y);
this->effects[i].dirPhase.x += 0.2f * Rand_ZeroOne();
this->effects[i].dirPhase.y += this->effects[i].amplitude;
this->effects[i].dirPhase.z += 0.1f * Rand_ZeroOne();
// circle around the player
this->effects[i].pos.x =
Math_SinS(this->effects[i].angle - 0x8000) * this->effects[i].flightRadius;
this->effects[i].pos.z =
Math_CosS(this->effects[i].angle - 0x8000) * this->effects[i].flightRadius;
} else { // trailing fairy
Math_SmoothStepToF(&this->effects[i].size, 0.1f, 0.10f, 0.001f, 0.00001f);
Math_SmoothStepToF(&this->effects[i].speed, 1.5f, 0.5f, 0.1f, 0.0002f);
// follow previous fairy, translate their position to be relative to our home
this->effects[i].pos.x =
this->effects[i - 1].prevPos.x + (this->effects[i - 1].base.x - this->effects[i].base.x);
this->effects[i].pos.y =
this->effects[i - 1].prevPos.y + (this->effects[i - 1].base.y - this->effects[i].base.y);
this->effects[i].pos.z =
this->effects[i - 1].prevPos.z + (this->effects[i - 1].base.z - this->effects[i].base.z);
}
}
if (this->effects[i].state != 2) {
maxDist = 130.0f;
if (this->effects[i].base.x + this->effects[i].pos.x - baseX > maxDist ||
this->effects[i].base.x + this->effects[i].pos.x - baseX < -maxDist ||
this->effects[i].base.y + this->effects[i].pos.y - baseY > maxDist ||
this->effects[i].base.y + this->effects[i].pos.y - baseY < -maxDist ||
this->effects[i].base.z + this->effects[i].pos.z - baseZ > maxDist ||
this->effects[i].base.z + this->effects[i].pos.z - baseZ < -maxDist) {
// when a fairy moves off screen, wrap around to the other side
if (this->effects[i].base.x + this->effects[i].pos.x - baseX > maxDist) {
this->effects[i].base.x = baseX - maxDist;
this->effects[i].pos.x = 0.0f;
}
if (this->effects[i].base.x + this->effects[i].pos.x - baseX < -maxDist) {
this->effects[i].base.x = baseX + maxDist;
this->effects[i].pos.x = 0.0f;
}
if (this->effects[i].base.y + this->effects[i].pos.y - baseY > 50.0f) {
this->effects[i].base.y = baseY - 50.0f;
this->effects[i].pos.y = 0.0f;
}
if (this->effects[i].base.y + this->effects[i].pos.y - baseY < -50.0f) {
this->effects[i].base.y = baseY + 50.0f;
this->effects[i].pos.y = 0.0f;
}
if (this->effects[i].base.z + this->effects[i].pos.z - baseZ > maxDist) {
this->effects[i].base.z = baseZ - maxDist;
this->effects[i].pos.z = 0.0f;
}
if (this->effects[i].base.z + this->effects[i].pos.z - baseZ < -maxDist) {
this->effects[i].base.z = baseZ + maxDist;
this->effects[i].pos.z = 0.0f;
}
}
}
break;
case 3: // reset, never reached
this->effects[i].state = 0;
break;
}
}
}
void ObjectKankyo_Update(Actor* thisx, GlobalContext* globalCtx) {
ObjectKankyo* this = THIS;
this->actionFunc(this, globalCtx);
}
void ObjectKankyo_Draw(Actor* thisx, GlobalContext* globalCtx) {
ObjectKankyo* this = THIS;
switch (this->actor.params) {
case 0:
ObjectKankyo_DrawFairies(this, globalCtx);
break;
case 2:
ObjectKankyo_DrawLightning(this, globalCtx);
break;
case 3:
ObjectKankyo_DrawSnow(this, globalCtx);
break;
case 4:
ObjectKankyo_DrawSunGraveSpark(this, globalCtx);
break;
case 5:
ObjectKankyo_DrawBeams(this, globalCtx);
break;
}
}
void ObjectKankyo_DrawFairies(ObjectKankyo* this2, GlobalContext* globalCtx2) {
ObjectKankyo* this = this2;
GlobalContext* globalCtx = globalCtx2;
f32 alphaScale;
Vec3f vec1 = { 0.0f, 0.0f, 0.0f };
Vec3f vec2 = { 0.0f, 0.0f, 0.0f };
s16 i;
if (!(globalCtx->cameraPtrs[0]->unk_14C & 0x100)) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 807);
POLY_XLU_DISP = Gfx_CallSetupDL(POLY_XLU_DISP, 0x14);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gSun1Tex));
gSPDisplayList(POLY_XLU_DISP++, gKokiriDustMoteTextureLoadDL);
for (i = 0; i < globalCtx->envCtx.unk_EE[3]; i++) {
Matrix_Translate(this->effects[i].base.x + this->effects[i].pos.x,
this->effects[i].base.y + this->effects[i].pos.y,
this->effects[i].base.z + this->effects[i].pos.z, MTXMODE_NEW);
// scale when fading in or out
alphaScale = this->effects[i].alpha / 50.0f;
if (alphaScale > 1.0f) {
alphaScale = 1.0f;
}
Matrix_Scale(this->effects[i].size * alphaScale, this->effects[i].size * alphaScale,
this->effects[i].size * alphaScale, MTXMODE_APPLY);
if (i < 32) {
if (this->effects[i].state != 2) {
if (this->effects[i].alpha > 0) {
this->effects[i].alpha--;
}
} else {
if (this->effects[i].alpha < 100) {
this->effects[i].alpha++;
}
}
} else {
if (this->effects[i].state != 2) {
if ((this->effects[i].alphaTimer & 0x1F) < 16) {
if (this->effects[i].alpha < 235) {
this->effects[i].alpha += 20;
}
} else {
if (this->effects[i].alpha > 20) {
this->effects[i].alpha -= 20;
}
}
} else {
// unreachable
if ((this->effects[i].alphaTimer & 0xF) < 8) {
if (this->effects[i].alpha < 255) {
this->effects[i].alpha += 100;
}
} else {
if (this->effects[i].alpha > 10) {
this->effects[i].alpha -= 10;
}
}
}
}
gDPPipeSync(POLY_XLU_DISP++);
switch (i & 1) {
case 0:
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 155, this->effects[i].alpha);
gDPSetEnvColor(POLY_XLU_DISP++, 250, 180, 0, this->effects[i].alpha);
break;
case 1:
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, this->effects[i].alpha);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, this->effects[i].alpha);
break;
}
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
Matrix_RotateZ(DEG_TO_RAD(globalCtx->state.frames * 20.0f), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 913), G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, gKokiriDustMoteDL);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 922);
}
}
void ObjectKankyo_DrawSnow(ObjectKankyo* this2, GlobalContext* globalCtx2) {
ObjectKankyo* this = this2;
GlobalContext* globalCtx = globalCtx2;
f32 dist;
f32 dx;
f32 dy;
f32 dz;
f32 maxDist;
f32 temp;
f32 baseX;
f32 baseY;
f32 baseZ;
Vec3f vec1 = { 0.0f, 0.0f, 0.0f };
Vec3f vec2 = { 0.0f, 0.0f, 0.0f };
s16 i;
s32 pad;
s32 pad2;
if (!(globalCtx->cameraPtrs[0]->unk_14C & 0x100)) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 958);
if (globalCtx->envCtx.unk_EE[2] < globalCtx->envCtx.unk_EE[3]) {
if (globalCtx->state.frames % 16 == 0) {
globalCtx->envCtx.unk_EE[2] += 2;
}
} else if (globalCtx->envCtx.unk_EE[2] > globalCtx->envCtx.unk_EE[3]) {
if (globalCtx->state.frames % 16 == 0) {
globalCtx->envCtx.unk_EE[2] -= 2;
}
}
for (i = 0; i < globalCtx->envCtx.unk_EE[2]; i++) {
switch (this->effects[i].state) {
case 0:
// spawn in front of the camera
dx = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
dy = globalCtx->view.lookAt.y - globalCtx->view.eye.y;
dz = globalCtx->view.lookAt.z - globalCtx->view.eye.z;
dist = sqrtf(SQ(dx) + SQ(dy) + SQ(dz));
// fake
temp = dz / dist;
this->effects[i].base.x = globalCtx->view.eye.x + dx / dist * 80.0f;
this->effects[i].base.y = globalCtx->view.eye.y + dy / dist * 80.0f;
this->effects[i].base.z = globalCtx->view.eye.z + temp * 80.0f;
this->effects[i].pos.x = (Rand_ZeroOne() - 0.5f) * 160.0f;
this->effects[i].pos.y = 80.0f;
this->effects[i].pos.z = (Rand_ZeroOne() - 0.5f) * 160.0f;
if (this->effects[i].base.y + this->effects[i].pos.y < 50.0f) {
this->effects[i].base.y = 50.0f;
}
this->effects[i].speed = Rand_ZeroOne() * 5.0f + 0.5f;
this->effects[i].dirPhase.x = Rand_ZeroOne() * 360.0f;
this->effects[i].dirPhase.z = Rand_ZeroOne() * 360.0f;
this->effects[i].state++;
break;
case 1:
dx = globalCtx->view.lookAt.x - globalCtx->view.eye.x;
dy = globalCtx->view.lookAt.y - globalCtx->view.eye.y;
dz = globalCtx->view.lookAt.z - globalCtx->view.eye.z;
dist = sqrtf(SQ(dx) + SQ(dy) + SQ(dz));
baseX = globalCtx->view.eye.x + dx / dist * 80.0f;
baseY = globalCtx->view.eye.y + dy / dist * 80.0f;
baseZ = globalCtx->view.eye.z + dz / dist * 80.0f;
this->effects[i].dirPhase.x += 0.049999997f * Rand_ZeroOne();
this->effects[i].dirPhase.z += 0.049999997f * Rand_ZeroOne();
this->effects[i].pos.x += sinf(this->effects[i].dirPhase.x * 0.01f);
this->effects[i].pos.z += cosf(this->effects[i].dirPhase.z * 0.01f);
this->effects[i].pos.y += -this->effects[i].speed;
if (this->effects[i].base.y + this->effects[i].pos.y < this->actor.world.pos.y ||
this->effects[i].base.y + this->effects[i].pos.y < globalCtx->view.eye.y - 150.0f) {
this->effects[i].state++;
}
maxDist = 80;
if (this->effects[i].base.x + this->effects[i].pos.x - baseX > maxDist ||
this->effects[i].base.x + this->effects[i].pos.x - baseX < -maxDist ||
this->effects[i].base.y + this->effects[i].pos.y - baseY > maxDist ||
this->effects[i].base.y + this->effects[i].pos.y - baseY < -maxDist ||
this->effects[i].base.z + this->effects[i].pos.z - baseZ > maxDist ||
this->effects[i].base.z + this->effects[i].pos.z - baseZ < -maxDist) {
// when off screen, wrap around to the other side
if (this->effects[i].base.x + this->effects[i].pos.x - baseX > maxDist) {
this->effects[i].base.x = baseX - maxDist;
this->effects[i].pos.x = 0.0f;
}
if (this->effects[i].base.x + this->effects[i].pos.x - baseX < -maxDist) {
this->effects[i].base.x = baseX + maxDist;
this->effects[i].pos.x = 0.0f;
}
if (this->effects[i].base.z + this->effects[i].pos.z - baseZ > maxDist) {
this->effects[i].base.z = baseZ - maxDist;
this->effects[i].pos.z = 0.0f;
}
if (this->effects[i].base.z + this->effects[i].pos.z - baseZ < -maxDist) {
this->effects[i].base.z = baseZ + maxDist;
this->effects[i].pos.z = 0.0f;
}
}
break;
case 2:
this->effects[i].state = 0;
break;
}
if (1) {}
if (1) {}
Matrix_Translate(this->effects[i].base.x + this->effects[i].pos.x,
this->effects[i].base.y + this->effects[i].pos.y,
this->effects[i].base.z + this->effects[i].pos.z, MTXMODE_NEW);
Matrix_Scale(0.05f, 0.05f, 0.05f, MTXMODE_APPLY);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 200, 200, 200, 180);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 200, 180);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1107),
G_MTX_LOAD);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gDust5Tex));
func_80094C50(globalCtx->state.gfxCtx);
gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_MODELVIEW | G_MTX_NOPUSH | G_MTX_MUL);
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, gEffDustDL);
gDPPipeSync(POLY_XLU_DISP++);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1127);
}
}
void ObjectKankyo_Lightning(ObjectKankyo* this, GlobalContext* globalCtx) {
if (globalCtx->csCtx.state != 0 && globalCtx->csCtx.npcActions[0] != NULL) {
switch (this->effects[0].state) {
case 0:
this->effects[0].timer = 0;
if (globalCtx->csCtx.npcActions[0]->action == 2) {
this->effects[0].state++;
}
break;
case 1:
if (++this->effects[0].timer >= 7) {
this->effects[0].state++;
}
break;
case 2:
if (globalCtx->csCtx.npcActions[0]->action == 1) {
this->effects[0].state = 0;
}
break;
}
}
}
void ObjectKankyo_DrawLightning(ObjectKankyo* this, GlobalContext* globalCtx) {
s32 pad;
s32 pad2;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1182);
if (this->effects[0].state == 1) {
Matrix_Translate(globalCtx->csCtx.npcActions[0]->startPos.x, globalCtx->csCtx.npcActions[0]->startPos.y,
globalCtx->csCtx.npcActions[0]->startPos.z, MTXMODE_NEW);
Matrix_RotateX(DEG_TO_RAD(20.0f), MTXMODE_APPLY);
Matrix_RotateZ(DEG_TO_RAD(20.0f), MTXMODE_APPLY);
Matrix_Scale(2.0f, 5.0f, 2.0f, MTXMODE_APPLY);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 128);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 255, 128);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1213), G_MTX_LOAD);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEffLightningTextures[this->effects[0].timer]));
func_80094C50(globalCtx->state.gfxCtx);
gSPMatrix(POLY_XLU_DISP++, &D_01000000, G_MTX_MODELVIEW | G_MTX_NOPUSH | G_MTX_MUL);
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, gEffLightningDL);
gDPPipeSync(POLY_XLU_DISP++);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1233);
}
void ObjectKankyo_SunGraveSparkInit(ObjectKankyo* this, GlobalContext* globalCtx) {
s32 objBankIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_SPOT02_OBJECTS);
if (objBankIndex < 0) {
ASSERT(0, "0", "../z_object_kankyo.c", 1251);
} else {
this->requiredObjBankIndex = objBankIndex;
}
ObjectKankyo_SetupAction(this, ObjectKankyo_WaitForSunGraveSparkObject);
}
void ObjectKankyo_WaitForSunGraveSparkObject(ObjectKankyo* this, GlobalContext* globalCtx) {
if (Object_IsLoaded(&globalCtx->objectCtx, this->requiredObjBankIndex)) {
this->requiredObjectLoaded = true;
this->effects[0].alpha = 0;
this->actor.objBankIndex = this->requiredObjBankIndex;
this->effects[0].size = 7.0f;
ObjectKankyo_SetupAction(this, ObjectKankyo_SunGraveSpark);
}
}
void ObjectKankyo_SunGraveSpark(ObjectKankyo* this, GlobalContext* globalCtx) {
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[1] != NULL && globalCtx->csCtx.npcActions[1]->action == 2) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG);
if ((s16)this->effects[0].alpha + 20 > 255) {
this->effects[0].alpha = 255;
} else {
this->effects[0].alpha += 20;
}
Math_SmoothStepToF(&this->effects[0].size, 1.8f, 0.5f, 0.28f, 0.01f);
}
}
}
void ObjectKankyo_DrawSunGraveSpark(ObjectKankyo* this2, GlobalContext* globalCtx2) {
ObjectKankyo* this = this2;
GlobalContext* globalCtx = globalCtx2;
Vec3f start;
Vec3f end;
f32 weight;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1324);
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[1] != NULL && globalCtx->csCtx.npcActions[1]->action == 2 &&
this->requiredObjectLoaded) {
// apparently, light waves with larger amplitudes look brighter, so the name 'amplitude' kind of works here
if (this->effects[0].state == 0) {
this->effects[0].amplitude += 1.0f / 7.0f;
if (this->effects[0].amplitude >= 1.0f) {
this->effects[0].amplitude = 1.0f;
this->effects[0].state++;
}
} else {
this->effects[0].amplitude -= 1.0f / 7.0f;
if (this->effects[0].amplitude <= 0.1f) {
this->effects[0].amplitude = 0.0f;
this->effects[0].state = 0;
}
}
if (++this->effects[0].timer > 7) {
this->effects[0].timer = 0;
}
start.x = globalCtx->csCtx.npcActions[1]->startPos.x;
start.y = globalCtx->csCtx.npcActions[1]->startPos.y;
start.z = globalCtx->csCtx.npcActions[1]->startPos.z;
end.x = globalCtx->csCtx.npcActions[1]->endPos.x;
end.y = globalCtx->csCtx.npcActions[1]->endPos.y;
end.z = globalCtx->csCtx.npcActions[1]->endPos.z;
weight = Environment_LerpWeight(globalCtx->csCtx.npcActions[1]->endFrame,
globalCtx->csCtx.npcActions[1]->startFrame, globalCtx->csCtx.frames);
Matrix_Translate((end.x - start.x) * weight + start.x, (end.y - start.y) * weight + start.y,
(end.z - start.z) * weight + start.z, MTXMODE_NEW);
Matrix_Scale(this->effects[0].size, this->effects[0].size, this->effects[0].size, MTXMODE_APPLY);
func_80093D84(globalCtx->state.gfxCtx);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, (u8)(105 * this->effects[0].amplitude) + 150, 255,
(u8)(105 * this->effects[0].amplitude) + 150, this->effects[0].alpha);
gDPSetEnvColor(POLY_XLU_DISP++, (u8)(155 * this->effects[0].amplitude) + 100,
(u8)(255 * this->effects[0].amplitude), 255 - (u8)(255 * this->effects[0].amplitude),
this->effects[0].alpha);
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1416),
G_MTX_LOAD);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_80BA5900[this->effects[0].timer]));
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, object_spot02_objects_DL_009620);
gDPPipeSync(POLY_XLU_DISP++);
}
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1432);
}
void ObjectKankyo_InitBeams(ObjectKankyo* this, GlobalContext* globalCtx) {
s32 objectIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_DEMO_KEKKAI);
if (objectIndex < 0) {
ASSERT(0, "0", "../z_object_kankyo.c", 1449);
} else {
this->requiredObjBankIndex = objectIndex;
}
ObjectKankyo_SetupAction(this, ObjectKankyo_WaitForBeamObject);
}
void ObjectKankyo_WaitForBeamObject(ObjectKankyo* this, GlobalContext* globalCtx) {
if (Object_IsLoaded(&globalCtx->objectCtx, this->requiredObjBankIndex)) {
this->requiredObjectLoaded = true;
this->actor.objBankIndex = this->requiredObjBankIndex;
ObjectKankyo_SetupAction(this, ObjectKankyo_Beams);
}
}
void ObjectKankyo_Beams(ObjectKankyo* this, GlobalContext* globalCtx) {
u8 i;
if (globalCtx->csCtx.state != 0) {
for (i = 0; i < 6; i++) {
if (globalCtx->csCtx.npcActions[i + 1] != NULL && globalCtx->csCtx.npcActions[i + 1]->action == 2) {
if (this->effects[i].size == 0.1f) {
func_800F3F3C(11);
}
Math_ApproachZeroF(&this->effects[i].size, 0.1f, 0.1f);
}
}
}
}
void ObjectKankyo_DrawBeams(ObjectKankyo* this2, GlobalContext* globalCtx2) {
static Color_RGB8 sBeamPrimColors[] = {
{ 255, 255, 170 }, { 170, 255, 255 }, { 255, 170, 255 },
{ 255, 255, 170 }, { 255, 255, 170 }, { 255, 255, 170 },
};
static Color_RGB8 sBeamEnvColors[] = {
{ 0, 200, 0 }, { 0, 50, 255 }, { 100, 0, 200 }, { 200, 0, 0 }, { 200, 255, 0 }, { 255, 120, 0 },
};
ObjectKankyo* this = this2;
GlobalContext* globalCtx = globalCtx2;
s16 i;
f32 beamX[] = { 430.0f, 860.0f, 430.0f, -426.0f, -862.0f, -440.0f };
f32 beamY[] = { 551.0f, 551.0f, 551.0f, 554.0f, 551.0f, 547.0f };
f32 beamZ[] = { -96.0f, -840.0f, -1585.0f, -1578.0f, -840.0f, -78.0f };
f32 beamYaw[] = { 29.9f, 90.0f, 150.0f, 30.0f, 90.0f, -30.1f };
f32 beamPitch[] = { 103.4f, 103.8f, 103.6f, -103.4f, -103.5f, 103.5f };
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1539);
if (this->requiredObjectLoaded) {
for (i = 0; i < 6; i++) {
if (this->effects[i].size > 0.001f) {
Matrix_Translate(beamX[i], beamY[i], beamZ[i], MTXMODE_NEW);
Matrix_RotateY(DEG_TO_RAD(beamYaw[i]), MTXMODE_APPLY);
Matrix_RotateX(DEG_TO_RAD(beamPitch[i]), MTXMODE_APPLY);
Matrix_Scale(this->effects[i].size, 0.1f, this->effects[i].size, MTXMODE_APPLY);
func_80093D84(globalCtx->state.gfxCtx);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, sBeamPrimColors[i].r, sBeamPrimColors[i].g,
sBeamPrimColors[i].b, 128);
gDPSetEnvColor(POLY_XLU_DISP++, sBeamEnvColors[i].r, sBeamEnvColors[i].g, sBeamEnvColors[i].b, 128);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1586),
G_MTX_LOAD);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, globalCtx->state.frames * 5,
globalCtx->state.frames * 10, 32, 64, 1, globalCtx->state.frames * 5,
globalCtx->state.frames * 10, 32, 64));
gSPDisplayList(POLY_XLU_DISP++, gDemoKekkaiDL_005FF0);
}
}
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_object_kankyo.c", 1607);
}

View File

@ -8,9 +8,30 @@ struct ObjectKankyo;
typedef void (*ObjectKankyoActionFunc)(struct ObjectKankyo*, GlobalContext*);
typedef struct ObjectKankyoEffect {
/* 0x00 */ u8 state;
/* 0x04 */ Vec3f pos; // relative to base
/* 0x10 */ Vec3f prevPos;
/* 0x1C */ Vec3f base;
/* 0x28 */ Vec3f dirPhase; // input to sin/cos for movement direction
/* 0x34 */ f32 speed;
/* 0x38 */ f32 targetSpeed;
/* 0x3C */ u16 alphaTimer;
/* 0x3E */ u16 angle;
/* 0x40 */ u8 alpha;
/* 0x44 */ f32 size;
/* 0x48 */ u16 angleVel;
/* 0x4A */ u16 flightRadius;
/* 0x4C */ f32 amplitude;
/* 0x50 */ u16 timer;
} ObjectKankyoEffect; // size = 0x54
typedef struct ObjectKankyo {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1510];
/* 0x014C */ ObjectKankyoEffect effects[64];
/* 0x164C */ Vec3f prevEyePos;
/* 0x1658 */ u8 requiredObjBankIndex;
/* 0x1659 */ u8 requiredObjectLoaded;
/* 0x165C */ ObjectKankyoActionFunc actionFunc;
} ObjectKankyo; // size = 0x1660

View File

@ -214,4 +214,3 @@ D_060224F8 = 0x060224F8;
// z_object_kankyo
D_01000000 = 0x01000000;
D_06009620 = 0x06009620;