1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 15:04:31 +00:00

Decompiled En_Holl (#253)

* Decompile most of En_Holl

* Two nonmatchings left

* Rename some variables, use EnHollActionFunc

* Minor cleanups

* Only regalloc issues left

* General cleanups

* 1 nonmatching left

* Delete data.s file

* Added some more documentation

* Improved nonmatching but OK still elusive, some cleanups

* Review changes

* Ran formatter

* More review changes

* Flip conditions that were previously missed

* DISP macros
This commit is contained in:
Tharo 2020-09-30 20:11:04 +01:00 committed by GitHub
parent 82968a7381
commit d292d81958
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 350 additions and 945 deletions

View file

@ -1,12 +0,0 @@
glabel EnHoll_Destroy
/* 000DC 80A58CEC 9482001C */ lhu $v0, 0x001C($a0) ## 0000001C
/* 000E0 80A58CF0 3C0E0001 */ lui $t6, 0x0001 ## $t6 = 00010000
/* 000E4 80A58CF4 01C57021 */ addu $t6, $t6, $a1
/* 000E8 80A58CF8 8DCE1D38 */ lw $t6, 0x1D38($t6) ## 00011D38
/* 000EC 80A58CFC 00021283 */ sra $v0, $v0, 10
/* 000F0 80A58D00 00027900 */ sll $t7, $v0, 4
/* 000F4 80A58D04 01CF1821 */ addu $v1, $t6, $t7
/* 000F8 80A58D08 84780004 */ lh $t8, 0x0004($v1) ## 00000004
/* 000FC 80A58D0C 0018C823 */ subu $t9, $zero, $t8
/* 00100 80A58D10 03E00008 */ jr $ra
/* 00104 80A58D14 A4790004 */ sh $t9, 0x0004($v1) ## 00000004

View file

@ -1,112 +0,0 @@
.rdata
glabel D_80A59AF0
.asciz "../z_en_holl.c"
.balign 4
glabel D_80A59B00
.asciz "../z_en_holl.c"
.balign 4
glabel D_80A59B10
.asciz "../z_en_holl.c"
.balign 4
.late_rodata
glabel D_80A59B2C
.float 3.14159274101
.text
glabel EnHoll_Draw
/* 00CB0 80A598C0 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00CB4 80A598C4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00CB8 80A598C8 AFA40048 */ sw $a0, 0x0048($sp)
/* 00CBC 80A598CC AFA5004C */ sw $a1, 0x004C($sp)
/* 00CC0 80A598D0 848F014C */ lh $t7, 0x014C($a0) ## 0000014C
/* 00CC4 80A598D4 3C0680A6 */ lui $a2, %hi(D_80A59AF0) ## $a2 = 80A60000
/* 00CC8 80A598D8 24C69AF0 */ addiu $a2, $a2, %lo(D_80A59AF0) ## $a2 = 80A59AF0
/* 00CCC 80A598DC 11E0004C */ beq $t7, $zero, .L80A59A10
/* 00CD0 80A598E0 27A40028 */ addiu $a0, $sp, 0x0028 ## $a0 = FFFFFFE0
/* 00CD4 80A598E4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00CD8 80A598E8 24070325 */ addiu $a3, $zero, 0x0325 ## $a3 = 00000325
/* 00CDC 80A598EC 0C031AB1 */ jal Graph_OpenDisps
/* 00CE0 80A598F0 AFA50038 */ sw $a1, 0x0038($sp)
/* 00CE4 80A598F4 8FB90048 */ lw $t9, 0x0048($sp)
/* 00CE8 80A598F8 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 00CEC 80A598FC 8FA90038 */ lw $t1, 0x0038($sp)
/* 00CF0 80A59900 8728014C */ lh $t0, 0x014C($t9) ## 0000014C
/* 00CF4 80A59904 8FAA0038 */ lw $t2, 0x0038($sp)
/* 00CF8 80A59908 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00CFC 80A5990C 55010005 */ bnel $t0, $at, .L80A59924
/* 00D00 80A59910 8D4702D0 */ lw $a3, 0x02D0($t2) ## 000002D0
/* 00D04 80A59914 8D2702C0 */ lw $a3, 0x02C0($t1) ## 000002C0
/* 00D08 80A59918 10000002 */ beq $zero, $zero, .L80A59924
/* 00D0C 80A5991C 24050025 */ addiu $a1, $zero, 0x0025 ## $a1 = 00000025
/* 00D10 80A59920 8D4702D0 */ lw $a3, 0x02D0($t2) ## 000002D0
.L80A59924:
/* 00D14 80A59924 0C024DDD */ jal Gfx_CallSetupDL
/* 00D18 80A59928 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00D1C 80A5992C 8FAB0048 */ lw $t3, 0x0048($sp)
/* 00D20 80A59930 00403825 */ or $a3, $v0, $zero ## $a3 = 00000000
/* 00D24 80A59934 3C0180A6 */ lui $at, %hi(D_80A59B2C) ## $at = 80A60000
/* 00D28 80A59938 916C014E */ lbu $t4, 0x014E($t3) ## 0000014E
/* 00D2C 80A5993C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D30 80A59940 55800006 */ bnel $t4, $zero, .L80A5995C
/* 00D34 80A59944 3C0DDA38 */ lui $t5, 0xDA38 ## $t5 = DA380000
/* 00D38 80A59948 C42C9B2C */ lwc1 $f12, %lo(D_80A59B2C)($at)
/* 00D3C 80A5994C 0C034348 */ jal Matrix_RotateY
/* 00D40 80A59950 AFA20040 */ sw $v0, 0x0040($sp)
/* 00D44 80A59954 8FA70040 */ lw $a3, 0x0040($sp)
/* 00D48 80A59958 3C0DDA38 */ lui $t5, 0xDA38 ## $t5 = DA380000
.L80A5995C:
/* 00D4C 80A5995C 35AD0003 */ ori $t5, $t5, 0x0003 ## $t5 = DA380003
/* 00D50 80A59960 00E01825 */ or $v1, $a3, $zero ## $v1 = 00000000
/* 00D54 80A59964 AC6D0000 */ sw $t5, 0x0000($v1) ## 00000000
/* 00D58 80A59968 8FAE004C */ lw $t6, 0x004C($sp)
/* 00D5C 80A5996C 24E70008 */ addiu $a3, $a3, 0x0008 ## $a3 = 00000008
/* 00D60 80A59970 3C0580A6 */ lui $a1, %hi(D_80A59B00) ## $a1 = 80A60000
/* 00D64 80A59974 8DC40000 */ lw $a0, 0x0000($t6) ## 00000000
/* 00D68 80A59978 AFA70040 */ sw $a3, 0x0040($sp)
/* 00D6C 80A5997C AFA30024 */ sw $v1, 0x0024($sp)
/* 00D70 80A59980 24A59B00 */ addiu $a1, $a1, %lo(D_80A59B00) ## $a1 = 80A59B00
/* 00D74 80A59984 0C0346A2 */ jal Matrix_NewMtx
/* 00D78 80A59988 24060338 */ addiu $a2, $zero, 0x0338 ## $a2 = 00000338
/* 00D7C 80A5998C 8FA30024 */ lw $v1, 0x0024($sp)
/* 00D80 80A59990 8FA70040 */ lw $a3, 0x0040($sp)
/* 00D84 80A59994 3C0FFA00 */ lui $t7, 0xFA00 ## $t7 = FA000000
/* 00D88 80A59998 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00D8C 80A5999C 00E01025 */ or $v0, $a3, $zero ## $v0 = 00000000
/* 00D90 80A599A0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00D94 80A599A4 8FB80048 */ lw $t8, 0x0048($sp)
/* 00D98 80A599A8 24E70008 */ addiu $a3, $a3, 0x0008 ## $a3 = 00000008
/* 00D9C 80A599AC 3C0A80A6 */ lui $t2, %hi(D_80A59AC8) ## $t2 = 80A60000
/* 00DA0 80A599B0 9308014D */ lbu $t0, 0x014D($t8) ## 0000014D
/* 00DA4 80A599B4 254A9AC8 */ addiu $t2, $t2, %lo(D_80A59AC8) ## $t2 = 80A59AC8
/* 00DA8 80A599B8 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 00DAC 80A599BC AC480004 */ sw $t0, 0x0004($v0) ## 00000004
/* 00DB0 80A599C0 00E01025 */ or $v0, $a3, $zero ## $v0 = 00000008
/* 00DB4 80A599C4 AC490000 */ sw $t1, 0x0000($v0) ## 00000008
/* 00DB8 80A599C8 AC4A0004 */ sw $t2, 0x0004($v0) ## 0000000C
/* 00DBC 80A599CC 8FAB0048 */ lw $t3, 0x0048($sp)
/* 00DC0 80A599D0 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 00DC4 80A599D4 3C0680A6 */ lui $a2, %hi(D_80A59B10) ## $a2 = 80A60000
/* 00DC8 80A599D8 856C014C */ lh $t4, 0x014C($t3) ## 0000014C
/* 00DCC 80A599DC 24E70008 */ addiu $a3, $a3, 0x0008 ## $a3 = 00000010
/* 00DD0 80A599E0 24C69B10 */ addiu $a2, $a2, %lo(D_80A59B10) ## $a2 = 80A59B10
/* 00DD4 80A599E4 15810004 */ bne $t4, $at, .L80A599F8
/* 00DD8 80A599E8 27A40028 */ addiu $a0, $sp, 0x0028 ## $a0 = FFFFFFE0
/* 00DDC 80A599EC 8FAD0038 */ lw $t5, 0x0038($sp)
/* 00DE0 80A599F0 10000003 */ beq $zero, $zero, .L80A59A00
/* 00DE4 80A599F4 ADA702C0 */ sw $a3, 0x02C0($t5) ## 000002C0
.L80A599F8:
/* 00DE8 80A599F8 8FAE0038 */ lw $t6, 0x0038($sp)
/* 00DEC 80A599FC ADC702D0 */ sw $a3, 0x02D0($t6) ## 000002D0
.L80A59A00:
/* 00DF0 80A59A00 8FAF004C */ lw $t7, 0x004C($sp)
/* 00DF4 80A59A04 2407033F */ addiu $a3, $zero, 0x033F ## $a3 = 0000033F
/* 00DF8 80A59A08 0C031AD5 */ jal Graph_CloseDisps
/* 00DFC 80A59A0C 8DE50000 */ lw $a1, 0x0000($t7) ## FA000000
.L80A59A10:
/* 00E00 80A59A10 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00E04 80A59A14 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00E08 80A59A18 03E00008 */ jr $ra
/* 00E0C 80A59A1C 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel EnHoll_Init
/* 000A0 80A58CB0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000A4 80A58CB4 AFA5001C */ sw $a1, 0x001C($sp)
/* 000A8 80A58CB8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000AC 80A58CBC 3C0580A6 */ lui $a1, %hi(D_80A59A5C) ## $a1 = 80A60000
/* 000B0 80A58CC0 AFA40018 */ sw $a0, 0x0018($sp)
/* 000B4 80A58CC4 0C01E037 */ jal Actor_ProcessInitChain
/* 000B8 80A58CC8 24A59A5C */ addiu $a1, $a1, %lo(D_80A59A5C) ## $a1 = 80A59A5C
/* 000BC 80A58CCC 0C296312 */ jal func_80A58C48
/* 000C0 80A58CD0 8FA40018 */ lw $a0, 0x0018($sp)
/* 000C4 80A58CD4 8FAE0018 */ lw $t6, 0x0018($sp)
/* 000C8 80A58CD8 A1C0014F */ sb $zero, 0x014F($t6) ## 0000014F
/* 000CC 80A58CDC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000D0 80A58CE0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000D4 80A58CE4 03E00008 */ jr $ra
/* 000D8 80A58CE8 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel EnHoll_Update
/* 00C8C 80A5989C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C90 80A598A0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C94 80A598A4 8C990150 */ lw $t9, 0x0150($a0) ## 00000150
/* 00C98 80A598A8 0320F809 */ jalr $ra, $t9
/* 00C9C 80A598AC 00000000 */ nop
/* 00CA0 80A598B0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00CA4 80A598B4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00CA8 80A598B8 03E00008 */ jr $ra
/* 00CAC 80A598BC 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80A58C10
/* 00000 80A58C10 03E00008 */ jr $ra
/* 00004 80A58C14 AC850150 */ sw $a1, 0x0150($a0) ## 00000150

View file

@ -1,14 +0,0 @@
glabel func_80A58C18
/* 00008 80A58C18 3C038016 */ lui $v1, %hi(gSaveContext)
/* 0000C 80A58C1C 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 00010 80A58C20 8C620000 */ lw $v0, 0x0000($v1) ## 8015E660
/* 00014 80A58C24 384200EE */ xori $v0, $v0, 0x00EE ## $v0 = 000000EE
/* 00018 80A58C28 2C420001 */ sltiu $v0, $v0, 0x0001
/* 0001C 80A58C2C 10400004 */ beq $v0, $zero, .L80A58C40
/* 00020 80A58C30 00000000 */ nop
/* 00024 80A58C34 8C621360 */ lw $v0, 0x1360($v1) ## 8015F9C0
/* 00028 80A58C38 38420008 */ xori $v0, $v0, 0x0008 ## $v0 = 000000E6
/* 0002C 80A58C3C 2C420001 */ sltiu $v0, $v0, 0x0001
.L80A58C40:
/* 00030 80A58C40 03E00008 */ jr $ra
/* 00034 80A58C44 00000000 */ nop

View file

@ -1,29 +0,0 @@
glabel func_80A58C48
/* 00038 80A58C48 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0003C 80A58C4C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00040 80A58C50 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00044 80A58C54 3C0F80A6 */ lui $t7, %hi(D_80A59A40) ## $t7 = 80A60000
/* 00048 80A58C58 25EF9A40 */ addiu $t7, $t7, %lo(D_80A59A40) ## $t7 = 80A59A40
/* 0004C 80A58C5C 00021183 */ sra $v0, $v0, 6
/* 00050 80A58C60 30420007 */ andi $v0, $v0, 0x0007 ## $v0 = 00000000
/* 00054 80A58C64 00027080 */ sll $t6, $v0, 2
/* 00058 80A58C68 01CF1821 */ addu $v1, $t6, $t7
/* 0005C 80A58C6C 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 00060 80A58C70 AFA30018 */ sw $v1, 0x0018($sp)
/* 00064 80A58C74 0C296304 */ jal func_80A58C10
/* 00068 80A58C78 AFA40020 */ sw $a0, 0x0020($sp)
/* 0006C 80A58C7C 8FA30018 */ lw $v1, 0x0018($sp)
/* 00070 80A58C80 3C1880A6 */ lui $t8, %hi(D_80A59A40) ## $t8 = 80A60000
/* 00074 80A58C84 27189A40 */ addiu $t8, $t8, %lo(D_80A59A40) ## $t8 = 80A59A40
/* 00078 80A58C88 10780003 */ beq $v1, $t8, .L80A58C98
/* 0007C 80A58C8C 8FA40020 */ lw $a0, 0x0020($sp)
/* 00080 80A58C90 10000003 */ beq $zero, $zero, .L80A58CA0
/* 00084 80A58C94 AC800134 */ sw $zero, 0x0134($a0) ## 00000134
.L80A58C98:
/* 00088 80A58C98 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
/* 0008C 80A58C9C A499014C */ sh $t9, 0x014C($a0) ## 0000014C
.L80A58CA0:
/* 00090 80A58CA0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00094 80A58CA4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00098 80A58CA8 03E00008 */ jr $ra
/* 0009C 80A58CAC 00000000 */ nop

View file

@ -1,48 +0,0 @@
glabel func_80A58D18
/* 00108 80A58D18 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0010C 80A58D1C 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00110 80A58D20 00811021 */ addu $v0, $a0, $at
/* 00114 80A58D24 8C4F0000 */ lw $t7, 0x0000($v0) ## 00000000
/* 00118 80A58D28 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0011C 80A58D2C 27A50004 */ addiu $a1, $sp, 0x0004 ## $a1 = FFFFFFEC
/* 00120 80A58D30 ACAF0000 */ sw $t7, 0x0000($a1) ## FFFFFFEC
/* 00124 80A58D34 8C4E0004 */ lw $t6, 0x0004($v0) ## 00000004
/* 00128 80A58D38 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0012C 80A58D3C 34211CD0 */ ori $at, $at, 0x1CD0 ## $at = 00011CD0
/* 00130 80A58D40 ACAE0004 */ sw $t6, 0x0004($a1) ## FFFFFFF0
/* 00134 80A58D44 8C4F0008 */ lw $t7, 0x0008($v0) ## 00000008
/* 00138 80A58D48 00811821 */ addu $v1, $a0, $at
/* 0013C 80A58D4C 3C0A0001 */ lui $t2, 0x0001 ## $t2 = 00010000
/* 00140 80A58D50 ACAF0008 */ sw $t7, 0x0008($a1) ## FFFFFFF4
/* 00144 80A58D54 8C4E000C */ lw $t6, 0x000C($v0) ## 0000000C
/* 00148 80A58D58 01445021 */ addu $t2, $t2, $a0
/* 0014C 80A58D5C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00150 80A58D60 ACAE000C */ sw $t6, 0x000C($a1) ## FFFFFFF8
/* 00154 80A58D64 8C4F0010 */ lw $t7, 0x0010($v0) ## 00000010
/* 00158 80A58D68 00240821 */ addu $at, $at, $a0
/* 0015C 80A58D6C ACAF0010 */ sw $t7, 0x0010($a1) ## FFFFFFFC
/* 00160 80A58D70 8C790000 */ lw $t9, 0x0000($v1) ## 00000000
/* 00164 80A58D74 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00168 80A58D78 8C780004 */ lw $t8, 0x0004($v1) ## 00000004
/* 0016C 80A58D7C AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00170 80A58D80 8C790008 */ lw $t9, 0x0008($v1) ## 00000008
/* 00174 80A58D84 AC590008 */ sw $t9, 0x0008($v0) ## 00000008
/* 00178 80A58D88 8C78000C */ lw $t8, 0x000C($v1) ## 0000000C
/* 0017C 80A58D8C AC58000C */ sw $t8, 0x000C($v0) ## 0000000C
/* 00180 80A58D90 8C790010 */ lw $t9, 0x0010($v1) ## 00000010
/* 00184 80A58D94 AC590010 */ sw $t9, 0x0010($v0) ## 00000010
/* 00188 80A58D98 8CA90000 */ lw $t1, 0x0000($a1) ## FFFFFFEC
/* 0018C 80A58D9C AC690000 */ sw $t1, 0x0000($v1) ## 00000000
/* 00190 80A58DA0 8CA80004 */ lw $t0, 0x0004($a1) ## FFFFFFF0
/* 00194 80A58DA4 AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 00198 80A58DA8 8CA90008 */ lw $t1, 0x0008($a1) ## FFFFFFF4
/* 0019C 80A58DAC AC690008 */ sw $t1, 0x0008($v1) ## 00000008
/* 001A0 80A58DB0 8CA8000C */ lw $t0, 0x000C($a1) ## FFFFFFF8
/* 001A4 80A58DB4 AC68000C */ sw $t0, 0x000C($v1) ## 0000000C
/* 001A8 80A58DB8 8CA90010 */ lw $t1, 0x0010($a1) ## FFFFFFFC
/* 001AC 80A58DBC AC690010 */ sw $t1, 0x0010($v1) ## 00000010
/* 001B0 80A58DC0 914A1CEC */ lbu $t2, 0x1CEC($t2) ## 00011CEC
/* 001B4 80A58DC4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 001B8 80A58DC8 394B0001 */ xori $t3, $t2, 0x0001 ## $t3 = 00010001
/* 001BC 80A58DCC 03E00008 */ jr $ra
/* 001C0 80A58DD0 A02B1CEC */ sb $t3, 0x1CEC($at) ## 00011CEC

View file

@ -1,155 +0,0 @@
glabel func_80A58DD4
/* 001C4 80A58DD4 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 001C8 80A58DD8 AFBF001C */ sw $ra, 0x001C($sp)
/* 001CC 80A58DDC AFB00018 */ sw $s0, 0x0018($sp)
/* 001D0 80A58DE0 84AE00A4 */ lh $t6, 0x00A4($a1) ## 000000A4
/* 001D4 80A58DE4 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 001D8 80A58DE8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 001DC 80A58DEC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 001E0 80A58DF0 15C10003 */ bne $t6, $at, .L80A58E00
/* 001E4 80A58DF4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 001E8 80A58DF8 10000002 */ beq $zero, $zero, .L80A58E04
/* 001EC 80A58DFC 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
.L80A58E00:
/* 001F0 80A58E00 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000
.L80A58E04:
/* 001F4 80A58E04 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 001F8 80A58E08 27A5003C */ addiu $a1, $sp, 0x003C ## $a1 = FFFFFFEC
/* 001FC 80A58E0C 24460024 */ addiu $a2, $v0, 0x0024 ## $a2 = 00000024
/* 00200 80A58E10 AFA70050 */ sw $a3, 0x0050($sp)
/* 00204 80A58E14 0C00B6F4 */ jal func_8002DBD0
/* 00208 80A58E18 AFA80030 */ sw $t0, 0x0030($sp)
/* 0020C 80A58E1C C7A40044 */ lwc1 $f4, 0x0044($sp)
/* 00210 80A58E20 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00214 80A58E24 3C01C248 */ lui $at, 0xC248 ## $at = C2480000
/* 00218 80A58E28 44814000 */ mtc1 $at, $f8 ## $f8 = -50.00
/* 0021C 80A58E2C 4606203C */ c.lt.s $f4, $f6
/* 00220 80A58E30 8FA70050 */ lw $a3, 0x0050($sp)
/* 00224 80A58E34 8FA80030 */ lw $t0, 0x0030($sp)
/* 00228 80A58E38 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 0022C 80A58E3C 45000003 */ bc1f .L80A58E4C
/* 00230 80A58E40 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00234 80A58E44 10000002 */ beq $zero, $zero, .L80A58E50
/* 00238 80A58E48 A0E0014E */ sb $zero, 0x014E($a3) ## 0000014E
.L80A58E4C:
/* 0023C 80A58E4C A0EF014E */ sb $t7, 0x014E($a3) ## 0000014E
.L80A58E50:
/* 00240 80A58E50 C7AC0040 */ lwc1 $f12, 0x0040($sp)
/* 00244 80A58E54 C7A00044 */ lwc1 $f0, 0x0044($sp)
/* 00248 80A58E58 460C403C */ c.lt.s $f8, $f12
/* 0024C 80A58E5C 46000085 */ abs.s $f2, $f0
/* 00250 80A58E60 45020068 */ bc1fl .L80A59004
/* 00254 80A58E64 8FBF001C */ lw $ra, 0x001C($sp)
/* 00258 80A58E68 44815000 */ mtc1 $at, $f10 ## $f10 = 200.00
/* 0025C 80A58E6C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00260 80A58E70 C7A0003C */ lwc1 $f0, 0x003C($sp)
/* 00264 80A58E74 460A603C */ c.lt.s $f12, $f10
/* 00268 80A58E78 00000000 */ nop
/* 0026C 80A58E7C 45020061 */ bc1fl .L80A59004
/* 00270 80A58E80 8FBF001C */ lw $ra, 0x001C($sp)
/* 00274 80A58E84 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 00278 80A58E88 46000005 */ abs.s $f0, $f0
/* 0027C 80A58E8C 3C1980A6 */ lui $t9, %hi(D_80A59A68) ## $t9 = 80A60000
/* 00280 80A58E90 4610003C */ c.lt.s $f0, $f16
/* 00284 80A58E94 27399A68 */ addiu $t9, $t9, %lo(D_80A59A68) ## $t9 = 80A59A68
/* 00288 80A58E98 0008C100 */ sll $t8, $t0, 4
/* 0028C 80A58E9C 03191021 */ addu $v0, $t8, $t9
/* 00290 80A58EA0 45020058 */ bc1fl .L80A59004
/* 00294 80A58EA4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00298 80A58EA8 C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000000
/* 0029C 80A58EAC 4612103C */ c.lt.s $f2, $f18
/* 002A0 80A58EB0 00000000 */ nop
/* 002A4 80A58EB4 45020053 */ bc1fl .L80A59004
/* 002A8 80A58EB8 8FBF001C */ lw $ra, 0x001C($sp)
/* 002AC 80A58EBC C4440004 */ lwc1 $f4, 0x0004($v0) ## 00000004
/* 002B0 80A58EC0 94E5001C */ lhu $a1, 0x001C($a3) ## 0000001C
/* 002B4 80A58EC4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 002B8 80A58EC8 4602203C */ c.lt.s $f4, $f2
/* 002BC 80A58ECC 02011821 */ addu $v1, $s0, $at
/* 002C0 80A58ED0 00052A83 */ sra $a1, $a1, 10
/* 002C4 80A58ED4 4502001B */ bc1fl .L80A58F44
/* 002C8 80A58ED8 90EC014E */ lbu $t4, 0x014E($a3) ## 0000014E
/* 002CC 80A58EDC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 002D0 80A58EE0 02011821 */ addu $v1, $s0, $at
/* 002D4 80A58EE4 80691CD0 */ lb $t1, 0x1CD0($v1) ## 00001CD0
/* 002D8 80A58EE8 05220046 */ bltzl $t1, .L80A59004
/* 002DC 80A58EEC 8FBF001C */ lw $ra, 0x001C($sp)
/* 002E0 80A58EF0 806A1CED */ lb $t2, 0x1CED($v1) ## 00001CED
/* 002E4 80A58EF4 55400043 */ bnel $t2, $zero, .L80A59004
/* 002E8 80A58EF8 8FBF001C */ lw $ra, 0x001C($sp)
/* 002EC 80A58EFC 8C6B1D38 */ lw $t3, 0x1D38($v1) ## 00001D38
/* 002F0 80A58F00 90EE014E */ lbu $t6, 0x014E($a3) ## 0000014E
/* 002F4 80A58F04 00056100 */ sll $t4, $a1, 4
/* 002F8 80A58F08 016C6821 */ addu $t5, $t3, $t4
/* 002FC 80A58F0C 000E7840 */ sll $t7, $t6, 1
/* 00300 80A58F10 01AFC021 */ addu $t8, $t5, $t7
/* 00304 80A58F14 83190000 */ lb $t9, 0x0000($t8) ## 00000000
/* 00308 80A58F18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0030C 80A58F1C 0C296346 */ jal func_80A58D18
/* 00310 80A58F20 A0F90003 */ sb $t9, 0x0003($a3) ## 00000003
/* 00314 80A58F24 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00318 80A58F28 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 0031C 80A58F2C 02012821 */ addu $a1, $s0, $at
/* 00320 80A58F30 0C025D4D */ jal func_80097534
/* 00324 80A58F34 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00328 80A58F38 10000032 */ beq $zero, $zero, .L80A59004
/* 0032C 80A58F3C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00330 80A58F40 90EC014E */ lbu $t4, 0x014E($a3) ## 0000014E
.L80A58F44:
/* 00334 80A58F44 8C691D38 */ lw $t1, 0x1D38($v1) ## 00001D38
/* 00338 80A58F48 00055100 */ sll $t2, $a1, 4
/* 0033C 80A58F4C 398E0001 */ xori $t6, $t4, 0x0001 ## $t6 = 00000001
/* 00340 80A58F50 000E6840 */ sll $t5, $t6, 1
/* 00344 80A58F54 012A5821 */ addu $t3, $t1, $t2
/* 00348 80A58F58 016D7821 */ addu $t7, $t3, $t5
/* 0034C 80A58F5C 81F80000 */ lb $t8, 0x0000($t7) ## 00000000
/* 00350 80A58F60 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00354 80A58F64 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00358 80A58F68 A0F80003 */ sb $t8, 0x0003($a3) ## 00000003
/* 0035C 80A58F6C 80791CD0 */ lb $t9, 0x1CD0($v1) ## 00001CD0
/* 00360 80A58F70 02012821 */ addu $a1, $s0, $at
/* 00364 80A58F74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00368 80A58F78 07230006 */ bgezl $t9, .L80A58F94
/* 0036C 80A58F7C C440000C */ lwc1 $f0, 0x000C($v0) ## 0000000C
/* 00370 80A58F80 0C025CA3 */ jal func_8009728C
/* 00374 80A58F84 80E60003 */ lb $a2, 0x0003($a3) ## 00000003
/* 00378 80A58F88 1000001E */ beq $zero, $zero, .L80A59004
/* 0037C 80A58F8C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00380 80A58F90 C440000C */ lwc1 $f0, 0x000C($v0) ## 0000000C
.L80A58F94:
/* 00384 80A58F94 C4480008 */ lwc1 $f8, 0x0008($v0) ## 00000008
/* 00388 80A58F98 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 0038C 80A58F9C 44813000 */ mtc1 $at, $f6 ## $f6 = 255.00
/* 00390 80A58FA0 46004281 */ sub.s $f10, $f8, $f0
/* 00394 80A58FA4 46001481 */ sub.s $f18, $f2, $f0
/* 00398 80A58FA8 460A3403 */ div.s $f16, $f6, $f10
/* 0039C 80A58FAC 46109102 */ mul.s $f4, $f18, $f16
/* 003A0 80A58FB0 4600220D */ trunc.w.s $f8, $f4
/* 003A4 80A58FB4 440A4000 */ mfc1 $t2, $f8
/* 003A8 80A58FB8 00000000 */ nop
/* 003AC 80A58FBC A4EA014C */ sh $t2, 0x014C($a3) ## 0000014C
/* 003B0 80A58FC0 84E4014C */ lh $a0, 0x014C($a3) ## 0000014C
/* 003B4 80A58FC4 04810003 */ bgez $a0, .L80A58FD4
/* 003B8 80A58FC8 28810100 */ slti $at, $a0, 0x0100
/* 003BC 80A58FCC 10000006 */ beq $zero, $zero, .L80A58FE8
/* 003C0 80A58FD0 A4E0014C */ sh $zero, 0x014C($a3) ## 0000014C
.L80A58FD4:
/* 003C4 80A58FD4 14200003 */ bne $at, $zero, .L80A58FE4
/* 003C8 80A58FD8 00804025 */ or $t0, $a0, $zero ## $t0 = 00000000
/* 003CC 80A58FDC 10000001 */ beq $zero, $zero, .L80A58FE4
/* 003D0 80A58FE0 240800FF */ addiu $t0, $zero, 0x00FF ## $t0 = 000000FF
.L80A58FE4:
/* 003D4 80A58FE4 A4E8014C */ sh $t0, 0x014C($a3) ## 0000014C
.L80A58FE8:
/* 003D8 80A58FE8 80EC0003 */ lb $t4, 0x0003($a3) ## 00000003
/* 003DC 80A58FEC 806E1CBC */ lb $t6, 0x1CBC($v1) ## 00001CBC
/* 003E0 80A58FF0 518E0004 */ beql $t4, $t6, .L80A59004
/* 003E4 80A58FF4 8FBF001C */ lw $ra, 0x001C($sp)
/* 003E8 80A58FF8 0C296346 */ jal func_80A58D18
/* 003EC 80A58FFC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003F0 80A59000 8FBF001C */ lw $ra, 0x001C($sp)
.L80A59004:
/* 003F4 80A59004 8FB00018 */ lw $s0, 0x0018($sp)
/* 003F8 80A59008 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 003FC 80A5900C 03E00008 */ jr $ra
/* 00400 80A59010 00000000 */ nop

View file

@ -36,7 +36,7 @@ glabel func_80A59014
/* 0047C 80A5908C 44811000 */ mtc1 $at, $f2 ## $f2 = 200.00
/* 00480 80A59090 00000000 */ nop
.L80A59094:
/* 00484 80A59094 0C296306 */ jal func_80A58C18
/* 00484 80A59094 0C296306 */ jal EnHoll_IsKokiriSetup8
/* 00488 80A59098 E7A2003C */ swc1 $f2, 0x003C($sp)
/* 0048C 80A5909C 14400022 */ bne $v0, $zero, .L80A59128
/* 00490 80A590A0 C7A2003C */ lwc1 $f2, 0x003C($sp)
@ -107,9 +107,9 @@ glabel func_80A59014
/* 00588 80A59198 00E03025 */ or $a2, $a3, $zero ## $a2 = 00000000
/* 0058C 80A5919C 10400004 */ beq $v0, $zero, .L80A591B0
/* 00590 80A591A0 8FA40058 */ lw $a0, 0x0058($sp)
/* 00594 80A591A4 3C0580A6 */ lui $a1, %hi(func_80A59828) ## $a1 = 80A60000
/* 00598 80A591A8 0C296304 */ jal func_80A58C10
/* 0059C 80A591AC 24A59828 */ addiu $a1, $a1, %lo(func_80A59828) ## $a1 = 80A59828
/* 00594 80A591A4 3C0580A6 */ lui $a1, %hi(EnHoll_NextAction) ## $a1 = 80A60000
/* 00598 80A591A8 0C296304 */ jal EnHoll_SetupAction
/* 0059C 80A591AC 24A59828 */ addiu $a1, $a1, %lo(EnHoll_NextAction) ## $a1 = 80A59828
.L80A591B0:
/* 005A0 80A591B0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A591B4:

View file

@ -1,136 +0,0 @@
.late_rodata
glabel D_80A59B20
.word 0x44174000
.text
glabel func_80A591C0
/* 005B0 80A591C0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 005B4 80A591C4 AFBF0024 */ sw $ra, 0x0024($sp)
/* 005B8 80A591C8 AFB10020 */ sw $s1, 0x0020($sp)
/* 005BC 80A591CC AFB0001C */ sw $s0, 0x001C($sp)
/* 005C0 80A591D0 3C0143FA */ lui $at, 0x43FA ## $at = 43FA0000
/* 005C4 80A591D4 44813000 */ mtc1 $at, $f6 ## $f6 = 500.00
/* 005C8 80A591D8 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 005CC 80A591DC C4800094 */ lwc1 $f0, 0x0094($a0) ## 00000094
/* 005D0 80A591E0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005D4 80A591E4 4606203C */ c.lt.s $f4, $f6
/* 005D8 80A591E8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 005DC 80A591EC 8CA81C44 */ lw $t0, 0x1C44($a1) ## 00001C44
/* 005E0 80A591F0 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 005E4 80A591F4 4500005F */ bc1f .L80A59374
/* 005E8 80A591F8 46000005 */ abs.s $f0, $f0
/* 005EC 80A591FC 44814000 */ mtc1 $at, $f8 ## $f8 = 700.00
/* 005F0 80A59200 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000
/* 005F4 80A59204 4608003C */ c.lt.s $f0, $f8
/* 005F8 80A59208 00000000 */ nop
/* 005FC 80A5920C 4502005A */ bc1fl .L80A59378
/* 00600 80A59210 920B014F */ lbu $t3, 0x014F($s0) ## 0000014F
/* 00604 80A59214 44816000 */ mtc1 $at, $f12 ## $f12 = 95.00
/* 00608 80A59218 9483001C */ lhu $v1, 0x001C($a0) ## 0000001C
/* 0060C 80A5921C 3C0180A6 */ lui $at, %hi(D_80A59B20) ## $at = 80A60000
/* 00610 80A59220 460C003C */ c.lt.s $f0, $f12
/* 00614 80A59224 00031A83 */ sra $v1, $v1, 10
/* 00618 80A59228 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 0061C 80A5922C 00036900 */ sll $t5, $v1, 4
/* 00620 80A59230 45000005 */ bc1f .L80A59248
/* 00624 80A59234 25040024 */ addiu $a0, $t0, 0x0024 ## $a0 = 00000024
/* 00628 80A59238 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0062C 80A5923C 00250821 */ addu $at, $at, $a1
/* 00630 80A59240 1000001C */ beq $zero, $zero, .L80A592B4
/* 00634 80A59244 A42E1E18 */ sh $t6, 0x1E18($at) ## 00011E18
.L80A59248:
/* 00638 80A59248 C4229B20 */ lwc1 $f2, %lo(D_80A59B20)($at)
/* 0063C 80A5924C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00640 80A59250 00310821 */ addu $at, $at, $s1
/* 00644 80A59254 4600103C */ c.lt.s $f2, $f0
/* 00648 80A59258 00000000 */ nop
/* 0064C 80A5925C 45020004 */ bc1fl .L80A59270
/* 00650 80A59260 46001281 */ sub.s $f10, $f2, $f0
/* 00654 80A59264 10000013 */ beq $zero, $zero, .L80A592B4
/* 00658 80A59268 A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
/* 0065C 80A5926C 46001281 */ sub.s $f10, $f2, $f0
.L80A59270:
/* 00660 80A59270 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00664 80A59274 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 00668 80A59278 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0066C 80A5927C 4600540D */ trunc.w.s $f16, $f10
/* 00670 80A59280 00310821 */ addu $at, $at, $s1
/* 00674 80A59284 44188000 */ mfc1 $t8, $f16
/* 00678 80A59288 00000000 */ nop
/* 0067C 80A5928C 0018CC00 */ sll $t9, $t8, 16
/* 00680 80A59290 00194C03 */ sra $t1, $t9, 16
/* 00684 80A59294 44899000 */ mtc1 $t1, $f18 ## $f18 = 0.00
/* 00688 80A59298 00000000 */ nop
/* 0068C 80A5929C 46809120 */ cvt.s.w $f4, $f18
/* 00690 80A592A0 46062202 */ mul.s $f8, $f4, $f6
/* 00694 80A592A4 4600428D */ trunc.w.s $f10, $f8
/* 00698 80A592A8 440B5000 */ mfc1 $t3, $f10
/* 0069C 80A592AC 00000000 */ nop
/* 006A0 80A592B0 A42B1E18 */ sh $t3, 0x1E18($at) ## 00011E18
.L80A592B4:
/* 006A4 80A592B4 460C003C */ c.lt.s $f0, $f12
/* 006A8 80A592B8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 006AC 80A592BC 02211021 */ addu $v0, $s1, $at
/* 006B0 80A592C0 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 006B4 80A592C4 45020033 */ bc1fl .L80A59394
/* 006B8 80A592C8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 006BC 80A592CC 8C4C1D38 */ lw $t4, 0x1D38($v0) ## 00001D38
/* 006C0 80A592D0 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 006C4 80A592D4 44818000 */ mtc1 $at, $f16 ## $f16 = 10.00
/* 006C8 80A592D8 018D7021 */ addu $t6, $t4, $t5
/* 006CC 80A592DC 81CF0002 */ lb $t7, 0x0002($t6) ## 00000101
/* 006D0 80A592E0 8E050024 */ lw $a1, 0x0024($s0) ## 00000024
/* 006D4 80A592E4 3C074248 */ lui $a3, 0x4248 ## $a3 = 42480000
/* 006D8 80A592E8 A20F0003 */ sb $t7, 0x0003($s0) ## 00000003
/* 006DC 80A592EC AFA80034 */ sw $t0, 0x0034($sp)
/* 006E0 80A592F0 AFA20028 */ sw $v0, 0x0028($sp)
/* 006E4 80A592F4 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
/* 006E8 80A592F8 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 006EC 80A592FC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 006F0 80A59300 44819000 */ mtc1 $at, $f18 ## $f18 = 10.00
/* 006F4 80A59304 8FA40034 */ lw $a0, 0x0034($sp)
/* 006F8 80A59308 8E05002C */ lw $a1, 0x002C($s0) ## 0000002C
/* 006FC 80A5930C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00700 80A59310 3C074248 */ lui $a3, 0x4248 ## $a3 = 42480000
/* 00704 80A59314 E7B20010 */ swc1 $f18, 0x0010($sp)
/* 00708 80A59318 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
/* 0070C 80A5931C 2484002C */ addiu $a0, $a0, 0x002C ## $a0 = 0000002C
/* 00710 80A59320 8FB80028 */ lw $t8, 0x0028($sp)
/* 00714 80A59324 82060003 */ lb $a2, 0x0003($s0) ## 00000003
/* 00718 80A59328 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0071C 80A5932C 83191CBC */ lb $t9, 0x1CBC($t8) ## 00001CBC
/* 00720 80A59330 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00724 80A59334 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00728 80A59338 53260016 */ beql $t9, $a2, .L80A59394
/* 0072C 80A5933C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00730 80A59340 0C025CA3 */ jal func_8009728C
/* 00734 80A59344 02212821 */ addu $a1, $s1, $at
/* 00738 80A59348 10400011 */ beq $v0, $zero, .L80A59390
/* 0073C 80A5934C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00740 80A59350 3C0580A6 */ lui $a1, %hi(func_80A59828) ## $a1 = 80A60000
/* 00744 80A59354 0C296304 */ jal func_80A58C10
/* 00748 80A59358 24A59828 */ addiu $a1, $a1, %lo(func_80A59828) ## $a1 = 80A59828
/* 0074C 80A5935C 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 00750 80A59360 A209014F */ sb $t1, 0x014F($s0) ## 0000014F
/* 00754 80A59364 8FAA0034 */ lw $t2, 0x0034($sp)
/* 00758 80A59368 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 0075C 80A5936C 10000008 */ beq $zero, $zero, .L80A59390
/* 00760 80A59370 E5440068 */ swc1 $f4, 0x0068($t2) ## 00000068
.L80A59374:
/* 00764 80A59374 920B014F */ lbu $t3, 0x014F($s0) ## 0000014F
.L80A59378:
/* 00768 80A59378 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0076C 80A5937C 00310821 */ addu $at, $at, $s1
/* 00770 80A59380 51600004 */ beql $t3, $zero, .L80A59394
/* 00774 80A59384 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00778 80A59388 A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
/* 0077C 80A5938C A200014F */ sb $zero, 0x014F($s0) ## 0000014F
.L80A59390:
/* 00780 80A59390 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A59394:
/* 00784 80A59394 8FB0001C */ lw $s0, 0x001C($sp)
/* 00788 80A59398 8FB10020 */ lw $s1, 0x0020($sp)
/* 0078C 80A5939C 03E00008 */ jr $ra
/* 00790 80A593A0 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,107 +0,0 @@
.late_rodata
glabel D_80A59B24
.float 1.7
.text
glabel func_80A593A4
/* 00794 80A593A4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00798 80A593A8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0079C 80A593AC AFB00018 */ sw $s0, 0x0018($sp)
/* 007A0 80A593B0 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 007A4 80A593B4 44813000 */ mtc1 $at, $f6 ## $f6 = 120.00
/* 007A8 80A593B8 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 007AC 80A593BC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 007B0 80A593C0 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 007B4 80A593C4 4606203C */ c.lt.s $f4, $f6
/* 007B8 80A593C8 00000000 */ nop
/* 007BC 80A593CC 45020049 */ bc1fl .L80A594F4
/* 007C0 80A593D0 90EF014F */ lbu $t7, 0x014F($a3) ## 0000014F
/* 007C4 80A593D4 C4800094 */ lwc1 $f0, 0x0094($a0) ## 00000094
/* 007C8 80A593D8 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 007CC 80A593DC 44811000 */ mtc1 $at, $f2 ## $f2 = 200.00
/* 007D0 80A593E0 46000005 */ abs.s $f0, $f0
/* 007D4 80A593E4 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 007D8 80A593E8 4602003C */ c.lt.s $f0, $f2
/* 007DC 80A593EC 00000000 */ nop
/* 007E0 80A593F0 45020040 */ bc1fl .L80A594F4
/* 007E4 80A593F4 90EF014F */ lbu $t7, 0x014F($a3) ## 0000014F
/* 007E8 80A593F8 44816000 */ mtc1 $at, $f12 ## $f12 = 50.00
/* 007EC 80A593FC 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 007F0 80A59400 3C0180A6 */ lui $at, %hi(D_80A59B24) ## $at = 80A60000
/* 007F4 80A59404 460C003C */ c.lt.s $f0, $f12
/* 007F8 80A59408 00000000 */ nop
/* 007FC 80A5940C 45020006 */ bc1fl .L80A59428
/* 00800 80A59410 46001201 */ sub.s $f8, $f2, $f0
/* 00804 80A59414 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00808 80A59418 00250821 */ addu $at, $at, $a1
/* 0080C 80A5941C 1000000A */ beq $zero, $zero, .L80A59448
/* 00810 80A59420 A42E1E18 */ sh $t6, 0x1E18($at) ## 00011E18
/* 00814 80A59424 46001201 */ sub.s $f8, $f2, $f0
.L80A59428:
/* 00818 80A59428 C42A9B24 */ lwc1 $f10, %lo(D_80A59B24)($at)
/* 0081C 80A5942C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00820 80A59430 00300821 */ addu $at, $at, $s0
/* 00824 80A59434 460A4402 */ mul.s $f16, $f8, $f10
/* 00828 80A59438 4600848D */ trunc.w.s $f18, $f16
/* 0082C 80A5943C 44189000 */ mfc1 $t8, $f18
/* 00830 80A59440 00000000 */ nop
/* 00834 80A59444 A4381E18 */ sh $t8, 0x1E18($at) ## 00011E18
.L80A59448:
/* 00838 80A59448 4600603C */ c.lt.s $f12, $f0
/* 0083C 80A5944C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00840 80A59450 02011021 */ addu $v0, $s0, $at
/* 00844 80A59454 4502002E */ bc1fl .L80A59510
/* 00848 80A59458 8FBF001C */ lw $ra, 0x001C($sp)
/* 0084C 80A5945C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00850 80A59460 C4E60094 */ lwc1 $f6, 0x0094($a3) ## 00000094
/* 00854 80A59464 94E4001C */ lhu $a0, 0x001C($a3) ## 0000001C
/* 00858 80A59468 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0085C 80A5946C 4606203C */ c.lt.s $f4, $f6
/* 00860 80A59470 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00864 80A59474 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00868 80A59478 02012821 */ addu $a1, $s0, $at
/* 0086C 80A5947C 45000003 */ bc1f .L80A5948C
/* 00870 80A59480 00042283 */ sra $a0, $a0, 10
/* 00874 80A59484 10000001 */ beq $zero, $zero, .L80A5948C
/* 00878 80A59488 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80A5948C:
/* 0087C 80A5948C 8C591D38 */ lw $t9, 0x1D38($v0) ## 00001D38
/* 00880 80A59490 00044100 */ sll $t0, $a0, 4
/* 00884 80A59494 00035040 */ sll $t2, $v1, 1
/* 00888 80A59498 03284821 */ addu $t1, $t9, $t0
/* 0088C 80A5949C 012A5821 */ addu $t3, $t1, $t2
/* 00890 80A594A0 816C0000 */ lb $t4, 0x0000($t3) ## 00000000
/* 00894 80A594A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00898 80A594A8 A0EC0003 */ sb $t4, 0x0003($a3) ## 00000003
/* 0089C 80A594AC 804D1CBC */ lb $t5, 0x1CBC($v0) ## 00001CBC
/* 008A0 80A594B0 80E60003 */ lb $a2, 0x0003($a3) ## 00000003
/* 008A4 80A594B4 51A60016 */ beql $t5, $a2, .L80A59510
/* 008A8 80A594B8 8FBF001C */ lw $ra, 0x001C($sp)
/* 008AC 80A594BC 0C025CA3 */ jal func_8009728C
/* 008B0 80A594C0 AFA70020 */ sw $a3, 0x0020($sp)
/* 008B4 80A594C4 10400011 */ beq $v0, $zero, .L80A5950C
/* 008B8 80A594C8 8FA70020 */ lw $a3, 0x0020($sp)
/* 008BC 80A594CC 3C0580A6 */ lui $a1, %hi(func_80A59828) ## $a1 = 80A60000
/* 008C0 80A594D0 24A59828 */ addiu $a1, $a1, %lo(func_80A59828) ## $a1 = 80A59828
/* 008C4 80A594D4 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 008C8 80A594D8 0C296304 */ jal func_80A58C10
/* 008CC 80A594DC AFA70020 */ sw $a3, 0x0020($sp)
/* 008D0 80A594E0 8FA70020 */ lw $a3, 0x0020($sp)
/* 008D4 80A594E4 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 008D8 80A594E8 10000008 */ beq $zero, $zero, .L80A5950C
/* 008DC 80A594EC A0EE014F */ sb $t6, 0x014F($a3) ## 0000014F
/* 008E0 80A594F0 90EF014F */ lbu $t7, 0x014F($a3) ## 0000014F
.L80A594F4:
/* 008E4 80A594F4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 008E8 80A594F8 00300821 */ addu $at, $at, $s0
/* 008EC 80A594FC 51E00004 */ beql $t7, $zero, .L80A59510
/* 008F0 80A59500 8FBF001C */ lw $ra, 0x001C($sp)
/* 008F4 80A59504 A0E0014F */ sb $zero, 0x014F($a3) ## 0000014F
/* 008F8 80A59508 A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
.L80A5950C:
/* 008FC 80A5950C 8FBF001C */ lw $ra, 0x001C($sp)
.L80A59510:
/* 00900 80A59510 8FB00018 */ lw $s0, 0x0018($sp)
/* 00904 80A59514 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00908 80A59518 03E00008 */ jr $ra
/* 0090C 80A5951C 00000000 */ nop

View file

@ -1,66 +0,0 @@
glabel func_80A59520
/* 00910 80A59520 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00914 80A59524 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00918 80A59528 AFA5001C */ sw $a1, 0x001C($sp)
/* 0091C 80A5952C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00920 80A59530 44813000 */ mtc1 $at, $f6 ## $f6 = 120.00
/* 00924 80A59534 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 00928 80A59538 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0092C 80A5953C 4606203C */ c.lt.s $f4, $f6
/* 00930 80A59540 00000000 */ nop
/* 00934 80A59544 45020031 */ bc1fl .L80A5960C
/* 00938 80A59548 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0093C 80A5954C C4820094 */ lwc1 $f2, 0x0094($a0) ## 00000094
/* 00940 80A59550 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00944 80A59554 44814000 */ mtc1 $at, $f8 ## $f8 = 200.00
/* 00948 80A59558 46001005 */ abs.s $f0, $f2
/* 0094C 80A5955C 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00950 80A59560 4608003C */ c.lt.s $f0, $f8
/* 00954 80A59564 00000000 */ nop
/* 00958 80A59568 45020028 */ bc1fl .L80A5960C
/* 0095C 80A5956C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00960 80A59570 44815000 */ mtc1 $at, $f10 ## $f10 = 50.00
/* 00964 80A59574 8FA2001C */ lw $v0, 0x001C($sp)
/* 00968 80A59578 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0096C 80A5957C 4600503C */ c.lt.s $f10, $f0
/* 00970 80A59580 00411021 */ addu $v0, $v0, $at
/* 00974 80A59584 45020021 */ bc1fl .L80A5960C
/* 00978 80A59588 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0097C 80A5958C 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
/* 00980 80A59590 9484001C */ lhu $a0, 0x001C($a0) ## 0000001C
/* 00984 80A59594 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00988 80A59598 4602803C */ c.lt.s $f16, $f2
/* 0098C 80A5959C 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00990 80A595A0 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00994 80A595A4 00042283 */ sra $a0, $a0, 10
/* 00998 80A595A8 45000003 */ bc1f .L80A595B8
/* 0099C 80A595AC 00000000 */ nop
/* 009A0 80A595B0 10000001 */ beq $zero, $zero, .L80A595B8
/* 009A4 80A595B4 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80A595B8:
/* 009A8 80A595B8 8C4E1D38 */ lw $t6, 0x1D38($v0) ## 00001D38
/* 009AC 80A595BC 00047900 */ sll $t7, $a0, 4
/* 009B0 80A595C0 0003C840 */ sll $t9, $v1, 1
/* 009B4 80A595C4 01CFC021 */ addu $t8, $t6, $t7
/* 009B8 80A595C8 03194021 */ addu $t0, $t8, $t9
/* 009BC 80A595CC 81090000 */ lb $t1, 0x0000($t0) ## 00000000
/* 009C0 80A595D0 A0E90003 */ sb $t1, 0x0003($a3) ## 00000003
/* 009C4 80A595D4 804A1CBC */ lb $t2, 0x1CBC($v0) ## 00001CBC
/* 009C8 80A595D8 80E60003 */ lb $a2, 0x0003($a3) ## 00000003
/* 009CC 80A595DC 8FA4001C */ lw $a0, 0x001C($sp)
/* 009D0 80A595E0 11460009 */ beq $t2, $a2, .L80A59608
/* 009D4 80A595E4 00812821 */ addu $a1, $a0, $at
/* 009D8 80A595E8 0C025CA3 */ jal func_8009728C
/* 009DC 80A595EC AFA70018 */ sw $a3, 0x0018($sp)
/* 009E0 80A595F0 10400005 */ beq $v0, $zero, .L80A59608
/* 009E4 80A595F4 8FA70018 */ lw $a3, 0x0018($sp)
/* 009E8 80A595F8 3C0580A6 */ lui $a1, %hi(func_80A59828) ## $a1 = 80A60000
/* 009EC 80A595FC 24A59828 */ addiu $a1, $a1, %lo(func_80A59828) ## $a1 = 80A59828
/* 009F0 80A59600 0C296304 */ jal func_80A58C10
/* 009F4 80A59604 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
.L80A59608:
/* 009F8 80A59608 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A5960C:
/* 009FC 80A5960C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A00 80A59610 03E00008 */ jr $ra
/* 00A04 80A59614 00000000 */ nop

View file

@ -1,146 +0,0 @@
.late_rodata
glabel D_80A59B28
.word 0x40BCCCCD
.text
glabel func_80A59618
/* 00A08 80A59618 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00A0C 80A5961C AFBF001C */ sw $ra, 0x001C($sp)
/* 00A10 80A59620 AFB00018 */ sw $s0, 0x0018($sp)
/* 00A14 80A59624 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 00A18 80A59628 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00A1C 80A5962C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00A20 80A59630 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00A24 80A59634 AFAE0044 */ sw $t6, 0x0044($sp)
/* 00A28 80A59638 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00A2C 80A5963C AFA7004C */ sw $a3, 0x004C($sp)
/* 00A30 80A59640 0C00B2D0 */ jal Flags_GetSwitch
/* 00A34 80A59644 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00A38 80A59648 14400009 */ bne $v0, $zero, .L80A59670
/* 00A3C 80A5964C 8FA7004C */ lw $a3, 0x004C($sp)
/* 00A40 80A59650 920F014F */ lbu $t7, 0x014F($s0) ## 0000014F
/* 00A44 80A59654 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00A48 80A59658 00270821 */ addu $at, $at, $a3
/* 00A4C 80A5965C 51E0006E */ beql $t7, $zero, .L80A59818
/* 00A50 80A59660 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A54 80A59664 A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
/* 00A58 80A59668 1000006A */ beq $zero, $zero, .L80A59814
/* 00A5C 80A5966C A200014F */ sb $zero, 0x014F($s0) ## 0000014F
.L80A59670:
/* 00A60 80A59670 8FA60044 */ lw $a2, 0x0044($sp)
/* 00A64 80A59674 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A68 80A59678 27A50038 */ addiu $a1, $sp, 0x0038 ## $a1 = FFFFFFF0
/* 00A6C 80A5967C AFA7004C */ sw $a3, 0x004C($sp)
/* 00A70 80A59680 0C00B6F4 */ jal func_8002DBD0
/* 00A74 80A59684 24C60024 */ addiu $a2, $a2, 0x0024 ## $a2 = 00000024
/* 00A78 80A59688 3C01C248 */ lui $at, 0xC248 ## $at = C2480000
/* 00A7C 80A5968C C7AC003C */ lwc1 $f12, 0x003C($sp)
/* 00A80 80A59690 44812000 */ mtc1 $at, $f4 ## $f4 = -50.00
/* 00A84 80A59694 C7A00040 */ lwc1 $f0, 0x0040($sp)
/* 00A88 80A59698 8FA7004C */ lw $a3, 0x004C($sp)
/* 00A8C 80A5969C 460C203C */ c.lt.s $f4, $f12
/* 00A90 80A596A0 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00A94 80A596A4 46000085 */ abs.s $f2, $f0
/* 00A98 80A596A8 45020054 */ bc1fl .L80A597FC
/* 00A9C 80A596AC 9219014F */ lbu $t9, 0x014F($s0) ## 0000014F
/* 00AA0 80A596B0 44817000 */ mtc1 $at, $f14 ## $f14 = 200.00
/* 00AA4 80A596B4 C7A00038 */ lwc1 $f0, 0x0038($sp)
/* 00AA8 80A596B8 460E603C */ c.lt.s $f12, $f14
/* 00AAC 80A596BC 00000000 */ nop
/* 00AB0 80A596C0 4502004E */ bc1fl .L80A597FC
/* 00AB4 80A596C4 9219014F */ lbu $t9, 0x014F($s0) ## 0000014F
/* 00AB8 80A596C8 46000005 */ abs.s $f0, $f0
/* 00ABC 80A596CC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00AC0 80A596D0 460E003C */ c.lt.s $f0, $f14
/* 00AC4 80A596D4 00000000 */ nop
/* 00AC8 80A596D8 45020048 */ bc1fl .L80A597FC
/* 00ACC 80A596DC 9219014F */ lbu $t9, 0x014F($s0) ## 0000014F
/* 00AD0 80A596E0 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00AD4 80A596E4 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00AD8 80A596E8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00ADC 80A596EC 4606103C */ c.lt.s $f2, $f6
/* 00AE0 80A596F0 00000000 */ nop
/* 00AE4 80A596F4 45020041 */ bc1fl .L80A597FC
/* 00AE8 80A596F8 9219014F */ lbu $t9, 0x014F($s0) ## 0000014F
/* 00AEC 80A596FC 44810000 */ mtc1 $at, $f0 ## $f0 = 50.00
/* 00AF0 80A59700 A218014F */ sb $t8, 0x014F($s0) ## 0000014F
/* 00AF4 80A59704 3C0180A6 */ lui $at, %hi(D_80A59B28) ## $at = 80A60000
/* 00AF8 80A59708 46001201 */ sub.s $f8, $f2, $f0
/* 00AFC 80A5970C C42A9B28 */ lwc1 $f10, %lo(D_80A59B28)($at)
/* 00B00 80A59710 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
/* 00B04 80A59714 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B08 80A59718 460A4402 */ mul.s $f16, $f8, $f10
/* 00B0C 80A5971C 9604001C */ lhu $a0, 0x001C($s0) ## 0000001C
/* 00B10 80A59720 00270821 */ addu $at, $at, $a3
/* 00B14 80A59724 00042283 */ sra $a0, $a0, 10
/* 00B18 80A59728 4600848D */ trunc.w.s $f18, $f16
/* 00B1C 80A5972C 44089000 */ mfc1 $t0, $f18
/* 00B20 80A59730 00000000 */ nop
/* 00B24 80A59734 00A84823 */ subu $t1, $a1, $t0
/* 00B28 80A59738 A4291E18 */ sh $t1, 0x1E18($at) ## 00011E18
/* 00B2C 80A5973C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B30 80A59740 00E11821 */ addu $v1, $a3, $at
/* 00B34 80A59744 84621E18 */ lh $v0, 0x1E18($v1) ## 00001E18
/* 00B38 80A59748 28410100 */ slti $at, $v0, 0x0100
/* 00B3C 80A5974C 14200004 */ bne $at, $zero, .L80A59760
/* 00B40 80A59750 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B44 80A59754 00270821 */ addu $at, $at, $a3
/* 00B48 80A59758 10000005 */ beq $zero, $zero, .L80A59770
/* 00B4C 80A5975C A4251E18 */ sh $a1, 0x1E18($at) ## 00011E18
.L80A59760:
/* 00B50 80A59760 04410003 */ bgez $v0, .L80A59770
/* 00B54 80A59764 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B58 80A59768 00270821 */ addu $at, $at, $a3
/* 00B5C 80A5976C A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
.L80A59770:
/* 00B60 80A59770 4600103C */ c.lt.s $f2, $f0
/* 00B64 80A59774 C7A40040 */ lwc1 $f4, 0x0040($sp)
/* 00B68 80A59778 45020027 */ bc1fl .L80A59818
/* 00B6C 80A5977C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00B70 80A59780 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 00B74 80A59784 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B78 80A59788 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00B7C 80A5978C 4606203C */ c.lt.s $f4, $f6
/* 00B80 80A59790 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00B84 80A59794 00E12821 */ addu $a1, $a3, $at
/* 00B88 80A59798 45000003 */ bc1f .L80A597A8
/* 00B8C 80A5979C 00000000 */ nop
/* 00B90 80A597A0 10000001 */ beq $zero, $zero, .L80A597A8
/* 00B94 80A597A4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A597A8:
/* 00B98 80A597A8 8C6A1D38 */ lw $t2, 0x1D38($v1) ## 00001D38
/* 00B9C 80A597AC 00045900 */ sll $t3, $a0, 4
/* 00BA0 80A597B0 00026840 */ sll $t5, $v0, 1
/* 00BA4 80A597B4 014B6021 */ addu $t4, $t2, $t3
/* 00BA8 80A597B8 018D7021 */ addu $t6, $t4, $t5
/* 00BAC 80A597BC 81CF0000 */ lb $t7, 0x0000($t6) ## 00000000
/* 00BB0 80A597C0 A20F0003 */ sb $t7, 0x0003($s0) ## 00000003
/* 00BB4 80A597C4 80781CBC */ lb $t8, 0x1CBC($v1) ## 00001CBC
/* 00BB8 80A597C8 82060003 */ lb $a2, 0x0003($s0) ## 00000003
/* 00BBC 80A597CC 53060012 */ beql $t8, $a2, .L80A59818
/* 00BC0 80A597D0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00BC4 80A597D4 0C025CA3 */ jal func_8009728C
/* 00BC8 80A597D8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00BCC 80A597DC 1040000D */ beq $v0, $zero, .L80A59814
/* 00BD0 80A597E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BD4 80A597E4 3C0580A6 */ lui $a1, %hi(func_80A59828) ## $a1 = 80A60000
/* 00BD8 80A597E8 0C296304 */ jal func_80A58C10
/* 00BDC 80A597EC 24A59828 */ addiu $a1, $a1, %lo(func_80A59828) ## $a1 = 80A59828
/* 00BE0 80A597F0 10000009 */ beq $zero, $zero, .L80A59818
/* 00BE4 80A597F4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00BE8 80A597F8 9219014F */ lbu $t9, 0x014F($s0) ## 0000014F
.L80A597FC:
/* 00BEC 80A597FC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BF0 80A59800 00270821 */ addu $at, $at, $a3
/* 00BF4 80A59804 53200004 */ beql $t9, $zero, .L80A59818
/* 00BF8 80A59808 8FBF001C */ lw $ra, 0x001C($sp)
/* 00BFC 80A5980C A4201E18 */ sh $zero, 0x1E18($at) ## 00011E18
/* 00C00 80A59810 A200014F */ sb $zero, 0x014F($s0) ## 0000014F
.L80A59814:
/* 00C04 80A59814 8FBF001C */ lw $ra, 0x001C($sp)
.L80A59818:
/* 00C08 80A59818 8FB00018 */ lw $s0, 0x0018($sp)
/* 00C0C 80A5981C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00C10 80A59820 03E00008 */ jr $ra
/* 00C14 80A59824 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_80A59828
/* 00C18 80A59828 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00C1C 80A5982C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C20 80A59830 AFA40020 */ sw $a0, 0x0020($sp)
/* 00C24 80A59834 0C296306 */ jal func_80A58C18
/* 00C28 80A59838 AFA50024 */ sw $a1, 0x0024($sp)
/* 00C2C 80A5983C 14400013 */ bne $v0, $zero, .L80A5988C
/* 00C30 80A59840 8FA60024 */ lw $a2, 0x0024($sp)
/* 00C34 80A59844 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00C38 80A59848 00C11021 */ addu $v0, $a2, $at
/* 00C3C 80A5984C 804E1CED */ lb $t6, 0x1CED($v0) ## 00001CED
/* 00C40 80A59850 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00C44 80A59854 34211CBC */ ori $at, $at, 0x1CBC ## $at = 00011CBC
/* 00C48 80A59858 15C0000C */ bne $t6, $zero, .L80A5988C
/* 00C4C 80A5985C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00C50 80A59860 00C12821 */ addu $a1, $a2, $at
/* 00C54 80A59864 0C025D4D */ jal func_80097534
/* 00C58 80A59868 AFA2001C */ sw $v0, 0x001C($sp)
/* 00C5C 80A5986C 8FA2001C */ lw $v0, 0x001C($sp)
/* 00C60 80A59870 8FB80020 */ lw $t8, 0x0020($sp)
/* 00C64 80A59874 844F1E18 */ lh $t7, 0x1E18($v0) ## 00001E18
/* 00C68 80A59878 15E00002 */ bne $t7, $zero, .L80A59884
/* 00C6C 80A5987C 00000000 */ nop
/* 00C70 80A59880 A300014F */ sb $zero, 0x014F($t8) ## 0000014F
.L80A59884:
/* 00C74 80A59884 0C296312 */ jal func_80A58C48
/* 00C78 80A59888 8FA40020 */ lw $a0, 0x0020($sp)
.L80A5988C:
/* 00C7C 80A5988C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C80 80A59890 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00C84 80A59894 03E00008 */ jr $ra
/* 00C88 80A59898 00000000 */ nop

View file

@ -1,36 +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 En_Holl_InitVars
.word 0x00230A00, 0x00000010, 0x00010000, 0x00000154
.word EnHoll_Init
.word EnHoll_Destroy
.word EnHoll_Update
.word EnHoll_Draw
glabel D_80A59A40
.word func_80A58DD4
.word func_80A591C0
.word func_80A59520
.word func_80A59618
.word func_80A59014
.word func_80A593A4
.word func_80A59014
glabel D_80A59A5C
.word 0xB0F40FA0, 0xB0F80190, 0x30FC0190
glabel D_80A59A68
.word 0x43480000, 0x43160000, 0x42C80000, 0x42480000, 0x42C80000, 0x42960000, 0x42480000, 0x41C80000
glabel D_80A59A88
.word 0x55F04E20, 0x00000000, 0x08000800, 0xFFFFFFFF, 0xAA104E20, 0x00000000, 0x00000800, 0xFFFFFFFF, 0xAA10B1E0, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x55F0B1E0, 0x00000000, 0x08000000, 0xFFFFFFFF
glabel D_80A59AC8
.word 0xD7000000, 0xFFFFFFFF, 0xFCFFFFFF, 0xFFFDF638, 0x01004008
.word D_80A59A88
.word 0x06000204, 0x00000406, 0xDF000000, 0x00000000

5
spec
View file

@ -2505,8 +2505,11 @@ endseg
beginseg
name "ovl_En_Holl"
include "build/src/overlays/actors/ovl_En_Holl/z_en_holl.o"
include "build/data/overlays/actors/z_en_holl.data.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o"
#else
include "build/data/overlays/actors/z_en_holl.reloc.o"
#endif
endseg
beginseg

View file

@ -4,12 +4,27 @@
#define THIS ((EnHoll*)thisx)
// Horizontal Plane parameters
#define PLANE_Y_MIN -50.0f
#define PLANE_Y_MAX 200.0f
#define PLANE_HALFWIDTH 100.0f
#define PLANE_HALFWIDTH_2 200.0f
void EnHoll_Init(Actor* thisx, GlobalContext* globalCtx);
void EnHoll_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnHoll_Update(Actor* thisx, GlobalContext* globalCtx);
void EnHoll_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnHoll_NextAction(EnHoll* this, GlobalContext* globalCtx);
void func_80A58DD4(EnHoll* this, GlobalContext* globalCtx);
void func_80A59014(EnHoll* this, GlobalContext* globalCtx);
void func_80A591C0(EnHoll* this, GlobalContext* globalCtx);
void func_80A593A4(EnHoll* this, GlobalContext* globalCtx);
void func_80A59520(EnHoll* this, GlobalContext* globalCtx);
void func_80A59618(EnHoll* this, GlobalContext* globalCtx);
const ActorInit En_Holl_InitVars = {
ACTOR_EN_HOLL,
ACTORTYPE_DOOR,
@ -21,33 +36,338 @@ const ActorInit En_Holl_InitVars = {
(ActorFunc)EnHoll_Update,
(ActorFunc)EnHoll_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A58C10.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A58C18.s")
static EnHollActionFunc sActionFuncs[] = {
func_80A58DD4, func_80A591C0, func_80A59520, func_80A59618, func_80A59014, func_80A593A4, func_80A59014,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A58C48.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 400, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/EnHoll_Init.s")
/**
* These are all absolute distances in the relative z direction. That is, moving
* towards or away from the "face" of the loading plane regardless of orientation.
* Moving within these distances of the load plane have the following effects:
* [0] : Load the room on this side of the loading plane if not already loaded
* [1] : Load the room on the other side of the loading plane
* [2] : Fade Region (opaque -> transparent if approaching, transparent -> opaque if receding)
* [3] : Transparent Region
*
* When traversing a loading plane of this kind, it attempts to:
* Load Current Room (fails as it is already loaded)
* Load Next Room
* Load Previous Room
* Load Next Room
*
* @bug The striped nature of loading planes can cause some actors to unload due to
* conflicting Object Lists between the two rooms
*
* @bug If you can get around to the other side of the loading plane without triggering it,
* you can load the room on the other side multiple times
*/
static f32 sHorizTriggerDists[2][4] = {
{ 200.0f, 150.0f, 100.0f, 50.0f },
{ 100.0f, 75.0f, 50.0f, 25.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/EnHoll_Destroy.s")
static Vtx sVertices[] = {
VTX(0x55F0, 0x4E20, 0x0000, 0x0800, 0x0800, 255, 255, 255, 255),
VTX(0xAA10, 0x4E20, 0x0000, 0x0000, 0x0800, 255, 255, 255, 255),
VTX(0xAA10, 0xB1E0, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255),
VTX(0x55F0, 0xB1E0, 0x0000, 0x0800, 0x0000, 255, 255, 255, 255),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A58D18.s")
static Gfx sPlaneDlist[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PASS2),
gsSPVertex(sVertices, 4, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A58DD4.s")
void EnHoll_SetupAction(EnHoll* this, EnHollActionFunc func) {
this->actionFunc = func;
}
s32 EnHoll_IsKokiriSetup8() {
return gSaveContext.entranceIndex == 0x00EE && gSaveContext.sceneSetupIndex == 8;
}
void EnHoll_ChooseAction(EnHoll* this) {
s32 action;
action = (this->actor.params >> 6) & 7;
EnHoll_SetupAction(this, sActionFuncs[action]);
if (action != 0) {
this->actor.draw = NULL;
} else {
this->planeAlpha = 255;
}
}
void EnHoll_Init(Actor* thisx, GlobalContext* globalCtx) {
EnHoll* this = THIS;
Actor_ProcessInitChain(&this->actor, sInitChain);
EnHoll_ChooseAction(this);
this->unk_14F = 0;
}
void EnHoll_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 transitionActorIdx = (u16)thisx->params >> 0xA;
TransitionActorEntry* transitionEntry = &globalCtx->transitionActorList[transitionActorIdx];
transitionEntry->id = -transitionEntry->id;
}
void EnHoll_SwapRooms(GlobalContext* globalCtx) {
Room tempRoom;
RoomContext* roomCtx = &globalCtx->roomCtx;
tempRoom = roomCtx->curRoom;
roomCtx->curRoom = roomCtx->prevRoom;
roomCtx->prevRoom = tempRoom;
globalCtx->roomCtx.unk_30 ^= 1;
}
// Horizontal Planes
void func_80A58DD4(EnHoll* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 phi_t0 = ((globalCtx->sceneNum == SCENE_JYASINZOU) ? 1 : 0) & 0xFFFFFFFF;
Vec3f vec;
f32 absZ;
s32 transitionActorIdx;
func_8002DBD0(&this->actor, &vec, &player->actor.posRot.pos);
this->side = (vec.z < 0.0f) ? 0 : 1;
absZ = fabsf(vec.z);
if (vec.y > PLANE_Y_MIN && vec.y < PLANE_Y_MAX && fabsf(vec.x) < PLANE_HALFWIDTH &&
absZ < sHorizTriggerDists[phi_t0][0]) {
transitionActorIdx = (u16)this->actor.params >> 0xA;
if (absZ > sHorizTriggerDists[phi_t0][1]) {
if (globalCtx->roomCtx.prevRoom.num >= 0 && globalCtx->roomCtx.status == 0) {
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[this->side].room;
EnHoll_SwapRooms(globalCtx);
func_80097534(globalCtx, &globalCtx->roomCtx);
}
} else {
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[this->side ^ 1].room;
if (globalCtx->roomCtx.prevRoom.num < 0) {
func_8009728C(globalCtx, &globalCtx->roomCtx, this->actor.room);
} else {
this->planeAlpha = (255.0f / (sHorizTriggerDists[phi_t0][2] - sHorizTriggerDists[phi_t0][3])) *
(absZ - sHorizTriggerDists[phi_t0][3]);
this->planeAlpha = CLAMP(this->planeAlpha, 0, 255);
if (globalCtx->roomCtx.curRoom.num != this->actor.room) {
EnHoll_SwapRooms(globalCtx);
}
}
}
}
}
// Horizontal Planes
#ifdef NON_MATCHING
// Small regalloc near the end
void func_80A59014(EnHoll* this, GlobalContext* globalCtx) {
s32 pad;
s32 pad1;
Vec3f vec;
TransitionActorEntry* transitionEntry;
f32 planeHalfWidth;
s32 pad2;
s32 useViewEye = D_8011D394 != 0 || globalCtx->csCtx.state != 0;
s32 transitionActorIdx;
f32 absZ;
s32 side;
Player* player = PLAYER;
func_8002DBD0(&this->actor, &vec, (useViewEye) ? &globalCtx->view.eye : &player->actor.posRot.pos);
planeHalfWidth = (((this->actor.params >> 6) & 7) == 6) ? PLANE_HALFWIDTH : PLANE_HALFWIDTH_2;
if (EnHoll_IsKokiriSetup8() || (vec.y > PLANE_Y_MIN && vec.y < PLANE_Y_MAX && fabsf(vec.x) < planeHalfWidth &&
(absZ = fabsf(vec.z), (absZ < 100.0f && absZ > 50.0f)))) {
transitionActorIdx = (u16)this->actor.params >> 0xA;
side = (vec.z < 0.0f) ? 0 : 1;
transitionEntry = &globalCtx->transitionActorList[transitionActorIdx];
this->actor.room = transitionEntry->sides[side].room;
if (this->actor.room != globalCtx->roomCtx.curRoom.num &&
func_8009728C(globalCtx, &globalCtx->roomCtx, (u32)this->actor.room) != 0) {
EnHoll_SetupAction(this, EnHoll_NextAction);
}
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59014.s")
#endif
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A591C0.s")
// Vertical Planes
void func_80A591C0(EnHoll* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
f32 absY = fabsf(this->actor.yDistFromLink);
s32 transitionActorIdx;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A593A4.s")
if (this->actor.xzDistFromLink < 500.0f && absY < 700.0f) {
transitionActorIdx = (u16)this->actor.params >> 0xA;
if (absY < 95.0f) {
globalCtx->unk_11E18 = 0xFF;
} else if (absY > 605.0f) {
globalCtx->unk_11E18 = 0;
} else {
globalCtx->unk_11E18 = (s16)(605.0f - absY) * 0.5f;
}
if (absY < 95.0f) {
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[1].room;
Math_SmoothScaleMaxMinF(&player->actor.posRot.pos.x, this->actor.posRot.pos.x, 1.0f, 50.0f, 10.0f);
Math_SmoothScaleMaxMinF(&player->actor.posRot.pos.z, this->actor.posRot.pos.z, 1.0f, 50.0f, 10.0f);
if (this->actor.room != globalCtx->roomCtx.curRoom.num &&
func_8009728C(globalCtx, &globalCtx->roomCtx, this->actor.room) != 0) {
EnHoll_SetupAction(this, EnHoll_NextAction);
this->unk_14F = 1;
player->actor.speedXZ = 0.0f;
}
}
} else if (this->unk_14F != 0) {
globalCtx->unk_11E18 = 0;
this->unk_14F = 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59520.s")
// Vertical Planes
void func_80A593A4(EnHoll* this, GlobalContext* globalCtx) {
f32 absY;
s32 side;
s32 transitionActorIdx;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59618.s")
if ((this->actor.xzDistFromLink < 120.0f) && (absY = fabsf(this->actor.yDistFromLink), absY < 200.0f)) {
if (absY < 50.0f) {
globalCtx->unk_11E18 = 0xFF;
} else {
globalCtx->unk_11E18 = (200.0f - absY) * 1.7f;
}
if (absY > 50.0f) {
transitionActorIdx = (u16)this->actor.params >> 0xA;
side = (0.0f < this->actor.yDistFromLink) ? 0 : 1;
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[side].room;
if (this->actor.room != globalCtx->roomCtx.curRoom.num &&
func_8009728C(globalCtx, &globalCtx->roomCtx, this->actor.room) != 0) {
EnHoll_SetupAction(this, EnHoll_NextAction);
this->unk_14F = 1;
}
}
} else if (this->unk_14F != 0) {
this->unk_14F = 0;
globalCtx->unk_11E18 = 0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/func_80A59828.s")
// Vertical Planes
void func_80A59520(EnHoll* this, GlobalContext* globalCtx) {
f32 absY;
s8 side;
s32 transitionActorIdx;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/EnHoll_Update.s")
if (this->actor.xzDistFromLink < 120.0f) {
absY = fabsf(this->actor.yDistFromLink);
if (absY < 200.0f && absY > 50.0f) {
transitionActorIdx = (u16)this->actor.params >> 0xA;
side = (0.0f < this->actor.yDistFromLink) ? 0 : 1;
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[side].room;
if (this->actor.room != globalCtx->roomCtx.curRoom.num &&
func_8009728C(globalCtx, &globalCtx->roomCtx, this->actor.room) != 0) {
EnHoll_SetupAction(this, EnHoll_NextAction);
}
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Holl/EnHoll_Draw.s")
// Horizontal Planes
void func_80A59618(EnHoll* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
Vec3f vec;
f32 absZ;
s32 side;
s32 transitionActorIdx;
if (!Flags_GetSwitch(globalCtx, this->actor.params & 0x3F)) {
if (this->unk_14F != 0) {
globalCtx->unk_11E18 = 0;
this->unk_14F = 0;
}
} else {
func_8002DBD0(&this->actor, &vec, &player->actor.posRot.pos);
absZ = fabsf(vec.z);
if (PLANE_Y_MIN < vec.y && vec.y < PLANE_Y_MAX && fabsf(vec.x) < PLANE_HALFWIDTH_2 && absZ < 100.0f) {
this->unk_14F = 1;
transitionActorIdx = (u16)this->actor.params >> 0xA;
globalCtx->unk_11E18 = 0xFF - (s32)((absZ - 50.0f) * 5.9f);
if (globalCtx->unk_11E18 >= 0x100) {
globalCtx->unk_11E18 = 0xFF;
} else if (globalCtx->unk_11E18 < 0) {
globalCtx->unk_11E18 = 0;
}
if (absZ < 50.0f) {
side = (vec.z < 0.0f) ? 0 : 1;
this->actor.room = globalCtx->transitionActorList[transitionActorIdx].sides[side].room;
if (this->actor.room != globalCtx->roomCtx.curRoom.num &&
func_8009728C(globalCtx, &globalCtx->roomCtx, this->actor.room) != 0) {
EnHoll_SetupAction(this, EnHoll_NextAction);
}
}
} else if (this->unk_14F != 0) {
globalCtx->unk_11E18 = 0;
this->unk_14F = 0;
}
}
}
void EnHoll_NextAction(EnHoll* this, GlobalContext* globalCtx) {
if (!EnHoll_IsKokiriSetup8() && globalCtx->roomCtx.status == 0) {
func_80097534(globalCtx, &globalCtx->roomCtx);
if (globalCtx->unk_11E18 == 0) {
this->unk_14F = 0;
}
EnHoll_ChooseAction(this);
}
}
void EnHoll_Update(Actor* thisx, GlobalContext* globalCtx) {
EnHoll* this = THIS;
this->actionFunc(this, globalCtx);
}
void EnHoll_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnHoll* this = THIS;
Gfx* gfxP;
u32 setupDLIdx;
// Only draw the plane if not invisible
if (this->planeAlpha != 0) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_holl.c", 805);
if (this->planeAlpha == 255) {
gfxP = oGfxCtx->polyOpa.p;
setupDLIdx = 37;
} else {
gfxP = oGfxCtx->polyXlu.p;
setupDLIdx = 0;
}
gfxP = Gfx_CallSetupDL(gfxP, setupDLIdx);
if (this->side == 0) {
Matrix_RotateY(M_PI, MTXMODE_APPLY);
}
gSPMatrix(gfxP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_holl.c", 824),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gfxP++, 0, 0, 0, 0, 0, (u8)this->planeAlpha);
gSPDisplayList(gfxP++, sPlaneDlist);
if (this->planeAlpha == 255) {
oGfxCtx->polyOpa.p = gfxP;
} else {
oGfxCtx->polyXlu.p = gfxP;
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_holl.c", 831);
}
}

View file

@ -6,9 +6,14 @@
struct EnHoll;
typedef void (*EnHollActionFunc)(struct EnHoll*, GlobalContext*);
typedef struct EnHoll {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x8];
/* 0x014C */ s16 planeAlpha;
/* 0x014E */ u8 side;
/* 0x014F */ u8 unk_14F;
/* 0x0150 */ EnHollActionFunc actionFunc;
} EnHoll; // size = 0x0154
extern const ActorInit En_Holl_InitVars;