1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 07:07:09 +00:00

Bg_Haka_Gate (#557)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* match

* sfx fix

* should be good to go

* comments and such

* Matrix macros escape me

* format

* fix bubble

* remove comments

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
Co-authored-by: fig <fig02srl@gmail.com>
This commit is contained in:
petrie911 2020-12-29 18:39:30 -06:00 committed by GitHub
parent 22758f06d7
commit c71b8183ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 366 additions and 1214 deletions

View file

@ -1,25 +0,0 @@
glabel BgHakaGate_Destroy
/* 002CC 8087C0BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002D0 8087C0C0 AFA40018 */ sw $a0, 0x0018($sp)
/* 002D4 8087C0C4 8FAE0018 */ lw $t6, 0x0018($sp)
/* 002D8 8087C0C8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002DC 8087C0CC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 002E0 8087C0D0 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 002E4 8087C0D4 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 002E8 8087C0D8 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 002EC 8087C0DC 8FAF0018 */ lw $t7, 0x0018($sp)
/* 002F0 8087C0E0 24190100 */ addiu $t9, $zero, 0x0100 ## $t9 = 00000100
/* 002F4 8087C0E4 3C018088 */ lui $at, %hi(D_8087CCD0) ## $at = 80880000
/* 002F8 8087C0E8 85F8001C */ lh $t8, 0x001C($t7) ## 0000001C
/* 002FC 8087C0EC 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00300 8087C0F0 57000005 */ bnel $t8, $zero, .L8087C108
/* 00304 8087C0F4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00308 8087C0F8 A439CCD0 */ sh $t9, %lo(D_8087CCD0)($at)
/* 0030C 8087C0FC 3C018088 */ lui $at, %hi(D_8087CCD4) ## $at = 80880000
/* 00310 8087C100 A028CCD4 */ sb $t0, %lo(D_8087CCD4)($at)
/* 00314 8087C104 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087C108:
/* 00318 8087C108 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0031C 8087C10C 03E00008 */ jr $ra
/* 00320 8087C110 00000000 */ nop

View file

@ -1,184 +0,0 @@
.rdata
glabel D_8087CD4C
.asciz "../z_bg_haka_gate.c"
.balign 4
glabel D_8087CD60
.asciz "../z_bg_haka_gate.c"
.balign 4
glabel D_8087CD74
.asciz "../z_bg_haka_gate.c"
.balign 4
glabel D_8087CD88
.asciz "../z_bg_haka_gate.c"
.balign 4
.late_rodata
glabel D_8087CDAC
.float 9.58738E-5
glabel D_8087CDB0
.float 9.58738E-5
.text
glabel BgHakaGate_Draw
/* 00C80 8087CA70 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 00C84 8087CA74 AFBF001C */ sw $ra, 0x001C($sp)
/* 00C88 8087CA78 AFB00018 */ sw $s0, 0x0018($sp)
/* 00C8C 8087CA7C AFA40090 */ sw $a0, 0x0090($sp)
/* 00C90 8087CA80 AFA50094 */ sw $a1, 0x0094($sp)
/* 00C94 8087CA84 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00C98 8087CA88 24010080 */ addiu $at, $zero, 0x0080 ## $at = 00000080
/* 00C9C 8087CA8C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00CA0 8087CA90 31F80080 */ andi $t8, $t7, 0x0080 ## $t8 = 00000000
/* 00CA4 8087CA94 17010006 */ bne $t8, $at, .L8087CAB0
/* 00CA8 8087CA98 8FB90094 */ lw $t9, 0x0094($sp)
/* 00CAC 8087CA9C 3C050601 */ lui $a1, %hi(D_0600F1B0) ## $a1 = 06010000
/* 00CB0 8087CAA0 0C00D4C9 */ jal Gfx_DrawDListXlu
/* 00CB4 8087CAA4 24A5F1B0 */ addiu $a1, $a1, %lo(D_0600F1B0) ## $a1 = 0600F1B0
/* 00CB8 8087CAA8 1000007C */ beq $zero, $zero, .L8087CC9C
/* 00CBC 8087CAAC 8FA40090 */ lw $a0, 0x0090($sp)
.L8087CAB0:
/* 00CC0 8087CAB0 0C024F46 */ jal func_80093D18
/* 00CC4 8087CAB4 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
/* 00CC8 8087CAB8 8FA80090 */ lw $t0, 0x0090($sp)
/* 00CCC 8087CABC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00CD0 8087CAC0 8FA90094 */ lw $t1, 0x0094($sp)
/* 00CD4 8087CAC4 8502001C */ lh $v0, 0x001C($t0) ## 0000001C
/* 00CD8 8087CAC8 8FA40094 */ lw $a0, 0x0094($sp)
/* 00CDC 8087CACC 3C058088 */ lui $a1, %hi(D_8087CD00) ## $a1 = 80880000
/* 00CE0 8087CAD0 1441006E */ bne $v0, $at, .L8087CC8C
/* 00CE4 8087CAD4 00024080 */ sll $t0, $v0, 2
/* 00CE8 8087CAD8 8D250000 */ lw $a1, 0x0000($t1) ## 00000000
/* 00CEC 8087CADC 3C068088 */ lui $a2, %hi(D_8087CD4C) ## $a2 = 80880000
/* 00CF0 8087CAE0 24C6CD4C */ addiu $a2, $a2, %lo(D_8087CD4C) ## $a2 = 8087CD4C
/* 00CF4 8087CAE4 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFA8
/* 00CF8 8087CAE8 2407030D */ addiu $a3, $zero, 0x030D ## $a3 = 0000030D
/* 00CFC 8087CAEC 0C031AB1 */ jal Graph_OpenDisps
/* 00D00 8087CAF0 00A08025 */ or $s0, $a1, $zero ## $s0 = 80880000
/* 00D04 8087CAF4 0C034236 */ jal Matrix_Get
/* 00D08 8087CAF8 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFBC
/* 00D0C 8087CAFC 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00D10 8087CB00 3C06C4FA */ lui $a2, 0xC4FA ## $a2 = C4FA0000
/* 00D14 8087CB04 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00D18 8087CB08 0C034261 */ jal Matrix_Translate
/* 00D1C 8087CB0C 46006386 */ mov.s $f14, $f12
/* 00D20 8087CB10 8FAA0090 */ lw $t2, 0x0090($sp)
/* 00D24 8087CB14 3C018088 */ lui $at, %hi(D_8087CDAC) ## $at = 80880000
/* 00D28 8087CB18 C428CDAC */ lwc1 $f8, %lo(D_8087CDAC)($at)
/* 00D2C 8087CB1C 854B016C */ lh $t3, 0x016C($t2) ## 0000016C
/* 00D30 8087CB20 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D34 8087CB24 448B2000 */ mtc1 $t3, $f4 ## $f4 = 0.00
/* 00D38 8087CB28 00000000 */ nop
/* 00D3C 8087CB2C 468021A0 */ cvt.s.w $f6, $f4
/* 00D40 8087CB30 46083302 */ mul.s $f12, $f6, $f8
/* 00D44 8087CB34 0C0342DC */ jal Matrix_RotateX
/* 00D48 8087CB38 00000000 */ nop
/* 00D4C 8087CB3C 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00D50 8087CB40 3C0644FA */ lui $a2, 0x44FA ## $a2 = 44FA0000
/* 00D54 8087CB44 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00D58 8087CB48 0C034261 */ jal Matrix_Translate
/* 00D5C 8087CB4C 46006386 */ mov.s $f14, $f12
/* 00D60 8087CB50 8E0202C0 */ lw $v0, 0x02C0($s0) ## 808802C0
/* 00D64 8087CB54 3C0DDA38 */ lui $t5, 0xDA38 ## $t5 = DA380000
/* 00D68 8087CB58 35AD0003 */ ori $t5, $t5, 0x0003 ## $t5 = DA380003
/* 00D6C 8087CB5C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00D70 8087CB60 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 808802C0
/* 00D74 8087CB64 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00D78 8087CB68 8FAE0094 */ lw $t6, 0x0094($sp)
/* 00D7C 8087CB6C 3C058088 */ lui $a1, %hi(D_8087CD60) ## $a1 = 80880000
/* 00D80 8087CB70 24A5CD60 */ addiu $a1, $a1, %lo(D_8087CD60) ## $a1 = 8087CD60
/* 00D84 8087CB74 8DC40000 */ lw $a0, 0x0000($t6) ## 00000000
/* 00D88 8087CB78 24060314 */ addiu $a2, $zero, 0x0314 ## $a2 = 00000314
/* 00D8C 8087CB7C 0C0346A2 */ jal Matrix_NewMtx
/* 00D90 8087CB80 AFA20034 */ sw $v0, 0x0034($sp)
/* 00D94 8087CB84 8FA30034 */ lw $v1, 0x0034($sp)
/* 00D98 8087CB88 3C190601 */ lui $t9, %hi(D_06010A10) ## $t9 = 06010000
/* 00D9C 8087CB8C 27390A10 */ addiu $t9, $t9, %lo(D_06010A10) ## $t9 = 06010A10
/* 00DA0 8087CB90 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00DA4 8087CB94 8E0202C0 */ lw $v0, 0x02C0($s0) ## 808802C0
/* 00DA8 8087CB98 3C18DE00 */ lui $t8, 0xDE00 ## $t8 = DE000000
/* 00DAC 8087CB9C 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFBC
/* 00DB0 8087CBA0 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00DB4 8087CBA4 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 808802C0
/* 00DB8 8087CBA8 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 00DBC 8087CBAC 0C03423F */ jal Matrix_Put
/* 00DC0 8087CBB0 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00DC4 8087CBB4 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00DC8 8087CBB8 3C0644FA */ lui $a2, 0x44FA ## $a2 = 44FA0000
/* 00DCC 8087CBBC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00DD0 8087CBC0 0C034261 */ jal Matrix_Translate
/* 00DD4 8087CBC4 46006386 */ mov.s $f14, $f12
/* 00DD8 8087CBC8 8FA80090 */ lw $t0, 0x0090($sp)
/* 00DDC 8087CBCC 3C018088 */ lui $at, %hi(D_8087CDB0) ## $at = 80880000
/* 00DE0 8087CBD0 C432CDB0 */ lwc1 $f18, %lo(D_8087CDB0)($at)
/* 00DE4 8087CBD4 8509016C */ lh $t1, 0x016C($t0) ## 0000016C
/* 00DE8 8087CBD8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00DEC 8087CBDC 00095023 */ subu $t2, $zero, $t1
/* 00DF0 8087CBE0 448A5000 */ mtc1 $t2, $f10 ## $f10 = 0.00
/* 00DF4 8087CBE4 00000000 */ nop
/* 00DF8 8087CBE8 46805420 */ cvt.s.w $f16, $f10
/* 00DFC 8087CBEC 46128302 */ mul.s $f12, $f16, $f18
/* 00E00 8087CBF0 0C0342DC */ jal Matrix_RotateX
/* 00E04 8087CBF4 00000000 */ nop
/* 00E08 8087CBF8 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00E0C 8087CBFC 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00E10 8087CC00 3C06C4FA */ lui $a2, 0xC4FA ## $a2 = C4FA0000
/* 00E14 8087CC04 0C034261 */ jal Matrix_Translate
/* 00E18 8087CC08 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00E1C 8087CC0C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 808802C0
/* 00E20 8087CC10 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000
/* 00E24 8087CC14 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003
/* 00E28 8087CC18 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00E2C 8087CC1C AE0B02C0 */ sw $t3, 0x02C0($s0) ## 808802C0
/* 00E30 8087CC20 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00E34 8087CC24 8FAD0094 */ lw $t5, 0x0094($sp)
/* 00E38 8087CC28 3C058088 */ lui $a1, %hi(D_8087CD74) ## $a1 = 80880000
/* 00E3C 8087CC2C 24A5CD74 */ addiu $a1, $a1, %lo(D_8087CD74) ## $a1 = 8087CD74
/* 00E40 8087CC30 8DA40000 */ lw $a0, 0x0000($t5) ## 00000000
/* 00E44 8087CC34 2406031C */ addiu $a2, $zero, 0x031C ## $a2 = 0000031C
/* 00E48 8087CC38 0C0346A2 */ jal Matrix_NewMtx
/* 00E4C 8087CC3C AFA2002C */ sw $v0, 0x002C($sp)
/* 00E50 8087CC40 8FA3002C */ lw $v1, 0x002C($sp)
/* 00E54 8087CC44 3C180601 */ lui $t8, %hi(D_06010C10) ## $t8 = 06010000
/* 00E58 8087CC48 27180C10 */ addiu $t8, $t8, %lo(D_06010C10) ## $t8 = 06010C10
/* 00E5C 8087CC4C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00E60 8087CC50 8E0202C0 */ lw $v0, 0x02C0($s0) ## 808802C0
/* 00E64 8087CC54 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 00E68 8087CC58 3C068088 */ lui $a2, %hi(D_8087CD88) ## $a2 = 80880000
/* 00E6C 8087CC5C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00E70 8087CC60 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 808802C0
/* 00E74 8087CC64 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00E78 8087CC68 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00E7C 8087CC6C 8FB90094 */ lw $t9, 0x0094($sp)
/* 00E80 8087CC70 24C6CD88 */ addiu $a2, $a2, %lo(D_8087CD88) ## $a2 = 8087CD88
/* 00E84 8087CC74 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFA8
/* 00E88 8087CC78 24070320 */ addiu $a3, $zero, 0x0320 ## $a3 = 00000320
/* 00E8C 8087CC7C 0C031AD5 */ jal Graph_CloseDisps
/* 00E90 8087CC80 8F250000 */ lw $a1, 0x0000($t9) ## 00000000
/* 00E94 8087CC84 10000005 */ beq $zero, $zero, .L8087CC9C
/* 00E98 8087CC88 8FA40090 */ lw $a0, 0x0090($sp)
.L8087CC8C:
/* 00E9C 8087CC8C 00A82821 */ addu $a1, $a1, $t0
/* 00EA0 8087CC90 0C00D498 */ jal Gfx_DrawDListOpa
/* 00EA4 8087CC94 8CA5CD00 */ lw $a1, %lo(D_8087CD00)($a1)
/* 00EA8 8087CC98 8FA40090 */ lw $a0, 0x0090($sp)
.L8087CC9C:
/* 00EAC 8087CC9C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00EB0 8087CCA0 8489001C */ lh $t1, 0x001C($a0) ## 0000001C
/* 00EB4 8087CCA4 55210004 */ bnel $t1, $at, .L8087CCB8
/* 00EB8 8087CCA8 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EBC 8087CCAC 0C21F217 */ jal func_8087C85C
/* 00EC0 8087CCB0 8FA50094 */ lw $a1, 0x0094($sp)
/* 00EC4 8087CCB4 8FBF001C */ lw $ra, 0x001C($sp)
.L8087CCB8:
/* 00EC8 8087CCB8 8FB00018 */ lw $s0, 0x0018($sp)
/* 00ECC 8087CCBC 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000
/* 00ED0 8087CCC0 03E00008 */ jr $ra
/* 00ED4 8087CCC4 00000000 */ nop
/* 00ED8 8087CCC8 00000000 */ nop
/* 00EDC 8087CCCC 00000000 */ nop

View file

@ -1,208 +0,0 @@
glabel BgHakaGate_Init
/* 00000 8087BDF0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00004 8087BDF4 AFA5003C */ sw $a1, 0x003C($sp)
/* 00008 8087BDF8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 8087BDFC AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 8087BE00 3C058088 */ lui $a1, %hi(D_8087CCFC) ## $a1 = 80880000
/* 00014 8087BE04 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 8087BE08 AFA0002C */ sw $zero, 0x002C($sp)
/* 0001C 8087BE0C 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 8087BE10 24A5CCFC */ addiu $a1, $a1, %lo(D_8087CCFC) ## $a1 = 8087CCFC
/* 00024 8087BE14 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00028 8087BE18 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
/* 0002C 8087BE1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00030 8087BE20 000EC203 */ sra $t8, $t6, 8
/* 00034 8087BE24 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 00000000
/* 00038 8087BE28 A2180168 */ sb $t8, 0x0168($s0) ## 00000168
/* 0003C 8087BE2C A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 00040 8087BE30 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00044 8087BE34 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00048 8087BE38 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 0004C 8087BE3C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00050 8087BE40 3C098088 */ lui $t1, %hi(D_8087CCD0) ## $t1 = 80880000
/* 00054 8087BE44 14410051 */ bne $v0, $at, .L8087BF8C
/* 00058 8087BE48 00000000 */ nop
/* 0005C 8087BE4C 8529CCD0 */ lh $t1, %lo(D_8087CCD0)($t1)
/* 00060 8087BE50 24010100 */ addiu $at, $zero, 0x0100 ## $at = 00000100
/* 00064 8087BE54 3C0A8088 */ lui $t2, %hi(func_8087C794) ## $t2 = 80880000
/* 00068 8087BE58 11210003 */ beq $t1, $at, .L8087BE68
/* 0006C 8087BE5C 254AC794 */ addiu $t2, $t2, %lo(func_8087C794) ## $t2 = 8087C794
/* 00070 8087BE60 10000037 */ beq $zero, $zero, .L8087BF40
/* 00074 8087BE64 AE0A0164 */ sw $t2, 0x0164($s0) ## 00000164
.L8087BE68:
/* 00078 8087BE68 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
/* 0007C 8087BE6C 3C088088 */ lui $t0, %hi(func_8087C794) ## $t0 = 80880000
/* 00080 8087BE70 2508C794 */ addiu $t0, $t0, %lo(func_8087C794) ## $t0 = 8087C794
/* 00084 8087BE74 04400003 */ bltz $v0, .L8087BE84
/* 00088 8087BE78 00021823 */ subu $v1, $zero, $v0
/* 0008C 8087BE7C 10000001 */ beq $zero, $zero, .L8087BE84
/* 00090 8087BE80 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L8087BE84:
/* 00094 8087BE84 28614000 */ slti $at, $v1, 0x4000
/* 00098 8087BE88 5020002D */ beql $at, $zero, .L8087BF40
/* 0009C 8087BE8C AE080164 */ sw $t0, 0x0164($s0) ## 00000164
/* 000A0 8087BE90 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 000A4 8087BE94 00000000 */ nop
/* 000A8 8087BE98 3C038088 */ lui $v1, %hi(D_8087CCD4) ## $v1 = 80880000
/* 000AC 8087BE9C 2463CCD4 */ addiu $v1, $v1, %lo(D_8087CCD4) ## $v1 = 8087CCD4
/* 000B0 8087BEA0 90620000 */ lbu $v0, 0x0000($v1) ## 8087CCD4
/* 000B4 8087BEA4 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 000B8 8087BEA8 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00
/* 000BC 8087BEAC 44824000 */ mtc1 $v0, $f8 ## $f8 = 0.00
/* 000C0 8087BEB0 3C198088 */ lui $t9, %hi(func_8087C794) ## $t9 = 80880000
/* 000C4 8087BEB4 46040182 */ mul.s $f6, $f0, $f4
/* 000C8 8087BEB8 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 000CC 8087BEBC 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 000D0 8087BEC0 2739C794 */ addiu $t9, $t9, %lo(func_8087C794) ## $t9 = 8087C794
/* 000D4 8087BEC4 24580001 */ addiu $t8, $v0, 0x0001 ## $t8 = 00000001
/* 000D8 8087BEC8 04410004 */ bgez $v0, .L8087BEDC
/* 000DC 8087BECC 468042A0 */ cvt.s.w $f10, $f8
/* 000E0 8087BED0 44818000 */ mtc1 $at, $f16 ## $f16 = 4294967296.00
/* 000E4 8087BED4 00000000 */ nop
/* 000E8 8087BED8 46105280 */ add.s $f10, $f10, $f16
.L8087BEDC:
/* 000EC 8087BEDC 460A303C */ c.lt.s $f6, $f10
/* 000F0 8087BEE0 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 000F4 8087BEE4 45020013 */ bc1fl .L8087BF34
/* 000F8 8087BEE8 A0780000 */ sb $t8, 0x0000($v1) ## 8087CCD4
/* 000FC 8087BEEC 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6
/* 00100 8087BEF0 A60B0170 */ sh $t3, 0x0170($s0) ## 00000170
/* 00104 8087BEF4 8FA4003C */ lw $a0, 0x003C($sp)
/* 00108 8087BEF8 01816821 */ addu $t5, $t4, $at
/* 0010C 8087BEFC 3C018088 */ lui $at, %hi(D_8087CCD0) ## $at = 80880000
/* 00110 8087BF00 A42DCCD0 */ sh $t5, %lo(D_8087CCD0)($at)
/* 00114 8087BF04 0C00B2D0 */ jal Flags_GetSwitch
/* 00118 8087BF08 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 0011C 8087BF0C 10400005 */ beq $v0, $zero, .L8087BF24
/* 00120 8087BF10 3C0F8088 */ lui $t7, %hi(func_8087C73C) ## $t7 = 80880000
/* 00124 8087BF14 3C0E8088 */ lui $t6, %hi(func_8087C114) ## $t6 = 80880000
/* 00128 8087BF18 25CEC114 */ addiu $t6, $t6, %lo(func_8087C114) ## $t6 = 8087C114
/* 0012C 8087BF1C 10000008 */ beq $zero, $zero, .L8087BF40
/* 00130 8087BF20 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
.L8087BF24:
/* 00134 8087BF24 25EFC73C */ addiu $t7, $t7, %lo(func_8087C73C) ## $t7 = 8087C73C
/* 00138 8087BF28 10000005 */ beq $zero, $zero, .L8087BF40
/* 0013C 8087BF2C AE0F0164 */ sw $t7, 0x0164($s0) ## 00000164
/* 00140 8087BF30 A0780000 */ sb $t8, 0x0000($v1) ## 00000000
.L8087BF34:
/* 00144 8087BF34 10000002 */ beq $zero, $zero, .L8087BF40
/* 00148 8087BF38 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
/* 0014C 8087BF3C AE080164 */ sw $t0, 0x0164($s0) ## 00000164
.L8087BF40:
/* 00150 8087BF40 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00154 8087BF44 00000000 */ nop
/* 00158 8087BF48 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 0015C 8087BF4C 44819000 */ mtc1 $at, $f18 ## $f18 = 20.00
/* 00160 8087BF50 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
/* 00164 8087BF54 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 00168 8087BF58 46120102 */ mul.s $f4, $f0, $f18
/* 0016C 8087BF5C 356C0010 */ ori $t4, $t3, 0x0010 ## $t4 = 00000010
/* 00170 8087BF60 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
/* 00174 8087BF64 4600220D */ trunc.w.s $f8, $f4
/* 00178 8087BF68 440A4000 */ mfc1 $t2, $f8
/* 0017C 8087BF6C 00000000 */ nop
/* 00180 8087BF70 A60A0172 */ sh $t2, 0x0172($s0) ## 00000172
/* 00184 8087BF74 0C00B2D0 */ jal Flags_GetSwitch
/* 00188 8087BF78 8FA4003C */ lw $a0, 0x003C($sp)
/* 0018C 8087BF7C 1040004A */ beq $v0, $zero, .L8087C0A8
/* 00190 8087BF80 240D015E */ addiu $t5, $zero, 0x015E ## $t5 = 0000015E
/* 00194 8087BF84 10000048 */ beq $zero, $zero, .L8087C0A8
/* 00198 8087BF88 A60D016E */ sh $t5, 0x016E($s0) ## 0000016E
.L8087BF8C:
/* 0019C 8087BF8C 14400015 */ bne $v0, $zero, .L8087BFE4
/* 001A0 8087BF90 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 001A4 8087BF94 3C040601 */ lui $a0, %hi(D_060131C4) ## $a0 = 06010000
/* 001A8 8087BF98 248431C4 */ addiu $a0, $a0, %lo(D_060131C4) ## $a0 = 060131C4
/* 001AC 8087BF9C 0C010620 */ jal DynaPolyInfo_Alloc
/* 001B0 8087BFA0 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 001B4 8087BFA4 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
/* 001B8 8087BFA8 A600016A */ sh $zero, 0x016A($s0) ## 0000016A
/* 001BC 8087BFAC 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 001C0 8087BFB0 E430CCD8 */ swc1 $f16, %lo(D_8087CCD8)($at)
/* 001C4 8087BFB4 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 001C8 8087BFB8 0C00B2D0 */ jal Flags_GetSwitch
/* 001CC 8087BFBC 8FA4003C */ lw $a0, 0x003C($sp)
/* 001D0 8087BFC0 10400005 */ beq $v0, $zero, .L8087BFD8
/* 001D4 8087BFC4 3C0F8088 */ lui $t7, %hi(func_8087C158) ## $t7 = 80880000
/* 001D8 8087BFC8 3C0E8088 */ lui $t6, %hi(func_8087C120) ## $t6 = 80880000
/* 001DC 8087BFCC 25CEC120 */ addiu $t6, $t6, %lo(func_8087C120) ## $t6 = 8087C120
/* 001E0 8087BFD0 1000002F */ beq $zero, $zero, .L8087C090
/* 001E4 8087BFD4 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
.L8087BFD8:
/* 001E8 8087BFD8 25EFC158 */ addiu $t7, $t7, %lo(func_8087C158) ## $t7 = 8087C158
/* 001EC 8087BFDC 1000002C */ beq $zero, $zero, .L8087C090
/* 001F0 8087BFE0 AE0F0164 */ sw $t7, 0x0164($s0) ## 00000164
.L8087BFE4:
/* 001F4 8087BFE4 14410011 */ bne $v0, $at, .L8087C02C
/* 001F8 8087BFE8 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 001FC 8087BFEC 3C040601 */ lui $a0, %hi(D_06010E10) ## $a0 = 06010000
/* 00200 8087BFF0 24840E10 */ addiu $a0, $a0, %lo(D_06010E10) ## $a0 = 06010E10
/* 00204 8087BFF4 0C010620 */ jal DynaPolyInfo_Alloc
/* 00208 8087BFF8 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 0020C 8087BFFC 8FA4003C */ lw $a0, 0x003C($sp)
/* 00210 8087C000 0C00B2D0 */ jal Flags_GetSwitch
/* 00214 8087C004 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 00218 8087C008 10400005 */ beq $v0, $zero, .L8087C020
/* 0021C 8087C00C 3C198088 */ lui $t9, %hi(func_8087C454) ## $t9 = 80880000
/* 00220 8087C010 3C188088 */ lui $t8, %hi(func_8087C114) ## $t8 = 80880000
/* 00224 8087C014 2718C114 */ addiu $t8, $t8, %lo(func_8087C114) ## $t8 = 8087C114
/* 00228 8087C018 1000001D */ beq $zero, $zero, .L8087C090
/* 0022C 8087C01C AE180164 */ sw $t8, 0x0164($s0) ## 00000164
.L8087C020:
/* 00230 8087C020 2739C454 */ addiu $t9, $t9, %lo(func_8087C454) ## $t9 = 8087C454
/* 00234 8087C024 1000001A */ beq $zero, $zero, .L8087C090
/* 00238 8087C028 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
.L8087C02C:
/* 0023C 8087C02C 2484A938 */ addiu $a0, $a0, 0xA938 ## $a0 = FFFFA938
/* 00240 8087C030 0C010620 */ jal DynaPolyInfo_Alloc
/* 00244 8087C034 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 00248 8087C038 8FA4003C */ lw $a0, 0x003C($sp)
/* 0024C 8087C03C 0C00B2D0 */ jal Flags_GetSwitch
/* 00250 8087C040 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 00254 8087C044 10400009 */ beq $v0, $zero, .L8087C06C
/* 00258 8087C048 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 0025C 8087C04C C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 00260 8087C050 44815000 */ mtc1 $at, $f10 ## $f10 = 80.00
/* 00264 8087C054 3C088088 */ lui $t0, %hi(func_8087C114) ## $t0 = 80880000
/* 00268 8087C058 2508C114 */ addiu $t0, $t0, %lo(func_8087C114) ## $t0 = 8087C114
/* 0026C 8087C05C 460A3480 */ add.s $f18, $f6, $f10
/* 00270 8087C060 AE080164 */ sw $t0, 0x0164($s0) ## 00000164
/* 00274 8087C064 1000000A */ beq $zero, $zero, .L8087C090
/* 00278 8087C068 E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
.L8087C06C:
/* 0027C 8087C06C 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
/* 00280 8087C070 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00284 8087C074 3C0541F0 */ lui $a1, 0x41F0 ## $a1 = 41F00000
/* 00288 8087C078 352A0010 */ ori $t2, $t1, 0x0010 ## $t2 = 00000010
/* 0028C 8087C07C 0C00B56E */ jal Actor_SetHeight
/* 00290 8087C080 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
/* 00294 8087C084 3C0B8088 */ lui $t3, %hi(func_8087C65C) ## $t3 = 80880000
/* 00298 8087C088 256BC65C */ addiu $t3, $t3, %lo(func_8087C65C) ## $t3 = 8087C65C
/* 0029C 8087C08C AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164
.L8087C090:
/* 002A0 8087C090 8FA4003C */ lw $a0, 0x003C($sp)
/* 002A4 8087C094 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 002A8 8087C098 8FA7002C */ lw $a3, 0x002C($sp)
/* 002AC 8087C09C 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 002B0 8087C0A0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 002B4 8087C0A4 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
.L8087C0A8:
/* 002B8 8087C0A8 8FBF001C */ lw $ra, 0x001C($sp)
/* 002BC 8087C0AC 8FB00018 */ lw $s0, 0x0018($sp)
/* 002C0 8087C0B0 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 002C4 8087C0B4 03E00008 */ jr $ra
/* 002C8 8087C0B8 00000000 */ nop

View file

@ -1,20 +0,0 @@
glabel BgHakaGate_Update
/* 00A24 8087C814 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00A28 8087C818 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00A2C 8087C81C AFA40018 */ sw $a0, 0x0018($sp)
/* 00A30 8087C820 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00A34 8087C824 0320F809 */ jalr $ra, $t9
/* 00A38 8087C828 00000000 */ nop
/* 00A3C 8087C82C 8FA40018 */ lw $a0, 0x0018($sp)
/* 00A40 8087C830 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00A44 8087C834 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00A48 8087C838 55C10005 */ bnel $t6, $at, .L8087C850
/* 00A4C 8087C83C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A50 8087C840 848F0172 */ lh $t7, 0x0172($a0) ## 00000172
/* 00A54 8087C844 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00A58 8087C848 A4980172 */ sh $t8, 0x0172($a0) ## 00000172
/* 00A5C 8087C84C 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087C850:
/* 00A60 8087C850 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A64 8087C854 03E00008 */ jr $ra
/* 00A68 8087C858 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_8087C114
/* 00324 8087C114 AFA40000 */ sw $a0, 0x0000($sp)
/* 00328 8087C118 03E00008 */ jr $ra
/* 0032C 8087C11C AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,16 +0,0 @@
glabel func_8087C120
/* 00330 8087C120 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00334 8087C124 C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00338 8087C128 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 0033C 8087C12C 46040032 */ c.eq.s $f0, $f4
/* 00340 8087C130 00000000 */ nop
/* 00344 8087C134 45010006 */ bc1t .L8087C150
/* 00348 8087C138 00000000 */ nop
/* 0034C 8087C13C 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00350 8087C140 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00354 8087C144 01C17824 */ and $t7, $t6, $at
/* 00358 8087C148 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 0035C 8087C14C E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
.L8087C150:
/* 00360 8087C150 03E00008 */ jr $ra
/* 00364 8087C154 00000000 */ nop

View file

@ -1,79 +0,0 @@
glabel func_8087C158
/* 00368 8087C158 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0036C 8087C15C C4840150 */ lwc1 $f4, 0x0150($a0) ## 00000150
/* 00370 8087C160 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00374 8087C164 3C098088 */ lui $t1, %hi(D_8087CCD4) ## $t1 = 80880000
/* 00378 8087C168 46040032 */ c.eq.s $f0, $f4
/* 0037C 8087C16C 00000000 */ nop
/* 00380 8087C170 45010035 */ bc1t .L8087C248
/* 00384 8087C174 00000000 */ nop
/* 00388 8087C178 848E016A */ lh $t6, 0x016A($a0) ## 0000016A
/* 0038C 8087C17C 55C00029 */ bnel $t6, $zero, .L8087C224
/* 00390 8087C180 8C580680 */ lw $t8, 0x0680($v0) ## 00000680
/* 00394 8087C184 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6
/* 00398 8087C188 8498008A */ lh $t8, 0x008A($a0) ## 0000008A
/* 0039C 8087C18C C4860090 */ lwc1 $f6, 0x0090($a0) ## 00000090
/* 003A0 8087C190 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 003A4 8087C194 01F8C823 */ subu $t9, $t7, $t8
/* 003A8 8087C198 A4990172 */ sh $t9, 0x0172($a0) ## 00000172
/* 003AC 8087C19C E426CCD8 */ swc1 $f6, %lo(D_8087CCD8)($at)
/* 003B0 8087C1A0 C4880150 */ lwc1 $f8, 0x0150($a0) ## 00000150
/* 003B4 8087C1A4 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 003B8 8087C1A8 4608003E */ c.le.s $f0, $f8
/* 003BC 8087C1AC 00000000 */ nop
/* 003C0 8087C1B0 45020006 */ bc1fl .L8087C1CC
/* 003C4 8087C1B4 44810000 */ mtc1 $at, $f0 ## $f0 = -1.00
/* 003C8 8087C1B8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 003CC 8087C1BC 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
/* 003D0 8087C1C0 10000004 */ beq $zero, $zero, .L8087C1D4
/* 003D4 8087C1C4 8488008A */ lh $t0, 0x008A($a0) ## 0000008A
/* 003D8 8087C1C8 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
.L8087C1CC:
/* 003DC 8087C1CC 00000000 */ nop
/* 003E0 8087C1D0 8488008A */ lh $t0, 0x008A($a0) ## 0000008A
.L8087C1D4:
/* 003E4 8087C1D4 844900B6 */ lh $t1, 0x00B6($v0) ## 000000B6
/* 003E8 8087C1D8 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 003EC 8087C1DC 01095023 */ subu $t2, $t0, $t1
/* 003F0 8087C1E0 000A5C00 */ sll $t3, $t2, 16
/* 003F4 8087C1E4 000B6403 */ sra $t4, $t3, 16
/* 003F8 8087C1E8 19800003 */ blez $t4, .L8087C1F8
/* 003FC 8087C1EC 00000000 */ nop
/* 00400 8087C1F0 10000001 */ beq $zero, $zero, .L8087C1F8
/* 00404 8087C1F4 2402FFFF */ addiu $v0, $zero, 0xFFFF ## $v0 = FFFFFFFF
.L8087C1F8:
/* 00408 8087C1F8 44825000 */ mtc1 $v0, $f10 ## $f10 = NaN
/* 0040C 8087C1FC 3C0F8088 */ lui $t7, %hi(func_8087C270) ## $t7 = 80880000
/* 00410 8087C200 25EFC270 */ addiu $t7, $t7, %lo(func_8087C270) ## $t7 = 8087C270
/* 00414 8087C204 46805420 */ cvt.s.w $f16, $f10
/* 00418 8087C208 AC8F0164 */ sw $t7, 0x0164($a0) ## 00000164
/* 0041C 8087C20C 46008482 */ mul.s $f18, $f16, $f0
/* 00420 8087C210 4600910D */ trunc.w.s $f4, $f18
/* 00424 8087C214 440E2000 */ mfc1 $t6, $f4
/* 00428 8087C218 03E00008 */ jr $ra
/* 0042C 8087C21C A48E016A */ sh $t6, 0x016A($a0) ## 0000016A
.L8087C220:
/* 00430 8087C220 8C580680 */ lw $t8, 0x0680($v0) ## 0000067F
.L8087C224:
/* 00434 8087C224 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00438 8087C228 0301C824 */ and $t9, $t8, $at
/* 0043C 8087C22C AC590680 */ sw $t9, 0x0680($v0) ## 0000067F
/* 00440 8087C230 8483016A */ lh $v1, 0x016A($a0) ## 0000016A
/* 00444 8087C234 E4800150 */ swc1 $f0, 0x0150($a0) ## 00000150
/* 00448 8087C238 1060000B */ beq $v1, $zero, .L8087C268
/* 0044C 8087C23C 2468FFFF */ addiu $t0, $v1, 0xFFFF ## $t0 = FFFFFFFF
/* 00450 8087C240 03E00008 */ jr $ra
/* 00454 8087C244 A488016A */ sh $t0, 0x016A($a0) ## 0000016A
.L8087C248:
/* 00458 8087C248 9129CCD4 */ lbu $t1, %lo(D_8087CCD4)($t1)
/* 0045C 8087C24C 24010064 */ addiu $at, $zero, 0x0064 ## $at = 00000064
/* 00460 8087C250 3C0A8088 */ lui $t2, %hi(func_8087C120) ## $t2 = 80880000
/* 00464 8087C254 15210003 */ bne $t1, $at, .L8087C264
/* 00468 8087C258 254AC120 */ addiu $t2, $t2, %lo(func_8087C120) ## $t2 = 8087C120
/* 0046C 8087C25C 03E00008 */ jr $ra
/* 00470 8087C260 AC8A0164 */ sw $t2, 0x0164($a0) ## 00000164
.L8087C264:
/* 00474 8087C264 A480016A */ sh $zero, 0x016A($a0) ## 0000016A
.L8087C268:
/* 00478 8087C268 03E00008 */ jr $ra
/* 0047C 8087C26C 00000000 */ nop

View file

@ -1,138 +0,0 @@
.late_rodata
glabel D_8087CD9C
.float 0.1
glabel D_8087CDA0
.float 182.04445
.text
glabel func_8087C270
/* 00480 8087C270 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00484 8087C274 AFBF001C */ sw $ra, 0x001C($sp)
/* 00488 8087C278 AFB00018 */ sw $s0, 0x0018($sp)
/* 0048C 8087C27C 848E016C */ lh $t6, 0x016C($a0) ## 0000016C
/* 00490 8087C280 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00494 8087C284 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00498 8087C288 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 0049C 8087C28C A48F016C */ sh $t7, 0x016C($a0) ## 0000016C
/* 004A0 8087C290 8482016C */ lh $v0, 0x016C($a0) ## 0000016C
/* 004A4 8087C294 24180005 */ addiu $t8, $zero, 0x0005 ## $t8 = 00000005
/* 004A8 8087C298 24050258 */ addiu $a1, $zero, 0x0258 ## $a1 = 00000258
/* 004AC 8087C29C 28410006 */ slti $at, $v0, 0x0006
/* 004B0 8087C2A0 54200004 */ bnel $at, $zero, .L8087C2B4
/* 004B4 8087C2A4 A602016C */ sh $v0, 0x016C($s0) ## 0000016C
/* 004B8 8087C2A8 10000002 */ beq $zero, $zero, .L8087C2B4
/* 004BC 8087C2AC A498016C */ sh $t8, 0x016C($a0) ## 0000016C
/* 004C0 8087C2B0 A602016C */ sh $v0, 0x016C($s0) ## 0000016C
.L8087C2B4:
/* 004C4 8087C2B4 8606016C */ lh $a2, 0x016C($s0) ## 0000016C
/* 004C8 8087C2B8 AFA3002C */ sw $v1, 0x002C($sp)
/* 004CC 8087C2BC 0C01DE5F */ jal Math_StepToS
/* 004D0 8087C2C0 2604016E */ addiu $a0, $s0, 0x016E ## $a0 = 0000016E
/* 004D4 8087C2C4 AFA20028 */ sw $v0, 0x0028($sp)
/* 004D8 8087C2C8 8608016A */ lh $t0, 0x016A($s0) ## 0000016A
/* 004DC 8087C2CC 8619016E */ lh $t9, 0x016E($s0) ## 0000016E
/* 004E0 8087C2D0 86090170 */ lh $t1, 0x0170($s0) ## 00000170
/* 004E4 8087C2D4 3C018088 */ lui $at, %hi(D_8087CD9C) ## $at = 80880000
/* 004E8 8087C2D8 03280019 */ multu $t9, $t0
/* 004EC 8087C2DC C428CD9C */ lwc1 $f8, %lo(D_8087CD9C)($at)
/* 004F0 8087C2E0 3C018088 */ lui $at, %hi(D_8087CDA0) ## $at = 80880000
/* 004F4 8087C2E4 C430CDA0 */ lwc1 $f16, %lo(D_8087CDA0)($at)
/* 004F8 8087C2E8 8FA3002C */ lw $v1, 0x002C($sp)
/* 004FC 8087C2EC 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 00500 8087C2F0 00002812 */ mflo $a1
/* 00504 8087C2F4 00052C00 */ sll $a1, $a1, 16
/* 00508 8087C2F8 00052C03 */ sra $a1, $a1, 16
/* 0050C 8087C2FC 01255021 */ addu $t2, $t1, $a1
/* 00510 8087C300 448A2000 */ mtc1 $t2, $f4 ## $f4 = 0.00
/* 00514 8087C304 00000000 */ nop
/* 00518 8087C308 468021A0 */ cvt.s.w $f6, $f4
/* 0051C 8087C30C 46083282 */ mul.s $f10, $f6, $f8
/* 00520 8087C310 00000000 */ nop
/* 00524 8087C314 46105482 */ mul.s $f18, $f10, $f16
/* 00528 8087C318 4600910D */ trunc.w.s $f4, $f18
/* 0052C 8087C31C 440C2000 */ mfc1 $t4, $f4
/* 00530 8087C320 00000000 */ nop
/* 00534 8087C324 A60C00B6 */ sh $t4, 0x00B6($s0) ## 000000B6
/* 00538 8087C328 8C6D0680 */ lw $t5, 0x0680($v1) ## 00000680
/* 0053C 8087C32C 31AE0010 */ andi $t6, $t5, 0x0010 ## $t6 = 00000000
/* 00540 8087C330 11C00025 */ beq $t6, $zero, .L8087C3C8
/* 00544 8087C334 00000000 */ nop
/* 00548 8087C338 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
/* 0054C 8087C33C C428CCD8 */ lwc1 $f8, %lo(D_8087CCD8)($at)
/* 00550 8087C340 4608303C */ c.lt.s $f6, $f8
/* 00554 8087C344 00000000 */ nop
/* 00558 8087C348 45020020 */ bc1fl .L8087C3CC
/* 0055C 8087C34C 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 00560 8087C350 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6
/* 00564 8087C354 86180172 */ lh $t8, 0x0172($s0) ## 00000172
/* 00568 8087C358 A7A50026 */ sh $a1, 0x0026($sp)
/* 0056C 8087C35C AFA3002C */ sw $v1, 0x002C($sp)
/* 00570 8087C360 01F82023 */ subu $a0, $t7, $t8
/* 00574 8087C364 00042400 */ sll $a0, $a0, 16
/* 00578 8087C368 0C01DE1C */ jal Math_SinS
## sins?
/* 0057C 8087C36C 00042403 */ sra $a0, $a0, 16
/* 00580 8087C370 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 00584 8087C374 C42ACCD8 */ lwc1 $f10, %lo(D_8087CCD8)($at)
/* 00588 8087C378 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008
/* 0058C 8087C37C 8FA3002C */ lw $v1, 0x002C($sp)
/* 00590 8087C380 460A0402 */ mul.s $f16, $f0, $f10
/* 00594 8087C384 46128100 */ add.s $f4, $f16, $f18
/* 00598 8087C388 E4640024 */ swc1 $f4, 0x0024($v1) ## 00000024
/* 0059C 8087C38C 86080172 */ lh $t0, 0x0172($s0) ## 00000172
/* 005A0 8087C390 861900B6 */ lh $t9, 0x00B6($s0) ## 000000B6
/* 005A4 8087C394 03282023 */ subu $a0, $t9, $t0
/* 005A8 8087C398 00042400 */ sll $a0, $a0, 16
/* 005AC 8087C39C 0C01DE0D */ jal Math_CosS
## coss?
/* 005B0 8087C3A0 00042403 */ sra $a0, $a0, 16
/* 005B4 8087C3A4 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 005B8 8087C3A8 C426CCD8 */ lwc1 $f6, %lo(D_8087CCD8)($at)
/* 005BC 8087C3AC C60A0010 */ lwc1 $f10, 0x0010($s0) ## 00000010
/* 005C0 8087C3B0 8FA3002C */ lw $v1, 0x002C($sp)
/* 005C4 8087C3B4 46060202 */ mul.s $f8, $f0, $f6
/* 005C8 8087C3B8 87A50026 */ lh $a1, 0x0026($sp)
/* 005CC 8087C3BC 460A4400 */ add.s $f16, $f8, $f10
/* 005D0 8087C3C0 10000004 */ beq $zero, $zero, .L8087C3D4
/* 005D4 8087C3C4 E470002C */ swc1 $f16, 0x002C($v1) ## 0000002C
.L8087C3C8:
/* 005D8 8087C3C8 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
.L8087C3CC:
/* 005DC 8087C3CC 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 005E0 8087C3D0 E432CCD8 */ swc1 $f18, %lo(D_8087CCD8)($at)
.L8087C3D4:
/* 005E4 8087C3D4 8FAA0028 */ lw $t2, 0x0028($sp)
/* 005E8 8087C3D8 860900B6 */ lh $t1, 0x00B6($s0) ## 000000B6
/* 005EC 8087C3DC 3C018088 */ lui $at, %hi(D_8087CFB0) ## $at = 80880000
/* 005F0 8087C3E0 11400014 */ beq $t2, $zero, .L8087C434
/* 005F4 8087C3E4 A429CFB0 */ sh $t1, %lo(D_8087CFB0)($at)
/* 005F8 8087C3E8 8C6B0680 */ lw $t3, 0x0680($v1) ## 00000680
/* 005FC 8087C3EC 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00600 8087C3F0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00604 8087C3F4 01616024 */ and $t4, $t3, $at
/* 00608 8087C3F8 AC6C0680 */ sw $t4, 0x0680($v1) ## 00000680
/* 0060C 8087C3FC 860D0170 */ lh $t5, 0x0170($s0) ## 00000170
/* 00610 8087C400 24010E10 */ addiu $at, $zero, 0x0E10 ## $at = 00000E10
/* 00614 8087C404 3C198088 */ lui $t9, %hi(func_8087C158) ## $t9 = 80880000
/* 00618 8087C408 01A57021 */ addu $t6, $t5, $a1
/* 0061C 8087C40C 01C1001A */ div $zero, $t6, $at
/* 00620 8087C410 00007810 */ mfhi $t7
/* 00624 8087C414 24180005 */ addiu $t8, $zero, 0x0005 ## $t8 = 00000005
/* 00628 8087C418 2739C158 */ addiu $t9, $t9, %lo(func_8087C158) ## $t9 = 8087C158
/* 0062C 8087C41C A60F0170 */ sh $t7, 0x0170($s0) ## 00000170
/* 00630 8087C420 A600016C */ sh $zero, 0x016C($s0) ## 0000016C
/* 00634 8087C424 A600016E */ sh $zero, 0x016E($s0) ## 0000016E
/* 00638 8087C428 A618016A */ sh $t8, 0x016A($s0) ## 0000016A
/* 0063C 8087C42C AE190164 */ sw $t9, 0x0164($s0) ## 00000164
/* 00640 8087C430 E6040150 */ swc1 $f4, 0x0150($s0) ## 00000150
.L8087C434:
/* 00644 8087C434 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00648 8087C438 0C00BE5D */ jal func_8002F974
/* 0064C 8087C43C 2405200A */ addiu $a1, $zero, 0x200A ## $a1 = 0000200A
/* 00650 8087C440 8FBF001C */ lw $ra, 0x001C($sp)
/* 00654 8087C444 8FB00018 */ lw $s0, 0x0018($sp)
/* 00658 8087C448 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0065C 8087C44C 03E00008 */ jr $ra
/* 00660 8087C450 00000000 */ nop

View file

@ -1,106 +0,0 @@
glabel func_8087C454
/* 00664 8087C454 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00668 8087C458 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
/* 0066C 8087C45C 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 00670 8087C460 C426CCD8 */ lwc1 $f6, %lo(D_8087CCD8)($at)
/* 00674 8087C464 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00678 8087C468 AFB00018 */ sw $s0, 0x0018($sp)
/* 0067C 8087C46C 4606203C */ c.lt.s $f4, $f6
/* 00680 8087C470 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00684 8087C474 AFBF001C */ sw $ra, 0x001C($sp)
/* 00688 8087C478 AFA50034 */ sw $a1, 0x0034($sp)
/* 0068C 8087C47C 4500004F */ bc1f .L8087C5BC
/* 00690 8087C480 3C048088 */ lui $a0, %hi(D_8087CFB0) ## $a0 = 80880000
/* 00694 8087C484 8484CFB0 */ lh $a0, %lo(D_8087CFB0)($a0)
/* 00698 8087C488 5080004D */ beql $a0, $zero, .L8087C5C0
/* 0069C 8087C48C 8FBF001C */ lw $ra, 0x001C($sp)
/* 006A0 8087C490 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 006A4 8087C494 0C01DE0D */ jal Math_CosS
## coss?
/* 006A8 8087C498 AFAF002C */ sw $t7, 0x002C($sp)
/* 006AC 8087C49C 3C048088 */ lui $a0, %hi(D_8087CFB0) ## $a0 = 80880000
/* 006B0 8087C4A0 8484CFB0 */ lh $a0, %lo(D_8087CFB0)($a0)
/* 006B4 8087C4A4 0C01DE1C */ jal Math_SinS
## sins?
/* 006B8 8087C4A8 E7A00020 */ swc1 $f0, 0x0020($sp)
/* 006BC 8087C4AC 8FA2002C */ lw $v0, 0x002C($sp)
/* 006C0 8087C4B0 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 006C4 8087C4B4 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 006C8 8087C4B8 C4480024 */ lwc1 $f8, 0x0024($v0) ## 00000024
/* 006CC 8087C4BC C452002C */ lwc1 $f18, 0x002C($v0) ## 0000002C
/* 006D0 8087C4C0 C7AE0020 */ lwc1 $f14, 0x0020($sp)
/* 006D4 8087C4C4 460A4081 */ sub.s $f2, $f8, $f10
/* 006D8 8087C4C8 3C0142DC */ lui $at, 0x42DC ## $at = 42DC0000
/* 006DC 8087C4CC 44815000 */ mtc1 $at, $f10 ## $f10 = 110.00
/* 006E0 8087C4D0 46049301 */ sub.s $f12, $f18, $f4
/* 006E4 8087C4D4 46001182 */ mul.s $f6, $f2, $f0
/* 006E8 8087C4D8 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 006EC 8087C4DC 3C188088 */ lui $t8, %hi(D_8087CCD0) ## $t8 = 80880000
/* 006F0 8087C4E0 460E6202 */ mul.s $f8, $f12, $f14
/* 006F4 8087C4E4 3C198088 */ lui $t9, %hi(D_8087CFB0) ## $t9 = 80880000
/* 006F8 8087C4E8 460E1482 */ mul.s $f18, $f2, $f14
/* 006FC 8087C4EC 00000000 */ nop
/* 00700 8087C4F0 46006102 */ mul.s $f4, $f12, $f0
/* 00704 8087C4F4 46083400 */ add.s $f16, $f6, $f8
/* 00708 8087C4F8 46049181 */ sub.s $f6, $f18, $f4
/* 0070C 8087C4FC 4606503C */ c.lt.s $f10, $f6
/* 00710 8087C500 00000000 */ nop
/* 00714 8087C504 45010007 */ bc1t .L8087C524
/* 00718 8087C508 00000000 */ nop
/* 0071C 8087C50C 44814000 */ mtc1 $at, $f8 ## $f8 = 40.00
/* 00720 8087C510 46008005 */ abs.s $f0, $f16
/* 00724 8087C514 4600403C */ c.lt.s $f8, $f0
/* 00728 8087C518 00000000 */ nop
/* 0072C 8087C51C 45020028 */ bc1fl .L8087C5C0
/* 00730 8087C520 8FBF001C */ lw $ra, 0x001C($sp)
.L8087C524:
/* 00734 8087C524 8718CCD0 */ lh $t8, %lo(D_8087CCD0)($t8)
/* 00738 8087C528 8739CFB0 */ lh $t9, %lo(D_8087CFB0)($t9)
/* 0073C 8087C52C 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 00740 8087C530 3C018088 */ lui $at, %hi(D_8087CCD8) ## $at = 80880000
/* 00744 8087C534 03191023 */ subu $v0, $t8, $t9
/* 00748 8087C538 00021400 */ sll $v0, $v0, 16
/* 0074C 8087C53C 00021403 */ sra $v0, $v0, 16
/* 00750 8087C540 04400003 */ bltz $v0, .L8087C550
/* 00754 8087C544 E432CCD8 */ swc1 $f18, %lo(D_8087CCD8)($at)
/* 00758 8087C548 10000002 */ beq $zero, $zero, .L8087C554
/* 0075C 8087C54C 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
.L8087C550:
/* 00760 8087C550 00021823 */ subu $v1, $zero, $v0
.L8087C554:
/* 00764 8087C554 28610080 */ slti $at, $v1, 0x0080
/* 00768 8087C558 1020000A */ beq $at, $zero, .L8087C584
/* 0076C 8087C55C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00770 8087C560 0C00B2DD */ jal Flags_SetSwitch
/* 00774 8087C564 92050168 */ lbu $a1, 0x0168($s0) ## 00000168
/* 00778 8087C568 24080064 */ addiu $t0, $zero, 0x0064 ## $t0 = 00000064
/* 0077C 8087C56C 3C018088 */ lui $at, %hi(D_8087CCD4) ## $at = 80880000
/* 00780 8087C570 3C098088 */ lui $t1, %hi(func_8087C114) ## $t1 = 80880000
/* 00784 8087C574 A028CCD4 */ sb $t0, %lo(D_8087CCD4)($at)
/* 00788 8087C578 2529C114 */ addiu $t1, $t1, %lo(func_8087C114) ## $t1 = 8087C114
/* 0078C 8087C57C 1000000F */ beq $zero, $zero, .L8087C5BC
/* 00790 8087C580 AE090164 */ sw $t1, 0x0164($s0) ## 00000164
.L8087C584:
/* 00794 8087C584 0C01E221 */ jal func_80078884
/* 00798 8087C588 24044806 */ addiu $a0, $zero, 0x4806 ## $a0 = 00004806
/* 0079C 8087C58C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007A0 8087C590 0C00BE0A */ jal Audio_PlayActorSound2
/* 007A4 8087C594 240528CE */ addiu $a1, $zero, 0x28CE ## $a1 = 000028CE
/* 007A8 8087C598 8FA40034 */ lw $a0, 0x0034($sp)
/* 007AC 8087C59C 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C
/* 007B0 8087C5A0 0C00FAFE */ jal func_8003EBF8
/* 007B4 8087C5A4 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 007B8 8087C5A8 3C0B8088 */ lui $t3, %hi(func_8087C5D0) ## $t3 = 80880000
/* 007BC 8087C5AC 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C
/* 007C0 8087C5B0 256BC5D0 */ addiu $t3, $t3, %lo(func_8087C5D0) ## $t3 = 8087C5D0
/* 007C4 8087C5B4 A60A016A */ sh $t2, 0x016A($s0) ## 0000016A
/* 007C8 8087C5B8 AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164
.L8087C5BC:
/* 007CC 8087C5BC 8FBF001C */ lw $ra, 0x001C($sp)
.L8087C5C0:
/* 007D0 8087C5C0 8FB00018 */ lw $s0, 0x0018($sp)
/* 007D4 8087C5C4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 007D8 8087C5C8 03E00008 */ jr $ra
/* 007DC 8087C5CC 00000000 */ nop

View file

@ -1,41 +0,0 @@
glabel func_8087C5D0
/* 007E0 8087C5D0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007E4 8087C5D4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 007E8 8087C5D8 AFA5001C */ sw $a1, 0x001C($sp)
/* 007EC 8087C5DC 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
/* 007F0 8087C5E0 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 007F4 8087C5E4 24053000 */ addiu $a1, $zero, 0x3000 ## $a1 = 00003000
/* 007F8 8087C5E8 10400003 */ beq $v0, $zero, .L8087C5F8
/* 007FC 8087C5EC 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00800 8087C5F0 A48E016A */ sh $t6, 0x016A($a0) ## 0000016A
/* 00804 8087C5F4 8482016A */ lh $v0, 0x016A($a0) ## 0000016A
.L8087C5F8:
/* 00808 8087C5F8 14400012 */ bne $v0, $zero, .L8087C644
/* 0080C 8087C5FC 24E4016C */ addiu $a0, $a3, 0x016C ## $a0 = 0000016C
/* 00810 8087C600 24E4016C */ addiu $a0, $a3, 0x016C ## $a0 = 0000016C
/* 00814 8087C604 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00818 8087C608 24060800 */ addiu $a2, $zero, 0x0800 ## $a2 = 00000800
/* 0081C 8087C60C 0C01DE2B */ jal Math_ScaledStepToS
/* 00820 8087C610 AFA70018 */ sw $a3, 0x0018($sp)
/* 00824 8087C614 8FA4001C */ lw $a0, 0x001C($sp)
/* 00828 8087C618 1040000C */ beq $v0, $zero, .L8087C64C
/* 0082C 8087C61C 8FA70018 */ lw $a3, 0x0018($sp)
/* 00830 8087C620 8CE6014C */ lw $a2, 0x014C($a3) ## 0000014C
/* 00834 8087C624 AFA70018 */ sw $a3, 0x0018($sp)
/* 00838 8087C628 0C00FB14 */ jal func_8003EC50
/* 0083C 8087C62C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00840 8087C630 8FA70018 */ lw $a3, 0x0018($sp)
/* 00844 8087C634 3C0F8088 */ lui $t7, %hi(func_8087C454) ## $t7 = 80880000
/* 00848 8087C638 25EFC454 */ addiu $t7, $t7, %lo(func_8087C454) ## $t7 = 8087C454
/* 0084C 8087C63C 10000003 */ beq $zero, $zero, .L8087C64C
/* 00850 8087C640 ACEF0164 */ sw $t7, 0x0164($a3) ## 00000164
.L8087C644:
/* 00854 8087C644 0C01DE2B */ jal Math_ScaledStepToS
/* 00858 8087C648 24060800 */ addiu $a2, $zero, 0x0800 ## $a2 = 00000800
.L8087C64C:
/* 0085C 8087C64C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00860 8087C650 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00864 8087C654 03E00008 */ jr $ra
/* 00868 8087C658 00000000 */ nop

View file

@ -1,23 +0,0 @@
glabel func_8087C65C
/* 0086C 8087C65C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00870 8087C660 AFA40018 */ sw $a0, 0x0018($sp)
/* 00874 8087C664 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00878 8087C668 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0087C 8087C66C AFA5001C */ sw $a1, 0x001C($sp)
/* 00880 8087C670 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00884 8087C674 0C00B2D0 */ jal Flags_GetSwitch
/* 00888 8087C678 91C50168 */ lbu $a1, 0x0168($t6) ## 00000168
/* 0088C 8087C67C 10400007 */ beq $v0, $zero, .L8087C69C
/* 00890 8087C680 8FA4001C */ lw $a0, 0x001C($sp)
/* 00894 8087C684 0C020120 */ jal func_80080480
/* 00898 8087C688 8FA50018 */ lw $a1, 0x0018($sp)
/* 0089C 8087C68C 8FB80018 */ lw $t8, 0x0018($sp)
/* 008A0 8087C690 3C0F8088 */ lui $t7, %hi(func_8087C6AC) ## $t7 = 80880000
/* 008A4 8087C694 25EFC6AC */ addiu $t7, $t7, %lo(func_8087C6AC) ## $t7 = 8087C6AC
/* 008A8 8087C698 AF0F0164 */ sw $t7, 0x0164($t8) ## 00000164
.L8087C69C:
/* 008AC 8087C69C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008B0 8087C6A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008B4 8087C6A4 03E00008 */ jr $ra
/* 008B8 8087C6A8 00000000 */ nop

View file

@ -1,41 +0,0 @@
glabel func_8087C6AC
/* 008BC 8087C6AC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008C0 8087C6B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 008C4 8087C6B4 AFA5001C */ sw $a1, 0x001C($sp)
/* 008C8 8087C6B8 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 008CC 8087C6BC 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 008D0 8087C6C0 44813000 */ mtc1 $at, $f6 ## $f6 = 80.00
/* 008D4 8087C6C4 C4E4000C */ lwc1 $f4, 0x000C($a3) ## 0000000C
/* 008D8 8087C6C8 AFA70018 */ sw $a3, 0x0018($sp)
/* 008DC 8087C6CC 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 008E0 8087C6D0 46062200 */ add.s $f8, $f4, $f6
/* 008E4 8087C6D4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 008E8 8087C6D8 44054000 */ mfc1 $a1, $f8
/* 008EC 8087C6DC 0C01DE80 */ jal Math_StepToF
/* 008F0 8087C6E0 00000000 */ nop
/* 008F4 8087C6E4 1040000E */ beq $v0, $zero, .L8087C720
/* 008F8 8087C6E8 8FA70018 */ lw $a3, 0x0018($sp)
/* 008FC 8087C6EC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00900 8087C6F0 24052837 */ addiu $a1, $zero, 0x2837 ## $a1 = 00002837
/* 00904 8087C6F4 0C00BE0A */ jal Audio_PlayActorSound2
/* 00908 8087C6F8 AFA70018 */ sw $a3, 0x0018($sp)
/* 0090C 8087C6FC 8FA70018 */ lw $a3, 0x0018($sp)
/* 00910 8087C700 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00914 8087C704 3C188088 */ lui $t8, %hi(func_8087C114) ## $t8 = 80880000
/* 00918 8087C708 8CEE0004 */ lw $t6, 0x0004($a3) ## 00000004
/* 0091C 8087C70C 2718C114 */ addiu $t8, $t8, %lo(func_8087C114) ## $t8 = 8087C114
/* 00920 8087C710 ACF80164 */ sw $t8, 0x0164($a3) ## 00000164
/* 00924 8087C714 01C17824 */ and $t7, $t6, $at
/* 00928 8087C718 10000004 */ beq $zero, $zero, .L8087C72C
/* 0092C 8087C71C ACEF0004 */ sw $t7, 0x0004($a3) ## 00000004
.L8087C720:
/* 00930 8087C720 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00934 8087C724 0C00BE5D */ jal func_8002F974
/* 00938 8087C728 24052036 */ addiu $a1, $zero, 0x2036 ## $a1 = 00002036
.L8087C72C:
/* 0093C 8087C72C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00940 8087C730 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00944 8087C734 03E00008 */ jr $ra
/* 00948 8087C738 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_8087C73C
/* 0094C 8087C73C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00950 8087C740 AFA40018 */ sw $a0, 0x0018($sp)
/* 00954 8087C744 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00958 8087C748 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0095C 8087C74C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00960 8087C750 0C00B2D0 */ jal Flags_GetSwitch
/* 00964 8087C754 91C50168 */ lbu $a1, 0x0168($t6) ## 00000168
/* 00968 8087C758 1040000A */ beq $v0, $zero, .L8087C784
/* 0096C 8087C75C 8FA40018 */ lw $a0, 0x0018($sp)
/* 00970 8087C760 2484016E */ addiu $a0, $a0, 0x016E ## $a0 = 0000016E
/* 00974 8087C764 2405015E */ addiu $a1, $zero, 0x015E ## $a1 = 0000015E
/* 00978 8087C768 0C01DE5F */ jal Math_StepToS
/* 0097C 8087C76C 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
/* 00980 8087C770 10400004 */ beq $v0, $zero, .L8087C784
/* 00984 8087C774 8FB80018 */ lw $t8, 0x0018($sp)
/* 00988 8087C778 3C0F8088 */ lui $t7, %hi(func_8087C114) ## $t7 = 80880000
/* 0098C 8087C77C 25EFC114 */ addiu $t7, $t7, %lo(func_8087C114) ## $t7 = 8087C114
/* 00990 8087C780 AF0F0164 */ sw $t7, 0x0164($t8) ## 00000164
.L8087C784:
/* 00994 8087C784 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00998 8087C788 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0099C 8087C78C 03E00008 */ jr $ra
/* 009A0 8087C790 00000000 */ nop

View file

@ -1,38 +0,0 @@
glabel func_8087C794
/* 009A4 8087C794 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 009A8 8087C798 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 009AC 8087C79C AFBF0014 */ sw $ra, 0x0014($sp)
/* 009B0 8087C7A0 AFA5001C */ sw $a1, 0x001C($sp)
/* 009B4 8087C7A4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 009B8 8087C7A8 90E50168 */ lbu $a1, 0x0168($a3) ## 00000168
/* 009BC 8087C7AC 0C00B2D0 */ jal Flags_GetSwitch
/* 009C0 8087C7B0 AFA70018 */ sw $a3, 0x0018($sp)
/* 009C4 8087C7B4 10400007 */ beq $v0, $zero, .L8087C7D4
/* 009C8 8087C7B8 8FA70018 */ lw $a3, 0x0018($sp)
/* 009CC 8087C7BC 24E4016E */ addiu $a0, $a3, 0x016E ## $a0 = 0000016E
/* 009D0 8087C7C0 2405015E */ addiu $a1, $zero, 0x015E ## $a1 = 0000015E
/* 009D4 8087C7C4 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
/* 009D8 8087C7C8 0C01DE5F */ jal Math_StepToS
/* 009DC 8087C7CC AFA70018 */ sw $a3, 0x0018($sp)
/* 009E0 8087C7D0 8FA70018 */ lw $a3, 0x0018($sp)
.L8087C7D4:
/* 009E4 8087C7D4 8FAE001C */ lw $t6, 0x001C($sp)
/* 009E8 8087C7D8 91CF1C27 */ lbu $t7, 0x1C27($t6) ## 00001C27
/* 009EC 8087C7DC 51E00006 */ beql $t7, $zero, .L8087C7F8
/* 009F0 8087C7E0 8CE80004 */ lw $t0, 0x0004($a3) ## 00000004
/* 009F4 8087C7E4 8CF80004 */ lw $t8, 0x0004($a3) ## 00000004
/* 009F8 8087C7E8 37190080 */ ori $t9, $t8, 0x0080 ## $t9 = 00000080
/* 009FC 8087C7EC 10000005 */ beq $zero, $zero, .L8087C804
/* 00A00 8087C7F0 ACF90004 */ sw $t9, 0x0004($a3) ## 00000004
/* 00A04 8087C7F4 8CE80004 */ lw $t0, 0x0004($a3) ## 00000004
.L8087C7F8:
/* 00A08 8087C7F8 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F
/* 00A0C 8087C7FC 01014824 */ and $t1, $t0, $at
/* 00A10 8087C800 ACE90004 */ sw $t1, 0x0004($a3) ## 00000004
.L8087C804:
/* 00A14 8087C804 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A18 8087C808 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A1C 8087C80C 03E00008 */ jr $ra
/* 00A20 8087C810 00000000 */ nop

View file

@ -1,156 +0,0 @@
.rdata
glabel D_8087CD10
.asciz "../z_bg_haka_gate.c"
.balign 4
glabel D_8087CD24
.asciz "../z_bg_haka_gate.c"
.balign 4
glabel D_8087CD38
.asciz "../z_bg_haka_gate.c"
.balign 4
.late_rodata
glabel D_8087CDA4
.float 9.58738e-5
glabel D_8087CDA8
.float 1.0e-5
.text
glabel func_8087C85C
/* 00A6C 8087C85C 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88
/* 00A70 8087C860 AFBF003C */ sw $ra, 0x003C($sp)
/* 00A74 8087C864 AFB10038 */ sw $s1, 0x0038($sp)
/* 00A78 8087C868 AFB00034 */ sw $s0, 0x0034($sp)
/* 00A7C 8087C86C AFA40078 */ sw $a0, 0x0078($sp)
/* 00A80 8087C870 848F016E */ lh $t7, 0x016E($a0) ## 0000016E
/* 00A84 8087C874 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00A88 8087C878 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFE4
/* 00A8C 8087C87C 19E00077 */ blez $t7, .L8087CA5C
/* 00A90 8087C880 3C068088 */ lui $a2, %hi(D_8087CD10) ## $a2 = 80880000
/* 00A94 8087C884 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00A98 8087C888 24C6CD10 */ addiu $a2, $a2, %lo(D_8087CD10) ## $a2 = 8087CD10
/* 00A9C 8087C88C 240702CC */ addiu $a3, $zero, 0x02CC ## $a3 = 000002CC
/* 00AA0 8087C890 0C031AB1 */ jal Graph_OpenDisps
/* 00AA4 8087C894 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00AA8 8087C898 0C024F61 */ jal func_80093D84
/* 00AAC 8087C89C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00AB0 8087C8A0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00AB4 8087C8A4 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 00AB8 8087C8A8 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 00ABC 8087C8AC 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00AC0 8087C8B0 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00AC4 8087C8B4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00AC8 8087C8B8 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00ACC 8087C8BC 8FAB0078 */ lw $t3, 0x0078($sp)
/* 00AD0 8087C8C0 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
/* 00AD4 8087C8C4 24090040 */ addiu $t1, $zero, 0x0040 ## $t1 = 00000040
/* 00AD8 8087C8C8 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00ADC 8087C8CC AFAA0018 */ sw $t2, 0x0018($sp)
/* 00AE0 8087C8D0 AFA90014 */ sw $t1, 0x0014($sp)
/* 00AE4 8087C8D4 AFA80010 */ sw $t0, 0x0010($sp)
/* 00AE8 8087C8D8 AFA0001C */ sw $zero, 0x001C($sp)
/* 00AEC 8087C8DC 856C0172 */ lh $t4, 0x0172($t3) ## 00000172
/* 00AF0 8087C8E0 24180080 */ addiu $t8, $zero, 0x0080 ## $t8 = 00000080
/* 00AF4 8087C8E4 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 00AF8 8087C8E8 000C0823 */ subu $at, $zero, $t4
/* 00AFC 8087C8EC 00016880 */ sll $t5, $at, 2
/* 00B00 8087C8F0 01A16821 */ addu $t5, $t5, $at
/* 00B04 8087C8F4 000D6880 */ sll $t5, $t5, 2
/* 00B08 8087C8F8 31AE01FF */ andi $t6, $t5, 0x01FF ## $t6 = 00000000
/* 00B0C 8087C8FC AFAE0020 */ sw $t6, 0x0020($sp)
/* 00B10 8087C900 AFAF0024 */ sw $t7, 0x0024($sp)
/* 00B14 8087C904 AFB80028 */ sw $t8, 0x0028($sp)
/* 00B18 8087C908 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00B1C 8087C90C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00B20 8087C910 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00B24 8087C914 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00B28 8087C918 AFA20058 */ sw $v0, 0x0058($sp)
/* 00B2C 8087C91C 8FA30058 */ lw $v1, 0x0058($sp)
/* 00B30 8087C920 3C08FA00 */ lui $t0, 0xFA00 ## $t0 = FA000000
/* 00B34 8087C924 3C09FFFF */ lui $t1, 0xFFFF ## $t1 = FFFF0000
/* 00B38 8087C928 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00B3C 8087C92C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00B40 8087C930 352900FF */ ori $t1, $t1, 0x00FF ## $t1 = FFFF00FF
/* 00B44 8087C934 35088080 */ ori $t0, $t0, 0x8080 ## $t0 = FA008080
/* 00B48 8087C938 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00B4C 8087C93C AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 00B50 8087C940 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 00B54 8087C944 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 00B58 8087C948 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00B5C 8087C94C 3C0BFB00 */ lui $t3, 0xFB00 ## $t3 = FB000000
/* 00B60 8087C950 3C0CFF00 */ lui $t4, 0xFF00 ## $t4 = FF000000
/* 00B64 8087C954 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 00B68 8087C958 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 00B6C 8087C95C AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00B70 8087C960 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00B74 8087C964 8FA20078 */ lw $v0, 0x0078($sp)
/* 00B78 8087C968 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00B7C 8087C96C 44813000 */ mtc1 $at, $f6 ## $f6 = 15.00
/* 00B80 8087C970 C4440028 */ lwc1 $f4, 0x0028($v0) ## 00000028
/* 00B84 8087C974 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00B88 8087C978 C44C0024 */ lwc1 $f12, 0x0024($v0) ## 00000024
/* 00B8C 8087C97C 8C46002C */ lw $a2, 0x002C($v0) ## 0000002C
/* 00B90 8087C980 0C034261 */ jal Matrix_Translate
/* 00B94 8087C984 46062380 */ add.s $f14, $f4, $f6
/* 00B98 8087C988 862D07A0 */ lh $t5, 0x07A0($s1) ## 000007A0
/* 00B9C 8087C98C 000D7080 */ sll $t6, $t5, 2
/* 00BA0 8087C990 022E7821 */ addu $t7, $s1, $t6
/* 00BA4 8087C994 0C016A7D */ jal Camera_GetCamDirYaw
/* 00BA8 8087C998 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790
/* 00BAC 8087C99C 44824000 */ mtc1 $v0, $f8 ## $f8 = 0.00
/* 00BB0 8087C9A0 3C018088 */ lui $at, %hi(D_8087CDA4) ## $at = 80880000
/* 00BB4 8087C9A4 C430CDA4 */ lwc1 $f16, %lo(D_8087CDA4)($at)
/* 00BB8 8087C9A8 468042A0 */ cvt.s.w $f10, $f8
/* 00BBC 8087C9AC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00BC0 8087C9B0 46105302 */ mul.s $f12, $f10, $f16
/* 00BC4 8087C9B4 0C034348 */ jal Matrix_RotateY
/* 00BC8 8087C9B8 00000000 */ nop
/* 00BCC 8087C9BC 8FB80078 */ lw $t8, 0x0078($sp)
/* 00BD0 8087C9C0 3C018088 */ lui $at, %hi(D_8087CDA8) ## $at = 80880000
/* 00BD4 8087C9C4 C426CDA8 */ lwc1 $f6, %lo(D_8087CDA8)($at)
/* 00BD8 8087C9C8 8719016E */ lh $t9, 0x016E($t8) ## 0000016E
/* 00BDC 8087C9CC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00BE0 8087C9D0 44999000 */ mtc1 $t9, $f18 ## $f18 = 0.00
/* 00BE4 8087C9D4 00000000 */ nop
/* 00BE8 8087C9D8 46809120 */ cvt.s.w $f4, $f18
/* 00BEC 8087C9DC 46062302 */ mul.s $f12, $f4, $f6
/* 00BF0 8087C9E0 44066000 */ mfc1 $a2, $f12
/* 00BF4 8087C9E4 0C0342A3 */ jal Matrix_Scale
/* 00BF8 8087C9E8 46006386 */ mov.s $f14, $f12
/* 00BFC 8087C9EC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00C00 8087C9F0 3C09DA38 */ lui $t1, 0xDA38 ## $t1 = DA380000
/* 00C04 8087C9F4 35290003 */ ori $t1, $t1, 0x0003 ## $t1 = DA380003
/* 00C08 8087C9F8 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 00C0C 8087C9FC AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0
/* 00C10 8087CA00 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00C14 8087CA04 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00C18 8087CA08 3C058088 */ lui $a1, %hi(D_8087CD24) ## $a1 = 80880000
/* 00C1C 8087CA0C 24A5CD24 */ addiu $a1, $a1, %lo(D_8087CD24) ## $a1 = 8087CD24
/* 00C20 8087CA10 240602E8 */ addiu $a2, $zero, 0x02E8 ## $a2 = 000002E8
/* 00C24 8087CA14 0C0346A2 */ jal Matrix_NewMtx
/* 00C28 8087CA18 AFA2004C */ sw $v0, 0x004C($sp)
/* 00C2C 8087CA1C 8FA3004C */ lw $v1, 0x004C($sp)
/* 00C30 8087CA20 3C0C0405 */ lui $t4, %hi(D_0404D4E0) ## $t4 = 04050000
/* 00C34 8087CA24 258CD4E0 */ addiu $t4, $t4, %lo(D_0404D4E0) ## $t4 = 0404D4E0
/* 00C38 8087CA28 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00C3C 8087CA2C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00C40 8087CA30 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 00C44 8087CA34 3C068088 */ lui $a2, %hi(D_8087CD38) ## $a2 = 80880000
/* 00C48 8087CA38 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 00C4C 8087CA3C AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 00C50 8087CA40 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00C54 8087CA44 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00C58 8087CA48 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00C5C 8087CA4C 24C6CD38 */ addiu $a2, $a2, %lo(D_8087CD38) ## $a2 = 8087CD38
/* 00C60 8087CA50 27A4005C */ addiu $a0, $sp, 0x005C ## $a0 = FFFFFFE4
/* 00C64 8087CA54 0C031AD5 */ jal Graph_CloseDisps
/* 00C68 8087CA58 240702ED */ addiu $a3, $zero, 0x02ED ## $a3 = 000002ED
.L8087CA5C:
/* 00C6C 8087CA5C 8FBF003C */ lw $ra, 0x003C($sp)
/* 00C70 8087CA60 8FB00034 */ lw $s0, 0x0034($sp)
/* 00C74 8087CA64 8FB10038 */ lw $s1, 0x0038($sp)
/* 00C78 8087CA68 03E00008 */ jr $ra
/* 00C7C 8087CA6C 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000

View file

@ -1,14 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .bss
.balign 16
glabel D_8087CFB0
.space 0x10

View file

@ -1,28 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel D_8087CCD0
.word 0x01000000
glabel D_8087CCD4
.word 0x01000000
glabel D_8087CCD8
.word 0x00000000
glabel Bg_Haka_Gate_InitVars
.word 0x00F70600, 0x00000000, 0x00690000, 0x00000174
.word BgHakaGate_Init
.word BgHakaGate_Destroy
.word BgHakaGate_Update
.word BgHakaGate_Draw
glabel D_8087CCFC
.word 0x48500064
glabel D_8087CD00
.word 0x06012270, 0x06010A10, 0x0600A860, 0x0600F1B0

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_8087CDC0
.incbin "baserom/ovl_Bg_Haka_Gate", 0xFD0, 0x000001F0

4
spec
View file

@ -737,9 +737,7 @@ endseg
beginseg
name "ovl_Bg_Haka_Gate"
include "build/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o"
include "build/data/overlays/actors/z_bg_haka_gate.data.o"
include "build/data/overlays/actors/z_bg_haka_gate.bss.o"
include "build/data/overlays/actors/z_bg_haka_gate.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o"
endseg
beginseg

View file

@ -10,31 +10,56 @@
#define THIS ((BgHakaGate*)thisx)
// general purpose timer
#define vTimer actionVar1
// variables for turning the statue. Deg10 rotations are in tenths of a degree
#define vTurnDirection actionVar1
#define vTurnRateDeg10 actionVar2
#define vTurnAngleDeg10 actionVar3
#define vRotYDeg10 actionVar4
#define vInitTurnAngle actionVar5
// opening angle for floor
#define vOpenAngle actionVar2
// variables for the skull flames
#define vFlameScale actionVar3
#define vIsSkullOfTruth actionVar4
#define vScrollTimer actionVar5
#define SKULL_OF_TRUTH_FOUND 100
void BgHakaGate_Init(Actor* thisx, GlobalContext* globalCtx);
void BgHakaGate_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgHakaGate_Update(Actor* thisx, GlobalContext* globalCtx);
void BgHakaGate_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgHakaGate_Draw(Actor* this, GlobalContext* globalCtx);
void func_8087C114(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C120(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C158(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C270(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C454(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C5D0(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C65C(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C6AC(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C73C(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C794(BgHakaGate* this, GlobalContext* globalCtx);
void func_8087C85C(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_DoNothing(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_StatueInactive(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_StatueIdle(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_StatueTurn(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_FloorClosed(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_FloorOpen(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_GateWait(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_GateOpen(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_SkullOfTruth(BgHakaGate* this, GlobalContext* globalCtx);
void BgHakaGate_FalseSkull(BgHakaGate* this, GlobalContext* globalCtx);
extern UNK_TYPE D_0404D4E0;
extern UNK_TYPE D_0600F1B0;
extern UNK_TYPE D_06010A10;
extern UNK_TYPE D_06010C10;
extern UNK_TYPE D_06010E10;
extern UNK_TYPE D_060131C4;
extern Gfx D_0404D4E0[];
extern ColHeader D_0600A938;
extern Gfx D_0600F1B0[];
extern Gfx D_06010A10[];
extern Gfx D_06010C10[];
extern ColHeader D_06010E10;
extern ColHeader D_060131C4;
static s16 sSkullOfTruthRotY = 0x100;
static u8 sPuzzleState = 1;
static f32 sStatueDistFromLink = 0;
static s16 sStatueRotY;
/*
const ActorInit Bg_Haka_Gate_InitVars = {
ACTOR_BG_HAKA_GATE,
ACTORTYPE_PROP,
@ -46,33 +71,309 @@ const ActorInit Bg_Haka_Gate_InitVars = {
(ActorFunc)BgHakaGate_Update,
(ActorFunc)BgHakaGate_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/BgHakaGate_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/BgHakaGate_Destroy.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C114.s")
void BgHakaGate_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHakaGate* this = THIS;
ColHeader* colHeader = NULL;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C120.s")
Actor_ProcessInitChain(thisx, sInitChain);
this->switchFlag = (thisx->params >> 8) & 0xFF;
thisx->params &= 0xFF;
DynaPolyInfo_SetActorMove(&this->dyna, 0);
if (thisx->params == BGHAKAGATE_SKULL) {
if (sSkullOfTruthRotY != 0x100) {
this->actionFunc = BgHakaGate_FalseSkull;
} else if (ABS(thisx->shape.rot.y) < 0x4000) {
if ((Rand_ZeroOne() * 3.0f) < sPuzzleState) {
this->vIsSkullOfTruth = true;
sSkullOfTruthRotY = thisx->shape.rot.y + 0x8000;
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actionFunc = BgHakaGate_DoNothing;
} else {
this->actionFunc = BgHakaGate_SkullOfTruth;
}
} else {
sPuzzleState++;
this->actionFunc = BgHakaGate_FalseSkull;
}
} else {
this->actionFunc = BgHakaGate_FalseSkull;
}
this->vScrollTimer = Rand_ZeroOne() * 20.0f;
thisx->flags |= 0x10;
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->vFlameScale = 350;
}
} else {
if (thisx->params == BGHAKAGATE_STATUE) {
DynaPolyInfo_Alloc(&D_060131C4, &colHeader);
this->vTimer = 0;
sStatueDistFromLink = 0.0f;
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actionFunc = BgHakaGate_StatueInactive;
} else {
this->actionFunc = BgHakaGate_StatueIdle;
}
} else if (thisx->params == BGHAKAGATE_FLOOR) {
DynaPolyInfo_Alloc(&D_06010E10, &colHeader);
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actionFunc = BgHakaGate_DoNothing;
} else {
this->actionFunc = BgHakaGate_FloorClosed;
}
} else { // BGHAKAGATE_GATE
DynaPolyInfo_Alloc(&D_0600A938, &colHeader);
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->actionFunc = BgHakaGate_DoNothing;
thisx->posRot.pos.y += 80.0f;
} else {
thisx->flags |= 0x10;
Actor_SetHeight(thisx, 30.0f);
this->actionFunc = BgHakaGate_GateWait;
}
}
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C158.s")
void BgHakaGate_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHakaGate* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C270.s")
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
if (this->dyna.actor.params == BGHAKAGATE_STATUE) {
sSkullOfTruthRotY = 0x100;
sPuzzleState = 1;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C454.s")
void BgHakaGate_DoNothing(BgHakaGate* this, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C5D0.s")
void BgHakaGate_StatueInactive(BgHakaGate* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C65C.s")
if (this->dyna.unk_150 != 0.0f) {
player->stateFlags2 &= ~0x10;
this->dyna.unk_150 = 0.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C6AC.s")
void BgHakaGate_StatueIdle(BgHakaGate* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 linkDirection;
f32 forceDirection;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C73C.s")
if (this->dyna.unk_150 != 0.0f) {
if (this->vTimer == 0) {
this->vInitTurnAngle = this->dyna.actor.shape.rot.y - this->dyna.actor.yawTowardsLink;
sStatueDistFromLink = this->dyna.actor.xzDistFromLink;
forceDirection = (this->dyna.unk_150 >= 0.0f) ? 1.0f : -1.0f;
linkDirection = ((s16)(this->dyna.actor.yawTowardsLink - player->actor.shape.rot.y) > 0) ? -1 : 1;
this->vTurnDirection = linkDirection * forceDirection;
this->actionFunc = BgHakaGate_StatueTurn;
} else {
player->stateFlags2 &= ~0x10;
this->dyna.unk_150 = 0.0f;
if (this->vTimer != 0) {
this->vTimer--;
}
}
} else {
if (sPuzzleState == SKULL_OF_TRUTH_FOUND) {
this->actionFunc = BgHakaGate_StatueInactive;
} else {
this->vTimer = 0;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C794.s")
void BgHakaGate_StatueTurn(BgHakaGate* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s32 turnFinished;
s16 turnAngle;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/BgHakaGate_Update.s")
this->vTurnRateDeg10++;
this->vTurnRateDeg10 = CLAMP_MAX(this->vTurnRateDeg10, 5);
turnFinished = Math_StepToS(&this->vTurnAngleDeg10, 600, this->vTurnRateDeg10);
turnAngle = this->vTurnAngleDeg10 * this->vTurnDirection;
this->dyna.actor.shape.rot.y = (this->vRotYDeg10 + turnAngle) * 0.1f * (0x10000 / 360.0f);
if ((player->stateFlags2 & 0x10) && (sStatueDistFromLink > 0.0f)) {
player->actor.posRot.pos.x =
this->dyna.actor.initPosRot.pos.x +
(Math_SinS(this->dyna.actor.shape.rot.y - this->vInitTurnAngle) * sStatueDistFromLink);
player->actor.posRot.pos.z =
this->dyna.actor.initPosRot.pos.z +
(Math_CosS(this->dyna.actor.shape.rot.y - this->vInitTurnAngle) * sStatueDistFromLink);
} else {
sStatueDistFromLink = 0.0f;
}
sStatueRotY = this->dyna.actor.shape.rot.y;
if (turnFinished) {
player->stateFlags2 &= ~0x10;
this->vRotYDeg10 = (this->vRotYDeg10 + turnAngle) % 3600;
this->vTurnRateDeg10 = 0;
this->vTurnAngleDeg10 = 0;
this->vTimer = 5;
this->actionFunc = BgHakaGate_StatueIdle;
this->dyna.unk_150 = 0.0f;
}
func_8002F974(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/func_8087C85C.s")
void BgHakaGate_FloorClosed(BgHakaGate* this, GlobalContext* globalCtx) {
if ((sStatueDistFromLink > 1.0f) && (sStatueRotY != 0)) {
Player* player = PLAYER;
f32 radialDist;
f32 angDist;
f32 cos = Math_CosS(sStatueRotY);
f32 sin = Math_SinS(sStatueRotY);
f32 dx = player->actor.posRot.pos.x - this->dyna.actor.posRot.pos.x;
f32 dz = player->actor.posRot.pos.z - this->dyna.actor.posRot.pos.z;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Haka_Gate/BgHakaGate_Draw.s")
radialDist = dx * cos - dz * sin;
angDist = dx * sin + dz * cos;
if ((radialDist > 110.0f) || (fabsf(angDist) > 40.0f)) {
s16 yawDiff = sSkullOfTruthRotY - sStatueRotY;
sStatueDistFromLink = 0.0f;
if (ABS(yawDiff) < 0x80) {
Flags_SetSwitch(globalCtx, this->switchFlag);
sPuzzleState = SKULL_OF_TRUTH_FOUND;
this->actionFunc = BgHakaGate_DoNothing;
} else {
func_80078884(NA_SE_SY_ERROR);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_GROUND_GATE_OPEN);
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
this->vTimer = 60;
this->actionFunc = BgHakaGate_FloorOpen;
}
}
}
}
void BgHakaGate_FloorOpen(BgHakaGate* this, GlobalContext* globalCtx) {
if (this->vTimer != 0) {
this->vTimer--;
}
if (this->vTimer == 0) {
if (Math_ScaledStepToS(&this->vOpenAngle, 0, 0x800)) {
func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
this->actionFunc = BgHakaGate_FloorClosed;
}
} else {
Math_ScaledStepToS(&this->vOpenAngle, 0x3000, 0x800);
}
}
void BgHakaGate_GateWait(BgHakaGate* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
func_80080480(globalCtx, &this->dyna.actor);
this->actionFunc = BgHakaGate_GateOpen;
}
}
void BgHakaGate_GateOpen(BgHakaGate* this, GlobalContext* globalCtx) {
if (Math_StepToF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 80.0f, 1.0f)) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_METALDOOR_STOP);
this->dyna.actor.flags &= ~0x10;
this->actionFunc = BgHakaGate_DoNothing;
} else {
func_8002F974(&this->dyna.actor, NA_SE_EV_METALDOOR_SLIDE - SFX_FLAG);
}
}
void BgHakaGate_SkullOfTruth(BgHakaGate* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->switchFlag) && Math_StepToS(&this->vFlameScale, 350, 20)) {
this->actionFunc = BgHakaGate_DoNothing;
}
}
void BgHakaGate_FalseSkull(BgHakaGate* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
Math_StepToS(&this->vFlameScale, 350, 20);
}
if (globalCtx->actorCtx.unk_03) {
this->dyna.actor.flags |= 0x80;
} else {
this->dyna.actor.flags &= ~0x80;
}
}
void BgHakaGate_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgHakaGate* this = THIS;
this->actionFunc(this, globalCtx);
if (this->dyna.actor.params == BGHAKAGATE_SKULL) {
this->vScrollTimer++;
}
}
void BgHakaGate_DrawFlame(BgHakaGate* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
f32 scale;
if (this->vFlameScale > 0) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 716);
if (1) {}
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 0x20, 0x40, 1, 0,
(this->vScrollTimer * -20) & 0x1FF, 0x20, 0x80));
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 0, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 0);
Matrix_Translate(thisx->posRot.pos.x, thisx->posRot.pos.y + 15.0f, thisx->posRot.pos.z, MTXMODE_NEW);
Matrix_RotateY(Camera_GetCamDirYaw(ACTIVE_CAM) * (M_PI / 0x8000), MTXMODE_APPLY);
scale = this->vFlameScale * 0.00001f;
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 744),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_0404D4E0);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 749);
}
}
void BgHakaGate_Draw(Actor* thisx, GlobalContext* globalCtx) {
static Gfx* displayLists[] = { 0x06012270, 0x06010A10, 0x0600A860, 0x0600F1B0 };
BgHakaGate* this = THIS;
MtxF currentMtxF;
if ((thisx->flags & 0x80) == 0x80) {
Gfx_DrawDListXlu(globalCtx, D_0600F1B0);
} else {
func_80093D18(globalCtx->state.gfxCtx);
if (thisx->params == BGHAKAGATE_FLOOR) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 781);
Matrix_Get(&currentMtxF);
Matrix_Translate(0.0f, 0.0f, -2000.0f, MTXMODE_APPLY);
Matrix_RotateX(this->vOpenAngle * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_Translate(0.0f, 0.0f, 2000.0f, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 788),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06010A10);
Matrix_Put(&currentMtxF);
Matrix_Translate(0.0f, 0.0f, 2000.0f, MTXMODE_APPLY);
Matrix_RotateX(-this->vOpenAngle * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_Translate(0.0f, 0.0f, -2000.0f, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 796),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06010C10);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_haka_gate.c", 800);
} else {
Gfx_DrawDListOpa(globalCtx, displayLists[thisx->params]);
}
}
if (thisx->params == BGHAKAGATE_SKULL) {
BgHakaGate_DrawFlame(this, globalCtx);
}
}

View file

@ -11,9 +11,21 @@ typedef void (*BgHakaGateActionFunc)(struct BgHakaGate*, GlobalContext*);
typedef struct BgHakaGate {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgHakaGateActionFunc actionFunc;
/* 0x0168 */ char unk_168[0xC];
/* 0x0168 */ u8 switchFlag;
/* 0x016A */ s16 actionVar1;
/* 0x016C */ s16 actionVar2;
/* 0x016E */ s16 actionVar3;
/* 0x0170 */ s16 actionVar4;
/* 0x0172 */ s16 actionVar5;
} BgHakaGate; // size = 0x0174
typedef enum {
BGHAKAGATE_STATUE,
BGHAKAGATE_FLOOR,
BGHAKAGATE_GATE,
BGHAKAGATE_SKULL
} BgHakaGateType;
extern const ActorInit Bg_Haka_Gate_InitVars;
#endif

