mirror of
https://github.com/HackerN64/HackerOoT.git
synced 2026-01-21 10:37:37 -08:00
Bg_Mizu_Bwall (#543)
* 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 * bwall * cleanup Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
glabel BgMizuBwall_Destroy
|
||||
/* 0093C 8089CDBC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00940 8089CDC0 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00944 8089CDC4 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 00948 8089CDC8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0094C 8089CDCC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
|
||||
/* 00950 8089CDD0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00954 8089CDD4 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
|
||||
/* 00958 8089CDD8 AFA7001C */ sw $a3, 0x001C($sp)
|
||||
/* 0095C 8089CDDC 0C00FB56 */ jal DynaPolyInfo_Free
|
||||
## DynaPolyInfo_delReserve
|
||||
/* 00960 8089CDE0 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
|
||||
/* 00964 8089CDE4 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 00968 8089CDE8 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 0096C 8089CDEC 0C017232 */ jal Collider_DestroyTris
|
||||
/* 00970 8089CDF0 24A50164 */ addiu $a1, $a1, 0x0164 ## $a1 = 00000164
|
||||
/* 00974 8089CDF4 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00978 8089CDF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 0097C 8089CDFC 03E00008 */ jr $ra
|
||||
/* 00980 8089CE00 00000000 */ nop
|
||||
@@ -1,205 +0,0 @@
|
||||
.rdata
|
||||
glabel D_8089DA14
|
||||
.asciz "../z_bg_mizu_bwall.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_8089DA2C
|
||||
.asciz "../z_bg_mizu_bwall.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_8089DA44
|
||||
.asciz "../z_bg_mizu_bwall.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel BgMizuBwall_Draw
|
||||
/* 00F2C 8089D3AC 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
|
||||
/* 00F30 8089D3B0 AFB10048 */ sw $s1, 0x0048($sp)
|
||||
/* 00F34 8089D3B4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 00F38 8089D3B8 AFBF004C */ sw $ra, 0x004C($sp)
|
||||
/* 00F3C 8089D3BC AFB00044 */ sw $s0, 0x0044($sp)
|
||||
/* 00F40 8089D3C0 AFA40090 */ sw $a0, 0x0090($sp)
|
||||
/* 00F44 8089D3C4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 00F48 8089D3C8 3C06808A */ lui $a2, %hi(D_8089DA14) ## $a2 = 808A0000
|
||||
/* 00F4C 8089D3CC 24C6DA14 */ addiu $a2, $a2, %lo(D_8089DA14) ## $a2 = 8089DA14
|
||||
/* 00F50 8089D3D0 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
|
||||
/* 00F54 8089D3D4 24070447 */ addiu $a3, $zero, 0x0447 ## $a3 = 00000447
|
||||
/* 00F58 8089D3D8 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 00F5C 8089D3DC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 00F60 8089D3E0 3C0E0001 */ lui $t6, 0x0001 ## $t6 = 00010000
|
||||
/* 00F64 8089D3E4 01D17021 */ addu $t6, $t6, $s1
|
||||
/* 00F68 8089D3E8 8DCE1DE4 */ lw $t6, 0x1DE4($t6) ## 00011DE4
|
||||
/* 00F6C 8089D3EC AFAE0084 */ sw $t6, 0x0084($sp)
|
||||
/* 00F70 8089D3F0 0C024F46 */ jal func_80093D18
|
||||
/* 00F74 8089D3F4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 00F78 8089D3F8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00F7C 8089D3FC 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
|
||||
/* 00F80 8089D400 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
|
||||
/* 00F84 8089D404 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
|
||||
/* 00F88 8089D408 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0
|
||||
/* 00F8C 8089D40C AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
||||
/* 00F90 8089D410 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 00F94 8089D414 8FAC0090 */ lw $t4, 0x0090($sp)
|
||||
/* 00F98 8089D418 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
|
||||
/* 00F9C 8089D41C 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
|
||||
/* 00FA0 8089D420 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
|
||||
/* 00FA4 8089D424 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
|
||||
/* 00FA8 8089D428 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020
|
||||
/* 00FAC 8089D42C AFAB0028 */ sw $t3, 0x0028($sp)
|
||||
/* 00FB0 8089D430 AFAA0024 */ sw $t2, 0x0024($sp)
|
||||
/* 00FB4 8089D434 AFA90018 */ sw $t1, 0x0018($sp)
|
||||
/* 00FB8 8089D438 AFA80014 */ sw $t0, 0x0014($sp)
|
||||
/* 00FBC 8089D43C AFB90010 */ sw $t9, 0x0010($sp)
|
||||
/* 00FC0 8089D440 AFA00034 */ sw $zero, 0x0034($sp)
|
||||
/* 00FC4 8089D444 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 00FC8 8089D448 AFA0002C */ sw $zero, 0x002C($sp)
|
||||
/* 00FCC 8089D44C AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 00FD0 8089D450 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00FD4 8089D454 8FA60084 */ lw $a2, 0x0084($sp)
|
||||
/* 00FD8 8089D458 8D8D02A0 */ lw $t5, 0x02A0($t4) ## 000002A0
|
||||
/* 00FDC 8089D45C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00FE0 8089D460 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00FE4 8089D464 AFA2006C */ sw $v0, 0x006C($sp)
|
||||
/* 00FE8 8089D468 AFA60054 */ sw $a2, 0x0054($sp)
|
||||
/* 00FEC 8089D46C 0C02541A */ jal Gfx_TwoTexScrollEnvColor
|
||||
/* 00FF0 8089D470 AFAD0038 */ sw $t5, 0x0038($sp)
|
||||
/* 00FF4 8089D474 8FA3006C */ lw $v1, 0x006C($sp)
|
||||
/* 00FF8 8089D478 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
|
||||
/* 00FFC 8089D47C 35EF0024 */ ori $t7, $t7, 0x0024 ## $t7 = DB060024
|
||||
/* 01000 8089D480 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 01004 8089D484 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01008 8089D488 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
|
||||
/* 0100C 8089D48C 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
|
||||
/* 01010 8089D490 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 01014 8089D494 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
|
||||
/* 01018 8089D498 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||
/* 0101C 8089D49C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 01020 8089D4A0 8FAB0090 */ lw $t3, 0x0090($sp)
|
||||
/* 01024 8089D4A4 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
|
||||
/* 01028 8089D4A8 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
|
||||
/* 0102C 8089D4AC 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
|
||||
/* 01030 8089D4B0 AFAA0028 */ sw $t2, 0x0028($sp)
|
||||
/* 01034 8089D4B4 AFA90024 */ sw $t1, 0x0024($sp)
|
||||
/* 01038 8089D4B8 AFA80018 */ sw $t0, 0x0018($sp)
|
||||
/* 0103C 8089D4BC AFA00034 */ sw $zero, 0x0034($sp)
|
||||
/* 01040 8089D4C0 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 01044 8089D4C4 AFA0002C */ sw $zero, 0x002C($sp)
|
||||
/* 01048 8089D4C8 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 0104C 8089D4CC AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 01050 8089D4D0 AFB90014 */ sw $t9, 0x0014($sp)
|
||||
/* 01054 8089D4D4 AFB80010 */ sw $t8, 0x0010($sp)
|
||||
/* 01058 8089D4D8 8D6C02A4 */ lw $t4, 0x02A4($t3) ## 000002A4
|
||||
/* 0105C 8089D4DC 8FA60054 */ lw $a2, 0x0054($sp)
|
||||
/* 01060 8089D4E0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 01064 8089D4E4 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 01068 8089D4E8 AFA20068 */ sw $v0, 0x0068($sp)
|
||||
/* 0106C 8089D4EC 0C02541A */ jal Gfx_TwoTexScrollEnvColor
|
||||
/* 01070 8089D4F0 AFAC0038 */ sw $t4, 0x0038($sp)
|
||||
/* 01074 8089D4F4 8FA30068 */ lw $v1, 0x0068($sp)
|
||||
/* 01078 8089D4F8 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000
|
||||
/* 0107C 8089D4FC 35CE0028 */ ori $t6, $t6, 0x0028 ## $t6 = DB060028
|
||||
/* 01080 8089D500 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 01084 8089D504 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01088 8089D508 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
|
||||
/* 0108C 8089D50C 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
|
||||
/* 01090 8089D510 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
|
||||
/* 01094 8089D514 AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0
|
||||
/* 01098 8089D518 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
|
||||
/* 0109C 8089D51C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 010A0 8089D520 8FAA0090 */ lw $t2, 0x0090($sp)
|
||||
/* 010A4 8089D524 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 010A8 8089D528 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
|
||||
/* 010AC 8089D52C 24090020 */ addiu $t1, $zero, 0x0020 ## $t1 = 00000020
|
||||
/* 010B0 8089D530 AFA90028 */ sw $t1, 0x0028($sp)
|
||||
/* 010B4 8089D534 AFA80024 */ sw $t0, 0x0024($sp)
|
||||
/* 010B8 8089D538 AFB90018 */ sw $t9, 0x0018($sp)
|
||||
/* 010BC 8089D53C AFA00034 */ sw $zero, 0x0034($sp)
|
||||
/* 010C0 8089D540 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 010C4 8089D544 AFA0002C */ sw $zero, 0x002C($sp)
|
||||
/* 010C8 8089D548 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 010CC 8089D54C AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 010D0 8089D550 AFB80014 */ sw $t8, 0x0014($sp)
|
||||
/* 010D4 8089D554 AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 010D8 8089D558 8D4B02A8 */ lw $t3, 0x02A8($t2) ## 000002A8
|
||||
/* 010DC 8089D55C 8FA60054 */ lw $a2, 0x0054($sp)
|
||||
/* 010E0 8089D560 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 010E4 8089D564 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 010E8 8089D568 AFA20064 */ sw $v0, 0x0064($sp)
|
||||
/* 010EC 8089D56C 0C02541A */ jal Gfx_TwoTexScrollEnvColor
|
||||
/* 010F0 8089D570 AFAB0038 */ sw $t3, 0x0038($sp)
|
||||
/* 010F4 8089D574 8FA30064 */ lw $v1, 0x0064($sp)
|
||||
/* 010F8 8089D578 3C0DDB06 */ lui $t5, 0xDB06 ## $t5 = DB060000
|
||||
/* 010FC 8089D57C 35AD002C */ ori $t5, $t5, 0x002C ## $t5 = DB06002C
|
||||
/* 01100 8089D580 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 01104 8089D584 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01108 8089D588 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
|
||||
/* 0110C 8089D58C 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
|
||||
/* 01110 8089D590 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
|
||||
/* 01114 8089D594 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
|
||||
/* 01118 8089D598 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
|
||||
/* 0111C 8089D59C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 01120 8089D5A0 8FA90090 */ lw $t1, 0x0090($sp)
|
||||
/* 01124 8089D5A4 8FA60084 */ lw $a2, 0x0084($sp)
|
||||
/* 01128 8089D5A8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
|
||||
/* 0112C 8089D5AC 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
|
||||
/* 01130 8089D5B0 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
|
||||
/* 01134 8089D5B4 AFA80028 */ sw $t0, 0x0028($sp)
|
||||
/* 01138 8089D5B8 AFB90024 */ sw $t9, 0x0024($sp)
|
||||
/* 0113C 8089D5BC AFB80018 */ sw $t8, 0x0018($sp)
|
||||
/* 01140 8089D5C0 AFA00034 */ sw $zero, 0x0034($sp)
|
||||
/* 01144 8089D5C4 AFA00030 */ sw $zero, 0x0030($sp)
|
||||
/* 01148 8089D5C8 AFA0002C */ sw $zero, 0x002C($sp)
|
||||
/* 0114C 8089D5CC AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 01150 8089D5D0 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 01154 8089D5D4 AFAF0014 */ sw $t7, 0x0014($sp)
|
||||
/* 01158 8089D5D8 AFAE0010 */ sw $t6, 0x0010($sp)
|
||||
/* 0115C 8089D5DC 8D2A02AC */ lw $t2, 0x02AC($t1) ## 000002AC
|
||||
/* 01160 8089D5E0 00C00821 */ addu $at, $a2, $zero
|
||||
/* 01164 8089D5E4 00063080 */ sll $a2, $a2, 2
|
||||
/* 01168 8089D5E8 00C13023 */ subu $a2, $a2, $at
|
||||
/* 0116C 8089D5EC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 01170 8089D5F0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 01174 8089D5F4 AFA20060 */ sw $v0, 0x0060($sp)
|
||||
/* 01178 8089D5F8 0C02541A */ jal Gfx_TwoTexScrollEnvColor
|
||||
/* 0117C 8089D5FC AFAA0038 */ sw $t2, 0x0038($sp)
|
||||
/* 01180 8089D600 8FA30060 */ lw $v1, 0x0060($sp)
|
||||
/* 01184 8089D604 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000
|
||||
/* 01188 8089D608 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003
|
||||
/* 0118C 8089D60C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 01190 8089D610 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01194 8089D614 3C05808A */ lui $a1, %hi(D_8089DA2C) ## $a1 = 808A0000
|
||||
/* 01198 8089D618 24A5DA2C */ addiu $a1, $a1, %lo(D_8089DA2C) ## $a1 = 8089DA2C
|
||||
/* 0119C 8089D61C 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
|
||||
/* 011A0 8089D620 AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0
|
||||
/* 011A4 8089D624 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
||||
/* 011A8 8089D628 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 011AC 8089D62C 24060469 */ addiu $a2, $zero, 0x0469 ## $a2 = 00000469
|
||||
/* 011B0 8089D630 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 011B4 8089D634 AFA2005C */ sw $v0, 0x005C($sp)
|
||||
/* 011B8 8089D638 8FA3005C */ lw $v1, 0x005C($sp)
|
||||
/* 011BC 8089D63C 3C06808A */ lui $a2, %hi(D_8089DA44) ## $a2 = 808A0000
|
||||
/* 011C0 8089D640 24C6DA44 */ addiu $a2, $a2, %lo(D_8089DA44) ## $a2 = 8089DA44
|
||||
/* 011C4 8089D644 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 011C8 8089D648 8FAD0090 */ lw $t5, 0x0090($sp)
|
||||
/* 011CC 8089D64C 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
|
||||
/* 011D0 8089D650 24070470 */ addiu $a3, $zero, 0x0470 ## $a3 = 00000470
|
||||
/* 011D4 8089D654 8DAE02B8 */ lw $t6, 0x02B8($t5) ## 000002B8
|
||||
/* 011D8 8089D658 11C00009 */ beq $t6, $zero, .L8089D680
|
||||
/* 011DC 8089D65C 00000000 */ nop
|
||||
/* 011E0 8089D660 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 011E4 8089D664 3C18DE00 */ lui $t8, 0xDE00 ## $t8 = DE000000
|
||||
/* 011E8 8089D668 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
|
||||
/* 011EC 8089D66C AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0
|
||||
/* 011F0 8089D670 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
||||
/* 011F4 8089D674 8FB90090 */ lw $t9, 0x0090($sp)
|
||||
/* 011F8 8089D678 8F2802B8 */ lw $t0, 0x02B8($t9) ## 000002B8
|
||||
/* 011FC 8089D67C AC480004 */ sw $t0, 0x0004($v0) ## 00000004
|
||||
.L8089D680:
|
||||
/* 01200 8089D680 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 01204 8089D684 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
|
||||
/* 01208 8089D688 8FBF004C */ lw $ra, 0x004C($sp)
|
||||
/* 0120C 8089D68C 8FB00044 */ lw $s0, 0x0044($sp)
|
||||
/* 01210 8089D690 8FB10048 */ lw $s1, 0x0048($sp)
|
||||
/* 01214 8089D694 03E00008 */ jr $ra
|
||||
/* 01218 8089D698 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000
|
||||
/* 0121C 8089D69C 00000000 */ nop
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
||||
glabel BgMizuBwall_Update
|
||||
/* 00F08 8089D388 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00F0C 8089D38C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00F10 8089D390 8C990298 */ lw $t9, 0x0298($a0) ## 00000298
|
||||
/* 00F14 8089D394 0320F809 */ jalr $ra, $t9
|
||||
/* 00F18 8089D398 00000000 */ nop
|
||||
/* 00F1C 8089D39C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00F20 8089D3A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00F24 8089D3A4 03E00008 */ jr $ra
|
||||
/* 00F28 8089D3A8 00000000 */ nop
|
||||
@@ -1,20 +0,0 @@
|
||||
glabel func_8089C480
|
||||
/* 00000 8089C480 44866000 */ mtc1 $a2, $f12 ## $f12 = 0.00
|
||||
/* 00004 8089C484 C4A40008 */ lwc1 $f4, 0x0008($a1) ## 00000008
|
||||
/* 00008 8089C488 44877000 */ mtc1 $a3, $f14 ## $f14 = 0.00
|
||||
/* 0000C 8089C48C C4A80000 */ lwc1 $f8, 0x0000($a1) ## 00000000
|
||||
/* 00010 8089C490 460C2182 */ mul.s $f6, $f4, $f12
|
||||
/* 00014 8089C494 00000000 */ nop
|
||||
/* 00018 8089C498 460E4282 */ mul.s $f10, $f8, $f14
|
||||
/* 0001C 8089C49C 460A3400 */ add.s $f16, $f6, $f10
|
||||
/* 00020 8089C4A0 E4900000 */ swc1 $f16, 0x0000($a0) ## 00000000
|
||||
/* 00024 8089C4A4 C4B20004 */ lwc1 $f18, 0x0004($a1) ## 00000004
|
||||
/* 00028 8089C4A8 E4920004 */ swc1 $f18, 0x0004($a0) ## 00000004
|
||||
/* 0002C 8089C4AC C4A40008 */ lwc1 $f4, 0x0008($a1) ## 00000008
|
||||
/* 00030 8089C4B0 C4A60000 */ lwc1 $f6, 0x0000($a1) ## 00000000
|
||||
/* 00034 8089C4B4 460E2202 */ mul.s $f8, $f4, $f14
|
||||
/* 00038 8089C4B8 00000000 */ nop
|
||||
/* 0003C 8089C4BC 460C3282 */ mul.s $f10, $f6, $f12
|
||||
/* 00040 8089C4C0 460A4401 */ sub.s $f16, $f8, $f10
|
||||
/* 00044 8089C4C4 03E00008 */ jr $ra
|
||||
/* 00048 8089C4C8 E4900008 */ swc1 $f16, 0x0008($a0) ## 00000008
|
||||
@@ -1,115 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_8089DA70
|
||||
.word 0x43DE8000
|
||||
glabel D_8089DA74
|
||||
.word 0x43DE8000
|
||||
glabel D_8089DA78
|
||||
.word 0x443F4000
|
||||
glabel D_8089DA7C
|
||||
.word 0xC450C000
|
||||
|
||||
.text
|
||||
glabel func_8089CE04
|
||||
/* 00984 8089CE04 8CAE07C0 */ lw $t6, 0x07C0($a1) ## 000007C0
|
||||
/* 00988 8089CE08 3C01C170 */ lui $at, 0xC170 ## $at = C1700000
|
||||
/* 0098C 8089CE0C 44811000 */ mtc1 $at, $f2 ## $f2 = -15.00
|
||||
/* 00990 8089CE10 8DC20028 */ lw $v0, 0x0028($t6) ## 00000028
|
||||
/* 00994 8089CE14 3C01808A */ lui $at, %hi(D_8089DA74) ## $at = 808A0000
|
||||
/* 00998 8089CE18 240300A0 */ addiu $v1, $zero, 0x00A0 ## $v1 = 000000A0
|
||||
/* 0099C 8089CE1C 844F0022 */ lh $t7, 0x0022($v0) ## 00000022
|
||||
/* 009A0 8089CE20 240200FF */ addiu $v0, $zero, 0x00FF ## $v0 = 000000FF
|
||||
/* 009A4 8089CE24 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
|
||||
/* 009A8 8089CE28 00000000 */ nop
|
||||
/* 009AC 8089CE2C 46802020 */ cvt.s.w $f0, $f4
|
||||
/* 009B0 8089CE30 4602003C */ c.lt.s $f0, $f2
|
||||
/* 009B4 8089CE34 00000000 */ nop
|
||||
/* 009B8 8089CE38 45000007 */ bc1f .L8089CE58
|
||||
/* 009BC 8089CE3C 00000000 */ nop
|
||||
/* 009C0 8089CE40 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000
|
||||
/* 009C4 8089CE44 44817000 */ mtc1 $at, $f14 ## $f14 = 95.00
|
||||
/* 009C8 8089CE48 3C01808A */ lui $at, %hi(D_8089DA70) ## $at = 808A0000
|
||||
/* 009CC 8089CE4C AC8202A0 */ sw $v0, 0x02A0($a0) ## 000002A0
|
||||
/* 009D0 8089CE50 10000019 */ beq $zero, $zero, .L8089CEB8
|
||||
/* 009D4 8089CE54 C42CDA70 */ lwc1 $f12, %lo(D_8089DA70)($at)
|
||||
.L8089CE58:
|
||||
/* 009D8 8089CE58 C42CDA74 */ lwc1 $f12, %lo(D_8089DA74)($at)
|
||||
/* 009DC 8089CE5C 240300A0 */ addiu $v1, $zero, 0x00A0 ## $v1 = 000000A0
|
||||
/* 009E0 8089CE60 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000
|
||||
/* 009E4 8089CE64 460C003C */ c.lt.s $f0, $f12
|
||||
/* 009E8 8089CE68 240200FF */ addiu $v0, $zero, 0x00FF ## $v0 = 000000FF
|
||||
/* 009EC 8089CE6C 45020011 */ bc1fl .L8089CEB4
|
||||
/* 009F0 8089CE70 44817000 */ mtc1 $at, $f14 ## $f14 = 95.00
|
||||
/* 009F4 8089CE74 3C0142BE */ lui $at, 0x42BE ## $at = 42BE0000
|
||||
/* 009F8 8089CE78 44817000 */ mtc1 $at, $f14 ## $f14 = 95.00
|
||||
/* 009FC 8089CE7C 46020181 */ sub.s $f6, $f0, $f2
|
||||
/* 00A00 8089CE80 3C0143E6 */ lui $at, 0x43E6 ## $at = 43E60000
|
||||
/* 00A04 8089CE84 44814000 */ mtc1 $at, $f8 ## $f8 = 460.00
|
||||
/* 00A08 8089CE88 240200FF */ addiu $v0, $zero, 0x00FF ## $v0 = 000000FF
|
||||
/* 00A0C 8089CE8C 240300A0 */ addiu $v1, $zero, 0x00A0 ## $v1 = 000000A0
|
||||
/* 00A10 8089CE90 46083283 */ div.s $f10, $f6, $f8
|
||||
/* 00A14 8089CE94 460E5402 */ mul.s $f16, $f10, $f14
|
||||
/* 00A18 8089CE98 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00A1C 8089CE9C 44199000 */ mfc1 $t9, $f18
|
||||
/* 00A20 8089CEA0 00000000 */ nop
|
||||
/* 00A24 8089CEA4 00594023 */ subu $t0, $v0, $t9
|
||||
/* 00A28 8089CEA8 10000003 */ beq $zero, $zero, .L8089CEB8
|
||||
/* 00A2C 8089CEAC AC8802A0 */ sw $t0, 0x02A0($a0) ## 000002A0
|
||||
/* 00A30 8089CEB0 44817000 */ mtc1 $at, $f14 ## $f14 = 460.00
|
||||
.L8089CEB4:
|
||||
/* 00A34 8089CEB4 AC8302A0 */ sw $v1, 0x02A0($a0) ## 000002A0
|
||||
.L8089CEB8:
|
||||
/* 00A38 8089CEB8 460C003C */ c.lt.s $f0, $f12
|
||||
/* 00A3C 8089CEBC 3C01808A */ lui $at, %hi(D_8089DA78) ## $at = 808A0000
|
||||
/* 00A40 8089CEC0 45000003 */ bc1f .L8089CED0
|
||||
/* 00A44 8089CEC4 00000000 */ nop
|
||||
/* 00A48 8089CEC8 10000013 */ beq $zero, $zero, .L8089CF18
|
||||
/* 00A4C 8089CECC AC8202A4 */ sw $v0, 0x02A4($a0) ## 000002A4
|
||||
.L8089CED0:
|
||||
/* 00A50 8089CED0 C424DA78 */ lwc1 $f4, %lo(D_8089DA78)($at)
|
||||
/* 00A54 8089CED4 3C0143A0 */ lui $at, 0x43A0 ## $at = 43A00000
|
||||
/* 00A58 8089CED8 4604003C */ c.lt.s $f0, $f4
|
||||
/* 00A5C 8089CEDC 00000000 */ nop
|
||||
/* 00A60 8089CEE0 4502000D */ bc1fl .L8089CF18
|
||||
/* 00A64 8089CEE4 AC8302A4 */ sw $v1, 0x02A4($a0) ## 000002A4
|
||||
/* 00A68 8089CEE8 460C0181 */ sub.s $f6, $f0, $f12
|
||||
/* 00A6C 8089CEEC 44814000 */ mtc1 $at, $f8 ## $f8 = 320.00
|
||||
/* 00A70 8089CEF0 00000000 */ nop
|
||||
/* 00A74 8089CEF4 46083283 */ div.s $f10, $f6, $f8
|
||||
/* 00A78 8089CEF8 460E5402 */ mul.s $f16, $f10, $f14
|
||||
/* 00A7C 8089CEFC 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00A80 8089CF00 440A9000 */ mfc1 $t2, $f18
|
||||
/* 00A84 8089CF04 00000000 */ nop
|
||||
/* 00A88 8089CF08 004A5823 */ subu $t3, $v0, $t2
|
||||
/* 00A8C 8089CF0C 10000002 */ beq $zero, $zero, .L8089CF18
|
||||
/* 00A90 8089CF10 AC8B02A4 */ sw $t3, 0x02A4($a0) ## 000002A4
|
||||
/* 00A94 8089CF14 AC8302A4 */ sw $v1, 0x02A4($a0) ## 000002A4
|
||||
.L8089CF18:
|
||||
/* 00A98 8089CF18 3C01808A */ lui $at, %hi(D_8089DA7C) ## $at = 808A0000
|
||||
/* 00A9C 8089CF1C C42CDA7C */ lwc1 $f12, %lo(D_8089DA7C)($at)
|
||||
/* 00AA0 8089CF20 460C003C */ c.lt.s $f0, $f12
|
||||
/* 00AA4 8089CF24 00000000 */ nop
|
||||
/* 00AA8 8089CF28 45020004 */ bc1fl .L8089CF3C
|
||||
/* 00AAC 8089CF2C 4602003C */ c.lt.s $f0, $f2
|
||||
/* 00AB0 8089CF30 10000011 */ beq $zero, $zero, .L8089CF78
|
||||
/* 00AB4 8089CF34 AC8202A8 */ sw $v0, 0x02A8($a0) ## 000002A8
|
||||
/* 00AB8 8089CF38 4602003C */ c.lt.s $f0, $f2
|
||||
.L8089CF3C:
|
||||
/* 00ABC 8089CF3C 3C01444D */ lui $at, 0x444D ## $at = 444D0000
|
||||
/* 00AC0 8089CF40 4502000D */ bc1fl .L8089CF78
|
||||
/* 00AC4 8089CF44 AC8302A8 */ sw $v1, 0x02A8($a0) ## 000002A8
|
||||
/* 00AC8 8089CF48 460C0101 */ sub.s $f4, $f0, $f12
|
||||
/* 00ACC 8089CF4C 44813000 */ mtc1 $at, $f6 ## $f6 = 820.00
|
||||
/* 00AD0 8089CF50 00000000 */ nop
|
||||
/* 00AD4 8089CF54 46062203 */ div.s $f8, $f4, $f6
|
||||
/* 00AD8 8089CF58 460E4282 */ mul.s $f10, $f8, $f14
|
||||
/* 00ADC 8089CF5C 4600540D */ trunc.w.s $f16, $f10
|
||||
/* 00AE0 8089CF60 440D8000 */ mfc1 $t5, $f16
|
||||
/* 00AE4 8089CF64 00000000 */ nop
|
||||
/* 00AE8 8089CF68 004D7023 */ subu $t6, $v0, $t5
|
||||
/* 00AEC 8089CF6C 10000002 */ beq $zero, $zero, .L8089CF78
|
||||
/* 00AF0 8089CF70 AC8E02A8 */ sw $t6, 0x02A8($a0) ## 000002A8
|
||||
/* 00AF4 8089CF74 AC8302A8 */ sw $v1, 0x02A8($a0) ## 000002A8
|
||||
.L8089CF78:
|
||||
/* 00AF8 8089CF78 8C8F02A8 */ lw $t7, 0x02A8($a0) ## 000002A8
|
||||
/* 00AFC 8089CF7C 03E00008 */ jr $ra
|
||||
/* 00B00 8089CF80 AC8F02AC */ sw $t7, 0x02AC($a0) ## 000002AC
|
||||
@@ -1,202 +0,0 @@
|
||||
glabel func_8089CF84
|
||||
/* 00B04 8089CF84 27BDFE90 */ addiu $sp, $sp, 0xFE90 ## $sp = FFFFFE90
|
||||
/* 00B08 8089CF88 AFB20068 */ sw $s2, 0x0068($sp)
|
||||
/* 00B0C 8089CF8C 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000
|
||||
/* 00B10 8089CF90 AFBF007C */ sw $ra, 0x007C($sp)
|
||||
/* 00B14 8089CF94 AFB60078 */ sw $s6, 0x0078($sp)
|
||||
/* 00B18 8089CF98 AFB50074 */ sw $s5, 0x0074($sp)
|
||||
/* 00B1C 8089CF9C AFB40070 */ sw $s4, 0x0070($sp)
|
||||
/* 00B20 8089CFA0 AFB3006C */ sw $s3, 0x006C($sp)
|
||||
/* 00B24 8089CFA4 AFB10064 */ sw $s1, 0x0064($sp)
|
||||
/* 00B28 8089CFA8 AFB00060 */ sw $s0, 0x0060($sp)
|
||||
/* 00B2C 8089CFAC F7BE0058 */ sdc1 $f30, 0x0058($sp)
|
||||
/* 00B30 8089CFB0 F7BC0050 */ sdc1 $f28, 0x0050($sp)
|
||||
/* 00B34 8089CFB4 F7BA0048 */ sdc1 $f26, 0x0048($sp)
|
||||
/* 00B38 8089CFB8 F7B80040 */ sdc1 $f24, 0x0040($sp)
|
||||
/* 00B3C 8089CFBC F7B60038 */ sdc1 $f22, 0x0038($sp)
|
||||
/* 00B40 8089CFC0 F7B40030 */ sdc1 $f20, 0x0030($sp)
|
||||
/* 00B44 8089CFC4 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
|
||||
/* 00B48 8089CFC8 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00B4C 8089CFCC 848400B6 */ lh $a0, 0x00B6($a0) ## 000000B6
|
||||
/* 00B50 8089CFD0 46000706 */ mov.s $f28, $f0
|
||||
/* 00B54 8089CFD4 0C01DE0D */ jal Math_CosS
|
||||
## coss?
|
||||
/* 00B58 8089CFD8 864400B6 */ lh $a0, 0x00B6($s2) ## 000000B6
|
||||
/* 00B5C 8089CFDC 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
||||
/* 00B60 8089CFE0 4481D000 */ mtc1 $at, $f26 ## $f26 = 120.00
|
||||
/* 00B64 8089CFE4 3C014220 */ lui $at, 0x4220 ## $at = 42200000
|
||||
/* 00B68 8089CFE8 4481C000 */ mtc1 $at, $f24 ## $f24 = 40.00
|
||||
/* 00B6C 8089CFEC 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
|
||||
/* 00B70 8089CFF0 4481B000 */ mtc1 $at, $f22 ## $f22 = 80.00
|
||||
/* 00B74 8089CFF4 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
|
||||
/* 00B78 8089CFF8 46000786 */ mov.s $f30, $f0
|
||||
/* 00B7C 8089CFFC 27B00090 */ addiu $s0, $sp, 0x0090 ## $s0 = FFFFFF20
|
||||
/* 00B80 8089D000 27B50144 */ addiu $s5, $sp, 0x0144 ## $s5 = FFFFFFD4
|
||||
/* 00B84 8089D004 24140003 */ addiu $s4, $zero, 0x0003 ## $s4 = 00000003
|
||||
/* 00B88 8089D008 24130002 */ addiu $s3, $zero, 0x0002 ## $s3 = 00000002
|
||||
/* 00B8C 8089D00C 24110001 */ addiu $s1, $zero, 0x0001 ## $s1 = 00000001
|
||||
/* 00B90 8089D010 9642001C */ lhu $v0, 0x001C($s2) ## 0000001C
|
||||
.L8089D014:
|
||||
/* 00B94 8089D014 3042000F */ andi $v0, $v0, 0x000F ## $v0 = 00000000
|
||||
/* 00B98 8089D018 10400009 */ beq $v0, $zero, .L8089D040
|
||||
/* 00B9C 8089D01C 00000000 */ nop
|
||||
/* 00BA0 8089D020 10510014 */ beq $v0, $s1, .L8089D074
|
||||
/* 00BA4 8089D024 00000000 */ nop
|
||||
/* 00BA8 8089D028 10530021 */ beq $v0, $s3, .L8089D0B0
|
||||
/* 00BAC 8089D02C 00000000 */ nop
|
||||
/* 00BB0 8089D030 1054001F */ beq $v0, $s4, .L8089D0B0
|
||||
/* 00BB4 8089D034 00000000 */ nop
|
||||
/* 00BB8 8089D038 1000001D */ beq $zero, $zero, .L8089D0B0
|
||||
/* 00BBC 8089D03C 00000000 */ nop
|
||||
.L8089D040:
|
||||
/* 00BC0 8089D040 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00BC4 8089D044 00000000 */ nop
|
||||
/* 00BC8 8089D048 46160102 */ mul.s $f4, $f0, $f22
|
||||
/* 00BCC 8089D04C 46182181 */ sub.s $f6, $f4, $f24
|
||||
/* 00BD0 8089D050 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00BD4 8089D054 E6060000 */ swc1 $f6, 0x0000($s0) ## FFFFFF20
|
||||
/* 00BD8 8089D058 46140202 */ mul.s $f8, $f0, $f20
|
||||
/* 00BDC 8089D05C 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00BE0 8089D060 E6080004 */ swc1 $f8, 0x0004($s0) ## FFFFFF24
|
||||
/* 00BE4 8089D064 46160282 */ mul.s $f10, $f0, $f22
|
||||
/* 00BE8 8089D068 46185401 */ sub.s $f16, $f10, $f24
|
||||
/* 00BEC 8089D06C 1000001E */ beq $zero, $zero, .L8089D0E8
|
||||
/* 00BF0 8089D070 E6100008 */ swc1 $f16, 0x0008($s0) ## FFFFFF28
|
||||
.L8089D074:
|
||||
/* 00BF4 8089D074 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00BF8 8089D078 00000000 */ nop
|
||||
/* 00BFC 8089D07C 46140482 */ mul.s $f18, $f0, $f20
|
||||
/* 00C00 8089D080 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C04 8089D084 E6120000 */ swc1 $f18, 0x0000($s0) ## FFFFFF20
|
||||
/* 00C08 8089D088 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00C0C 8089D08C 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
|
||||
/* 00C10 8089D090 00000000 */ nop
|
||||
/* 00C14 8089D094 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00C18 8089D098 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C1C 8089D09C E6060004 */ swc1 $f6, 0x0004($s0) ## FFFFFF24
|
||||
/* 00C20 8089D0A0 46160202 */ mul.s $f8, $f0, $f22
|
||||
/* 00C24 8089D0A4 46184281 */ sub.s $f10, $f8, $f24
|
||||
/* 00C28 8089D0A8 1000000F */ beq $zero, $zero, .L8089D0E8
|
||||
/* 00C2C 8089D0AC E60A0008 */ swc1 $f10, 0x0008($s0) ## FFFFFF28
|
||||
.L8089D0B0:
|
||||
/* 00C30 8089D0B0 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C34 8089D0B4 00000000 */ nop
|
||||
/* 00C38 8089D0B8 461A0402 */ mul.s $f16, $f0, $f26
|
||||
/* 00C3C 8089D0BC 3C014270 */ lui $at, 0x4270 ## $at = 42700000
|
||||
/* 00C40 8089D0C0 44819000 */ mtc1 $at, $f18 ## $f18 = 60.00
|
||||
/* 00C44 8089D0C4 00000000 */ nop
|
||||
/* 00C48 8089D0C8 46128101 */ sub.s $f4, $f16, $f18
|
||||
/* 00C4C 8089D0CC 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C50 8089D0D0 E6040000 */ swc1 $f4, 0x0000($s0) ## FFFFFF20
|
||||
/* 00C54 8089D0D4 461A0182 */ mul.s $f6, $f0, $f26
|
||||
/* 00C58 8089D0D8 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00C5C 8089D0DC E6060004 */ swc1 $f6, 0x0004($s0) ## FFFFFF24
|
||||
/* 00C60 8089D0E0 46140202 */ mul.s $f8, $f0, $f20
|
||||
/* 00C64 8089D0E4 E6080008 */ swc1 $f8, 0x0008($s0) ## FFFFFF28
|
||||
.L8089D0E8:
|
||||
/* 00C68 8089D0E8 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = FFFFFF2C
|
||||
/* 00C6C 8089D0EC 0215082B */ sltu $at, $s0, $s5
|
||||
/* 00C70 8089D0F0 5420FFC8 */ bnel $at, $zero, .L8089D014
|
||||
/* 00C74 8089D0F4 9642001C */ lhu $v0, 0x001C($s2) ## 0000001C
|
||||
/* 00C78 8089D0F8 3C014370 */ lui $at, 0x4370 ## $at = 43700000
|
||||
/* 00C7C 8089D0FC 4481C000 */ mtc1 $at, $f24 ## $f24 = 240.00
|
||||
/* 00C80 8089D100 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
||||
/* 00C84 8089D104 4481B000 */ mtc1 $at, $f22 ## $f22 = 50.00
|
||||
/* 00C88 8089D108 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
||||
/* 00C8C 8089D10C 4481A000 */ mtc1 $at, $f20 ## $f20 = 120.00
|
||||
/* 00C90 8089D110 26510024 */ addiu $s1, $s2, 0x0024 ## $s1 = 00000024
|
||||
/* 00C94 8089D114 27B00090 */ addiu $s0, $sp, 0x0090 ## $s0 = FFFFFF20
|
||||
/* 00C98 8089D118 26D51C24 */ addiu $s5, $s6, 0x1C24 ## $s5 = 00001C24
|
||||
/* 00C9C 8089D11C 27B40144 */ addiu $s4, $sp, 0x0144 ## $s4 = FFFFFFD4
|
||||
/* 00CA0 8089D120 27B30154 */ addiu $s3, $sp, 0x0154 ## $s3 = FFFFFFE4
|
||||
/* 00CA4 8089D124 C6020008 */ lwc1 $f2, 0x0008($s0) ## FFFFFF28
|
||||
.L8089D128:
|
||||
/* 00CA8 8089D128 C6000000 */ lwc1 $f0, 0x0000($s0) ## FFFFFF20
|
||||
/* 00CAC 8089D12C C62A0000 */ lwc1 $f10, 0x0000($s1) ## 00000024
|
||||
/* 00CB0 8089D130 461C1402 */ mul.s $f16, $f2, $f28
|
||||
/* 00CB4 8089D134 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 00CB8 8089D138 461E0102 */ mul.s $f4, $f0, $f30
|
||||
/* 00CBC 8089D13C 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 00CC0 8089D140 461E1102 */ mul.s $f4, $f2, $f30
|
||||
/* 00CC4 8089D144 E7A60154 */ swc1 $f6, 0x0154($sp)
|
||||
/* 00CC8 8089D148 C62A0004 */ lwc1 $f10, 0x0004($s1) ## 00000028
|
||||
/* 00CCC 8089D14C C6080004 */ lwc1 $f8, 0x0004($s0) ## FFFFFF24
|
||||
/* 00CD0 8089D150 460A4400 */ add.s $f16, $f8, $f10
|
||||
/* 00CD4 8089D154 461C0202 */ mul.s $f8, $f0, $f28
|
||||
/* 00CD8 8089D158 E7B00158 */ swc1 $f16, 0x0158($sp)
|
||||
/* 00CDC 8089D15C C6320008 */ lwc1 $f18, 0x0008($s1) ## 0000002C
|
||||
/* 00CE0 8089D160 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 00CE4 8089D164 46083281 */ sub.s $f10, $f6, $f8
|
||||
/* 00CE8 8089D168 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00CEC 8089D16C E7AA015C */ swc1 $f10, 0x015C($sp)
|
||||
/* 00CF0 8089D170 46140402 */ mul.s $f16, $f0, $f20
|
||||
/* 00CF4 8089D174 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00CF8 8089D178 44129000 */ mfc1 $s2, $f18
|
||||
/* 00CFC 8089D17C 00000000 */ nop
|
||||
/* 00D00 8089D180 00129400 */ sll $s2, $s2, 16
|
||||
/* 00D04 8089D184 00129403 */ sra $s2, $s2, 16
|
||||
/* 00D08 8089D188 26520014 */ addiu $s2, $s2, 0x0014 ## $s2 = 00000014
|
||||
/* 00D0C 8089D18C 00129400 */ sll $s2, $s2, 16
|
||||
/* 00D10 8089D190 0C03F66B */ jal Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00D14 8089D194 00129403 */ sra $s2, $s2, 16
|
||||
/* 00D18 8089D198 46180102 */ mul.s $f4, $f0, $f24
|
||||
/* 00D1C 8089D19C 4406B000 */ mfc1 $a2, $f22
|
||||
/* 00D20 8089D1A0 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
|
||||
/* 00D24 8089D1A4 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE4
|
||||
/* 00D28 8089D1A8 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
|
||||
/* 00D2C 8089D1AC AFB20010 */ sw $s2, 0x0010($sp)
|
||||
/* 00D30 8089D1B0 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 00D34 8089D1B4 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 00D38 8089D1B8 44183000 */ mfc1 $t8, $f6
|
||||
/* 00D3C 8089D1BC 00000000 */ nop
|
||||
/* 00D40 8089D1C0 0018CC00 */ sll $t9, $t8, 16
|
||||
/* 00D44 8089D1C4 00194403 */ sra $t0, $t9, 16
|
||||
/* 00D48 8089D1C8 25090014 */ addiu $t1, $t0, 0x0014 ## $t1 = 00000014
|
||||
/* 00D4C 8089D1CC 0C00CD20 */ jal func_80033480
|
||||
/* 00D50 8089D1D0 AFA90014 */ sw $t1, 0x0014($sp)
|
||||
/* 00D54 8089D1D4 C7A80158 */ lwc1 $f8, 0x0158($sp)
|
||||
/* 00D58 8089D1D8 C7AA015C */ lwc1 $f10, 0x015C($sp)
|
||||
/* 00D5C 8089D1DC 240A000B */ addiu $t2, $zero, 0x000B ## $t2 = 0000000B
|
||||
/* 00D60 8089D1E0 AFAA0024 */ sw $t2, 0x0024($sp)
|
||||
/* 00D64 8089D1E4 02A02025 */ or $a0, $s5, $zero ## $a0 = 00001C24
|
||||
/* 00D68 8089D1E8 02C02825 */ or $a1, $s6, $zero ## $a1 = 00000000
|
||||
/* 00D6C 8089D1EC 24060039 */ addiu $a2, $zero, 0x0039 ## $a2 = 00000039
|
||||
/* 00D70 8089D1F0 8FA70154 */ lw $a3, 0x0154($sp)
|
||||
/* 00D74 8089D1F4 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 00D78 8089D1F8 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00D7C 8089D1FC AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 00D80 8089D200 E7A80010 */ swc1 $f8, 0x0010($sp)
|
||||
/* 00D84 8089D204 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00D88 8089D208 E7AA0014 */ swc1 $f10, 0x0014($sp)
|
||||
/* 00D8C 8089D20C 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = FFFFFF2C
|
||||
/* 00D90 8089D210 5614FFC5 */ bnel $s0, $s4, .L8089D128
|
||||
/* 00D94 8089D214 C6020008 */ lwc1 $f2, 0x0008($s0) ## FFFFFF34
|
||||
/* 00D98 8089D218 8FBF007C */ lw $ra, 0x007C($sp)
|
||||
/* 00D9C 8089D21C D7B40030 */ ldc1 $f20, 0x0030($sp)
|
||||
/* 00DA0 8089D220 D7B60038 */ ldc1 $f22, 0x0038($sp)
|
||||
/* 00DA4 8089D224 D7B80040 */ ldc1 $f24, 0x0040($sp)
|
||||
/* 00DA8 8089D228 D7BA0048 */ ldc1 $f26, 0x0048($sp)
|
||||
/* 00DAC 8089D22C D7BC0050 */ ldc1 $f28, 0x0050($sp)
|
||||
/* 00DB0 8089D230 D7BE0058 */ ldc1 $f30, 0x0058($sp)
|
||||
/* 00DB4 8089D234 8FB00060 */ lw $s0, 0x0060($sp)
|
||||
/* 00DB8 8089D238 8FB10064 */ lw $s1, 0x0064($sp)
|
||||
/* 00DBC 8089D23C 8FB20068 */ lw $s2, 0x0068($sp)
|
||||
/* 00DC0 8089D240 8FB3006C */ lw $s3, 0x006C($sp)
|
||||
/* 00DC4 8089D244 8FB40070 */ lw $s4, 0x0070($sp)
|
||||
/* 00DC8 8089D248 8FB50074 */ lw $s5, 0x0074($sp)
|
||||
/* 00DCC 8089D24C 8FB60078 */ lw $s6, 0x0078($sp)
|
||||
/* 00DD0 8089D250 03E00008 */ jr $ra
|
||||
/* 00DD4 8089D254 27BD0170 */ addiu $sp, $sp, 0x0170 ## $sp = 00000000
|
||||
@@ -1,70 +0,0 @@
|
||||
glabel func_8089D258
|
||||
/* 00DD8 8089D258 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00DDC 8089D25C AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00DE0 8089D260 AFB10020 */ sw $s1, 0x0020($sp)
|
||||
/* 00DE4 8089D264 AFB0001C */ sw $s0, 0x001C($sp)
|
||||
/* 00DE8 8089D268 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00DEC 8089D26C 0C227381 */ jal func_8089CE04
|
||||
/* 00DF0 8089D270 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 00DF4 8089D274 92020175 */ lbu $v0, 0x0175($s0) ## 00000175
|
||||
/* 00DF8 8089D278 3C014416 */ lui $at, 0x4416 ## $at = 44160000
|
||||
/* 00DFC 8089D27C 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
|
||||
/* 00E00 8089D280 11C00023 */ beq $t6, $zero, .L8089D310
|
||||
/* 00E04 8089D284 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
|
||||
/* 00E08 8089D288 9605001C */ lhu $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00E0C 8089D28C A20F0175 */ sb $t7, 0x0175($s0) ## 00000175
|
||||
/* 00E10 8089D290 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00E14 8089D294 00052A03 */ sra $a1, $a1, 8
|
||||
/* 00E18 8089D298 0C00B2DD */ jal Flags_SetSwitch
|
||||
|
||||
/* 00E1C 8089D29C 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
|
||||
/* 00E20 8089D2A0 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
|
||||
/* 00E24 8089D2A4 AE1802B0 */ sw $t8, 0x02B0($s0) ## 000002B0
|
||||
/* 00E28 8089D2A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00E2C 8089D2AC 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
|
||||
/* 00E30 8089D2B0 0C00FAFE */ jal func_8003EBF8
|
||||
/* 00E34 8089D2B4 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C
|
||||
/* 00E38 8089D2B8 AE0002B8 */ sw $zero, 0x02B8($s0) ## 000002B8
|
||||
/* 00E3C 8089D2BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00E40 8089D2C0 0C2273E1 */ jal func_8089CF84
|
||||
/* 00E44 8089D2C4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00E48 8089D2C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00E4C 8089D2CC 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00E50 8089D2D0 24052810 */ addiu $a1, $zero, 0x2810 ## $a1 = 00002810
|
||||
/* 00E54 8089D2D4 3C078013 */ lui $a3, %hi(D_801333E0)
|
||||
/* 00E58 8089D2D8 3C198013 */ lui $t9, %hi(D_801333E8)
|
||||
/* 00E5C 8089D2DC 24E733E0 */ addiu $a3, %lo(D_801333E0)
|
||||
/* 00E60 8089D2E0 273933E8 */ addiu $t9, %lo(D_801333E8)
|
||||
/* 00E64 8089D2E4 3C058013 */ lui $a1, %hi(D_801333D4)
|
||||
/* 00E68 8089D2E8 24A533D4 */ addiu $a1, %lo(D_801333D4)
|
||||
/* 00E6C 8089D2EC AFB90014 */ sw $t9, 0x0014($sp)
|
||||
/* 00E70 8089D2F0 AFA70010 */ sw $a3, 0x0010($sp)
|
||||
/* 00E74 8089D2F4 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
|
||||
/* 00E78 8089D2F8 0C03DCE3 */ jal Audio_PlaySoundGeneral
|
||||
|
||||
/* 00E7C 8089D2FC 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
|
||||
/* 00E80 8089D300 3C08808A */ lui $t0, %hi(func_8089D350) ## $t0 = 808A0000
|
||||
/* 00E84 8089D304 2508D350 */ addiu $t0, $t0, %lo(func_8089D350) ## $t0 = 8089D350
|
||||
/* 00E88 8089D308 1000000C */ beq $zero, $zero, .L8089D33C
|
||||
/* 00E8C 8089D30C AE080298 */ sw $t0, 0x0298($s0) ## 00000298
|
||||
.L8089D310:
|
||||
/* 00E90 8089D310 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
|
||||
/* 00E94 8089D314 44813000 */ mtc1 $at, $f6 ## $f6 = 0.00
|
||||
/* 00E98 8089D318 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00E9C 8089D31C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00EA0 8089D320 4606203C */ c.lt.s $f4, $f6
|
||||
/* 00EA4 8089D324 02212821 */ addu $a1, $s1, $at
|
||||
/* 00EA8 8089D328 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00EAC 8089D32C 45020004 */ bc1fl .L8089D340
|
||||
/* 00EB0 8089D330 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00EB4 8089D334 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00EB8 8089D338 26060164 */ addiu $a2, $s0, 0x0164 ## $a2 = 00000164
|
||||
.L8089D33C:
|
||||
/* 00EBC 8089D33C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L8089D340:
|
||||
/* 00EC0 8089D340 8FB0001C */ lw $s0, 0x001C($sp)
|
||||
/* 00EC4 8089D344 8FB10020 */ lw $s1, 0x0020($sp)
|
||||
/* 00EC8 8089D348 03E00008 */ jr $ra
|
||||
/* 00ECC 8089D34C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
@@ -1,13 +0,0 @@
|
||||
glabel func_8089D350
|
||||
/* 00ED0 8089D350 AFA50004 */ sw $a1, 0x0004($sp)
|
||||
/* 00ED4 8089D354 8C8202B0 */ lw $v0, 0x02B0($a0) ## 000002B0
|
||||
/* 00ED8 8089D358 3C0F808A */ lui $t7, %hi(func_8089D37C) ## $t7 = 808A0000
|
||||
/* 00EDC 8089D35C 25EFD37C */ addiu $t7, $t7, %lo(func_8089D37C) ## $t7 = 8089D37C
|
||||
/* 00EE0 8089D360 18400003 */ blez $v0, .L8089D370
|
||||
/* 00EE4 8089D364 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 00EE8 8089D368 03E00008 */ jr $ra
|
||||
/* 00EEC 8089D36C AC8E02B0 */ sw $t6, 0x02B0($a0) ## 000002B0
|
||||
.L8089D370:
|
||||
/* 00EF0 8089D370 AC8F0298 */ sw $t7, 0x0298($a0) ## 00000298
|
||||
/* 00EF4 8089D374 03E00008 */ jr $ra
|
||||
/* 00EF8 8089D378 00000000 */ nop
|
||||
@@ -1,4 +0,0 @@
|
||||
glabel func_8089D37C
|
||||
/* 00EFC 8089D37C AFA40000 */ sw $a0, 0x0000($sp)
|
||||
/* 00F00 8089D380 03E00008 */ jr $ra
|
||||
/* 00F04 8089D384 AFA50004 */ sw $a1, 0x0004($sp)
|
||||
@@ -1,42 +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 Bg_Mizu_Bwall_InitVars
|
||||
.word 0x01BA0100, 0x00000010, 0x00590000, 0x000002BC
|
||||
.word BgMizuBwall_Init
|
||||
.word BgMizuBwall_Destroy
|
||||
.word BgMizuBwall_Update
|
||||
.word BgMizuBwall_Draw
|
||||
glabel D_8089D6C0
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0xC2200000, 0x00000000, 0xC2200000, 0xC2200000, 0x00000000, 0x42200000, 0x42200000, 0x00000000, 0x42200000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0xC2200000, 0x00000000, 0xC2200000, 0x42200000, 0x00000000, 0x42200000, 0x42200000, 0x00000000, 0xC2200000
|
||||
glabel D_8089D738
|
||||
.word 0x0A000900, 0x00020000, 0x00000002
|
||||
.word D_8089D6C0
|
||||
glabel D_8089D748
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0x00000000, 0x42E80000, 0x00000000, 0x00000000, 0x00000000, 0x428C0000, 0x00000000, 0x00000000, 0xC28C0000
|
||||
glabel D_8089D784
|
||||
.word 0x0A000900, 0x00020000, 0x00000001
|
||||
.word D_8089D748
|
||||
glabel D_8089D794
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0x00000000, 0x42F00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x42700000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00010000, 0x00000000, 0x42F00000, 0x00000000, 0x42700000, 0x00000000, 0x00000000, 0x42700000, 0x42F00000, 0x00000000
|
||||
glabel D_8089D80C
|
||||
.word 0x0A000900, 0x00020000, 0x00000002
|
||||
.word D_8089D794
|
||||
glabel D_8089D81C
|
||||
.word 0x0A000900, 0x00020000, 0x00000002
|
||||
.word D_8089D794
|
||||
glabel D_8089D82C
|
||||
.word 0x06001A30, 0x06002390, 0x06001CD0, 0x06002090, 0x06001770
|
||||
glabel D_8089D840
|
||||
.word 0x06001C58, 0x060025A4, 0x06001DE8, 0x06001DE8, 0x06001DE8
|
||||
glabel D_8089D854
|
||||
.word 0xB0F805DC, 0xB0FC044C, 0xB0F403E8, 0x48500064, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
@@ -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_8089DA80
|
||||
.incbin "baserom/ovl_Bg_Mizu_Bwall", 0x1600, 0x000001B0
|
||||
3
spec
3
spec
@@ -1033,8 +1033,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_Bg_Mizu_Bwall"
|
||||
include "build/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o"
|
||||
include "build/data/overlays/actors/z_bg_mizu_bwall.data.o"
|
||||
include "build/data/overlays/actors/z_bg_mizu_bwall.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_bg_mizu_bwall.c
|
||||
* Overlay: ovl_Bg_Mizu_Bwall
|
||||
* Description: Water Temple bombable walls
|
||||
*/
|
||||
|
||||
#include "z_bg_mizu_bwall.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
@@ -9,7 +15,10 @@ void BgMizuBwall_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgMizuBwall_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgMizuBwall_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void BgMizuBwall_Idle(BgMizuBwall* this, GlobalContext* globalCtx);
|
||||
void BgMizuBwall_Break(BgMizuBwall* this, GlobalContext* globalCtx);
|
||||
void BgMizuBwall_DoNothing(BgMizuBwall* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit Bg_Mizu_Bwall_InitVars = {
|
||||
ACTOR_BG_MIZU_BWALL,
|
||||
ACTORTYPE_BG,
|
||||
@@ -21,23 +30,435 @@ const ActorInit Bg_Mizu_Bwall_InitVars = {
|
||||
(ActorFunc)BgMizuBwall_Update,
|
||||
(ActorFunc)BgMizuBwall_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089C480.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/BgMizuBwall_Init.s")
|
||||
static ColliderTrisItemInit sTrisElementInitFloor[2] = {
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ { { -40.0f, 0.0f, -40.0f }, { -40.0f, 0.0f, 40.0f }, { 40.0f, 0.0f, 40.0f } } },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ { { -40.0f, 0.0f, -40.0f }, { 40.0f, 0.0f, 40.0f }, { 40.0f, 0.0f, -40.0f } } },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/BgMizuBwall_Destroy.s")
|
||||
static ColliderTrisInit sTrisInitFloor = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_TRIS },
|
||||
2,
|
||||
sTrisElementInitFloor,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089CE04.s")
|
||||
static ColliderTrisItemInit sTrisElementInitRutoWall[1] = {
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ { { 0.0f, 116.0f, 0.0f }, { 0.0f, 0.0f, 70.0f }, { 0.0f, 0.0f, -70.0f } } },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089CF84.s")
|
||||
static ColliderTrisInit sTrisInitRutoWall = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_TRIS },
|
||||
1,
|
||||
sTrisElementInitRutoWall,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089D258.s")
|
||||
static ColliderTrisItemInit sTrisElementInitWall[2] = {
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ { { 0.0f, 120.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 60.0f, 0.0f, 0.0f } } },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000008, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ { { 0.0f, 120.0f, 0.0f }, { 60.0f, 0.0f, 0.0f }, { 60.0f, 120.0f, 0.0f } } },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089D350.s")
|
||||
static ColliderTrisInit sTrisInitUnusedWall = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_TRIS },
|
||||
2,
|
||||
sTrisElementInitWall,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/func_8089D37C.s")
|
||||
static ColliderTrisInit sTrisInitStingerWall = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x00, COLSHAPE_TRIS },
|
||||
2,
|
||||
sTrisElementInitWall,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/BgMizuBwall_Update.s")
|
||||
static Gfx* sDLists[] = {
|
||||
0x06001A30, 0x06002390, 0x06001CD0, 0x06002090, 0x06001770,
|
||||
};
|
||||
static ColHeader* sColHeaders[] = {
|
||||
0x06001C58, 0x060025A4, 0x06001DE8, 0x06001DE8, 0x06001DE8,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mizu_Bwall/BgMizuBwall_Draw.s")
|
||||
static InitChainEntry D_8089D854[] = {
|
||||
ICHAIN_F32(uncullZoneScale, 1500, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void BgMizuBwall_RotateVec3f(Vec3f* out, Vec3f* in, f32 sin, f32 cos) {
|
||||
out->x = (in->z * sin) + (in->x * cos);
|
||||
out->y = in->y;
|
||||
out->z = (in->z * cos) - (in->x * sin);
|
||||
}
|
||||
|
||||
void BgMizuBwall_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMizuBwall* this = THIS;
|
||||
ColHeader* colHeader = NULL;
|
||||
|
||||
Actor_ProcessInitChain(&this->dyna.actor, D_8089D854);
|
||||
this->yRot = this->dyna.actor.posRot.pos.y;
|
||||
this->dList = sDLists[(u16)this->dyna.actor.params & 0xF];
|
||||
DynaPolyInfo_SetActorMove(&this->dyna, 1);
|
||||
DynaPolyInfo_Alloc(sColHeaders[(u16)this->dyna.actor.params & 0xF], &colHeader);
|
||||
this->dyna.dynaPolyId =
|
||||
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
|
||||
|
||||
switch ((u16)this->dyna.actor.params & 0xF) {
|
||||
case MIZUBWALL_FLOOR:
|
||||
if (Flags_GetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
} else {
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
if (!Collider_SetTris(globalCtx, &this->collider, &this->dyna.actor, &sTrisInitFloor, this->elements)) {
|
||||
osSyncPrintf("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mizu_bwall.c",
|
||||
484, this->dyna.actor.params);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f offset;
|
||||
Vec3f vtx[3];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sTrisElementInitFloor); i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
offset.x = sTrisInitFloor.list[i].dim.vtx[j].x;
|
||||
offset.y = sTrisInitFloor.list[i].dim.vtx[j].y;
|
||||
offset.z = sTrisInitFloor.list[i].dim.vtx[j].z + 2.0f;
|
||||
BgMizuBwall_RotateVec3f(&vtx[j], &offset, sin, cos);
|
||||
vtx[j].x += this->dyna.actor.posRot.pos.x;
|
||||
vtx[j].y += this->dyna.actor.posRot.pos.y;
|
||||
vtx[j].z += this->dyna.actor.posRot.pos.z;
|
||||
}
|
||||
func_800627A0(&this->collider, i, &vtx[0], &vtx[1], &vtx[2]);
|
||||
}
|
||||
this->actionFunc = BgMizuBwall_Idle;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MIZUBWALL_RUTO_ROOM:
|
||||
if (Flags_GetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
} else {
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
if (!Collider_SetTris(globalCtx, &this->collider, &this->dyna.actor, &sTrisInitRutoWall,
|
||||
this->elements)) {
|
||||
osSyncPrintf("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mizu_bwall.c",
|
||||
558, this->dyna.actor.params);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f offset;
|
||||
Vec3f vtx[3];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sTrisElementInitRutoWall); i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
offset.x = sTrisInitRutoWall.list[i].dim.vtx[j].x;
|
||||
offset.y = sTrisInitRutoWall.list[i].dim.vtx[j].y;
|
||||
offset.z = sTrisInitRutoWall.list[i].dim.vtx[j].z + 2.0f;
|
||||
BgMizuBwall_RotateVec3f(&vtx[j], &offset, sin, cos);
|
||||
vtx[j].x += this->dyna.actor.posRot.pos.x;
|
||||
vtx[j].y += this->dyna.actor.posRot.pos.y;
|
||||
vtx[j].z += this->dyna.actor.posRot.pos.z;
|
||||
}
|
||||
func_800627A0(&this->collider, i, &vtx[0], &vtx[1], &vtx[2]);
|
||||
}
|
||||
this->actionFunc = BgMizuBwall_Idle;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MIZUBWALL_UNUSED:
|
||||
if (Flags_GetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
} else {
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
if (!Collider_SetTris(globalCtx, &this->collider, &this->dyna.actor, &sTrisInitUnusedWall,
|
||||
this->elements)) {
|
||||
osSyncPrintf("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mizu_bwall.c",
|
||||
638, this->dyna.actor.params);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f offset;
|
||||
Vec3f vtx[3];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sTrisElementInitFloor); i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
//! @bug This uses the wrong set of collision triangles, causing the collider to be
|
||||
//! flat to the ground instead of vertical. It should use sTrisInitUnusedWall.
|
||||
offset.x = sTrisInitFloor.list[i].dim.vtx[j].x;
|
||||
offset.y = sTrisInitFloor.list[i].dim.vtx[j].y;
|
||||
offset.z = sTrisInitFloor.list[i].dim.vtx[j].z;
|
||||
BgMizuBwall_RotateVec3f(&vtx[j], &offset, sin, cos);
|
||||
vtx[j].x += this->dyna.actor.posRot.pos.x;
|
||||
vtx[j].y += this->dyna.actor.posRot.pos.y;
|
||||
vtx[j].z += this->dyna.actor.posRot.pos.z;
|
||||
}
|
||||
func_800627A0(&this->collider, i, &vtx[0], &vtx[1], &vtx[2]);
|
||||
}
|
||||
this->actionFunc = BgMizuBwall_Idle;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MIZUBWALL_STINGER_ROOM_1:
|
||||
if (Flags_GetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
} else {
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
if (!Collider_SetTris(globalCtx, &this->collider, &this->dyna.actor, &sTrisInitStingerWall,
|
||||
this->elements)) {
|
||||
osSyncPrintf("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mizu_bwall.c",
|
||||
724, this->dyna.actor.params);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f offset;
|
||||
Vec3f vtx[3];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sTrisElementInitFloor); i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
//! @bug This uses the wrong set of collision triangles, causing the collider to be
|
||||
//! flat to the ground instead of vertical. It should use sTrisInitStingerWall.
|
||||
offset.x = sTrisInitFloor.list[i].dim.vtx[j].x;
|
||||
offset.y = sTrisInitFloor.list[i].dim.vtx[j].y;
|
||||
offset.z = sTrisInitFloor.list[i].dim.vtx[j].z + 2.0f;
|
||||
BgMizuBwall_RotateVec3f(&vtx[j], &offset, sin, cos);
|
||||
vtx[j].x += this->dyna.actor.posRot.pos.x;
|
||||
vtx[j].y += this->dyna.actor.posRot.pos.y;
|
||||
vtx[j].z += this->dyna.actor.posRot.pos.z;
|
||||
}
|
||||
func_800627A0(&this->collider, i, &vtx[0], &vtx[1], &vtx[2]);
|
||||
}
|
||||
this->actionFunc = BgMizuBwall_Idle;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MIZUBWALL_STINGER_ROOM_2:
|
||||
if (Flags_GetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
} else {
|
||||
Collider_InitTris(globalCtx, &this->collider);
|
||||
if (!Collider_SetTris(globalCtx, &this->collider, &this->dyna.actor, &sTrisInitStingerWall,
|
||||
this->elements)) {
|
||||
osSyncPrintf("Error : コリジョンデータセット失敗(%s %d)(arg_data 0x%04x)\n", "../z_bg_mizu_bwall.c",
|
||||
798, this->dyna.actor.params);
|
||||
Actor_Kill(&this->dyna.actor);
|
||||
} else {
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
s32 i;
|
||||
s32 j;
|
||||
Vec3f offset;
|
||||
Vec3f vtx[3];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sTrisElementInitFloor); i++) {
|
||||
for (j = 0; j < 3; j++) {
|
||||
//! @bug This uses the wrong set of collision triangles, causing the collider to be
|
||||
//! flat to the ground instead of vertical. It should use sTrisInitStingerWall.
|
||||
offset.x = sTrisInitFloor.list[i].dim.vtx[j].x;
|
||||
offset.y = sTrisInitFloor.list[i].dim.vtx[j].y;
|
||||
offset.z = sTrisInitFloor.list[i].dim.vtx[j].z + 2.0f;
|
||||
BgMizuBwall_RotateVec3f(&vtx[j], &offset, sin, cos);
|
||||
vtx[j].x += this->dyna.actor.posRot.pos.x;
|
||||
vtx[j].y += this->dyna.actor.posRot.pos.y;
|
||||
vtx[j].z += this->dyna.actor.posRot.pos.z;
|
||||
}
|
||||
func_800627A0(&this->collider, i, &vtx[0], &vtx[1], &vtx[2]);
|
||||
}
|
||||
this->actionFunc = BgMizuBwall_Idle;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void BgMizuBwall_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMizuBwall* this = THIS;
|
||||
|
||||
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
Collider_DestroyTris(globalCtx, &this->collider);
|
||||
}
|
||||
|
||||
void BgMizuBwall_SetAlpha(BgMizuBwall* this, GlobalContext* globalCtx) {
|
||||
f32 waterLevel = globalCtx->colCtx.stat.colHeader->waterBoxes[2].ySurface;
|
||||
s32 alphaMod;
|
||||
|
||||
if (globalCtx->colCtx.stat.colHeader->waterBoxes) {}
|
||||
|
||||
if (waterLevel < -15.0f) {
|
||||
this->scrollAlpha1 = 255;
|
||||
} else if (waterLevel < 445.0f) {
|
||||
alphaMod = ((waterLevel - -15.0f) / (445.0f - -15.0f)) * 95.0f;
|
||||
this->scrollAlpha1 = 255 - alphaMod;
|
||||
} else {
|
||||
this->scrollAlpha1 = 160;
|
||||
}
|
||||
if (waterLevel < 445.0f) {
|
||||
this->scrollAlpha2 = 255;
|
||||
} else if (waterLevel < 765.0f) {
|
||||
alphaMod = ((waterLevel - 445.0f) / (765.0f - 445.0f)) * 95.0f;
|
||||
this->scrollAlpha2 = 255 - alphaMod;
|
||||
} else {
|
||||
this->scrollAlpha2 = 160;
|
||||
}
|
||||
if (waterLevel < -835.0f) {
|
||||
this->scrollAlpha3 = 255;
|
||||
} else if (waterLevel < -15.0f) {
|
||||
alphaMod = ((waterLevel - -835.0f) / (-15.0f - -835.0f)) * 95.0f;
|
||||
this->scrollAlpha3 = 255 - alphaMod;
|
||||
} else {
|
||||
this->scrollAlpha3 = 160;
|
||||
}
|
||||
this->scrollAlpha4 = this->scrollAlpha3;
|
||||
}
|
||||
|
||||
void BgMizuBwall_SpawnDebris(BgMizuBwall* this, GlobalContext* globalCtx) {
|
||||
s32 i;
|
||||
s32 pad;
|
||||
s16 rand1;
|
||||
s16 rand2;
|
||||
Vec3f* thisPos = &this->dyna.actor.posRot.pos;
|
||||
Vec3f debrisPos;
|
||||
f32 tempx;
|
||||
f32 tempz;
|
||||
f32 sin = Math_SinS(this->dyna.actor.shape.rot.y);
|
||||
f32 cos = Math_CosS(this->dyna.actor.shape.rot.y);
|
||||
Vec3f debrisOffsets[15];
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(debrisOffsets); i++) {
|
||||
switch ((u16)this->dyna.actor.params & 0xF) {
|
||||
case MIZUBWALL_FLOOR:
|
||||
debrisOffsets[i].x = (Rand_ZeroOne() * 80.0f) - 40.0f;
|
||||
debrisOffsets[i].y = Rand_ZeroOne() * 0;
|
||||
debrisOffsets[i].z = (Rand_ZeroOne() * 80.0f) - 40.0f;
|
||||
break;
|
||||
case MIZUBWALL_RUTO_ROOM:
|
||||
debrisOffsets[i].x = Rand_ZeroOne() * 0;
|
||||
debrisOffsets[i].y = Rand_ZeroOne() * 100.0f;
|
||||
debrisOffsets[i].z = (Rand_ZeroOne() * 80.0f) - 40.0f;
|
||||
break;
|
||||
case MIZUBWALL_UNUSED:
|
||||
case MIZUBWALL_STINGER_ROOM_1:
|
||||
default:
|
||||
debrisOffsets[i].x = (Rand_ZeroOne() * 120) - 60.0f;
|
||||
debrisOffsets[i].y = Rand_ZeroOne() * 120;
|
||||
debrisOffsets[i].z = Rand_ZeroOne() * 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(debrisOffsets); i++) {
|
||||
tempx = debrisOffsets[i].x;
|
||||
tempz = debrisOffsets[i].z;
|
||||
|
||||
debrisPos.x = thisPos->x + tempz * sin + tempx * cos;
|
||||
debrisPos.y = thisPos->y + debrisOffsets[i].y;
|
||||
debrisPos.z = thisPos->z + tempz * cos - tempx * sin;
|
||||
|
||||
rand1 = (s16)(Rand_ZeroOne() * 120.0f) + 20;
|
||||
rand2 = (s16)(Rand_ZeroOne() * 240.0f) + 20;
|
||||
func_80033480(globalCtx, &debrisPos, 50.0f, 2, rand1, rand2, 0);
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_A_OBJ, debrisPos.x, debrisPos.y, debrisPos.z, 0, 0, 0,
|
||||
0xB);
|
||||
}
|
||||
}
|
||||
|
||||
void BgMizuBwall_Idle(BgMizuBwall* this, GlobalContext* globalCtx) {
|
||||
BgMizuBwall_SetAlpha(this, globalCtx);
|
||||
if (this->collider.base.acFlags & 2) {
|
||||
this->collider.base.acFlags &= ~2;
|
||||
Flags_SetSwitch(globalCtx, ((u16)this->dyna.actor.params >> 8) & 0x3F);
|
||||
this->breakTimer = 1;
|
||||
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
this->dList = NULL;
|
||||
BgMizuBwall_SpawnDebris(this, globalCtx);
|
||||
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_WALL_BROKEN);
|
||||
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
|
||||
this->actionFunc = BgMizuBwall_Break;
|
||||
} else if (this->dyna.actor.xzDistFromLink < 600.0f) {
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
|
||||
void BgMizuBwall_Break(BgMizuBwall* this, GlobalContext* globalCtx) {
|
||||
if (this->breakTimer > 0) {
|
||||
this->breakTimer--;
|
||||
} else {
|
||||
this->actionFunc = BgMizuBwall_DoNothing;
|
||||
}
|
||||
}
|
||||
|
||||
void BgMizuBwall_DoNothing(BgMizuBwall* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void BgMizuBwall_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgMizuBwall* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgMizuBwall_Draw(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
BgMizuBwall* this = THIS;
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
u32 frames;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_mizu_bwall.c", 1095);
|
||||
if (1) {}
|
||||
frames = globalCtx->gameplayFrames;
|
||||
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08,
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, 1 * frames, 0, 0x20, 0x20, 1, 0, 0, 0x20, 0x20, 0,
|
||||
0, 0, this->scrollAlpha1));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09,
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, 1 * frames, 0, 0x20, 0x20, 1, 0, 0, 0x20, 0x20, 0,
|
||||
0, 0, this->scrollAlpha2));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0A,
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, 1 * frames, 0, 0x20, 0x20, 1, 0, 0, 0x20, 0x20, 0,
|
||||
0, 0, this->scrollAlpha3));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x0B,
|
||||
Gfx_TwoTexScrollEnvColor(globalCtx->state.gfxCtx, 0, 3 * frames, 0, 0x20, 0x20, 1, 0, 0, 0x20, 0x20, 0,
|
||||
0, 0, this->scrollAlpha4));
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mizu_bwall.c", 1129), 2);
|
||||
|
||||
if (this->dList != NULL) {
|
||||
gSPDisplayList(POLY_OPA_DISP++, this->dList);
|
||||
}
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_mizu_bwall.c", 1136);
|
||||
}
|
||||
|
||||
@@ -6,11 +6,31 @@
|
||||
|
||||
struct BgMizuBwall;
|
||||
|
||||
typedef void (*BgMizuBwallActionFunc)(struct BgMizuBwall*, GlobalContext*);
|
||||
|
||||
typedef struct BgMizuBwall {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x170];
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x0164 */ ColliderTris collider;
|
||||
/* 0x0184 */ ColliderTrisItem elements[3]; // only ever uses 2
|
||||
/* 0x0298 */ BgMizuBwallActionFunc actionFunc;
|
||||
/* 0x029C */ f32 yRot;
|
||||
/* 0x02A0 */ s32 scrollAlpha1;
|
||||
/* 0x02A4 */ s32 scrollAlpha2;
|
||||
/* 0x02A8 */ s32 scrollAlpha3;
|
||||
/* 0x02AC */ s32 scrollAlpha4;
|
||||
/* 0x02B0 */ s32 breakTimer;
|
||||
/* 0x02B4 */ char unk_2B4[4];
|
||||
/* 0x02B8 */ Gfx* dList;
|
||||
} BgMizuBwall; // size = 0x02BC
|
||||
|
||||
typedef enum {
|
||||
MIZUBWALL_FLOOR,
|
||||
MIZUBWALL_RUTO_ROOM,
|
||||
MIZUBWALL_UNUSED,
|
||||
MIZUBWALL_STINGER_ROOM_1,
|
||||
MIZUBWALL_STINGER_ROOM_2
|
||||
} BgMizuBwallType;
|
||||
|
||||
extern const ActorInit Bg_Mizu_Bwall_InitVars;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user