object function matches and a lot of cleanup (#329)

* match obj_loop_bridge_whaleramp

* ya

* document main.c

* document font.c

* Update font.c

* match obj_loop_banana

* match obj_loop_frog and obj_loop_levelname

* Update object_functions.c

* fix object.c warnings

* label some render flags

* finish font.c for now

* move struct

* font.c finished

* match obj_loop_trigger

* quick fixes

* Update src/font.h

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.h

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.c

Co-authored-by: David Benepe <benepe96@gmail.com>

* Update src/object_functions.h

Co-authored-by: David Benepe <benepe96@gmail.com>

Co-authored-by: David Benepe <benepe96@gmail.com>
This commit is contained in:
Fazana
2022-12-08 16:05:29 +00:00
committed by GitHub
co-authored by David Benepe
parent 016d1dd843
commit bf6269f3b9
27 changed files with 1551 additions and 2607 deletions
File diff suppressed because it is too large Load Diff
@@ -194,14 +194,14 @@ glabel render_track_select_setup_ui
/* 091DEC 800911EC 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9)
/* 091DF0 800911F0 00002825 */ move $a1, $zero
/* 091DF4 800911F4 8F240248 */ lw $a0, 0x248($t9)
/* 091DF8 800911F8 0C031368 */ jal func_800C4DA0
/* 091DF8 800911F8 0C031368 */ jal get_text_width
/* 091DFC 800911FC 00003025 */ move $a2, $zero
/* 091E00 80091200 3C08800E */ lui $t0, %hi(gMenuText) # $t0, 0x800e
/* 091E04 80091204 8D08F4A0 */ lw $t0, %lo(gMenuText)($t0)
/* 091E08 80091208 0040A025 */ move $s4, $v0
/* 091E0C 8009120C 8D04024C */ lw $a0, 0x24c($t0)
/* 091E10 80091210 00002825 */ move $a1, $zero
/* 091E14 80091214 0C031368 */ jal func_800C4DA0
/* 091E14 80091214 0C031368 */ jal get_text_width
/* 091E18 80091218 00003025 */ move $a2, $zero
/* 091E1C 8009121C 0282082A */ slt $at, $s4, $v0
/* 091E20 80091220 10200002 */ beqz $at, .L8009122C
@@ -921,7 +921,7 @@ glabel render_track_select_setup_ui
/* 0928AC 80091CAC 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5)
/* 0928B0 80091CB0 00002825 */ move $a1, $zero
/* 0928B4 80091CB4 8DA40220 */ lw $a0, 0x220($t5)
/* 0928B8 80091CB8 0C031368 */ jal func_800C4DA0
/* 0928B8 80091CB8 0C031368 */ jal get_text_width
/* 0928BC 80091CBC 00003025 */ move $a2, $zero
/* 0928C0 80091CC0 3C12800E */ lui $s2, %hi(gTwoPlayerRacerCountMenu) # $s2, 0x800e
/* 0928C4 80091CC4 265206E4 */ addiu $s2, %lo(gTwoPlayerRacerCountMenu) # addiu $s2, $s2, 0x6e4
@@ -1,137 +0,0 @@
glabel init_particle_assets
/* 0AF130 800AE530 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0AF134 800AE534 AFBF002C */ sw $ra, 0x2c($sp)
/* 0AF138 800AE538 AFB50028 */ sw $s5, 0x28($sp)
/* 0AF13C 800AE53C AFB40024 */ sw $s4, 0x24($sp)
/* 0AF140 800AE540 AFB30020 */ sw $s3, 0x20($sp)
/* 0AF144 800AE544 AFB2001C */ sw $s2, 0x1c($sp)
/* 0AF148 800AE548 AFB10018 */ sw $s1, 0x18($sp)
/* 0AF14C 800AE54C 0C02B924 */ jal func_800AE490
/* 0AF150 800AE550 AFB00014 */ sw $s0, 0x14($sp)
/* 0AF154 800AE554 0C01DB16 */ jal load_asset_section_from_rom
/* 0AF158 800AE558 24040028 */ li $a0, 40
/* 0AF15C 800AE55C 3C05800E */ lui $a1, %hi(gParticlesAssetTableCount) # $a1, 0x800e
/* 0AF160 800AE560 2406FFFF */ li $a2, -1
/* 0AF164 800AE564 3C12800E */ lui $s2, %hi(gParticlesAssetTable) # $s2, 0x800e
/* 0AF168 800AE568 26522CF0 */ addiu $s2, %lo(gParticlesAssetTable) # addiu $s2, $s2, 0x2cf0
/* 0AF16C 800AE56C 24A52CE8 */ addiu $a1, %lo(gParticlesAssetTableCount) # addiu $a1, $a1, 0x2ce8
/* 0AF170 800AE570 00067080 */ sll $t6, $a2, 2
/* 0AF174 800AE574 AE420000 */ sw $v0, ($s2)
/* 0AF178 800AE578 ACA60000 */ sw $a2, ($a1)
/* 0AF17C 800AE57C 004E7821 */ addu $t7, $v0, $t6
/* 0AF180 800AE580 8DF80004 */ lw $t8, 4($t7)
/* 0AF184 800AE584 00C01825 */ move $v1, $a2
/* 0AF188 800AE588 10D80009 */ beq $a2, $t8, .L800AE5B0
/* 0AF18C 800AE58C 00402025 */ move $a0, $v0
/* 0AF190 800AE590 24790001 */ addiu $t9, $v1, 1
.L800AE594:
/* 0AF194 800AE594 00194080 */ sll $t0, $t9, 2
/* 0AF198 800AE598 00884821 */ addu $t1, $a0, $t0
/* 0AF19C 800AE59C ACB90000 */ sw $t9, ($a1)
/* 0AF1A0 800AE5A0 8D2A0004 */ lw $t2, 4($t1)
/* 0AF1A4 800AE5A4 03201825 */ move $v1, $t9
/* 0AF1A8 800AE5A8 14CAFFFA */ bne $a2, $t2, .L800AE594
/* 0AF1AC 800AE5AC 24790001 */ addiu $t9, $v1, 1
.L800AE5B0:
/* 0AF1B0 800AE5B0 0C01DB16 */ jal load_asset_section_from_rom
/* 0AF1B4 800AE5B4 24040029 */ li $a0, 41
/* 0AF1B8 800AE5B8 3C05800E */ lui $a1, %hi(gParticlesAssetTableCount) # $a1, 0x800e
/* 0AF1BC 800AE5BC 24A52CE8 */ addiu $a1, %lo(gParticlesAssetTableCount) # addiu $a1, $a1, 0x2ce8
/* 0AF1C0 800AE5C0 8CAB0000 */ lw $t3, ($a1)
/* 0AF1C4 800AE5C4 3C03800E */ lui $v1, %hi(gParticlesAssets) # $v1, 0x800e
/* 0AF1C8 800AE5C8 24632CEC */ addiu $v1, %lo(gParticlesAssets) # addiu $v1, $v1, 0x2cec
/* 0AF1CC 800AE5CC AC620000 */ sw $v0, ($v1)
/* 0AF1D0 800AE5D0 1960000F */ blez $t3, .L800AE610
/* 0AF1D4 800AE5D4 00008825 */ move $s1, $zero
/* 0AF1D8 800AE5D8 00008025 */ move $s0, $zero
.L800AE5DC:
/* 0AF1DC 800AE5DC 8E4C0000 */ lw $t4, ($s2)
/* 0AF1E0 800AE5E0 8C6E0000 */ lw $t6, ($v1)
/* 0AF1E4 800AE5E4 01901021 */ addu $v0, $t4, $s0
/* 0AF1E8 800AE5E8 8C4D0000 */ lw $t5, ($v0)
/* 0AF1EC 800AE5EC 26310001 */ addiu $s1, $s1, 1
/* 0AF1F0 800AE5F0 01AE7821 */ addu $t7, $t5, $t6
/* 0AF1F4 800AE5F4 AC4F0000 */ sw $t7, ($v0)
/* 0AF1F8 800AE5F8 8CB80000 */ lw $t8, ($a1)
/* 0AF1FC 800AE5FC 26100004 */ addiu $s0, $s0, 4
/* 0AF200 800AE600 0238082A */ slt $at, $s1, $t8
/* 0AF204 800AE604 1420FFF5 */ bnez $at, .L800AE5DC
/* 0AF208 800AE608 00000000 */ nop
/* 0AF20C 800AE60C 00008825 */ move $s1, $zero
.L800AE610:
/* 0AF210 800AE610 0C01DB16 */ jal load_asset_section_from_rom
/* 0AF214 800AE614 2404002A */ li $a0, 42
/* 0AF218 800AE618 2406FFFF */ li $a2, -1
/* 0AF21C 800AE61C 3C12800E */ lui $s2, %hi(gParticleBehavioursAssetTableCount) # $s2, 0x800e
/* 0AF220 800AE620 3C13800E */ lui $s3, %hi(gParticleBehavioursAssetTable) # $s3, 0x800e
/* 0AF224 800AE624 26732CFC */ addiu $s3, %lo(gParticleBehavioursAssetTable) # addiu $s3, $s3, 0x2cfc
/* 0AF228 800AE628 26522CF4 */ addiu $s2, %lo(gParticleBehavioursAssetTableCount) # addiu $s2, $s2, 0x2cf4
/* 0AF22C 800AE62C 0006C880 */ sll $t9, $a2, 2
/* 0AF230 800AE630 AE620000 */ sw $v0, ($s3)
/* 0AF234 800AE634 AE460000 */ sw $a2, ($s2)
/* 0AF238 800AE638 00594021 */ addu $t0, $v0, $t9
/* 0AF23C 800AE63C 8D090004 */ lw $t1, 4($t0)
/* 0AF240 800AE640 00C01825 */ move $v1, $a2
/* 0AF244 800AE644 10C90009 */ beq $a2, $t1, .L800AE66C
/* 0AF248 800AE648 00402025 */ move $a0, $v0
/* 0AF24C 800AE64C 246A0001 */ addiu $t2, $v1, 1
.L800AE650:
/* 0AF250 800AE650 000A5880 */ sll $t3, $t2, 2
/* 0AF254 800AE654 008B6021 */ addu $t4, $a0, $t3
/* 0AF258 800AE658 AE4A0000 */ sw $t2, ($s2)
/* 0AF25C 800AE65C 8D8D0004 */ lw $t5, 4($t4)
/* 0AF260 800AE660 01401825 */ move $v1, $t2
/* 0AF264 800AE664 14CDFFFA */ bne $a2, $t5, .L800AE650
/* 0AF268 800AE668 246A0001 */ addiu $t2, $v1, 1
.L800AE66C:
/* 0AF26C 800AE66C 0C01DB16 */ jal load_asset_section_from_rom
/* 0AF270 800AE670 2404002B */ li $a0, 43
/* 0AF274 800AE674 8E4E0000 */ lw $t6, ($s2)
/* 0AF278 800AE678 3C15800E */ lui $s5, %hi(gParticleBehavioursAssets) # $s5, 0x800e
/* 0AF27C 800AE67C 26B52CF8 */ addiu $s5, %lo(gParticleBehavioursAssets) # addiu $s5, $s5, 0x2cf8
/* 0AF280 800AE680 19C00020 */ blez $t6, .L800AE704
/* 0AF284 800AE684 AEA20000 */ sw $v0, ($s5)
/* 0AF288 800AE688 00008025 */ move $s0, $zero
/* 0AF28C 800AE68C 2414FFFF */ li $s4, -1
.L800AE690:
/* 0AF290 800AE690 8E6F0000 */ lw $t7, ($s3)
/* 0AF294 800AE694 8EB90000 */ lw $t9, ($s5)
/* 0AF298 800AE698 01F01021 */ addu $v0, $t7, $s0
/* 0AF29C 800AE69C 8C580000 */ lw $t8, ($v0)
/* 0AF2A0 800AE6A0 00000000 */ nop
/* 0AF2A4 800AE6A4 03194021 */ addu $t0, $t8, $t9
/* 0AF2A8 800AE6A8 AC480000 */ sw $t0, ($v0)
/* 0AF2AC 800AE6AC 8E690000 */ lw $t1, ($s3)
/* 0AF2B0 800AE6B0 00000000 */ nop
/* 0AF2B4 800AE6B4 01305021 */ addu $t2, $t1, $s0
/* 0AF2B8 800AE6B8 8D4B0000 */ lw $t3, ($t2)
/* 0AF2BC 800AE6BC 00000000 */ nop
/* 0AF2C0 800AE6C0 8D63009C */ lw $v1, 0x9c($t3)
/* 0AF2C4 800AE6C4 00000000 */ nop
/* 0AF2C8 800AE6C8 12830009 */ beq $s4, $v1, .L800AE6F0
/* 0AF2CC 800AE6CC 00000000 */ nop
/* 0AF2D0 800AE6D0 0C0078A7 */ jal get_misc_asset
/* 0AF2D4 800AE6D4 00602025 */ move $a0, $v1
/* 0AF2D8 800AE6D8 8E6C0000 */ lw $t4, ($s3)
/* 0AF2DC 800AE6DC 00000000 */ nop
/* 0AF2E0 800AE6E0 01906821 */ addu $t5, $t4, $s0
/* 0AF2E4 800AE6E4 8DAE0000 */ lw $t6, ($t5)
/* 0AF2E8 800AE6E8 00000000 */ nop
/* 0AF2EC 800AE6EC ADC2009C */ sw $v0, 0x9c($t6)
.L800AE6F0:
/* 0AF2F0 800AE6F0 8E4F0000 */ lw $t7, ($s2)
/* 0AF2F4 800AE6F4 26310001 */ addiu $s1, $s1, 1
/* 0AF2F8 800AE6F8 022F082A */ slt $at, $s1, $t7
/* 0AF2FC 800AE6FC 1420FFE4 */ bnez $at, .L800AE690
/* 0AF300 800AE700 26100004 */ addiu $s0, $s0, 4
.L800AE704:
/* 0AF304 800AE704 8FBF002C */ lw $ra, 0x2c($sp)
/* 0AF308 800AE708 8FB00014 */ lw $s0, 0x14($sp)
/* 0AF30C 800AE70C 8FB10018 */ lw $s1, 0x18($sp)
/* 0AF310 800AE710 8FB2001C */ lw $s2, 0x1c($sp)
/* 0AF314 800AE714 8FB30020 */ lw $s3, 0x20($sp)
/* 0AF318 800AE718 8FB40024 */ lw $s4, 0x24($sp)
/* 0AF31C 800AE71C 8FB50028 */ lw $s5, 0x28($sp)
/* 0AF320 800AE720 03E00008 */ jr $ra
/* 0AF324 800AE724 27BD0030 */ addiu $sp, $sp, 0x30
@@ -1,415 +0,0 @@
.late_rodata
glabel D_800E6190
.double 1.2
glabel D_800E6198
.double 0.95
glabel D_800E61A0
.float -10000.0
.text
glabel obj_loop_banana
/* 03E1A0 8003D5A0 44852000 */ mtc1 $a1, $f4
/* 03E1A4 8003D5A4 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000
/* 03E1A8 8003D5A8 468020A0 */ cvt.s.w $f2, $f4
/* 03E1AC 8003D5AC 8DEF0300 */ lw $t7, %lo(osTvType)($t7)
/* 03E1B0 8003D5B0 27BDFF90 */ addiu $sp, $sp, -0x70
/* 03E1B4 8003D5B4 AFB00020 */ sw $s0, 0x20($sp)
/* 03E1B8 8003D5B8 00808025 */ move $s0, $a0
/* 03E1BC 8003D5BC AFBF0024 */ sw $ra, 0x24($sp)
/* 03E1C0 8003D5C0 AFA50074 */ sw $a1, 0x74($sp)
/* 03E1C4 8003D5C4 15E00007 */ bnez $t7, .L8003D5E4
/* 03E1C8 8003D5C8 46001006 */ mov.s $f0, $f2
/* 03E1CC 8003D5CC 3C01800E */ lui $at, %hi(D_800E6190 + 4) # $at, 0x800e
/* 03E1D0 8003D5D0 C4296190 */ lwc1 $f9, %lo(D_800E6190)($at)
/* 03E1D4 8003D5D4 C4286194 */ lwc1 $f8, %lo(D_800E6190 + 4)($at)
/* 03E1D8 8003D5D8 460011A1 */ cvt.d.s $f6, $f2
/* 03E1DC 8003D5DC 46283282 */ mul.d $f10, $f6, $f8
/* 03E1E0 8003D5E0 46205020 */ cvt.s.d $f0, $f10
.L8003D5E4:
/* 03E1E4 8003D5E4 8E180064 */ lw $t8, 0x64($s0)
/* 03E1E8 8003D5E8 8FAA0074 */ lw $t2, 0x74($sp)
/* 03E1EC 8003D5EC AFB8003C */ sw $t8, 0x3c($sp)
/* 03E1F0 8003D5F0 86190018 */ lh $t9, 0x18($s0)
/* 03E1F4 8003D5F4 8E0D0078 */ lw $t5, 0x78($s0)
/* 03E1F8 8003D5F8 000A58C0 */ sll $t3, $t2, 3
/* 03E1FC 8003D5FC 2401FFFF */ li $at, -1
/* 03E200 8003D600 032B6021 */ addu $t4, $t9, $t3
/* 03E204 8003D604 15A10019 */ bne $t5, $at, .L8003D66C
/* 03E208 8003D608 A60C0018 */ sh $t4, 0x18($s0)
/* 03E20C 8003D60C 860E0006 */ lh $t6, 6($s0)
/* 03E210 8003D610 26090078 */ addiu $t1, $s0, 0x78
/* 03E214 8003D614 35CF4000 */ ori $t7, $t6, 0x4000
/* 03E218 8003D618 A60F0006 */ sh $t7, 6($s0)
/* 03E21C 8003D61C 8FAA0074 */ lw $t2, 0x74($sp)
/* 03E220 8003D620 85380006 */ lh $t8, 6($t1)
/* 03E224 8003D624 240B0001 */ li $t3, 1
/* 03E228 8003D628 030AC823 */ subu $t9, $t8, $t2
/* 03E22C 8003D62C A5390006 */ sh $t9, 6($t1)
/* 03E230 8003D630 AE0B0074 */ sw $t3, 0x74($s0)
/* 03E234 8003D634 8FA50074 */ lw $a1, 0x74($sp)
/* 03E238 8003D638 AFA90030 */ sw $t1, 0x30($sp)
/* 03E23C 8003D63C 0C02BF0F */ jal func_800AFC3C
/* 03E240 8003D640 02002025 */ move $a0, $s0
/* 03E244 8003D644 8FA90030 */ lw $t1, 0x30($sp)
/* 03E248 8003D648 00000000 */ nop
/* 03E24C 8003D64C 852C0006 */ lh $t4, 6($t1)
/* 03E250 8003D650 00000000 */ nop
/* 03E254 8003D654 1D80014F */ bgtz $t4, .L8003DB94
/* 03E258 8003D658 8FBF0024 */ lw $ra, 0x24($sp)
/* 03E25C 8003D65C 0C003FEE */ jal gParticlePtrList_addObject
/* 03E260 8003D660 02002025 */ move $a0, $s0
/* 03E264 8003D664 1000014B */ b .L8003DB94
/* 03E268 8003D668 8FBF0024 */ lw $ra, 0x24($sp)
.L8003D66C:
/* 03E26C 8003D66C 8FAD003C */ lw $t5, 0x3c($sp)
/* 03E270 8003D670 8FAE0074 */ lw $t6, 0x74($sp)
/* 03E274 8003D674 81A20008 */ lb $v0, 8($t5)
/* 03E278 8003D678 8FB8003C */ lw $t8, 0x3c($sp)
/* 03E27C 8003D67C 18400004 */ blez $v0, .L8003D690
/* 03E280 8003D680 26090078 */ addiu $t1, $s0, 0x78
/* 03E284 8003D684 004E7823 */ subu $t7, $v0, $t6
/* 03E288 8003D688 10000003 */ b .L8003D698
/* 03E28C 8003D68C A1AF0008 */ sb $t7, 8($t5)
.L8003D690:
/* 03E290 8003D690 A3000008 */ sb $zero, 8($t8)
/* 03E294 8003D694 AF000000 */ sw $zero, ($t8)
.L8003D698:
/* 03E298 8003D698 8D2A0000 */ lw $t2, ($t1)
/* 03E29C 8003D69C 24010001 */ li $at, 1
/* 03E2A0 8003D6A0 1541009B */ bne $t2, $at, .L8003D910
/* 03E2A4 8003D6A4 8FAD003C */ lw $t5, 0x3c($sp)
/* 03E2A8 8003D6A8 C612001C */ lwc1 $f18, 0x1c($s0)
/* 03E2AC 8003D6AC C610000C */ lwc1 $f16, 0xc($s0)
/* 03E2B0 8003D6B0 46009102 */ mul.s $f4, $f18, $f0
/* 03E2B4 8003D6B4 3C014100 */ li $at, 0x41000000 # 8.000000
/* 03E2B8 8003D6B8 2605000C */ addiu $a1, $s0, 0xc
/* 03E2BC 8003D6BC 24040001 */ li $a0, 1
/* 03E2C0 8003D6C0 46048180 */ add.s $f6, $f16, $f4
/* 03E2C4 8003D6C4 27A6005C */ addiu $a2, $sp, 0x5c
/* 03E2C8 8003D6C8 E7A6005C */ swc1 $f6, 0x5c($sp)
/* 03E2CC 8003D6CC C60A0020 */ lwc1 $f10, 0x20($s0)
/* 03E2D0 8003D6D0 C6080010 */ lwc1 $f8, 0x10($s0)
/* 03E2D4 8003D6D4 46005482 */ mul.s $f18, $f10, $f0
/* 03E2D8 8003D6D8 2407FFFF */ li $a3, -1
/* 03E2DC 8003D6DC 46124400 */ add.s $f16, $f8, $f18
/* 03E2E0 8003D6E0 44819000 */ mtc1 $at, $f18
/* 03E2E4 8003D6E4 E7B00060 */ swc1 $f16, 0x60($sp)
/* 03E2E8 8003D6E8 C6060024 */ lwc1 $f6, 0x24($s0)
/* 03E2EC 8003D6EC C6040014 */ lwc1 $f4, 0x14($s0)
/* 03E2F0 8003D6F0 46003282 */ mul.s $f10, $f6, $f0
/* 03E2F4 8003D6F4 E7A00054 */ swc1 $f0, 0x54($sp)
/* 03E2F8 8003D6F8 AFA90030 */ sw $t1, 0x30($sp)
/* 03E2FC 8003D6FC AFA5002C */ sw $a1, 0x2c($sp)
/* 03E300 8003D700 460A2200 */ add.s $f8, $f4, $f10
/* 03E304 8003D704 E7B20058 */ swc1 $f18, 0x58($sp)
/* 03E308 8003D708 0C00C44C */ jal func_80031130
/* 03E30C 8003D70C E7A80064 */ swc1 $f8, 0x64($sp)
/* 03E310 8003D710 8FA4002C */ lw $a0, 0x2c($sp)
/* 03E314 8003D714 24190001 */ li $t9, 1
/* 03E318 8003D718 27AB0048 */ addiu $t3, $sp, 0x48
/* 03E31C 8003D71C AFA00048 */ sw $zero, 0x48($sp)
/* 03E320 8003D720 AFAB0014 */ sw $t3, 0x14($sp)
/* 03E324 8003D724 AFB90010 */ sw $t9, 0x10($sp)
/* 03E328 8003D728 27A5005C */ addiu $a1, $sp, 0x5c
/* 03E32C 8003D72C 27A60058 */ addiu $a2, $sp, 0x58
/* 03E330 8003D730 0C00C580 */ jal func_80031600
/* 03E334 8003D734 27A70043 */ addiu $a3, $sp, 0x43
/* 03E338 8003D738 C7B0005C */ lwc1 $f16, 0x5c($sp)
/* 03E33C 8003D73C C606000C */ lwc1 $f6, 0xc($s0)
/* 03E340 8003D740 C7A00054 */ lwc1 $f0, 0x54($sp)
/* 03E344 8003D744 46068101 */ sub.s $f4, $f16, $f6
/* 03E348 8003D748 8FA90030 */ lw $t1, 0x30($sp)
/* 03E34C 8003D74C 46002283 */ div.s $f10, $f4, $f0
/* 03E350 8003D750 C6120010 */ lwc1 $f18, 0x10($s0)
/* 03E354 8003D754 24010002 */ li $at, 2
/* 03E358 8003D758 44806800 */ mtc1 $zero, $f13
/* 03E35C 8003D75C 02002025 */ move $a0, $s0
/* 03E360 8003D760 27A50058 */ addiu $a1, $sp, 0x58
/* 03E364 8003D764 00003025 */ move $a2, $zero
/* 03E368 8003D768 24070001 */ li $a3, 1
/* 03E36C 8003D76C E60A001C */ swc1 $f10, 0x1c($s0)
/* 03E370 8003D770 C7A80060 */ lwc1 $f8, 0x60($sp)
/* 03E374 8003D774 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 03E378 8003D778 46124401 */ sub.s $f16, $f8, $f18
/* 03E37C 8003D77C 00000000 */ nop
/* 03E380 8003D780 46008183 */ div.s $f6, $f16, $f0
/* 03E384 8003D784 E6060020 */ swc1 $f6, 0x20($s0)
/* 03E388 8003D788 C7A40064 */ lwc1 $f4, 0x64($sp)
/* 03E38C 8003D78C 00000000 */ nop
/* 03E390 8003D790 460A2201 */ sub.s $f8, $f4, $f10
/* 03E394 8003D794 00000000 */ nop
/* 03E398 8003D798 46004483 */ div.s $f18, $f8, $f0
/* 03E39C 8003D79C E6120024 */ swc1 $f18, 0x24($s0)
/* 03E3A0 8003D7A0 C7B0005C */ lwc1 $f16, 0x5c($sp)
/* 03E3A4 8003D7A4 00000000 */ nop
/* 03E3A8 8003D7A8 E610000C */ swc1 $f16, 0xc($s0)
/* 03E3AC 8003D7AC C7A60060 */ lwc1 $f6, 0x60($sp)
/* 03E3B0 8003D7B0 00000000 */ nop
/* 03E3B4 8003D7B4 E6060010 */ swc1 $f6, 0x10($s0)
/* 03E3B8 8003D7B8 C7A40064 */ lwc1 $f4, 0x64($sp)
/* 03E3BC 8003D7BC 00000000 */ nop
/* 03E3C0 8003D7C0 E6040014 */ swc1 $f4, 0x14($s0)
/* 03E3C4 8003D7C4 8FAC003C */ lw $t4, 0x3c($sp)
/* 03E3C8 8003D7C8 00000000 */ nop
/* 03E3CC 8003D7CC 818E0009 */ lb $t6, 9($t4)
/* 03E3D0 8003D7D0 00000000 */ nop
/* 03E3D4 8003D7D4 11C10016 */ beq $t6, $at, .L8003D830
/* 03E3D8 8003D7D8 3C01800E */ lui $at, %hi(D_800E6198 + 4) # $at, 0x800e
/* 03E3DC 8003D7DC C4216198 */ lwc1 $f1, %lo(D_800E6198)($at)
/* 03E3E0 8003D7E0 C420619C */ lwc1 $f0, %lo(D_800E6198 + 4)($at)
/* 03E3E4 8003D7E4 C60A0020 */ lwc1 $f10, 0x20($s0)
/* 03E3E8 8003D7E8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 03E3EC 8003D7EC 44819800 */ mtc1 $at, $f19
/* 03E3F0 8003D7F0 44809000 */ mtc1 $zero, $f18
/* 03E3F4 8003D7F4 46005221 */ cvt.d.s $f8, $f10
/* 03E3F8 8003D7F8 46324401 */ sub.d $f16, $f8, $f18
/* 03E3FC 8003D7FC C604001C */ lwc1 $f4, 0x1c($s0)
/* 03E400 8003D800 462081A0 */ cvt.s.d $f6, $f16
/* 03E404 8003D804 C6100024 */ lwc1 $f16, 0x24($s0)
/* 03E408 8003D808 460022A1 */ cvt.d.s $f10, $f4
/* 03E40C 8003D80C 46205202 */ mul.d $f8, $f10, $f0
/* 03E410 8003D810 E6060020 */ swc1 $f6, 0x20($s0)
/* 03E414 8003D814 460081A1 */ cvt.d.s $f6, $f16
/* 03E418 8003D818 46203102 */ mul.d $f4, $f6, $f0
/* 03E41C 8003D81C 462044A0 */ cvt.s.d $f18, $f8
/* 03E420 8003D820 E612001C */ swc1 $f18, 0x1c($s0)
/* 03E424 8003D824 462022A0 */ cvt.s.d $f10, $f4
/* 03E428 8003D828 10000006 */ b .L8003D844
/* 03E42C 8003D82C E60A0024 */ swc1 $f10, 0x24($s0)
.L8003D830:
/* 03E430 8003D830 44800000 */ mtc1 $zero, $f0
/* 03E434 8003D834 00000000 */ nop
/* 03E438 8003D838 E600001C */ swc1 $f0, 0x1c($s0)
/* 03E43C 8003D83C E6000020 */ swc1 $f0, 0x20($s0)
/* 03E440 8003D840 E6000024 */ swc1 $f0, 0x24($s0)
.L8003D844:
/* 03E444 8003D844 C602001C */ lwc1 $f2, 0x1c($s0)
/* 03E448 8003D848 44806000 */ mtc1 $zero, $f12
/* 03E44C 8003D84C 46001221 */ cvt.d.s $f8, $f2
/* 03E450 8003D850 462C403C */ c.lt.d $f8, $f12
/* 03E454 8003D854 8FAF0048 */ lw $t7, 0x48($sp)
/* 03E458 8003D858 45000002 */ bc1f .L8003D864
/* 03E45C 8003D85C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 03E460 8003D860 46001087 */ neg.s $f2, $f2
.L8003D864:
/* 03E464 8003D864 C6000024 */ lwc1 $f0, 0x24($s0)
/* 03E468 8003D868 00000000 */ nop
/* 03E46C 8003D86C 460004A1 */ cvt.d.s $f18, $f0
/* 03E470 8003D870 462C903C */ c.lt.d $f18, $f12
/* 03E474 8003D874 00000000 */ nop
/* 03E478 8003D878 45000002 */ bc1f .L8003D884
/* 03E47C 8003D87C 00000000 */ nop
/* 03E480 8003D880 46000007 */ neg.s $f0, $f0
.L8003D884:
/* 03E484 8003D884 19E0000E */ blez $t7, .L8003D8C0
/* 03E488 8003D888 00000000 */ nop
/* 03E48C 8003D88C 44816800 */ mtc1 $at, $f13
/* 03E490 8003D890 44806000 */ mtc1 $zero, $f12
/* 03E494 8003D894 46001421 */ cvt.d.s $f16, $f2
/* 03E498 8003D898 462C803C */ c.lt.d $f16, $f12
/* 03E49C 8003D89C 00000000 */ nop
/* 03E4A0 8003D8A0 45000007 */ bc1f .L8003D8C0
/* 03E4A4 8003D8A4 00000000 */ nop
/* 03E4A8 8003D8A8 460001A1 */ cvt.d.s $f6, $f0
/* 03E4AC 8003D8AC 462C303C */ c.lt.d $f6, $f12
/* 03E4B0 8003D8B0 00000000 */ nop
/* 03E4B4 8003D8B4 45000002 */ bc1f .L8003D8C0
/* 03E4B8 8003D8B8 00000000 */ nop
/* 03E4BC 8003D8BC AD200000 */ sw $zero, ($t1)
.L8003D8C0:
/* 03E4C0 8003D8C0 3C01800E */ lui $at, %hi(D_800E61A0) # $at, 0x800e
/* 03E4C4 8003D8C4 C42461A0 */ lwc1 $f4, %lo(D_800E61A0)($at)
/* 03E4C8 8003D8C8 AFA90030 */ sw $t1, 0x30($sp)
/* 03E4CC 8003D8CC 0C00AE6F */ jal func_8002B9BC
/* 03E4D0 8003D8D0 E7A40058 */ swc1 $f4, 0x58($sp)
/* 03E4D4 8003D8D4 8FA90030 */ lw $t1, 0x30($sp)
/* 03E4D8 8003D8D8 1040000D */ beqz $v0, .L8003D910
/* 03E4DC 8003D8DC 8FAD003C */ lw $t5, 0x3c($sp)
/* 03E4E0 8003D8E0 C60A0010 */ lwc1 $f10, 0x10($s0)
/* 03E4E4 8003D8E4 C7A80058 */ lwc1 $f8, 0x58($sp)
/* 03E4E8 8003D8E8 00000000 */ nop
/* 03E4EC 8003D8EC 4608503C */ c.lt.s $f10, $f8
/* 03E4F0 8003D8F0 00000000 */ nop
/* 03E4F4 8003D8F4 45000006 */ bc1f .L8003D910
/* 03E4F8 8003D8F8 8FAD003C */ lw $t5, 0x3c($sp)
/* 03E4FC 8003D8FC AD200000 */ sw $zero, ($t1)
/* 03E500 8003D900 C7B20058 */ lwc1 $f18, 0x58($sp)
/* 03E504 8003D904 00000000 */ nop
/* 03E508 8003D908 E6120010 */ swc1 $f18, 0x10($s0)
/* 03E50C 8003D90C 8FAD003C */ lw $t5, 0x3c($sp)
.L8003D910:
/* 03E510 8003D910 24010002 */ li $at, 2
/* 03E514 8003D914 81B80009 */ lb $t8, 9($t5)
/* 03E518 8003D918 8FAA0074 */ lw $t2, 0x74($sp)
/* 03E51C 8003D91C 13010002 */ beq $t8, $at, .L8003D928
/* 03E520 8003D920 24040046 */ li $a0, 70
/* 03E524 8003D924 24040037 */ li $a0, 55
.L8003D928:
/* 03E528 8003D928 85220004 */ lh $v0, 4($t1)
/* 03E52C 8003D92C 00000000 */ nop
/* 03E530 8003D930 18400003 */ blez $v0, .L8003D940
/* 03E534 8003D934 004AC823 */ subu $t9, $v0, $t2
/* 03E538 8003D938 10000002 */ b .L8003D944
/* 03E53C 8003D93C A5390004 */ sh $t9, 4($t1)
.L8003D940:
/* 03E540 8003D940 A5200004 */ sh $zero, 4($t1)
.L8003D944:
/* 03E544 8003D944 8E0B004C */ lw $t3, 0x4c($s0)
/* 03E548 8003D948 00000000 */ nop
/* 03E54C 8003D94C 916C0013 */ lbu $t4, 0x13($t3)
/* 03E550 8003D950 00000000 */ nop
/* 03E554 8003D954 29810078 */ slti $at, $t4, 0x78
/* 03E558 8003D958 1020001C */ beqz $at, .L8003D9CC
/* 03E55C 8003D95C 00000000 */ nop
/* 03E560 8003D960 AFA40044 */ sw $a0, 0x44($sp)
/* 03E564 8003D964 0C01AF66 */ jal get_current_level_race_type
/* 03E568 8003D968 AFA90030 */ sw $t1, 0x30($sp)
/* 03E56C 8003D96C 8FA40044 */ lw $a0, 0x44($sp)
/* 03E570 8003D970 8FA90030 */ lw $t1, 0x30($sp)
/* 03E574 8003D974 24010041 */ li $at, 65
/* 03E578 8003D978 14410014 */ bne $v0, $at, .L8003D9CC
/* 03E57C 8003D97C 00000000 */ nop
/* 03E580 8003D980 8E0E004C */ lw $t6, 0x4c($s0)
/* 03E584 8003D984 00000000 */ nop
/* 03E588 8003D988 8DC30000 */ lw $v1, ($t6)
/* 03E58C 8003D98C 00000000 */ nop
/* 03E590 8003D990 1060000E */ beqz $v1, .L8003D9CC
/* 03E594 8003D994 00000000 */ nop
/* 03E598 8003D998 8C6F0040 */ lw $t7, 0x40($v1)
/* 03E59C 8003D99C 24010001 */ li $at, 1
/* 03E5A0 8003D9A0 81ED0054 */ lb $t5, 0x54($t7)
/* 03E5A4 8003D9A4 00000000 */ nop
/* 03E5A8 8003D9A8 15A10008 */ bne $t5, $at, .L8003D9CC
/* 03E5AC 8003D9AC 00000000 */ nop
/* 03E5B0 8003D9B0 8C680064 */ lw $t0, 0x64($v1)
/* 03E5B4 8003D9B4 2401FFFF */ li $at, -1
/* 03E5B8 8003D9B8 85180000 */ lh $t8, ($t0)
/* 03E5BC 8003D9BC 00000000 */ nop
/* 03E5C0 8003D9C0 17010002 */ bne $t8, $at, .L8003D9CC
/* 03E5C4 8003D9C4 00000000 */ nop
/* 03E5C8 8003D9C8 2484001E */ addiu $a0, $a0, 0x1e
.L8003D9CC:
/* 03E5CC 8003D9CC 8E02004C */ lw $v0, 0x4c($s0)
/* 03E5D0 8003D9D0 00000000 */ nop
/* 03E5D4 8003D9D4 904A0013 */ lbu $t2, 0x13($v0)
/* 03E5D8 8003D9D8 00000000 */ nop
/* 03E5DC 8003D9DC 0144082A */ slt $at, $t2, $a0
/* 03E5E0 8003D9E0 1020006C */ beqz $at, .L8003DB94
/* 03E5E4 8003D9E4 8FBF0024 */ lw $ra, 0x24($sp)
/* 03E5E8 8003D9E8 85390004 */ lh $t9, 4($t1)
/* 03E5EC 8003D9EC 00000000 */ nop
/* 03E5F0 8003D9F0 17200068 */ bnez $t9, .L8003DB94
/* 03E5F4 8003D9F4 8FBF0024 */ lw $ra, 0x24($sp)
/* 03E5F8 8003D9F8 8C430000 */ lw $v1, ($v0)
/* 03E5FC 8003D9FC 00000000 */ nop
/* 03E600 8003DA00 10600064 */ beqz $v1, .L8003DB94
/* 03E604 8003DA04 8FBF0024 */ lw $ra, 0x24($sp)
/* 03E608 8003DA08 8C6B0040 */ lw $t3, 0x40($v1)
/* 03E60C 8003DA0C 24010001 */ li $at, 1
/* 03E610 8003DA10 816C0054 */ lb $t4, 0x54($t3)
/* 03E614 8003DA14 00000000 */ nop
/* 03E618 8003DA18 1581005E */ bne $t4, $at, .L8003DB94
/* 03E61C 8003DA1C 8FBF0024 */ lw $ra, 0x24($sp)
/* 03E620 8003DA20 8C680064 */ lw $t0, 0x64($v1)
/* 03E624 8003DA24 AFA90030 */ sw $t1, 0x30($sp)
/* 03E628 8003DA28 AFA3006C */ sw $v1, 0x6c($sp)
/* 03E62C 8003DA2C 0C01AF66 */ jal get_current_level_race_type
/* 03E630 8003DA30 AFA80068 */ sw $t0, 0x68($sp)
/* 03E634 8003DA34 8FA3006C */ lw $v1, 0x6c($sp)
/* 03E638 8003DA38 8FA80068 */ lw $t0, 0x68($sp)
/* 03E63C 8003DA3C 8FA90030 */ lw $t1, 0x30($sp)
/* 03E640 8003DA40 24010041 */ li $at, 65
/* 03E644 8003DA44 14410006 */ bne $v0, $at, .L8003DA60
/* 03E648 8003DA48 24040022 */ li $a0, 34
/* 03E64C 8003DA4C 810E0185 */ lb $t6, 0x185($t0)
/* 03E650 8003DA50 00000000 */ nop
/* 03E654 8003DA54 29C10002 */ slti $at, $t6, 2
/* 03E658 8003DA58 1020004E */ beqz $at, .L8003DB94
/* 03E65C 8003DA5C 8FBF0024 */ lw $ra, 0x24($sp)
.L8003DA60:
/* 03E660 8003DA60 8D0F0180 */ lw $t7, 0x180($t0)
/* 03E664 8003DA64 240D0004 */ li $t5, 4
/* 03E668 8003DA68 AFAF0034 */ sw $t7, 0x34($sp)
/* 03E66C 8003DA6C 8C670014 */ lw $a3, 0x14($v1)
/* 03E670 8003DA70 8C660010 */ lw $a2, 0x10($v1)
/* 03E674 8003DA74 8C65000C */ lw $a1, 0xc($v1)
/* 03E678 8003DA78 25180180 */ addiu $t8, $t0, 0x180
/* 03E67C 8003DA7C AFB80014 */ sw $t8, 0x14($sp)
/* 03E680 8003DA80 AFA90030 */ sw $t1, 0x30($sp)
/* 03E684 8003DA84 AFA80068 */ sw $t0, 0x68($sp)
/* 03E688 8003DA88 AFA3006C */ sw $v1, 0x6c($sp)
/* 03E68C 8003DA8C 0C002556 */ jal func_80009558
/* 03E690 8003DA90 AFAD0010 */ sw $t5, 0x10($sp)
/* 03E694 8003DA94 8FA40034 */ lw $a0, 0x34($sp)
/* 03E698 8003DA98 8FA3006C */ lw $v1, 0x6c($sp)
/* 03E69C 8003DA9C 8FA80068 */ lw $t0, 0x68($sp)
/* 03E6A0 8003DAA0 8FA90030 */ lw $t1, 0x30($sp)
/* 03E6A4 8003DAA4 10800009 */ beqz $a0, .L8003DACC
/* 03E6A8 8003DAA8 00000000 */ nop
/* 03E6AC 8003DAAC AFA3006C */ sw $v1, 0x6c($sp)
/* 03E6B0 8003DAB0 AFA80068 */ sw $t0, 0x68($sp)
/* 03E6B4 8003DAB4 0C0025BE */ jal func_800096F8
/* 03E6B8 8003DAB8 AFA90030 */ sw $t1, 0x30($sp)
/* 03E6BC 8003DABC 8FA3006C */ lw $v1, 0x6c($sp)
/* 03E6C0 8003DAC0 8FA80068 */ lw $t0, 0x68($sp)
/* 03E6C4 8003DAC4 8FA90030 */ lw $t1, 0x30($sp)
/* 03E6C8 8003DAC8 00000000 */ nop
.L8003DACC:
/* 03E6CC 8003DACC 850A0000 */ lh $t2, ($t0)
/* 03E6D0 8003DAD0 2401FFFF */ li $at, -1
/* 03E6D4 8003DAD4 11410013 */ beq $t2, $at, .L8003DB24
/* 03E6D8 8003DAD8 00000000 */ nop
/* 03E6DC 8003DADC 81190185 */ lb $t9, 0x185($t0)
/* 03E6E0 8003DAE0 24010009 */ li $at, 9
/* 03E6E4 8003DAE4 1721000F */ bne $t9, $at, .L8003DB24
/* 03E6E8 8003DAE8 00000000 */ nop
/* 03E6EC 8003DAEC 81040003 */ lb $a0, 3($t0)
/* 03E6F0 8003DAF0 8C65000C */ lw $a1, 0xc($v1)
/* 03E6F4 8003DAF4 8C660010 */ lw $a2, 0x10($v1)
/* 03E6F8 8003DAF8 8C670014 */ lw $a3, 0x14($v1)
/* 03E6FC 8003DAFC 2484007B */ addiu $a0, $a0, 0x7b
/* 03E700 8003DB00 308BFFFF */ andi $t3, $a0, 0xffff
/* 03E704 8003DB04 01602025 */ move $a0, $t3
/* 03E708 8003DB08 AFA90030 */ sw $t1, 0x30($sp)
/* 03E70C 8003DB0C AFA80068 */ sw $t0, 0x68($sp)
/* 03E710 8003DB10 0C0007AA */ jal play_sound_spatial
/* 03E714 8003DB14 AFA00010 */ sw $zero, 0x10($sp)
/* 03E718 8003DB18 8FA80068 */ lw $t0, 0x68($sp)
/* 03E71C 8003DB1C 8FA90030 */ lw $t1, 0x30($sp)
/* 03E720 8003DB20 00000000 */ nop
.L8003DB24:
/* 03E724 8003DB24 810C0185 */ lb $t4, 0x185($t0)
/* 03E728 8003DB28 240D0001 */ li $t5, 1
/* 03E72C 8003DB2C 258E0001 */ addiu $t6, $t4, 1
/* 03E730 8003DB30 A10E0185 */ sb $t6, 0x185($t0)
/* 03E734 8003DB34 8FAF003C */ lw $t7, 0x3c($sp)
/* 03E738 8003DB38 00000000 */ nop
/* 03E73C 8003DB3C 8DE20004 */ lw $v0, 4($t7)
/* 03E740 8003DB40 00000000 */ nop
/* 03E744 8003DB44 10400002 */ beqz $v0, .L8003DB50
/* 03E748 8003DB48 00000000 */ nop
/* 03E74C 8003DB4C AC4D007C */ sw $t5, 0x7c($v0)
.L8003DB50:
/* 03E750 8003DB50 0C0270F2 */ jal get_number_of_active_players
/* 03E754 8003DB54 AFA90030 */ sw $t1, 0x30($sp)
/* 03E758 8003DB58 8FA90030 */ lw $t1, 0x30($sp)
/* 03E75C 8003DB5C 28410002 */ slti $at, $v0, 2
/* 03E760 8003DB60 14200005 */ bnez $at, .L8003DB78
/* 03E764 8003DB64 2418FFFF */ li $t8, -1
/* 03E768 8003DB68 0C003FEE */ jal gParticlePtrList_addObject
/* 03E76C 8003DB6C 02002025 */ move $a0, $s0
/* 03E770 8003DB70 10000008 */ b .L8003DB94
/* 03E774 8003DB74 8FBF0024 */ lw $ra, 0x24($sp)
.L8003DB78:
/* 03E778 8003DB78 AD380000 */ sw $t8, ($t1)
/* 03E77C 8003DB7C 240A0001 */ li $t2, 1
/* 03E780 8003DB80 AE0A0074 */ sw $t2, 0x74($s0)
/* 03E784 8003DB84 8FA50074 */ lw $a1, 0x74($sp)
/* 03E788 8003DB88 0C02BF0F */ jal func_800AFC3C
/* 03E78C 8003DB8C 02002025 */ move $a0, $s0
/* 03E790 8003DB90 8FBF0024 */ lw $ra, 0x24($sp)
.L8003DB94:
/* 03E794 8003DB94 8FB00020 */ lw $s0, 0x20($sp)
/* 03E798 8003DB98 03E00008 */ jr $ra
/* 03E79C 8003DB9C 27BD0070 */ addiu $sp, $sp, 0x70
@@ -1,283 +0,0 @@
.late_rodata
glabel D_800E6178
.double 1.2
.text
glabel obj_loop_bridge_whaleramp
/* 03D668 8003CA68 27BDFF90 */ addiu $sp, $sp, -0x70
/* 03D66C 8003CA6C 44852000 */ mtc1 $a1, $f4
/* 03D670 8003CA70 AFBF0024 */ sw $ra, 0x24($sp)
/* 03D674 8003CA74 AFB00020 */ sw $s0, 0x20($sp)
/* 03D678 8003CA78 AFA50074 */ sw $a1, 0x74($sp)
/* 03D67C 8003CA7C 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000
/* 03D680 8003CA80 46802020 */ cvt.s.w $f0, $f4
/* 03D684 8003CA84 8DEF0300 */ lw $t7, %lo(osTvType)($t7)
/* 03D688 8003CA88 8C830064 */ lw $v1, 0x64($a0)
/* 03D68C 8003CA8C 8C88003C */ lw $t0, 0x3c($a0)
/* 03D690 8003CA90 00808025 */ move $s0, $a0
/* 03D694 8003CA94 15E00007 */ bnez $t7, .L8003CAB4
/* 03D698 8003CA98 46000306 */ mov.s $f12, $f0
/* 03D69C 8003CA9C 3C01800E */ lui $at, %hi(D_800E6178 + 4) # $at, 0x800e
/* 03D6A0 8003CAA0 C4296178 */ lwc1 $f9, %lo(D_800E6178)($at)
/* 03D6A4 8003CAA4 C428617C */ lwc1 $f8, %lo(D_800E6178 + 4)($at)
/* 03D6A8 8003CAA8 460001A1 */ cvt.d.s $f6, $f0
/* 03D6AC 8003CAAC 46283282 */ mul.d $f10, $f6, $f8
/* 03D6B0 8003CAB0 46205320 */ cvt.s.d $f12, $f10
.L8003CAB4:
/* 03D6B4 8003CAB4 9118000B */ lbu $t8, 0xb($t0)
/* 03D6B8 8003CAB8 24010003 */ li $at, 3
/* 03D6BC 8003CABC 1301004B */ beq $t8, $at, .L8003CBEC
/* 03D6C0 8003CAC0 00000000 */ nop
/* 03D6C4 8003CAC4 8E190078 */ lw $t9, 0x78($s0)
/* 03D6C8 8003CAC8 00000000 */ nop
/* 03D6CC 8003CACC 13200029 */ beqz $t9, .L8003CB74
/* 03D6D0 8003CAD0 00000000 */ nop
/* 03D6D4 8003CAD4 8109000E */ lb $t1, 0xe($t0)
/* 03D6D8 8003CAD8 44803000 */ mtc1 $zero, $f6
/* 03D6DC 8003CADC 44898000 */ mtc1 $t1, $f16
/* 03D6E0 8003CAE0 00000000 */ nop
/* 03D6E4 8003CAE4 468084A0 */ cvt.s.w $f18, $f16
/* 03D6E8 8003CAE8 46009021 */ cvt.d.s $f0, $f18
/* 03D6EC 8003CAEC 46200100 */ add.d $f4, $f0, $f0
/* 03D6F0 8003CAF0 462020A0 */ cvt.s.d $f2, $f4
/* 03D6F4 8003CAF4 4602303C */ c.lt.s $f6, $f2
/* 03D6F8 8003CAF8 00000000 */ nop
/* 03D6FC 8003CAFC 4500000F */ bc1f .L8003CB3C
/* 03D700 8003CB00 00000000 */ nop
/* 03D704 8003CB04 C4680000 */ lwc1 $f8, ($v1)
/* 03D708 8003CB08 C6000010 */ lwc1 $f0, 0x10($s0)
/* 03D70C 8003CB0C 46024280 */ add.s $f10, $f8, $f2
/* 03D710 8003CB10 3C014000 */ li $at, 0x40000000 # 2.000000
/* 03D714 8003CB14 460A003C */ c.lt.s $f0, $f10
/* 03D718 8003CB18 00000000 */ nop
/* 03D71C 8003CB1C 45000080 */ bc1f .L8003CD20
/* 03D720 8003CB20 00000000 */ nop
/* 03D724 8003CB24 44818000 */ mtc1 $at, $f16
/* 03D728 8003CB28 00000000 */ nop
/* 03D72C 8003CB2C 46106482 */ mul.s $f18, $f12, $f16
/* 03D730 8003CB30 46120100 */ add.s $f4, $f0, $f18
/* 03D734 8003CB34 1000007A */ b .L8003CD20
/* 03D738 8003CB38 E6040010 */ swc1 $f4, 0x10($s0)
.L8003CB3C:
/* 03D73C 8003CB3C C4660000 */ lwc1 $f6, ($v1)
/* 03D740 8003CB40 C6000010 */ lwc1 $f0, 0x10($s0)
/* 03D744 8003CB44 46023200 */ add.s $f8, $f6, $f2
/* 03D748 8003CB48 3C014000 */ li $at, 0x40000000 # 2.000000
/* 03D74C 8003CB4C 4600403C */ c.lt.s $f8, $f0
/* 03D750 8003CB50 00000000 */ nop
/* 03D754 8003CB54 45000072 */ bc1f .L8003CD20
/* 03D758 8003CB58 00000000 */ nop
/* 03D75C 8003CB5C 44815000 */ mtc1 $at, $f10
/* 03D760 8003CB60 00000000 */ nop
/* 03D764 8003CB64 460A6402 */ mul.s $f16, $f12, $f10
/* 03D768 8003CB68 46100481 */ sub.s $f18, $f0, $f16
/* 03D76C 8003CB6C 1000006C */ b .L8003CD20
/* 03D770 8003CB70 E6120010 */ swc1 $f18, 0x10($s0)
.L8003CB74:
/* 03D774 8003CB74 910A000C */ lbu $t2, 0xc($t0)
/* 03D778 8003CB78 00000000 */ nop
/* 03D77C 8003CB7C 1940000E */ blez $t2, .L8003CBB8
/* 03D780 8003CB80 00000000 */ nop
/* 03D784 8003CB84 C6000010 */ lwc1 $f0, 0x10($s0)
/* 03D788 8003CB88 C4640000 */ lwc1 $f4, ($v1)
/* 03D78C 8003CB8C 3C014000 */ li $at, 0x40000000 # 2.000000
/* 03D790 8003CB90 4600203C */ c.lt.s $f4, $f0
/* 03D794 8003CB94 00000000 */ nop
/* 03D798 8003CB98 45000061 */ bc1f .L8003CD20
/* 03D79C 8003CB9C 00000000 */ nop
/* 03D7A0 8003CBA0 44813000 */ mtc1 $at, $f6
/* 03D7A4 8003CBA4 00000000 */ nop
/* 03D7A8 8003CBA8 46066202 */ mul.s $f8, $f12, $f6
/* 03D7AC 8003CBAC 46080281 */ sub.s $f10, $f0, $f8
/* 03D7B0 8003CBB0 1000005B */ b .L8003CD20
/* 03D7B4 8003CBB4 E60A0010 */ swc1 $f10, 0x10($s0)
.L8003CBB8:
/* 03D7B8 8003CBB8 C6000010 */ lwc1 $f0, 0x10($s0)
/* 03D7BC 8003CBBC C4700000 */ lwc1 $f16, ($v1)
/* 03D7C0 8003CBC0 3C014000 */ li $at, 0x40000000 # 2.000000
/* 03D7C4 8003CBC4 4610003C */ c.lt.s $f0, $f16
/* 03D7C8 8003CBC8 00000000 */ nop
/* 03D7CC 8003CBCC 45000054 */ bc1f .L8003CD20
/* 03D7D0 8003CBD0 00000000 */ nop
/* 03D7D4 8003CBD4 44819000 */ mtc1 $at, $f18
/* 03D7D8 8003CBD8 00000000 */ nop
/* 03D7DC 8003CBDC 46126102 */ mul.s $f4, $f12, $f18
/* 03D7E0 8003CBE0 46040180 */ add.s $f6, $f0, $f4
/* 03D7E4 8003CBE4 1000004E */ b .L8003CD20
/* 03D7E8 8003CBE8 E6060010 */ swc1 $f6, 0x10($s0)
.L8003CBEC:
/* 03D7EC 8003CBEC 8E0B0078 */ lw $t3, 0x78($s0)
/* 03D7F0 8003CBF0 00000000 */ nop
/* 03D7F4 8003CBF4 11600023 */ beqz $t3, .L8003CC84
/* 03D7F8 8003CBF8 00000000 */ nop
/* 03D7FC 8003CBFC 86020002 */ lh $v0, 2($s0)
/* 03D800 8003CC00 8FAC0074 */ lw $t4, 0x74($sp)
/* 03D804 8003CC04 2841ED01 */ slti $at, $v0, -0x12ff
/* 03D808 8003CC08 14200008 */ bnez $at, .L8003CC2C
/* 03D80C 8003CC0C 000C6880 */ sll $t5, $t4, 2
/* 03D810 8003CC10 01AC6823 */ subu $t5, $t5, $t4
/* 03D814 8003CC14 000D6880 */ sll $t5, $t5, 2
/* 03D818 8003CC18 01AC6823 */ subu $t5, $t5, $t4
/* 03D81C 8003CC1C 000D6880 */ sll $t5, $t5, 2
/* 03D820 8003CC20 01AC6821 */ addu $t5, $t5, $t4
/* 03D824 8003CC24 004D7023 */ subu $t6, $v0, $t5
/* 03D828 8003CC28 A60E0002 */ sh $t6, 2($s0)
.L8003CC2C:
/* 03D82C 8003CC2C 8C6F0004 */ lw $t7, 4($v1)
/* 03D830 8003CC30 27A50050 */ addiu $a1, $sp, 0x50
/* 03D834 8003CC34 15E0003A */ bnez $t7, .L8003CD20
/* 03D838 8003CC38 27A6004C */ addiu $a2, $sp, 0x4c
/* 03D83C 8003CC3C 9104000A */ lbu $a0, 0xa($t0)
/* 03D840 8003CC40 AFA8005C */ sw $t0, 0x5c($sp)
/* 03D844 8003CC44 AFA30060 */ sw $v1, 0x60($sp)
/* 03D848 8003CC48 0C0078DB */ jal func_8001E36C
/* 03D84C 8003CC4C 27A70048 */ addiu $a3, $sp, 0x48
/* 03D850 8003CC50 8FA30060 */ lw $v1, 0x60($sp)
/* 03D854 8003CC54 8FA50050 */ lw $a1, 0x50($sp)
/* 03D858 8003CC58 8FA6004C */ lw $a2, 0x4c($sp)
/* 03D85C 8003CC5C 8FA70048 */ lw $a3, 0x48($sp)
/* 03D860 8003CC60 24180001 */ li $t8, 1
/* 03D864 8003CC64 24790004 */ addiu $t9, $v1, 4
/* 03D868 8003CC68 AFB90014 */ sw $t9, 0x14($sp)
/* 03D86C 8003CC6C AFB80010 */ sw $t8, 0x10($sp)
/* 03D870 8003CC70 0C002556 */ jal func_80009558
/* 03D874 8003CC74 24040249 */ li $a0, 585
/* 03D878 8003CC78 8FA8005C */ lw $t0, 0x5c($sp)
/* 03D87C 8003CC7C 10000029 */ b .L8003CD24
/* 03D880 8003CC80 9103000B */ lbu $v1, 0xb($t0)
.L8003CC84:
/* 03D884 8003CC84 86020002 */ lh $v0, 2($s0)
/* 03D888 8003CC88 8FA90074 */ lw $t1, 0x74($sp)
/* 03D88C 8003CC8C 0441001B */ bgez $v0, .L8003CCFC
/* 03D890 8003CC90 00095080 */ sll $t2, $t1, 2
/* 03D894 8003CC94 01495021 */ addu $t2, $t2, $t1
/* 03D898 8003CC98 000A50C0 */ sll $t2, $t2, 3
/* 03D89C 8003CC9C 004A5821 */ addu $t3, $v0, $t2
/* 03D8A0 8003CCA0 A60B0002 */ sh $t3, 2($s0)
/* 03D8A4 8003CCA4 8C6C0004 */ lw $t4, 4($v1)
/* 03D8A8 8003CCA8 27A50044 */ addiu $a1, $sp, 0x44
/* 03D8AC 8003CCAC 1580001C */ bnez $t4, .L8003CD20
/* 03D8B0 8003CCB0 27A60040 */ addiu $a2, $sp, 0x40
/* 03D8B4 8003CCB4 9104000A */ lbu $a0, 0xa($t0)
/* 03D8B8 8003CCB8 AFA8005C */ sw $t0, 0x5c($sp)
/* 03D8BC 8003CCBC AFA30060 */ sw $v1, 0x60($sp)
/* 03D8C0 8003CCC0 0C0078DB */ jal func_8001E36C
/* 03D8C4 8003CCC4 27A7003C */ addiu $a3, $sp, 0x3c
/* 03D8C8 8003CCC8 8FA30060 */ lw $v1, 0x60($sp)
/* 03D8CC 8003CCCC 8FA50044 */ lw $a1, 0x44($sp)
/* 03D8D0 8003CCD0 8FA60040 */ lw $a2, 0x40($sp)
/* 03D8D4 8003CCD4 8FA7003C */ lw $a3, 0x3c($sp)
/* 03D8D8 8003CCD8 240D0001 */ li $t5, 1
/* 03D8DC 8003CCDC 246E0004 */ addiu $t6, $v1, 4
/* 03D8E0 8003CCE0 AFAE0014 */ sw $t6, 0x14($sp)
/* 03D8E4 8003CCE4 AFAD0010 */ sw $t5, 0x10($sp)
/* 03D8E8 8003CCE8 0C002556 */ jal func_80009558
/* 03D8EC 8003CCEC 24040249 */ li $a0, 585
/* 03D8F0 8003CCF0 8FA8005C */ lw $t0, 0x5c($sp)
/* 03D8F4 8003CCF4 1000000B */ b .L8003CD24
/* 03D8F8 8003CCF8 9103000B */ lbu $v1, 0xb($t0)
.L8003CCFC:
/* 03D8FC 8003CCFC A6000002 */ sh $zero, 2($s0)
/* 03D900 8003CD00 8C640004 */ lw $a0, 4($v1)
/* 03D904 8003CD04 00000000 */ nop
/* 03D908 8003CD08 10800005 */ beqz $a0, .L8003CD20
/* 03D90C 8003CD0C 00000000 */ nop
/* 03D910 8003CD10 0C0025BE */ jal func_800096F8
/* 03D914 8003CD14 AFA8005C */ sw $t0, 0x5c($sp)
/* 03D918 8003CD18 8FA8005C */ lw $t0, 0x5c($sp)
/* 03D91C 8003CD1C 00000000 */ nop
.L8003CD20:
/* 03D920 8003CD20 9103000B */ lbu $v1, 0xb($t0)
.L8003CD24:
/* 03D924 8003CD24 24010002 */ li $at, 2
/* 03D928 8003CD28 10600005 */ beqz $v1, .L8003CD40
/* 03D92C 8003CD2C 00000000 */ nop
/* 03D930 8003CD30 1061000E */ beq $v1, $at, .L8003CD6C
/* 03D934 8003CD34 24090001 */ li $t1, 1
/* 03D938 8003CD38 10000029 */ b .L8003CDE0
/* 03D93C 8003CD3C 9104000A */ lbu $a0, 0xa($t0)
.L8003CD40:
/* 03D940 8003CD40 8E02004C */ lw $v0, 0x4c($s0)
/* 03D944 8003CD44 AE000078 */ sw $zero, 0x78($s0)
/* 03D948 8003CD48 9118000C */ lbu $t8, 0xc($t0)
/* 03D94C 8003CD4C 904F0013 */ lbu $t7, 0x13($v0)
/* 03D950 8003CD50 24190001 */ li $t9, 1
/* 03D954 8003CD54 01F8082A */ slt $at, $t7, $t8
/* 03D958 8003CD58 10200034 */ beqz $at, .L8003CE2C
/* 03D95C 8003CD5C 241800FF */ li $t8, 255
/* 03D960 8003CD60 8E02004C */ lw $v0, 0x4c($s0)
/* 03D964 8003CD64 10000030 */ b .L8003CE28
/* 03D968 8003CD68 AE190078 */ sw $t9, 0x78($s0)
.L8003CD6C:
/* 03D96C 8003CD6C AE090078 */ sw $t1, 0x78($s0)
/* 03D970 8003CD70 AFA8005C */ sw $t0, 0x5c($sp)
/* 03D974 8003CD74 0C006EB2 */ jal get_racer_object
/* 03D978 8003CD78 00002025 */ move $a0, $zero
/* 03D97C 8003CD7C 8FA8005C */ lw $t0, 0x5c($sp)
/* 03D980 8003CD80 10400013 */ beqz $v0, .L8003CDD0
/* 03D984 8003CD84 00000000 */ nop
/* 03D988 8003CD88 8C440064 */ lw $a0, 0x64($v0)
/* 03D98C 8003CD8C 24010001 */ li $at, 1
/* 03D990 8003CD90 808301D6 */ lb $v1, 0x1d6($a0)
/* 03D994 8003CD94 00000000 */ nop
/* 03D998 8003CD98 10610005 */ beq $v1, $at, .L8003CDB0
/* 03D99C 8003CD9C 24010002 */ li $at, 2
/* 03D9A0 8003CDA0 10610005 */ beq $v1, $at, .L8003CDB8
/* 03D9A4 8003CDA4 24020004 */ li $v0, 4
/* 03D9A8 8003CDA8 10000003 */ b .L8003CDB8
/* 03D9AC 8003CDAC 24020001 */ li $v0, 1
.L8003CDB0:
/* 03D9B0 8003CDB0 10000001 */ b .L8003CDB8
/* 03D9B4 8003CDB4 24020002 */ li $v0, 2
.L8003CDB8:
/* 03D9B8 8003CDB8 910A000F */ lbu $t2, 0xf($t0)
/* 03D9BC 8003CDBC 00000000 */ nop
/* 03D9C0 8003CDC0 01425824 */ and $t3, $t2, $v0
/* 03D9C4 8003CDC4 11600002 */ beqz $t3, .L8003CDD0
/* 03D9C8 8003CDC8 00000000 */ nop
/* 03D9CC 8003CDCC AE000078 */ sw $zero, 0x78($s0)
.L8003CDD0:
/* 03D9D0 8003CDD0 8E02004C */ lw $v0, 0x4c($s0)
/* 03D9D4 8003CDD4 10000015 */ b .L8003CE2C
/* 03D9D8 8003CDD8 241800FF */ li $t8, 255
/* 03D9DC 8003CDDC 9104000A */ lbu $a0, 0xa($t0)
.L8003CDE0:
/* 03D9E0 8003CDE0 0C0078BB */ jal func_8001E2EC
/* 03D9E4 8003CDE4 AFA8005C */ sw $t0, 0x5c($sp)
/* 03D9E8 8003CDE8 8FA8005C */ lw $t0, 0x5c($sp)
/* 03D9EC 8003CDEC 10400005 */ beqz $v0, .L8003CE04
/* 03D9F0 8003CDF0 00000000 */ nop
/* 03D9F4 8003CDF4 910C000D */ lbu $t4, 0xd($t0)
/* 03D9F8 8003CDF8 00000000 */ nop
/* 03D9FC 8003CDFC 000C6840 */ sll $t5, $t4, 1
/* 03DA00 8003CE00 AE0D0078 */ sw $t5, 0x78($s0)
.L8003CE04:
/* 03DA04 8003CE04 8E020078 */ lw $v0, 0x78($s0)
/* 03DA08 8003CE08 8FAE0074 */ lw $t6, 0x74($sp)
/* 03DA0C 8003CE0C 18400003 */ blez $v0, .L8003CE1C
/* 03DA10 8003CE10 004E7823 */ subu $t7, $v0, $t6
/* 03DA14 8003CE14 10000002 */ b .L8003CE20
/* 03DA18 8003CE18 AE0F0078 */ sw $t7, 0x78($s0)
.L8003CE1C:
/* 03DA1C 8003CE1C AE000078 */ sw $zero, 0x78($s0)
.L8003CE20:
/* 03DA20 8003CE20 8E02004C */ lw $v0, 0x4c($s0)
/* 03DA24 8003CE24 00000000 */ nop
.L8003CE28:
/* 03DA28 8003CE28 241800FF */ li $t8, 255
.L8003CE2C:
/* 03DA2C 8003CE2C A0580013 */ sb $t8, 0x13($v0)
/* 03DA30 8003CE30 8E19004C */ lw $t9, 0x4c($s0)
/* 03DA34 8003CE34 00000000 */ nop
/* 03DA38 8003CE38 AF200000 */ sw $zero, ($t9)
/* 03DA3C 8003CE3C 8E02004C */ lw $v0, 0x4c($s0)
/* 03DA40 8003CE40 00000000 */ nop
/* 03DA44 8003CE44 84490014 */ lh $t1, 0x14($v0)
/* 03DA48 8003CE48 00000000 */ nop
/* 03DA4C 8003CE4C 312AFFF7 */ andi $t2, $t1, 0xfff7
/* 03DA50 8003CE50 A44A0014 */ sh $t2, 0x14($v0)
/* 03DA54 8003CE54 8FBF0024 */ lw $ra, 0x24($sp)
/* 03DA58 8003CE58 8FB00020 */ lw $s0, 0x20($sp)
/* 03DA5C 8003CE5C 03E00008 */ jr $ra
/* 03DA60 8003CE60 27BD0070 */ addiu $sp, $sp, 0x70
@@ -1,471 +0,0 @@
.late_rodata
glabel D_800E6250
.double 1.2
glabel jpt_800E6258
.word L80042378, L800426B8, L80042898, L800428E8, L8004292C
glabel D_800E626C
.float 1.34
glabel D_800E6270
.float 0.05
glabel D_800E6274
.float 0.15
glabel D_800E6278
.float 0.15
.text
glabel obj_loop_frog
/* 042EF0 800422F0 27BDFEF0 */ addiu $sp, $sp, -0x110
/* 042EF4 800422F4 44852000 */ mtc1 $a1, $f4
/* 042EF8 800422F8 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000
/* 042EFC 800422FC 46802020 */ cvt.s.w $f0, $f4
/* 042F00 80042300 8DCE0300 */ lw $t6, %lo(osTvType)($t6)
/* 042F04 80042304 AFB10030 */ sw $s1, 0x30($sp)
/* 042F08 80042308 00808825 */ move $s1, $a0
/* 042F0C 8004230C AFBF0034 */ sw $ra, 0x34($sp)
/* 042F10 80042310 AFB0002C */ sw $s0, 0x2c($sp)
/* 042F14 80042314 E7B70020 */ swc1 $f23, 0x20($sp)
/* 042F18 80042318 E7B60024 */ swc1 $f22, 0x24($sp)
/* 042F1C 8004231C E7B50018 */ swc1 $f21, 0x18($sp)
/* 042F20 80042320 E7B4001C */ swc1 $f20, 0x1c($sp)
/* 042F24 80042324 15C00007 */ bnez $t6, .L80042344
/* 042F28 80042328 46000086 */ mov.s $f2, $f0
/* 042F2C 8004232C 3C01800E */ lui $at, %hi(D_800E6250 + 4) # $at, 0x800e
/* 042F30 80042330 C4296250 */ lwc1 $f9, %lo(D_800E6250)($at)
/* 042F34 80042334 C4286254 */ lwc1 $f8, %lo(D_800E6250 + 4)($at)
/* 042F38 80042338 460001A1 */ cvt.d.s $f6, $f0
/* 042F3C 8004233C 46283282 */ mul.d $f10, $f6, $f8
/* 042F40 80042340 462050A0 */ cvt.s.d $f2, $f10
.L80042344:
/* 042F44 80042344 8E300064 */ lw $s0, 0x64($s1)
/* 042F48 80042348 00000000 */ nop
/* 042F4C 8004234C 920F0014 */ lbu $t7, 0x14($s0)
/* 042F50 80042350 00000000 */ nop
/* 042F54 80042354 2DE10005 */ sltiu $at, $t7, 5
/* 042F58 80042358 10200186 */ beqz $at, .L80042974
/* 042F5C 8004235C 000F7880 */ sll $t7, $t7, 2
/* 042F60 80042360 3C01800E */ lui $at, %hi(jpt_800E6258) # $at, 0x800e
/* 042F64 80042364 002F0821 */ addu $at, $at, $t7
/* 042F68 80042368 8C2F6258 */ lw $t7, %lo(jpt_800E6258)($at)
/* 042F6C 8004236C 00000000 */ nop
/* 042F70 80042370 01E00008 */ jr $t7
/* 042F74 80042374 00000000 */ nop
glabel L80042378
/* 042F78 80042378 AFA00104 */ sw $zero, 0x104($sp)
/* 042F7C 8004237C 82020019 */ lb $v0, 0x19($s0)
/* 042F80 80042380 3C0742C0 */ lui $a3, 0x42c0
/* 042F84 80042384 18400003 */ blez $v0, .L80042394
/* 042F88 80042388 24190001 */ li $t9, 1
/* 042F8C 8004238C 0045C023 */ subu $t8, $v0, $a1
/* 042F90 80042390 A2180019 */ sb $t8, 0x19($s0)
.L80042394:
/* 042F94 80042394 C62C000C */ lwc1 $f12, 0xc($s1)
/* 042F98 80042398 C62E0010 */ lwc1 $f14, 0x10($s1)
/* 042F9C 8004239C 8E260014 */ lw $a2, 0x14($s1)
/* 042FA0 800423A0 27A80044 */ addiu $t0, $sp, 0x44
/* 042FA4 800423A4 AFA80014 */ sw $t0, 0x14($sp)
/* 042FA8 800423A8 AFA50114 */ sw $a1, 0x114($sp)
/* 042FAC 800423AC 0C005B7A */ jal func_80016DE8
/* 042FB0 800423B0 AFB90010 */ sw $t9, 0x10($sp)
/* 042FB4 800423B4 8FA50114 */ lw $a1, 0x114($sp)
/* 042FB8 800423B8 1840004E */ blez $v0, .L800424F4
/* 042FBC 800423BC 00000000 */ nop
/* 042FC0 800423C0 8FA90044 */ lw $t1, 0x44($sp)
/* 042FC4 800423C4 C620000C */ lwc1 $f0, 0xc($s1)
/* 042FC8 800423C8 C62C0010 */ lwc1 $f12, 0x10($s1)
/* 042FCC 800423CC C6220014 */ lwc1 $f2, 0x14($s1)
/* 042FD0 800423D0 820A0019 */ lb $t2, 0x19($s0)
/* 042FD4 800423D4 C530000C */ lwc1 $f16, 0xc($t1)
/* 042FD8 800423D8 C5320010 */ lwc1 $f18, 0x10($t1)
/* 042FDC 800423DC C5240014 */ lwc1 $f4, 0x14($t1)
/* 042FE0 800423E0 46100501 */ sub.s $f20, $f0, $f16
/* 042FE4 800423E4 46126381 */ sub.s $f14, $f12, $f18
/* 042FE8 800423E8 1D40002E */ bgtz $t2, .L800424A4
/* 042FEC 800423EC 46041581 */ sub.s $f22, $f2, $f4
/* 042FF0 800423F0 4614A182 */ mul.s $f6, $f20, $f20
/* 042FF4 800423F4 3C0144C8 */ li $at, 0x44C80000 # 1600.000000
/* 042FF8 800423F8 44812000 */ mtc1 $at, $f4
/* 042FFC 800423FC 460E7202 */ mul.s $f8, $f14, $f14
/* 043000 80042400 00000000 */ nop
/* 043004 80042404 4616B402 */ mul.s $f16, $f22, $f22
/* 043008 80042408 46083280 */ add.s $f10, $f6, $f8
/* 04300C 8004240C 46105480 */ add.s $f18, $f10, $f16
/* 043010 80042410 4604903C */ c.lt.s $f18, $f4
/* 043014 80042414 00000000 */ nop
/* 043018 80042418 45000022 */ bc1f .L800424A4
/* 04301C 8004241C 00000000 */ nop
/* 043020 80042420 920B0015 */ lbu $t3, 0x15($s0)
/* 043024 80042424 240D0002 */ li $t5, 2
/* 043028 80042428 11600014 */ beqz $t3, .L8004247C
/* 04302C 8004242C 2404013F */ li $a0, 319
/* 043030 80042430 44050000 */ mfc1 $a1, $f0
/* 043034 80042434 44066000 */ mfc1 $a2, $f12
/* 043038 80042438 44071000 */ mfc1 $a3, $f2
/* 04303C 8004243C 240C0004 */ li $t4, 4
/* 043040 80042440 AFAC0010 */ sw $t4, 0x10($sp)
/* 043044 80042444 24040174 */ li $a0, 372
/* 043048 80042448 0C002556 */ jal func_80009558
/* 04304C 8004244C AFA00014 */ sw $zero, 0x14($sp)
/* 043050 80042450 24040000 */ li $a0, 0
/* 043054 80042454 0C027A9E */ jal set_eeprom_settings_value
/* 043058 80042458 24050002 */ li $a1, 2
/* 04305C 8004245C 0C0270B8 */ jal set_magic_code_flags
/* 043060 80042460 24040002 */ li $a0, 2
/* 043064 80042464 0C01B629 */ jal func_8006D8A4
/* 043068 80042468 00000000 */ nop
/* 04306C 8004246C 0C003FEE */ jal gParticlePtrList_addObject
/* 043070 80042470 02202025 */ move $a0, $s1
/* 043074 80042474 10000140 */ b .L80042978
/* 043078 80042478 8FBF0034 */ lw $ra, 0x34($sp)
.L8004247C:
/* 04307C 8004247C A20D0014 */ sb $t5, 0x14($s0)
/* 043080 80042480 8E270014 */ lw $a3, 0x14($s1)
/* 043084 80042484 8E260010 */ lw $a2, 0x10($s1)
/* 043088 80042488 8E25000C */ lw $a1, 0xc($s1)
/* 04308C 8004248C 240E0004 */ li $t6, 4
/* 043090 80042490 AFAE0010 */ sw $t6, 0x10($sp)
/* 043094 80042494 0C002556 */ jal func_80009558
/* 043098 80042498 AFA00014 */ sw $zero, 0x14($sp)
/* 04309C 8004249C 1000002A */ b .L80042548
/* 0430A0 800424A0 8FAE0104 */ lw $t6, 0x104($sp)
.L800424A4:
/* 0430A4 800424A4 3C014290 */ li $at, 0x42900000 # 72.000000
/* 0430A8 800424A8 44813000 */ mtc1 $at, $f6
/* 0430AC 800424AC 920F0015 */ lbu $t7, 0x15($s0)
/* 0430B0 800424B0 4600A307 */ neg.s $f12, $f20
/* 0430B4 800424B4 11E00007 */ beqz $t7, .L800424D4
/* 0430B8 800424B8 E606001C */ swc1 $f6, 0x1c($s0)
/* 0430BC 800424BC 3C01800E */ lui $at, %hi(D_800E626C) # $at, 0x800e
/* 0430C0 800424C0 C42A626C */ lwc1 $f10, %lo(D_800E626C)($at)
/* 0430C4 800424C4 C608001C */ lwc1 $f8, 0x1c($s0)
/* 0430C8 800424C8 00000000 */ nop
/* 0430CC 800424CC 460A4402 */ mul.s $f16, $f8, $f10
/* 0430D0 800424D0 E610001C */ swc1 $f16, 0x1c($s0)
.L800424D4:
/* 0430D4 800424D4 0C01C1D4 */ jal arctan2_f
/* 0430D8 800424D8 4600B387 */ neg.s $f14, $f22
/* 0430DC 800424DC 34018000 */ li $at, 32768
/* 0430E0 800424E0 0041C021 */ addu $t8, $v0, $at
/* 0430E4 800424E4 A618001A */ sh $t8, 0x1a($s0)
/* 0430E8 800424E8 24190001 */ li $t9, 1
/* 0430EC 800424EC 10000015 */ b .L80042544
/* 0430F0 800424F0 AFB90104 */ sw $t9, 0x104($sp)
.L800424F4:
/* 0430F4 800424F4 86080016 */ lh $t0, 0x16($s0)
/* 0430F8 800424F8 240B0001 */ li $t3, 1
/* 0430FC 800424FC 01054823 */ subu $t1, $t0, $a1
/* 043100 80042500 A6090016 */ sh $t1, 0x16($s0)
/* 043104 80042504 860A0016 */ lh $t2, 0x16($s0)
/* 043108 80042508 24050048 */ li $a1, 72
/* 04310C 8004250C 0541000D */ bgez $t2, .L80042544
/* 043110 80042510 24040028 */ li $a0, 40
/* 043114 80042514 0C01BE53 */ jal get_random_number_from_range
/* 043118 80042518 AFAB0104 */ sw $t3, 0x104($sp)
/* 04311C 8004251C 44829000 */ mtc1 $v0, $f18
/* 043120 80042520 2404C000 */ li $a0, -16384
/* 043124 80042524 46809120 */ cvt.s.w $f4, $f18
/* 043128 80042528 24054000 */ li $a1, 16384
/* 04312C 8004252C 0C01BE53 */ jal get_random_number_from_range
/* 043130 80042530 E604001C */ swc1 $f4, 0x1c($s0)
/* 043134 80042534 862C0000 */ lh $t4, ($s1)
/* 043138 80042538 00000000 */ nop
/* 04313C 8004253C 004C6821 */ addu $t5, $v0, $t4
/* 043140 80042540 A60D001A */ sh $t5, 0x1a($s0)
.L80042544:
/* 043144 80042544 8FAE0104 */ lw $t6, 0x104($sp)
.L80042548:
/* 043148 80042548 00001025 */ move $v0, $zero
/* 04314C 8004254C 11C00109 */ beqz $t6, .L80042974
/* 043150 80042550 00001825 */ move $v1, $zero
.L80042554:
/* 043154 80042554 8604001A */ lh $a0, 0x1a($s0)
/* 043158 80042558 AFA30100 */ sw $v1, 0x100($sp)
/* 04315C 8004255C 0C01C1F1 */ jal sins_f
/* 043160 80042560 AFA20108 */ sw $v0, 0x108($sp)
/* 043164 80042564 C606001C */ lwc1 $f6, 0x1c($s0)
/* 043168 80042568 8604001A */ lh $a0, 0x1a($s0)
/* 04316C 8004256C 46060202 */ mul.s $f8, $f0, $f6
/* 043170 80042570 0C01C1FE */ jal coss_f
/* 043174 80042574 E6080028 */ swc1 $f8, 0x28($s0)
/* 043178 80042578 C60A001C */ lwc1 $f10, 0x1c($s0)
/* 04317C 8004257C 8FA20108 */ lw $v0, 0x108($sp)
/* 043180 80042580 46005407 */ neg.s $f16, $f10
/* 043184 80042584 46100082 */ mul.s $f2, $f0, $f16
/* 043188 80042588 8FA30100 */ lw $v1, 0x100($sp)
/* 04318C 8004258C C6040028 */ lwc1 $f4, 0x28($s0)
/* 043190 80042590 C6080000 */ lwc1 $f8, ($s0)
/* 043194 80042594 E602002C */ swc1 $f2, 0x2c($s0)
/* 043198 80042598 C632000C */ lwc1 $f18, 0xc($s1)
/* 04319C 8004259C C62A0014 */ lwc1 $f10, 0x14($s1)
/* 0431A0 800425A0 46049180 */ add.s $f6, $f18, $f4
/* 0431A4 800425A4 C6120008 */ lwc1 $f18, 8($s0)
/* 0431A8 800425A8 46083501 */ sub.s $f20, $f6, $f8
/* 0431AC 800425AC 24420001 */ addiu $v0, $v0, 1
/* 0431B0 800425B0 46025400 */ add.s $f16, $f10, $f2
/* 0431B4 800425B4 C60A0010 */ lwc1 $f10, 0x10($s0)
/* 0431B8 800425B8 4614A102 */ mul.s $f4, $f20, $f20
/* 0431BC 800425BC 46128581 */ sub.s $f22, $f16, $f18
/* 0431C0 800425C0 28410004 */ slti $at, $v0, 4
/* 0431C4 800425C4 4616B182 */ mul.s $f6, $f22, $f22
/* 0431C8 800425C8 46062200 */ add.s $f8, $f4, $f6
/* 0431CC 800425CC 460A403C */ c.lt.s $f8, $f10
/* 0431D0 800425D0 00000000 */ nop
/* 0431D4 800425D4 45000003 */ bc1f .L800425E4
/* 0431D8 800425D8 00000000 */ nop
/* 0431DC 800425DC 10000005 */ b .L800425F4
/* 0431E0 800425E0 24030001 */ li $v1, 1
.L800425E4:
/* 0431E4 800425E4 860F001A */ lh $t7, 0x1a($s0)
/* 0431E8 800425E8 00000000 */ nop
/* 0431EC 800425EC 25F84000 */ addiu $t8, $t7, 0x4000
/* 0431F0 800425F0 A618001A */ sh $t8, 0x1a($s0)
.L800425F4:
/* 0431F4 800425F4 10200003 */ beqz $at, .L80042604
/* 0431F8 800425F8 00000000 */ nop
/* 0431FC 800425FC 1060FFD5 */ beqz $v1, .L80042554
/* 043200 80042600 00000000 */ nop
.L80042604:
/* 043204 80042604 C620000C */ lwc1 $f0, 0xc($s1)
/* 043208 80042608 C6220014 */ lwc1 $f2, 0x14($s1)
/* 04320C 8004260C 1460000A */ bnez $v1, .L80042638
/* 043210 80042610 00000000 */ nop
/* 043214 80042614 C6100000 */ lwc1 $f16, ($s0)
/* 043218 80042618 C6120008 */ lwc1 $f18, 8($s0)
/* 04321C 8004261C 46008301 */ sub.s $f12, $f16, $f0
/* 043220 80042620 0C01C1D4 */ jal arctan2_f
/* 043224 80042624 46029381 */ sub.s $f14, $f18, $f2
/* 043228 80042628 A602001A */ sh $v0, 0x1a($s0)
/* 04322C 8004262C C6220014 */ lwc1 $f2, 0x14($s1)
/* 043230 80042630 C620000C */ lwc1 $f0, 0xc($s1)
/* 043234 80042634 00000000 */ nop
.L80042638:
/* 043238 80042638 92190015 */ lbu $t9, 0x15($s0)
/* 04323C 8004263C 2404002B */ li $a0, 43
/* 043240 80042640 1320000B */ beqz $t9, .L80042670
/* 043244 80042644 24090004 */ li $t1, 4
/* 043248 80042648 8E260010 */ lw $a2, 0x10($s1)
/* 04324C 8004264C 44050000 */ mfc1 $a1, $f0
/* 043250 80042650 44071000 */ mfc1 $a3, $f2
/* 043254 80042654 24080004 */ li $t0, 4
/* 043258 80042658 AFA80010 */ sw $t0, 0x10($sp)
/* 04325C 8004265C AFA00014 */ sw $zero, 0x14($sp)
/* 043260 80042660 0C002556 */ jal func_80009558
/* 043264 80042664 240401A4 */ li $a0, 420
/* 043268 80042668 10000008 */ b .L8004268C
/* 04326C 8004266C 240A0001 */ li $t2, 1
.L80042670:
/* 043270 80042670 8E260010 */ lw $a2, 0x10($s1)
/* 043274 80042674 44050000 */ mfc1 $a1, $f0
/* 043278 80042678 44071000 */ mfc1 $a3, $f2
/* 04327C 8004267C AFA00014 */ sw $zero, 0x14($sp)
/* 043280 80042680 0C002556 */ jal func_80009558
/* 043284 80042684 AFA90010 */ sw $t1, 0x10($sp)
/* 043288 80042688 240A0001 */ li $t2, 1
.L8004268C:
/* 04328C 8004268C A20A0014 */ sb $t2, 0x14($s0)
/* 043290 80042690 C624000C */ lwc1 $f4, 0xc($s1)
/* 043294 80042694 860C001A */ lh $t4, 0x1a($s0)
/* 043298 80042698 E6040020 */ swc1 $f4, 0x20($s0)
/* 04329C 8004269C C6260014 */ lwc1 $f6, 0x14($s1)
/* 0432A0 800426A0 240B0020 */ li $t3, 32
/* 0432A4 800426A4 A20B0018 */ sb $t3, 0x18($s0)
/* 0432A8 800426A8 000C6823 */ negu $t5, $t4
/* 0432AC 800426AC E6060024 */ swc1 $f6, 0x24($s0)
/* 0432B0 800426B0 100000B0 */ b .L80042974
/* 0432B4 800426B4 A62D0000 */ sh $t5, ($s1)
glabel L800426B8
/* 0432B8 800426B8 820E0018 */ lb $t6, 0x18($s0)
/* 0432BC 800426BC 82020019 */ lb $v0, 0x19($s0)
/* 0432C0 800426C0 01C57823 */ subu $t7, $t6, $a1
/* 0432C4 800426C4 18400003 */ blez $v0, .L800426D4
/* 0432C8 800426C8 A20F0018 */ sb $t7, 0x18($s0)
/* 0432CC 800426CC 0045C023 */ subu $t8, $v0, $a1
/* 0432D0 800426D0 A2180019 */ sb $t8, 0x19($s0)
.L800426D4:
/* 0432D4 800426D4 82030018 */ lb $v1, 0x18($s0)
/* 0432D8 800426D8 00002025 */ move $a0, $zero
/* 0432DC 800426DC 04610006 */ bgez $v1, .L800426F8
/* 0432E0 800426E0 2405012C */ li $a1, 300
/* 0432E4 800426E4 0C01BE53 */ jal get_random_number_from_range
/* 0432E8 800426E8 A2000014 */ sb $zero, 0x14($s0)
/* 0432EC 800426EC A2000018 */ sb $zero, 0x18($s0)
/* 0432F0 800426F0 82030018 */ lb $v1, 0x18($s0)
/* 0432F4 800426F4 A6020016 */ sh $v0, 0x16($s0)
.L800426F8:
/* 0432F8 800426F8 24190020 */ li $t9, 32
/* 0432FC 800426FC 03234023 */ subu $t0, $t9, $v1
/* 043300 80042700 000848C0 */ sll $t1, $t0, 3
/* 043304 80042704 24010003 */ li $at, 3
/* 043308 80042708 0121001A */ div $zero, $t1, $at
/* 04330C 8004270C 00005012 */ mflo $t2
/* 043310 80042710 A62A0018 */ sh $t2, 0x18($s1)
/* 043314 80042714 820B0018 */ lb $t3, 0x18($s0)
/* 043318 80042718 00000000 */ nop
/* 04331C 8004271C 000B6680 */ sll $t4, $t3, 0x1a
/* 043320 80042720 0C01C1FE */ jal coss_f
/* 043324 80042724 000C2403 */ sra $a0, $t4, 0x10
/* 043328 80042728 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 04332C 8004272C 44816000 */ mtc1 $at, $f12
/* 043330 80042730 C6080020 */ lwc1 $f8, 0x20($s0)
/* 043334 80042734 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 043338 80042738 44819000 */ mtc1 $at, $f18
/* 04333C 8004273C 460C0400 */ add.s $f16, $f0, $f12
/* 043340 80042740 E628000C */ swc1 $f8, 0xc($s1)
/* 043344 80042744 C60A0024 */ lwc1 $f10, 0x24($s0)
/* 043348 80042748 46128082 */ mul.s $f2, $f16, $f18
/* 04334C 8004274C E62A0014 */ swc1 $f10, 0x14($s1)
/* 043350 80042750 C6040028 */ lwc1 $f4, 0x28($s0)
/* 043354 80042754 00000000 */ nop
/* 043358 80042758 46022182 */ mul.s $f6, $f4, $f2
/* 04335C 8004275C E626001C */ swc1 $f6, 0x1c($s1)
/* 043360 80042760 C608002C */ lwc1 $f8, 0x2c($s0)
/* 043364 80042764 00000000 */ nop
/* 043368 80042768 46024282 */ mul.s $f10, $f8, $f2
/* 04336C 8004276C 0C004558 */ jal func_80011560
/* 043370 80042770 E62A0024 */ swc1 $f10, 0x24($s1)
/* 043374 80042774 4480A000 */ mtc1 $zero, $f20
/* 043378 80042778 8E25001C */ lw $a1, 0x1c($s1)
/* 04337C 8004277C 8E270024 */ lw $a3, 0x24($s1)
/* 043380 80042780 4406A000 */ mfc1 $a2, $f20
/* 043384 80042784 0C00455C */ jal func_80011570
/* 043388 80042788 02202025 */ move $a0, $s1
/* 04338C 8004278C 8624002E */ lh $a0, 0x2e($s1)
/* 043390 80042790 8E25000C */ lw $a1, 0xc($s1)
/* 043394 80042794 8E260014 */ lw $a2, 0x14($s1)
/* 043398 80042798 0C00AEAC */ jal func_8002BAB0
/* 04339C 8004279C 27A7006C */ addiu $a3, $sp, 0x6c
/* 0433A0 800427A0 10400008 */ beqz $v0, .L800427C4
/* 0433A4 800427A4 00000000 */ nop
/* 0433A8 800427A8 0C004558 */ jal func_80011560
/* 0433AC 800427AC E6340010 */ swc1 $f20, 0x10($s1)
/* 0433B0 800427B0 4405A000 */ mfc1 $a1, $f20
/* 0433B4 800427B4 8FA6006C */ lw $a2, 0x6c($sp)
/* 0433B8 800427B8 4407A000 */ mfc1 $a3, $f20
/* 0433BC 800427BC 0C00455C */ jal func_80011570
/* 0433C0 800427C0 02202025 */ move $a0, $s1
.L800427C4:
/* 0433C4 800427C4 820E0019 */ lb $t6, 0x19($s0)
/* 0433C8 800427C8 00000000 */ nop
/* 0433CC 800427CC 1DC0006A */ bgtz $t6, .L80042978
/* 0433D0 800427D0 8FBF0034 */ lw $ra, 0x34($sp)
/* 0433D4 800427D4 82030018 */ lb $v1, 0x18($s0)
/* 0433D8 800427D8 3C074220 */ lui $a3, 0x4220
/* 0433DC 800427DC 28610006 */ slti $at, $v1, 6
/* 0433E0 800427E0 14200004 */ bnez $at, .L800427F4
/* 0433E4 800427E4 27AF0044 */ addiu $t7, $sp, 0x44
/* 0433E8 800427E8 2861001B */ slti $at, $v1, 0x1b
/* 0433EC 800427EC 14200062 */ bnez $at, .L80042978
/* 0433F0 800427F0 8FBF0034 */ lw $ra, 0x34($sp)
.L800427F4:
/* 0433F4 800427F4 C62C000C */ lwc1 $f12, 0xc($s1)
/* 0433F8 800427F8 C62E0010 */ lwc1 $f14, 0x10($s1)
/* 0433FC 800427FC 8E260014 */ lw $a2, 0x14($s1)
/* 043400 80042800 AFAF0014 */ sw $t7, 0x14($sp)
/* 043404 80042804 0C005B7A */ jal func_80016DE8
/* 043408 80042808 AFA00010 */ sw $zero, 0x10($sp)
/* 04340C 8004280C 1040005A */ beqz $v0, .L80042978
/* 043410 80042810 8FBF0034 */ lw $ra, 0x34($sp)
/* 043414 80042814 92180015 */ lbu $t8, 0x15($s0)
/* 043418 80042818 24080002 */ li $t0, 2
/* 04341C 8004281C 13000014 */ beqz $t8, .L80042870
/* 043420 80042820 2404013F */ li $a0, 319
/* 043424 80042824 8E25000C */ lw $a1, 0xc($s1)
/* 043428 80042828 8E260010 */ lw $a2, 0x10($s1)
/* 04342C 8004282C 8E270014 */ lw $a3, 0x14($s1)
/* 043430 80042830 24190004 */ li $t9, 4
/* 043434 80042834 AFB90010 */ sw $t9, 0x10($sp)
/* 043438 80042838 AFA00014 */ sw $zero, 0x14($sp)
/* 04343C 8004283C 0C002556 */ jal func_80009558
/* 043440 80042840 24040174 */ li $a0, 372
/* 043444 80042844 24040000 */ li $a0, 0
/* 043448 80042848 0C027A9E */ jal set_eeprom_settings_value
/* 04344C 8004284C 24050002 */ li $a1, 2
/* 043450 80042850 0C0270B8 */ jal set_magic_code_flags
/* 043454 80042854 24040002 */ li $a0, 2
/* 043458 80042858 0C01B629 */ jal func_8006D8A4
/* 04345C 8004285C 00000000 */ nop
/* 043460 80042860 0C003FEE */ jal gParticlePtrList_addObject
/* 043464 80042864 02202025 */ move $a0, $s1
/* 043468 80042868 10000043 */ b .L80042978
/* 04346C 8004286C 8FBF0034 */ lw $ra, 0x34($sp)
.L80042870:
/* 043470 80042870 A2080014 */ sb $t0, 0x14($s0)
/* 043474 80042874 8E270014 */ lw $a3, 0x14($s1)
/* 043478 80042878 8E260010 */ lw $a2, 0x10($s1)
/* 04347C 8004287C 8E25000C */ lw $a1, 0xc($s1)
/* 043480 80042880 24090004 */ li $t1, 4
/* 043484 80042884 AFA90010 */ sw $t1, 0x10($sp)
/* 043488 80042888 0C002556 */ jal func_80009558
/* 04348C 8004288C AFA00014 */ sw $zero, 0x14($sp)
/* 043490 80042890 10000039 */ b .L80042978
/* 043494 80042894 8FBF0034 */ lw $ra, 0x34($sp)
glabel L80042898
/* 043498 80042898 3C01800E */ lui $at, %hi(D_800E6270) # $at, 0x800e
/* 04349C 8004289C C4206270 */ lwc1 $f0, %lo(D_800E6270)($at)
/* 0434A0 800428A0 3C01800E */ lui $at, %hi(D_800E6274) # $at, 0x800e
/* 0434A4 800428A4 C4326274 */ lwc1 $f18, %lo(D_800E6274)($at)
/* 0434A8 800428A8 C6100030 */ lwc1 $f16, 0x30($s0)
/* 0434AC 800428AC 46029102 */ mul.s $f4, $f18, $f2
/* 0434B0 800428B0 240A0003 */ li $t2, 3
/* 0434B4 800428B4 240B0028 */ li $t3, 40
/* 0434B8 800428B8 46048181 */ sub.s $f6, $f16, $f4
/* 0434BC 800428BC E6060030 */ swc1 $f6, 0x30($s0)
/* 0434C0 800428C0 C6080030 */ lwc1 $f8, 0x30($s0)
/* 0434C4 800428C4 00000000 */ nop
/* 0434C8 800428C8 4600403C */ c.lt.s $f8, $f0
/* 0434CC 800428CC 00000000 */ nop
/* 0434D0 800428D0 45000029 */ bc1f .L80042978
/* 0434D4 800428D4 8FBF0034 */ lw $ra, 0x34($sp)
/* 0434D8 800428D8 E6000030 */ swc1 $f0, 0x30($s0)
/* 0434DC 800428DC A20A0014 */ sb $t2, 0x14($s0)
/* 0434E0 800428E0 10000024 */ b .L80042974
/* 0434E4 800428E4 A60B0016 */ sh $t3, 0x16($s0)
glabel L800428E8
/* 0434E8 800428E8 860C0016 */ lh $t4, 0x16($s0)
/* 0434EC 800428EC 240F0004 */ li $t7, 4
/* 0434F0 800428F0 01856823 */ subu $t5, $t4, $a1
/* 0434F4 800428F4 A60D0016 */ sh $t5, 0x16($s0)
/* 0434F8 800428F8 860E0016 */ lh $t6, 0x16($s0)
/* 0434FC 800428FC 24040140 */ li $a0, 320
/* 043500 80042900 05C1001C */ bgez $t6, .L80042974
/* 043504 80042904 24180004 */ li $t8, 4
/* 043508 80042908 A20F0014 */ sb $t7, 0x14($s0)
/* 04350C 8004290C 8E270014 */ lw $a3, 0x14($s1)
/* 043510 80042910 8E260010 */ lw $a2, 0x10($s1)
/* 043514 80042914 8E25000C */ lw $a1, 0xc($s1)
/* 043518 80042918 AFA00014 */ sw $zero, 0x14($sp)
/* 04351C 8004291C 0C002556 */ jal func_80009558
/* 043520 80042920 AFB80010 */ sw $t8, 0x10($sp)
/* 043524 80042924 10000014 */ b .L80042978
/* 043528 80042928 8FBF0034 */ lw $ra, 0x34($sp)
glabel L8004292C
/* 04352C 8004292C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 043530 80042930 44816000 */ mtc1 $at, $f12
/* 043534 80042934 C6000030 */ lwc1 $f0, 0x30($s0)
/* 043538 80042938 2419003C */ li $t9, 60
/* 04353C 8004293C 4600603C */ c.lt.s $f12, $f0
/* 043540 80042940 3C01800E */ lui $at, %hi(D_800E6278) # $at, 0x800e
/* 043544 80042944 45000006 */ bc1f .L80042960
/* 043548 80042948 00000000 */ nop
/* 04354C 8004294C E60C0030 */ swc1 $f12, 0x30($s0)
/* 043550 80042950 A2000014 */ sb $zero, 0x14($s0)
/* 043554 80042954 A6000016 */ sh $zero, 0x16($s0)
/* 043558 80042958 10000006 */ b .L80042974
/* 04355C 8004295C A2190019 */ sb $t9, 0x19($s0)
.L80042960:
/* 043560 80042960 C42A6278 */ lwc1 $f10, %lo(D_800E6278)($at)
/* 043564 80042964 00000000 */ nop
/* 043568 80042968 46025482 */ mul.s $f18, $f10, $f2
/* 04356C 8004296C 46120400 */ add.s $f16, $f0, $f18
/* 043570 80042970 E6100030 */ swc1 $f16, 0x30($s0)
.L80042974:
/* 043574 80042974 8FBF0034 */ lw $ra, 0x34($sp)
.L80042978:
/* 043578 80042978 C7B50018 */ lwc1 $f21, 0x18($sp)
/* 04357C 8004297C C7B4001C */ lwc1 $f20, 0x1c($sp)
/* 043580 80042980 C7B70020 */ lwc1 $f23, 0x20($sp)
/* 043584 80042984 C7B60024 */ lwc1 $f22, 0x24($sp)
/* 043588 80042988 8FB0002C */ lw $s0, 0x2c($sp)
/* 04358C 8004298C 8FB10030 */ lw $s1, 0x30($sp)
/* 043590 80042990 03E00008 */ jr $ra
/* 043594 80042994 27BD0110 */ addiu $sp, $sp, 0x110
@@ -1,151 +0,0 @@
glabel obj_loop_levelname
/* 043690 80042A90 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 043694 80042A94 AFBF0024 */ sw $ra, 0x24($sp)
/* 043698 80042A98 00803025 */ move $a2, $a0
/* 04369C 80042A9C AFB00020 */ sw $s0, 0x20($sp)
/* 0436A0 80042AA0 AFA5005C */ sw $a1, 0x5c($sp)
/* 0436A4 80042AA4 AFA60058 */ sw $a2, 0x58($sp)
/* 0436A8 80042AA8 0C006EC6 */ jal get_racer_object_by_port
/* 0436AC 80042AAC 00002025 */ move $a0, $zero
/* 0436B0 80042AB0 8FA3005C */ lw $v1, 0x5c($sp)
/* 0436B4 80042AB4 8FA60058 */ lw $a2, 0x58($sp)
/* 0436B8 80042AB8 10400082 */ beqz $v0, .L80042CC4
/* 0436BC 80042ABC 8FBF0024 */ lw $ra, 0x24($sp)
/* 0436C0 80042AC0 C4C4000C */ lwc1 $f4, 0xc($a2)
/* 0436C4 80042AC4 C446000C */ lwc1 $f6, 0xc($v0)
/* 0436C8 80042AC8 C4C80014 */ lwc1 $f8, 0x14($a2)
/* 0436CC 80042ACC 46062001 */ sub.s $f0, $f4, $f6
/* 0436D0 80042AD0 C44A0014 */ lwc1 $f10, 0x14($v0)
/* 0436D4 80042AD4 46000402 */ mul.s $f16, $f0, $f0
/* 0436D8 80042AD8 460A4081 */ sub.s $f2, $f8, $f10
/* 0436DC 80042ADC C4C60078 */ lwc1 $f6, 0x78($a2)
/* 0436E0 80042AE0 24D00078 */ addiu $s0, $a2, 0x78
/* 0436E4 80042AE4 46021482 */ mul.s $f18, $f2, $f2
/* 0436E8 80042AE8 46128100 */ add.s $f4, $f16, $f18
/* 0436EC 80042AEC 4606203C */ c.lt.s $f4, $f6
/* 0436F0 80042AF0 00000000 */ nop
/* 0436F4 80042AF4 4500000F */ bc1f .L80042B34
/* 0436F8 80042AF8 00000000 */ nop
/* 0436FC 80042AFC 24D00078 */ addiu $s0, $a2, 0x78
/* 043700 80042B00 860E0006 */ lh $t6, 6($s0)
/* 043704 80042B04 00037900 */ sll $t7, $v1, 4
/* 043708 80042B08 01CFC021 */ addu $t8, $t6, $t7
/* 04370C 80042B0C A6180006 */ sh $t8, 6($s0)
/* 043710 80042B10 86020006 */ lh $v0, 6($s0)
/* 043714 80042B14 24190100 */ li $t9, 256
/* 043718 80042B18 28410101 */ slti $at, $v0, 0x101
/* 04371C 80042B1C 14200010 */ bnez $at, .L80042B60
/* 043720 80042B20 00000000 */ nop
/* 043724 80042B24 A6190006 */ sh $t9, 6($s0)
/* 043728 80042B28 86020006 */ lh $v0, 6($s0)
/* 04372C 80042B2C 1000000C */ b .L80042B60
/* 043730 80042B30 00000000 */ nop
.L80042B34:
/* 043734 80042B34 86080006 */ lh $t0, 6($s0)
/* 043738 80042B38 00034900 */ sll $t1, $v1, 4
/* 04373C 80042B3C 01095023 */ subu $t2, $t0, $t1
/* 043740 80042B40 A60A0006 */ sh $t2, 6($s0)
/* 043744 80042B44 86020006 */ lh $v0, 6($s0)
/* 043748 80042B48 00000000 */ nop
/* 04374C 80042B4C 04410004 */ bgez $v0, .L80042B60
/* 043750 80042B50 00000000 */ nop
/* 043754 80042B54 A6000006 */ sh $zero, 6($s0)
/* 043758 80042B58 86020006 */ lh $v0, 6($s0)
/* 04375C 80042B5C 00000000 */ nop
.L80042B60:
/* 043760 80042B60 18400058 */ blez $v0, .L80042CC4
/* 043764 80042B64 8FBF0024 */ lw $ra, 0x24($sp)
/* 043768 80042B68 86040004 */ lh $a0, 4($s0)
/* 04376C 80042B6C 0C01AF77 */ jal get_level_name
/* 043770 80042B70 00000000 */ nop
/* 043774 80042B74 AFA2002C */ sw $v0, 0x2c($sp)
/* 043778 80042B78 00402025 */ move $a0, $v0
/* 04377C 80042B7C 00002825 */ move $a1, $zero
/* 043780 80042B80 0C031368 */ jal func_800C4DA0
/* 043784 80042B84 00003025 */ move $a2, $zero
/* 043788 80042B88 24430018 */ addiu $v1, $v0, 0x18
/* 04378C 80042B8C 00035843 */ sra $t3, $v1, 1
/* 043790 80042B90 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000
/* 043794 80042B94 8DEF0300 */ lw $t7, %lo(osTvType)($t7)
/* 043798 80042B98 240C00A0 */ li $t4, 160
/* 04379C 80042B9C 018B6823 */ subu $t5, $t4, $t3
/* 0437A0 80042BA0 256E00A0 */ addiu $t6, $t3, 0xa0
/* 0437A4 80042BA4 AFAD0050 */ sw $t5, 0x50($sp)
/* 0437A8 80042BA8 15E00006 */ bnez $t7, .L80042BC4
/* 0437AC 80042BAC AFAE0048 */ sw $t6, 0x48($sp)
/* 0437B0 80042BB0 241800E0 */ li $t8, 224
/* 0437B4 80042BB4 241900F8 */ li $t9, 248
/* 0437B8 80042BB8 AFB8004C */ sw $t8, 0x4c($sp)
/* 0437BC 80042BBC 10000005 */ b .L80042BD4
/* 0437C0 80042BC0 AFB90044 */ sw $t9, 0x44($sp)
.L80042BC4:
/* 0437C4 80042BC4 240800CA */ li $t0, 202
/* 0437C8 80042BC8 240900DE */ li $t1, 222
/* 0437CC 80042BCC AFA8004C */ sw $t0, 0x4c($sp)
/* 0437D0 80042BD0 AFA90044 */ sw $t1, 0x44($sp)
.L80042BD4:
/* 0437D4 80042BD4 0C031525 */ jal assign_dialogue_box_id
/* 0437D8 80042BD8 24040004 */ li $a0, 4
/* 0437DC 80042BDC 8FAA0044 */ lw $t2, 0x44($sp)
/* 0437E0 80042BE0 8FA50050 */ lw $a1, 0x50($sp)
/* 0437E4 80042BE4 8FA6004C */ lw $a2, 0x4c($sp)
/* 0437E8 80042BE8 8FA70048 */ lw $a3, 0x48($sp)
/* 0437EC 80042BEC 24040004 */ li $a0, 4
/* 0437F0 80042BF0 0C0313B7 */ jal set_current_dialogue_box_coords
/* 0437F4 80042BF4 AFAA0010 */ sw $t2, 0x10($sp)
/* 0437F8 80042BF8 860B0006 */ lh $t3, 6($s0)
/* 0437FC 80042BFC 24040004 */ li $a0, 4
/* 043800 80042C00 000B6080 */ sll $t4, $t3, 2
/* 043804 80042C04 018B6021 */ addu $t4, $t4, $t3
/* 043808 80042C08 000C6140 */ sll $t4, $t4, 5
/* 04380C 80042C0C 000C6A03 */ sra $t5, $t4, 8
/* 043810 80042C10 AFAD0010 */ sw $t5, 0x10($sp)
/* 043814 80042C14 24050080 */ li $a1, 128
/* 043818 80042C18 24060040 */ li $a2, 64
/* 04381C 80042C1C 0C0313EF */ jal set_current_dialogue_background_colour
/* 043820 80042C20 24070080 */ li $a3, 128
/* 043824 80042C24 24040004 */ li $a0, 4
/* 043828 80042C28 00002825 */ move $a1, $zero
/* 04382C 80042C2C 00003025 */ move $a2, $zero
/* 043830 80042C30 00003825 */ move $a3, $zero
/* 043834 80042C34 0C031414 */ jal set_current_text_background_colour
/* 043838 80042C38 AFA00010 */ sw $zero, 0x10($sp)
/* 04383C 80042C3C 24040004 */ li $a0, 4
/* 043840 80042C40 0C0313DF */ jal set_dialogue_font
/* 043844 80042C44 00002825 */ move $a1, $zero
/* 043848 80042C48 AFA00010 */ sw $zero, 0x10($sp)
/* 04384C 80042C4C 860E0006 */ lh $t6, 6($s0)
/* 043850 80042C50 24040004 */ li $a0, 4
/* 043854 80042C54 000E7A00 */ sll $t7, $t6, 8
/* 043858 80042C58 01EE7823 */ subu $t7, $t7, $t6
/* 04385C 80042C5C 000FC203 */ sra $t8, $t7, 8
/* 043860 80042C60 AFB80014 */ sw $t8, 0x14($sp)
/* 043864 80042C64 240500FF */ li $a1, 255
/* 043868 80042C68 240600FF */ li $a2, 255
/* 04386C 80042C6C 0C031400 */ jal set_current_text_colour
/* 043870 80042C70 240700FF */ li $a3, 255
/* 043874 80042C74 8FB90048 */ lw $t9, 0x48($sp)
/* 043878 80042C78 8FA80050 */ lw $t0, 0x50($sp)
/* 04387C 80042C7C 8FAA0044 */ lw $t2, 0x44($sp)
/* 043880 80042C80 8FAB004C */ lw $t3, 0x4c($sp)
/* 043884 80042C84 03282823 */ subu $a1, $t9, $t0
/* 043888 80042C88 014B3023 */ subu $a2, $t2, $t3
/* 04388C 80042C8C 00066043 */ sra $t4, $a2, 1
/* 043890 80042C90 00054843 */ sra $t1, $a1, 1
/* 043894 80042C94 8FA7002C */ lw $a3, 0x2c($sp)
/* 043898 80042C98 240D0001 */ li $t5, 1
/* 04389C 80042C9C 240E000C */ li $t6, 12
/* 0438A0 80042CA0 AFAE0014 */ sw $t6, 0x14($sp)
/* 0438A4 80042CA4 AFAD0010 */ sw $t5, 0x10($sp)
/* 0438A8 80042CA8 01202825 */ move $a1, $t1
/* 0438AC 80042CAC 25860002 */ addiu $a2, $t4, 2
/* 0438B0 80042CB0 0C03145A */ jal render_dialogue_text
/* 0438B4 80042CB4 24040004 */ li $a0, 4
/* 0438B8 80042CB8 0C03157D */ jal open_dialogue_box
/* 0438BC 80042CBC 24040004 */ li $a0, 4
/* 0438C0 80042CC0 8FBF0024 */ lw $ra, 0x24($sp)
.L80042CC4:
/* 0438C4 80042CC4 8FB00020 */ lw $s0, 0x20($sp)
/* 0438C8 80042CC8 03E00008 */ jr $ra
/* 0438CC 80042CCC 27BD0058 */ addiu $sp, $sp, 0x58
@@ -1,162 +0,0 @@
.late_rodata
glabel D_800E6180
.float 50625.0
.text
glabel obj_loop_treasuresucker
/* 03DC58 8003D058 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 03DC5C 8003D05C AFBF0014 */ sw $ra, 0x14($sp)
/* 03DC60 8003D060 AFA5004C */ sw $a1, 0x4c($sp)
/* 03DC64 8003D064 00803025 */ move $a2, $a0
/* 03DC68 8003D068 8C840078 */ lw $a0, 0x78($a0)
/* 03DC6C 8003D06C 0C006EB2 */ jal get_racer_object
/* 03DC70 8003D070 AFA60048 */ sw $a2, 0x48($sp)
/* 03DC74 8003D074 8FA60048 */ lw $a2, 0x48($sp)
/* 03DC78 8003D078 10400088 */ beqz $v0, .L8003D29C
/* 03DC7C 8003D07C 00401825 */ move $v1, $v0
/* 03DC80 8003D080 8C470064 */ lw $a3, 0x64($v0)
/* 03DC84 8003D084 00002025 */ move $a0, $zero
/* 03DC88 8003D088 80EE0185 */ lb $t6, 0x185($a3)
/* 03DC8C 8003D08C 00000000 */ nop
/* 03DC90 8003D090 11C0001C */ beqz $t6, .L8003D104
/* 03DC94 8003D094 00000000 */ nop
/* 03DC98 8003D098 8CCF007C */ lw $t7, 0x7c($a2)
/* 03DC9C 8003D09C 00000000 */ nop
/* 03DCA0 8003D0A0 15E00018 */ bnez $t7, .L8003D104
/* 03DCA4 8003D0A4 00000000 */ nop
/* 03DCA8 8003D0A8 C4C4000C */ lwc1 $f4, 0xc($a2)
/* 03DCAC 8003D0AC C446000C */ lwc1 $f6, 0xc($v0)
/* 03DCB0 8003D0B0 C4C80010 */ lwc1 $f8, 0x10($a2)
/* 03DCB4 8003D0B4 46062001 */ sub.s $f0, $f4, $f6
/* 03DCB8 8003D0B8 C44A0010 */ lwc1 $f10, 0x10($v0)
/* 03DCBC 8003D0BC 46000102 */ mul.s $f4, $f0, $f0
/* 03DCC0 8003D0C0 460A4081 */ sub.s $f2, $f8, $f10
/* 03DCC4 8003D0C4 C4D00014 */ lwc1 $f16, 0x14($a2)
/* 03DCC8 8003D0C8 C4520014 */ lwc1 $f18, 0x14($v0)
/* 03DCCC 8003D0CC 46021182 */ mul.s $f6, $f2, $f2
/* 03DCD0 8003D0D0 46128301 */ sub.s $f12, $f16, $f18
/* 03DCD4 8003D0D4 3C01800E */ lui $at, %hi(D_800E6180) # $at, 0x800e
/* 03DCD8 8003D0D8 C4306180 */ lwc1 $f16, %lo(D_800E6180)($at)
/* 03DCDC 8003D0DC 460C6282 */ mul.s $f10, $f12, $f12
/* 03DCE0 8003D0E0 46062200 */ add.s $f8, $f4, $f6
/* 03DCE4 8003D0E4 24180008 */ li $t8, 8
/* 03DCE8 8003D0E8 460A4000 */ add.s $f0, $f8, $f10
/* 03DCEC 8003D0EC 4610003C */ c.lt.s $f0, $f16
/* 03DCF0 8003D0F0 00000000 */ nop
/* 03DCF4 8003D0F4 45000003 */ bc1f .L8003D104
/* 03DCF8 8003D0F8 00000000 */ nop
/* 03DCFC 8003D0FC ACD8007C */ sw $t8, 0x7c($a2)
/* 03DD00 8003D100 24040001 */ li $a0, 1
.L8003D104:
/* 03DD04 8003D104 8CC2007C */ lw $v0, 0x7c($a2)
/* 03DD08 8003D108 8FB9004C */ lw $t9, 0x4c($sp)
/* 03DD0C 8003D10C 18400010 */ blez $v0, .L8003D150
/* 03DD10 8003D110 00594023 */ subu $t0, $v0, $t9
/* 03DD14 8003D114 1D00000E */ bgtz $t0, .L8003D150
/* 03DD18 8003D118 ACC8007C */ sw $t0, 0x7c($a2)
/* 03DD1C 8003D11C 80E20185 */ lb $v0, 0x185($a3)
/* 03DD20 8003D120 240C0008 */ li $t4, 8
/* 03DD24 8003D124 18400009 */ blez $v0, .L8003D14C
/* 03DD28 8003D128 244AFFFF */ addiu $t2, $v0, -1
/* 03DD2C 8003D12C A0EA0185 */ sb $t2, 0x185($a3)
/* 03DD30 8003D130 80EB0185 */ lb $t3, 0x185($a3)
/* 03DD34 8003D134 00000000 */ nop
/* 03DD38 8003D138 11600002 */ beqz $t3, .L8003D144
/* 03DD3C 8003D13C 00000000 */ nop
/* 03DD40 8003D140 24040001 */ li $a0, 1
.L8003D144:
/* 03DD44 8003D144 10000002 */ b .L8003D150
/* 03DD48 8003D148 ACCC007C */ sw $t4, 0x7c($a2)
.L8003D14C:
/* 03DD4C 8003D14C ACC0007C */ sw $zero, 0x7c($a2)
.L8003D150:
/* 03DD50 8003D150 10800053 */ beqz $a0, .L8003D2A0
/* 03DD54 8003D154 8FBF0014 */ lw $ra, 0x14($sp)
/* 03DD58 8003D158 444DF800 */ cfc1 $t5, $31
/* 03DD5C 8003D15C C472000C */ lwc1 $f18, 0xc($v1)
/* 03DD60 8003D160 35A10003 */ ori $at, $t5, 3
/* 03DD64 8003D164 38210002 */ xori $at, $at, 2
/* 03DD68 8003D168 44C1F800 */ ctc1 $at, $31
/* 03DD6C 8003D16C 240C0008 */ li $t4, 8
/* 03DD70 8003D170 46009124 */ cvt.w.s $f4, $f18
/* 03DD74 8003D174 27A40024 */ addiu $a0, $sp, 0x24
/* 03DD78 8003D178 44CDF800 */ ctc1 $t5, $31
/* 03DD7C 8003D17C 440E2000 */ mfc1 $t6, $f4
/* 03DD80 8003D180 240D0061 */ li $t5, 97
/* 03DD84 8003D184 444FF800 */ cfc1 $t7, $31
/* 03DD88 8003D188 A7AE0026 */ sh $t6, 0x26($sp)
/* 03DD8C 8003D18C 35E10003 */ ori $at, $t7, 3
/* 03DD90 8003D190 38210002 */ xori $at, $at, 2
/* 03DD94 8003D194 44C1F800 */ ctc1 $at, $31
/* 03DD98 8003D198 C4660010 */ lwc1 $f6, 0x10($v1)
/* 03DD9C 8003D19C 24050001 */ li $a1, 1
/* 03DDA0 8003D1A0 46003224 */ cvt.w.s $f8, $f6
/* 03DDA4 8003D1A4 44CFF800 */ ctc1 $t7, $31
/* 03DDA8 8003D1A8 44084000 */ mfc1 $t0, $f8
/* 03DDAC 8003D1AC 00000000 */ nop
/* 03DDB0 8003D1B0 444AF800 */ cfc1 $t2, $31
/* 03DDB4 8003D1B4 2509000A */ addiu $t1, $t0, 0xa
/* 03DDB8 8003D1B8 A7A90028 */ sh $t1, 0x28($sp)
/* 03DDBC 8003D1BC 35410003 */ ori $at, $t2, 3
/* 03DDC0 8003D1C0 C46A0014 */ lwc1 $f10, 0x14($v1)
/* 03DDC4 8003D1C4 38210002 */ xori $at, $at, 2
/* 03DDC8 8003D1C8 44C1F800 */ ctc1 $at, $31
/* 03DDCC 8003D1CC A3AC0025 */ sb $t4, 0x25($sp)
/* 03DDD0 8003D1D0 46005424 */ cvt.w.s $f16, $f10
/* 03DDD4 8003D1D4 A3AD0024 */ sb $t5, 0x24($sp)
/* 03DDD8 8003D1D8 440B8000 */ mfc1 $t3, $f16
/* 03DDDC 8003D1DC 44CAF800 */ ctc1 $t2, $31
/* 03DDE0 8003D1E0 AFA7003C */ sw $a3, 0x3c($sp)
/* 03DDE4 8003D1E4 AFA60048 */ sw $a2, 0x48($sp)
/* 03DDE8 8003D1E8 AFA30044 */ sw $v1, 0x44($sp)
/* 03DDEC 8003D1EC 0C003A95 */ jal spawn_object
/* 03DDF0 8003D1F0 A7AB002A */ sh $t3, 0x2a($sp)
/* 03DDF4 8003D1F4 8FA30044 */ lw $v1, 0x44($sp)
/* 03DDF8 8003D1F8 8FA60048 */ lw $a2, 0x48($sp)
/* 03DDFC 8003D1FC 8FA7003C */ lw $a3, 0x3c($sp)
/* 03DE00 8003D200 10400026 */ beqz $v0, .L8003D29C
/* 03DE04 8003D204 3C014120 */ li $at, 0x41200000 # 10.000000
/* 03DE08 8003D208 44811000 */ mtc1 $at, $f2
/* 03DE0C 8003D20C 3C014000 */ li $at, 0x40000000 # 2.000000
/* 03DE10 8003D210 44819000 */ mtc1 $at, $f18
/* 03DE14 8003D214 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 03DE18 8003D218 46121102 */ mul.s $f4, $f2, $f18
/* 03DE1C 8003D21C 44814800 */ mtc1 $at, $f9
/* 03DE20 8003D220 44804000 */ mtc1 $zero, $f8
/* 03DE24 8003D224 AC40003C */ sw $zero, 0x3c($v0)
/* 03DE28 8003D228 460021A1 */ cvt.d.s $f6, $f4
/* 03DE2C 8003D22C 00000000 */ nop
/* 03DE30 8003D230 46283283 */ div.d $f10, $f6, $f8
/* 03DE34 8003D234 E4420020 */ swc1 $f2, 0x20($v0)
/* 03DE38 8003D238 C472000C */ lwc1 $f18, 0xc($v1)
/* 03DE3C 8003D23C C4D0000C */ lwc1 $f16, 0xc($a2)
/* 03DE40 8003D240 00000000 */ nop
/* 03DE44 8003D244 46128101 */ sub.s $f4, $f16, $f18
/* 03DE48 8003D248 46205020 */ cvt.s.d $f0, $f10
/* 03DE4C 8003D24C 00000000 */ nop
/* 03DE50 8003D250 46002183 */ div.s $f6, $f4, $f0
/* 03DE54 8003D254 E446001C */ swc1 $f6, 0x1c($v0)
/* 03DE58 8003D258 C46A0014 */ lwc1 $f10, 0x14($v1)
/* 03DE5C 8003D25C C4C80014 */ lwc1 $f8, 0x14($a2)
/* 03DE60 8003D260 AC47007C */ sw $a3, 0x7c($v0)
/* 03DE64 8003D264 460A4401 */ sub.s $f16, $f8, $f10
/* 03DE68 8003D268 00000000 */ nop
/* 03DE6C 8003D26C 46008483 */ div.s $f18, $f16, $f0
/* 03DE70 8003D270 444EF800 */ cfc1 $t6, $31
/* 03DE74 8003D274 E4520024 */ swc1 $f18, 0x24($v0)
/* 03DE78 8003D278 35C10003 */ ori $at, $t6, 3
/* 03DE7C 8003D27C 38210002 */ xori $at, $at, 2
/* 03DE80 8003D280 44C1F800 */ ctc1 $at, $31
/* 03DE84 8003D284 00000000 */ nop
/* 03DE88 8003D288 46000124 */ cvt.w.s $f4, $f0
/* 03DE8C 8003D28C 440F2000 */ mfc1 $t7, $f4
/* 03DE90 8003D290 44CEF800 */ ctc1 $t6, $31
/* 03DE94 8003D294 AC4F0078 */ sw $t7, 0x78($v0)
/* 03DE98 8003D298 00000000 */ nop
.L8003D29C:
/* 03DE9C 8003D29C 8FBF0014 */ lw $ra, 0x14($sp)
.L8003D2A0:
/* 03DEA0 8003D2A0 27BD0048 */ addiu $sp, $sp, 0x48
/* 03DEA4 8003D2A4 03E00008 */ jr $ra
/* 03DEA8 8003D2A8 00000000 */ nop
@@ -1,156 +0,0 @@
glabel obj_loop_trigger
/* 03D3A4 8003C7A4 27BDFF68 */ addiu $sp, $sp, -0x98
/* 03D3A8 8003C7A8 AFBF004C */ sw $ra, 0x4c($sp)
/* 03D3AC 8003C7AC AFBE0048 */ sw $fp, 0x48($sp)
/* 03D3B0 8003C7B0 AFB70044 */ sw $s7, 0x44($sp)
/* 03D3B4 8003C7B4 AFB60040 */ sw $s6, 0x40($sp)
/* 03D3B8 8003C7B8 AFB5003C */ sw $s5, 0x3c($sp)
/* 03D3BC 8003C7BC AFB40038 */ sw $s4, 0x38($sp)
/* 03D3C0 8003C7C0 AFB30034 */ sw $s3, 0x34($sp)
/* 03D3C4 8003C7C4 AFB20030 */ sw $s2, 0x30($sp)
/* 03D3C8 8003C7C8 AFB1002C */ sw $s1, 0x2c($sp)
/* 03D3CC 8003C7CC AFB00028 */ sw $s0, 0x28($sp)
/* 03D3D0 8003C7D0 E7B70020 */ swc1 $f23, 0x20($sp)
/* 03D3D4 8003C7D4 E7B60024 */ swc1 $f22, 0x24($sp)
/* 03D3D8 8003C7D8 E7B50018 */ swc1 $f21, 0x18($sp)
/* 03D3DC 8003C7DC E7B4001C */ swc1 $f20, 0x1c($sp)
/* 03D3E0 8003C7E0 AFA5009C */ sw $a1, 0x9c($sp)
/* 03D3E4 8003C7E4 8C9E003C */ lw $fp, 0x3c($a0)
/* 03D3E8 8003C7E8 8C920064 */ lw $s2, 0x64($a0)
/* 03D3EC 8003C7EC 0C01BAA4 */ jal get_settings
/* 03D3F0 8003C7F0 0080A025 */ move $s4, $a0
/* 03D3F4 8003C7F4 904F0049 */ lbu $t7, 0x49($v0)
/* 03D3F8 8003C7F8 8C4E0004 */ lw $t6, 4($v0)
/* 03D3FC 8003C7FC 000FC080 */ sll $t8, $t7, 2
/* 03D400 8003C800 01D8C821 */ addu $t9, $t6, $t8
/* 03D404 8003C804 8F300000 */ lw $s0, ($t9)
/* 03D408 8003C808 0C01AF66 */ jal get_current_level_race_type
/* 03D40C 8003C80C 0040B825 */ move $s7, $v0
/* 03D410 8003C810 83C30009 */ lb $v1, 9($fp)
/* 03D414 8003C814 00000000 */ nop
/* 03D418 8003C818 04600065 */ bltz $v1, .L8003C9B0
/* 03D41C 8003C81C 8FBF004C */ lw $ra, 0x4c($sp)
/* 03D420 8003C820 8E89004C */ lw $t1, 0x4c($s4)
/* 03D424 8003C824 8E450010 */ lw $a1, 0x10($s2)
/* 03D428 8003C828 912A0013 */ lbu $t2, 0x13($t1)
/* 03D42C 8003C82C 3C080001 */ lui $t0, 1
/* 03D430 8003C830 0145082A */ slt $at, $t2, $a1
/* 03D434 8003C834 1020005D */ beqz $at, .L8003C9AC
/* 03D438 8003C838 00683004 */ sllv $a2, $t0, $v1
/* 03D43C 8003C83C 304B00FF */ andi $t3, $v0, 0xff
/* 03D440 8003C840 24010005 */ li $at, 5
/* 03D444 8003C844 15610003 */ bne $t3, $at, .L8003C854
/* 03D448 8003C848 02066024 */ and $t4, $s0, $a2
/* 03D44C 8003C84C 15800058 */ bnez $t4, .L8003C9B0
/* 03D450 8003C850 8FBF004C */ lw $ra, 0x4c($sp)
.L8003C854:
/* 03D454 8003C854 44852000 */ mtc1 $a1, $f4
/* 03D458 8003C858 27A4008C */ addiu $a0, $sp, 0x8c
/* 03D45C 8003C85C AFA60060 */ sw $a2, 0x60($sp)
/* 03D460 8003C860 0C006E9D */ jal get_racer_objects
/* 03D464 8003C864 468025A0 */ cvt.s.w $f22, $f4
/* 03D468 8003C868 8FAD008C */ lw $t5, 0x8c($sp)
/* 03D46C 8003C86C 00009825 */ move $s3, $zero
/* 03D470 8003C870 19A0004E */ blez $t5, .L8003C9AC
/* 03D474 8003C874 00408825 */ move $s1, $v0
/* 03D478 8003C878 4480A000 */ mtc1 $zero, $f20
/* 03D47C 8003C87C 241600FF */ li $s6, 255
/* 03D480 8003C880 2415FFFF */ li $s5, -1
.L8003C884:
/* 03D484 8003C884 8E300000 */ lw $s0, ($s1)
/* 03D488 8003C888 92430014 */ lbu $v1, 0x14($s2)
/* 03D48C 8003C88C 8E020064 */ lw $v0, 0x64($s0)
/* 03D490 8003C890 306F0001 */ andi $t7, $v1, 1
/* 03D494 8003C894 15E00005 */ bnez $t7, .L8003C8AC
/* 03D498 8003C898 30780002 */ andi $t8, $v1, 2
/* 03D49C 8003C89C 844E0000 */ lh $t6, ($v0)
/* 03D4A0 8003C8A0 00000000 */ nop
/* 03D4A4 8003C8A4 12AE0007 */ beq $s5, $t6, .L8003C8C4
/* 03D4A8 8003C8A8 00000000 */ nop
.L8003C8AC:
/* 03D4AC 8003C8AC 1700003B */ bnez $t8, .L8003C99C
/* 03D4B0 8003C8B0 8FAF008C */ lw $t7, 0x8c($sp)
/* 03D4B4 8003C8B4 84590000 */ lh $t9, ($v0)
/* 03D4B8 8003C8B8 00000000 */ nop
/* 03D4BC 8003C8BC 12B90037 */ beq $s5, $t9, .L8003C99C
/* 03D4C0 8003C8C0 8FAF008C */ lw $t7, 0x8c($sp)
.L8003C8C4:
/* 03D4C4 8003C8C4 C606000C */ lwc1 $f6, 0xc($s0)
/* 03D4C8 8003C8C8 C688000C */ lwc1 $f8, 0xc($s4)
/* 03D4CC 8003C8CC C60A0010 */ lwc1 $f10, 0x10($s0)
/* 03D4D0 8003C8D0 46083001 */ sub.s $f0, $f6, $f8
/* 03D4D4 8003C8D4 C6900010 */ lwc1 $f16, 0x10($s4)
/* 03D4D8 8003C8D8 46000182 */ mul.s $f6, $f0, $f0
/* 03D4DC 8003C8DC 46105081 */ sub.s $f2, $f10, $f16
/* 03D4E0 8003C8E0 C6120014 */ lwc1 $f18, 0x14($s0)
/* 03D4E4 8003C8E4 C6840014 */ lwc1 $f4, 0x14($s4)
/* 03D4E8 8003C8E8 46021202 */ mul.s $f8, $f2, $f2
/* 03D4EC 8003C8EC 46049381 */ sub.s $f14, $f18, $f4
/* 03D4F0 8003C8F0 460E7402 */ mul.s $f16, $f14, $f14
/* 03D4F4 8003C8F4 46083280 */ add.s $f10, $f6, $f8
/* 03D4F8 8003C8F8 0C0326B4 */ jal sqrtf
/* 03D4FC 8003C8FC 46105300 */ add.s $f12, $f10, $f16
/* 03D500 8003C900 4616003C */ c.lt.s $f0, $f22
/* 03D504 8003C904 00000000 */ nop
/* 03D508 8003C908 45000024 */ bc1f .L8003C99C
/* 03D50C 8003C90C 8FAF008C */ lw $t7, 0x8c($sp)
/* 03D510 8003C910 C6520000 */ lwc1 $f18, ($s2)
/* 03D514 8003C914 C604000C */ lwc1 $f4, 0xc($s0)
/* 03D518 8003C918 C6480008 */ lwc1 $f8, 8($s2)
/* 03D51C 8003C91C 46049182 */ mul.s $f6, $f18, $f4
/* 03D520 8003C920 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 03D524 8003C924 C644000C */ lwc1 $f4, 0xc($s2)
/* 03D528 8003C928 8FAC0060 */ lw $t4, 0x60($sp)
/* 03D52C 8003C92C 460A4402 */ mul.s $f16, $f8, $f10
/* 03D530 8003C930 46103480 */ add.s $f18, $f6, $f16
/* 03D534 8003C934 46049000 */ add.s $f0, $f18, $f4
/* 03D538 8003C938 4614003C */ c.lt.s $f0, $f20
/* 03D53C 8003C93C 00000000 */ nop
/* 03D540 8003C940 45000016 */ bc1f .L8003C99C
/* 03D544 8003C944 8FAF008C */ lw $t7, 0x8c($sp)
/* 03D548 8003C948 92E90049 */ lbu $t1, 0x49($s7)
/* 03D54C 8003C94C 8EE80004 */ lw $t0, 4($s7)
/* 03D550 8003C950 00095080 */ sll $t2, $t1, 2
/* 03D554 8003C954 010A1021 */ addu $v0, $t0, $t2
/* 03D558 8003C958 8C4B0000 */ lw $t3, ($v0)
/* 03D55C 8003C95C 00000000 */ nop
/* 03D560 8003C960 016C6825 */ or $t5, $t3, $t4
/* 03D564 8003C964 AC4D0000 */ sw $t5, ($v0)
/* 03D568 8003C968 93C4000B */ lbu $a0, 0xb($fp)
/* 03D56C 8003C96C 00000000 */ nop
/* 03D570 8003C970 12C40003 */ beq $s6, $a0, .L8003C980
/* 03D574 8003C974 00000000 */ nop
/* 03D578 8003C978 0C030C7B */ jal func_800C31EC
/* 03D57C 8003C97C 00000000 */ nop
.L8003C980:
/* 03D580 8003C980 93C2000C */ lbu $v0, 0xc($fp)
/* 03D584 8003C984 00000000 */ nop
/* 03D588 8003C988 12C20004 */ beq $s6, $v0, .L8003C99C
/* 03D58C 8003C98C 8FAF008C */ lw $t7, 0x8c($sp)
/* 03D590 8003C990 0C008500 */ jal func_80021400
/* 03D594 8003C994 24440080 */ addiu $a0, $v0, 0x80
/* 03D598 8003C998 8FAF008C */ lw $t7, 0x8c($sp)
.L8003C99C:
/* 03D59C 8003C99C 26730001 */ addiu $s3, $s3, 1
/* 03D5A0 8003C9A0 026F082A */ slt $at, $s3, $t7
/* 03D5A4 8003C9A4 1420FFB7 */ bnez $at, .L8003C884
/* 03D5A8 8003C9A8 26310004 */ addiu $s1, $s1, 4
.L8003C9AC:
/* 03D5AC 8003C9AC 8FBF004C */ lw $ra, 0x4c($sp)
.L8003C9B0:
/* 03D5B0 8003C9B0 C7B50018 */ lwc1 $f21, 0x18($sp)
/* 03D5B4 8003C9B4 C7B4001C */ lwc1 $f20, 0x1c($sp)
/* 03D5B8 8003C9B8 C7B70020 */ lwc1 $f23, 0x20($sp)
/* 03D5BC 8003C9BC C7B60024 */ lwc1 $f22, 0x24($sp)
/* 03D5C0 8003C9C0 8FB00028 */ lw $s0, 0x28($sp)
/* 03D5C4 8003C9C4 8FB1002C */ lw $s1, 0x2c($sp)
/* 03D5C8 8003C9C8 8FB20030 */ lw $s2, 0x30($sp)
/* 03D5CC 8003C9CC 8FB30034 */ lw $s3, 0x34($sp)
/* 03D5D0 8003C9D0 8FB40038 */ lw $s4, 0x38($sp)
/* 03D5D4 8003C9D4 8FB5003C */ lw $s5, 0x3c($sp)
/* 03D5D8 8003C9D8 8FB60040 */ lw $s6, 0x40($sp)
/* 03D5DC 8003C9DC 8FB70044 */ lw $s7, 0x44($sp)
/* 03D5E0 8003C9E0 8FBE0048 */ lw $fp, 0x48($sp)
/* 03D5E4 8003C9E4 03E00008 */ jr $ra
/* 03D5E8 8003C9E8 27BD0098 */ addiu $sp, $sp, 0x98
+6
View File
@@ -248,6 +248,12 @@ typedef struct LevelObjectEntry_Bridge_WhaleRamp {
/* 0x00 */ LevelObjectEntryCommon common;
/* 0x08 */ u8 unk8;
/* 0x09 */ u8 unk9;
/* 0x0A */ u8 unkA;
/* 0x0B */ u8 unkB;
/* 0x0C */ u8 unkC;
/* 0x0D */ u8 unkD;
/* 0x0E */ s8 unkE;
/* 0x0F */ u8 unkF;
} LevelObjectEntry_Bridge_WhaleRamp;
typedef struct LevelObjectEntry_RampSwitch {
+16 -6
View File
@@ -913,12 +913,15 @@ typedef struct Object_Frog {
/* 0x10 */ f32 unk10;
/* 0x14 */ u8 unk14;
/* 0x15 */ u8 unk15;
/* 0x16 */ u8 pad16[3];
/* 0x19 */ u8 unk19;
/* 0x1A */ u8 pad1A[6];
/* 0x16 */ s16 unk16;
/* 0x18 */ s8 unk18;
/* 0x19 */ s8 unk19;
/* 0x1A */ s16 unk1A;
/* 0x1C */ f32 unk1C;
/* 0x20 */ f32 unk20;
/* 0x24 */ f32 unk24;
/* 0x28 */ u8 pad28[8];
/* 0x28 */ f32 unk28;
/* 0x2C */ f32 unk2C;
/* 0x30 */ f32 unk30;
} Object_Frog;
@@ -1204,7 +1207,7 @@ typedef struct Object_Trigger {
/* 0x08 */ f32 unk8;
/* 0x0C */ f32 unkC;
/* 0x10 */ s32 unk10;
/* 0x14 */ s8 unk14;
/* 0x14 */ u8 unk14;
} Object_Trigger;
typedef struct Object_Audio {
@@ -1254,7 +1257,7 @@ typedef struct Object_PosArrow {
} Object_PosArrow;
typedef struct Object_Banana {
/* 0x0 */ u8 pad0[4];
/* 0x0 */ s32 unk0;
/* 0x4 */ struct Object *spawner;
/* 0x8 */ s8 unk8;
/* 0x9 */ s8 unk9;
@@ -1635,4 +1638,11 @@ typedef struct ByteColour {
u8 blue;
} ByteColour;
typedef struct {
u8 r;
u8 g;
u8 b;
u8 a;
} ColourRGBA;
#endif
+6 -6
View File
@@ -993,7 +993,7 @@ s32 render_sprite_billboard(Gfx **dlist, Matrix **mtx, Vertex **vertexList, Obje
s32 var_s2;
result = TRUE;
if (flags & 1) {
if (flags & RENDER_ANTI_ALIASING) {
sp5C = D_80120D28[D_80120D20] - obj->segment.trans.x_position;
sp58 = D_80120D40[D_80120D20] - obj->segment.trans.y_position;
var_f20 = D_80120D58[D_80120D20] - obj->segment.trans.z_position;
@@ -1066,12 +1066,12 @@ s32 render_sprite_billboard(Gfx **dlist, Matrix **mtx, Vertex **vertexList, Obje
if (D_80120D0C == 0) {
var_s2 = ((var_s2 & 0xFF) * arg4->unk0) >> 8;
}
flags &= ~1;
if (flags & 4) {
flags |= 1;
flags &= ~RENDER_ANTI_ALIASING;
if (flags & RENDER_SEMI_TRANSPARENT) {
flags |= RENDER_ANTI_ALIASING;
}
func_8007BF34(dlist, arg4->unk6 | (flags & 0xF));
if (!(flags & 0x100)) {
func_8007BF34(dlist, arg4->unk6 | (flags & (RENDER_FOG_ACTIVE | RENDER_SEMI_TRANSPARENT | RENDER_Z_COMPARE | RENDER_ANTI_ALIASING)));
if (!(flags & RENDER_Z_UPDATE)) {
gDPSetPrimColor((*dlist)++, 0, 0, 255, 255, 255, 255);
}
gSPDisplayList((*dlist)++, arg4->unk8[var_s2 + 1]);
+2
View File
@@ -168,6 +168,8 @@ void func_80067D3C(Gfx **dlist, UNUSED Matrix **mats);
void func_80068BF4(Gfx **arg0, Matrix **arg1, Vertex **arg2, ObjectSegment *arg3, unk80068BF4 *arg4, s32 arg5);
s32 render_sprite_billboard(Gfx **dlist, Matrix **mtx, Vertex **vertexList, Object *obj, unk80068514_arg4 *arg4, s32 flags);
void func_80069484(Gfx **arg0, Matrix **arg1, ObjectTransform *arg2, f32 arg3, f32 arg4);
void func_80067A3C(Gfx **dlist);
void func_80069A40(Gfx **dlist);
// Non Matching
void func_80066610(void);
+253 -209
View File
File diff suppressed because it is too large Load Diff
+45 -58
View File
@@ -27,10 +27,10 @@ typedef enum TextFonts {
enum DialogueFlags {
DIALOGUE_BOX_UNUSED_01 = 0x0001,
DIALOGUE_BOX_UNK_01 = 0x4000,
DIALOGUE_BOX_CLOSED = 0x7FFF,
DIALOGUE_BOX_OPEN = 0x8000,
DIALOGUE_BOX_UNK_02 = 0xBFFF,
DIALOGUE_BOX_VERTS = 0x4000,
DIALOGUE_BOX_CLOSED = 0x7FFF,
DIALOGUE_BOX_OPEN = 0x8000,
DIALOGUE_BOX_UNK_02 = 0xBFFF,
DIALOGUE_BOX_UNUSED_02 = 0xFFFE
};
@@ -44,28 +44,28 @@ typedef struct unk800C54E8 {
/* Size: 8 bytes */
typedef struct FontCharData {
u8 unk0; // Texture Pointer Index?
u8 unk1; // Upper Left Corner? Maybe only used when FontData->unk20 is 0 for some reason.
u8 unk2; // Font Char Width?
u8 unk3; // Font Char Height?
u8 unk4; // Upper left coordinate for the texture derived from X?
u8 unk5; // Upper left coordinate for the texture derived from Y?
u8 unk6; // Related to the lower right X Coordinate.
u8 unk7; // Related to the lower right Y Coordinate.
u8 textureID; // Texture Pointer Index?
u8 ulx; // Upper Left Corner? Maybe only used when FontData->unk20 is 0 for some reason.
u8 width; // Font Char Width?
u8 height; // Font Char Height?
u8 s; // Upper left coordinate for the texture derived from X?
u8 t; // Upper left coordinate for the texture derived from Y?
u8 lrx; // Related to the lower right X Coordinate.
u8 lry; // Related to the lower right Y Coordinate.
} FontCharData;
/* Size: 0x400 bytes */
typedef struct FontData {
/* 0x000 */ s32 unk0;
/* 0x004 */ char name[0x1C];
/* 0x020 */ u16 unk20; // x1?
/* 0x022 */ u16 unk22; // y1?
/* 0x024 */ u16 unk24; // x2?
/* 0x026 */ u16 unk26; // y2?
/* 0x028 */ u8 unk28[24];
/* 0x040 */ s16 unk40[32];
/* 0x000 */ s32 unk0; // Unused
/* 0x004 */ char name[28];
/* 0x020 */ u16 x;
/* 0x022 */ u16 y;
/* 0x024 */ u16 charWidth;
/* 0x026 */ u16 charHeight;
/* 0x028 */ u8 loadedFonts[24];
/* 0x040 */ s16 textureID[32];
/* 0x080 */ TextureHeader *texturePointers[32];
/* 0x100 */ FontCharData unk100[96];
/* 0x100 */ FontCharData letter[96];
} FontData;
/* Size: 0x20 bytes */
@@ -93,16 +93,16 @@ typedef struct DialogueBox {
/* Size: 0x20 bytes */
typedef struct unk8012A7EC {
typedef struct DialogueTextElement {
/* 0x00 */ u8 unk0;
/* 0x01 */ u8 unk1;
/* 0x01 */ u8 number;
/* 0x02 */ u8 unk2;
/* 0x03 */ u8 unk3;
/* 0x04 */ char *text; // Pointer to the text array
/* 0x08 */ s16 posX;
/* 0x0A */ s16 posY;
/* 0x0C */ s16 unkC;
/* 0x0E */ s16 unkE;
/* 0x0C */ s16 offsetX;
/* 0x0E */ s16 offsetY;
/* 0x10 */ u8 textColourR;
/* 0x11 */ u8 textColourG;
/* 0x12 */ u8 textColourB;
@@ -115,14 +115,7 @@ typedef struct unk8012A7EC {
/* 0x19 */ u8 font;
/* 0x1A */ u16 flags;
/* 0x1C */ DialogueBox *nextBox;
} unk8012A7EC;
typedef struct {
u8 r;
u8 g;
u8 b;
u8 a;
} ColourRGBA;
} DialogueTextElement;
/* Size: 0x28 bytes */
// Dialogue Box background
@@ -151,52 +144,46 @@ typedef struct DialogueBoxBackground {
u8 opacity;
u8 font;
u16 flags;
s16 unk20; // Functionally Unused
s16 unk22; // Functionally Unused
s16 textOffsetX; // Functionally Unused
s16 textOffsetY; // Functionally Unused
DialogueBox *textBox;
} DialogueBoxBackground;
#define DIALOGUEBOXBACKGROUND_COUNT 8
#define unk8012A7EC_COUNT 64
#define DIALOGUETEXTELEMENT_COUNT 64
#define DIALOGUEBOXBACKGROUND_TOTAL_SIZE (sizeof(DialogueBoxBackground) * DIALOGUEBOXBACKGROUND_COUNT)
#define unk8012A7EC_TOTAL_SIZE (sizeof(unk8012A7EC) * unk8012A7EC_COUNT)
#define DialogueTextElement_TOTAL_SIZE (sizeof(DialogueTextElement) * DIALOGUETEXTELEMENT_COUNT)
void load_fonts(void);
void set_kerning(s32 arg0);
void set_text_font(s32 arg0);
void set_kerning(s32 setting);
void set_text_font(s32 fontID);
void set_text_colour(s32 red, s32 green, s32 blue, s32 alpha, s32 opacity);
void set_text_background_colour(s32 red, s32 green, s32 blue, s32 alpha);
void func_800C4404(Gfx** displayList, char *text, AlignmentFlags alignmentFlags);
void draw_text(Gfx** displayList, s32 xpos, s32 ypos, char *text, AlignmentFlags alignmentFlags);
void func_800C44C0(Gfx** displayList, s32 dialogueBoxID, char *text, AlignmentFlags alignmentFlags);
void func_800C4510(Gfx** displayList, s32 dialogueBoxID, s32 xpos, s32 ypos, char *text, AlignmentFlags alignmentFlags);
void draw_dialogue_text_unused(Gfx **displayList, s32 dialogueBoxID, char *text, AlignmentFlags alignmentFlags);
void draw_dialogue_text_pos_unused(Gfx **displayList, s32 dialogueBoxID, s32 xpos, s32 ypos, char *text, AlignmentFlags alignmentFlags);
void set_current_dialogue_box_coords(s32 dialogueBoxID, s32 x1, s32 y1, s32 x2, s32 y2);
void set_dialogue_font(s32 dialogueBoxID, s32 font);
void set_current_dialogue_background_colour(s32 dialogueBoxID, s32 red, s32 green, s32 blue, s32 alpha);
void set_current_text_colour(s32 dialogueBoxID, s32 red, s32 green, s32 blue, s32 alpha, s32 opacity);
void set_current_text_background_colour(s32 dialogueBoxID, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void func_800C5094(s32 dialogueBoxID, s32 arg1, s32 arg2);
void func_800C50D8(s32 dialogueBoxID);
void func_800C510C(s32 dialogueBoxID, char *text, s32 arg2, s32 arg3);
void move_dialogue_box_to_front(s32 arg0, DialogueBox *arg1);
void assign_dialogue_box_id(s32 arg0);
void func_800C54E8(s32 arg0, unk800C54E8 *arg1, s32 arg2, s32 arg3, s32 arg4);
void set_current_text_background_colour(s32 dialogueBoxID, s32 red, s32 green, s32 blue, s32 alpha);
void move_dialogue_box_to_front(s32 dialogueBoxID, DialogueBox *box);
void assign_dialogue_box_id(s32 dialogueBoxID);
void open_dialogue_box(s32 dialogueBoxID);
void close_dialogue_box(s32 dialogueBoxID);
UNUSED void func_800C564C(s32 dialogueBoxID);
UNUSED void func_800C5678(s32 dialogueBoxID);
UNUSED void func_800C56A4(s32 dialogueBoxID);
UNUSED void set_dialogue_box_unused_flag(s32 dialogueBoxID);
UNUSED void dialogue_box_clear_flags(s32 dialogueBoxID);
UNUSED void enable_dialogue_box_vertices(s32 dialogueBoxID);
void func_800C56D0(s32 dialogueBoxID);
void render_dialogue_boxes(Gfx **dlist, Matrix **mat, VertexList **verts);
void render_fill_rectangle(Gfx **dlist, s32 ulx, s32 uly, s32 lrx, s32 lry);
void render_dialogue_box(Gfx **dlist, Matrix **mat, VertexList **verts, s32 dialogueBoxID);
void parse_string_with_number(char *input, char *output, s32 number);
void s32_to_string(char **outString, s32 number);
void load_font(s32 fontID); //Non Matching
void unload_font(s32 arg0); //Non Matching
void func_800C45A4(Gfx **dlist, DialogueBoxBackground *arg1, char *text, AlignmentFlags alignmentFlags, f32 arg4); //Non Matching
s32 func_800C4DA0(char *text, s32 x, s32 font); //Non Matching
void *render_dialogue_text(s32 dialogueBoxID, s32 posX, s32 posY, char *text, s32 arg4, s32 arg5); //Non Matching
void load_font(s32 fontID);
void unload_font(s32 fontID);
void render_text_string(Gfx **dlist, DialogueBoxBackground *box, char *text, AlignmentFlags alignmentFlags, f32 scisScale);
s32 get_text_width(char *text, s32 x, s32 font);
void *render_dialogue_text(s32 dialogueBoxID, s32 posX, s32 posY, char *text, s32 number, s32 flags);
#endif
+1 -1
View File
@@ -641,7 +641,7 @@ UNUSED u8 get_total_level_header_count(void) {
/**
* Returns the name of the level from the passed ID
*/
u8 *get_level_name(MapId levelId) {
char *get_level_name(MapId levelId) {
u8 *levelName;
u8 numberOfNullPointers = 0;
+1 -1
View File
@@ -95,7 +95,7 @@ MapId func_8006BD88(void);
u8 get_current_level_race_type(void);
LevelHeader *get_current_level_header(void);
u8 get_total_level_header_count(void);
u8 *get_level_name(MapId levelId);
char *get_level_name(MapId levelId);
void func_8006BEFC(void);
void func_8006BFC8(s8 *arg0);
void func_8006C164(void);
+19 -5
View File
@@ -9,34 +9,48 @@
/************ .bss ************/
u64 *gThread1StackPointer; // stack pointer for thread 1
u64 gThread3Stack[1024];
u64 gThread3Stack[0x400];
u64 *gThread3StackPointer; // stack pointer for thread 3
OSThread gThread1; // OSThread for thread 1
OSThread gThread3; // OSThread for thread 3
u64 D_8011FAC0[512]; //Thread1 stack?
UNUSED u64 gUnusedThreadStack[0x200]; //Thread1 stack?
/******************************/
/**
* Where it all begins.
* Once the boot procedure is finished in IPL3, this function is run.
* It kicks things off by initialising thread1, which serves as the top level
*/
void main(void) {
osInitialize();
osCreateThread(&gThread1, 1, &thread1_main, 0, &gThread1StackPointer, OS_PRIORITY_IDLE);
osStartThread(&gThread1);
}
/**
* Initialise the crash handler thread, then initialise the main game thread.
* Reset the start and endpoint of the game thread stack, then set thread priority to zero, effectively
* stopping this thread, as it's no longer needed.
*/
void thread1_main(UNUSED void *unused) {
thread0_create();
osCreateThread(&gThread3, 3, &thread3_main, 0, &gThread3StackPointer, 10);
gThread3Stack[1024] = 0;
gThread3Stack[0x400] = 0;
gThread3Stack[0] = 0;
osStartThread(&gThread3);
osSetThreadPri(NULL, 0);
while (1) {}
}
/**
* Increments the start and endpoint of the stack.
* They should have an equal value, so if they don't, that triggers a printout saying a stack wraparound has occured.
*/
void thread3_verify_stack(void) {
gThread3Stack[1024]++;
gThread3Stack[0x400]++;
gThread3Stack[0]++;
if ((gThread3Stack[1024] != gThread3Stack[0])) {
if ((gThread3Stack[0x400] != gThread3Stack[0])) {
rmonPrintf("WARNING: Stack overflow/underflow!!!\n");
}
}
+4 -4
View File
@@ -6142,8 +6142,8 @@ void render_track_select_setup_ui(s32 updateRate) {
}
set_current_dialogue_background_colour(7, 255, sp84, 0, sMenuGuiOpacity);
if ((D_801263E0 == -1) || ((D_801263E0 == 2) && (D_801269C8 == 4) && is_adventure_two_unlocked())) {
s4 = func_800C4DA0(gMenuText[ASSET_MENU_TEXT_ADVENTURE2], 0, 0); // "ADVENTURE"
temp = func_800C4DA0(gMenuText[ASSET_MENU_TEXT_ADVENTURETWO2], 0, 0); // "ADVENTURE TWO"
s4 = get_text_width(gMenuText[ASSET_MENU_TEXT_ADVENTURE2], 0, 0); // "ADVENTURE"
temp = get_text_width(gMenuText[ASSET_MENU_TEXT_ADVENTURETWO2], 0, 0); // "ADVENTURE TWO"
if (s4 < temp) {
s4 = temp;
}
@@ -6294,7 +6294,7 @@ void render_track_select_setup_ui(s32 updateRate) {
}
if (sp74) {
s32 temp_v0_12 = func_800C4DA0(gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], 0, 0); // "NUMBER OF RACERS"
s32 temp_v0_12 = get_text_width(gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], 0, 0); // "NUMBER OF RACERS"
if ((gTwoPlayerRacerCountMenu.width - 0xC) < temp_v0_12) {
s4 = temp_v0_12 + 0xC;
} else {
@@ -6764,7 +6764,7 @@ void func_80093D40(UNUSED s32 updateRate) {
s32 alpha;
for (i = 0, xPos = SCREEN_WIDTH_HALF; i < gMenuOptionCap; i++) {
x = func_800C4DA0(gMenuOptionText[i], 0, 0) + 8;
x = get_text_width(gMenuOptionText[i], 0, 0) + 8;
if (xPos < x) {
xPos = x;
}
+586 -6
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More