Matched EnPoRelay, DemoGt, one more in EnPoSisters, and cleanup BgBdanSwitch (#513)

* 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

* more matchings, some cleanup

* small cleanup
This commit is contained in:
petrie911 2020-12-06 11:06:56 -06:00 committed by GitHub
parent 9d63626343
commit 756f6dc393
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 112 additions and 1288 deletions

View File

@ -1,165 +0,0 @@
.late_rodata
glabel D_80982A9C
.float 0.05
.text
glabel func_8097E454
/* 00DE4 8097E454 27BDFF58 */ addiu $sp, $sp, 0xFF58 ## $sp = FFFFFF58
/* 00DE8 8097E458 AFBF0064 */ sw $ra, 0x0064($sp)
/* 00DEC 8097E45C AFB40050 */ sw $s4, 0x0050($sp)
/* 00DF0 8097E460 AFB3004C */ sw $s3, 0x004C($sp)
/* 00DF4 8097E464 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 00DF8 8097E468 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000
/* 00DFC 8097E46C AFBE0060 */ sw $s8, 0x0060($sp)
/* 00E00 8097E470 AFB7005C */ sw $s7, 0x005C($sp)
/* 00E04 8097E474 AFB60058 */ sw $s6, 0x0058($sp)
/* 00E08 8097E478 AFB50054 */ sw $s5, 0x0054($sp)
/* 00E0C 8097E47C AFB20048 */ sw $s2, 0x0048($sp)
/* 00E10 8097E480 AFB10044 */ sw $s1, 0x0044($sp)
/* 00E14 8097E484 AFB00040 */ sw $s0, 0x0040($sp)
/* 00E18 8097E488 F7B80038 */ sdc1 $f24, 0x0038($sp)
/* 00E1C 8097E48C F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 00E20 8097E490 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 00E24 8097E494 AFA600B0 */ sw $a2, 0x00B0($sp)
/* 00E28 8097E498 0C03034A */ jal func_800C0D28
/* 00E2C 8097E49C AFA700B4 */ sw $a3, 0x00B4($sp)
/* 00E30 8097E4A0 1440006F */ bne $v0, $zero, .L8097E660
/* 00E34 8097E4A4 8FA500C4 */ lw $a1, 0x00C4($sp)
/* 00E38 8097E4A8 18A0006D */ blez $a1, .L8097E660
/* 00E3C 8097E4AC 8FBE00C0 */ lw $s8, 0x00C0($sp)
/* 00E40 8097E4B0 1BC0006B */ blez $s8, .L8097E660
/* 00E44 8097E4B4 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 00E48 8097E4B8 00541021 */ addu $v0, $v0, $s4
/* 00E4C 8097E4BC 8C421DE4 */ lw $v0, 0x1DE4($v0) ## 00011DE4
/* 00E50 8097E4C0 C7A000BC */ lwc1 $f0, 0x00BC($sp)
/* 00E54 8097E4C4 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 00E58 8097E4C8 04400003 */ bltz $v0, .L8097E4D8
/* 00E5C 8097E4CC 00021823 */ subu $v1, $zero, $v0
/* 00E60 8097E4D0 10000001 */ beq $zero, $zero, .L8097E4D8
/* 00E64 8097E4D4 00401825 */ or $v1, $v0, $zero ## $v1 = 00010000
.L8097E4D8:
/* 00E68 8097E4D8 0065001A */ div $zero, $v1, $a1
/* 00E6C 8097E4DC 00001010 */ mfhi $v0
/* 00E70 8097E4E0 00027400 */ sll $t6, $v0, 16
/* 00E74 8097E4E4 14A00002 */ bne $a1, $zero, .L8097E4F0
/* 00E78 8097E4E8 00000000 */ nop
/* 00E7C 8097E4EC 0007000D */ break 7
.L8097E4F0:
/* 00E80 8097E4F0 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00E84 8097E4F4 14A10004 */ bne $a1, $at, .L8097E508
/* 00E88 8097E4F8 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00E8C 8097E4FC 14610002 */ bne $v1, $at, .L8097E508
/* 00E90 8097E500 00000000 */ nop
/* 00E94 8097E504 0006000D */ break 6
.L8097E508:
/* 00E98 8097E508 01DE001A */ div $zero, $t6, $s8
/* 00E9C 8097E50C 17C00002 */ bne $s8, $zero, .L8097E518
/* 00EA0 8097E510 00000000 */ nop
/* 00EA4 8097E514 0007000D */ break 7
.L8097E518:
/* 00EA8 8097E518 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00EAC 8097E51C 17C10004 */ bne $s8, $at, .L8097E530
/* 00EB0 8097E520 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00EB4 8097E524 15C10002 */ bne $t6, $at, .L8097E530
/* 00EB8 8097E528 00000000 */ nop
/* 00EBC 8097E52C 0006000D */ break 6
.L8097E530:
/* 00EC0 8097E530 00008012 */ mflo $s0
/* 00EC4 8097E534 00108400 */ sll $s0, $s0, 16
/* 00EC8 8097E538 005E082A */ slt $at, $v0, $s8
/* 00ECC 8097E53C 00108403 */ sra $s0, $s0, 16
/* 00ED0 8097E540 10200047 */ beq $at, $zero, .L8097E660
/* 00ED4 8097E544 00408825 */ or $s1, $v0, $zero ## $s1 = 00010000
/* 00ED8 8097E548 01FE001A */ div $zero, $t7, $s8
/* 00EDC 8097E54C 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 00EE0 8097E550 44812000 */ mtc1 $at, $f4 ## $f4 = 300.00
/* 00EE4 8097E554 0000A812 */ mflo $s5
/* 00EE8 8097E558 0015AC00 */ sll $s5, $s5, 16
/* 00EEC 8097E55C 46002582 */ mul.s $f22, $f4, $f0
/* 00EF0 8097E560 17C00002 */ bne $s8, $zero, .L8097E56C
/* 00EF4 8097E564 00000000 */ nop
/* 00EF8 8097E568 0007000D */ break 7
.L8097E56C:
/* 00EFC 8097E56C 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00F00 8097E570 17C10004 */ bne $s8, $at, .L8097E584
/* 00F04 8097E574 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00F08 8097E578 15E10002 */ bne $t7, $at, .L8097E584
/* 00F0C 8097E57C 00000000 */ nop
/* 00F10 8097E580 0006000D */ break 6
.L8097E584:
/* 00F14 8097E584 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00F18 8097E588 44813000 */ mtc1 $at, $f6 ## $f6 = 15.00
/* 00F1C 8097E58C 3C018098 */ lui $at, %hi(D_80982A9C) ## $at = 80980000
/* 00F20 8097E590 C4382A9C */ lwc1 $f24, %lo(D_80982A9C)($at)
/* 00F24 8097E594 46003202 */ mul.s $f8, $f6, $f0
/* 00F28 8097E598 0015AC03 */ sra $s5, $s5, 16
/* 00F2C 8097E59C C7B400B8 */ lwc1 $f20, 0x00B8($sp)
/* 00F30 8097E5A0 87B700CA */ lh $s7, 0x00CA($sp)
/* 00F34 8097E5A4 27B2007C */ addiu $s2, $sp, 0x007C ## $s2 = FFFFFFD4
/* 00F38 8097E5A8 4600428D */ trunc.w.s $f10, $f8
/* 00F3C 8097E5AC 44165000 */ mfc1 $s6, $f10
/* 00F40 8097E5B0 00000000 */ nop
/* 00F44 8097E5B4 0016B400 */ sll $s6, $s6, 16
/* 00F48 8097E5B8 0016B403 */ sra $s6, $s6, 16
.L8097E5BC:
/* 00F4C 8097E5BC 00102400 */ sll $a0, $s0, 16
/* 00F50 8097E5C0 0C01DE1C */ jal Math_Sins
## sins?
/* 00F54 8097E5C4 00042403 */ sra $a0, $a0, 16
/* 00F58 8097E5C8 46140402 */ mul.s $f16, $f0, $f20
/* 00F5C 8097E5CC C6720000 */ lwc1 $f18, 0x0000($s3) ## 00000000
/* 00F60 8097E5D0 00102400 */ sll $a0, $s0, 16
/* 00F64 8097E5D4 00042403 */ sra $a0, $a0, 16
/* 00F68 8097E5D8 46128100 */ add.s $f4, $f16, $f18
/* 00F6C 8097E5DC E7A4007C */ swc1 $f4, 0x007C($sp)
/* 00F70 8097E5E0 C6660004 */ lwc1 $f6, 0x0004($s3) ## 00000004
/* 00F74 8097E5E4 0C01DE0D */ jal Math_Coss
## coss?
/* 00F78 8097E5E8 E7A60080 */ swc1 $f6, 0x0080($sp)
/* 00F7C 8097E5EC 46140202 */ mul.s $f8, $f0, $f20
/* 00F80 8097E5F0 C66A0008 */ lwc1 $f10, 0x0008($s3) ## 00000008
/* 00F84 8097E5F4 AFB70018 */ sw $s7, 0x0018($sp)
/* 00F88 8097E5F8 AFB60014 */ sw $s6, 0x0014($sp)
/* 00F8C 8097E5FC E7B60010 */ swc1 $f22, 0x0010($sp)
/* 00F90 8097E600 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 00F94 8097E604 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFD4
/* 00F98 8097E608 460A4400 */ add.s $f16, $f8, $f10
/* 00F9C 8097E60C 8FA600B0 */ lw $a2, 0x00B0($sp)
/* 00FA0 8097E610 8FA700B4 */ lw $a3, 0x00B4($sp)
/* 00FA4 8097E614 0C25F5D3 */ jal DemoGt_SpawnDust
/* 00FA8 8097E618 E7B00084 */ swc1 $f16, 0x0084($sp)
/* 00FAC 8097E61C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00FB0 8097E620 00000000 */ nop
/* 00FB4 8097E624 4618003E */ c.le.s $f0, $f24
/* 00FB8 8097E628 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 00FBC 8097E62C 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFD4
/* 00FC0 8097E630 00103400 */ sll $a2, $s0, 16
/* 00FC4 8097E634 45020004 */ bc1fl .L8097E648
/* 00FC8 8097E638 8FB900C4 */ lw $t9, 0x00C4($sp)
/* 00FCC 8097E63C 0C25F875 */ jal func_8097E1D4
/* 00FD0 8097E640 00063403 */ sra $a2, $a2, 16
/* 00FD4 8097E644 8FB900C4 */ lw $t9, 0x00C4($sp)
.L8097E648:
/* 00FD8 8097E648 02158021 */ addu $s0, $s0, $s5
/* 00FDC 8097E64C 00108400 */ sll $s0, $s0, 16
/* 00FE0 8097E650 02398821 */ addu $s1, $s1, $t9
/* 00FE4 8097E654 023E082A */ slt $at, $s1, $s8
/* 00FE8 8097E658 1420FFD8 */ bne $at, $zero, .L8097E5BC
/* 00FEC 8097E65C 00108403 */ sra $s0, $s0, 16
.L8097E660:
/* 00FF0 8097E660 8FBF0064 */ lw $ra, 0x0064($sp)
/* 00FF4 8097E664 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 00FF8 8097E668 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 00FFC 8097E66C D7B80038 */ ldc1 $f24, 0x0038($sp)
/* 01000 8097E670 8FB00040 */ lw $s0, 0x0040($sp)
/* 01004 8097E674 8FB10044 */ lw $s1, 0x0044($sp)
/* 01008 8097E678 8FB20048 */ lw $s2, 0x0048($sp)
/* 0100C 8097E67C 8FB3004C */ lw $s3, 0x004C($sp)
/* 01010 8097E680 8FB40050 */ lw $s4, 0x0050($sp)
/* 01014 8097E684 8FB50054 */ lw $s5, 0x0054($sp)
/* 01018 8097E688 8FB60058 */ lw $s6, 0x0058($sp)
/* 0101C 8097E68C 8FB7005C */ lw $s7, 0x005C($sp)
/* 01020 8097E690 8FBE0060 */ lw $s8, 0x0060($sp)
/* 01024 8097E694 03E00008 */ jr $ra
/* 01028 8097E698 27BD00A8 */ addiu $sp, $sp, 0x00A8 ## $sp = 00000000

View File

@ -1,374 +0,0 @@
.late_rodata
glabel D_80982AA0
.float 0.1
glabel D_80982AA4
.float 0.1
glabel D_80982AA8
.float 0.1
glabel D_80982AAC
.float 0.1
glabel D_80982AB0
.float 0.1
glabel D_80982AB4
.float 0.1
glabel D_80982AB8
.float 0.1
glabel D_80982ABC
.float 0.1
.text
glabel func_8097E824
/* 011B4 8097E824 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 011B8 8097E828 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 011BC 8097E82C AFBF0014 */ sw $ra, 0x0014($sp)
/* 011C0 8097E830 14A10023 */ bne $a1, $at, .L8097E8C0
/* 011C4 8097E834 AFA40048 */ sw $a0, 0x0048($sp)
/* 011C8 8097E838 3C028016 */ lui $v0, %hi(gGameInfo)
/* 011CC 8097E83C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 011D0 8097E840 3C018098 */ lui $at, %hi(D_80982AA0) ## $at = 80980000
/* 011D4 8097E844 C4202AA0 */ lwc1 $f0, %lo(D_80982AA0)($at)
/* 011D8 8097E848 84591474 */ lh $t9, 0x1474($v0) ## 80161474
/* 011DC 8097E84C 84481476 */ lh $t0, 0x1476($v0) ## 80161476
/* 011E0 8097E850 84491478 */ lh $t1, 0x1478($v0) ## 80161478
/* 011E4 8097E854 44992000 */ mtc1 $t9, $f4 ## $f4 = 0.00
/* 011E8 8097E858 44884000 */ mtc1 $t0, $f8 ## $f8 = 0.00
/* 011EC 8097E85C 844E147A */ lh $t6, 0x147A($v0) ## 8016147A
/* 011F0 8097E860 468021A0 */ cvt.s.w $f6, $f4
/* 011F4 8097E864 44892000 */ mtc1 $t1, $f4 ## $f4 = 0.00
/* 011F8 8097E868 844F147C */ lh $t7, 0x147C($v0) ## 8016147C
/* 011FC 8097E86C 8458147E */ lh $t8, 0x147E($v0) ## 8016147E
/* 01200 8097E870 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 01204 8097E874 468042A0 */ cvt.s.w $f10, $f8
/* 01208 8097E878 46003082 */ mul.s $f2, $f6, $f0
/* 0120C 8097E87C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01210 8097E880 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 01214 8097E884 01C32821 */ addu $a1, $t6, $v1
/* 01218 8097E888 01E33021 */ addu $a2, $t7, $v1
/* 0121C 8097E88C 46005402 */ mul.s $f16, $f10, $f0
/* 01220 8097E890 03033821 */ addu $a3, $t8, $v1
/* 01224 8097E894 00052C00 */ sll $a1, $a1, 16
/* 01228 8097E898 00063400 */ sll $a2, $a2, 16
/* 0122C 8097E89C 00073C00 */ sll $a3, $a3, 16
/* 01230 8097E8A0 00052C03 */ sra $a1, $a1, 16
/* 01234 8097E8A4 468021A0 */ cvt.s.w $f6, $f4
/* 01238 8097E8A8 00063403 */ sra $a2, $a2, 16
/* 0123C 8097E8AC 00073C03 */ sra $a3, $a3, 16
/* 01240 8097E8B0 46128300 */ add.s $f12, $f16, $f18
/* 01244 8097E8B4 46003382 */ mul.s $f14, $f6, $f0
/* 01248 8097E8B8 100000FB */ beq $zero, $zero, .L8097ECA8
/* 0124C 8097E8BC 8FA20048 */ lw $v0, 0x0048($sp)
.L8097E8C0:
/* 01250 8097E8C0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 01254 8097E8C4 14A10022 */ bne $a1, $at, .L8097E950
/* 01258 8097E8C8 3C028016 */ lui $v0, %hi(gGameInfo)
/* 0125C 8097E8CC 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 01260 8097E8D0 3C018098 */ lui $at, %hi(D_80982AA4) ## $at = 80980000
/* 01264 8097E8D4 C4202AA4 */ lwc1 $f0, %lo(D_80982AA4)($at)
/* 01268 8097E8D8 844D1480 */ lh $t5, 0x1480($v0) ## 80161480
/* 0126C 8097E8DC 844E1482 */ lh $t6, 0x1482($v0) ## 80161482
/* 01270 8097E8E0 844F1484 */ lh $t7, 0x1484($v0) ## 80161484
/* 01274 8097E8E4 448D4000 */ mtc1 $t5, $f8 ## $f8 = 0.00
/* 01278 8097E8E8 448E8000 */ mtc1 $t6, $f16 ## $f16 = 0.00
/* 0127C 8097E8EC 844A1486 */ lh $t2, 0x1486($v0) ## 80161486
/* 01280 8097E8F0 468042A0 */ cvt.s.w $f10, $f8
/* 01284 8097E8F4 448F4000 */ mtc1 $t7, $f8 ## $f8 = 0.00
/* 01288 8097E8F8 844B1488 */ lh $t3, 0x1488($v0) ## 80161488
/* 0128C 8097E8FC 844C148A */ lh $t4, 0x148A($v0) ## 8016148A
/* 01290 8097E900 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 01294 8097E904 468084A0 */ cvt.s.w $f18, $f16
/* 01298 8097E908 46005082 */ mul.s $f2, $f10, $f0
/* 0129C 8097E90C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 012A0 8097E910 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 012A4 8097E914 01432821 */ addu $a1, $t2, $v1
/* 012A8 8097E918 01633021 */ addu $a2, $t3, $v1
/* 012AC 8097E91C 46009102 */ mul.s $f4, $f18, $f0
/* 012B0 8097E920 01833821 */ addu $a3, $t4, $v1
/* 012B4 8097E924 00052C00 */ sll $a1, $a1, 16
/* 012B8 8097E928 00063400 */ sll $a2, $a2, 16
/* 012BC 8097E92C 00073C00 */ sll $a3, $a3, 16
/* 012C0 8097E930 00052C03 */ sra $a1, $a1, 16
/* 012C4 8097E934 468042A0 */ cvt.s.w $f10, $f8
/* 012C8 8097E938 00063403 */ sra $a2, $a2, 16
/* 012CC 8097E93C 00073C03 */ sra $a3, $a3, 16
/* 012D0 8097E940 46062300 */ add.s $f12, $f4, $f6
/* 012D4 8097E944 46005382 */ mul.s $f14, $f10, $f0
/* 012D8 8097E948 100000D7 */ beq $zero, $zero, .L8097ECA8
/* 012DC 8097E94C 8FA20048 */ lw $v0, 0x0048($sp)
.L8097E950:
/* 012E0 8097E950 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 012E4 8097E954 14A10022 */ bne $a1, $at, .L8097E9E0
/* 012E8 8097E958 3C028016 */ lui $v0, %hi(gGameInfo)
/* 012EC 8097E95C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 012F0 8097E960 3C018098 */ lui $at, %hi(D_80982AA8) ## $at = 80980000
/* 012F4 8097E964 C4202AA8 */ lwc1 $f0, %lo(D_80982AA8)($at)
/* 012F8 8097E968 8449148C */ lh $t1, 0x148C($v0) ## 8016148C
/* 012FC 8097E96C 844A148E */ lh $t2, 0x148E($v0) ## 8016148E
/* 01300 8097E970 844B1490 */ lh $t3, 0x1490($v0) ## 80161490
/* 01304 8097E974 44898000 */ mtc1 $t1, $f16 ## $f16 = 0.00
/* 01308 8097E978 448A2000 */ mtc1 $t2, $f4 ## $f4 = 0.00
/* 0130C 8097E97C 84581492 */ lh $t8, 0x1492($v0) ## 80161492
/* 01310 8097E980 468084A0 */ cvt.s.w $f18, $f16
/* 01314 8097E984 448B8000 */ mtc1 $t3, $f16 ## $f16 = 0.00
/* 01318 8097E988 84591494 */ lh $t9, 0x1494($v0) ## 80161494
/* 0131C 8097E98C 84481496 */ lh $t0, 0x1496($v0) ## 80161496
/* 01320 8097E990 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 01324 8097E994 468021A0 */ cvt.s.w $f6, $f4
/* 01328 8097E998 46009082 */ mul.s $f2, $f18, $f0
/* 0132C 8097E99C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01330 8097E9A0 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50
/* 01334 8097E9A4 03032821 */ addu $a1, $t8, $v1
/* 01338 8097E9A8 03233021 */ addu $a2, $t9, $v1
/* 0133C 8097E9AC 46003202 */ mul.s $f8, $f6, $f0
/* 01340 8097E9B0 01033821 */ addu $a3, $t0, $v1
/* 01344 8097E9B4 00052C00 */ sll $a1, $a1, 16
/* 01348 8097E9B8 00063400 */ sll $a2, $a2, 16
/* 0134C 8097E9BC 00073C00 */ sll $a3, $a3, 16
/* 01350 8097E9C0 00052C03 */ sra $a1, $a1, 16
/* 01354 8097E9C4 468084A0 */ cvt.s.w $f18, $f16
/* 01358 8097E9C8 00063403 */ sra $a2, $a2, 16
/* 0135C 8097E9CC 00073C03 */ sra $a3, $a3, 16
/* 01360 8097E9D0 460A4300 */ add.s $f12, $f8, $f10
/* 01364 8097E9D4 46009382 */ mul.s $f14, $f18, $f0
/* 01368 8097E9D8 100000B3 */ beq $zero, $zero, .L8097ECA8
/* 0136C 8097E9DC 8FA20048 */ lw $v0, 0x0048($sp)
.L8097E9E0:
/* 01370 8097E9E0 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 01374 8097E9E4 14A10022 */ bne $a1, $at, .L8097EA70
/* 01378 8097E9E8 3C028016 */ lui $v0, %hi(gGameInfo)
/* 0137C 8097E9EC 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 01380 8097E9F0 3C018098 */ lui $at, %hi(D_80982AAC) ## $at = 80980000
/* 01384 8097E9F4 C4202AAC */ lwc1 $f0, %lo(D_80982AAC)($at)
/* 01388 8097E9F8 844F1498 */ lh $t7, 0x1498($v0) ## 80161498
/* 0138C 8097E9FC 8458149A */ lh $t8, 0x149A($v0) ## 8016149A
/* 01390 8097EA00 8459149C */ lh $t9, 0x149C($v0) ## 8016149C
/* 01394 8097EA04 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 01398 8097EA08 44984000 */ mtc1 $t8, $f8 ## $f8 = 0.00
/* 0139C 8097EA0C 844C149E */ lh $t4, 0x149E($v0) ## 8016149E
/* 013A0 8097EA10 468021A0 */ cvt.s.w $f6, $f4
/* 013A4 8097EA14 44992000 */ mtc1 $t9, $f4 ## $f4 = 0.00
/* 013A8 8097EA18 844D14A0 */ lh $t5, 0x14A0($v0) ## 801614A0
/* 013AC 8097EA1C 844E14A2 */ lh $t6, 0x14A2($v0) ## 801614A2
/* 013B0 8097EA20 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 013B4 8097EA24 468042A0 */ cvt.s.w $f10, $f8
/* 013B8 8097EA28 46003082 */ mul.s $f2, $f6, $f0
/* 013BC 8097EA2C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 013C0 8097EA30 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 013C4 8097EA34 01832821 */ addu $a1, $t4, $v1
/* 013C8 8097EA38 01A33021 */ addu $a2, $t5, $v1
/* 013CC 8097EA3C 46005402 */ mul.s $f16, $f10, $f0
/* 013D0 8097EA40 01C33821 */ addu $a3, $t6, $v1
/* 013D4 8097EA44 00052C00 */ sll $a1, $a1, 16
/* 013D8 8097EA48 00063400 */ sll $a2, $a2, 16
/* 013DC 8097EA4C 00073C00 */ sll $a3, $a3, 16
/* 013E0 8097EA50 00052C03 */ sra $a1, $a1, 16
/* 013E4 8097EA54 468021A0 */ cvt.s.w $f6, $f4
/* 013E8 8097EA58 00063403 */ sra $a2, $a2, 16
/* 013EC 8097EA5C 00073C03 */ sra $a3, $a3, 16
/* 013F0 8097EA60 46128300 */ add.s $f12, $f16, $f18
/* 013F4 8097EA64 46003382 */ mul.s $f14, $f6, $f0
/* 013F8 8097EA68 1000008F */ beq $zero, $zero, .L8097ECA8
/* 013FC 8097EA6C 8FA20048 */ lw $v0, 0x0048($sp)
.L8097EA70:
/* 01400 8097EA70 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 01404 8097EA74 14A10022 */ bne $a1, $at, .L8097EB00
/* 01408 8097EA78 3C028016 */ lui $v0, %hi(gGameInfo)
/* 0140C 8097EA7C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 01410 8097EA80 3C018098 */ lui $at, %hi(D_80982AB0) ## $at = 80980000
/* 01414 8097EA84 C4202AB0 */ lwc1 $f0, %lo(D_80982AB0)($at)
/* 01418 8097EA88 844B14A4 */ lh $t3, 0x14A4($v0) ## 801614A4
/* 0141C 8097EA8C 844C14A6 */ lh $t4, 0x14A6($v0) ## 801614A6
/* 01420 8097EA90 844D14A8 */ lh $t5, 0x14A8($v0) ## 801614A8
/* 01424 8097EA94 448B4000 */ mtc1 $t3, $f8 ## $f8 = 0.00
/* 01428 8097EA98 448C8000 */ mtc1 $t4, $f16 ## $f16 = 0.00
/* 0142C 8097EA9C 844814AA */ lh $t0, 0x14AA($v0) ## 801614AA
/* 01430 8097EAA0 468042A0 */ cvt.s.w $f10, $f8
/* 01434 8097EAA4 448D4000 */ mtc1 $t5, $f8 ## $f8 = 0.00
/* 01438 8097EAA8 844914AC */ lh $t1, 0x14AC($v0) ## 801614AC
/* 0143C 8097EAAC 844A14AE */ lh $t2, 0x14AE($v0) ## 801614AE
/* 01440 8097EAB0 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 01444 8097EAB4 468084A0 */ cvt.s.w $f18, $f16
/* 01448 8097EAB8 46005082 */ mul.s $f2, $f10, $f0
/* 0144C 8097EABC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01450 8097EAC0 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 01454 8097EAC4 01032821 */ addu $a1, $t0, $v1
/* 01458 8097EAC8 01233021 */ addu $a2, $t1, $v1
/* 0145C 8097EACC 46009102 */ mul.s $f4, $f18, $f0
/* 01460 8097EAD0 01433821 */ addu $a3, $t2, $v1
/* 01464 8097EAD4 00052C00 */ sll $a1, $a1, 16
/* 01468 8097EAD8 00063400 */ sll $a2, $a2, 16
/* 0146C 8097EADC 00073C00 */ sll $a3, $a3, 16
/* 01470 8097EAE0 00052C03 */ sra $a1, $a1, 16
/* 01474 8097EAE4 468042A0 */ cvt.s.w $f10, $f8
/* 01478 8097EAE8 00063403 */ sra $a2, $a2, 16
/* 0147C 8097EAEC 00073C03 */ sra $a3, $a3, 16
/* 01480 8097EAF0 46062300 */ add.s $f12, $f4, $f6
/* 01484 8097EAF4 46005382 */ mul.s $f14, $f10, $f0
/* 01488 8097EAF8 1000006B */ beq $zero, $zero, .L8097ECA8
/* 0148C 8097EAFC 8FA20048 */ lw $v0, 0x0048($sp)
.L8097EB00:
/* 01490 8097EB00 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 01494 8097EB04 14A10022 */ bne $a1, $at, .L8097EB90
/* 01498 8097EB08 3C028016 */ lui $v0, %hi(gGameInfo)
/* 0149C 8097EB0C 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 014A0 8097EB10 3C018098 */ lui $at, %hi(D_80982AB4) ## $at = 80980000
/* 014A4 8097EB14 C4202AB4 */ lwc1 $f0, %lo(D_80982AB4)($at)
/* 014A8 8097EB18 845914B0 */ lh $t9, 0x14B0($v0) ## 801614B0
/* 014AC 8097EB1C 844814B2 */ lh $t0, 0x14B2($v0) ## 801614B2
/* 014B0 8097EB20 844914B4 */ lh $t1, 0x14B4($v0) ## 801614B4
/* 014B4 8097EB24 44998000 */ mtc1 $t9, $f16 ## $f16 = 0.00
/* 014B8 8097EB28 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 014BC 8097EB2C 844E14B6 */ lh $t6, 0x14B6($v0) ## 801614B6
/* 014C0 8097EB30 468084A0 */ cvt.s.w $f18, $f16
/* 014C4 8097EB34 44898000 */ mtc1 $t1, $f16 ## $f16 = 0.00
/* 014C8 8097EB38 844F14B8 */ lh $t7, 0x14B8($v0) ## 801614B8
/* 014CC 8097EB3C 845814BA */ lh $t8, 0x14BA($v0) ## 801614BA
/* 014D0 8097EB40 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 014D4 8097EB44 468021A0 */ cvt.s.w $f6, $f4
/* 014D8 8097EB48 46009082 */ mul.s $f2, $f18, $f0
/* 014DC 8097EB4C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 014E0 8097EB50 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50
/* 014E4 8097EB54 01C32821 */ addu $a1, $t6, $v1
/* 014E8 8097EB58 01E33021 */ addu $a2, $t7, $v1
/* 014EC 8097EB5C 46003202 */ mul.s $f8, $f6, $f0
/* 014F0 8097EB60 03033821 */ addu $a3, $t8, $v1
/* 014F4 8097EB64 00052C00 */ sll $a1, $a1, 16
/* 014F8 8097EB68 00063400 */ sll $a2, $a2, 16
/* 014FC 8097EB6C 00073C00 */ sll $a3, $a3, 16
/* 01500 8097EB70 00052C03 */ sra $a1, $a1, 16
/* 01504 8097EB74 468084A0 */ cvt.s.w $f18, $f16
/* 01508 8097EB78 00063403 */ sra $a2, $a2, 16
/* 0150C 8097EB7C 00073C03 */ sra $a3, $a3, 16
/* 01510 8097EB80 460A4300 */ add.s $f12, $f8, $f10
/* 01514 8097EB84 46009382 */ mul.s $f14, $f18, $f0
/* 01518 8097EB88 10000047 */ beq $zero, $zero, .L8097ECA8
/* 0151C 8097EB8C 8FA20048 */ lw $v0, 0x0048($sp)
.L8097EB90:
/* 01520 8097EB90 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 01524 8097EB94 14A10023 */ bne $a1, $at, .L8097EC24
/* 01528 8097EB98 3C028016 */ lui $v0, %hi(gGameInfo)
/* 0152C 8097EB9C 3C028016 */ lui $v0, %hi(gGameInfo)
/* 01530 8097EBA0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 01534 8097EBA4 3C018098 */ lui $at, %hi(D_80982AB8) ## $at = 80980000
/* 01538 8097EBA8 C4202AB8 */ lwc1 $f0, %lo(D_80982AB8)($at)
/* 0153C 8097EBAC 844D14F8 */ lh $t5, 0x14F8($v0) ## 801614F8
/* 01540 8097EBB0 844E14FA */ lh $t6, 0x14FA($v0) ## 801614FA
/* 01544 8097EBB4 844F14FC */ lh $t7, 0x14FC($v0) ## 801614FC
/* 01548 8097EBB8 448D2000 */ mtc1 $t5, $f4 ## $f4 = 0.00
/* 0154C 8097EBBC 448E4000 */ mtc1 $t6, $f8 ## $f8 = 0.00
/* 01550 8097EBC0 844A14FE */ lh $t2, 0x14FE($v0) ## 801614FE
/* 01554 8097EBC4 468021A0 */ cvt.s.w $f6, $f4
/* 01558 8097EBC8 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 0155C 8097EBCC 844B1500 */ lh $t3, 0x1500($v0) ## 80161500
/* 01560 8097EBD0 844C1502 */ lh $t4, 0x1502($v0) ## 80161502
/* 01564 8097EBD4 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 01568 8097EBD8 468042A0 */ cvt.s.w $f10, $f8
/* 0156C 8097EBDC 46003082 */ mul.s $f2, $f6, $f0
/* 01570 8097EBE0 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01574 8097EBE4 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 01578 8097EBE8 01432821 */ addu $a1, $t2, $v1
/* 0157C 8097EBEC 01633021 */ addu $a2, $t3, $v1
/* 01580 8097EBF0 46005402 */ mul.s $f16, $f10, $f0
/* 01584 8097EBF4 01833821 */ addu $a3, $t4, $v1
/* 01588 8097EBF8 00052C00 */ sll $a1, $a1, 16
/* 0158C 8097EBFC 00063400 */ sll $a2, $a2, 16
/* 01590 8097EC00 00073C00 */ sll $a3, $a3, 16
/* 01594 8097EC04 00052C03 */ sra $a1, $a1, 16
/* 01598 8097EC08 468021A0 */ cvt.s.w $f6, $f4
/* 0159C 8097EC0C 00063403 */ sra $a2, $a2, 16
/* 015A0 8097EC10 00073C03 */ sra $a3, $a3, 16
/* 015A4 8097EC14 46128300 */ add.s $f12, $f16, $f18
/* 015A8 8097EC18 46003382 */ mul.s $f14, $f6, $f0
/* 015AC 8097EC1C 10000022 */ beq $zero, $zero, .L8097ECA8
/* 015B0 8097EC20 8FA20048 */ lw $v0, 0x0048($sp)
.L8097EC24:
/* 015B4 8097EC24 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0)
/* 015B8 8097EC28 3C018098 */ lui $at, %hi(D_80982ABC) ## $at = 80980000
/* 015BC 8097EC2C C4202ABC */ lwc1 $f0, %lo(D_80982ABC)($at)
/* 015C0 8097EC30 84491504 */ lh $t1, 0x1504($v0) ## 80161504
/* 015C4 8097EC34 844A1506 */ lh $t2, 0x1506($v0) ## 80161506
/* 015C8 8097EC38 844B1508 */ lh $t3, 0x1508($v0) ## 80161508
/* 015CC 8097EC3C 44894000 */ mtc1 $t1, $f8 ## $f8 = 0.00
/* 015D0 8097EC40 448A8000 */ mtc1 $t2, $f16 ## $f16 = 0.00
/* 015D4 8097EC44 8458150A */ lh $t8, 0x150A($v0) ## 8016150A
/* 015D8 8097EC48 468042A0 */ cvt.s.w $f10, $f8
/* 015DC 8097EC4C 448B4000 */ mtc1 $t3, $f8 ## $f8 = 0.00
/* 015E0 8097EC50 8459150C */ lh $t9, 0x150C($v0) ## 8016150C
/* 015E4 8097EC54 8448150E */ lh $t0, 0x150E($v0) ## 8016150E
/* 015E8 8097EC58 34038000 */ ori $v1, $zero, 0x8000 ## $v1 = 00008000
/* 015EC 8097EC5C 468084A0 */ cvt.s.w $f18, $f16
/* 015F0 8097EC60 46005082 */ mul.s $f2, $f10, $f0
/* 015F4 8097EC64 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 015F8 8097EC68 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 015FC 8097EC6C 03032821 */ addu $a1, $t8, $v1
/* 01600 8097EC70 03233021 */ addu $a2, $t9, $v1
/* 01604 8097EC74 46009102 */ mul.s $f4, $f18, $f0
/* 01608 8097EC78 01033821 */ addu $a3, $t0, $v1
/* 0160C 8097EC7C 00052C00 */ sll $a1, $a1, 16
/* 01610 8097EC80 00063400 */ sll $a2, $a2, 16
/* 01614 8097EC84 00073C00 */ sll $a3, $a3, 16
/* 01618 8097EC88 00052C03 */ sra $a1, $a1, 16
/* 0161C 8097EC8C 468042A0 */ cvt.s.w $f10, $f8
/* 01620 8097EC90 00063403 */ sra $a2, $a2, 16
/* 01624 8097EC94 00073C03 */ sra $a3, $a3, 16
/* 01628 8097EC98 46062300 */ add.s $f12, $f4, $f6
/* 0162C 8097EC9C 46005382 */ mul.s $f14, $f10, $f0
/* 01630 8097ECA0 00000000 */ nop
/* 01634 8097ECA4 8FA20048 */ lw $v0, 0x0048($sp)
.L8097ECA8:
/* 01638 8097ECA8 844C016C */ lh $t4, 0x016C($v0) ## 8016016C
/* 0163C 8097ECAC 844E016E */ lh $t6, 0x016E($v0) ## 8016016E
/* 01640 8097ECB0 84580170 */ lh $t8, 0x0170($v0) ## 80160170
/* 01644 8097ECB4 01856821 */ addu $t5, $t4, $a1
/* 01648 8097ECB8 A44D016C */ sh $t5, 0x016C($v0) ## 8016016C
/* 0164C 8097ECBC 01C67821 */ addu $t7, $t6, $a2
/* 01650 8097ECC0 0307C821 */ addu $t9, $t8, $a3
/* 01654 8097ECC4 A44F016E */ sh $t7, 0x016E($v0) ## 8016016E
/* 01658 8097ECC8 A4590170 */ sh $t9, 0x0170($v0) ## 80160170
/* 0165C 8097ECCC 8444016C */ lh $a0, 0x016C($v0) ## 8016016C
/* 01660 8097ECD0 2442016C */ addiu $v0, $v0, 0x016C ## $v0 = 8016016C
/* 01664 8097ECD4 AFA20018 */ sw $v0, 0x0018($sp)
/* 01668 8097ECD8 E7AE0024 */ swc1 $f14, 0x0024($sp)
/* 0166C 8097ECDC E7AC0020 */ swc1 $f12, 0x0020($sp)
/* 01670 8097ECE0 0C01DE0D */ jal Math_Coss
## coss?
/* 01674 8097ECE4 E7A2001C */ swc1 $f2, 0x001C($sp)
/* 01678 8097ECE8 C7A2001C */ lwc1 $f2, 0x001C($sp)
/* 0167C 8097ECEC 8FA20018 */ lw $v0, 0x0018($sp)
/* 01680 8097ECF0 46020402 */ mul.s $f16, $f0, $f2
/* 01684 8097ECF4 E7B00028 */ swc1 $f16, 0x0028($sp)
/* 01688 8097ECF8 0C01DE0D */ jal Math_Coss
## coss?
/* 0168C 8097ECFC 84440002 */ lh $a0, 0x0002($v0) ## 00000002
/* 01690 8097ED00 C7AC0020 */ lwc1 $f12, 0x0020($sp)
/* 01694 8097ED04 8FA20018 */ lw $v0, 0x0018($sp)
/* 01698 8097ED08 460C0482 */ mul.s $f18, $f0, $f12
/* 0169C 8097ED0C E7B2002C */ swc1 $f18, 0x002C($sp)
/* 016A0 8097ED10 0C01DE0D */ jal Math_Coss
## coss?
/* 016A4 8097ED14 84440004 */ lh $a0, 0x0004($v0) ## 00000004
/* 016A8 8097ED18 8FA20048 */ lw $v0, 0x0048($sp)
/* 016AC 8097ED1C C7A60028 */ lwc1 $f6, 0x0028($sp)
/* 016B0 8097ED20 C7AE0024 */ lwc1 $f14, 0x0024($sp)
/* 016B4 8097ED24 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024
/* 016B8 8097ED28 C44A0028 */ lwc1 $f10, 0x0028($v0) ## 00000028
/* 016BC 8097ED2C 24420024 */ addiu $v0, $v0, 0x0024 ## $v0 = 00000024
/* 016C0 8097ED30 46062200 */ add.s $f8, $f4, $f6
/* 016C4 8097ED34 460E0182 */ mul.s $f6, $f0, $f14
/* 016C8 8097ED38 C4440008 */ lwc1 $f4, 0x0008($v0) ## 0000002C
/* 016CC 8097ED3C E4480000 */ swc1 $f8, 0x0000($v0) ## 00000024
/* 016D0 8097ED40 C7B0002C */ lwc1 $f16, 0x002C($sp)
/* 016D4 8097ED44 46062200 */ add.s $f8, $f4, $f6
/* 016D8 8097ED48 46105480 */ add.s $f18, $f10, $f16
/* 016DC 8097ED4C E4480008 */ swc1 $f8, 0x0008($v0) ## 0000002C
/* 016E0 8097ED50 E4520004 */ swc1 $f18, 0x0004($v0) ## 00000028
/* 016E4 8097ED54 8FBF0014 */ lw $ra, 0x0014($sp)
/* 016E8 8097ED58 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 016EC 8097ED5C 03E00008 */ jr $ra
/* 016F0 8097ED60 00000000 */ nop

View File

@ -1,390 +0,0 @@
.late_rodata
glabel D_80AD8DEC
.float 0.03
glabel D_80AD8DF0
.float 1740.0
glabel D_80AD8DF4
.float 1580.0
glabel D_80AD8DF8
.float 2090.0
glabel D_80AD8DFC
.float 1.4
glabel D_80AD8E00
.float 1.2
glabel D_80AD8E04
.float 1.2
glabel D_80AD8E08
.float 0.8
glabel D_80AD8E0C
.float 0.02
.text
glabel EnPoRelay_Race
/* 00524 80AD7C64 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 00528 80AD7C68 AFBF0034 */ sw $ra, 0x0034($sp)
/* 0052C 80AD7C6C AFB00030 */ sw $s0, 0x0030($sp)
/* 00530 80AD7C70 AFA50064 */ sw $a1, 0x0064($sp)
/* 00534 80AD7C74 84820196 */ lh $v0, 0x0196($a0) ## 00000196
/* 00538 80AD7C78 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0053C 80AD7C7C 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00540 80AD7C80 10400003 */ beq $v0, $zero, .L80AD7C90
/* 00544 80AD7C84 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
/* 00548 80AD7C88 A48F0196 */ sh $t7, 0x0196($a0) ## 00000196
/* 0054C 80AD7C8C 84820196 */ lh $v0, 0x0196($a0) ## 00000196
.L80AD7C90:
/* 00550 80AD7C90 54400056 */ bnel $v0, $zero, .L80AD7DEC
/* 00554 80AD7C94 8605019A */ lh $a1, 0x019A($s0) ## 0000019A
/* 00558 80AD7C98 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0055C 80AD7C9C AFA3005C */ sw $v1, 0x005C($sp)
/* 00560 80AD7CA0 3C0180AE */ lui $at, %hi(D_80AD8DEC) ## $at = 80AE0000
/* 00564 80AD7CA4 C4248DEC */ lwc1 $f4, %lo(D_80AD8DEC)($at)
/* 00568 80AD7CA8 8FA3005C */ lw $v1, 0x005C($sp)
/* 0056C 80AD7CAC 4604003C */ c.lt.s $f0, $f4
/* 00570 80AD7CB0 00000000 */ nop
/* 00574 80AD7CB4 4502004D */ bc1fl .L80AD7DEC
/* 00578 80AD7CB8 8605019A */ lh $a1, 0x019A($s0) ## 0000019A
/* 0057C 80AD7CBC 86190198 */ lh $t9, 0x0198($s0) ## 00000198
/* 00580 80AD7CC0 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 00584 80AD7CC4 A6180196 */ sh $t8, 0x0196($s0) ## 00000196
/* 00588 80AD7CC8 2B210017 */ slti $at, $t9, 0x0017
/* 0058C 80AD7CCC 50200047 */ beql $at, $zero, .L80AD7DEC
/* 00590 80AD7CD0 8605019A */ lh $a1, 0x019A($s0) ## 0000019A
/* 00594 80AD7CD4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00598 80AD7CD8 AFA3005C */ sw $v1, 0x005C($sp)
/* 0059C 80AD7CDC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 005A0 80AD7CE0 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00
/* 005A4 80AD7CE4 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 005A8 80AD7CE8 44813000 */ mtc1 $at, $f6 ## $f6 = 3.00
/* 005AC 80AD7CEC 8FA3005C */ lw $v1, 0x005C($sp)
/* 005B0 80AD7CF0 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 005B4 80AD7CF4 46060082 */ mul.s $f2, $f0, $f6
/* 005B8 80AD7CF8 460E103C */ c.lt.s $f2, $f14
/* 005BC 80AD7CFC 00000000 */ nop
/* 005C0 80AD7D00 45020004 */ bc1fl .L80AD7D14
/* 005C4 80AD7D04 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
/* 005C8 80AD7D08 1000000C */ beq $zero, $zero, .L80AD7D3C
/* 005CC 80AD7D0C 46007306 */ mov.s $f12, $f14
/* 005D0 80AD7D10 44814000 */ mtc1 $at, $f8 ## $f8 = 2.00
.L80AD7D14:
/* 005D4 80AD7D14 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000
/* 005D8 80AD7D18 4608103C */ c.lt.s $f2, $f8
/* 005DC 80AD7D1C 00000000 */ nop
/* 005E0 80AD7D20 45020005 */ bc1fl .L80AD7D38
/* 005E4 80AD7D24 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 005E8 80AD7D28 44816000 */ mtc1 $at, $f12 ## $f12 = -1.00
/* 005EC 80AD7D2C 10000004 */ beq $zero, $zero, .L80AD7D40
/* 005F0 80AD7D30 8604019A */ lh $a0, 0x019A($s0) ## 0000019A
/* 005F4 80AD7D34 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
.L80AD7D38:
/* 005F8 80AD7D38 00000000 */ nop
.L80AD7D3C:
/* 005FC 80AD7D3C 8604019A */ lh $a0, 0x019A($s0) ## 0000019A
.L80AD7D40:
/* 00600 80AD7D40 E7AC0048 */ swc1 $f12, 0x0048($sp)
/* 00604 80AD7D44 0C01DE0D */ jal Math_Coss
## coss?
/* 00608 80AD7D48 AFA3005C */ sw $v1, 0x005C($sp)
/* 0060C 80AD7D4C E7A00040 */ swc1 $f0, 0x0040($sp)
/* 00610 80AD7D50 0C01DE1C */ jal Math_Sins
## sins?
/* 00614 80AD7D54 8604019A */ lh $a0, 0x019A($s0) ## 0000019A
/* 00618 80AD7D58 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 0061C 80AD7D5C 44815000 */ mtc1 $at, $f10 ## $f10 = 30.00
/* 00620 80AD7D60 C7AC0048 */ lwc1 $f12, 0x0048($sp)
/* 00624 80AD7D64 C7B00040 */ lwc1 $f16, 0x0040($sp)
/* 00628 80AD7D68 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 0062C 80AD7D6C 460C5082 */ mul.s $f2, $f10, $f12
/* 00630 80AD7D70 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00634 80AD7D74 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00638 80AD7D78 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 0063C 80AD7D7C 8FA50064 */ lw $a1, 0x0064($sp)
/* 00640 80AD7D80 240C0002 */ addiu $t4, $zero, 0x0002 ## $t4 = 00000002
/* 00644 80AD7D84 2406011C */ addiu $a2, $zero, 0x011C ## $a2 = 0000011C
/* 00648 80AD7D88 46028482 */ mul.s $f18, $f16, $f2
/* 0064C 80AD7D8C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00650 80AD7D90 AFA00018 */ sw $zero, 0x0018($sp)
/* 00654 80AD7D94 46020282 */ mul.s $f10, $f0, $f2
/* 00658 80AD7D98 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 0065C 80AD7D9C 46049180 */ add.s $f6, $f18, $f4
/* 00660 80AD7DA0 46105480 */ add.s $f18, $f10, $f16
/* 00664 80AD7DA4 44073000 */ mfc1 $a3, $f6
/* 00668 80AD7DA8 E7B20014 */ swc1 $f18, 0x0014($sp)
/* 0066C 80AD7DAC 8608019A */ lh $t0, 0x019A($s0) ## 0000019A
/* 00670 80AD7DB0 AFAC0024 */ sw $t4, 0x0024($sp)
/* 00674 80AD7DB4 AFA00020 */ sw $zero, 0x0020($sp)
/* 00678 80AD7DB8 01014821 */ addu $t1, $t0, $at
/* 0067C 80AD7DBC 3C014600 */ lui $at, 0x4600 ## $at = 46000000
/* 00680 80AD7DC0 44814000 */ mtc1 $at, $f8 ## $f8 = 8192.00
/* 00684 80AD7DC4 44892000 */ mtc1 $t1, $f4 ## $f4 = 0.00
/* 00688 80AD7DC8 460C4282 */ mul.s $f10, $f8, $f12
/* 0068C 80AD7DCC 468021A0 */ cvt.s.w $f6, $f4
/* 00690 80AD7DD0 460A3401 */ sub.s $f16, $f6, $f10
/* 00694 80AD7DD4 4600848D */ trunc.w.s $f18, $f16
/* 00698 80AD7DD8 440B9000 */ mfc1 $t3, $f18
/* 0069C 80AD7DDC 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 006A0 80AD7DE0 AFAB001C */ sw $t3, 0x001C($sp)
/* 006A4 80AD7DE4 8FA3005C */ lw $v1, 0x005C($sp)
/* 006A8 80AD7DE8 8605019A */ lh $a1, 0x019A($s0) ## 0000019A
.L80AD7DEC:
/* 006AC 80AD7DEC 240D0100 */ addiu $t5, $zero, 0x0100 ## $t5 = 00000100
/* 006B0 80AD7DF0 AFAD0010 */ sw $t5, 0x0010($sp)
/* 006B4 80AD7DF4 AFA3005C */ sw $v1, 0x005C($sp)
/* 006B8 80AD7DF8 26040032 */ addiu $a0, $s0, 0x0032 ## $a0 = 00000032
/* 006BC 80AD7DFC 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002
/* 006C0 80AD7E00 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 006C4 80AD7E04 24071000 */ addiu $a3, $zero, 0x1000 ## $a3 = 00001000
/* 006C8 80AD7E08 860F0196 */ lh $t7, 0x0196($s0) ## 00000196
/* 006CC 80AD7E0C 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
/* 006D0 80AD7E10 86090198 */ lh $t1, 0x0198($s0) ## 00000198
/* 006D4 80AD7E14 000FC2C0 */ sll $t8, $t7, 11
/* 006D8 80AD7E18 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 006DC 80AD7E1C 01D8C821 */ addu $t9, $t6, $t8
/* 006E0 80AD7E20 03214021 */ addu $t0, $t9, $at
/* 006E4 80AD7E24 8FA3005C */ lw $v1, 0x005C($sp)
/* 006E8 80AD7E28 29210017 */ slti $at, $t1, 0x0017
/* 006EC 80AD7E2C 10200086 */ beq $at, $zero, .L80AD8048
/* 006F0 80AD7E30 A60800B6 */ sh $t0, 0x00B6($s0) ## 000000B6
/* 006F4 80AD7E34 C4640024 */ lwc1 $f4, 0x0024($v1) ## 00000024
/* 006F8 80AD7E38 3C014425 */ lui $at, 0x4425 ## $at = 44250000
/* 006FC 80AD7E3C 44816000 */ mtc1 $at, $f12 ## $f12 = 660.00
/* 00700 80AD7E40 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00704 80AD7E44 C468002C */ lwc1 $f8, 0x002C($v1) ## 0000002C
/* 00708 80AD7E48 3C014452 */ lui $at, 0x4452 ## $at = 44520000
/* 0070C 80AD7E4C 44817000 */ mtc1 $at, $f14 ## $f14 = 840.00
/* 00710 80AD7E50 AFA3005C */ sw $v1, 0x005C($sp)
/* 00714 80AD7E54 3C06C58C */ lui $a2, 0xC58C ## $a2 = C58C0000
/* 00718 80AD7E58 3C07C56B */ lui $a3, 0xC56B ## $a3 = C56B0000
/* 0071C 80AD7E5C 0C032C66 */ jal Math3D_PointInSquare2D
/* 00720 80AD7E60 E7A80014 */ swc1 $f8, 0x0014($sp)
/* 00724 80AD7E64 14400021 */ bne $v0, $zero, .L80AD7EEC
/* 00728 80AD7E68 8FA3005C */ lw $v1, 0x005C($sp)
/* 0072C 80AD7E6C C4660024 */ lwc1 $f6, 0x0024($v1) ## 00000024
/* 00730 80AD7E70 3C0144C3 */ lui $at, 0x44C3 ## $at = 44C30000
/* 00734 80AD7E74 44816000 */ mtc1 $at, $f12 ## $f12 = 1560.00
/* 00738 80AD7E78 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 0073C 80AD7E7C C46A002C */ lwc1 $f10, 0x002C($v1) ## 0000002C
/* 00740 80AD7E80 3C0180AE */ lui $at, %hi(D_80AD8DF0) ## $at = 80AE0000
/* 00744 80AD7E84 3C06C57B */ lui $a2, 0xC57B ## $a2 = C57B0000
/* 00748 80AD7E88 3C07C565 */ lui $a3, 0xC565 ## $a3 = C5650000
/* 0074C 80AD7E8C 34E76000 */ ori $a3, $a3, 0x6000 ## $a3 = C5656000
/* 00750 80AD7E90 34C6E000 */ ori $a2, $a2, 0xE000 ## $a2 = C57BE000
/* 00754 80AD7E94 C42E8DF0 */ lwc1 $f14, %lo(D_80AD8DF0)($at)
/* 00758 80AD7E98 AFA3005C */ sw $v1, 0x005C($sp)
/* 0075C 80AD7E9C 0C032C66 */ jal Math3D_PointInSquare2D
/* 00760 80AD7EA0 E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 00764 80AD7EA4 14400011 */ bne $v0, $zero, .L80AD7EEC
/* 00768 80AD7EA8 8FA3005C */ lw $v1, 0x005C($sp)
/* 0076C 80AD7EAC C4700024 */ lwc1 $f16, 0x0024($v1) ## 00000024
/* 00770 80AD7EB0 3C0180AE */ lui $at, %hi(D_80AD8DF4) ## $at = 80AE0000
/* 00774 80AD7EB4 C42C8DF4 */ lwc1 $f12, %lo(D_80AD8DF4)($at)
/* 00778 80AD7EB8 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 0077C 80AD7EBC C472002C */ lwc1 $f18, 0x002C($v1) ## 0000002C
/* 00780 80AD7EC0 3C0180AE */ lui $at, %hi(D_80AD8DF8) ## $at = 80AE0000
/* 00784 80AD7EC4 3C06C53D */ lui $a2, 0xC53D ## $a2 = C53D0000
/* 00788 80AD7EC8 3C07C51C */ lui $a3, 0xC51C ## $a3 = C51C0000
/* 0078C 80AD7ECC 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = C51C4000
/* 00790 80AD7ED0 34C66000 */ ori $a2, $a2, 0x6000 ## $a2 = C53D6000
/* 00794 80AD7ED4 C42E8DF8 */ lwc1 $f14, %lo(D_80AD8DF8)($at)
/* 00798 80AD7ED8 AFA3005C */ sw $v1, 0x005C($sp)
/* 0079C 80AD7EDC 0C032C66 */ jal Math3D_PointInSquare2D
/* 007A0 80AD7EE0 E7B20014 */ swc1 $f18, 0x0014($sp)
/* 007A4 80AD7EE4 10400011 */ beq $v0, $zero, .L80AD7F2C
/* 007A8 80AD7EE8 8FA3005C */ lw $v1, 0x005C($sp)
.L80AD7EEC:
/* 007AC 80AD7EEC 920A0194 */ lbu $t2, 0x0194($s0) ## 00000194
/* 007B0 80AD7EF0 3C0180AE */ lui $at, %hi(D_80AD8E00) ## $at = 80AE0000
/* 007B4 80AD7EF4 51400008 */ beql $t2, $zero, .L80AD7F18
/* 007B8 80AD7EF8 C4660068 */ lwc1 $f6, 0x0068($v1) ## 00000068
/* 007BC 80AD7EFC 3C0180AE */ lui $at, %hi(D_80AD8DFC) ## $at = 80AE0000
/* 007C0 80AD7F00 C4288DFC */ lwc1 $f8, %lo(D_80AD8DFC)($at)
/* 007C4 80AD7F04 C4640068 */ lwc1 $f4, 0x0068($v1) ## 00000068
/* 007C8 80AD7F08 46082002 */ mul.s $f0, $f4, $f8
/* 007CC 80AD7F0C 10000005 */ beq $zero, $zero, .L80AD7F24
/* 007D0 80AD7F10 00000000 */ nop
/* 007D4 80AD7F14 C4660068 */ lwc1 $f6, 0x0068($v1) ## 00000068
.L80AD7F18:
/* 007D8 80AD7F18 C42A8E00 */ lwc1 $f10, %lo(D_80AD8E00)($at)
/* 007DC 80AD7F1C 460A3002 */ mul.s $f0, $f6, $f10
/* 007E0 80AD7F20 00000000 */ nop
.L80AD7F24:
/* 007E4 80AD7F24 1000002F */ beq $zero, $zero, .L80AD7FE4
/* 007E8 80AD7F28 C6020090 */ lwc1 $f2, 0x0090($s0) ## 00000090
.L80AD7F2C:
/* 007EC 80AD7F2C 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 007F0 80AD7F30 44818000 */ mtc1 $at, $f16 ## $f16 = 150.00
/* 007F4 80AD7F34 C6020090 */ lwc1 $f2, 0x0090($s0) ## 00000090
/* 007F8 80AD7F38 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 007FC 80AD7F3C 4610103C */ c.lt.s $f2, $f16
/* 00800 80AD7F40 00000000 */ nop
/* 00804 80AD7F44 4502000D */ bc1fl .L80AD7F7C
/* 00808 80AD7F48 44814000 */ mtc1 $at, $f8 ## $f8 = 300.00
/* 0080C 80AD7F4C 920B0194 */ lbu $t3, 0x0194($s0) ## 00000194
/* 00810 80AD7F50 3C0180AE */ lui $at, %hi(D_80AD8E04) ## $at = 80AE0000
/* 00814 80AD7F54 11600006 */ beq $t3, $zero, .L80AD7F70
/* 00818 80AD7F58 00000000 */ nop
/* 0081C 80AD7F5C C4720068 */ lwc1 $f18, 0x0068($v1) ## 00000068
/* 00820 80AD7F60 C4248E04 */ lwc1 $f4, %lo(D_80AD8E04)($at)
/* 00824 80AD7F64 46049002 */ mul.s $f0, $f18, $f4
/* 00828 80AD7F68 1000001F */ beq $zero, $zero, .L80AD7FE8
/* 0082C 80AD7F6C 3C01437A */ lui $at, 0x437A ## $at = 437A0000
.L80AD7F70:
/* 00830 80AD7F70 1000001C */ beq $zero, $zero, .L80AD7FE4
/* 00834 80AD7F74 C4600068 */ lwc1 $f0, 0x0068($v1) ## 00000068
/* 00838 80AD7F78 44814000 */ mtc1 $at, $f8 ## $f8 = 250.00
.L80AD7F7C:
/* 0083C 80AD7F7C 00000000 */ nop
/* 00840 80AD7F80 4608103C */ c.lt.s $f2, $f8
/* 00844 80AD7F84 00000000 */ nop
/* 00848 80AD7F88 4502000D */ bc1fl .L80AD7FC0
/* 0084C 80AD7F8C 920D0194 */ lbu $t5, 0x0194($s0) ## 00000194
/* 00850 80AD7F90 920C0194 */ lbu $t4, 0x0194($s0) ## 00000194
/* 00854 80AD7F94 3C0180AE */ lui $at, %hi(D_80AD8E08) ## $at = 80AE0000
/* 00858 80AD7F98 51800004 */ beql $t4, $zero, .L80AD7FAC
/* 0085C 80AD7F9C C4660068 */ lwc1 $f6, 0x0068($v1) ## 00000068
/* 00860 80AD7FA0 10000010 */ beq $zero, $zero, .L80AD7FE4
/* 00864 80AD7FA4 C4600068 */ lwc1 $f0, 0x0068($v1) ## 00000068
/* 00868 80AD7FA8 C4660068 */ lwc1 $f6, 0x0068($v1) ## 00000068
.L80AD7FAC:
/* 0086C 80AD7FAC C42A8E08 */ lwc1 $f10, %lo(D_80AD8E08)($at)
/* 00870 80AD7FB0 460A3002 */ mul.s $f0, $f6, $f10
/* 00874 80AD7FB4 1000000C */ beq $zero, $zero, .L80AD7FE8
/* 00878 80AD7FB8 3C01437A */ lui $at, 0x437A ## $at = 437A0000
/* 0087C 80AD7FBC 920D0194 */ lbu $t5, 0x0194($s0) ## 00000194
.L80AD7FC0:
/* 00880 80AD7FC0 3C014060 */ lui $at, 0x4060 ## $at = 40600000
/* 00884 80AD7FC4 51A00006 */ beql $t5, $zero, .L80AD7FE0
/* 00888 80AD7FC8 44810000 */ mtc1 $at, $f0 ## $f0 = 3.50
/* 0088C 80AD7FCC 3C014090 */ lui $at, 0x4090 ## $at = 40900000
/* 00890 80AD7FD0 44810000 */ mtc1 $at, $f0 ## $f0 = 4.50
/* 00894 80AD7FD4 10000004 */ beq $zero, $zero, .L80AD7FE8
/* 00898 80AD7FD8 3C01437A */ lui $at, 0x437A ## $at = 437A0000
/* 0089C 80AD7FDC 44810000 */ mtc1 $at, $f0 ## $f0 = 250.00
.L80AD7FE0:
/* 008A0 80AD7FE0 00000000 */ nop
.L80AD7FE4:
/* 008A4 80AD7FE4 3C01437A */ lui $at, 0x437A ## $at = 437A0000
.L80AD7FE8:
/* 008A8 80AD7FE8 44818000 */ mtc1 $at, $f16 ## $f16 = 250.00
/* 008AC 80AD7FEC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 008B0 80AD7FF0 3C0180AE */ lui $at, %hi(D_80AD8E0C) ## $at = 80AE0000
/* 008B4 80AD7FF4 46028301 */ sub.s $f12, $f16, $f2
/* 008B8 80AD7FF8 4612603C */ c.lt.s $f12, $f18
/* 008BC 80AD7FFC 00000000 */ nop
/* 008C0 80AD8000 45000003 */ bc1f .L80AD8010
/* 008C4 80AD8004 00000000 */ nop
/* 008C8 80AD8008 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 008CC 80AD800C 00000000 */ nop
.L80AD8010:
/* 008D0 80AD8010 C4248E0C */ lwc1 $f4, %lo(D_80AD8E0C)($at)
/* 008D4 80AD8014 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 008D8 80AD8018 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 008DC 80AD801C 46046202 */ mul.s $f8, $f12, $f4
/* 008E0 80AD8020 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 008E4 80AD8024 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 008E8 80AD8028 3C073FC0 */ lui $a3, 0x3FC0 ## $a3 = 3FC00000
/* 008EC 80AD802C 46064280 */ add.s $f10, $f8, $f6
/* 008F0 80AD8030 460A0000 */ add.s $f0, $f0, $f10
/* 008F4 80AD8034 44050000 */ mfc1 $a1, $f0
/* 008F8 80AD8038 0C01E107 */ jal Math_SmoothScaleMaxF
/* 008FC 80AD803C 00000000 */ nop
/* 00900 80AD8040 10000007 */ beq $zero, $zero, .L80AD8060
/* 00904 80AD8044 860F0198 */ lh $t7, 0x0198($s0) ## 00000198
.L80AD8048:
/* 00908 80AD8048 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 0090C 80AD804C 3C054060 */ lui $a1, 0x4060 ## $a1 = 40600000
/* 00910 80AD8050 3C063F00 */ lui $a2, 0x3F00 ## $a2 = 3F000000
/* 00914 80AD8054 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00918 80AD8058 3C073FC0 */ lui $a3, 0x3FC0 ## $a3 = 3FC00000
/* 0091C 80AD805C 860F0198 */ lh $t7, 0x0198($s0) ## 00000198
.L80AD8060:
/* 00920 80AD8060 3C1880AE */ lui $t8, %hi(D_80AD8C30) ## $t8 = 80AE0000
/* 00924 80AD8064 27188C30 */ addiu $t8, $t8, %lo(D_80AD8C30) ## $t8 = 80AD8C30
/* 00928 80AD8068 000F7080 */ sll $t6, $t7, 2
/* 0092C 80AD806C 01CF7023 */ subu $t6, $t6, $t7
/* 00930 80AD8070 000E7040 */ sll $t6, $t6, 1
/* 00934 80AD8074 01D82821 */ addu $a1, $t6, $t8
/* 00938 80AD8078 0C2B5E51 */ jal EnPoRelay_Vec3sToVec3f
/* 0093C 80AD807C 27A40050 */ addiu $a0, $sp, 0x0050 ## $a0 = FFFFFFF0
/* 00940 80AD8080 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00944 80AD8084 0C00B6EC */ jal func_8002DBB0
/* 00948 80AD8088 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFF0
/* 0094C 80AD808C 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00950 80AD8090 44818000 */ mtc1 $at, $f16 ## $f16 = 40.00
/* 00954 80AD8094 00000000 */ nop
/* 00958 80AD8098 4610003C */ c.lt.s $f0, $f16
/* 0095C 80AD809C 00000000 */ nop
/* 00960 80AD80A0 45020029 */ bc1fl .L80AD8148
/* 00964 80AD80A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00968 80AD80A8 86190198 */ lh $t9, 0x0198($s0) ## 00000198
/* 0096C 80AD80AC 3C0B80AE */ lui $t3, %hi(D_80AD8C30) ## $t3 = 80AE0000
/* 00970 80AD80B0 256B8C30 */ addiu $t3, $t3, %lo(D_80AD8C30) ## $t3 = 80AD8C30
/* 00974 80AD80B4 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001
/* 00978 80AD80B8 A6080198 */ sh $t0, 0x0198($s0) ## 00000198
/* 0097C 80AD80BC 86090198 */ lh $t1, 0x0198($s0) ## 00000198
/* 00980 80AD80C0 27A40050 */ addiu $a0, $sp, 0x0050 ## $a0 = FFFFFFF0
/* 00984 80AD80C4 00095080 */ sll $t2, $t1, 2
/* 00988 80AD80C8 01495023 */ subu $t2, $t2, $t1
/* 0098C 80AD80CC 000A5040 */ sll $t2, $t2, 1
/* 00990 80AD80D0 0C2B5E51 */ jal EnPoRelay_Vec3sToVec3f
/* 00994 80AD80D4 014B2821 */ addu $a1, $t2, $t3
/* 00998 80AD80D8 86020198 */ lh $v0, 0x0198($s0) ## 00000198
/* 0099C 80AD80DC 2401001C */ addiu $at, $zero, 0x001C ## $at = 0000001C
/* 009A0 80AD80E0 54410006 */ bnel $v0, $at, .L80AD80FC
/* 009A4 80AD80E4 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
/* 009A8 80AD80E8 0C2B5E93 */ jal EnPoRelay_SetupEndRace
/* 009AC 80AD80EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009B0 80AD80F0 10000015 */ beq $zero, $zero, .L80AD8148
/* 009B4 80AD80F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009B8 80AD80F8 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
.L80AD80FC:
/* 009BC 80AD80FC 14410005 */ bne $v0, $at, .L80AD8114
/* 009C0 80AD8100 8FA40064 */ lw $a0, 0x0064($sp)
/* 009C4 80AD8104 0C00B2DD */ jal Flags_SetSwitch
/* 009C8 80AD8108 24050035 */ addiu $a1, $zero, 0x0035 ## $a1 = 00000035
/* 009CC 80AD810C 1000000E */ beq $zero, $zero, .L80AD8148
/* 009D0 80AD8110 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AD8114:
/* 009D4 80AD8114 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 009D8 80AD8118 14410005 */ bne $v0, $at, .L80AD8130
/* 009DC 80AD811C 8FA40064 */ lw $a0, 0x0064($sp)
/* 009E0 80AD8120 0C00B2DD */ jal Flags_SetSwitch
/* 009E4 80AD8124 24050036 */ addiu $a1, $zero, 0x0036 ## $a1 = 00000036
/* 009E8 80AD8128 10000007 */ beq $zero, $zero, .L80AD8148
/* 009EC 80AD812C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AD8130:
/* 009F0 80AD8130 24010019 */ addiu $at, $zero, 0x0019 ## $at = 00000019
/* 009F4 80AD8134 14410003 */ bne $v0, $at, .L80AD8144
/* 009F8 80AD8138 8FA40064 */ lw $a0, 0x0064($sp)
/* 009FC 80AD813C 0C00B2DD */ jal Flags_SetSwitch
/* 00A00 80AD8140 24050037 */ addiu $a1, $zero, 0x0037 ## $a1 = 00000037
.L80AD8144:
/* 00A04 80AD8144 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AD8148:
/* 00A08 80AD8148 0C00B6B0 */ jal func_8002DAC0
/* 00A0C 80AD814C 27A50050 */ addiu $a1, $sp, 0x0050 ## $a1 = FFFFFFF0
/* 00A10 80AD8150 A602019A */ sh $v0, 0x019A($s0) ## 0000019A
/* 00A14 80AD8154 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00A18 80AD8158 0C00BE5D */ jal func_8002F974
/* 00A1C 80AD815C 24053072 */ addiu $a1, $zero, 0x3072 ## $a1 = 00003072
/* 00A20 80AD8160 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00A24 80AD8164 8FB00030 */ lw $s0, 0x0030($sp)
/* 00A28 80AD8168 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
/* 00A2C 80AD816C 03E00008 */ jr $ra
/* 00A30 80AD8170 00000000 */ nop

View File

@ -1,188 +0,0 @@
glabel EnPoSisters_Update
/* 0333C 80ADC2CC 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 03340 80ADC2D0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 03344 80ADC2D4 AFB00020 */ sw $s0, 0x0020($sp)
/* 03348 80ADC2D8 AFA50054 */ sw $a1, 0x0054($sp)
/* 0334C 80ADC2DC 908202BC */ lbu $v0, 0x02BC($a0) ## 000002BC
/* 03350 80ADC2E0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 03354 80ADC2E4 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 03358 80ADC2E8 11C00003 */ beq $t6, $zero, .L80ADC2F8
/* 0335C 80ADC2EC 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
/* 03360 80ADC2F0 0C2B655A */ jal func_80AD9568
/* 03364 80ADC2F4 A08F02BC */ sb $t7, 0x02BC($a0) ## 000002BC
.L80ADC2F8:
/* 03368 80ADC2F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0336C 80ADC2FC 0C2B7043 */ jal func_80ADC10C
/* 03370 80ADC300 8FA50054 */ lw $a1, 0x0054($sp)
/* 03374 80ADC304 92180199 */ lbu $t8, 0x0199($s0) ## 00000199
/* 03378 80ADC308 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0337C 80ADC30C 33190004 */ andi $t9, $t8, 0x0004 ## $t9 = 00000000
/* 03380 80ADC310 53200004 */ beql $t9, $zero, .L80ADC324
/* 03384 80ADC314 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 03388 80ADC318 0C2B700D */ jal func_80ADC034
/* 0338C 80ADC31C 8FA50054 */ lw $a1, 0x0054($sp)
/* 03390 80ADC320 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
.L80ADC324:
/* 03394 80ADC324 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 03398 80ADC328 8FA50054 */ lw $a1, 0x0054($sp)
/* 0339C 80ADC32C 0320F809 */ jalr $ra, $t9
/* 033A0 80ADC330 00000000 */ nop
/* 033A4 80ADC334 92020199 */ lbu $v0, 0x0199($s0) ## 00000199
/* 033A8 80ADC338 3048001F */ andi $t0, $v0, 0x001F ## $t0 = 00000000
/* 033AC 80ADC33C 11000082 */ beq $t0, $zero, .L80ADC548
/* 033B0 80ADC340 30490008 */ andi $t1, $v0, 0x0008 ## $t1 = 00000000
/* 033B4 80ADC344 11200003 */ beq $t1, $zero, .L80ADC354
/* 033B8 80ADC348 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 033BC 80ADC34C 0C2B68D7 */ jal func_80ADA35C
/* 033C0 80ADC350 8FA50054 */ lw $a1, 0x0054($sp)
.L80ADC354:
/* 033C4 80ADC354 0C00B638 */ jal Actor_MoveForward
/* 033C8 80ADC358 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 033CC 80ADC35C 920A0199 */ lbu $t2, 0x0199($s0) ## 00000199
/* 033D0 80ADC360 8FA40054 */ lw $a0, 0x0054($sp)
/* 033D4 80ADC364 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 033D8 80ADC368 314B0010 */ andi $t3, $t2, 0x0010 ## $t3 = 00000000
/* 033DC 80ADC36C 1160000C */ beq $t3, $zero, .L80ADC3A0
/* 033E0 80ADC370 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 033E4 80ADC374 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 033E8 80ADC378 44810000 */ mtc1 $at, $f0 ## $f0 = 20.00
/* 033EC 80ADC37C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 033F0 80ADC380 240C0005 */ addiu $t4, $zero, 0x0005 ## $t4 = 00000005
/* 033F4 80ADC384 44060000 */ mfc1 $a2, $f0
/* 033F8 80ADC388 44070000 */ mfc1 $a3, $f0
/* 033FC 80ADC38C AFAC0014 */ sw $t4, 0x0014($sp)
/* 03400 80ADC390 0C00B92D */ jal func_8002E4B4
/* 03404 80ADC394 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 03408 80ADC398 10000013 */ beq $zero, $zero, .L80ADC3E8
/* 0340C 80ADC39C 260502AC */ addiu $a1, $s0, 0x02AC ## $a1 = 000002AC
.L80ADC3A0:
/* 03410 80ADC3A0 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 03414 80ADC3A4 44815000 */ mtc1 $at, $f10 ## $f10 = 0.00
/* 03418 80ADC3A8 8FA40054 */ lw $a0, 0x0054($sp)
/* 0341C 80ADC3AC E7A60038 */ swc1 $f6, 0x0038($sp)
/* 03420 80ADC3B0 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 03424 80ADC3B4 27AD0038 */ addiu $t5, $sp, 0x0038 ## $t5 = FFFFFFE8
/* 03428 80ADC3B8 26050078 */ addiu $a1, $s0, 0x0078 ## $a1 = 00000078
/* 0342C 80ADC3BC 460A4400 */ add.s $f16, $f8, $f10
/* 03430 80ADC3C0 27A60034 */ addiu $a2, $sp, 0x0034 ## $a2 = FFFFFFE4
/* 03434 80ADC3C4 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 03438 80ADC3C8 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 0343C 80ADC3CC E7B0003C */ swc1 $f16, 0x003C($sp)
/* 03440 80ADC3D0 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 03444 80ADC3D4 AFAD0010 */ sw $t5, 0x0010($sp)
/* 03448 80ADC3D8 0C00F269 */ jal func_8003C9A4
/* 0344C 80ADC3DC E7B20040 */ swc1 $f18, 0x0040($sp)
/* 03450 80ADC3E0 E6000080 */ swc1 $f0, 0x0080($s0) ## 00000080
/* 03454 80ADC3E4 260502AC */ addiu $a1, $s0, 0x02AC ## $a1 = 000002AC
.L80ADC3E8:
/* 03458 80ADC3E8 AFA50028 */ sw $a1, 0x0028($sp)
/* 0345C 80ADC3EC 0C0189B7 */ jal Collider_CylinderUpdate
/* 03460 80ADC3F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 03464 80ADC3F4 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
/* 03468 80ADC3F8 3C0480AE */ lui $a0, %hi(func_80ADA8C0) ## $a0 = 80AE0000
/* 0346C 80ADC3FC 2484A8C0 */ addiu $a0, $a0, %lo(func_80ADA8C0) ## $a0 = 80ADA8C0
/* 03470 80ADC400 10820004 */ beq $a0, $v0, .L80ADC414
/* 03474 80ADC404 3C0E80AE */ lui $t6, %hi(func_80ADA7F0) ## $t6 = 80AE0000
/* 03478 80ADC408 25CEA7F0 */ addiu $t6, $t6, %lo(func_80ADA7F0) ## $t6 = 80ADA7F0
/* 0347C 80ADC40C 15C2000D */ bne $t6, $v0, .L80ADC444
/* 03480 80ADC410 3C0880AE */ lui $t0, %hi(func_80ADAFC0) ## $t0 = 80AE0000
.L80ADC414:
/* 03484 80ADC414 920F0198 */ lbu $t7, 0x0198($s0) ## 00000198
/* 03488 80ADC418 24190008 */ addiu $t9, $zero, 0x0008 ## $t9 = 00000008
/* 0348C 80ADC41C 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 03490 80ADC420 330200FF */ andi $v0, $t8, 0x00FF ## $v0 = 00000001
/* 03494 80ADC424 28410009 */ slti $at, $v0, 0x0009
/* 03498 80ADC428 14200003 */ bne $at, $zero, .L80ADC438
/* 0349C 80ADC42C A2180198 */ sb $t8, 0x0198($s0) ## 00000198
/* 034A0 80ADC430 10000002 */ beq $zero, $zero, .L80ADC43C
/* 034A4 80ADC434 A2190198 */ sb $t9, 0x0198($s0) ## 00000198
.L80ADC438:
/* 034A8 80ADC438 A2020198 */ sb $v0, 0x0198($s0) ## 00000198
.L80ADC43C:
/* 034AC 80ADC43C 10000010 */ beq $zero, $zero, .L80ADC480
/* 034B0 80ADC440 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
.L80ADC444:
/* 034B4 80ADC444 2508AFC0 */ addiu $t0, $t0, %lo(func_80ADAFC0) ## $t0 = 80ADAFC0
/* 034B8 80ADC448 1102000D */ beq $t0, $v0, .L80ADC480
/* 034BC 80ADC44C 00000000 */ nop
/* 034C0 80ADC450 92030198 */ lbu $v1, 0x0198($s0) ## 00000198
/* 034C4 80ADC454 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 034C8 80ADC458 2463FFFF */ addiu $v1, $v1, 0xFFFF ## $v1 = FFFFFFFF
/* 034CC 80ADC45C 00031C00 */ sll $v1, $v1, 16
/* 034D0 80ADC460 00031C03 */ sra $v1, $v1, 16
/* 034D4 80ADC464 5C600005 */ bgtzl $v1, .L80ADC47C
/* 034D8 80ADC468 A2030198 */ sb $v1, 0x0198($s0) ## 00000198
/* 034DC 80ADC46C A2090198 */ sb $t1, 0x0198($s0) ## 00000198
/* 034E0 80ADC470 10000003 */ beq $zero, $zero, .L80ADC480
/* 034E4 80ADC474 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
/* 034E8 80ADC478 A2030198 */ sb $v1, 0x0198($s0) ## 00000198
.L80ADC47C:
/* 034EC 80ADC47C 8E020190 */ lw $v0, 0x0190($s0) ## 00000190
.L80ADC480:
/* 034F0 80ADC480 5482000C */ bnel $a0, $v0, .L80ADC4B4
/* 034F4 80ADC484 920C0199 */ lbu $t4, 0x0199($s0) ## 00000199
/* 034F8 80ADC488 8E0A0004 */ lw $t2, 0x0004($s0) ## 00000004
/* 034FC 80ADC48C 3C010100 */ lui $at, 0x0100 ## $at = 01000000
/* 03500 80ADC490 8FA40054 */ lw $a0, 0x0054($sp)
/* 03504 80ADC494 01415825 */ or $t3, $t2, $at ## $t3 = 01000000
/* 03508 80ADC498 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0350C 80ADC49C AE0B0004 */ sw $t3, 0x0004($s0) ## 00000004
/* 03510 80ADC4A0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 03514 80ADC4A4 8FA60028 */ lw $a2, 0x0028($sp)
/* 03518 80ADC4A8 0C0175E7 */ jal CollisionCheck_SetAT
## CollisionCheck_setAT
/* 0351C 80ADC4AC 00812821 */ addu $a1, $a0, $at
/* 03520 80ADC4B0 920C0199 */ lbu $t4, 0x0199($s0) ## 00000199
.L80ADC4B4:
/* 03524 80ADC4B4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 03528 80ADC4B8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 0352C 80ADC4BC 318D0001 */ andi $t5, $t4, 0x0001 ## $t5 = 00000000
/* 03530 80ADC4C0 11A00004 */ beq $t5, $zero, .L80ADC4D4
/* 03534 80ADC4C4 8FA40054 */ lw $a0, 0x0054($sp)
/* 03538 80ADC4C8 00812821 */ addu $a1, $a0, $at
/* 0353C 80ADC4CC 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 03540 80ADC4D0 8FA60028 */ lw $a2, 0x0028($sp)
.L80ADC4D4:
/* 03544 80ADC4D4 8E180190 */ lw $t8, 0x0190($s0) ## 00000190
/* 03548 80ADC4D8 3C0F80AE */ lui $t7, %hi(func_80ADB338) ## $t7 = 80AE0000
/* 0354C 80ADC4DC 25EFB338 */ addiu $t7, $t7, %lo(func_80ADB338) ## $t7 = 80ADB338
/* 03550 80ADC4E0 11F80006 */ beq $t7, $t8, .L80ADC4FC
/* 03554 80ADC4E4 8FA40054 */ lw $a0, 0x0054($sp)
/* 03558 80ADC4E8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0355C 80ADC4EC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 03560 80ADC4F0 00812821 */ addu $a1, $a0, $at
/* 03564 80ADC4F4 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 03568 80ADC4F8 8FA60028 */ lw $a2, 0x0028($sp)
.L80ADC4FC:
/* 0356C 80ADC4FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 03570 80ADC500 0C00B56E */ jal Actor_SetHeight
/* 03574 80ADC504 3C054220 */ lui $a1, 0x4220 ## $a1 = 42200000
/* 03578 80ADC508 8E090190 */ lw $t1, 0x0190($s0) ## 00000190
/* 0357C 80ADC50C 3C0880AE */ lui $t0, %hi(func_80ADAC70) ## $t0 = 80AE0000
/* 03580 80ADC510 2508AC70 */ addiu $t0, $t0, %lo(func_80ADAC70) ## $t0 = 80ADAC70
/* 03584 80ADC514 55090007 */ bnel $t0, $t1, .L80ADC534
/* 03588 80ADC518 920C0199 */ lbu $t4, 0x0199($s0) ## 00000199
/* 0358C 80ADC51C 860A0032 */ lh $t2, 0x0032($s0) ## 00000032
/* 03590 80ADC520 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 03594 80ADC524 01415821 */ addu $t3, $t2, $at
/* 03598 80ADC528 10000007 */ beq $zero, $zero, .L80ADC548
/* 0359C 80ADC52C A60B00B6 */ sh $t3, 0x00B6($s0) ## 000000B6
/* 035A0 80ADC530 920C0199 */ lbu $t4, 0x0199($s0) ## 00000199
.L80ADC534:
/* 035A4 80ADC534 318D0002 */ andi $t5, $t4, 0x0002 ## $t5 = 00000000
/* 035A8 80ADC538 51A00004 */ beql $t5, $zero, .L80ADC54C
/* 035AC 80ADC53C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 035B0 80ADC540 860E0032 */ lh $t6, 0x0032($s0) ## 00000032
/* 035B4 80ADC544 A60E00B6 */ sh $t6, 0x00B6($s0) ## 000000B6
.L80ADC548:
/* 035B8 80ADC548 8FBF0024 */ lw $ra, 0x0024($sp)
.L80ADC54C:
/* 035BC 80ADC54C 8FB00020 */ lw $s0, 0x0020($sp)
/* 035C0 80ADC550 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 035C4 80ADC554 03E00008 */ jr $ra
/* 035C8 80ADC558 00000000 */ nop

View File

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

View File

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

View File

@ -1122,7 +1122,7 @@ Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b);
s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4); s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4);
void func_800803F0(GlobalContext* globalCtx, s16 camId); void func_800803F0(GlobalContext* globalCtx, s16 camId);
s16 func_80080480(GlobalContext* globalCtx, Actor* actor); s16 func_80080480(GlobalContext* globalCtx, Actor* actor);
UNK_TYPE func_800806BC(GlobalContext* globalCtx, Actor* actor, UNK_TYPE); void func_800806BC(GlobalContext* globalCtx, Actor* actor, u16 sfxId);
UNK_TYPE func_80080728(GlobalContext* globalCtx, u8 actorType); UNK_TYPE func_80080728(GlobalContext* globalCtx, u8 actorType);
void func_80080788(UNK_TYPE, UNK_TYPE); void func_80080788(UNK_TYPE, UNK_TYPE);
void Map_SavePlayerInitialInfo(GlobalContext* globalCtx); void Map_SavePlayerInitialInfo(GlobalContext* globalCtx);