View file

@ -56,7 +56,8 @@ extern Gfx D_0600E2D0[];
void BgJyaBigmirror_SetRoomFlag(Actor* thisx, GlobalContext* globalCtx) {
BgJyaBigmirror* this = THIS;
this->puzzleFlags &= ~(BIGMIR_PUZZLE_IN_STATUE_ROOM | BIGMIR_PUZZLE_IN_1ST_TOP_ROOM | BIGMIR_PUZZLE_IN_2ND_TOP_ROOM);
this->puzzleFlags &=
~(BIGMIR_PUZZLE_IN_STATUE_ROOM | BIGMIR_PUZZLE_IN_1ST_TOP_ROOM | BIGMIR_PUZZLE_IN_2ND_TOP_ROOM);
if (globalCtx->roomCtx.curRoom.num == 5) {
this->puzzleFlags |= BIGMIR_PUZZLE_IN_STATUE_ROOM;
} else if (globalCtx->roomCtx.curRoom.num == 0x19) {

View file

@ -52,7 +52,8 @@ void BgJyaLift_InitDynapoly(BgJyaLift* this, GlobalContext* globalCtx, u32 arg2,
DynaPolyInfo_SetActorMove(&this->dyna, moveFlag);
DynaPolyInfo_Alloc(arg2, &localConst);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localConst);
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localConst);
}
void BgJyaLift_Init(Actor* thisx, GlobalContext* globalCtx) {

View file

@ -212,8 +212,7 @@ void EnBb_Init(Actor* thisx, GlobalContext* globalCtx) {
EnBb* this = THIS;
Actor_ProcessInitChain(thisx, sInitChain);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06001A30, &D_06000444, this->limbDrawTbl, this->transitionDrawTbl,
16);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_06001A30, &D_06000444, this->jointTable, this->morphTable, 16);
this->unk_254 = 0;
thisx->colChkInfo.health = 4;
Collider_InitJntSph(globalCtx, &this->collider);
@ -829,8 +828,7 @@ void EnBb_White(EnBb* this, GlobalContext* globalCtx) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BUBLE_LAUGH);
}
if ((this->maxSpeed != 0.0f) &&
(((s32)this->skelAnime.curFrame == 0) || ((s32)this->skelAnime.curFrame == 5))) {
if ((this->maxSpeed != 0.0f) && (((s32)this->skelAnime.curFrame == 0) || ((s32)this->skelAnime.curFrame == 5))) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BUBLE_MOUTH);
} else if (((s32)this->skelAnime.curFrame == 2) || ((s32)this->skelAnime.curFrame == 7)) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_BUBLE_WING);

