Decomp EnExRuppy (#331)

* PR fixes NOT MATCHING

* PR fixes

* Fix EnNiwGirl.h

* Update z_en_niw_girl.h

* Update z_en_niw_girl.c

* Delete ASM

* Ran format.sh and did some manual cleanup

* Update z_en_ex_ruppy.c

* Update z_en_ex_ruppy.c

* PR fixes

* Accidently left a git string in the file

* PR fixes

* PR fixes
This commit is contained in:
louist103 2020-08-28 19:45:47 -04:00 committed by GitHub
parent c905652f80
commit 98ca965541
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 420 additions and 868 deletions

View File

@ -1,4 +0,0 @@
glabel EnExRuppy_Destroy
/* 00404 80A0A814 AFA40000 */ sw $a0, 0x0000($sp)
/* 00408 80A0A818 03E00008 */ jr $ra
/* 0040C 80A0A81C AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,97 +0,0 @@
.rdata
glabel D_80A0B4D0
.asciz "../z_en_ex_ruppy.c"
.balign 4
glabel D_80A0B4E4
.asciz "../z_en_ex_ruppy.c"
.balign 4
glabel D_80A0B4F8
.asciz "../z_en_ex_ruppy.c"
.balign 4
.text
glabel EnExRuppy_Draw
/* 00DCC 80A0B1DC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00DD0 80A0B1E0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00DD4 80A0B1E4 AFB10018 */ sw $s1, 0x0018($sp)
/* 00DD8 80A0B1E8 AFB00014 */ sw $s0, 0x0014($sp)
/* 00DDC 80A0B1EC AFA40050 */ sw $a0, 0x0050($sp)
/* 00DE0 80A0B1F0 848F0154 */ lh $t7, 0x0154($a0) ## 00000154
/* 00DE4 80A0B1F4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00DE8 80A0B1F8 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 00DEC 80A0B1FC 15E00041 */ bne $t7, $zero, .L80A0B304
/* 00DF0 80A0B200 3C0680A1 */ lui $a2, %hi(D_80A0B4D0) ## $a2 = 80A10000
/* 00DF4 80A0B204 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00DF8 80A0B208 24C6B4D0 */ addiu $a2, $a2, %lo(D_80A0B4D0) ## $a2 = 80A0B4D0
/* 00DFC 80A0B20C 24070306 */ addiu $a3, $zero, 0x0306 ## $a3 = 00000306
/* 00E00 80A0B210 0C031AB1 */ jal Graph_OpenDisps
/* 00E04 80A0B214 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00E08 80A0B218 0C024F46 */ jal func_80093D18
/* 00E0C 80A0B21C 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00E10 80A0B220 8FA40050 */ lw $a0, 0x0050($sp)
/* 00E14 80A0B224 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00E18 80A0B228 0C00BAF3 */ jal func_8002EBCC
/* 00E1C 80A0B22C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00E20 80A0B230 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00E24 80A0B234 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 00E28 80A0B238 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 00E2C 80A0B23C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00E30 80A0B240 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00E34 80A0B244 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00E38 80A0B248 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00E3C 80A0B24C 3C0580A1 */ lui $a1, %hi(D_80A0B4E4) ## $a1 = 80A10000
/* 00E40 80A0B250 24A5B4E4 */ addiu $a1, $a1, %lo(D_80A0B4E4) ## $a1 = 80A0B4E4
/* 00E44 80A0B254 2406030C */ addiu $a2, $zero, 0x030C ## $a2 = 0000030C
/* 00E48 80A0B258 0C0346A2 */ jal Matrix_NewMtx
/* 00E4C 80A0B25C AFA20030 */ sw $v0, 0x0030($sp)
/* 00E50 80A0B260 8FA30030 */ lw $v1, 0x0030($sp)
/* 00E54 80A0B264 3C09DB06 */ lui $t1, 0xDB06 ## $t1 = DB060000
/* 00E58 80A0B268 35290020 */ ori $t1, $t1, 0x0020 ## $t1 = DB060020
/* 00E5C 80A0B26C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00E60 80A0B270 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00E64 80A0B274 3C0480A1 */ lui $a0, %hi(D_80A0B3B8) ## $a0 = 80A10000
/* 00E68 80A0B278 3C198016 */ lui $t9, %hi(gSegments)
/* 00E6C 80A0B27C 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 00E70 80A0B280 AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0
/* 00E74 80A0B284 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00E78 80A0B288 8FAA0050 */ lw $t2, 0x0050($sp)
/* 00E7C 80A0B28C 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00E80 80A0B290 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00E84 80A0B294 854B0150 */ lh $t3, 0x0150($t2) ## 00000150
/* 00E88 80A0B298 3C0680A1 */ lui $a2, %hi(D_80A0B4F8) ## $a2 = 80A10000
/* 00E8C 80A0B29C 24C6B4F8 */ addiu $a2, $a2, %lo(D_80A0B4F8) ## $a2 = 80A0B4F8
/* 00E90 80A0B2A0 000B6080 */ sll $t4, $t3, 2
/* 00E94 80A0B2A4 008C2021 */ addu $a0, $a0, $t4
/* 00E98 80A0B2A8 8C84B3B8 */ lw $a0, %lo(D_80A0B3B8)($a0)
/* 00E9C 80A0B2AC 3C0C0404 */ lui $t4, 0x0404 ## $t4 = 04040000
/* 00EA0 80A0B2B0 258C2440 */ addiu $t4, $t4, 0x2440 ## $t4 = 04042440
/* 00EA4 80A0B2B4 00047100 */ sll $t6, $a0, 4
/* 00EA8 80A0B2B8 000E7F02 */ srl $t7, $t6, 28
/* 00EAC 80A0B2BC 000FC080 */ sll $t8, $t7, 2
/* 00EB0 80A0B2C0 0338C821 */ addu $t9, $t9, $t8
/* 00EB4 80A0B2C4 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
/* 00EB8 80A0B2C8 00816824 */ and $t5, $a0, $at
/* 00EBC 80A0B2CC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00EC0 80A0B2D0 01B94021 */ addu $t0, $t5, $t9
/* 00EC4 80A0B2D4 01014821 */ addu $t1, $t0, $at
/* 00EC8 80A0B2D8 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 00ECC 80A0B2DC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00ED0 80A0B2E0 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 00ED4 80A0B2E4 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 00ED8 80A0B2E8 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 00EDC 80A0B2EC AE0A02C0 */ sw $t2, 0x02C0($s0) ## 000002C0
/* 00EE0 80A0B2F0 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00EE4 80A0B2F4 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00EE8 80A0B2F8 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00EEC 80A0B2FC 0C031AD5 */ jal Graph_CloseDisps
/* 00EF0 80A0B300 24070310 */ addiu $a3, $zero, 0x0310 ## $a3 = 00000310
.L80A0B304:
/* 00EF4 80A0B304 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EF8 80A0B308 8FB00014 */ lw $s0, 0x0014($sp)
/* 00EFC 80A0B30C 8FB10018 */ lw $s1, 0x0018($sp)
/* 00F00 80A0B310 03E00008 */ jr $ra
/* 00F04 80A0B314 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00F08 80A0B318 00000000 */ nop
/* 00F0C 80A0B31C 00000000 */ nop

View File

@ -180,9 +180,9 @@ glabel L80A0A478
/* 001E8 80A0A5F8 44812000 */ mtc1 $at, $f4 ## $f4 = 700.00
/* 001EC 80A0A5FC 860E0034 */ lh $t6, 0x0034($s0) ## 00000034
/* 001F0 80A0A600 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 001F4 80A0A604 3C0880A1 */ lui $t0, %hi(func_80A0AA3C) ## $t0 = 80A10000
/* 001F4 80A0A604 3C0880A1 */ lui $t0, %hi(EnExRuppy_DropIntoWater) ## $t0 = 80A10000
/* 001F8 80A0A608 240F001E */ addiu $t7, $zero, 0x001E ## $t7 = 0000001E
/* 001FC 80A0A60C 2508AA3C */ addiu $t0, $t0, %lo(func_80A0AA3C) ## $t0 = 80A0AA3C
/* 001FC 80A0A60C 2508AA3C */ addiu $t0, $t0, %lo(EnExRuppy_DropIntoWater) ## $t0 = 80A0AA3C
/* 00200 80A0A610 0301C824 */ and $t9, $t8, $at
/* 00204 80A0A614 A6000034 */ sh $zero, 0x0034($s0) ## 00000034
/* 00208 80A0A618 A60F0156 */ sh $t7, 0x0156($s0) ## 00000156
@ -234,8 +234,8 @@ glabel L80A0A634
/* 002A4 80A0A6B4 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 002A8 80A0A6B8 44818000 */ mtc1 $at, $f16 ## $f16 = 700.00
/* 002AC 80A0A6BC 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 002B0 80A0A6C0 3C1980A1 */ lui $t9, %hi(func_80A0AF24) ## $t9 = 80A10000
/* 002B4 80A0A6C4 2739AF24 */ addiu $t9, $t9, %lo(func_80A0AF24) ## $t9 = 80A0AF24
/* 002B0 80A0A6C0 3C1980A1 */ lui $t9, %hi(EnExRuppy_WaitToBlowUp) ## $t9 = 80A10000
/* 002B4 80A0A6C4 2739AF24 */ addiu $t9, $t9, %lo(EnExRuppy_WaitToBlowUp) ## $t9 = 80A0AF24
/* 002B8 80A0A6C8 01E1C024 */ and $t8, $t7, $at
/* 002BC 80A0A6CC AE180004 */ sw $t8, 0x0004($s0) ## 00000004
/* 002C0 80A0A6D0 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
@ -293,8 +293,8 @@ glabel L80A0A6E0
/* 00370 80A0A780 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 00374 80A0A784 44814000 */ mtc1 $at, $f8 ## $f8 = 700.00
/* 00378 80A0A788 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 0037C 80A0A78C 3C0D80A1 */ lui $t5, %hi(func_80A0B070) ## $t5 = 80A10000
/* 00380 80A0A790 25ADB070 */ addiu $t5, $t5, %lo(func_80A0B070) ## $t5 = 80A0B070
/* 0037C 80A0A78C 3C0D80A1 */ lui $t5, %hi(EnExRuppy_WaitAsCollectible) ## $t5 = 80A10000
/* 00380 80A0A790 25ADB070 */ addiu $t5, $t5, %lo(EnExRuppy_WaitAsCollectible) ## $t5 = 80A0B070
/* 00384 80A0A794 01616024 */ and $t4, $t3, $at
/* 00388 80A0A798 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
/* 0038C 80A0A79C AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
@ -329,4 +329,4 @@ glabel L80A0A7AC
/* 003F4 80A0A804 8FB00018 */ lw $s0, 0x0018($sp)
/* 003F8 80A0A808 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 003FC 80A0A80C 03E00008 */ jr $ra
/* 00400 80A0A810 00000000 */ nop
/* 00400 80A0A810 00000000 */ nop

View File

@ -1,38 +0,0 @@
glabel EnExRuppy_Update
/* 00D40 80A0B150 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00D44 80A0B154 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00D48 80A0B158 AFB00020 */ sw $s0, 0x0020($sp)
/* 00D4C 80A0B15C AFA5002C */ sw $a1, 0x002C($sp)
/* 00D50 80A0B160 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00D54 80A0B164 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D58 80A0B168 25CF07A8 */ addiu $t7, $t6, 0x07A8 ## $t7 = 000007A8
/* 00D5C 80A0B16C A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 00D60 80A0B170 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 00D64 80A0B174 8FA5002C */ lw $a1, 0x002C($sp)
/* 00D68 80A0B178 0320F809 */ jalr $ra, $t9
/* 00D6C 80A0B17C 00000000 */ nop
/* 00D70 80A0B180 86020156 */ lh $v0, 0x0156($s0) ## 00000156
/* 00D74 80A0B184 10400002 */ beq $v0, $zero, .L80A0B190
/* 00D78 80A0B188 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 00D7C 80A0B18C A6180156 */ sh $t8, 0x0156($s0) ## 00000156
.L80A0B190:
/* 00D80 80A0B190 0C00B638 */ jal Actor_MoveForward
/* 00D84 80A0B194 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D88 80A0B198 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00D8C 80A0B19C 44810000 */ mtc1 $at, $f0 ## $f0 = 20.00
/* 00D90 80A0B1A0 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00D94 80A0B1A4 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00
/* 00D98 80A0B1A8 2408001C */ addiu $t0, $zero, 0x001C ## $t0 = 0000001C
/* 00D9C 80A0B1AC 44060000 */ mfc1 $a2, $f0
/* 00DA0 80A0B1B0 44070000 */ mfc1 $a3, $f0
/* 00DA4 80A0B1B4 AFA80014 */ sw $t0, 0x0014($sp)
/* 00DA8 80A0B1B8 8FA4002C */ lw $a0, 0x002C($sp)
/* 00DAC 80A0B1BC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00DB0 80A0B1C0 0C00B92D */ jal func_8002E4B4
/* 00DB4 80A0B1C4 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00DB8 80A0B1C8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00DBC 80A0B1CC 8FB00020 */ lw $s0, 0x0020($sp)
/* 00DC0 80A0B1D0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00DC4 80A0B1D4 03E00008 */ jr $ra
/* 00DC8 80A0B1D8 00000000 */ nop

View File

@ -1,145 +0,0 @@
glabel func_80A0A820
/* 00410 80A0A820 27BDFF50 */ addiu $sp, $sp, 0xFF50 ## $sp = FFFFFF50
/* 00414 80A0A824 AFBE0068 */ sw $s8, 0x0068($sp)
/* 00418 80A0A828 0006F400 */ sll $s8, $a2, 16
/* 0041C 80A0A82C 001EF403 */ sra $s8, $s8, 16
/* 00420 80A0A830 AFB00048 */ sw $s0, 0x0048($sp)
/* 00424 80A0A834 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00428 80A0A838 AFBF006C */ sw $ra, 0x006C($sp)
/* 0042C 80A0A83C AFB70064 */ sw $s7, 0x0064($sp)
/* 00430 80A0A840 AFB60060 */ sw $s6, 0x0060($sp)
/* 00434 80A0A844 AFB5005C */ sw $s5, 0x005C($sp)
/* 00438 80A0A848 AFB40058 */ sw $s4, 0x0058($sp)
/* 0043C 80A0A84C AFB30054 */ sw $s3, 0x0054($sp)
/* 00440 80A0A850 AFB20050 */ sw $s2, 0x0050($sp)
/* 00444 80A0A854 AFB1004C */ sw $s1, 0x004C($sp)
/* 00448 80A0A858 F7BA0040 */ sdc1 $f26, 0x0040($sp)
/* 0044C 80A0A85C F7B80038 */ sdc1 $f24, 0x0038($sp)
/* 00450 80A0A860 F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 00454 80A0A864 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 00458 80A0A868 AFA500B4 */ sw $a1, 0x00B4($sp)
/* 0045C 80A0A86C 1FC00002 */ bgtz $s8, .L80A0A878
/* 00460 80A0A870 AFA600B8 */ sw $a2, 0x00B8($sp)
/* 00464 80A0A874 241E0001 */ addiu $s8, $zero, 0x0001 ## $s8 = 00000001
.L80A0A878:
/* 00468 80A0A878 00071080 */ sll $v0, $a3, 2
/* 0046C 80A0A87C 00471023 */ subu $v0, $v0, $a3
/* 00470 80A0A880 3C0A80A1 */ lui $t2, %hi(D_80A0B358) ## $t2 = 80A10000
/* 00474 80A0A884 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
/* 00478 80A0A888 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 0047C 80A0A88C 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 00480 80A0A890 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
/* 00484 80A0A894 240800FF */ addiu $t0, $zero, 0x00FF ## $t0 = 000000FF
/* 00488 80A0A898 254AB358 */ addiu $t2, $t2, %lo(D_80A0B358) ## $t2 = 80A0B358
/* 0048C 80A0A89C 00021080 */ sll $v0, $v0, 2
/* 00490 80A0A8A0 A3AE0088 */ sb $t6, 0x0088($sp)
/* 00494 80A0A8A4 A3AF0089 */ sb $t7, 0x0089($sp)
/* 00498 80A0A8A8 A3A0008A */ sb $zero, 0x008A($sp)
/* 0049C 80A0A8AC A3B80084 */ sb $t8, 0x0084($sp)
/* 004A0 80A0A8B0 A3B90085 */ sb $t9, 0x0085($sp)
/* 004A4 80A0A8B4 A3A80086 */ sb $t0, 0x0086($sp)
/* 004A8 80A0A8B8 004A5821 */ addu $t3, $v0, $t2
/* 004AC 80A0A8BC 8D6D0000 */ lw $t5, 0x0000($t3) ## 00000000
/* 004B0 80A0A8C0 27A90098 */ addiu $t1, $sp, 0x0098 ## $t1 = FFFFFFE8
/* 004B4 80A0A8C4 3C0E80A1 */ lui $t6, %hi(D_80A0B370) ## $t6 = 80A10000
/* 004B8 80A0A8C8 AD2D0000 */ sw $t5, 0x0000($t1) ## FFFFFFE8
/* 004BC 80A0A8CC 8D6C0004 */ lw $t4, 0x0004($t3) ## 00000004
/* 004C0 80A0A8D0 25CEB370 */ addiu $t6, $t6, %lo(D_80A0B370) ## $t6 = 80A0B370
/* 004C4 80A0A8D4 004E7821 */ addu $t7, $v0, $t6
/* 004C8 80A0A8D8 AD2C0004 */ sw $t4, 0x0004($t1) ## FFFFFFEC
/* 004CC 80A0A8DC 8D6D0008 */ lw $t5, 0x0008($t3) ## 00000008
/* 004D0 80A0A8E0 27B8008C */ addiu $t8, $sp, 0x008C ## $t8 = FFFFFFDC
/* 004D4 80A0A8E4 24120BB8 */ addiu $s2, $zero, 0x0BB8 ## $s2 = 00000BB8
/* 004D8 80A0A8E8 AD2D0008 */ sw $t5, 0x0008($t1) ## FFFFFFF0
/* 004DC 80A0A8EC AFAF0078 */ sw $t7, 0x0078($sp)
/* 004E0 80A0A8F0 8DEA0000 */ lw $t2, 0x0000($t7) ## 000000FF
/* 004E4 80A0A8F4 24130010 */ addiu $s3, $zero, 0x0010 ## $s3 = 00000010
/* 004E8 80A0A8F8 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 004EC 80A0A8FC AF0A0000 */ sw $t2, 0x0000($t8) ## FFFFFFDC
/* 004F0 80A0A900 8DE80004 */ lw $t0, 0x0004($t7) ## 00000103
/* 004F4 80A0A904 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 004F8 80A0A908 27B70084 */ addiu $s7, $sp, 0x0084 ## $s7 = FFFFFFD4
/* 004FC 80A0A90C AF080004 */ sw $t0, 0x0004($t8) ## FFFFFFE0
/* 00500 80A0A910 8DEA0008 */ lw $t2, 0x0008($t7) ## 00000107
/* 00504 80A0A914 27B60088 */ addiu $s6, $sp, 0x0088 ## $s6 = FFFFFFD8
/* 00508 80A0A918 1BC00038 */ blez $s8, .L80A0A9FC
/* 0050C 80A0A91C AF0A0008 */ sw $t2, 0x0008($t8) ## FFFFFFE4
/* 00510 80A0A920 4481D000 */ mtc1 $at, $f26 ## $f26 = 600.00
/* 00514 80A0A924 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00518 80A0A928 4481C000 */ mtc1 $at, $f24 ## $f24 = 20.00
/* 0051C 80A0A92C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00520 80A0A930 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 00524 80A0A934 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00528 80A0A938 3C1480A1 */ lui $s4, %hi(D_80A0B37C) ## $s4 = 80A10000
/* 0052C 80A0A93C 4481A000 */ mtc1 $at, $f20 ## $f20 = 0.50
/* 00530 80A0A940 2694B37C */ addiu $s4, $s4, %lo(D_80A0B37C) ## $s4 = 80A0B37C
/* 00534 80A0A944 27B500A4 */ addiu $s5, $sp, 0x00A4 ## $s5 = FFFFFFF4
/* 00538 80A0A948 8FA90078 */ lw $t1, 0x0078($sp)
.L80A0A94C:
/* 0053C 80A0A94C 15340009 */ bne $t1, $s4, .L80A0A974
/* 00540 80A0A950 00000000 */ nop
/* 00544 80A0A954 4600C306 */ mov.s $f12, $f24
/* 00548 80A0A958 24121388 */ addiu $s2, $zero, 0x1388 ## $s2 = 00001388
/* 0054C 80A0A95C 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00550 80A0A960 24130014 */ addiu $s3, $zero, 0x0014 ## $s3 = 00000014
/* 00554 80A0A964 E7A0008C */ swc1 $f0, 0x008C($sp)
/* 00558 80A0A968 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 0055C 80A0A96C 4600C306 */ mov.s $f12, $f24
/* 00560 80A0A970 E7A00094 */ swc1 $f0, 0x0094($sp)
.L80A0A974:
/* 00564 80A0A974 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00568 80A0A978 00000000 */ nop
/* 0056C 80A0A97C 46140101 */ sub.s $f4, $f0, $f20
/* 00570 80A0A980 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 00574 80A0A984 46162182 */ mul.s $f6, $f4, $f22
/* 00578 80A0A988 46083280 */ add.s $f10, $f6, $f8
/* 0057C 80A0A98C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00580 80A0A990 E7AA00A4 */ swc1 $f10, 0x00A4($sp)
/* 00584 80A0A994 C6120160 */ lwc1 $f18, 0x0160($s0) ## 00000160
/* 00588 80A0A998 46140201 */ sub.s $f8, $f0, $f20
/* 0058C 80A0A99C C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 00590 80A0A9A0 461A9102 */ mul.s $f4, $f18, $f26
/* 00594 80A0A9A4 46048180 */ add.s $f6, $f16, $f4
/* 00598 80A0A9A8 46164282 */ mul.s $f10, $f8, $f22
/* 0059C 80A0A9AC 46065480 */ add.s $f18, $f10, $f6
/* 005A0 80A0A9B0 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 005A4 80A0A9B4 E7B200A8 */ swc1 $f18, 0x00A8($sp)
/* 005A8 80A0A9B8 46140401 */ sub.s $f16, $f0, $f20
/* 005AC 80A0A9BC C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
/* 005B0 80A0A9C0 AFB3001C */ sw $s3, 0x001C($sp)
/* 005B4 80A0A9C4 AFB20018 */ sw $s2, 0x0018($sp)
/* 005B8 80A0A9C8 46168102 */ mul.s $f4, $f16, $f22
/* 005BC 80A0A9CC AFB70014 */ sw $s7, 0x0014($sp)
/* 005C0 80A0A9D0 AFB60010 */ sw $s6, 0x0010($sp)
/* 005C4 80A0A9D4 8FA400B4 */ lw $a0, 0x00B4($sp)
/* 005C8 80A0A9D8 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFF4
/* 005CC 80A0A9DC 27A60098 */ addiu $a2, $sp, 0x0098 ## $a2 = FFFFFFE8
/* 005D0 80A0A9E0 27A7008C */ addiu $a3, $sp, 0x008C ## $a3 = FFFFFFDC
/* 005D4 80A0A9E4 46082280 */ add.s $f10, $f4, $f8
/* 005D8 80A0A9E8 0C00A2EC */ jal func_80028BB0
/* 005DC 80A0A9EC E7AA00AC */ swc1 $f10, 0x00AC($sp)
/* 005E0 80A0A9F0 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 005E4 80A0A9F4 563EFFD5 */ bnel $s1, $s8, .L80A0A94C
/* 005E8 80A0A9F8 8FA90078 */ lw $t1, 0x0078($sp)
.L80A0A9FC:
/* 005EC 80A0A9FC 8FBF006C */ lw $ra, 0x006C($sp)
/* 005F0 80A0AA00 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 005F4 80A0AA04 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 005F8 80A0AA08 D7B80038 */ ldc1 $f24, 0x0038($sp)
/* 005FC 80A0AA0C D7BA0040 */ ldc1 $f26, 0x0040($sp)
/* 00600 80A0AA10 8FB00048 */ lw $s0, 0x0048($sp)
/* 00604 80A0AA14 8FB1004C */ lw $s1, 0x004C($sp)
/* 00608 80A0AA18 8FB20050 */ lw $s2, 0x0050($sp)
/* 0060C 80A0AA1C 8FB30054 */ lw $s3, 0x0054($sp)
/* 00610 80A0AA20 8FB40058 */ lw $s4, 0x0058($sp)
/* 00614 80A0AA24 8FB5005C */ lw $s5, 0x005C($sp)
/* 00618 80A0AA28 8FB60060 */ lw $s6, 0x0060($sp)
/* 0061C 80A0AA2C 8FB70064 */ lw $s7, 0x0064($sp)
/* 00620 80A0AA30 8FBE0068 */ lw $s8, 0x0068($sp)
/* 00624 80A0AA34 03E00008 */ jr $ra
/* 00628 80A0AA38 27BD00B0 */ addiu $sp, $sp, 0x00B0 ## $sp = 00000000

View File

@ -1,60 +0,0 @@
glabel func_80A0AA3C
/* 0062C 80A0AA3C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00630 80A0AA40 AFBF001C */ sw $ra, 0x001C($sp)
/* 00634 80A0AA44 AFB00018 */ sw $s0, 0x0018($sp)
/* 00638 80A0AA48 AFA50024 */ sw $a1, 0x0024($sp)
/* 0063C 80A0AA4C 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 00640 80A0AA50 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00644 80A0AA54 3C063E99 */ lui $a2, 0x3E99 ## $a2 = 3E990000
/* 00648 80A0AA58 25CF07A8 */ addiu $t7, $t6, 0x07A8 ## $t7 = 000007A8
/* 0064C 80A0AA5C A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 00650 80A0AA60 34C6999A */ ori $a2, $a2, 0x999A ## $a2 = 3E99999A
/* 00654 80A0AA64 2484006C */ addiu $a0, $a0, 0x006C ## $a0 = 0000006C
/* 00658 80A0AA68 3C05C000 */ lui $a1, 0xC000 ## $a1 = C0000000
/* 0065C 80A0AA6C 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00660 80A0AA70 3C073F80 */ lui $a3, 0x3F80 ## $a3 = 3F800000
/* 00664 80A0AA74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00668 80A0AA78 8FA50024 */ lw $a1, 0x0024($sp)
/* 0066C 80A0AA7C 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002
/* 00670 80A0AA80 0C282A08 */ jal func_80A0A820
/* 00674 80A0AA84 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00678 80A0AA88 0C01E221 */ jal func_80078884
/* 0067C 80A0AA8C 240420BC */ addiu $a0, $zero, 0x20BC ## $a0 = 000020BC
/* 00680 80A0AA90 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 00684 80A0AA94 5040001D */ beql $v0, $zero, .L80A0AB0C
/* 00688 80A0AA98 8FBF001C */ lw $ra, 0x001C($sp)
/* 0068C 80A0AA9C 8C580130 */ lw $t8, 0x0130($v0) ## 00000130
/* 00690 80A0AAA0 5300001A */ beql $t8, $zero, .L80A0AB0C
/* 00694 80A0AAA4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00698 80A0AAA8 84590296 */ lh $t9, 0x0296($v0) ## 00000296
/* 0069C 80A0AAAC 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 006A0 80A0AAB0 260400E4 */ addiu $a0, $s0, 0x00E4 ## $a0 = 000000E4
/* 006A4 80A0AAB4 53200009 */ beql $t9, $zero, .L80A0AADC
/* 006A8 80A0AAB8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006AC 80A0AABC 96080088 */ lhu $t0, 0x0088($s0) ## 00000088
/* 006B0 80A0AAC0 31090020 */ andi $t1, $t0, 0x0020 ## $t1 = 00000000
/* 006B4 80A0AAC4 55200005 */ bnel $t1, $zero, .L80A0AADC
/* 006B8 80A0AAC8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 006BC 80A0AACC 860A0156 */ lh $t2, 0x0156($s0) ## 00000156
/* 006C0 80A0AAD0 5540000E */ bnel $t2, $zero, .L80A0AB0C
/* 006C4 80A0AAD4 8FBF001C */ lw $ra, 0x001C($sp)
/* 006C8 80A0AAD8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L80A0AADC:
/* 006CC 80A0AADC A60B0154 */ sh $t3, 0x0154($s0) ## 00000154
/* 006D0 80A0AAE0 24052817 */ addiu $a1, $zero, 0x2817 ## $a1 = 00002817
/* 006D4 80A0AAE4 E6000068 */ swc1 $f0, 0x0068($s0) ## 00000068
/* 006D8 80A0AAE8 E6000064 */ swc1 $f0, 0x0064($s0) ## 00000064
/* 006DC 80A0AAEC E6000060 */ swc1 $f0, 0x0060($s0) ## 00000060
/* 006E0 80A0AAF0 E600005C */ swc1 $f0, 0x005C($s0) ## 0000005C
/* 006E4 80A0AAF4 0C01E245 */ jal func_80078914
/* 006E8 80A0AAF8 E600006C */ swc1 $f0, 0x006C($s0) ## 0000006C
/* 006EC 80A0AAFC 3C0C80A1 */ lui $t4, %hi(func_80A0AB1C) ## $t4 = 80A10000
/* 006F0 80A0AB00 258CAB1C */ addiu $t4, $t4, %lo(func_80A0AB1C) ## $t4 = 80A0AB1C
/* 006F4 80A0AB04 AE0C014C */ sw $t4, 0x014C($s0) ## 0000014C
/* 006F8 80A0AB08 8FBF001C */ lw $ra, 0x001C($sp)
.L80A0AB0C:
/* 006FC 80A0AB0C 8FB00018 */ lw $s0, 0x0018($sp)
/* 00700 80A0AB10 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00704 80A0AB14 03E00008 */ jr $ra
/* 00708 80A0AB18 00000000 */ nop

View File

@ -1,99 +0,0 @@
glabel func_80A0AB1C
/* 0070C 80A0AB1C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00710 80A0AB20 AFBF001C */ sw $ra, 0x001C($sp)
/* 00714 80A0AB24 AFB00018 */ sw $s0, 0x0018($sp)
/* 00718 80A0AB28 AFA5002C */ sw $a1, 0x002C($sp)
/* 0071C 80A0AB2C 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
/* 00720 80A0AB30 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00724 80A0AB34 50400050 */ beql $v0, $zero, .L80A0AC78
/* 00728 80A0AB38 8FBF001C */ lw $ra, 0x001C($sp)
/* 0072C 80A0AB3C 8C4E0130 */ lw $t6, 0x0130($v0) ## 00000130
/* 00730 80A0AB40 51C0004D */ beql $t6, $zero, .L80A0AC78
/* 00734 80A0AB44 8FBF001C */ lw $ra, 0x001C($sp)
/* 00738 80A0AB48 844F02A2 */ lh $t7, 0x02A2($v0) ## 000002A2
/* 0073C 80A0AB4C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00740 80A0AB50 55E10049 */ bnel $t7, $at, .L80A0AC78
/* 00744 80A0AB54 8FBF001C */ lw $ra, 0x001C($sp)
/* 00748 80A0AB58 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0074C 80A0AB5C A4800154 */ sh $zero, 0x0154($a0) ## 00000154
/* 00750 80A0AB60 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00754 80A0AB64 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00758 80A0AB68 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 0075C 80A0AB6C 44814000 */ mtc1 $at, $f8 ## $f8 = 300.00
/* 00760 80A0AB70 46040181 */ sub.s $f6, $f0, $f4
/* 00764 80A0AB74 3C01C382 */ lui $at, 0xC382 ## $at = C3820000
/* 00768 80A0AB78 44818000 */ mtc1 $at, $f16 ## $f16 = -260.00
/* 0076C 80A0AB7C 46083282 */ mul.s $f10, $f6, $f8
/* 00770 80A0AB80 46105480 */ add.s $f18, $f10, $f16
/* 00774 80A0AB84 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00778 80A0AB88 E6120024 */ swc1 $f18, 0x0024($s0) ## 00000024
/* 0077C 80A0AB8C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00780 80A0AB90 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00784 80A0AB94 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00788 80A0AB98 44814000 */ mtc1 $at, $f8 ## $f8 = 200.00
/* 0078C 80A0AB9C 46040181 */ sub.s $f6, $f0, $f4
/* 00790 80A0ABA0 8618015A */ lh $t8, 0x015A($s0) ## 0000015A
/* 00794 80A0ABA4 3C0143B9 */ lui $at, 0x43B9 ## $at = 43B90000
/* 00798 80A0ABA8 44818000 */ mtc1 $at, $f16 ## $f16 = 370.00
/* 0079C 80A0ABAC 46083282 */ mul.s $f10, $f6, $f8
/* 007A0 80A0ABB0 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 007A4 80A0ABB4 3C01C248 */ lui $at, 0xC248 ## $at = C2480000
/* 007A8 80A0ABB8 3C198016 */ lui $t9, %hi(gSaveContext+0xeda)
/* 007AC 80A0ABBC 44814000 */ mtc1 $at, $f8 ## $f8 = -50.00
/* 007B0 80A0ABC0 3C01C396 */ lui $at, 0xC396 ## $at = C3960000
/* 007B4 80A0ABC4 468021A0 */ cvt.s.w $f6, $f4
/* 007B8 80A0ABC8 46105480 */ add.s $f18, $f10, $f16
/* 007BC 80A0ABCC 46083082 */ mul.s $f2, $f6, $f8
/* 007C0 80A0ABD0 E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
/* 007C4 80A0ABD4 9739F53A */ lhu $t9, %lo(gSaveContext+0xeda)($t9)
/* 007C8 80A0ABD8 33280100 */ andi $t0, $t9, 0x0100 ## $t0 = 00000000
/* 007CC 80A0ABDC 55000012 */ bnel $t0, $zero, .L80A0AC28
/* 007D0 80A0ABE0 44815000 */ mtc1 $at, $f10 ## $f10 = -300.00
/* 007D4 80A0ABE4 3C01C3FA */ lui $at, 0xC3FA ## $at = C3FA0000
/* 007D8 80A0ABE8 44815000 */ mtc1 $at, $f10 ## $f10 = -500.00
/* 007DC 80A0ABEC 00000000 */ nop
/* 007E0 80A0ABF0 460A1080 */ add.s $f2, $f2, $f10
/* 007E4 80A0ABF4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 007E8 80A0ABF8 E7A20020 */ swc1 $f2, 0x0020($sp)
/* 007EC 80A0ABFC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 007F0 80A0AC00 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 007F4 80A0AC04 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 007F8 80A0AC08 44812000 */ mtc1 $at, $f4 ## $f4 = 80.00
/* 007FC 80A0AC0C 46100481 */ sub.s $f18, $f0, $f16
/* 00800 80A0AC10 C7A20020 */ lwc1 $f2, 0x0020($sp)
/* 00804 80A0AC14 46049182 */ mul.s $f6, $f18, $f4
/* 00808 80A0AC18 46023200 */ add.s $f8, $f6, $f2
/* 0080C 80A0AC1C 1000000F */ beq $zero, $zero, .L80A0AC5C
/* 00810 80A0AC20 E608002C */ swc1 $f8, 0x002C($s0) ## 0000002C
/* 00814 80A0AC24 44815000 */ mtc1 $at, $f10 ## $f10 = 80.00
.L80A0AC28:
/* 00818 80A0AC28 00000000 */ nop
/* 0081C 80A0AC2C 460A1080 */ add.s $f2, $f2, $f10
/* 00820 80A0AC30 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00824 80A0AC34 E7A20020 */ swc1 $f2, 0x0020($sp)
/* 00828 80A0AC38 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 0082C 80A0AC3C 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 00830 80A0AC40 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00834 80A0AC44 44812000 */ mtc1 $at, $f4 ## $f4 = 60.00
/* 00838 80A0AC48 46100481 */ sub.s $f18, $f0, $f16
/* 0083C 80A0AC4C C7A20020 */ lwc1 $f2, 0x0020($sp)
/* 00840 80A0AC50 46049182 */ mul.s $f6, $f18, $f4
/* 00844 80A0AC54 46023200 */ add.s $f8, $f6, $f2
/* 00848 80A0AC58 E608002C */ swc1 $f8, 0x002C($s0) ## 0000002C
.L80A0AC5C:
/* 0084C 80A0AC5C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 00850 80A0AC60 44815000 */ mtc1 $at, $f10 ## $f10 = -1.00
/* 00854 80A0AC64 3C0980A1 */ lui $t1, %hi(func_80A0AC88) ## $t1 = 80A10000
/* 00858 80A0AC68 2529AC88 */ addiu $t1, $t1, %lo(func_80A0AC88) ## $t1 = 80A0AC88
/* 0085C 80A0AC6C AE09014C */ sw $t1, 0x014C($s0) ## 0000014C
/* 00860 80A0AC70 E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C
/* 00864 80A0AC74 8FBF001C */ lw $ra, 0x001C($sp)
.L80A0AC78:
/* 00868 80A0AC78 8FB00018 */ lw $s0, 0x0018($sp)
/* 0086C 80A0AC7C 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00870 80A0AC80 03E00008 */ jr $ra
/* 00874 80A0AC84 00000000 */ nop

View File

@ -1,73 +0,0 @@
.late_rodata
glabel D_80A0B540
.word 0xBE4CCCCD
.text
glabel func_80A0AC88
/* 00878 80A0AC88 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0087C 80A0AC8C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00880 80A0AC90 AFB00020 */ sw $s0, 0x0020($sp)
/* 00884 80A0AC94 AFA50044 */ sw $a1, 0x0044($sp)
/* 00888 80A0AC98 948E0088 */ lhu $t6, 0x0088($a0) ## 00000088
/* 0088C 80A0AC9C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00890 80A0ACA0 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00894 80A0ACA4 31CF0020 */ andi $t7, $t6, 0x0020 ## $t7 = 00000000
/* 00898 80A0ACA8 51E00026 */ beql $t7, $zero, .L80A0AD44
/* 0089C 80A0ACAC 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 008A0 80A0ACB0 44812000 */ mtc1 $at, $f4 ## $f4 = 15.00
/* 008A4 80A0ACB4 C4860084 */ lwc1 $f6, 0x0084($a0) ## 00000084
/* 008A8 80A0ACB8 4606203C */ c.lt.s $f4, $f6
/* 008AC 80A0ACBC 00000000 */ nop
/* 008B0 80A0ACC0 45020020 */ bc1fl .L80A0AD44
/* 008B4 80A0ACC4 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 008B8 80A0ACC8 8C990024 */ lw $t9, 0x0024($a0) ## 00000024
/* 008BC 80A0ACCC 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF0
/* 008C0 80A0ACD0 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 008C4 80A0ACD4 ACB90000 */ sw $t9, 0x0000($a1) ## FFFFFFF0
/* 008C8 80A0ACD8 8C980028 */ lw $t8, 0x0028($a0) ## 00000028
/* 008CC 80A0ACDC 44819000 */ mtc1 $at, $f18 ## $f18 = -1.00
/* 008D0 80A0ACE0 3C0180A1 */ lui $at, %hi(D_80A0B540) ## $at = 80A10000
/* 008D4 80A0ACE4 ACB80004 */ sw $t8, 0x0004($a1) ## FFFFFFF4
/* 008D8 80A0ACE8 8C99002C */ lw $t9, 0x002C($a0) ## 0000002C
/* 008DC 80A0ACEC 24080320 */ addiu $t0, $zero, 0x0320 ## $t0 = 00000320
/* 008E0 80A0ACF0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 008E4 80A0ACF4 ACB90008 */ sw $t9, 0x0008($a1) ## FFFFFFF8
/* 008E8 80A0ACF8 C7A80034 */ lwc1 $f8, 0x0034($sp)
/* 008EC 80A0ACFC C48A0084 */ lwc1 $f10, 0x0084($a0) ## 00000084
/* 008F0 80A0AD00 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 008F4 80A0AD04 460A4400 */ add.s $f16, $f8, $f10
/* 008F8 80A0AD08 E7B00034 */ swc1 $f16, 0x0034($sp)
/* 008FC 80A0AD0C E4920060 */ swc1 $f18, 0x0060($a0) ## 00000060
/* 00900 80A0AD10 C424B540 */ lwc1 $f4, %lo(D_80A0B540)($at)
/* 00904 80A0AD14 E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
/* 00908 80A0AD18 AFA80014 */ sw $t0, 0x0014($sp)
/* 0090C 80A0AD1C AFA00010 */ sw $zero, 0x0010($sp)
/* 00910 80A0AD20 0C00A527 */ jal func_8002949C
/* 00914 80A0AD24 8FA40044 */ lw $a0, 0x0044($sp)
/* 00918 80A0AD28 260400E4 */ addiu $a0, $s0, 0x00E4 ## $a0 = 000000E4
/* 0091C 80A0AD2C 0C01E245 */ jal func_80078914
/* 00920 80A0AD30 24052817 */ addiu $a1, $zero, 0x2817 ## $a1 = 00002817
/* 00924 80A0AD34 3C0980A1 */ lui $t1, %hi(func_80A0AD88) ## $t1 = 80A10000
/* 00928 80A0AD38 2529AD88 */ addiu $t1, $t1, %lo(func_80A0AD88) ## $t1 = 80A0AD88
/* 0092C 80A0AD3C AE09014C */ sw $t1, 0x014C($s0) ## 0000014C
/* 00930 80A0AD40 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
.L80A0AD44:
/* 00934 80A0AD44 5040000C */ beql $v0, $zero, .L80A0AD78
/* 00938 80A0AD48 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0093C 80A0AD4C 8C4A0130 */ lw $t2, 0x0130($v0) ## 00000130
/* 00940 80A0AD50 51400009 */ beql $t2, $zero, .L80A0AD78
/* 00944 80A0AD54 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00948 80A0AD58 844B029C */ lh $t3, 0x029C($v0) ## 0000029C
/* 0094C 80A0AD5C 3C0D80A1 */ lui $t5, %hi(func_80A0AEE0) ## $t5 = 80A10000
/* 00950 80A0AD60 240C0014 */ addiu $t4, $zero, 0x0014 ## $t4 = 00000014
/* 00954 80A0AD64 15600003 */ bne $t3, $zero, .L80A0AD74
/* 00958 80A0AD68 25ADAEE0 */ addiu $t5, $t5, %lo(func_80A0AEE0) ## $t5 = 80A0AEE0
/* 0095C 80A0AD6C A60C0156 */ sh $t4, 0x0156($s0) ## 00000156
/* 00960 80A0AD70 AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
.L80A0AD74:
/* 00964 80A0AD74 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0AD78:
/* 00968 80A0AD78 8FB00020 */ lw $s0, 0x0020($sp)
/* 0096C 80A0AD7C 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00970 80A0AD80 03E00008 */ jr $ra
/* 00974 80A0AD84 00000000 */ nop

View File

@ -1,103 +0,0 @@
.late_rodata
glabel D_80A0B544
.float 0.03
glabel D_80A0B548
.word 0x3D8F5C29, 0x00000000
.text
glabel func_80A0AD88
/* 00978 80A0AD88 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 0097C 80A0AD8C 3C0F80A1 */ lui $t7, %hi(D_80A0B388) ## $t7 = 80A10000
/* 00980 80A0AD90 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00984 80A0AD94 AFB00020 */ sw $s0, 0x0020($sp)
/* 00988 80A0AD98 AFA50054 */ sw $a1, 0x0054($sp)
/* 0098C 80A0AD9C 25EFB388 */ addiu $t7, $t7, %lo(D_80A0B388) ## $t7 = 80A0B388
/* 00990 80A0ADA0 8DF90000 */ lw $t9, 0x0000($t7) ## 80A0B388
/* 00994 80A0ADA4 27AE0040 */ addiu $t6, $sp, 0x0040 ## $t6 = FFFFFFF0
/* 00998 80A0ADA8 8DF80004 */ lw $t8, 0x0004($t7) ## 80A0B38C
/* 0099C 80A0ADAC ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF0
/* 009A0 80A0ADB0 8DF90008 */ lw $t9, 0x0008($t7) ## 80A0B390
/* 009A4 80A0ADB4 3C0980A1 */ lui $t1, %hi(D_80A0B394) ## $t1 = 80A10000
/* 009A8 80A0ADB8 2529B394 */ addiu $t1, $t1, %lo(D_80A0B394) ## $t1 = 80A0B394
/* 009AC 80A0ADBC ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF4
/* 009B0 80A0ADC0 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF8
/* 009B4 80A0ADC4 8D2B0000 */ lw $t3, 0x0000($t1) ## 80A0B394
/* 009B8 80A0ADC8 27A80034 */ addiu $t0, $sp, 0x0034 ## $t0 = FFFFFFE4
/* 009BC 80A0ADCC 8D2A0004 */ lw $t2, 0x0004($t1) ## 80A0B398
/* 009C0 80A0ADD0 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFE4
/* 009C4 80A0ADD4 8D2B0008 */ lw $t3, 0x0008($t1) ## 80A0B39C
/* 009C8 80A0ADD8 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFE8
/* 009CC 80A0ADDC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009D0 80A0ADE0 AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFEC
/* 009D4 80A0ADE4 848C0156 */ lh $t4, 0x0156($a0) ## 00000156
/* 009D8 80A0ADE8 240D000A */ addiu $t5, $zero, 0x000A ## $t5 = 0000000A
/* 009DC 80A0ADEC 3C0180A1 */ lui $at, %hi(D_80A0B544) ## $at = 80A10000
/* 009E0 80A0ADF0 55800011 */ bnel $t4, $zero, .L80A0AE38
/* 009E4 80A0ADF4 8E030118 */ lw $v1, 0x0118($s0) ## 00000118
/* 009E8 80A0ADF8 A48D0156 */ sh $t5, 0x0156($a0) ## 00000156
/* 009EC 80A0ADFC 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 009F0 80A0AE00 C42CB544 */ lwc1 $f12, %lo(D_80A0B544)($at)
/* 009F4 80A0AE04 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 009F8 80A0AE08 44811000 */ mtc1 $at, $f2 ## $f2 = 5.00
/* 009FC 80A0AE0C 3C0180A1 */ lui $at, %hi(D_80A0B548) ## $at = 80A10000
/* 00A00 80A0AE10 C424B548 */ lwc1 $f4, %lo(D_80A0B548)($at)
/* 00A04 80A0AE14 44071000 */ mfc1 $a3, $f2
/* 00A08 80A0AE18 8FA40054 */ lw $a0, 0x0054($sp)
/* 00A0C 80A0AE1C 46040180 */ add.s $f6, $f0, $f4
/* 00A10 80A0AE20 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00A14 80A0AE24 24060000 */ addiu $a2, $zero, 0x0000 ## $a2 = 00000000
/* 00A18 80A0AE28 E7A20010 */ swc1 $f2, 0x0010($sp)
/* 00A1C 80A0AE2C 0C00A4F9 */ jal func_800293E4
/* 00A20 80A0AE30 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00A24 80A0AE34 8E030118 */ lw $v1, 0x0118($s0) ## 00000118
.L80A0AE38:
/* 00A28 80A0AE38 50600025 */ beql $v1, $zero, .L80A0AED0
/* 00A2C 80A0AE3C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00A30 80A0AE40 8C6E0130 */ lw $t6, 0x0130($v1) ## 00000130
/* 00A34 80A0AE44 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
/* 00A38 80A0AE48 11C0001E */ beq $t6, $zero, .L80A0AEC4
/* 00A3C 80A0AE4C 00000000 */ nop
/* 00A40 80A0AE50 846F029C */ lh $t7, 0x029C($v1) ## 0000029C
/* 00A44 80A0AE54 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 00A48 80A0AE58 3C1980A1 */ lui $t9, %hi(func_80A0AEE0) ## $t9 = 80A10000
/* 00A4C 80A0AE5C 15E00005 */ bne $t7, $zero, .L80A0AE74
/* 00A50 80A0AE60 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00A54 80A0AE64 2739AEE0 */ addiu $t9, $t9, %lo(func_80A0AEE0) ## $t9 = 80A0AEE0
/* 00A58 80A0AE68 A6180156 */ sh $t8, 0x0156($s0) ## 00000156
/* 00A5C 80A0AE6C 10000017 */ beq $zero, $zero, .L80A0AECC
/* 00A60 80A0AE70 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
.L80A0AE74:
/* 00A64 80A0AE74 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 00A68 80A0AE78 C608008C */ lwc1 $f8, 0x008C($s0) ## 0000008C
/* 00A6C 80A0AE7C 46000282 */ mul.s $f10, $f0, $f0
/* 00A70 80A0AE80 460A403C */ c.lt.s $f8, $f10
/* 00A74 80A0AE84 00000000 */ nop
/* 00A78 80A0AE88 45020011 */ bc1fl .L80A0AED0
/* 00A7C 80A0AE8C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00A80 80A0AE90 86040158 */ lh $a0, 0x0158($s0) ## 00000158
/* 00A84 80A0AE94 0C021CC3 */ jal Rupees_ChangeBy
/* 00A88 80A0AE98 AFA2004C */ sw $v0, 0x004C($sp)
/* 00A8C 80A0AE9C 0C01E221 */ jal func_80078884
/* 00A90 80A0AEA0 24044803 */ addiu $a0, $zero, 0x4803 ## $a0 = 00004803
/* 00A94 80A0AEA4 8FA2004C */ lw $v0, 0x004C($sp)
/* 00A98 80A0AEA8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A9C 80A0AEAC 844802A4 */ lh $t0, 0x02A4($v0) ## 000002A4
/* 00AA0 80A0AEB0 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
/* 00AA4 80A0AEB4 0C00B55C */ jal Actor_Kill
/* 00AA8 80A0AEB8 A44902A4 */ sh $t1, 0x02A4($v0) ## 000002A4
/* 00AAC 80A0AEBC 10000004 */ beq $zero, $zero, .L80A0AED0
/* 00AB0 80A0AEC0 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0AEC4:
/* 00AB4 80A0AEC4 0C00B55C */ jal Actor_Kill
/* 00AB8 80A0AEC8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A0AECC:
/* 00ABC 80A0AECC 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0AED0:
/* 00AC0 80A0AED0 8FB00020 */ lw $s0, 0x0020($sp)
/* 00AC4 80A0AED4 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00AC8 80A0AED8 03E00008 */ jr $ra
/* 00ACC 80A0AEDC 00000000 */ nop

View File

@ -1,20 +0,0 @@
glabel func_80A0AEE0
/* 00AD0 80A0AEE0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00AD4 80A0AEE4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00AD8 80A0AEE8 AFA5001C */ sw $a1, 0x001C($sp)
/* 00ADC 80A0AEEC 848E0154 */ lh $t6, 0x0154($a0) ## 00000154
/* 00AE0 80A0AEF0 84880156 */ lh $t0, 0x0156($a0) ## 00000156
/* 00AE4 80A0AEF4 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 00AE8 80A0AEF8 A48F0154 */ sh $t7, 0x0154($a0) ## 00000154
/* 00AEC 80A0AEFC 84980154 */ lh $t8, 0x0154($a0) ## 00000154
/* 00AF0 80A0AF00 33190001 */ andi $t9, $t8, 0x0001 ## $t9 = 00000000
/* 00AF4 80A0AF04 15000003 */ bne $t0, $zero, .L80A0AF14
/* 00AF8 80A0AF08 A4990154 */ sh $t9, 0x0154($a0) ## 00000154
/* 00AFC 80A0AF0C 0C00B55C */ jal Actor_Kill
/* 00B00 80A0AF10 00000000 */ nop
.L80A0AF14:
/* 00B04 80A0AF14 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00B08 80A0AF18 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00B0C 80A0AF1C 03E00008 */ jr $ra
/* 00B10 80A0AF20 00000000 */ nop

View File

@ -1,103 +0,0 @@
.rdata
glabel D_80A0B460
.asciz "\x1b[32m \n\x1b[m"
.balign 4
glabel D_80A0B4A4
.asciz "\x1b[32m \n\x1b[m"
.balign 4
.text
glabel func_80A0AF24
/* 00B14 80A0AF24 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00B18 80A0AF28 3C0F80A1 */ lui $t7, %hi(D_80A0B3A0) ## $t7 = 80A10000
/* 00B1C 80A0AF2C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00B20 80A0AF30 AFB00020 */ sw $s0, 0x0020($sp)
/* 00B24 80A0AF34 AFA50054 */ sw $a1, 0x0054($sp)
/* 00B28 80A0AF38 25EFB3A0 */ addiu $t7, $t7, %lo(D_80A0B3A0) ## $t7 = 80A0B3A0
/* 00B2C 80A0AF3C 8DF90000 */ lw $t9, 0x0000($t7) ## 80A0B3A0
/* 00B30 80A0AF40 27AE0040 */ addiu $t6, $sp, 0x0040 ## $t6 = FFFFFFF0
/* 00B34 80A0AF44 8DF80004 */ lw $t8, 0x0004($t7) ## 80A0B3A4
/* 00B38 80A0AF48 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF0
/* 00B3C 80A0AF4C 8DF90008 */ lw $t9, 0x0008($t7) ## 80A0B3A8
/* 00B40 80A0AF50 3C0980A1 */ lui $t1, %hi(D_80A0B3AC) ## $t1 = 80A10000
/* 00B44 80A0AF54 2529B3AC */ addiu $t1, $t1, %lo(D_80A0B3AC) ## $t1 = 80A0B3AC
/* 00B48 80A0AF58 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF4
/* 00B4C 80A0AF5C ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF8
/* 00B50 80A0AF60 8D2B0000 */ lw $t3, 0x0000($t1) ## 80A0B3AC
/* 00B54 80A0AF64 27A80034 */ addiu $t0, $sp, 0x0034 ## $t0 = FFFFFFE4
/* 00B58 80A0AF68 8D2A0004 */ lw $t2, 0x0004($t1) ## 80A0B3B0
/* 00B5C 80A0AF6C AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFE4
/* 00B60 80A0AF70 8D2B0008 */ lw $t3, 0x0008($t1) ## 80A0B3B4
/* 00B64 80A0AF74 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFE8
/* 00B68 80A0AF78 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00B6C 80A0AF7C AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFEC
/* 00B70 80A0AF80 848C0152 */ lh $t4, 0x0152($a0) ## 00000152
/* 00B74 80A0AF84 44810000 */ mtc1 $at, $f0 ## $f0 = 50.00
/* 00B78 80A0AF88 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00B7C 80A0AF8C 15810004 */ bne $t4, $at, .L80A0AFA0
/* 00B80 80A0AF90 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B84 80A0AF94 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00B88 80A0AF98 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 00B8C 80A0AF9C 00000000 */ nop
.L80A0AFA0:
/* 00B90 80A0AFA0 46000182 */ mul.s $f6, $f0, $f0
/* 00B94 80A0AFA4 C604008C */ lwc1 $f4, 0x008C($s0) ## 0000008C
/* 00B98 80A0AFA8 4606203C */ c.lt.s $f4, $f6
/* 00B9C 80A0AFAC 00000000 */ nop
/* 00BA0 80A0AFB0 4502002B */ bc1fl .L80A0B060
/* 00BA4 80A0AFB4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00BA8 80A0AFB8 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
/* 00BAC 80A0AFBC 3C0480A1 */ lui $a0, %hi(D_80A0B460) ## $a0 = 80A10000
/* 00BB0 80A0AFC0 10400007 */ beq $v0, $zero, .L80A0AFE0
/* 00BB4 80A0AFC4 00000000 */ nop
/* 00BB8 80A0AFC8 8C4D0130 */ lw $t5, 0x0130($v0) ## 00000130
/* 00BBC 80A0AFCC 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00BC0 80A0AFD0 11A00005 */ beq $t5, $zero, .L80A0AFE8
/* 00BC4 80A0AFD4 00000000 */ nop
/* 00BC8 80A0AFD8 10000003 */ beq $zero, $zero, .L80A0AFE8
/* 00BCC 80A0AFDC A44E0266 */ sh $t6, 0x0266($v0) ## 00000266
.L80A0AFE0:
/* 00BD0 80A0AFE0 0C00084C */ jal osSyncPrintf
/* 00BD4 80A0AFE4 2484B460 */ addiu $a0, $a0, %lo(D_80A0B460) ## $a0 = 80A0B460
.L80A0AFE8:
/* 00BD8 80A0AFE8 3C0480A1 */ lui $a0, %hi(D_80A0B4A4) ## $a0 = 80A10000
/* 00BDC 80A0AFEC 0C00084C */ jal osSyncPrintf
/* 00BE0 80A0AFF0 2484B4A4 */ addiu $a0, $a0, %lo(D_80A0B4A4) ## $a0 = 80A0B4A4
/* 00BE4 80A0AFF4 860F0152 */ lh $t7, 0x0152($s0) ## 00000152
/* 00BE8 80A0AFF8 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00BEC 80A0AFFC 24020064 */ addiu $v0, $zero, 0x0064 ## $v0 = 00000064
/* 00BF0 80A0B000 15E10003 */ bne $t7, $at, .L80A0B010
/* 00BF4 80A0B004 2403001E */ addiu $v1, $zero, 0x001E ## $v1 = 0000001E
/* 00BF8 80A0B008 24020014 */ addiu $v0, $zero, 0x0014 ## $v0 = 00000014
/* 00BFC 80A0B00C 24030006 */ addiu $v1, $zero, 0x0006 ## $v1 = 00000006
.L80A0B010:
/* 00C00 80A0B010 8FA40054 */ lw $a0, 0x0054($sp)
/* 00C04 80A0B014 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00C08 80A0B018 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFE4
/* 00C0C 80A0B01C 27A70040 */ addiu $a3, $sp, 0x0040 ## $a3 = FFFFFFF0
/* 00C10 80A0B020 AFA20010 */ sw $v0, 0x0010($sp)
/* 00C14 80A0B024 0C00A3A1 */ jal EffectSsBomb2_SpawnLayered
/* 00C18 80A0B028 AFA30014 */ sw $v1, 0x0014($sp)
/* 00C1C 80A0B02C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 00C20 80A0B030 8607008A */ lh $a3, 0x008A($s0) ## 0000008A
/* 00C24 80A0B034 8FA40054 */ lw $a0, 0x0054($sp)
/* 00C28 80A0B038 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00C2C 80A0B03C 3C064000 */ lui $a2, 0x4000 ## $a2 = 40000000
/* 00C30 80A0B040 0C00BDC7 */ jal func_8002F71C
/* 00C34 80A0B044 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00C38 80A0B048 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C3C 80A0B04C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00C40 80A0B050 2405180E */ addiu $a1, $zero, 0x180E ## $a1 = 0000180E
/* 00C44 80A0B054 0C00B55C */ jal Actor_Kill
/* 00C48 80A0B058 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C4C 80A0B05C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A0B060:
/* 00C50 80A0B060 8FB00020 */ lw $s0, 0x0020($sp)
/* 00C54 80A0B064 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 00C58 80A0B068 03E00008 */ jr $ra
/* 00C5C 80A0B06C 00000000 */ nop

View File

@ -1,37 +0,0 @@
glabel func_80A0B070
/* 00C60 80A0B070 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00C64 80A0B074 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 00C68 80A0B078 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C6C 80A0B07C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C70 80A0B080 46000182 */ mul.s $f6, $f0, $f0
/* 00C74 80A0B084 AFA5001C */ sw $a1, 0x001C($sp)
/* 00C78 80A0B088 C484008C */ lwc1 $f4, 0x008C($a0) ## 0000008C
/* 00C7C 80A0B08C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00C80 80A0B090 24044803 */ addiu $a0, $zero, 0x4803 ## $a0 = 00004803
/* 00C84 80A0B094 4606203C */ c.lt.s $f4, $f6
/* 00C88 80A0B098 00000000 */ nop
/* 00C8C 80A0B09C 45020012 */ bc1fl .L80A0B0E8
/* 00C90 80A0B0A0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C94 80A0B0A4 0C01E221 */ jal func_80078884
/* 00C98 80A0B0A8 AFA70018 */ sw $a3, 0x0018($sp)
/* 00C9C 80A0B0AC 8FA70018 */ lw $a3, 0x0018($sp)
/* 00CA0 80A0B0B0 3C0680A1 */ lui $a2, %hi(D_80A0B320) ## $a2 = 80A10000
/* 00CA4 80A0B0B4 8FA4001C */ lw $a0, 0x001C($sp)
/* 00CA8 80A0B0B8 84EE0150 */ lh $t6, 0x0150($a3) ## 00000150
/* 00CAC 80A0B0BC 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024
/* 00CB0 80A0B0C0 000E7840 */ sll $t7, $t6, 1
/* 00CB4 80A0B0C4 00CF3021 */ addu $a2, $a2, $t7
/* 00CB8 80A0B0C8 84C6B320 */ lh $a2, %lo(D_80A0B320)($a2)
/* 00CBC 80A0B0CC 34C68000 */ ori $a2, $a2, 0x8000 ## $a2 = 80A18000
/* 00CC0 80A0B0D0 00063400 */ sll $a2, $a2, 16
/* 00CC4 80A0B0D4 0C007D52 */ jal Item_DropCollectible
/* 00CC8 80A0B0D8 00063403 */ sra $a2, $a2, 16
/* 00CCC 80A0B0DC 0C00B55C */ jal Actor_Kill
/* 00CD0 80A0B0E0 8FA40018 */ lw $a0, 0x0018($sp)
/* 00CD4 80A0B0E4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A0B0E8:
/* 00CD8 80A0B0E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00CDC 80A0B0EC 03E00008 */ jr $ra
/* 00CE0 80A0B0F0 00000000 */ nop

View File

@ -1,28 +0,0 @@
glabel func_80A0B0F4
/* 00CE4 80A0B0F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00CE8 80A0B0F8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00CEC 80A0B0FC AFA40018 */ sw $a0, 0x0018($sp)
/* 00CF0 80A0B100 AFA5001C */ sw $a1, 0x001C($sp)
/* 00CF4 80A0B104 848F015C */ lh $t7, 0x015C($a0) ## 0000015C
/* 00CF8 80A0B108 248400BC */ addiu $a0, $a0, 0x00BC ## $a0 = 000000BC
/* 00CFC 80A0B10C 3C05C42F */ lui $a1, 0xC42F ## $a1 = C42F0000
/* 00D00 80A0B110 11E00007 */ beq $t7, $zero, .L80A0B130
/* 00D04 80A0B114 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00D08 80A0B118 3C05442F */ lui $a1, 0x442F ## $a1 = 442F0000
/* 00D0C 80A0B11C 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00D10 80A0B120 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00D14 80A0B124 3C074348 */ lui $a3, 0x4348 ## $a3 = 43480000
/* 00D18 80A0B128 10000006 */ beq $zero, $zero, .L80A0B144
/* 00D1C 80A0B12C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A0B130:
/* 00D20 80A0B130 8FA40018 */ lw $a0, 0x0018($sp)
/* 00D24 80A0B134 3C074348 */ lui $a3, 0x4348 ## $a3 = 43480000
/* 00D28 80A0B138 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00D2C 80A0B13C 248400BC */ addiu $a0, $a0, 0x00BC ## $a0 = 000000BC
/* 00D30 80A0B140 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A0B144:
/* 00D34 80A0B144 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00D38 80A0B148 03E00008 */ jr $ra
/* 00D3C 80A0B14C 00000000 */ nop

View File

@ -1,36 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel D_80A0B320
.word 0x00000001, 0x00020013, 0x00140000, 0x00010005, 0x001401F4, 0x00320000
glabel En_Ex_Ruppy_InitVars
.word 0x01310600, 0x00000010, 0x00010000, 0x00000164
.word EnExRuppy_Init
.word EnExRuppy_Destroy
.word EnExRuppy_Update
.word EnExRuppy_Draw
glabel D_80A0B358
.word 0x00000000, 0x3DCCCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000
glabel D_80A0B370
.word 0x00000000, 0x3C23D70A, 0x00000000
glabel D_80A0B37C
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80A0B388
.word 0x00000000, 0x3DCCCCCD, 0x00000000
glabel D_80A0B394
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80A0B3A0
.word 0x00000000, 0x3DCCCCCD, 0x00000000
glabel D_80A0B3AC
.word 0x00000000, 0x00000000, 0x00000000
glabel D_80A0B3B8
.word 0x04042140, 0x04042160, 0x04042180, 0x040421C0, 0x040421A0, 0x00000000

View File

@ -48,7 +48,7 @@ extern u32 D_0403B030;
extern u32 D_0403BBA0;
extern u32 D_0403BCD8;
extern u32 D_0403F070;
extern u32 D_04042440;
extern Gfx D_04042440[];
//extern ? D_04048160;
extern u32 D_04048180;
extern Gfx D_04049210[];

5
spec
View File

@ -2336,8 +2336,11 @@ endseg
beginseg
name "ovl_En_Ex_Ruppy"
include "build/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o"
include "build/data/overlays/actors/z_en_ex_ruppy.data.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_ruppy.reloc.o"
#else
include "build/data/overlays/actors/z_en_ex_ruppy.reloc.o"
#endif
endseg
beginseg

View File

@ -6,9 +6,59 @@
struct EnDivingGame;
typedef void (*EnDivingGameActionFunc)(struct EnDivingGame*, GlobalContext*);
typedef struct EnDivingGame {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x24C];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[20];
/* 0x0208 */ Vec3s transitionDrawTable[20];
/* 0x0280 */ EnDivingGameActionFunc actionFunc;
/* 0x0284 */ Vec3s vec_284;
/* 0x028A */ Vec3s vec_28A;
/* 0x0290 */ s16 unk_290;
/* 0x0292 */ s16 unk_292;
/* 0x0294 */ s16 unk_294;
/* 0x0296 */ s16 unk_296;
/* 0x0298 */ s16 unk_298;
/* 0x029A */ s16 unk_29A;
/* 0x029C */ s16 unk_29C;
/* 0x029E */ s16 unk_29E;
/* 0x02A0 */ s16 camId;
/* 0x02A2 */ s16 unk_2A2;
/* 0x02A4 */ s16 unk_2A4;
/* 0x02A6 */ s16 unk_2A6;
/* 0x02A8 */ s16 unk_2A8;
/* 0x02AA */ s16 unk_2AA;
/* 0x02AC */ char unk_2AC[0xC];
/* 0x02B8 */ Vec3f vec_2B8;
/* 0x02C4 */ Vec3f vec_2C4;
/* 0x02D0 */ f32 unk_2D0;
/* 0x02D4 */ f32 unk_2D4;
/* 0x02D8 */ f32 unk_2D8;
/* 0x02DC */ f32 unk_2DC;
/* 0x02E0 */ f32 unk_2E0;
/* 0x02E4 */ f32 unk_2E4;
/* 0x02E8 */ f32 unk_2E8;
/* 0x02EC */ f32 unk_2EC;
/* 0x02F0 */ f32 unk_2F0;
/* 0x02F4 */ f32 unk_2F4;
/* 0x02F8 */ f32 unk_2F8;
/* 0x02FC */ f32 unk_2FC;
/* 0x0300 */ f32 unk_300;
/* 0x0304 */ f32 unk_304;
/* 0x0308 */ f32 unk_308;
/* 0x030C */ f32 unk_30C;
/* 0x0310 */ f32 unk_310;
/* 0x0314 */ f32 unk_314;
/* 0x0318 */ f32 unk_318;
/* 0x031C */ char unk_31C;
/* 0x031D */ u8 unk_31D;
/* 0x031E */ char unk_31E;
/* 0x031F */ u8 unk_31F;
/* 0x0320 */ char unk_320[0x4];
/* 0x0324 */ struct_80034A14_arg1 unk_324;
/* 0x034C */ ColliderCylinder collider;
} EnDivingGame; // size = 0x0398
extern const ActorInit En_Diving_Game_InitVars;