8
spec
View File

@ -1542,11 +1542,7 @@ endseg
beginseg beginseg
name "ovl_Demo_Gt" name "ovl_Demo_Gt"
include "build/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" include "build/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" include "build/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o"
#else
include "build/data/overlays/actors/z_demo_gt.reloc.o"
#endif
endseg endseg
beginseg beginseg
@ -2860,11 +2856,7 @@ endseg
beginseg beginseg
name "ovl_En_Po_Relay" name "ovl_En_Po_Relay"
include "build/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" include "build/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" include "build/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o"
#else
include "build/data/overlays/actors/z_en_po_relay.reloc.o"
#endif
endseg endseg
beginseg beginseg

View File

@ -69,7 +69,7 @@ static ColliderJntSphItemInit sJntSphItemsInit[] = {
static ColliderJntSphInit sJntSphInit = { static ColliderJntSphInit sJntSphInit = {
{ COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x20, COLSHAPE_JNTSPH }, { COLTYPE_UNK10, 0x00, 0x09, 0x39, 0x20, COLSHAPE_JNTSPH },
1, 1,
&sJntSphItemsInit, sJntSphItemsInit,
}; };
static InitChainEntry sInitChain[] = { static InitChainEntry sInitChain[] = {
@ -82,22 +82,23 @@ static Vec3f D_8086E0E0 = { 0, 140.0f, 0 };
void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) { void func_8086D010(BgBdanSwitch* this, GlobalContext* globalCtx, u32 collision, DynaPolyMoveFlag flag) {
s16 pad1; s16 pad1;
u32 local_c = 0; ColHeader* colHeader = NULL;
s16 pad2; s16 pad2;
DynaPolyInfo_SetActorMove(&this->actor, flag); DynaPolyInfo_SetActorMove(&this->dyna, flag);
DynaPolyInfo_Alloc(collision, &local_c); DynaPolyInfo_Alloc(collision, &colHeader);
this->dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->actor, local_c); this->dyna.dynaPolyId =
if (this->dynaPolyId == 0x32) { DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
if (this->dyna.dynaPolyId == 0x32) {
osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_bdan_switch.c", 325, osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_bdan_switch.c", 325,
this->actor.id, this->actor.params); this->dyna.actor.id, this->dyna.actor.params);
} }
} }
void func_8086D098(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D098(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor* actor = &this->actor; Actor* actor = &this->dyna.actor;
Collider_InitJntSph(globalCtx, &this->collider); Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph(globalCtx, &this->collider, actor, &sJntSphInit, &this->colliderItems); Collider_SetJntSph(globalCtx, &this->collider, actor, &sJntSphInit, this->colliderItems);
} }
void func_8086D0EC(BgBdanSwitch* this) { void func_8086D0EC(BgBdanSwitch* this) {
@ -107,21 +108,21 @@ void func_8086D0EC(BgBdanSwitch* this) {
this->unk_1CC += 0xFA0; this->unk_1CC += 0xFA0;
} }
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case BLUE: case BLUE:
case YELLOW_HEAVY: case YELLOW_HEAVY:
case YELLOW: case YELLOW:
this->unk_1D4 = ((Math_Coss(this->unk_1CC) * 0.5f) + 8.833334f) * 0.012f; this->unk_1D4 = ((Math_Coss(this->unk_1CC) * 0.5f) + 8.833334f) * 0.012f;
this->unk_1D0 = ((Math_Coss(this->unk_1CC) * 0.5f) + 20.5f) * (this->unk_1C8 * 0.0050000004f); this->unk_1D0 = ((Math_Coss(this->unk_1CC) * 0.5f) + 20.5f) * (this->unk_1C8 * 0.0050000004f);
this->actor.scale.y = this->unk_1C8 * 0.1f; this->dyna.actor.scale.y = this->unk_1C8 * 0.1f;
break; break;
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
this->unk_1D4 = ((Math_Coss(this->unk_1CC) * 0.5f) + (43.0f / 6.0f)) * 0.0075000003f; this->unk_1D4 = ((Math_Coss(this->unk_1CC) * 0.5f) + (43.0f / 6.0f)) * 0.0075000003f;
this->unk_1D0 = ((Math_Coss(this->unk_1CC) * 0.5f) + 20.5f) * (this->unk_1C8 * 0.0050000004f); this->unk_1D0 = ((Math_Coss(this->unk_1CC) * 0.5f) + 20.5f) * (this->unk_1C8 * 0.0050000004f);
this->actor.scale.y = this->unk_1C8 * 0.1f; this->dyna.actor.scale.y = this->unk_1C8 * 0.1f;
} }
this->actor.shape.unk_08 = 1.2f / this->unk_1D0; this->dyna.actor.shape.unk_08 = 1.2f / this->unk_1D0;
} }
void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) { void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
@ -130,17 +131,17 @@ void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
s16 type; s16 type;
s32 flag; s32 flag;
type = this->actor.params & 0xFF; type = this->dyna.actor.params & 0xFF;
Actor_ProcessInitChain(&this->actor, sInitChain); Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
if (type == YELLOW_TALL_1 || type == YELLOW_TALL_2) { if (type == YELLOW_TALL_1 || type == YELLOW_TALL_2) {
this->actor.scale.z = 0.05f; this->dyna.actor.scale.z = 0.05f;
this->actor.scale.x = 0.05f; this->dyna.actor.scale.x = 0.05f;
} else { } else {
this->actor.scale.z = 0.1f; this->dyna.actor.scale.z = 0.1f;
this->actor.scale.x = 0.1f; this->dyna.actor.scale.x = 0.1f;
} }
this->actor.scale.y = 0.0f; this->dyna.actor.scale.y = 0.0f;
Actor_SetHeight(&this->actor, 10.0f); Actor_SetHeight(&this->dyna.actor, 10.0f);
switch (type) { switch (type) {
case BLUE: case BLUE:
@ -151,11 +152,11 @@ void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
func_8086D098(this, globalCtx); func_8086D098(this, globalCtx);
this->actor.flags |= 1; this->dyna.actor.flags |= 1;
this->actor.unk_1F = 4; this->dyna.actor.unk_1F = 4;
} }
flag = Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); flag = Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
switch (type) { switch (type) {
case BLUE: case BLUE:
@ -182,21 +183,22 @@ void BgBdanSwitch_Init(Actor* thisx, GlobalContext* globalCtx) {
} }
break; break;
default: default:
osSyncPrintf("不正な ARG_DATA(arg_data 0x%04x)(%s %d)\n", this->actor.params, "../z_bg_bdan_switch.c", 454); osSyncPrintf("不正な ARG_DATA(arg_data 0x%04x)(%s %d)\n", this->dyna.actor.params, "../z_bg_bdan_switch.c",
Actor_Kill(&this->actor); 454);
Actor_Kill(&this->dyna.actor);
return; return;
} }
osSyncPrintf("(巨大魚ダンジョン 専用スイッチ)(arg_data 0x%04x)\n", this->actor.params); osSyncPrintf("(巨大魚ダンジョン 専用スイッチ)(arg_data 0x%04x)\n", this->dyna.actor.params);
} }
void BgBdanSwitch_Destroy(Actor* thisx, GlobalContext* globalCtx) { void BgBdanSwitch_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgBdanSwitch* this = THIS; BgBdanSwitch* this = THIS;
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case BLUE: case BLUE:
case YELLOW_HEAVY: case YELLOW_HEAVY:
case YELLOW: case YELLOW:
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dynaPolyId); DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
break; break;
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
@ -208,22 +210,22 @@ void func_8086D4B4(BgBdanSwitch* this, GlobalContext* globalCtx) {
s32 pad; s32 pad;
s32 type; s32 type;
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
type = this->actor.params & 0xFF; type = this->dyna.actor.params & 0xFF;
Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); Flags_SetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
if (type == BLUE || type == YELLOW_TALL_2) { if (type == BLUE || type == YELLOW_TALL_2) {
func_800806BC(globalCtx, &this->actor, 0x4807); func_800806BC(globalCtx, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
} else { } else {
func_800806BC(globalCtx, &this->actor, 0x4802); func_800806BC(globalCtx, &this->dyna.actor, NA_SE_SY_CORRECT_CHIME);
} }
} }
} }
void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D548(BgBdanSwitch* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) { if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
Flags_UnsetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F); Flags_UnsetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
if ((this->actor.params & 0xFF) == YELLOW_TALL_2) { if ((this->dyna.actor.params & 0xFF) == YELLOW_TALL_2) {
func_800806BC(globalCtx, &this->actor, 0x4807); func_800806BC(globalCtx, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
} }
} }
} }
@ -234,15 +236,15 @@ void func_8086D5C4(BgBdanSwitch* this) {
} }
void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D5E0(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case BLUE: case BLUE:
if (func_800435B4(&this->actor)) { if (func_800435B4(&this->dyna)) {
func_8086D67C(this); func_8086D67C(this);
func_8086D4B4(this, globalCtx); func_8086D4B4(this, globalCtx);
} }
break; break;
case YELLOW: case YELLOW:
if (func_8004356C(&this->actor)) { if (func_8004356C(&this->dyna)) {
func_8086D67C(this); func_8086D67C(this);
func_8086D4B4(this, globalCtx); func_8086D4B4(this, globalCtx);
} }
@ -255,12 +257,12 @@ void func_8086D67C(BgBdanSwitch* this) {
} }
void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D694(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) { if ((func_8005B198() == this->dyna.actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.2f; this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.1f) { if (this->unk_1C8 <= 0.1f) {
func_8086D730(this); func_8086D730(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
func_800AA000(this->actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA); func_800AA000(this->dyna.actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA);
} }
} }
} }
@ -272,9 +274,9 @@ void func_8086D730(BgBdanSwitch* this) {
} }
void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case BLUE: case BLUE:
if (!func_800435B4(&this->actor)) { if (!func_800435B4(&this->dyna)) {
if (this->unk_1D8 <= 0) { if (this->unk_1D8 <= 0) {
func_8086D7FC(this); func_8086D7FC(this);
func_8086D548(this, globalCtx); func_8086D548(this, globalCtx);
@ -284,7 +286,7 @@ void func_8086D754(BgBdanSwitch* this, GlobalContext* globalCtx) {
} }
break; break;
case YELLOW: case YELLOW:
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
func_8086D7FC(this); func_8086D7FC(this);
} }
} }
@ -298,7 +300,7 @@ void func_8086D80C(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 += 0.2f; this->unk_1C8 += 0.2f;
if (this->unk_1C8 >= 1.0f) { if (this->unk_1C8 >= 1.0f) {
func_8086D5C4(this); func_8086D5C4(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
} }
} }
@ -308,7 +310,7 @@ void func_8086D86C(BgBdanSwitch* this) {
} }
void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D888(BgBdanSwitch* this, GlobalContext* globalCtx) {
if (func_8004356C(&this->actor)) { if (func_8004356C(&this->dyna)) {
func_8086D8BC(this); func_8086D8BC(this);
} }
} }
@ -321,8 +323,8 @@ void func_8086D8CC(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 -= 0.2f; this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.6f) { if (this->unk_1C8 <= 0.6f) {
func_8086D9F8(this); func_8086D9F8(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
func_800AA000(this->actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA); func_800AA000(this->dyna.actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA);
} }
} }
@ -332,12 +334,12 @@ void func_8086D944(BgBdanSwitch* this) {
} }
void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086D95C(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) { if ((func_8005B198() == this->dyna.actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.2f; this->unk_1C8 -= 0.2f;
if (this->unk_1C8 <= 0.1f) { if (this->unk_1C8 <= 0.1f) {
func_8086DB24(this); func_8086DB24(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
func_800AA000(this->actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA); func_800AA000(this->dyna.actor.xyzDistFromLinkSq, 0x78, 0x14, 0xA);
} }
} }
} }
@ -351,7 +353,7 @@ void func_8086D9F8(BgBdanSwitch* this) {
void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086DA1C(BgBdanSwitch* this, GlobalContext* globalCtx) {
Actor* heldActor = PLAYER->heldActor; Actor* heldActor = PLAYER->heldActor;
if (func_8004356C(&this->actor)) { if (func_8004356C(&this->dyna)) {
if (heldActor != NULL && heldActor->id == ACTOR_EN_RU1) { if (heldActor != NULL && heldActor->id == ACTOR_EN_RU1) {
if (this->unk_1D8 <= 0) { if (this->unk_1D8 <= 0) {
func_8086D944(this); func_8086D944(this);
@ -375,7 +377,7 @@ void func_8086DAC4(BgBdanSwitch* this, GlobalContext* globalCtx) {
this->unk_1C8 += 0.2f; this->unk_1C8 += 0.2f;
if (this->unk_1C8 >= 1.0f) { if (this->unk_1C8 >= 1.0f) {
func_8086D86C(this); func_8086D86C(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
} }
} }
@ -393,7 +395,7 @@ void func_8086DB4C(BgBdanSwitch* this) {
} }
void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086DB68(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
default: default:
return; return;
case YELLOW_TALL_1: case YELLOW_TALL_1:
@ -418,11 +420,11 @@ void func_8086DC30(BgBdanSwitch* this) {
} }
void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086DC48(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((func_8005B198() == this->actor.type) || (this->unk_1DA <= 0)) { if ((func_8005B198() == this->dyna.actor.type) || (this->unk_1DA <= 0)) {
this->unk_1C8 -= 0.3f; this->unk_1C8 -= 0.3f;
if (this->unk_1C8 <= 1.0f) { if (this->unk_1C8 <= 1.0f) {
func_8086DCCC(this); func_8086DCCC(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
} }
} }
} }
@ -433,9 +435,9 @@ void func_8086DCCC(BgBdanSwitch* this) {
} }
void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086DCE8(BgBdanSwitch* this, GlobalContext* globalCtx) {
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case YELLOW_TALL_1: case YELLOW_TALL_1:
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
func_8086DDA8(this); func_8086DDA8(this);
} }
break; break;
@ -454,12 +456,12 @@ void func_8086DDA8(BgBdanSwitch* this) {
} }
void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx) { void func_8086DDC0(BgBdanSwitch* this, GlobalContext* globalCtx) {
if ((((this->actor.params & 0xFF) != YELLOW_TALL_2) || (func_8005B198() == this->actor.type)) || if ((((this->dyna.actor.params & 0xFF) != YELLOW_TALL_2) || (func_8005B198() == this->dyna.actor.type)) ||
(this->unk_1DA <= 0)) { (this->unk_1DA <= 0)) {
this->unk_1C8 += 0.3f; this->unk_1C8 += 0.3f;
if (this->unk_1C8 >= 2.0f) { if (this->unk_1C8 >= 2.0f) {
func_8086DB4C(this); func_8086DB4C(this);
Audio_PlayActorSound2(&this->actor, NA_SE_EV_FOOT_SWITCH); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_FOOT_SWITCH);
} }
} }
} }
@ -474,7 +476,7 @@ void BgBdanSwitch_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
this->actionFunc(this, globalCtx); this->actionFunc(this, globalCtx);
func_8086D0EC(this); func_8086D0EC(this);
type = this->actor.params & 0xFF; type = this->dyna.actor.params & 0xFF;
if (type != 3 && type != 4) { if (type != 3 && type != 4) {
this->unk_1D8 -= 1; this->unk_1D8 -= 1;
return; return;
@ -486,13 +488,14 @@ void BgBdanSwitch_Update(Actor* thisx, GlobalContext* globalCtx) {
this->collider.base.acFlags &= 0xFFFD; this->collider.base.acFlags &= 0xFFFD;
this->unk_1DC = temp; this->unk_1DC = temp;
this->collider.list[0].dim.modelSphere.radius = this->unk_1D4 * 370.0f; this->collider.list[0].dim.modelSphere.radius = this->unk_1D4 * 370.0f;
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider); CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider); CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
} }
void func_8086DF58(BgBdanSwitch* this, GlobalContext* globalCtx, Gfx* dlist) { void func_8086DF58(BgBdanSwitch* this, GlobalContext* globalCtx, Gfx* dlist) {
func_800D1694(this->actor.posRot.pos.x, this->actor.posRot.pos.y + (this->actor.shape.unk_08 * this->unk_1D0), func_800D1694(this->dyna.actor.posRot.pos.x,
this->actor.posRot.pos.z, &this->actor.shape.rot); this->dyna.actor.posRot.pos.y + (this->dyna.actor.shape.unk_08 * this->unk_1D0),
this->dyna.actor.posRot.pos.z, &this->dyna.actor.shape.rot);
Matrix_Scale(this->unk_1D4, this->unk_1D0, this->unk_1D4, MTXMODE_APPLY); Matrix_Scale(this->unk_1D4, this->unk_1D0, this->unk_1D4, MTXMODE_APPLY);
Gfx_DrawDListOpa(globalCtx, dlist); Gfx_DrawDListOpa(globalCtx, dlist);
} }
@ -500,18 +503,18 @@ void func_8086DF58(BgBdanSwitch* this, GlobalContext* globalCtx, Gfx* dlist) {
void BgBdanSwitch_Draw(Actor* thisx, GlobalContext* globalCtx) { void BgBdanSwitch_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgBdanSwitch* this = THIS; BgBdanSwitch* this = THIS;
switch (this->actor.params & 0xFF) { switch (this->dyna.actor.params & 0xFF) {
case YELLOW_HEAVY: case YELLOW_HEAVY:
case YELLOW: case YELLOW:
func_8086DF58(this, globalCtx, &D_060061A0); func_8086DF58(this, globalCtx, D_060061A0);
break; break;
case YELLOW_TALL_1: case YELLOW_TALL_1:
case YELLOW_TALL_2: case YELLOW_TALL_2:
func_8086DF58(this, globalCtx, &D_060061A0); func_8086DF58(this, globalCtx, D_060061A0);
func_800628A4(0, &this->collider); func_800628A4(0, &this->collider);
Matrix_MultVec3f(&D_8086E0E0, &this->actor.posRot2); Matrix_MultVec3f(&D_8086E0E0, &this->dyna.actor.posRot2.pos);
break; break;
case BLUE: case BLUE:
func_8086DF58(this, globalCtx, &D_06005A20); func_8086DF58(this, globalCtx, D_06005A20);
} }
} }

View File

@ -18,13 +18,7 @@ struct BgBdanSwitch;
typedef void (*BgBdanSwitchActionFunc)(struct BgBdanSwitch*, GlobalContext*); typedef void (*BgBdanSwitchActionFunc)(struct BgBdanSwitch*, GlobalContext*);
typedef struct BgBdanSwitch { typedef struct BgBdanSwitch {
/* 0x0000 */ Actor actor; /* 0x0000 */ DynaPolyActor dyna;
/* 0x014C */ u32 dynaPolyId;
/* 0x0150 */ f32 unk_150;
/* 0x0154 */ f32 unk_154;
/* 0x0158 */ u32 unk_158;
/* 0x015C */ u32 unk_15C;
/* 0x0160 */ u8 unk_160;
/* 0x0164 */ BgBdanSwitchActionFunc actionFunc; /* 0x0164 */ BgBdanSwitchActionFunc actionFunc;
/* 0x0168 */ ColliderJntSph collider; /* 0x0168 */ ColliderJntSph collider;
/* 0x0188 */ ColliderJntSphItem colliderItems[1]; /* 0x0188 */ ColliderJntSphItem colliderItems[1];

View File

@ -270,10 +270,9 @@ void func_8097E1D4(GlobalContext* globalCtx, Vec3f* arg1, s16 arg2) {
} }
} }
#ifdef NON_MATCHING
void func_8097E454(GlobalContext* globalCtx, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* accel, f32 arg4, f32 scale, void func_8097E454(GlobalContext* globalCtx, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* accel, f32 arg4, f32 scale,
s32 arg6, s32 arg7, s16 life) { s32 arg6, s32 arg7, s16 life) {
s32 pad2[4]; s32 pad2[3];
s16 increment; s16 increment;
s32 frames; s32 frames;
s32 i; s32 i;
@ -283,8 +282,8 @@ void func_8097E454(GlobalContext* globalCtx, Vec3f* spawnerPos, Vec3f* velocity,
Vec3f pos; Vec3f pos;
if ((func_800C0D28(globalCtx) == 0) && (arg7 > 0) && (arg6 > 0)) { if ((func_800C0D28(globalCtx) == 0) && (arg7 > 0) && (arg6 > 0)) {
frames = 0x10000 * (ABS((s32)globalCtx->gameplayFrames) % arg7); frames = (ABS((s32)globalCtx->gameplayFrames) % arg7);
phi_s0 = frames / arg6; phi_s0 = 0x10000 * frames / arg6;
increment = 0x10000 / arg6; increment = 0x10000 / arg6;
for (i = frames; i < arg6; i += arg7) { for (i = frames; i < arg6; i += arg7) {
@ -303,11 +302,6 @@ void func_8097E454(GlobalContext* globalCtx, Vec3f* spawnerPos, Vec3f* velocity,
} }
} }
} }
#else
void func_8097E454(GlobalContext* globalCtx, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* accel, f32 arg4, f32 scale,
s32 arg6, s32 arg7, s16 life);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gt/func_8097E454.s")
#endif
u8 func_8097E69C(GlobalContext* globalCtx) { u8 func_8097E69C(GlobalContext* globalCtx) {
if (globalCtx->csCtx.state == 0) { if (globalCtx->csCtx.state == 0) {
@ -364,23 +358,20 @@ void func_8097E744(DemoGt* this, GlobalContext* globalCtx, u32 actionIdx) {
} }
} }
#ifdef NON_MATCHING
void func_8097E824(DemoGt* this, s32 arg1) { void func_8097E824(DemoGt* this, s32 arg1) {
s16 phi_a1; s16 phi_a1;
s16 phi_a2; s16 phi_a2;
s16 phi_a3; s16 phi_a3;
Vec3f* pos = &this->dyna.actor.posRot.pos;
f32 tempf1; Vec3s* unk16C = &this->unk_16C;
f32 tempf2; s32 pad;
f32 tempf3; f32 tempf3;
f32 tempf2;
f32 tempf1;
f32 phi_f2; f32 phi_f2;
f32 phi_f12; f32 phi_f12;
f32 phi_f14; f32 phi_f14;
Vec3f* pos = &this->dyna.actor.posRot.pos;
Vec3s* unk16C = &this->unk_16C;
if (arg1 == 1) { if (arg1 == 1) {
phi_a1 = kREG(19) + 0x8000; phi_a1 = kREG(19) + 0x8000;
phi_a2 = kREG(20) + 0x8000; phi_a2 = kREG(20) + 0x8000;
@ -443,18 +434,14 @@ void func_8097E824(DemoGt* this, s32 arg1) {
unk16C->y += phi_a2; unk16C->y += phi_a2;
unk16C->z += phi_a3; unk16C->z += phi_a3;
tempf1 = Math_Coss(unk16C->x) * phi_f2; tempf1 = Math_Coss(unk16C->x) * phi_f14;
tempf2 = Math_Coss(unk16C->y) * phi_f12; tempf2 = Math_Coss(unk16C->y) * phi_f12;
tempf3 = Math_Coss(unk16C->z) * phi_f14; tempf3 = Math_Coss(unk16C->z) * phi_f2;
pos->x += tempf1; pos->x += tempf1;
pos->y += tempf2; pos->y += tempf2;
pos->z += tempf3; pos->z += tempf3;
} }
#else
void func_8097E824(DemoGt* this, s32 arg1);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Gt/func_8097E824.s")
#endif
void func_8097ED64(DemoGt* this, GlobalContext* globalCtx, s32 actionIdx) { void func_8097ED64(DemoGt* this, GlobalContext* globalCtx, s32 actionIdx) {
func_8097E744(this, globalCtx, actionIdx); func_8097E744(this, globalCtx, actionIdx);

View File

@ -173,14 +173,11 @@ void EnPoRelay_Talk(EnPoRelay* this, GlobalContext* globalCtx) {
func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG);
} }
#ifdef NON_MATCHING void EnPoRelay_Race(EnPoRelay* this, GlobalContext* globalCtx) {
// Single stack difference Player* player = PLAYER;
void EnPoRelay_Race(EnPoRelay* this, GlobalContext* globalCtx) { // saved, sp64 Vec3f vec;
Player* player = PLAYER; // sp5C
Vec3f vec; // sp50
f32 rand;
f32 multiplier; // sp48
f32 speed; f32 speed;
f32 multiplier;
if (this->actionTimer != 0) { if (this->actionTimer != 0) {
this->actionTimer--; this->actionTimer--;
@ -188,18 +185,18 @@ void EnPoRelay_Race(EnPoRelay* this, GlobalContext* globalCtx) { // saved, sp64
if (this->actionTimer == 0 && Math_Rand_ZeroOne() < 0.03f) { if (this->actionTimer == 0 && Math_Rand_ZeroOne() < 0.03f) {
this->actionTimer = 32; this->actionTimer = 32;
if (this->pathIndex < 23) { if (this->pathIndex < 23) {
rand = Math_Rand_ZeroOne() * 3.0f; speed = Math_Rand_ZeroOne() * 3.0f;
if (rand < 1.0f) { if (speed < 1.0f) {
multiplier = 1.0f; multiplier = 1.0f;
} else if (rand < 2.0f) { } else if (speed < 2.0f) {
multiplier = -1.0f; multiplier = -1.0f;
} else { } else {
multiplier = 0.0f; multiplier = 0.0f;
} }
speed = 30.0f * multiplier;
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HONOTRAP, Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_HONOTRAP,
Math_Coss(this->unk_19A) * (30.0f * multiplier) + this->actor.posRot.pos.x, Math_Coss(this->unk_19A) * speed + this->actor.posRot.pos.x, this->actor.posRot.pos.y,
this->actor.posRot.pos.y, Math_Sins(this->unk_19A) * speed + this->actor.posRot.pos.z, 0,
Math_Sins(this->unk_19A) * (30.0f * multiplier) + this->actor.posRot.pos.z, 0,
(this->unk_19A + 0x8000) - (0x2000 * multiplier), 0, 2); (this->unk_19A + 0x8000) - (0x2000 * multiplier), 0, 2);
} }
} }
@ -247,9 +244,6 @@ void EnPoRelay_Race(EnPoRelay* this, GlobalContext* globalCtx) { // saved, sp64
this->unk_19A = func_8002DAC0(&this->actor, &vec); this->unk_19A = func_8002DAC0(&this->actor, &vec);
func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG); func_8002F974(&this->actor, NA_SE_EN_PO_AWAY - SFX_FLAG);
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Po_Relay/EnPoRelay_Race.s")
#endif
void EnPoRelay_EndRace(EnPoRelay* this, GlobalContext* globalCtx) { void EnPoRelay_EndRace(EnPoRelay* this, GlobalContext* globalCtx) {
Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, -0x4000, 0x800); Math_ApproxUpdateScaledS(&this->actor.shape.rot.y, -0x4000, 0x800);

View File

@ -770,8 +770,6 @@ void func_80ADAFC0(EnPoSisters* this, GlobalContext* globalCtx) {
} }
void func_80ADB17C(EnPoSisters* this, GlobalContext* globalCtx) { void func_80ADB17C(EnPoSisters* this, GlobalContext* globalCtx) {
Vec3s* vec;
this->unk_19A++; this->unk_19A++;
if (this->unk_19A == 64) { if (this->unk_19A == 64) {
Flags_SetSwitch(globalCtx, this->actor.params); Flags_SetSwitch(globalCtx, this->actor.params);
@ -788,10 +786,9 @@ void func_80ADB17C(EnPoSisters* this, GlobalContext* globalCtx) {
func_80AD9240(this, 64 - this->unk_19A, &this->actor.posRot.pos); func_80AD9240(this, 64 - this->unk_19A, &this->actor.posRot.pos);
} }
if (this->unk_19A == 32) { if (this->unk_19A == 32) {
vec = &D_80ADD7A4[this->unk_194]; this->actor.posRot.pos.x = D_80ADD7A4[this->unk_194].x;
this->actor.posRot.pos.x = vec->x; this->actor.posRot.pos.y = D_80ADD7A4[this->unk_194].y;
this->actor.posRot.pos.y = vec->y; this->actor.posRot.pos.z = D_80ADD7A4[this->unk_194].z;
this->actor.posRot.pos.z = vec->z;
} }
} }
@ -1134,11 +1131,10 @@ void func_80ADC10C(EnPoSisters* this, GlobalContext* globalCtx) {
} }
} }
#ifdef NON_MATCHING
// Stack only
void EnPoSisters_Update(Actor* thisx, GlobalContext* globalCtx) { void EnPoSisters_Update(Actor* thisx, GlobalContext* globalCtx) {
EnPoSisters* this = THIS;
s32 pad; s32 pad;
EnPoSisters* this = THIS;
s16 temp;
if (this->collider.base.atFlags & 2) { if (this->collider.base.atFlags & 2) {
this->collider.base.atFlags &= ~2; this->collider.base.atFlags &= ~2;
@ -1154,22 +1150,26 @@ void EnPoSisters_Update(Actor* thisx, GlobalContext* globalCtx) {
func_80ADA35C(this, globalCtx); func_80ADA35C(this, globalCtx);
} }
Actor_MoveForward(&this->actor); Actor_MoveForward(&this->actor);
if (this->unk_199 & 0x10) { if (this->unk_199 & 0x10) {
func_8002E4B4(globalCtx, &this->actor, 20.0f, 20.0f, 0.0f, 5); func_8002E4B4(globalCtx, &this->actor, 20.0f, 20.0f, 0.0f, 5);
} else { } else {
Vec3f vec; Vec3f vec;
UNK_TYPE sp34; UNK_TYPE sp34;
vec.x = this->actor.posRot.pos.x; vec.x = this->actor.posRot.pos.x;
vec.y = this->actor.posRot.pos.y + 10.0f; vec.y = this->actor.posRot.pos.y + 10.0f;
vec.z = this->actor.posRot.pos.z; vec.z = this->actor.posRot.pos.z;
this->actor.groundY = func_8003C9A4(&globalCtx->colCtx, &this->actor.floorPoly, &sp34, &this->actor, &vec); this->actor.groundY = func_8003C9A4(&globalCtx->colCtx, &this->actor.floorPoly, &sp34, &this->actor, &vec);
} }
Collider_CylinderUpdate(&this->actor, &this->collider); Collider_CylinderUpdate(&this->actor, &this->collider);
if (this->actionFunc == func_80ADA8C0 || this->actionFunc == func_80ADA7F0) { if (this->actionFunc == func_80ADA8C0 || this->actionFunc == func_80ADA7F0) {
this->unk_198++; this->unk_198++;
this->unk_198 = CLAMP_MAX(this->unk_198, 8); this->unk_198 = CLAMP_MAX(this->unk_198, 8);
} else if (this->actionFunc != func_80ADAFC0) { } else if (this->actionFunc != func_80ADAFC0) {
this->unk_198 = CLAMP_MIN((s16)(this->unk_198 - 1), 1); temp = this->unk_198 - 1;
this->unk_198 = CLAMP_MIN(temp, 1);
} }
if (this->actionFunc == func_80ADA8C0) { if (this->actionFunc == func_80ADA8C0) {
this->actor.flags |= 0x01000000; this->actor.flags |= 0x01000000;
@ -1189,9 +1189,6 @@ void EnPoSisters_Update(Actor* thisx, GlobalContext* globalCtx) {
} }
} }
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Po_Sisters/EnPoSisters_Update.s")
#endif
void func_80ADC55C(EnPoSisters* this) { void func_80ADC55C(EnPoSisters* this) {
s16 temp_var; s16 temp_var;

View File

@ -101,11 +101,11 @@ void ObjLightswitch_SetSwitchFlag(ObjLightswitch* this, GlobalContext* globalCtx
Flags_SetSwitch(globalCtx, this->actor.params >> 8 & 0x3F); Flags_SetSwitch(globalCtx, this->actor.params >> 8 & 0x3F);
if (type == OBJLIGHTSWITCH_TYPE_1) { if (type == OBJLIGHTSWITCH_TYPE_1) {
func_800806BC(globalCtx, thisx, 0x4807); func_800806BC(globalCtx, thisx, NA_SE_SY_TRE_BOX_APPEAR);
} else if (type == OBJLIGHTSWITCH_TYPE_BURN) { } else if (type == OBJLIGHTSWITCH_TYPE_BURN) {
func_800806BC(globalCtx, thisx, 0x4806); func_800806BC(globalCtx, thisx, NA_SE_SY_ERROR);
} else { } else {
func_800806BC(globalCtx, thisx, 0x4802); func_800806BC(globalCtx, thisx, NA_SE_SY_CORRECT_CHIME);
} }
} }
} }
@ -115,7 +115,7 @@ void ObjLightswitch_ClearSwitchFlag(ObjLightswitch* this, GlobalContext* globalC
Flags_UnsetSwitch(globalCtx, this->actor.params >> 8 & 0x3F); Flags_UnsetSwitch(globalCtx, this->actor.params >> 8 & 0x3F);
if ((this->actor.params >> 4 & 3) == OBJLIGHTSWITCH_TYPE_1) { if ((this->actor.params >> 4 & 3) == OBJLIGHTSWITCH_TYPE_1) {
func_800806BC(globalCtx, &this->actor, 0x4807); func_800806BC(globalCtx, &this->actor, NA_SE_SY_TRE_BOX_APPEAR);
} }
} }
} }