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

Bg_Hidan_Curtain (#411)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* flame circles

* merge and description

* Update src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c

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

* formatting and other cleanup

* names

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
petrie911 2020-10-04 07:48:48 -05:00 committed by GitHub
parent 3576f4c169
commit a52743e8cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 235 additions and 804 deletions

View file

@ -1,12 +0,0 @@
glabel BgHidanCurtain_Destroy
/* 0026C 8088540C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00270 80885410 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00274 80885414 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00278 80885418 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0027C 8088541C 0C0170EB */ jal Collider_DestroyCylinder
/* 00280 80885420 24C50158 */ addiu $a1, $a2, 0x0158 ## $a1 = 00000158
/* 00284 80885424 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00288 80885428 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0028C 8088542C 03E00008 */ jr $ra
/* 00290 80885430 00000000 */ nop

View file

@ -1,112 +0,0 @@
.rdata
glabel D_80885CCC
.asciz "../z_bg_hidan_curtain.c"
.balign 4
glabel D_80885CE4
.asciz "../z_bg_hidan_curtain.c"
.balign 4
glabel D_80885CFC
.asciz "../z_bg_hidan_curtain.c"
.balign 4
.text
glabel BgHidanCurtain_Draw
/* 0084C 808859EC 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 00850 808859F0 AFB10038 */ sw $s1, 0x0038($sp)
/* 00854 808859F4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00858 808859F8 AFBF003C */ sw $ra, 0x003C($sp)
/* 0085C 808859FC AFB00034 */ sw $s0, 0x0034($sp)
/* 00860 80885A00 AFA40070 */ sw $a0, 0x0070($sp)
/* 00864 80885A04 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00868 80885A08 3C068088 */ lui $a2, %hi(D_80885CCC) ## $a2 = 80880000
/* 0086C 80885A0C 24C65CCC */ addiu $a2, $a2, %lo(D_80885CCC) ## $a2 = 80885CCC
/* 00870 80885A10 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
/* 00874 80885A14 240702AD */ addiu $a3, $zero, 0x02AD ## $a3 = 000002AD
/* 00878 80885A18 0C031AB1 */ jal Graph_OpenDisps
/* 0087C 80885A1C 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00880 80885A20 0C024F61 */ jal func_80093D84
/* 00884 80885A24 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00888 80885A28 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0088C 80885A2C 8FA90070 */ lw $t1, 0x0070($sp)
/* 00890 80885A30 3C0FFA00 */ lui $t7, 0xFA00 ## $t7 = FA000000
/* 00894 80885A34 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00898 80885A38 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 0089C 80885A3C 35EF8080 */ ori $t7, $t7, 0x8080 ## $t7 = FA008080
/* 008A0 80885A40 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 008A4 80885A44 91390153 */ lbu $t9, 0x0153($t1) ## 00000153
/* 008A8 80885A48 3C01FFDC */ lui $at, 0xFFDC ## $at = FFDC0000
/* 008AC 80885A4C 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000
/* 008B0 80885A50 03215025 */ or $t2, $t9, $at ## $t2 = FFDC0000
/* 008B4 80885A54 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 008B8 80885A58 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 008BC 80885A5C 3C0DFF00 */ lui $t5, 0xFF00 ## $t5 = FF000000
/* 008C0 80885A60 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 008C4 80885A64 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 008C8 80885A68 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 008CC 80885A6C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 008D0 80885A70 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 008D4 80885A74 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 008D8 80885A78 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 008DC 80885A7C 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
/* 008E0 80885A80 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 008E4 80885A84 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 008E8 80885A88 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 008EC 80885A8C 85230156 */ lh $v1, 0x0156($t1) ## 00000156
/* 008F0 80885A90 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 008F4 80885A94 240E0040 */ addiu $t6, $zero, 0x0040 ## $t6 = 00000040
/* 008F8 80885A98 00030823 */ subu $at, $zero, $v1
/* 008FC 80885A9C 00015900 */ sll $t3, $at, 4
/* 00900 80885AA0 01615823 */ subu $t3, $t3, $at
/* 00904 80885AA4 316C00FF */ andi $t4, $t3, 0x00FF ## $t4 = 00000008
/* 00908 80885AA8 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 0090C 80885AAC 24190040 */ addiu $t9, $zero, 0x0040 ## $t9 = 00000040
/* 00910 80885AB0 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 00914 80885AB4 AFB80010 */ sw $t8, 0x0010($sp)
/* 00918 80885AB8 AFB90014 */ sw $t9, 0x0014($sp)
/* 0091C 80885ABC AFAA0018 */ sw $t2, 0x0018($sp)
/* 00920 80885AC0 AFAC0020 */ sw $t4, 0x0020($sp)
/* 00924 80885AC4 AFAE0028 */ sw $t6, 0x0028($sp)
/* 00928 80885AC8 AFAD0024 */ sw $t5, 0x0024($sp)
/* 0092C 80885ACC AFA0001C */ sw $zero, 0x001C($sp)
/* 00930 80885AD0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00934 80885AD4 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00938 80885AD8 AFA2004C */ sw $v0, 0x004C($sp)
/* 0093C 80885ADC 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00940 80885AE0 3066007F */ andi $a2, $v1, 0x007F ## $a2 = 00000000
/* 00944 80885AE4 8FA8004C */ lw $t0, 0x004C($sp)
/* 00948 80885AE8 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 0094C 80885AEC 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 00950 80885AF0 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 00954 80885AF4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00958 80885AF8 3C058088 */ lui $a1, %hi(D_80885CE4) ## $a1 = 80880000
/* 0095C 80885AFC 24A55CE4 */ addiu $a1, $a1, %lo(D_80885CE4) ## $a1 = 80885CE4
/* 00960 80885B00 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00964 80885B04 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 00968 80885B08 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 0096C 80885B0C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00970 80885B10 240602BA */ addiu $a2, $zero, 0x02BA ## $a2 = 000002BA
/* 00974 80885B14 0C0346A2 */ jal Matrix_NewMtx
/* 00978 80885B18 AFA20048 */ sw $v0, 0x0048($sp)
/* 0097C 80885B1C 8FA30048 */ lw $v1, 0x0048($sp)
/* 00980 80885B20 3C0B0402 */ lui $t3, 0x0402 ## $t3 = 04020000
/* 00984 80885B24 256B84B0 */ addiu $t3, $t3, 0x84B0 ## $t3 = 040184B0
/* 00988 80885B28 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0098C 80885B2C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00990 80885B30 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
/* 00994 80885B34 3C068088 */ lui $a2, %hi(D_80885CFC) ## $a2 = 80880000
/* 00998 80885B38 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0099C 80885B3C AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 009A0 80885B40 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 009A4 80885B44 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 009A8 80885B48 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 009AC 80885B4C 24C65CFC */ addiu $a2, $a2, %lo(D_80885CFC) ## $a2 = 80885CFC
/* 009B0 80885B50 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8
/* 009B4 80885B54 0C031AD5 */ jal Graph_CloseDisps
/* 009B8 80885B58 240702BE */ addiu $a3, $zero, 0x02BE ## $a3 = 000002BE
/* 009BC 80885B5C 8FBF003C */ lw $ra, 0x003C($sp)
/* 009C0 80885B60 8FB00034 */ lw $s0, 0x0034($sp)
/* 009C4 80885B64 8FB10038 */ lw $s1, 0x0038($sp)
/* 009C8 80885B68 03E00008 */ jr $ra
/* 009CC 80885B6C 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000

View file

@ -1,206 +0,0 @@
.rdata
glabel D_80885BF0
.asciz "Curtain (arg_data 0x%04x)\n"
.balign 4
glabel D_80885C0C
.asciz "Error : object (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80885C50
.asciz "../z_bg_hidan_curtain.c"
.balign 4
glabel D_80885C68
.asciz "Warning : object (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80885CB4
.asciz "../z_bg_hidan_curtain.c"
.balign 4
.text
glabel BgHidanCurtain_Init
/* 00000 808851A0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 808851A4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00008 808851A8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0000C 808851AC AFBF001C */ sw $ra, 0x001C($sp)
/* 00010 808851B0 AFA50034 */ sw $a1, 0x0034($sp)
/* 00014 808851B4 3C048088 */ lui $a0, %hi(D_80885BF0) ## $a0 = 80880000
/* 00018 808851B8 24845BF0 */ addiu $a0, $a0, %lo(D_80885BF0) ## $a0 = 80885BF0
/* 0001C 808851BC 0C00084C */ jal osSyncPrintf
/* 00020 808851C0 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00024 808851C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00028 808851C8 0C00B56E */ jal Actor_SetHeight
/* 0002C 808851CC 3C0541A0 */ lui $a1, 0x41A0 ## $a1 = 41A00000
/* 00030 808851D0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00034 808851D4 000E7B03 */ sra $t7, $t6, 12
/* 00038 808851D8 31F8000F */ andi $t8, $t7, 0x000F ## $t8 = 00000000
/* 0003C 808851DC 330200FF */ andi $v0, $t8, 0x00FF ## $v0 = 00000000
/* 00040 808851E0 28410007 */ slti $at, $v0, 0x0007
/* 00044 808851E4 1420000C */ bne $at, $zero, .L80885218
/* 00048 808851E8 A2180150 */ sb $t8, 0x0150($s0) ## 00000150
/* 0004C 808851EC 3C048088 */ lui $a0, %hi(D_80885C0C) ## $a0 = 80880000
/* 00050 808851F0 3C058088 */ lui $a1, %hi(D_80885C50) ## $a1 = 80880000
/* 00054 808851F4 24A55C50 */ addiu $a1, $a1, %lo(D_80885C50) ## $a1 = 80885C50
/* 00058 808851F8 24845C0C */ addiu $a0, $a0, %lo(D_80885C0C) ## $a0 = 80885C0C
/* 0005C 808851FC 24060160 */ addiu $a2, $zero, 0x0160 ## $a2 = 00000160
/* 00060 80885200 0C00084C */ jal osSyncPrintf
/* 00064 80885204 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
/* 00068 80885208 0C00B55C */ jal Actor_Kill
/* 0006C 8088520C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00070 80885210 1000007A */ beq $zero, $zero, .L808853FC
/* 00074 80885214 8FBF001C */ lw $ra, 0x001C($sp)
.L80885218:
/* 00078 80885218 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0007C 8088521C 10410002 */ beq $v0, $at, .L80885228
/* 00080 80885220 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00084 80885224 14410003 */ bne $v0, $at, .L80885234
.L80885228:
/* 00088 80885228 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 0008C 8088522C 10000002 */ beq $zero, $zero, .L80885238
/* 00090 80885230 A2190152 */ sb $t9, 0x0152($s0) ## 00000152
.L80885234:
/* 00094 80885234 A2000152 */ sb $zero, 0x0152($s0) ## 00000152
.L80885238:
/* 00098 80885238 92080152 */ lbu $t0, 0x0152($s0) ## 00000152
/* 0009C 8088523C 3C0A8088 */ lui $t2, %hi(D_80885BA4) ## $t2 = 80880000
/* 000A0 80885240 254A5BA4 */ addiu $t2, $t2, %lo(D_80885BA4) ## $t2 = 80885BA4
/* 000A4 80885244 00084900 */ sll $t1, $t0, 4
/* 000A8 80885248 012A5821 */ addu $t3, $t1, $t2
/* 000AC 8088524C AFAB0024 */ sw $t3, 0x0024($sp)
/* 000B0 80885250 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 000B4 80885254 860C001C */ lh $t4, 0x001C($s0) ## 0000001C
/* 000B8 80885258 3C048088 */ lui $a0, %hi(D_80885C68) ## $a0 = 80880000
/* 000BC 8088525C 31F8003F */ andi $t8, $t7, 0x003F ## $t8 = 00000000
/* 000C0 80885260 A618001C */ sh $t8, 0x001C($s0) ## 0000001C
/* 000C4 80885264 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
/* 000C8 80885268 000C6983 */ sra $t5, $t4, 6
/* 000CC 8088526C 31AE003F */ andi $t6, $t5, 0x003F ## $t6 = 00000000
/* 000D0 80885270 04E00003 */ bltz $a3, .L80885280
/* 000D4 80885274 A20E0151 */ sb $t6, 0x0151($s0) ## 00000151
/* 000D8 80885278 28E10040 */ slti $at, $a3, 0x0040
/* 000DC 8088527C 14200005 */ bne $at, $zero, .L80885294
.L80885280:
/* 000E0 80885280 3C058088 */ lui $a1, %hi(D_80885CB4) ## $a1 = 80880000
/* 000E4 80885284 24A55CB4 */ addiu $a1, $a1, %lo(D_80885CB4) ## $a1 = 80885CB4
/* 000E8 80885288 24845C68 */ addiu $a0, $a0, %lo(D_80885C68) ## $a0 = 80885C68
/* 000EC 8088528C 0C00084C */ jal osSyncPrintf
/* 000F0 80885290 24060175 */ addiu $a2, $zero, 0x0175 ## $a2 = 00000175
.L80885294:
/* 000F4 80885294 8FB90024 */ lw $t9, 0x0024($sp)
/* 000F8 80885298 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000FC 8088529C 0C00B58B */ jal Actor_SetScale
/* 00100 808852A0 8F250004 */ lw $a1, 0x0004($t9) ## 00000004
/* 00104 808852A4 26050158 */ addiu $a1, $s0, 0x0158 ## $a1 = 00000158
/* 00108 808852A8 AFA50020 */ sw $a1, 0x0020($sp)
/* 0010C 808852AC 0C0170D9 */ jal Collider_InitCylinder
/* 00110 808852B0 8FA40034 */ lw $a0, 0x0034($sp)
/* 00114 808852B4 3C078088 */ lui $a3, %hi(D_80885B70) ## $a3 = 80880000
/* 00118 808852B8 24E75B70 */ addiu $a3, $a3, %lo(D_80885B70) ## $a3 = 80885B70
/* 0011C 808852BC 8FA40034 */ lw $a0, 0x0034($sp)
/* 00120 808852C0 8FA50020 */ lw $a1, 0x0020($sp)
/* 00124 808852C4 0C01712B */ jal Collider_SetCylinder
/* 00128 808852C8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0012C 808852CC C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00130 808852D0 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 00134 808852D4 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00138 808852D8 4600218D */ trunc.w.s $f6, $f4
/* 0013C 808852DC 8FA30024 */ lw $v1, 0x0024($sp)
/* 00140 808852E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00144 808852E4 4600428D */ trunc.w.s $f10, $f8
/* 00148 808852E8 44093000 */ mfc1 $t1, $f6
/* 0014C 808852EC 4600848D */ trunc.w.s $f18, $f16
/* 00150 808852F0 440B5000 */ mfc1 $t3, $f10
/* 00154 808852F4 A609019E */ sh $t1, 0x019E($s0) ## 0000019E
/* 00158 808852F8 440D9000 */ mfc1 $t5, $f18
/* 0015C 808852FC A60B01A0 */ sh $t3, 0x01A0($s0) ## 000001A0
/* 00160 80885300 A60D01A2 */ sh $t5, 0x01A2($s0) ## 000001A2
/* 00164 80885304 846E0000 */ lh $t6, 0x0000($v1) ## 00000000
/* 00168 80885308 A60E0198 */ sh $t6, 0x0198($s0) ## 00000198
/* 0016C 8088530C 846F0002 */ lh $t7, 0x0002($v1) ## 00000002
/* 00170 80885310 A60F019A */ sh $t7, 0x019A($s0) ## 0000019A
/* 00174 80885314 0C0189B7 */ jal Collider_CylinderUpdate
/* 00178 80885318 8FA50020 */ lw $a1, 0x0020($sp)
/* 0017C 8088531C 3C068088 */ lui $a2, %hi(D_80885B9C) ## $a2 = 80880000
/* 00180 80885320 24C65B9C */ addiu $a2, $a2, %lo(D_80885B9C) ## $a2 = 80885B9C
/* 00184 80885324 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 00188 80885328 0C0187B5 */ jal func_80061ED4
/* 0018C 8088532C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00190 80885330 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
/* 00194 80885334 3C198088 */ lui $t9, %hi(func_80885434) ## $t9 = 80880000
/* 00198 80885338 27395434 */ addiu $t9, $t9, %lo(func_80885434) ## $t9 = 80885434
/* 0019C 8088533C 14400006 */ bne $v0, $zero, .L80885358
/* 001A0 80885340 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 001A4 80885344 3C188088 */ lui $t8, %hi(func_80885514) ## $t8 = 80880000
/* 001A8 80885348 27185514 */ addiu $t8, $t8, %lo(func_80885514) ## $t8 = 80885514
/* 001AC 8088534C AE18014C */ sw $t8, 0x014C($s0) ## 0000014C
/* 001B0 80885350 1000000C */ beq $zero, $zero, .L80885384
/* 001B4 80885354 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
.L80885358:
/* 001B8 80885358 10410004 */ beq $v0, $at, .L8088536C
/* 001BC 8088535C AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
/* 001C0 80885360 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 001C4 80885364 54410008 */ bnel $v0, $at, .L80885388
/* 001C8 80885368 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
.L8088536C:
/* 001CC 8088536C 8FA80024 */ lw $t0, 0x0024($sp)
/* 001D0 80885370 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C
/* 001D4 80885374 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
/* 001D8 80885378 C5060008 */ lwc1 $f6, 0x0008($t0) ## 00000008
/* 001DC 8088537C 46062201 */ sub.s $f8, $f4, $f6
/* 001E0 80885380 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
.L80885384:
/* 001E4 80885384 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
.L80885388:
/* 001E8 80885388 14410006 */ bne $v0, $at, .L808853A4
/* 001EC 8088538C 8FA40034 */ lw $a0, 0x0034($sp)
/* 001F0 80885390 0C00B32C */ jal Flags_GetTreasure
/* 001F4 80885394 92050151 */ lbu $a1, 0x0151($s0) ## 00000151
/* 001F8 80885398 1440000B */ bne $v0, $zero, .L808853C8
/* 001FC 8088539C 00000000 */ nop
/* 00200 808853A0 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
.L808853A4:
/* 00204 808853A4 10400003 */ beq $v0, $zero, .L808853B4
/* 00208 808853A8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 0020C 808853AC 14410008 */ bne $v0, $at, .L808853D0
/* 00210 808853B0 00000000 */ nop
.L808853B4:
/* 00214 808853B4 8FA40034 */ lw $a0, 0x0034($sp)
/* 00218 808853B8 0C00B337 */ jal Flags_GetClear
/* 0021C 808853BC 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 00220 808853C0 10400003 */ beq $v0, $zero, .L808853D0
/* 00224 808853C4 00000000 */ nop
.L808853C8:
/* 00228 808853C8 0C00B55C */ jal Actor_Kill
/* 0022C 808853CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L808853D0:
/* 00230 808853D0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00234 808853D4 00000000 */ nop
/* 00238 808853D8 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 0023C 808853DC 44815000 */ mtc1 $at, $f10 ## $f10 = 15.00
/* 00240 808853E0 00000000 */ nop
/* 00244 808853E4 460A0402 */ mul.s $f16, $f0, $f10
/* 00248 808853E8 4600848D */ trunc.w.s $f18, $f16
/* 0024C 808853EC 440A9000 */ mfc1 $t2, $f18
/* 00250 808853F0 00000000 */ nop
/* 00254 808853F4 A60A0156 */ sh $t2, 0x0156($s0) ## 00000156
/* 00258 808853F8 8FBF001C */ lw $ra, 0x001C($sp)
.L808853FC:
/* 0025C 808853FC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00260 80885400 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00264 80885404 03E00008 */ jr $ra
/* 00268 80885408 00000000 */ nop

View file

@ -1,183 +0,0 @@
glabel BgHidanCurtain_Update
/* 005B8 80885758 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 005BC 8088575C AFBF0024 */ sw $ra, 0x0024($sp)
/* 005C0 80885760 AFB10020 */ sw $s1, 0x0020($sp)
/* 005C4 80885764 AFB0001C */ sw $s0, 0x001C($sp)
/* 005C8 80885768 8CB90790 */ lw $t9, 0x0790($a1) ## 00000790
/* 005CC 8088576C 908E0152 */ lbu $t6, 0x0152($a0) ## 00000152
/* 005D0 80885770 3C188088 */ lui $t8, %hi(D_80885BA4) ## $t8 = 80880000
/* 005D4 80885774 87220142 */ lh $v0, 0x0142($t9) ## 00000142
/* 005D8 80885778 27185BA4 */ addiu $t8, $t8, %lo(D_80885BA4) ## $t8 = 80885BA4
/* 005DC 8088577C 24010028 */ addiu $at, $zero, 0x0028 ## $at = 00000028
/* 005E0 80885780 000E7900 */ sll $t7, $t6, 4
/* 005E4 80885784 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005E8 80885788 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 005EC 8088578C 10410004 */ beq $v0, $at, .L808857A0
/* 005F0 80885790 01F81821 */ addu $v1, $t7, $t8
/* 005F4 80885794 24010038 */ addiu $at, $zero, 0x0038 ## $at = 00000038
/* 005F8 80885798 54410006 */ bnel $v0, $at, .L808857B4
/* 005FC 8088579C 92020168 */ lbu $v0, 0x0168($s0) ## 00000168
.L808857A0:
/* 00600 808857A0 92080168 */ lbu $t0, 0x0168($s0) ## 00000168
/* 00604 808857A4 3109FFFD */ andi $t1, $t0, 0xFFFD ## $t1 = 00000000
/* 00608 808857A8 1000008B */ beq $zero, $zero, .L808859D8
/* 0060C 808857AC A2090168 */ sb $t1, 0x0168($s0) ## 00000168
/* 00610 808857B0 92020168 */ lbu $v0, 0x0168($s0) ## 00000168
.L808857B4:
/* 00614 808857B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00618 808857B8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0061C 808857BC 304A0002 */ andi $t2, $v0, 0x0002 ## $t2 = 00000000
/* 00620 808857C0 1140000A */ beq $t2, $zero, .L808857EC
/* 00624 808857C4 304BFFFD */ andi $t3, $v0, 0xFFFD ## $t3 = 00000000
/* 00628 808857C8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0062C 808857CC 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
/* 00630 808857D0 A20B0168 */ sb $t3, 0x0168($s0) ## 00000168
/* 00634 808857D4 8607008A */ lh $a3, 0x008A($s0) ## 0000008A
/* 00638 808857D8 AFA30034 */ sw $v1, 0x0034($sp)
/* 0063C 808857DC 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
/* 00640 808857E0 0C00BDC7 */ jal func_8002F71C
/* 00644 808857E4 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00648 808857E8 8FA30034 */ lw $v1, 0x0034($sp)
.L808857EC:
/* 0064C 808857EC 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
/* 00650 808857F0 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00654 808857F4 10410003 */ beq $v0, $at, .L80885804
/* 00658 808857F8 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 0065C 808857FC 54410009 */ bnel $v0, $at, .L80885824
/* 00660 80885800 AFA30034 */ sw $v1, 0x0034($sp)
.L80885804:
/* 00664 80885804 C600000C */ lwc1 $f0, 0x000C($s0) ## 0000000C
/* 00668 80885808 C4680008 */ lwc1 $f8, 0x0008($v1) ## 00000008
/* 0066C 8088580C C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 00670 80885810 46000180 */ add.s $f6, $f0, $f0
/* 00674 80885814 46083281 */ sub.s $f10, $f6, $f8
/* 00678 80885818 46105481 */ sub.s $f18, $f10, $f16
/* 0067C 8088581C E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
/* 00680 80885820 AFA30034 */ sw $v1, 0x0034($sp)
.L80885824:
/* 00684 80885824 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 00688 80885828 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0068C 8088582C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00690 80885830 0320F809 */ jalr $ra, $t9
/* 00694 80885834 00000000 */ nop
/* 00698 80885838 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
/* 0069C 8088583C 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 006A0 80885840 8FA30034 */ lw $v1, 0x0034($sp)
/* 006A4 80885844 10410003 */ beq $v0, $at, .L80885854
/* 006A8 80885848 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 006AC 8088584C 54410009 */ bnel $v0, $at, .L80885874
/* 006B0 80885850 C612000C */ lwc1 $f18, 0x000C($s0) ## 0000000C
.L80885854:
/* 006B4 80885854 C600000C */ lwc1 $f0, 0x000C($s0) ## 0000000C
/* 006B8 80885858 C4660008 */ lwc1 $f6, 0x0008($v1) ## 00000008
/* 006BC 8088585C C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 006C0 80885860 46000100 */ add.s $f4, $f0, $f0
/* 006C4 80885864 46062201 */ sub.s $f8, $f4, $f6
/* 006C8 80885868 460A4401 */ sub.s $f16, $f8, $f10
/* 006CC 8088586C E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028
/* 006D0 80885870 C612000C */ lwc1 $f18, 0x000C($s0) ## 0000000C
.L80885874:
/* 006D4 80885874 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 006D8 80885878 C4600008 */ lwc1 $f0, 0x0008($v1) ## 00000008
/* 006DC 8088587C 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 006E0 80885880 46049181 */ sub.s $f6, $f18, $f4
/* 006E4 80885884 44815000 */ mtc1 $at, $f10 ## $f10 = 255.00
/* 006E8 80885888 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 006EC 8088588C 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 006F0 80885890 46060201 */ sub.s $f8, $f0, $f6
/* 006F4 80885894 46004083 */ div.s $f2, $f8, $f0
/* 006F8 80885898 46025402 */ mul.s $f16, $f10, $f2
/* 006FC 8088589C 444CF800 */ cfc1 $t4, $31
/* 00700 808858A0 44CDF800 */ ctc1 $t5, $31
/* 00704 808858A4 00000000 */ nop
/* 00708 808858A8 460084A4 */ cvt.w.s $f18, $f16
/* 0070C 808858AC 444DF800 */ cfc1 $t5, $31
/* 00710 808858B0 00000000 */ nop
/* 00714 808858B4 31AD0078 */ andi $t5, $t5, 0x0078 ## $t5 = 00000000
/* 00718 808858B8 51A00013 */ beql $t5, $zero, .L80885908
/* 0071C 808858BC 440D9000 */ mfc1 $t5, $f18
/* 00720 808858C0 44819000 */ mtc1 $at, $f18 ## $f18 = 2147483648.00
/* 00724 808858C4 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 00728 808858C8 46128481 */ sub.s $f18, $f16, $f18
/* 0072C 808858CC 44CDF800 */ ctc1 $t5, $31
/* 00730 808858D0 00000000 */ nop
/* 00734 808858D4 460094A4 */ cvt.w.s $f18, $f18
/* 00738 808858D8 444DF800 */ cfc1 $t5, $31
/* 0073C 808858DC 00000000 */ nop
/* 00740 808858E0 31AD0078 */ andi $t5, $t5, 0x0078 ## $t5 = 00000000
/* 00744 808858E4 15A00005 */ bne $t5, $zero, .L808858FC
/* 00748 808858E8 00000000 */ nop
/* 0074C 808858EC 440D9000 */ mfc1 $t5, $f18
/* 00750 808858F0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00754 808858F4 10000007 */ beq $zero, $zero, .L80885914
/* 00758 808858F8 01A16825 */ or $t5, $t5, $at ## $t5 = 80000000
.L808858FC:
/* 0075C 808858FC 10000005 */ beq $zero, $zero, .L80885914
/* 00760 80885900 240DFFFF */ addiu $t5, $zero, 0xFFFF ## $t5 = FFFFFFFF
/* 00764 80885904 440D9000 */ mfc1 $t5, $f18
.L80885908:
/* 00768 80885908 00000000 */ nop
/* 0076C 8088590C 05A0FFFB */ bltz $t5, .L808858FC
/* 00770 80885910 00000000 */ nop
.L80885914:
/* 00774 80885914 31AE00FF */ andi $t6, $t5, 0x00FF ## $t6 = 000000FF
/* 00778 80885918 44CCF800 */ ctc1 $t4, $31
/* 0077C 8088591C 29C10033 */ slti $at, $t6, 0x0033
/* 00780 80885920 1420001F */ bne $at, $zero, .L808859A0
/* 00784 80885924 A20D0153 */ sb $t5, 0x0153($s0) ## 00000153
/* 00788 80885928 846F0002 */ lh $t7, 0x0002($v1) ## 00000002
/* 0078C 8088592C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00790 80885930 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00794 80885934 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 00798 80885938 02212821 */ addu $a1, $s1, $at
/* 0079C 8088593C 26060158 */ addiu $a2, $s0, 0x0158 ## $a2 = 00000158
/* 007A0 80885940 468021A0 */ cvt.s.w $f6, $f4
/* 007A4 80885944 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 007A8 80885948 46023202 */ mul.s $f8, $f6, $f2
/* 007AC 8088594C 4600428D */ trunc.w.s $f10, $f8
/* 007B0 80885950 44085000 */ mfc1 $t0, $f10
/* 007B4 80885954 00000000 */ nop
/* 007B8 80885958 A608019A */ sh $t0, 0x019A($s0) ## 0000019A
/* 007BC 8088595C AFA60028 */ sw $a2, 0x0028($sp)
/* 007C0 80885960 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 007C4 80885964 AFA5002C */ sw $a1, 0x002C($sp)
/* 007C8 80885968 8FA5002C */ lw $a1, 0x002C($sp)
/* 007CC 8088596C 8FA60028 */ lw $a2, 0x0028($sp)
/* 007D0 80885970 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 007D4 80885974 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 007D8 80885978 3C098016 */ lui $t1, %hi(gSaveContext+0x1360)
/* 007DC 8088597C 8D29F9C0 */ lw $t1, %lo(gSaveContext+0x1360)($t1)
/* 007E0 80885980 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007E4 80885984 29210004 */ slti $at, $t1, 0x0004
/* 007E8 80885988 50200011 */ beql $at, $zero, .L808859D0
/* 007EC 8088598C 860B0156 */ lh $t3, 0x0156($s0) ## 00000156
/* 007F0 80885990 0C00BE5D */ jal func_8002F974
/* 007F4 80885994 240520A3 */ addiu $a1, $zero, 0x20A3 ## $a1 = 000020A3
/* 007F8 80885998 1000000D */ beq $zero, $zero, .L808859D0
/* 007FC 8088599C 860B0156 */ lh $t3, 0x0156($s0) ## 00000156
.L808859A0:
/* 00800 808859A0 920A0150 */ lbu $t2, 0x0150($s0) ## 00000150
/* 00804 808859A4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00808 808859A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0080C 808859AC 55410008 */ bnel $t2, $at, .L808859D0
/* 00810 808859B0 860B0156 */ lh $t3, 0x0156($s0) ## 00000156
/* 00814 808859B4 0C00B32C */ jal Flags_GetTreasure
/* 00818 808859B8 92050151 */ lbu $a1, 0x0151($s0) ## 00000151
/* 0081C 808859BC 50400004 */ beql $v0, $zero, .L808859D0
/* 00820 808859C0 860B0156 */ lh $t3, 0x0156($s0) ## 00000156
/* 00824 808859C4 0C00B55C */ jal Actor_Kill
/* 00828 808859C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0082C 808859CC 860B0156 */ lh $t3, 0x0156($s0) ## 00000156
.L808859D0:
/* 00830 808859D0 25790001 */ addiu $t9, $t3, 0x0001 ## $t9 = 00000001
/* 00834 808859D4 A6190156 */ sh $t9, 0x0156($s0) ## 00000156
.L808859D8:
/* 00838 808859D8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0083C 808859DC 8FB0001C */ lw $s0, 0x001C($sp)
/* 00840 808859E0 8FB10020 */ lw $s1, 0x0020($sp)
/* 00844 808859E4 03E00008 */ jr $ra
/* 00848 808859E8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,50 +0,0 @@
glabel func_80885434
/* 00294 80885434 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00298 80885438 AFB00020 */ sw $s0, 0x0020($sp)
/* 0029C 8088543C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 002A0 80885440 AFBF0024 */ sw $ra, 0x0024($sp)
/* 002A4 80885444 AFA5002C */ sw $a1, 0x002C($sp)
/* 002A8 80885448 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 002AC 8088544C 0C00B2D0 */ jal Flags_GetSwitch
/* 002B0 80885450 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 002B4 80885454 1040001F */ beq $v0, $zero, .L808854D4
/* 002B8 80885458 8FA4002C */ lw $a0, 0x002C($sp)
/* 002BC 8088545C 92020150 */ lbu $v0, 0x0150($s0) ## 00000150
/* 002C0 80885460 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 002C4 80885464 3C0E8088 */ lui $t6, %hi(func_808854E8) ## $t6 = 80880000
/* 002C8 80885468 1441000A */ bne $v0, $at, .L80885494
/* 002CC 8088546C 25CE54E8 */ addiu $t6, $t6, %lo(func_808854E8) ## $t6 = 808854E8
/* 002D0 80885470 AE0E014C */ sw $t6, 0x014C($s0) ## 0000014C
/* 002D4 80885474 AFA00010 */ sw $zero, 0x0010($sp)
/* 002D8 80885478 24050D16 */ addiu $a1, $zero, 0x0D16 ## $a1 = 00000D16
/* 002DC 8088547C 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 002E0 80885480 0C02003E */ jal func_800800F8
/* 002E4 80885484 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 002E8 80885488 240F0032 */ addiu $t7, $zero, 0x0032 ## $t7 = 00000032
/* 002EC 8088548C 10000011 */ beq $zero, $zero, .L808854D4
/* 002F0 80885490 A60F0154 */ sh $t7, 0x0154($s0) ## 00000154
.L80885494:
/* 002F4 80885494 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 002F8 80885498 1441000C */ bne $v0, $at, .L808854CC
/* 002FC 8088549C 3C088088 */ lui $t0, %hi(func_80885604) ## $t0 = 80880000
/* 00300 808854A0 3C188088 */ lui $t8, %hi(func_808854E8) ## $t8 = 80880000
/* 00304 808854A4 271854E8 */ addiu $t8, $t8, %lo(func_808854E8) ## $t8 = 808854E8
/* 00308 808854A8 AE18014C */ sw $t8, 0x014C($s0) ## 0000014C
/* 0030C 808854AC AFA00010 */ sw $zero, 0x0010($sp)
/* 00310 808854B0 24050D20 */ addiu $a1, $zero, 0x0D20 ## $a1 = 00000D20
/* 00314 808854B4 2406003C */ addiu $a2, $zero, 0x003C ## $a2 = 0000003C
/* 00318 808854B8 0C02003E */ jal func_800800F8
/* 0031C 808854BC 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 00320 808854C0 2419001E */ addiu $t9, $zero, 0x001E ## $t9 = 0000001E
/* 00324 808854C4 10000003 */ beq $zero, $zero, .L808854D4
/* 00328 808854C8 A6190154 */ sh $t9, 0x0154($s0) ## 00000154
.L808854CC:
/* 0032C 808854CC 25085604 */ addiu $t0, $t0, %lo(func_80885604) ## $t0 = 00005604
/* 00330 808854D0 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C
.L808854D4:
/* 00334 808854D4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00338 808854D8 8FB00020 */ lw $s0, 0x0020($sp)
/* 0033C 808854DC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00340 808854E0 03E00008 */ jr $ra
/* 00344 808854E4 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_808854E8
/* 00348 808854E8 AFA50004 */ sw $a1, 0x0004($sp)
/* 0034C 808854EC 84830154 */ lh $v1, 0x0154($a0) ## 00000154
/* 00350 808854F0 3C0F8088 */ lui $t7, %hi(func_80885604) ## $t7 = 80880000
/* 00354 808854F4 25EF5604 */ addiu $t7, $t7, %lo(func_80885604) ## $t7 = 80885604
/* 00358 808854F8 2C620001 */ sltiu $v0, $v1, 0x0001
/* 0035C 808854FC 246EFFFF */ addiu $t6, $v1, 0xFFFF ## $t6 = FFFFFFFF
/* 00360 80885500 10400002 */ beq $v0, $zero, .L8088550C
/* 00364 80885504 A48E0154 */ sh $t6, 0x0154($a0) ## 00000154
/* 00368 80885508 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
.L8088550C:
/* 0036C 8088550C 03E00008 */ jr $ra
/* 00370 80885510 00000000 */ nop

View file

@ -1,19 +0,0 @@
glabel func_80885514
/* 00374 80885514 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00378 80885518 AFA40018 */ sw $a0, 0x0018($sp)
/* 0037C 8088551C 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00380 80885520 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00384 80885524 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00388 80885528 0C00B337 */ jal Flags_GetClear
/* 0038C 8088552C 81C50003 */ lb $a1, 0x0003($t6) ## 00000003
/* 00390 80885530 10400004 */ beq $v0, $zero, .L80885544
/* 00394 80885534 8FB80018 */ lw $t8, 0x0018($sp)
/* 00398 80885538 3C0F8088 */ lui $t7, %hi(func_80885604) ## $t7 = 80880000
/* 0039C 8088553C 25EF5604 */ addiu $t7, $t7, %lo(func_80885604) ## $t7 = 80885604
/* 003A0 80885540 AF0F014C */ sw $t7, 0x014C($t8) ## 0000014C
.L80885544:
/* 003A4 80885544 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003A8 80885548 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003AC 8088554C 03E00008 */ jr $ra
/* 003B0 80885550 00000000 */ nop

View file

@ -1,19 +0,0 @@
glabel func_80885554
/* 003B4 80885554 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003B8 80885558 AFA40018 */ sw $a0, 0x0018($sp)
/* 003BC 8088555C 8FAE0018 */ lw $t6, 0x0018($sp)
/* 003C0 80885560 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003C4 80885564 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 003C8 80885568 0C00B2D0 */ jal Flags_GetSwitch
/* 003CC 8088556C 85C5001C */ lh $a1, 0x001C($t6) ## 0000001C
/* 003D0 80885570 14400004 */ bne $v0, $zero, .L80885584
/* 003D4 80885574 8FB80018 */ lw $t8, 0x0018($sp)
/* 003D8 80885578 3C0F8088 */ lui $t7, %hi(func_80885594) ## $t7 = 80880000
/* 003DC 8088557C 25EF5594 */ addiu $t7, $t7, %lo(func_80885594) ## $t7 = 80885594
/* 003E0 80885580 AF0F014C */ sw $t7, 0x014C($t8) ## 0000014C
.L80885584:
/* 003E4 80885584 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003E8 80885588 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003EC 8088558C 03E00008 */ jr $ra
/* 003F0 80885590 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_80885594
/* 003F4 80885594 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003F8 80885598 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003FC 8088559C AFA5001C */ sw $a1, 0x001C($sp)
/* 00400 808855A0 908E0152 */ lbu $t6, 0x0152($a0) ## 00000152
/* 00404 808855A4 3C018088 */ lui $at, %hi(D_80885BB0) ## $at = 80880000
/* 00408 808855A8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 0040C 808855AC 000E7900 */ sll $t7, $t6, 4
/* 00410 808855B0 002F0821 */ addu $at, $at, $t7
/* 00414 808855B4 C4205BB0 */ lwc1 $f0, %lo(D_80885BB0)($at)
/* 00418 808855B8 8CE5000C */ lw $a1, 0x000C($a3) ## 0000000C
/* 0041C 808855BC AFA70018 */ sw $a3, 0x0018($sp)
/* 00420 808855C0 44060000 */ mfc1 $a2, $f0
/* 00424 808855C4 0C01DE80 */ jal Math_ApproxF
/* 00428 808855C8 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 0042C 808855CC 10400009 */ beq $v0, $zero, .L808855F4
/* 00430 808855D0 8FA70018 */ lw $a3, 0x0018($sp)
/* 00434 808855D4 84E5001C */ lh $a1, 0x001C($a3) ## 0000001C
/* 00438 808855D8 AFA70018 */ sw $a3, 0x0018($sp)
/* 0043C 808855DC 0C00B2ED */ jal Flags_UnsetSwitch
/* 00440 808855E0 8FA4001C */ lw $a0, 0x001C($sp)
/* 00444 808855E4 8FA70018 */ lw $a3, 0x0018($sp)
/* 00448 808855E8 3C188088 */ lui $t8, %hi(func_80885434) ## $t8 = 80880000
/* 0044C 808855EC 27185434 */ addiu $t8, $t8, %lo(func_80885434) ## $t8 = 80885434
/* 00450 808855F0 ACF8014C */ sw $t8, 0x014C($a3) ## 0000014C
.L808855F4:
/* 00454 808855F4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00458 808855F8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0045C 808855FC 03E00008 */ jr $ra
/* 00460 80885600 00000000 */ nop

View file

@ -1,72 +0,0 @@
glabel func_80885604
/* 00464 80885604 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00468 80885608 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0046C 8088560C AFA5001C */ sw $a1, 0x001C($sp)
/* 00470 80885610 908E0152 */ lbu $t6, 0x0152($a0) ## 00000152
/* 00474 80885614 3C188088 */ lui $t8, %hi(D_80885BA4) ## $t8 = 80880000
/* 00478 80885618 27185BA4 */ addiu $t8, $t8, %lo(D_80885BA4) ## $t8 = 80885BA4
/* 0047C 8088561C 000E7900 */ sll $t7, $t6, 4
/* 00480 80885620 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00484 80885624 01F81021 */ addu $v0, $t7, $t8
/* 00488 80885628 C4460008 */ lwc1 $f6, 0x0008($v0) ## 00000008
/* 0048C 8088562C C4E4000C */ lwc1 $f4, 0x000C($a3) ## 0000000C
/* 00490 80885630 8C46000C */ lw $a2, 0x000C($v0) ## 0000000C
/* 00494 80885634 AFA70018 */ sw $a3, 0x0018($sp)
/* 00498 80885638 46062201 */ sub.s $f8, $f4, $f6
/* 0049C 8088563C 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 004A0 80885640 44054000 */ mfc1 $a1, $f8
/* 004A4 80885644 0C01DE80 */ jal Math_ApproxF
/* 004A8 80885648 00000000 */ nop
/* 004AC 8088564C 10400025 */ beq $v0, $zero, .L808856E4
/* 004B0 80885650 8FA70018 */ lw $a3, 0x0018($sp)
/* 004B4 80885654 90E20150 */ lbu $v0, 0x0150($a3) ## 00000150
/* 004B8 80885658 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 004BC 8088565C 10400003 */ beq $v0, $zero, .L8088566C
/* 004C0 80885660 00000000 */ nop
/* 004C4 80885664 54410006 */ bnel $v0, $at, .L80885680
/* 004C8 80885668 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
.L8088566C:
/* 004CC 8088566C 0C00B55C */ jal Actor_Kill
/* 004D0 80885670 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 004D4 80885674 1000001C */ beq $zero, $zero, .L808856E8
/* 004D8 80885678 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004DC 8088567C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
.L80885680:
/* 004E0 80885680 14410005 */ bne $v0, $at, .L80885698
/* 004E4 80885684 3C0C8088 */ lui $t4, %hi(func_808856F4) ## $t4 = 80880000
/* 004E8 80885688 3C198088 */ lui $t9, %hi(func_80885554) ## $t9 = 80880000
/* 004EC 8088568C 27395554 */ addiu $t9, $t9, %lo(func_80885554) ## $t9 = 80885554
/* 004F0 80885690 10000014 */ beq $zero, $zero, .L808856E4
/* 004F4 80885694 ACF9014C */ sw $t9, 0x014C($a3) ## 0000014C
.L80885698:
/* 004F8 80885698 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 004FC 8088569C 14410004 */ bne $v0, $at, .L808856B0
/* 00500 808856A0 258C56F4 */ addiu $t4, $t4, %lo(func_808856F4) ## $t4 = 808856F4
/* 00504 808856A4 24080190 */ addiu $t0, $zero, 0x0190 ## $t0 = 00000190
/* 00508 808856A8 1000000D */ beq $zero, $zero, .L808856E0
/* 0050C 808856AC A4E80154 */ sh $t0, 0x0154($a3) ## 00000154
.L808856B0:
/* 00510 808856B0 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00514 808856B4 14410003 */ bne $v0, $at, .L808856C4
/* 00518 808856B8 240900C8 */ addiu $t1, $zero, 0x00C8 ## $t1 = 000000C8
/* 0051C 808856BC 10000008 */ beq $zero, $zero, .L808856E0
/* 00520 808856C0 A4E90154 */ sh $t1, 0x0154($a3) ## 00000154
.L808856C4:
/* 00524 808856C4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00528 808856C8 14410004 */ bne $v0, $at, .L808856DC
/* 0052C 808856CC 240B012C */ addiu $t3, $zero, 0x012C ## $t3 = 0000012C
/* 00530 808856D0 240A00A0 */ addiu $t2, $zero, 0x00A0 ## $t2 = 000000A0
/* 00534 808856D4 10000002 */ beq $zero, $zero, .L808856E0
/* 00538 808856D8 A4EA0154 */ sh $t2, 0x0154($a3) ## 00000154
.L808856DC:
/* 0053C 808856DC A4EB0154 */ sh $t3, 0x0154($a3) ## 00000154
.L808856E0:
/* 00540 808856E0 ACEC014C */ sw $t4, 0x014C($a3) ## 0000014C
.L808856E4:
/* 00544 808856E4 8FBF0014 */ lw $ra, 0x0014($sp)
.L808856E8:
/* 00548 808856E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0054C 808856EC 03E00008 */ jr $ra
/* 00550 808856F0 00000000 */ nop

View file

@ -1,30 +0,0 @@
glabel func_808856F4
/* 00554 808856F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00558 808856F8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0055C 808856FC AFA5001C */ sw $a1, 0x001C($sp)
/* 00560 80885700 84820154 */ lh $v0, 0x0154($a0) ## 00000154
/* 00564 80885704 3C0F8088 */ lui $t7, %hi(func_80885594) ## $t7 = 80880000
/* 00568 80885708 25EF5594 */ addiu $t7, $t7, %lo(func_80885594) ## $t7 = 80885594
/* 0056C 8088570C 10400003 */ beq $v0, $zero, .L8088571C
/* 00570 80885710 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00574 80885714 A48E0154 */ sh $t6, 0x0154($a0) ## 00000154
/* 00578 80885718 84820154 */ lh $v0, 0x0154($a0) ## 00000154
.L8088571C:
/* 0057C 8088571C 54400003 */ bnel $v0, $zero, .L8088572C
/* 00580 80885720 90820150 */ lbu $v0, 0x0150($a0) ## 00000150
/* 00584 80885724 AC8F014C */ sw $t7, 0x014C($a0) ## 0000014C
/* 00588 80885728 90820150 */ lbu $v0, 0x0150($a0) ## 00000150
.L8088572C:
/* 0058C 8088572C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00590 80885730 10410003 */ beq $v0, $at, .L80885740
/* 00594 80885734 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00598 80885738 54410004 */ bnel $v0, $at, .L8088574C
/* 0059C 8088573C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80885740:
/* 005A0 80885740 0C00BE65 */ jal func_8002F994
/* 005A4 80885744 84850154 */ lh $a1, 0x0154($a0) ## 00000154
/* 005A8 80885748 8FBF0014 */ lw $ra, 0x0014($sp)
.L8088574C:
/* 005AC 8088574C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 005B0 80885750 03E00008 */ jr $ra
/* 005B4 80885754 00000000 */ nop

View file

@ -1,27 +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_80885B70
.word 0x0A110009, 0x20010000, 0x00000000, 0x20000000, 0x01040000, 0xFFCFFFFF, 0x00000000, 0x19000100, 0x00510090, 0x00000000, 0x00000000
glabel D_80885B9C
.word 0x01000050, 0x0064FF00
glabel D_80885BA4
.word 0x00510090, 0x3DB851EC, 0x43100000
glabel D_80885BB0
.word 0x40A00000, 0x002E0058, 0x3D6147AE, 0x42B00000, 0x40400000
glabel Bg_Hidan_Curtain_InitVars
.word 0x00490600, 0x00000010, 0x00010000, 0x000001A4
.word BgHidanCurtain_Init
.word BgHidanCurtain_Destroy
.word BgHidanCurtain_Update
.word BgHidanCurtain_Draw
.word 0x00000000, 0x00000000, 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80885D20
.incbin "baserom/ovl_Bg_Hidan_Curtain", 0xB80, 0x00000100

3
spec
View file

@ -824,8 +824,7 @@ endseg
beginseg
name "ovl_Bg_Hidan_Curtain"
include "build/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o"
include "build/data/overlays/actors/z_bg_hidan_curtain.data.o"
include "build/data/overlays/actors/z_bg_hidan_curtain.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o"
endseg
beginseg

View file

@ -1,3 +1,9 @@
/*
* File: z_bg_hidan_curtain.c
* Overlay: ovl_Bg_Hidan_Curtain
* Description: Flame circle
*/
#include "z_bg_hidan_curtain.h"
#define FLAGS 0x00000010
@ -9,7 +15,33 @@ void BgHidanCurtain_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgHidanCurtain_Update(Actor* thisx, GlobalContext* globalCtx);
void BgHidanCurtain_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void BgHidanCurtain_WaitForSwitchOn(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_WaitForCutscene(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_WaitForClear(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_TurnOn(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_TurnOff(BgHidanCurtain* this, GlobalContext* globalCtx);
void BgHidanCurtain_WaitForTimer(BgHidanCurtain* this, GlobalContext* globalCtx);
extern Gfx D_040184B0[];
typedef struct {
/* 0x00 */ s16 radius;
/* 0x02 */ s16 height;
/* 0x04 */ f32 scale;
/* 0x08 */ f32 riseDist;
/* 0x0C */ f32 riseSpeed;
} BgHidanCurtainParams; // size = 0x10
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK10, 0x11, 0x00, 0x09, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x20000000, 0x01, 0x04 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x19, 0x00, 0x01 },
{ 81, 144, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sCcInfoInit = { 1, 0x50, 0x64, 0xFF };
static BgHidanCurtainParams sHCParams[] = { { 81, 144, 0.090f, 144.0f, 5.0f }, { 46, 88, 0.055f, 88.0f, 3.0f } };
const ActorInit Bg_Hidan_Curtain_InitVars = {
ACTOR_BG_HIDAN_CURTAIN,
ACTORTYPE_PROP,
@ -21,25 +53,201 @@ const ActorInit Bg_Hidan_Curtain_InitVars = {
(ActorFunc)BgHidanCurtain_Update,
(ActorFunc)BgHidanCurtain_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/BgHidanCurtain_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/BgHidanCurtain_Destroy.s")
void BgHidanCurtain_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHidanCurtain* this = THIS;
BgHidanCurtainParams* hcParams;
osSyncPrintf("Curtain (arg_data 0x%04x)\n", this->actor.params);
Actor_SetHeight(&this->actor, 20.0f);
this->type = (thisx->params >> 0xC) & 0xF;
if (this->type > 6) {
// Type is not set
osSyncPrintf("Error : object のタイプが設定されていない(%s %d)(arg_data 0x%04x)\n", "../z_bg_hidan_curtain.c",
352, this->actor.params);
Actor_Kill(&this->actor);
return;
}
this->size = ((this->type == 2) || (this->type == 4)) ? 1 : 0;
hcParams = &sHCParams[this->size];
this->treasureFlag = (thisx->params >> 6) & 0x3F;
thisx->params &= 0x3F;
if ((this->actor.params < 0) || (this->actor.params > 0x3F)) {
// Save bit is not set
osSyncPrintf("Warning : object のセーブビットが設定されていない(%s %d)(arg_data 0x%04x)\n",
"../z_bg_hidan_curtain.c", 373, this->actor.params);
}
Actor_SetScale(&this->actor, hcParams->scale);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->collider.dim.pos.x = this->actor.posRot.pos.x;
this->collider.dim.pos.y = this->actor.posRot.pos.y;
this->collider.dim.pos.z = this->actor.posRot.pos.z;
this->collider.dim.radius = hcParams->radius;
this->collider.dim.height = hcParams->height;
Collider_CylinderUpdate(&this->actor, &this->collider);
func_80061ED4(&thisx->colChkInfo, NULL, &sCcInfoInit);
if (this->type == 0) {
this->actionFunc = BgHidanCurtain_WaitForClear;
} else {
this->actionFunc = BgHidanCurtain_WaitForSwitchOn;
if ((this->type == 4) || (this->type == 5)) {
this->actor.posRot.pos.y = this->actor.initPosRot.pos.y - hcParams->riseDist;
}
}
if (((this->type == 1) && Flags_GetTreasure(globalCtx, this->treasureFlag)) ||
(((this->type == 0) || (this->type == 6)) && Flags_GetClear(globalCtx, this->actor.room))) {
Actor_Kill(&this->actor);
}
this->texScroll = Math_Rand_ZeroOne() * 15.0f;
}
void BgHidanCurtain_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHidanCurtain* this = THIS;
Collider_DestroyCylinder(globalCtx, &this->collider);
}
void BgHidanCurtain_WaitForSwitchOn(BgHidanCurtain* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
if (this->type == 1) {
this->actionFunc = BgHidanCurtain_WaitForCutscene;
func_800800F8(globalCtx, 3350, -99, &this->actor, 0);
this->timer = 50;
} else if (this->type == 3) {
this->actionFunc = BgHidanCurtain_WaitForCutscene;
func_800800F8(globalCtx, 3360, 60, &this->actor, 0);
this->timer = 30;
} else {
this->actionFunc = BgHidanCurtain_TurnOff;
}
}
}
void BgHidanCurtain_WaitForCutscene(BgHidanCurtain* this, GlobalContext* globalCtx) {
if (this->timer-- == 0) {
this->actionFunc = BgHidanCurtain_TurnOff;
}
}
void BgHidanCurtain_WaitForClear(BgHidanCurtain* this, GlobalContext* globalCtx) {
if (Flags_GetClear(globalCtx, this->actor.room)) {
this->actionFunc = BgHidanCurtain_TurnOff;
}
}
void BgHidanCurtain_WaitForSwitchOff(BgHidanCurtain* this, GlobalContext* globalCtx) {
if (!Flags_GetSwitch(globalCtx, this->actor.params)) {
this->actionFunc = BgHidanCurtain_TurnOn;
}
}
void BgHidanCurtain_TurnOn(BgHidanCurtain* this, GlobalContext* globalCtx) {
f32 riseSpeed = sHCParams[this->size].riseSpeed;
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y, riseSpeed)) {
Flags_UnsetSwitch(globalCtx, this->actor.params);
this->actionFunc = BgHidanCurtain_WaitForSwitchOn;
}
}
void BgHidanCurtain_TurnOff(BgHidanCurtain* this, GlobalContext* globalCtx) {
BgHidanCurtainParams* hcParams = &sHCParams[this->size];
if (Math_ApproxF(&this->actor.posRot.pos.y, this->actor.initPosRot.pos.y - hcParams->riseDist,
hcParams->riseSpeed)) {
if ((this->type == 0) || (this->type == 6)) {
Actor_Kill(&this->actor);
} else if (this->type == 5) {
this->actionFunc = BgHidanCurtain_WaitForSwitchOff;
} else {
if (this->type == 2) {
this->timer = 400;
} else if (this->type == 4) {
this->timer = 200;
} else if (this->type == 3) {
this->timer = 160;
} else { // this->type == 1
this->timer = 300;
}
this->actionFunc = BgHidanCurtain_WaitForTimer;
}
}
}
void BgHidanCurtain_WaitForTimer(BgHidanCurtain* this, GlobalContext* globalCtx) {
DECR(this->timer);
if (this->timer == 0) {
this->actionFunc = BgHidanCurtain_TurnOn;
}
if ((this->type == 1) || (this->type == 3)) {
func_8002F994(&this->actor, this->timer);
}
}
void BgHidanCurtain_Update(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
BgHidanCurtain* this = THIS;
BgHidanCurtainParams* hcParams = &sHCParams[this->size];
f32 riseProgress;
if ((globalCtx->cameraPtrs[0]->setting == 0x28) || (globalCtx->cameraPtrs[0]->setting == 0x38)) {
this->collider.base.atFlags &= ~2;
} else {
if (this->collider.base.atFlags & 2) {
this->collider.base.atFlags &= ~2;
func_8002F71C(globalCtx, &this->actor, 5.0f, this->actor.yawTowardsLink, 1.0f);
}
if ((this->type == 4) || (this->type == 5)) {
this->actor.posRot.pos.y =
(2.0f * this->actor.initPosRot.pos.y) - hcParams->riseDist - this->actor.posRot.pos.y;
}
this->actionFunc(this, globalCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_80885434.s")
if ((this->type == 4) || (this->type == 5)) {
this->actor.posRot.pos.y =
(2.0f * this->actor.initPosRot.pos.y) - hcParams->riseDist - this->actor.posRot.pos.y;
}
riseProgress =
(hcParams->riseDist - (this->actor.initPosRot.pos.y - this->actor.posRot.pos.y)) / hcParams->riseDist;
this->alpha = 255.0f * riseProgress;
if (this->alpha > 50) {
this->collider.dim.height = hcParams->height * riseProgress;
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (gSaveContext.sceneSetupIndex <= 3) {
func_8002F974(&this->actor, NA_SE_EV_FIRE_PILLAR_S - SFX_FLAG);
}
} else if ((this->type == 1) && Flags_GetTreasure(globalCtx, this->treasureFlag)) {
Actor_Kill(&this->actor);
}
this->texScroll++;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_808854E8.s")
void BgHidanCurtain_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgHidanCurtain* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_80885514.s")
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_curtain.c", 685);
func_80093D84(globalCtx->state.gfxCtx);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_80885554.s")
gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, 255, 220, 0, this->alpha);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_80885594.s")
gDPSetEnvColor(oGfxCtx->polyXlu.p++, 255, 0, 0, 0);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_80885604.s")
gSPSegment(oGfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, this->texScroll & 0x7F, 0, 0x20, 0x40, 1, 0,
(this->texScroll * -0xF) & 0xFF, 0x20, 0x40));
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/func_808856F4.s")
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_curtain.c", 698),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/BgHidanCurtain_Update.s")
gSPDisplayList(oGfxCtx->polyXlu.p++, D_040184B0);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Curtain/BgHidanCurtain_Draw.s")
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_hidan_curtain.c", 702);
}

View file

@ -6,9 +6,18 @@
struct BgHidanCurtain;
typedef void (*BgHidanCurtainActionFunc)(struct BgHidanCurtain*, GlobalContext*);
typedef struct BgHidanCurtain {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x58];
/* 0x014C */ BgHidanCurtainActionFunc actionFunc;
/* 0x0150 */ u8 type;
/* 0x0151 */ u8 treasureFlag;
/* 0x0152 */ u8 size;
/* 0x0153 */ u8 alpha;
/* 0x0154 */ s16 timer;
/* 0x0156 */ s16 texScroll;
/* 0x0158 */ ColliderCylinder collider;
} BgHidanCurtain; // size = 0x01A4
extern const ActorInit Bg_Hidan_Curtain_InitVars;

View file

@ -1219,6 +1219,9 @@ D_06000304 = 0x06000304;
D_06005B98 = 0x06005B98;
D_060055A8 = 0x060055A8;
// z_bg_hidan_curtain
D_040184B0 = 0x040184B0;
// z_en_dy_extra
D_0601BFB0 = 0x0601BFB0;
D_0601C160 = 0x0601C160;