View File

@ -1,4 +1,6 @@
#include "z_en_ex_ruppy.h"
#include "vt.h"
#include "../ovl_En_Diving_Game/z_en_diving_game.h"
#define FLAGS 0x00000010
@ -9,7 +11,23 @@ void EnExRuppy_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnExRuppy_Update(Actor* thisx, GlobalContext* globalCtx);
void EnExRuppy_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnExRuppy_DropIntoWater(EnExRuppy* this, GlobalContext* globalCtx);
void EnExRuppy_WaitToBlowUp(EnExRuppy* this, GlobalContext* globalCtx);
void EnExRuppy_WaitAsCollectible(EnExRuppy* this, GlobalContext* globalCtx);
void func_80A0B0F4(EnExRuppy* this, GlobalContext* globalCtx);
void EnExRuppy_EnterWater(EnExRuppy* this, GlobalContext* globalCtx);
void EnExRuppy_Sink(EnExRuppy* this, GlobalContext* globalCtx);
void func_80A0AD88(EnExRuppy* this, GlobalContext* globalCtx);
void func_80A0AEE0(EnExRuppy* this, GlobalContext* globalCtx);
static s16 sEnExRuppyCollectibleTypes[] = {
ITEM00_RUPEE_GREEN, ITEM00_RUPEE_BLUE, ITEM00_RUPEE_RED, ITEM00_RUPEE_ORANGE, ITEM00_RUPEE_PURPLE,
};
static s16 D_80A0B32B[] = {
1, 5, 20, 500, 50,
};
const ActorInit En_Ex_Ruppy_InitVars = {
ACTOR_EN_EX_RUPPY,
ACTORTYPE_PROP,
@ -21,29 +39,343 @@ const ActorInit En_Ex_Ruppy_InitVars = {
(ActorFunc)EnExRuppy_Update,
(ActorFunc)EnExRuppy_Draw,
};
*/
static Vec3f D_80A0B358[] = { { 0.0f, 0.1f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
static Vec3f D_80A0B370[] = { { 0.0f, 0.01f, 0.0f }, { 0.0f, 0.0f, 0.0f } };
#ifdef NON_MATCHING
// Regalloc
void EnExRuppy_Init(Actor* thisx, GlobalContext* globalCtx) {
EnExRuppy* this = THIS;
s16 temp_v0;
f32 phi_f12;
f32 temp;
this->unk_152 = this->actor.params;
// Index
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ インデックス ☆☆☆☆☆ %x" VT_RST, this->unk_152);
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 25.0f);
switch (this->unk_152) {
case 0:
this->unk_160 = 0.01f;
Actor_SetScale(&this->actor, this->unk_160);
this->actor.room = -1;
this->actor.gravity = 0.0f;
// If you havnt won the diving game before you will get 5 blue ruppees.
if (!(gSaveContext.eventChkInf[3] & 0x100)) {
this->rupeeValue = 5;
this->unk_150 = 1;
} else {
phi_f12 = 200.99f;
if ((thisx->attachedA != NULL) && (thisx->attachedA->update != NULL)) {
phi_f12 = 200.99f + ((EnDivingGame*)thisx->attachedA)->unk_2AA * 10.0f;
}
temp_v0 = Math_Rand_ZeroFloat(phi_f12);
if ((temp_v0 >= 0) && (temp_v0 < 40)) {
this->rupeeValue = 1;
this->unk_150 = 0;
} else if ((temp_v0 >= 40) && (temp_v0 < 170)) {
this->rupeeValue = 5;
this->unk_150 = 1;
} else if ((temp_v0 >= 170) && (temp_v0 < 190)) {
this->rupeeValue = 20;
this->unk_150 = 2;
} else if ((temp_v0 >= 190) && (temp_v0 < 200)) {
this->rupeeValue = 50;
this->unk_150 = 4;
} else {
this->unk_160 = 0.02f;
Actor_SetScale(&this->actor, this->unk_160);
this->rupeeValue = 500;
this->unk_150 = 3;
if ((thisx->attachedA != NULL) && (thisx->attachedA->update != NULL)) {
((EnDivingGame*)thisx->attachedA)->unk_2AA = 0;
}
}
}
temp_v0 = this->actor.posRot.rot.z;
this->actor.posRot.rot.z = 0;
this->timer = 30;
this->actor.shape.unk_10 = 7.0f;
this->actor.shape.unk_08 = 700.0f;
this->unk_15A = temp_v0;
this->actor.flags &= ~1;
this->actionFunc = EnExRuppy_DropIntoWater;
break;
case 1:
case 2: // Giant pink ruppe that explodes when you touch it
if (this->unk_152 == 1) {
Actor_SetScale(thisx, 0.1f);
this->unk_150 = 4;
} else {
Actor_SetScale(thisx, 0.02f);
this->unk_150 = (s16)Math_Rand_ZeroFloat(3.99f) + 1;
}
this->actor.gravity = -3.0f;
// Wow Coin
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ わーなーコイン ☆☆☆☆☆ \n" VT_RST);
this->actor.shape.unk_10 = 6.0f;
this->actor.shape.unk_08 = 700.0f;
this->actor.flags &= ~1;
this->actionFunc = EnExRuppy_WaitToBlowUp;
break;
case 3: // Spawned by the guard in Hyrule courtyard
Actor_SetScale(thisx, 0.02f);
this->unk_150 = 0;
switch ((s16)Math_Rand_ZeroFloat(30.99f)) {
case 0:
this->unk_150 = 2;
break;
case 10:
case 20:
this->unk_150 = 1;
break;
case 30:
break;
}
this->actor.gravity = -3.0f;
// Normal rupee
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ ノーマルルピー ☆☆☆☆☆ \n" VT_RST);
this->actor.shape.unk_10 = 6.0f;
this->actor.shape.unk_08 = 700.0f;
this->actor.flags &= ~1;
this->actionFunc = EnExRuppy_WaitAsCollectible;
break;
case 4:
this->actor.gravity = -3.0f;
this->actor.flags &= ~1;
Actor_SetScale(thisx, 0.01f);
this->actor.shape.unk_10 = 6.0f;
this->actor.shape.unk_08 = -700.0f;
this->actionFunc = func_80A0B0F4;
break;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/EnExRuppy_Init.s")
#endif
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/EnExRuppy_Destroy.s")
void EnExRuppy_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0A820.s")
void EnExRuppy_SpawnSparkles(EnExRuppy* this, GlobalContext* globalCtx, s16 arg2, s32 arg3) {
Vec3f sparklePos;
Vec3f sparkleVelocity;
Vec3f sparkleAccel;
Color_RGBA8_n primColor;
Color_RGBA8_n envColor;
s32 i;
s16 sparkleScale;
s16 sparkleLife;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AA3C.s")
if (arg2 <= 0) {
arg2 = 1;
}
primColor.r = 255;
primColor.g = 255;
primColor.b = 0;
envColor.r = 255;
envColor.g = 255;
envColor.b = 255;
sparkleVelocity = D_80A0B358[arg3];
sparkleAccel = D_80A0B370[arg3];
sparkleScale = 3000;
sparkleLife = 16;
for (i = 0; i < arg2; i++) {
if (arg3 == 1) {
sparkleAccel.x = Math_Rand_CenteredFloat(20.0f);
sparkleAccel.z = Math_Rand_CenteredFloat(20.0f);
sparkleScale = 5000;
sparkleLife = 20;
}
sparklePos.x = (Math_Rand_ZeroOne() - 0.5f) * 10.0f + this->actor.posRot.pos.x;
sparklePos.y = (Math_Rand_ZeroOne() - 0.5f) * 10.0f + (this->actor.posRot.pos.y + this->unk_160 * 600.0f);
sparklePos.z = (Math_Rand_ZeroOne() - 0.5f) * 10.0f + this->actor.posRot.pos.z;
func_80028BB0(globalCtx, &sparklePos, &sparkleVelocity, &sparkleAccel, &primColor, &envColor, sparkleScale,
sparkleLife);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AB1C.s")
void EnExRuppy_DropIntoWater(EnExRuppy* this, GlobalContext* globalCtx) {
this->actor.shape.rot.y = (this->actor.shape.rot.y + 1960);
Math_SmoothScaleMaxF(&this->actor.gravity, -2.0f, 0.3f, 1.0f);
EnExRuppy_SpawnSparkles(this, globalCtx, 2, 0);
func_80078884(NA_SE_EV_RAINBOW_SHOWER - SFX_FLAG);
if ((this->actor.attachedA != NULL) && (this->actor.attachedA->update != NULL) &&
(((((EnDivingGame*)this->actor.attachedA)->unk_296 == 0) || (this->actor.bgCheckFlags & 0x20)) ||
(this->timer == 0))) {
this->isFalling = 1;
this->actor.speedXZ = 0.0f;
this->actor.velocity.z = 0.0f;
this->actor.velocity.y = 0.0f;
this->actor.velocity.x = 0.0f;
this->actor.gravity = 0.0f;
func_80078914(&this->actor.projectedPos, NA_SE_EV_BOMB_DROP_WATER);
this->actionFunc = EnExRuppy_EnterWater;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AC88.s")
void EnExRuppy_EnterWater(EnExRuppy* this, GlobalContext* globalCtx) {
s32 pad;
f32 temp_f2;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AD88.s")
if (((this->actor.attachedA != NULL) && (this->actor.attachedA->update != NULL)) &&
(((EnDivingGame*)this->actor.attachedA)->unk_2A2 == 2)) {
this->isFalling = 0;
this->actor.posRot.pos.x = ((Math_Rand_ZeroOne() - 0.5f) * 300.0f) + -260.0f;
this->actor.posRot.pos.y = ((Math_Rand_ZeroOne() - 0.5f) * 200.0f) + 370.0f;
temp_f2 = this->unk_15A * -50.0f;
if (!(gSaveContext.eventChkInf[3] & 0x100)) {
temp_f2 += -500.0f;
this->actor.posRot.pos.z = ((Math_Rand_ZeroOne() - 0.5f) * 80.0f) + temp_f2;
} else {
temp_f2 += -300.0f;
this->actor.posRot.pos.z = ((Math_Rand_ZeroOne() - 0.5f) * 60.0f) + temp_f2;
}
this->actionFunc = EnExRuppy_Sink;
this->actor.gravity = -1.0f;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AEE0.s")
void EnExRuppy_Sink(EnExRuppy* this, GlobalContext* globalCtx) {
s32 pad;
Vec3f pos;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0AF24.s")
if ((this->actor.bgCheckFlags & 0x20) && (15.0f < this->actor.waterY)) {
pos = this->actor.posRot.pos;
pos.y += this->actor.waterY;
this->actor.velocity.y = -1.0f;
this->actor.gravity = -0.2f;
func_8002949C(globalCtx, &pos, 0, 0, 0, 800);
func_80078914(&this->actor.projectedPos, NA_SE_EV_BOMB_DROP_WATER);
this->actionFunc = func_80A0AD88;
}
if (((this->actor.attachedA != NULL) && (this->actor.attachedA->update != NULL) &&
((EnDivingGame*)this->actor.attachedA)->unk_29C == 0)) {
this->timer = 20;
this->actionFunc = func_80A0AEE0;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0B070.s")
void func_80A0AD88(EnExRuppy* this, GlobalContext* globalCtx) {
EnDivingGame* divingGame;
Vec3f D_80A0B388 = { 0.0f, 0.1f, 0.0f };
Vec3f D_80A0B394 = { 0.0f, 0.0f, 0.0f };
f32 localConst = 30.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/func_80A0B0F4.s")
if (this->timer == 0) {
this->timer = 10;
func_800293E4(globalCtx, &this->actor.posRot.pos, 0.0f, 5.0f, 5.0f, Math_Rand_ZeroFloat(0.03f) + 0.07f);
}
if (this->actor.attachedA != NULL) {
divingGame = this->actor.attachedA;
if (divingGame->actor.update != NULL) {
if (divingGame->unk_29C == 0) {
this->timer = 20;
this->actionFunc = func_80A0AEE0;
return;
}
if (this->actor.xyzDistFromLinkSq < SQ(localConst)) {
Rupees_ChangeBy(this->rupeeValue);
func_80078884(NA_SE_SY_GET_RUPY);
divingGame->unk_2A4++;
Actor_Kill(&this->actor);
}
} else {
Actor_Kill(&this->actor);
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/EnExRuppy_Update.s")
void func_80A0AEE0(EnExRuppy* this, GlobalContext* globalCtx) {
this->isFalling += 1;
this->isFalling &= 1;
if (this->timer == 0) {
Actor_Kill(&this->actor);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ex_Ruppy/EnExRuppy_Draw.s")
void EnExRuppy_WaitToBlowUp(EnExRuppy* this, GlobalContext* globalCtx) {
f32 distToBlowUp;
Vec3f point1Vec = { 0.0f, 0.1f, 0.0f };
Vec3f zeroVector = { 0.0f, 0.0f, 0.0f };
s16 explosionScale;
s16 explosionScaleStep;
distToBlowUp = 50.0f;
if (this->unk_152 == 2) {
distToBlowUp = 30.0f;
}
if (this->actor.xyzDistFromLinkSq < SQ(distToBlowUp)) {
if (this->actor.attachedA != NULL) {
if (this->actor.attachedA->update != NULL) {
((EnDivingGame*)this->actor.attachedA)->transitionDrawTable[15].z = 1;
}
} else {
// That idiot! error
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ そ、そんなばかな!エラー!!!!! ☆☆☆☆☆ \n" VT_RST);
}
// Stupid!
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ バカめ! ☆☆☆☆☆ \n" VT_RST);
explosionScale = 100;
explosionScaleStep = 30;
if (this->unk_152 == 2) {
explosionScale = 20;
explosionScaleStep = 6;
}
EffectSsBomb2_SpawnLayered(globalCtx, &this->actor.posRot.pos, &zeroVector, &point1Vec, explosionScale,
explosionScaleStep);
func_8002F71C(globalCtx, &this->actor, 2.0f, this->actor.yawTowardsLink, 0.0f);
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
Actor_Kill(&this->actor);
}
}
void EnExRuppy_WaitAsCollectible(EnExRuppy* this, GlobalContext* globalCtx) {
f32 localConst = 30.0f;
if (this->actor.xyzDistFromLinkSq < SQ(localConst)) {
func_80078884(NA_SE_SY_GET_RUPY);
Item_DropCollectible(globalCtx, &this->actor.posRot.pos, (sEnExRuppyCollectibleTypes[this->unk_150] | 0x8000));
Actor_Kill(&this->actor);
}
}
void func_80A0B0F4(EnExRuppy* this, GlobalContext* globalCtx) {
if (this->unk_15C != 0) {
Math_SmoothScaleMaxF(&this->actor.shape.unk_08, 700.0f, 0.5f, 200.0f);
} else {
Math_SmoothScaleMaxF(&this->actor.shape.unk_08, -700.0f, 0.5f, 200.0f);
}
}
void EnExRuppy_Update(Actor* thisx, GlobalContext* globalCtx) {
EnExRuppy* this = THIS;
thisx->shape.rot.y += 1960;
this->actionFunc(this, globalCtx);
if (this->timer != 0) {
this->timer--;
}
Actor_MoveForward(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 20.0f, 20.0f, 50.0f, 0x1C);
}
UNK_PTR D_80A0B3B8[] = { 0x04042140, 0x04042160, 0x04042180, 0x040421C0, 0x040421A0 };
void EnExRuppy_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnExRuppy* this = THIS;
s32 pad;
GraphicsContext* gfxCtx;
Gfx* dispRefs[4];
if (this->isFalling == 0) {
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ex_ruppy.c", 774);
func_80093D18(globalCtx->state.gfxCtx);
func_8002EBCC(thisx, globalCtx, 0);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ex_ruppy.c", 780),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(D_80A0B3B8[this->unk_150]));
gSPDisplayList(gfxCtx->polyOpa.p++, D_04042440);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ex_ruppy.c", 784);
}
}

View File

@ -6,9 +6,19 @@
struct EnExRuppy;
typedef void (*EnExRuppyActionFunc)(struct EnExRuppy*, GlobalContext*);
typedef struct EnExRuppy {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x18];
/* 0x014C */ EnExRuppyActionFunc actionFunc;
/* 0x0150 */ s16 unk_150;
/* 0x0152 */ s16 unk_152;
/* 0x0154 */ s16 isFalling;
/* 0x0156 */ s16 timer;
/* 0x0158 */ s16 rupeeValue;
/* 0x015A */ s16 unk_15A;
/* 0x015C */ s16 unk_15C;
/* 0x0160 */ f32 unk_160;
} EnExRuppy; // size = 0x0164
extern const ActorInit En_Ex_Ruppy_InitVars;