View file

@ -11,8 +11,8 @@ typedef void (*EnBbActionFunc)(struct EnBb*, GlobalContext*);
typedef struct EnBb {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTbl[16];
/* 0x01F0 */ Vec3s transitionDrawTbl[16];
/* 0x0190 */ Vec3s jointTable[16];
/* 0x01F0 */ Vec3s morphTable[16];
/* 0x0250 */ s32 action;
/* 0x0254 */ s32 unk_254; // unused
/* 0x0258 */ EnBbActionFunc actionFunc;

View file

@ -80,8 +80,7 @@ void EnBw_Init(Actor* thisx, GlobalContext* globalCtx) {
Actor_SetScale(&this->actor, 0.012999999f);
this->actor.naviEnemyId = 0x23;
this->actor.gravity = -2.0f;
SkelAnime_Init(globalCtx, &this->skelAnime, &D_060020F0, &D_06000228, this->jointTable, this->morphTable,
12);
SkelAnime_Init(globalCtx, &this->skelAnime, &D_060020F0, &D_06000228, this->jointTable, this->morphTable, 12);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 40.0f);
this->actor.colChkInfo.damageTable = &sDamageTable;
this->actor.colChkInfo.health = 6;
@ -284,14 +283,14 @@ void func_809CEA24(EnBw* this, GlobalContext* globalCtx) {
func_809CF72C(this);
} else {
Math_SmoothStepToS(&this->actor.posRot.rot.y, this->unk_236 + this->unk_238, 1,
this->actor.speedXZ * 1000.0f, 0);
this->actor.speedXZ * 1000.0f, 0);
}
break;
case 0:
Math_SmoothStepToF(&this->unk_248, 0.6f, 1.0f, 0.05f, 0.0f);
if (sp64 == 0) {
Math_SmoothStepToS(&this->actor.posRot.rot.y, this->actor.yawTowardsLink, 1,
this->actor.speedXZ * 1000.0f, 0);
this->actor.speedXZ * 1000.0f, 0);
if ((this->actor.xzDistFromLink < 90.0f) && (this->actor.yDistFromLink < 50.0f) &&
func_8002E084(&this->actor, 0x1554) &&
func_800339B8(&this->actor, globalCtx, 71.24802f, this->actor.yawTowardsLink)) {
@ -299,7 +298,7 @@ void func_809CEA24(EnBw* this, GlobalContext* globalCtx) {
}
} else {
Math_SmoothStepToS(&this->actor.posRot.rot.y, this->unk_236 + this->unk_238, 1,
this->actor.speedXZ * 1000.0f, 0);
this->actor.speedXZ * 1000.0f, 0);
}
if ((this->unk_224 == 0) || (ABS(this->actor.yDistFromLink) > 60.0f) || (player2->stateFlags1 & 0x6000)) {
this->unk_221 = 3;
@ -313,10 +312,10 @@ void func_809CEA24(EnBw* this, GlobalContext* globalCtx) {
this->unk_238 = -this->unk_238;
}
Math_SmoothStepToS(&this->actor.posRot.rot.y, this->actor.yawTowardsLink - 0x8000, 1,
this->actor.speedXZ * 1000.0f, 0);
this->actor.speedXZ * 1000.0f, 0);
} else {
Math_SmoothStepToS(&this->actor.posRot.rot.y, this->unk_236 + this->unk_238, 1,
this->actor.speedXZ * 1000.0f, 0);
this->actor.speedXZ * 1000.0f, 0);
}
if (this->unk_224 <= 200) {
sp60 = Math_SinS(this->unk_224 * (0x960 - this->unk_224)) * 55.0f;

View file

@ -1833,12 +1833,14 @@ D_06004618 = 0x06004618;
// z_bg_haka_gate
D_0404D4E0 = 0x0404D4E0;
D_0600A938 = 0x0600A938;
D_0600F1B0 = 0x0600F1B0;
D_06010A10 = 0x06010A10;
D_06010C10 = 0x06010C10;
D_06010E10 = 0x06010E10;
D_060131C4 = 0x060131C4;
// z_bg_haka_huta
D_060006B0 = 0x060006B0;
D_06000870 = 0x06000870;