65% Milestone! (#434)

* WIP func_800B7EB4

* Fix RNG funcs. They really don't accept arguments, and pretending they do breaks the only code that calls them.

* Work on waves.c

* Match obj_loop_door

* Indentify flag

* Match obj_loop_fish

* Match obj_loop_weaponballoon

* Match obj_loop_char_select

* Match func_8003F2E8

* Update score
This commit is contained in:
Ryan Myers
2023-11-10 08:47:30 -05:00
committed by GitHub
parent 1957c93d02
commit e732cd2f58
22 changed files with 1737 additions and 2924 deletions
+9 -9
View File
@@ -5,9 +5,9 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
<!-- README_SCORE_SUMMARY_BEGIN -->
As of November 4, 2023, this is our current score:
As of November 10, 2023, this is our current score:
&emsp;&emsp;&emsp;&emsp;Decomp progress: 64.12%
&emsp;&emsp;&emsp;&emsp;Decomp progress: 65.01%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 35.21%
<!-- README_SCORE_SUMMARY_END -->
@@ -128,20 +128,20 @@ s32 is_drumstick_unlocked(void) {
```
<!-- README_SCORE_BEGIN -->
As of November 4, 2023, this is our current score:
As of November 10, 2023, this is our current score:
```
====================================================================
ADVENTURE ONE (ASM -> C Decompilation)
-------------- 64.12% Complete (67.03% NON_MATCHING) ---------------
# Decompiled functions: 1665
# GLOBAL_ASM remaining: 180
# NON_MATCHING functions: 16
# NON_EQUIVALENT WIP functions: 49
-------------- 65.01% Complete (67.79% NON_MATCHING) ---------------
# Decompiled functions: 1670
# GLOBAL_ASM remaining: 175
# NON_MATCHING functions: 15
# NON_EQUIVALENT WIP functions: 51
--------------------------- Game Status ----------------------------
Balloons: 30/47, Keys: 3/4, Trophies: 3/5
T.T. Amulets: 3/4, Wizpig Amulets: 3/4
--------------------------------------------------------------------
We are racing Taj in the Plane Challenge. (Lap 1/3)
We are racing Taj in the Plane Challenge. (Lap 3/3)
====================================================================
ADVENTURE TWO (Cleanup & Documentation)
------------------------- 35.21% Complete --------------------------
+6
View File
@@ -0,0 +1,6 @@
glabel load_rng_seed
/* 7052C 8006F92C 3C04800E */ lui $a0, %hi(gPrevRNGSeed)
/* 70530 8006F930 8C84D438 */ lw $a0, %lo(gPrevRNGSeed)($a0)
/* 70534 8006F934 3C01800E */ lui $at, %hi(gCurrentRNGSeed)
/* 70538 8006F938 03E00008 */ jr $ra
/* 7053C 8006F93C AC24D434 */ sw $a0, %lo(gCurrentRNGSeed)($at)
+6
View File
@@ -0,0 +1,6 @@
glabel save_rng_seed
/* 70518 8006F918 3C04800E */ lui $a0, %hi(gCurrentRNGSeed)
/* 7051C 8006F91C 8C84D434 */ lw $a0, %lo(gCurrentRNGSeed)($a0)
/* 70520 8006F920 3C01800E */ lui $at, %hi(gPrevRNGSeed)
/* 70524 8006F924 03E00008 */ jr $ra
/* 70528 8006F928 AC24D438 */ sw $a0, %lo(gPrevRNGSeed)($at)
File diff suppressed because it is too large Load Diff
@@ -1,269 +0,0 @@
glabel obj_loop_char_select
/* 038F3C 8003833C 27BDFF88 */ addiu $sp, $sp, -0x78
/* 038F40 80038340 AFBF0024 */ sw $ra, 0x24($sp)
/* 038F44 80038344 AFB2001C */ sw $s2, 0x1c($sp)
/* 038F48 80038348 AFB00014 */ sw $s0, 0x14($sp)
/* 038F4C 8003834C 00809025 */ move $s2, $a0
/* 038F50 80038350 AFB30020 */ sw $s3, 0x20($sp)
/* 038F54 80038354 AFB10018 */ sw $s1, 0x18($sp)
/* 038F58 80038358 AFA5007C */ sw $a1, 0x7c($sp)
/* 038F5C 8003835C 00008025 */ move $s0, $zero
/* 038F60 80038360 0C007D18 */ jal func_8001F460
/* 038F64 80038364 00003025 */ move $a2, $zero
/* 038F68 80038368 8E430064 */ lw $v1, 0x64($s2)
/* 038F6C 8003836C AE400074 */ sw $zero, 0x74($s2)
/* 038F70 80038370 106000E1 */ beqz $v1, .L800386F8
/* 038F74 80038374 8FBF0024 */ lw $ra, 0x24($sp)
/* 038F78 80038378 824F003A */ lb $t7, 0x3a($s2)
/* 038F7C 8003837C 8E4E0068 */ lw $t6, 0x68($s2)
/* 038F80 80038380 000FC080 */ sll $t8, $t7, 2
/* 038F84 80038384 01D8C821 */ addu $t9, $t6, $t8
/* 038F88 80038388 8F220000 */ lw $v0, ($t9)
/* 038F8C 8003838C 00000000 */ nop
/* 038F90 80038390 104000D9 */ beqz $v0, .L800386F8
/* 038F94 80038394 8FBF0024 */ lw $ra, 0x24($sp)
/* 038F98 80038398 8C530000 */ lw $s3, ($v0)
/* 038F9C 8003839C 0C027B34 */ jal is_drumstick_unlocked
/* 038FA0 800383A0 AFA30064 */ sw $v1, 0x64($sp)
/* 038FA4 800383A4 1040000C */ beqz $v0, .L800383D8
/* 038FA8 800383A8 00000000 */ nop
/* 038FAC 800383AC 0C027B2E */ jal is_tt_unlocked
/* 038FB0 800383B0 00000000 */ nop
/* 038FB4 800383B4 10400005 */ beqz $v0, .L800383CC
/* 038FB8 800383B8 3C06800E */ lui $a2, %hi(D_800DCA58) # $a2, 0x800e
/* 038FBC 800383BC 3C06800E */ lui $a2, %hi(D_800DCA70) # $a2, 0x800e
/* 038FC0 800383C0 24C6CA70 */ addiu $a2, %lo(D_800DCA70) # addiu $a2, $a2, -0x3590
/* 038FC4 800383C4 1000000E */ b .L80038400
/* 038FC8 800383C8 2404000A */ li $a0, 10
.L800383CC:
/* 038FCC 800383CC 24C6CA58 */ addiu $a2, %lo(D_800DCA58) # addiu $a2, $a2, -0x35a8
/* 038FD0 800383D0 1000000B */ b .L80038400
/* 038FD4 800383D4 24040009 */ li $a0, 9
.L800383D8:
/* 038FD8 800383D8 0C027B2E */ jal is_tt_unlocked
/* 038FDC 800383DC 00000000 */ nop
/* 038FE0 800383E0 10400005 */ beqz $v0, .L800383F8
/* 038FE4 800383E4 3C06800E */ lui $a2, %hi(D_800DCA50) # $a2, 0x800e
/* 038FE8 800383E8 3C06800E */ lui $a2, %hi(D_800DCA64) # $a2, 0x800e
/* 038FEC 800383EC 24C6CA64 */ addiu $a2, %lo(D_800DCA64) # addiu $a2, $a2, -0x359c
/* 038FF0 800383F0 10000003 */ b .L80038400
/* 038FF4 800383F4 24040009 */ li $a0, 9
.L800383F8:
/* 038FF8 800383F8 24C6CA50 */ addiu $a2, %lo(D_800DCA50) # addiu $a2, $a2, -0x35b0
/* 038FFC 800383FC 24040008 */ li $a0, 8
.L80038400:
/* 039000 80038400 1880000E */ blez $a0, .L8003843C
/* 039004 80038404 00002825 */ move $a1, $zero
/* 039008 80038408 8FA90064 */ lw $t1, 0x64($sp)
/* 03900C 8003840C 00C01021 */ addu $v0, $a2, $zero
/* 039010 80038410 85230028 */ lh $v1, 0x28($t1)
/* 039014 80038414 00000000 */ nop
.L80038418:
/* 039018 80038418 904A0000 */ lbu $t2, ($v0)
/* 03901C 8003841C 24A50001 */ addiu $a1, $a1, 1
/* 039020 80038420 146A0002 */ bne $v1, $t2, .L8003842C
/* 039024 80038424 00A4082A */ slt $at, $a1, $a0
/* 039028 80038428 24100001 */ li $s0, 1
.L8003842C:
/* 03902C 8003842C 10200003 */ beqz $at, .L8003843C
/* 039030 80038430 24420001 */ addiu $v0, $v0, 1
/* 039034 80038434 1200FFF8 */ beqz $s0, .L80038418
/* 039038 80038438 00000000 */ nop
.L8003843C:
/* 03903C 8003843C 1200006E */ beqz $s0, .L800385F8
/* 039040 80038440 24A5FFFF */ addiu $a1, $a1, -1
/* 039044 80038444 240B0001 */ li $t3, 1
/* 039048 80038448 A24B003B */ sb $t3, 0x3b($s2)
/* 03904C 8003844C 00008025 */ move $s0, $zero
/* 039050 80038450 00001825 */ move $v1, $zero
/* 039054 80038454 27B10050 */ addiu $s1, $sp, 0x50
/* 039058 80038458 02002025 */ move $a0, $s0
.L8003845C:
/* 03905C 8003845C A3A3004F */ sb $v1, 0x4f($sp)
/* 039060 80038460 0C0270A0 */ jal get_player_character
/* 039064 80038464 AFA50070 */ sw $a1, 0x70($sp)
/* 039068 80038468 8FA50070 */ lw $a1, 0x70($sp)
/* 03906C 8003846C 93A3004F */ lbu $v1, 0x4f($sp)
/* 039070 80038470 14450006 */ bne $v0, $a1, .L8003848C
/* 039074 80038474 24010004 */ li $at, 4
/* 039078 80038478 02236021 */ addu $t4, $s1, $v1
/* 03907C 8003847C 24630001 */ addiu $v1, $v1, 1
/* 039080 80038480 306D00FF */ andi $t5, $v1, 0xff
/* 039084 80038484 01A01825 */ move $v1, $t5
/* 039088 80038488 A1900000 */ sb $s0, ($t4)
.L8003848C:
/* 03908C 8003848C 26100001 */ addiu $s0, $s0, 1
/* 039090 80038490 1601FFF2 */ bne $s0, $at, .L8003845C
/* 039094 80038494 02002025 */ move $a0, $s0
/* 039098 80038498 3C0F800E */ lui $t7, %hi(D_800DCA7C) # $t7, 0x800e
/* 03909C 8003849C 25EFCA7C */ addiu $t7, %lo(D_800DCA7C) # addiu $t7, $t7, -0x3584
/* 0390A0 800384A0 00AF1021 */ addu $v0, $a1, $t7
/* 0390A4 800384A4 904E0000 */ lbu $t6, ($v0)
/* 0390A8 800384A8 8FB8007C */ lw $t8, 0x7c($sp)
/* 0390AC 800384AC 3C0D800E */ lui $t5, %hi(D_800DCA88) # $t5, 0x800e
/* 0390B0 800384B0 01D8C821 */ addu $t9, $t6, $t8
/* 0390B4 800384B4 332400FF */ andi $a0, $t9, 0xff
/* 0390B8 800384B8 28810010 */ slti $at, $a0, 0x10
/* 0390BC 800384BC 14200009 */ bnez $at, .L800384E4
/* 0390C0 800384C0 A0590000 */ sb $t9, ($v0)
/* 0390C4 800384C4 3C0A800E */ lui $t2, %hi(D_800DCA88) # $t2, 0x800e
/* 0390C8 800384C8 254ACA88 */ addiu $t2, %lo(D_800DCA88) # addiu $t2, $t2, -0x3578
/* 0390CC 800384CC 00AA4021 */ addu $t0, $a1, $t2
/* 0390D0 800384D0 910B0000 */ lbu $t3, ($t0)
/* 0390D4 800384D4 3089000F */ andi $t1, $a0, 0xf
/* 0390D8 800384D8 256C0001 */ addiu $t4, $t3, 1
/* 0390DC 800384DC A0490000 */ sb $t1, ($v0)
/* 0390E0 800384E0 A10C0000 */ sb $t4, ($t0)
.L800384E4:
/* 0390E4 800384E4 25ADCA88 */ addiu $t5, %lo(D_800DCA88) # addiu $t5, $t5, -0x3578
/* 0390E8 800384E8 00AD4021 */ addu $t0, $a1, $t5
/* 0390EC 800384EC 910F0000 */ lbu $t7, ($t0)
/* 0390F0 800384F0 00603825 */ move $a3, $v1
/* 0390F4 800384F4 01E3082A */ slt $at, $t7, $v1
/* 0390F8 800384F8 14200002 */ bnez $at, .L80038504
/* 0390FC 800384FC 00000000 */ nop
/* 039100 80038500 A1000000 */ sb $zero, ($t0)
.L80038504:
/* 039104 80038504 18E0003C */ blez $a3, .L800385F8
/* 039108 80038508 00000000 */ nop
/* 03910C 8003850C AFA70040 */ sw $a3, 0x40($sp)
/* 039110 80038510 0C02709D */ jal func_8009C274
/* 039114 80038514 AFA80044 */ sw $t0, 0x44($sp)
/* 039118 80038518 8FA70040 */ lw $a3, 0x40($sp)
/* 03911C 8003851C 8FA80044 */ lw $t0, 0x44($sp)
/* 039120 80038520 00403025 */ move $a2, $v0
/* 039124 80038524 18E0001B */ blez $a3, .L80038594
/* 039128 80038528 00001825 */ move $v1, $zero
/* 03912C 8003852C 27A20050 */ addiu $v0, $sp, 0x50
/* 039130 80038530 24100001 */ li $s0, 1
.L80038534:
/* 039134 80038534 904E0000 */ lbu $t6, ($v0)
/* 039138 80038538 24010001 */ li $at, 1
/* 03913C 8003853C 01C6C021 */ addu $t8, $t6, $a2
/* 039140 80038540 83190000 */ lb $t9, ($t8)
/* 039144 80038544 02402025 */ move $a0, $s2
/* 039148 80038548 1721000E */ bne $t9, $at, .L80038584
/* 03914C 8003854C 24050002 */ li $a1, 2
/* 039150 80038550 AE500074 */ sw $s0, 0x74($s2)
/* 039154 80038554 AFA80044 */ sw $t0, 0x44($sp)
/* 039158 80038558 AFA70040 */ sw $a3, 0x40($sp)
/* 03915C 8003855C AFA60058 */ sw $a2, 0x58($sp)
/* 039160 80038560 AFA30074 */ sw $v1, 0x74($sp)
/* 039164 80038564 0C02BF0F */ jal func_800AFC3C
/* 039168 80038568 AFA2003C */ sw $v0, 0x3c($sp)
/* 03916C 8003856C 8FA2003C */ lw $v0, 0x3c($sp)
/* 039170 80038570 8FA30074 */ lw $v1, 0x74($sp)
/* 039174 80038574 8FA60058 */ lw $a2, 0x58($sp)
/* 039178 80038578 8FA70040 */ lw $a3, 0x40($sp)
/* 03917C 8003857C 8FA80044 */ lw $t0, 0x44($sp)
/* 039180 80038580 00000000 */ nop
.L80038584:
/* 039184 80038584 24630001 */ addiu $v1, $v1, 1
/* 039188 80038588 1467FFEA */ bne $v1, $a3, .L80038534
/* 03918C 8003858C 24420001 */ addiu $v0, $v0, 1
/* 039190 80038590 00001825 */ move $v1, $zero
.L80038594:
/* 039194 80038594 86660028 */ lh $a2, 0x28($s3)
/* 039198 80038598 00001025 */ move $v0, $zero
/* 03919C 8003859C 18C00015 */ blez $a2, .L800385F4
/* 0391A0 800385A0 00000000 */ nop
.L800385A4:
/* 0391A4 800385A4 8E690038 */ lw $t1, 0x38($s3)
/* 0391A8 800385A8 24630001 */ addiu $v1, $v1, 1
/* 0391AC 800385AC 01222021 */ addu $a0, $t1, $v0
/* 0391B0 800385B0 90850000 */ lbu $a1, ($a0)
/* 0391B4 800385B4 00000000 */ nop
/* 0391B8 800385B8 04A0000B */ bltz $a1, .L800385E8
/* 0391BC 800385BC 28A10004 */ slti $at, $a1, 4
/* 0391C0 800385C0 1020000A */ beqz $at, .L800385EC
/* 0391C4 800385C4 0066082A */ slt $at, $v1, $a2
/* 0391C8 800385C8 910A0000 */ lbu $t2, ($t0)
/* 0391CC 800385CC 00000000 */ nop
/* 0391D0 800385D0 022A5821 */ addu $t3, $s1, $t2
/* 0391D4 800385D4 916C0000 */ lbu $t4, ($t3)
/* 0391D8 800385D8 00000000 */ nop
/* 0391DC 800385DC A08C0000 */ sb $t4, ($a0)
/* 0391E0 800385E0 86660028 */ lh $a2, 0x28($s3)
/* 0391E4 800385E4 00000000 */ nop
.L800385E8:
/* 0391E8 800385E8 0066082A */ slt $at, $v1, $a2
.L800385EC:
/* 0391EC 800385EC 1420FFED */ bnez $at, .L800385A4
/* 0391F0 800385F0 2442000C */ addiu $v0, $v0, 0xc
.L800385F4:
/* 0391F4 800385F4 A240003B */ sb $zero, 0x3b($s2)
.L800385F8:
/* 0391F8 800385F8 8242003B */ lb $v0, 0x3b($s2)
/* 0391FC 800385FC 00000000 */ nop
/* 039200 80038600 0440003D */ bltz $v0, .L800386F8
/* 039204 80038604 8FBF0024 */ lw $ra, 0x24($sp)
/* 039208 80038608 866D0048 */ lh $t5, 0x48($s3)
/* 03920C 8003860C 8FA90064 */ lw $t1, 0x64($sp)
/* 039210 80038610 004D082A */ slt $at, $v0, $t5
/* 039214 80038614 10200037 */ beqz $at, .L800386F4
/* 039218 80038618 000270C0 */ sll $t6, $v0, 3
/* 03921C 8003861C 8E6F0044 */ lw $t7, 0x44($s3)
/* 039220 80038620 912A002C */ lbu $t2, 0x2c($t1)
/* 039224 80038624 01EEC021 */ addu $t8, $t7, $t6
/* 039228 80038628 8F050004 */ lw $a1, 4($t8)
/* 03922C 8003862C 24010001 */ li $at, 1
/* 039230 80038630 24A5FFFF */ addiu $a1, $a1, -1
/* 039234 80038634 1541002F */ bne $t2, $at, .L800386F4
/* 039238 80038638 0005C900 */ sll $t9, $a1, 4
/* 03923C 8003863C 0C00057E */ jal music_animation_fraction
/* 039240 80038640 AFB90070 */ sw $t9, 0x70($sp)
/* 039244 80038644 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 039248 80038648 44819800 */ mtc1 $at, $f19
/* 03924C 8003864C 44809000 */ mtc1 $zero, $f18
/* 039250 80038650 460003A1 */ cvt.d.s $f14, $f0
/* 039254 80038654 462E903C */ c.lt.d $f18, $f14
/* 039258 80038658 8FA50070 */ lw $a1, 0x70($sp)
/* 03925C 8003865C 45000015 */ bc1f .L800386B4
/* 039260 80038660 3C014000 */ li $at, 0x40000000 # 2.000000
/* 039264 80038664 46327101 */ sub.d $f4, $f14, $f18
/* 039268 80038668 44854000 */ mtc1 $a1, $f8
/* 03926C 8003866C 46202320 */ cvt.s.d $f12, $f4
/* 039270 80038670 460060A1 */ cvt.d.s $f2, $f12
/* 039274 80038674 46221180 */ add.d $f6, $f2, $f2
/* 039278 80038678 46804420 */ cvt.s.w $f16, $f8
/* 03927C 8003867C 46203320 */ cvt.s.d $f12, $f6
/* 039280 80038680 46106282 */ mul.s $f10, $f12, $f16
/* 039284 80038684 460A8101 */ sub.s $f4, $f16, $f10
/* 039288 80038688 444BF800 */ cfc1 $t3, $31
/* 03928C 8003868C 00000000 */ nop
/* 039290 80038690 35610003 */ ori $at, $t3, 3
/* 039294 80038694 38210002 */ xori $at, $at, 2
/* 039298 80038698 44C1F800 */ ctc1 $at, $31
/* 03929C 8003869C 00000000 */ nop
/* 0392A0 800386A0 460021A4 */ cvt.w.s $f6, $f4
/* 0392A4 800386A4 440C3000 */ mfc1 $t4, $f6
/* 0392A8 800386A8 44CBF800 */ ctc1 $t3, $31
/* 0392AC 800386AC 10000011 */ b .L800386F4
/* 0392B0 800386B0 A64C0018 */ sh $t4, 0x18($s2)
.L800386B4:
/* 0392B4 800386B4 44814000 */ mtc1 $at, $f8
/* 0392B8 800386B8 44855000 */ mtc1 $a1, $f10
/* 0392BC 800386BC 46080302 */ mul.s $f12, $f0, $f8
/* 0392C0 800386C0 46805120 */ cvt.s.w $f4, $f10
/* 0392C4 800386C4 460C2182 */ mul.s $f6, $f4, $f12
/* 0392C8 800386C8 444DF800 */ cfc1 $t5, $31
/* 0392CC 800386CC 00000000 */ nop
/* 0392D0 800386D0 35A10003 */ ori $at, $t5, 3
/* 0392D4 800386D4 38210002 */ xori $at, $at, 2
/* 0392D8 800386D8 44C1F800 */ ctc1 $at, $31
/* 0392DC 800386DC 00000000 */ nop
/* 0392E0 800386E0 46003224 */ cvt.w.s $f8, $f6
/* 0392E4 800386E4 440F4000 */ mfc1 $t7, $f8
/* 0392E8 800386E8 44CDF800 */ ctc1 $t5, $31
/* 0392EC 800386EC A64F0018 */ sh $t7, 0x18($s2)
/* 0392F0 800386F0 00000000 */ nop
.L800386F4:
/* 0392F4 800386F4 8FBF0024 */ lw $ra, 0x24($sp)
.L800386F8:
/* 0392F8 800386F8 8FB00014 */ lw $s0, 0x14($sp)
/* 0392FC 800386FC 8FB10018 */ lw $s1, 0x18($sp)
/* 039300 80038700 8FB2001C */ lw $s2, 0x1c($sp)
/* 039304 80038704 8FB30020 */ lw $s3, 0x20($sp)
/* 039308 80038708 03E00008 */ jr $ra
/* 03930C 8003870C 27BD0078 */ addiu $sp, $sp, 0x78
File diff suppressed because it is too large Load Diff
@@ -1,312 +0,0 @@
glabel obj_loop_fish
/* 037CD4 800370D4 27BDFF90 */ addiu $sp, $sp, -0x70
/* 037CD8 800370D8 AFBF001C */ sw $ra, 0x1c($sp)
/* 037CDC 800370DC AFB10018 */ sw $s1, 0x18($sp)
/* 037CE0 800370E0 00808825 */ move $s1, $a0
/* 037CE4 800370E4 AFB00014 */ sw $s0, 0x14($sp)
/* 037CE8 800370E8 0C019884 */ jal get_viewport_count
/* 037CEC 800370EC AFA50074 */ sw $a1, 0x74($sp)
/* 037CF0 800370F0 18400005 */ blez $v0, .L80037108
/* 037CF4 800370F4 00000000 */ nop
/* 037CF8 800370F8 0C003FEE */ jal free_object
/* 037CFC 800370FC 02202025 */ move $a0, $s1
/* 037D00 80037100 10000119 */ b .L80037568
/* 037D04 80037104 8FBF001C */ lw $ra, 0x1c($sp)
.L80037108:
/* 037D08 80037108 8E300064 */ lw $s0, 0x64($s1)
/* 037D0C 8003710C C6200010 */ lwc1 $f0, 0x10($s1)
/* 037D10 80037110 920300FD */ lbu $v1, 0xfd($s0)
/* 037D14 80037114 00000000 */ nop
/* 037D18 80037118 1060001B */ beqz $v1, .L80037188
/* 037D1C 8003711C 00601025 */ move $v0, $v1
/* 037D20 80037120 8FA50074 */ lw $a1, 0x74($sp)
/* 037D24 80037124 00000000 */ nop
/* 037D28 80037128 0065082A */ slt $at, $v1, $a1
/* 037D2C 8003712C 14200009 */ bnez $at, .L80037154
/* 037D30 80037130 00000000 */ nop
/* 037D34 80037134 44853000 */ mtc1 $a1, $f6
/* 037D38 80037138 C6240020 */ lwc1 $f4, 0x20($s1)
/* 037D3C 8003713C 46803220 */ cvt.s.w $f8, $f6
/* 037D40 80037140 00457023 */ subu $t6, $v0, $a1
/* 037D44 80037144 A20E00FD */ sb $t6, 0xfd($s0)
/* 037D48 80037148 46082282 */ mul.s $f10, $f4, $f8
/* 037D4C 8003714C 1000000C */ b .L80037180
/* 037D50 80037150 460A0000 */ add.s $f0, $f0, $f10
.L80037154:
/* 037D54 80037154 44832000 */ mtc1 $v1, $f4
/* 037D58 80037158 C6260020 */ lwc1 $f6, 0x20($s1)
/* 037D5C 8003715C 04610005 */ bgez $v1, .L80037174
/* 037D60 80037160 46802220 */ cvt.s.w $f8, $f4
/* 037D64 80037164 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 037D68 80037168 44815000 */ mtc1 $at, $f10
/* 037D6C 8003716C 00000000 */ nop
/* 037D70 80037170 460A4200 */ add.s $f8, $f8, $f10
.L80037174:
/* 037D74 80037174 46083102 */ mul.s $f4, $f6, $f8
/* 037D78 80037178 A20000FD */ sb $zero, 0xfd($s0)
/* 037D7C 8003717C 46040000 */ add.s $f0, $f0, $f4
.L80037180:
/* 037D80 80037180 1000003D */ b .L80037278
/* 037D84 80037184 E7A00068 */ swc1 $f0, 0x68($sp)
.L80037188:
/* 037D88 80037188 00002025 */ move $a0, $zero
/* 037D8C 8003718C 24050007 */ li $a1, 7
/* 037D90 80037190 0C01BE53 */ jal get_random_number_from_range
/* 037D94 80037194 E7A00068 */ swc1 $f0, 0x68($sp)
/* 037D98 80037198 14400037 */ bnez $v0, .L80037278
/* 037D9C 8003719C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 037DA0 800371A0 C60A0118 */ lwc1 $f10, 0x118($s0)
/* 037DA4 800371A4 44813000 */ mtc1 $at, $f6
/* 037DA8 800371A8 240400A0 */ li $a0, 160
/* 037DAC 800371AC 460A303E */ c.le.s $f6, $f10
/* 037DB0 800371B0 00000000 */ nop
/* 037DB4 800371B4 45000031 */ bc1f .L8003727C
/* 037DB8 800371B8 8FA50074 */ lw $a1, 0x74($sp)
/* 037DBC 800371BC 0C01BE53 */ jal get_random_number_from_range
/* 037DC0 800371C0 240500FF */ li $a1, 255
/* 037DC4 800371C4 444FF800 */ cfc1 $t7, $31
/* 037DC8 800371C8 C6080118 */ lwc1 $f8, 0x118($s0)
/* 037DCC 800371CC 35E10003 */ ori $at, $t7, 3
/* 037DD0 800371D0 38210002 */ xori $at, $at, 2
/* 037DD4 800371D4 44C1F800 */ ctc1 $at, $31
/* 037DD8 800371D8 A20200FD */ sb $v0, 0xfd($s0)
/* 037DDC 800371DC 46004124 */ cvt.w.s $f4, $f8
/* 037DE0 800371E0 00002025 */ move $a0, $zero
/* 037DE4 800371E4 44052000 */ mfc1 $a1, $f4
/* 037DE8 800371E8 44CFF800 */ ctc1 $t7, $31
/* 037DEC 800371EC 0C01BE53 */ jal get_random_number_from_range
/* 037DF0 800371F0 00000000 */ nop
/* 037DF4 800371F4 C6200010 */ lwc1 $f0, 0x10($s1)
/* 037DF8 800371F8 C60A010C */ lwc1 $f10, 0x10c($s0)
/* 037DFC 800371FC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 037E00 80037200 46005181 */ sub.s $f6, $f10, $f0
/* 037E04 80037204 E6260020 */ swc1 $f6, 0x20($s1)
/* 037E08 80037208 C608010C */ lwc1 $f8, 0x10c($s0)
/* 037E0C 8003720C 00000000 */ nop
/* 037E10 80037210 4608003C */ c.lt.s $f0, $f8
/* 037E14 80037214 00000000 */ nop
/* 037E18 80037218 45000007 */ bc1f .L80037238
/* 037E1C 8003721C 00000000 */ nop
/* 037E20 80037220 44825000 */ mtc1 $v0, $f10
/* 037E24 80037224 C6240020 */ lwc1 $f4, 0x20($s1)
/* 037E28 80037228 468051A0 */ cvt.s.w $f6, $f10
/* 037E2C 8003722C 46062200 */ add.s $f8, $f4, $f6
/* 037E30 80037230 10000006 */ b .L8003724C
/* 037E34 80037234 E6280020 */ swc1 $f8, 0x20($s1)
.L80037238:
/* 037E38 80037238 44822000 */ mtc1 $v0, $f4
/* 037E3C 8003723C C62A0020 */ lwc1 $f10, 0x20($s1)
/* 037E40 80037240 468021A0 */ cvt.s.w $f6, $f4
/* 037E44 80037244 46065201 */ sub.s $f8, $f10, $f6
/* 037E48 80037248 E6280020 */ swc1 $f8, 0x20($s1)
.L8003724C:
/* 037E4C 8003724C 921800FD */ lbu $t8, 0xfd($s0)
/* 037E50 80037250 C6240020 */ lwc1 $f4, 0x20($s1)
/* 037E54 80037254 44985000 */ mtc1 $t8, $f10
/* 037E58 80037258 07010004 */ bgez $t8, .L8003726C
/* 037E5C 8003725C 468051A0 */ cvt.s.w $f6, $f10
/* 037E60 80037260 44814000 */ mtc1 $at, $f8
/* 037E64 80037264 00000000 */ nop
/* 037E68 80037268 46083180 */ add.s $f6, $f6, $f8
.L8003726C:
/* 037E6C 8003726C 00000000 */ nop
/* 037E70 80037270 46062283 */ div.s $f10, $f4, $f6
/* 037E74 80037274 E62A0020 */ swc1 $f10, 0x20($s1)
.L80037278:
/* 037E78 80037278 8FA50074 */ lw $a1, 0x74($sp)
.L8003727C:
/* 037E7C 8003727C 86080100 */ lh $t0, 0x100($s0)
/* 037E80 80037280 861900FE */ lh $t9, 0xfe($s0)
/* 037E84 80037284 00A80019 */ multu $a1, $t0
/* 037E88 80037288 00004812 */ mflo $t1
/* 037E8C 8003728C 03295021 */ addu $t2, $t9, $t1
/* 037E90 80037290 A60A00FE */ sh $t2, 0xfe($s0)
/* 037E94 80037294 860B00FE */ lh $t3, 0xfe($s0)
/* 037E98 80037298 00000000 */ nop
/* 037E9C 8003729C 000B6440 */ sll $t4, $t3, 0x11
/* 037EA0 800372A0 0C01C1F1 */ jal sins_f
/* 037EA4 800372A4 000C2403 */ sra $a0, $t4, 0x10
/* 037EA8 800372A8 C6080114 */ lwc1 $f8, 0x114($s0)
/* 037EAC 800372AC 860400FE */ lh $a0, 0xfe($s0)
/* 037EB0 800372B0 46080302 */ mul.s $f12, $f0, $f8
/* 037EB4 800372B4 0C01C1FE */ jal coss_f
/* 037EB8 800372B8 E7AC006C */ swc1 $f12, 0x6c($sp)
/* 037EBC 800372BC C6040114 */ lwc1 $f4, 0x114($s0)
/* 037EC0 800372C0 86040104 */ lh $a0, 0x104($s0)
/* 037EC4 800372C4 46040082 */ mul.s $f2, $f0, $f4
/* 037EC8 800372C8 0C01C1F1 */ jal sins_f
/* 037ECC 800372CC E7A20064 */ swc1 $f2, 0x64($sp)
/* 037ED0 800372D0 86040104 */ lh $a0, 0x104($s0)
/* 037ED4 800372D4 0C01C1FE */ jal coss_f
/* 037ED8 800372D8 E7A0004C */ swc1 $f0, 0x4c($sp)
/* 037EDC 800372DC C7AE006C */ lwc1 $f14, 0x6c($sp)
/* 037EE0 800372E0 C7A20064 */ lwc1 $f2, 0x64($sp)
/* 037EE4 800372E4 46007182 */ mul.s $f6, $f14, $f0
/* 037EE8 800372E8 C7B0004C */ lwc1 $f16, 0x4c($sp)
/* 037EEC 800372EC 44809000 */ mtc1 $zero, $f18
/* 037EF0 800372F0 46101282 */ mul.s $f10, $f2, $f16
/* 037EF4 800372F4 00000000 */ nop
/* 037EF8 800372F8 46001202 */ mul.s $f8, $f2, $f0
/* 037EFC 800372FC 460A3300 */ add.s $f12, $f6, $f10
/* 037F00 80037300 C6060108 */ lwc1 $f6, 0x108($s0)
/* 037F04 80037304 C60A0110 */ lwc1 $f10, 0x110($s0)
/* 037F08 80037308 46107102 */ mul.s $f4, $f14, $f16
/* 037F0C 8003730C 46066300 */ add.s $f12, $f12, $f6
/* 037F10 80037310 46044081 */ sub.s $f2, $f8, $f4
/* 037F14 80037314 C628000C */ lwc1 $f8, 0xc($s1)
/* 037F18 80037318 460A1080 */ add.s $f2, $f2, $f10
/* 037F1C 8003731C C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 037F20 80037320 460C4101 */ sub.s $f4, $f8, $f12
/* 037F24 80037324 E7A40060 */ swc1 $f4, 0x60($sp)
/* 037F28 80037328 C6260010 */ lwc1 $f6, 0x10($s1)
/* 037F2C 8003732C 00000000 */ nop
/* 037F30 80037330 460A3201 */ sub.s $f8, $f6, $f10
/* 037F34 80037334 E7A8005C */ swc1 $f8, 0x5c($sp)
/* 037F38 80037338 C6240014 */ lwc1 $f4, 0x14($s1)
/* 037F3C 8003733C 00000000 */ nop
/* 037F40 80037340 46022181 */ sub.s $f6, $f4, $f2
/* 037F44 80037344 E7A60058 */ swc1 $f6, 0x58($sp)
/* 037F48 80037348 E632000C */ swc1 $f18, 0xc($s1)
/* 037F4C 8003734C E6320010 */ swc1 $f18, 0x10($s1)
/* 037F50 80037350 E6320014 */ swc1 $f18, 0x14($s1)
/* 037F54 80037354 E7AC006C */ swc1 $f12, 0x6c($sp)
/* 037F58 80037358 0C004558 */ jal ignore_bounds_check
/* 037F5C 8003735C E7A20064 */ swc1 $f2, 0x64($sp)
/* 037F60 80037360 C7A20064 */ lwc1 $f2, 0x64($sp)
/* 037F64 80037364 C7AC006C */ lwc1 $f12, 0x6c($sp)
/* 037F68 80037368 8FA60068 */ lw $a2, 0x68($sp)
/* 037F6C 8003736C 44071000 */ mfc1 $a3, $f2
/* 037F70 80037370 44056000 */ mfc1 $a1, $f12
/* 037F74 80037374 0C00455C */ jal move_object
/* 037F78 80037378 02202025 */ move $a0, $s1
/* 037F7C 8003737C C7A00060 */ lwc1 $f0, 0x60($sp)
/* 037F80 80037380 C7B00058 */ lwc1 $f16, 0x58($sp)
/* 037F84 80037384 46000282 */ mul.s $f10, $f0, $f0
/* 037F88 80037388 C7A2005C */ lwc1 $f2, 0x5c($sp)
/* 037F8C 8003738C 46108202 */ mul.s $f8, $f16, $f16
/* 037F90 80037390 46085380 */ add.s $f14, $f10, $f8
/* 037F94 80037394 46021102 */ mul.s $f4, $f2, $f2
/* 037F98 80037398 E7AE0020 */ swc1 $f14, 0x20($sp)
/* 037F9C 8003739C 0C0326B4 */ jal sqrtf
/* 037FA0 800373A0 460E2300 */ add.s $f12, $f4, $f14
/* 037FA4 800373A4 C7AC0020 */ lwc1 $f12, 0x20($sp)
/* 037FA8 800373A8 0C0326B4 */ jal sqrtf
/* 037FAC 800373AC E7A00050 */ swc1 $f0, 0x50($sp)
/* 037FB0 800373B0 3C0144C0 */ li $at, 0x44C00000 # 1536.000000
/* 037FB4 800373B4 44815000 */ mtc1 $at, $f10
/* 037FB8 800373B8 C7A60050 */ lwc1 $f6, 0x50($sp)
/* 037FBC 800373BC E7A00054 */ swc1 $f0, 0x54($sp)
/* 037FC0 800373C0 460A3202 */ mul.s $f8, $f6, $f10
/* 037FC4 800373C4 86180106 */ lh $t8, 0x106($s0)
/* 037FC8 800373C8 444EF800 */ cfc1 $t6, $31
/* 037FCC 800373CC 00000000 */ nop
/* 037FD0 800373D0 35C10003 */ ori $at, $t6, 3
/* 037FD4 800373D4 38210002 */ xori $at, $at, 2
/* 037FD8 800373D8 44C1F800 */ ctc1 $at, $31
/* 037FDC 800373DC 00000000 */ nop
/* 037FE0 800373E0 46004124 */ cvt.w.s $f4, $f8
/* 037FE4 800373E4 440F2000 */ mfc1 $t7, $f4
/* 037FE8 800373E8 44CEF800 */ ctc1 $t6, $31
/* 037FEC 800373EC 030F4021 */ addu $t0, $t8, $t7
/* 037FF0 800373F0 A6080106 */ sh $t0, 0x106($s0)
/* 037FF4 800373F4 C7AE0058 */ lwc1 $f14, 0x58($sp)
/* 037FF8 800373F8 C7AC0060 */ lwc1 $f12, 0x60($sp)
/* 037FFC 800373FC 0C01C1D4 */ jal arctan2_f
/* 038000 80037400 00000000 */ nop
/* 038004 80037404 A6220000 */ sh $v0, ($s1)
/* 038008 80037408 C7AC005C */ lwc1 $f12, 0x5c($sp)
/* 03800C 8003740C C7AE0054 */ lwc1 $f14, 0x54($sp)
/* 038010 80037410 0C01C1D4 */ jal arctan2_f
/* 038014 80037414 46006307 */ neg.s $f12, $f12
/* 038018 80037418 86230002 */ lh $v1, 2($s1)
/* 03801C 8003741C 8FAE0074 */ lw $t6, 0x74($sp)
/* 038020 80037420 00432023 */ subu $a0, $v0, $v1
/* 038024 80037424 00622823 */ subu $a1, $v1, $v0
/* 038028 80037428 3099FFFF */ andi $t9, $a0, 0xffff
/* 03802C 8003742C 30A9FFFF */ andi $t1, $a1, 0xffff
/* 038030 80037430 0329082A */ slt $at, $t9, $t1
/* 038034 80037434 10200009 */ beqz $at, .L8003745C
/* 038038 80037438 01202825 */ move $a1, $t1
/* 03803C 8003743C 8FAA0074 */ lw $t2, 0x74($sp)
/* 038040 80037440 00000000 */ nop
/* 038044 80037444 032A0019 */ multu $t9, $t2
/* 038048 80037448 00005812 */ mflo $t3
/* 03804C 8003744C 000B60C3 */ sra $t4, $t3, 3
/* 038050 80037450 006C6821 */ addu $t5, $v1, $t4
/* 038054 80037454 10000006 */ b .L80037470
/* 038058 80037458 A62D0002 */ sh $t5, 2($s1)
.L8003745C:
/* 03805C 8003745C 00AE0019 */ multu $a1, $t6
/* 038060 80037460 0000C012 */ mflo $t8
/* 038064 80037464 001878C3 */ sra $t7, $t8, 3
/* 038068 80037468 006F4023 */ subu $t0, $v1, $t7
/* 03806C 8003746C A6280002 */ sh $t0, 2($s1)
.L80037470:
/* 038070 80037470 921900FC */ lbu $t9, 0xfc($s0)
/* 038074 80037474 24090001 */ li $t1, 1
/* 038078 80037478 01395023 */ subu $t2, $t1, $t9
/* 03807C 8003747C 314B00FF */ andi $t3, $t2, 0xff
/* 038080 80037480 000B6080 */ sll $t4, $t3, 2
/* 038084 80037484 018B6023 */ subu $t4, $t4, $t3
/* 038088 80037488 000C6040 */ sll $t4, $t4, 1
/* 03808C 8003748C 000C6880 */ sll $t5, $t4, 2
/* 038090 80037490 01AC6821 */ addu $t5, $t5, $t4
/* 038094 80037494 000D6840 */ sll $t5, $t5, 1
/* 038098 80037498 020D1821 */ addu $v1, $s0, $t5
/* 03809C 8003749C A20A00FC */ sb $t2, 0xfc($s0)
/* 0380A0 800374A0 24630080 */ addiu $v1, $v1, 0x80
/* 0380A4 800374A4 86040106 */ lh $a0, 0x106($s0)
/* 0380A8 800374A8 0C01C20C */ jal sins
/* 0380AC 800374AC AFA30028 */ sw $v1, 0x28($sp)
/* 0380B0 800374B0 000288C3 */ sra $s1, $v0, 3
/* 0380B4 800374B4 00112400 */ sll $a0, $s1, 0x10
/* 0380B8 800374B8 00047403 */ sra $t6, $a0, 0x10
/* 0380BC 800374BC 0C01C1FE */ jal coss_f
/* 0380C0 800374C0 01C02025 */ move $a0, $t6
/* 0380C4 800374C4 3C014200 */ li $at, 0x42000000 # 32.000000
/* 0380C8 800374C8 44813000 */ mtc1 $at, $f6
/* 0380CC 800374CC 00112400 */ sll $a0, $s1, 0x10
/* 0380D0 800374D0 46060282 */ mul.s $f10, $f0, $f6
/* 0380D4 800374D4 00047C03 */ sra $t7, $a0, 0x10
/* 0380D8 800374D8 01E02025 */ move $a0, $t7
/* 0380DC 800374DC 4458F800 */ cfc1 $t8, $31
/* 0380E0 800374E0 00000000 */ nop
/* 0380E4 800374E4 37010003 */ ori $at, $t8, 3
/* 0380E8 800374E8 38210002 */ xori $at, $at, 2
/* 0380EC 800374EC 44C1F800 */ ctc1 $at, $31
/* 0380F0 800374F0 00000000 */ nop
/* 0380F4 800374F4 46005224 */ cvt.w.s $f8, $f10
/* 0380F8 800374F8 44104000 */ mfc1 $s0, $f8
/* 0380FC 800374FC 44D8F800 */ ctc1 $t8, $31
/* 038100 80037500 0C01C1F1 */ jal sins_f
/* 038104 80037504 00000000 */ nop
/* 038108 80037508 3C014200 */ li $at, 0x42000000 # 32.000000
/* 03810C 8003750C 44812000 */ mtc1 $at, $f4
/* 038110 80037510 8FA30028 */ lw $v1, 0x28($sp)
/* 038114 80037514 46040182 */ mul.s $f6, $f0, $f4
/* 038118 80037518 84690014 */ lh $t1, 0x14($v1)
/* 03811C 8003751C 846A0018 */ lh $t2, 0x18($v1)
/* 038120 80037520 846C001E */ lh $t4, 0x1e($v1)
/* 038124 80037524 4448F800 */ cfc1 $t0, $31
/* 038128 80037528 846E0022 */ lh $t6, 0x22($v1)
/* 03812C 8003752C 35010003 */ ori $at, $t0, 3
/* 038130 80037530 38210002 */ xori $at, $at, 2
/* 038134 80037534 44C1F800 */ ctc1 $at, $31
/* 038138 80037538 01505821 */ addu $t3, $t2, $s0
/* 03813C 8003753C 460032A4 */ cvt.w.s $f10, $f6
/* 038140 80037540 01D0C021 */ addu $t8, $t6, $s0
/* 038144 80037544 44025000 */ mfc1 $v0, $f10
/* 038148 80037548 44C8F800 */ ctc1 $t0, $31
/* 03814C 8003754C 0122C821 */ addu $t9, $t1, $v0
/* 038150 80037550 01826821 */ addu $t5, $t4, $v0
/* 038154 80037554 A4790028 */ sh $t9, 0x28($v1)
/* 038158 80037558 A46B002C */ sh $t3, 0x2c($v1)
/* 03815C 8003755C A46D0032 */ sh $t5, 0x32($v1)
/* 038160 80037560 A4780036 */ sh $t8, 0x36($v1)
/* 038164 80037564 8FBF001C */ lw $ra, 0x1c($sp)
.L80037568:
/* 038168 80037568 8FB00014 */ lw $s0, 0x14($sp)
/* 03816C 8003756C 8FB10018 */ lw $s1, 0x18($sp)
/* 038170 80037570 03E00008 */ jr $ra
/* 038174 80037574 27BD0070 */ addiu $sp, $sp, 0x70
@@ -1,320 +0,0 @@
.late_rodata
glabel D_800E61A8
.double 0.001
glabel D_800E61B0
.float 0.001
.word 0 # Padding
glabel D_800E61B8
.double 0.1
.text
glabel obj_loop_weaponballoon
/* 03ED40 8003E140 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 03ED44 8003E144 AFBF0024 */ sw $ra, 0x24($sp)
/* 03ED48 8003E148 AFB00020 */ sw $s0, 0x20($sp)
/* 03ED4C 8003E14C AFA50044 */ sw $a1, 0x44($sp)
/* 03ED50 8003E150 8C860064 */ lw $a2, 0x64($a0)
/* 03ED54 8003E154 3C0142B4 */ li $at, 0x42B40000 # 90.000000
/* 03ED58 8003E158 84CE0004 */ lh $t6, 4($a2)
/* 03ED5C 8003E15C 44814000 */ mtc1 $at, $f8
/* 03ED60 8003E160 448E2000 */ mtc1 $t6, $f4
/* 03ED64 8003E164 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 03ED68 8003E168 468021A0 */ cvt.s.w $f6, $f4
/* 03ED6C 8003E16C 44819800 */ mtc1 $at, $f19
/* 03ED70 8003E170 44809000 */ mtc1 $zero, $f18
/* 03ED74 8003E174 46083283 */ div.s $f10, $f6, $f8
/* 03ED78 8003E178 C4C60000 */ lwc1 $f6, ($a2)
/* 03ED7C 8003E17C 3C01800E */ lui $at, %hi(D_800E61A8) # $at, 0x800e
/* 03ED80 8003E180 46003221 */ cvt.d.s $f8, $f6
/* 03ED84 8003E184 00808025 */ move $s0, $a0
/* 03ED88 8003E188 240A0001 */ li $t2, 1
/* 03ED8C 8003E18C 46005421 */ cvt.d.s $f16, $f10
/* 03ED90 8003E190 46309101 */ sub.d $f4, $f18, $f16
/* 03ED94 8003E194 46244282 */ mul.d $f10, $f8, $f4
/* 03ED98 8003E198 462054A0 */ cvt.s.d $f18, $f10
/* 03ED9C 8003E19C E4920008 */ swc1 $f18, 8($a0)
/* 03EDA0 8003E1A0 C4900008 */ lwc1 $f16, 8($a0)
/* 03EDA4 8003E1A4 C42661AC */ lwc1 $f6, %lo(D_800E61A8 + 4)($at)
/* 03EDA8 8003E1A8 C42761A8 */ lwc1 $f7, %lo(D_800E61A8)($at)
/* 03EDAC 8003E1AC 46008021 */ cvt.d.s $f0, $f16
/* 03EDB0 8003E1B0 4626003C */ c.lt.d $f0, $f6
/* 03EDB4 8003E1B4 3C01800E */ lui $at, %hi(D_800E61B0) # $at, 0x800e
/* 03EDB8 8003E1B8 45000007 */ bc1f .L8003E1D8
/* 03EDBC 8003E1BC 00000000 */ nop
/* 03EDC0 8003E1C0 C42861B0 */ lwc1 $f8, %lo(D_800E61B0)($at)
/* 03EDC4 8003E1C4 00000000 */ nop
/* 03EDC8 8003E1C8 E4880008 */ swc1 $f8, 8($a0)
/* 03EDCC 8003E1CC C4840008 */ lwc1 $f4, 8($a0)
/* 03EDD0 8003E1D0 00000000 */ nop
/* 03EDD4 8003E1D4 46002021 */ cvt.d.s $f0, $f4
.L8003E1D8:
/* 03EDD8 8003E1D8 3C01800E */ lui $at, %hi(D_800E61B8 + 4) # $at, 0x800e
/* 03EDDC 8003E1DC C42B61B8 */ lwc1 $f11, %lo(D_800E61B8)($at)
/* 03EDE0 8003E1E0 C42A61BC */ lwc1 $f10, %lo(D_800E61B8 + 4)($at)
/* 03EDE4 8003E1E4 02002025 */ move $a0, $s0
/* 03EDE8 8003E1E8 462A003C */ c.lt.d $f0, $f10
/* 03EDEC 8003E1EC 00000000 */ nop
/* 03EDF0 8003E1F0 45000006 */ bc1f .L8003E20C
/* 03EDF4 8003E1F4 00000000 */ nop
/* 03EDF8 8003E1F8 860F0006 */ lh $t7, 6($s0)
/* 03EDFC 8003E1FC 00000000 */ nop
/* 03EE00 8003E200 35F84000 */ ori $t8, $t7, 0x4000
/* 03EE04 8003E204 10000005 */ b .L8003E21C
/* 03EE08 8003E208 A6180006 */ sh $t8, 6($s0)
.L8003E20C:
/* 03EE0C 8003E20C 86190006 */ lh $t9, 6($s0)
/* 03EE10 8003E210 00000000 */ nop
/* 03EE14 8003E214 3328BFFF */ andi $t0, $t9, 0xbfff
/* 03EE18 8003E218 A6080006 */ sh $t0, 6($s0)
.L8003E21C:
/* 03EE1C 8003E21C 8E09007C */ lw $t1, 0x7c($s0)
/* 03EE20 8003E220 00000000 */ nop
/* 03EE24 8003E224 1920000C */ blez $t1, .L8003E258
/* 03EE28 8003E228 00000000 */ nop
/* 03EE2C 8003E22C AE0A0074 */ sw $t2, 0x74($s0)
/* 03EE30 8003E230 8FA50044 */ lw $a1, 0x44($sp)
/* 03EE34 8003E234 0C02BF0F */ jal func_800AFC3C
/* 03EE38 8003E238 AFA60034 */ sw $a2, 0x34($sp)
/* 03EE3C 8003E23C 8E0B007C */ lw $t3, 0x7c($s0)
/* 03EE40 8003E240 8FAC0044 */ lw $t4, 0x44($sp)
/* 03EE44 8003E244 00000000 */ nop
/* 03EE48 8003E248 016C6823 */ subu $t5, $t3, $t4
/* 03EE4C 8003E24C AE0D007C */ sw $t5, 0x7c($s0)
/* 03EE50 8003E250 8FA60034 */ lw $a2, 0x34($sp)
/* 03EE54 8003E254 00000000 */ nop
.L8003E258:
/* 03EE58 8003E258 84C20004 */ lh $v0, 4($a2)
/* 03EE5C 8003E25C 2401005A */ li $at, 90
/* 03EE60 8003E260 10400015 */ beqz $v0, .L8003E2B8
/* 03EE64 8003E264 00000000 */ nop
/* 03EE68 8003E268 14410009 */ bne $v0, $at, .L8003E290
/* 03EE6C 8003E26C 8FB80044 */ lw $t8, 0x44($sp)
/* 03EE70 8003E270 8E0E004C */ lw $t6, 0x4c($s0)
/* 03EE74 8003E274 00000000 */ nop
/* 03EE78 8003E278 91CF0013 */ lbu $t7, 0x13($t6)
/* 03EE7C 8003E27C 00000000 */ nop
/* 03EE80 8003E280 29E1002D */ slti $at, $t7, 0x2d
/* 03EE84 8003E284 14200008 */ bnez $at, .L8003E2A8
/* 03EE88 8003E288 00000000 */ nop
/* 03EE8C 8003E28C 8FB80044 */ lw $t8, 0x44($sp)
.L8003E290:
/* 03EE90 8003E290 00000000 */ nop
/* 03EE94 8003E294 0058C823 */ subu $t9, $v0, $t8
/* 03EE98 8003E298 03384023 */ subu $t0, $t9, $t8
/* 03EE9C 8003E29C A4C80004 */ sh $t0, 4($a2)
/* 03EEA0 8003E2A0 84C20004 */ lh $v0, 4($a2)
/* 03EEA4 8003E2A4 00000000 */ nop
.L8003E2A8:
/* 03EEA8 8003E2A8 044100BE */ bgez $v0, .L8003E5A4
/* 03EEAC 8003E2AC 8FBF0024 */ lw $ra, 0x24($sp)
/* 03EEB0 8003E2B0 100000BB */ b .L8003E5A0
/* 03EEB4 8003E2B4 A4C00004 */ sh $zero, 4($a2)
.L8003E2B8:
/* 03EEB8 8003E2B8 8E03004C */ lw $v1, 0x4c($s0)
/* 03EEBC 8003E2BC 00000000 */ nop
/* 03EEC0 8003E2C0 90690013 */ lbu $t1, 0x13($v1)
/* 03EEC4 8003E2C4 00000000 */ nop
/* 03EEC8 8003E2C8 2921002D */ slti $at, $t1, 0x2d
/* 03EECC 8003E2CC 102000B5 */ beqz $at, .L8003E5A4
/* 03EED0 8003E2D0 8FBF0024 */ lw $ra, 0x24($sp)
/* 03EED4 8003E2D4 8C620000 */ lw $v0, ($v1)
/* 03EED8 8003E2D8 00000000 */ nop
/* 03EEDC 8003E2DC 104000B1 */ beqz $v0, .L8003E5A4
/* 03EEE0 8003E2E0 8FBF0024 */ lw $ra, 0x24($sp)
/* 03EEE4 8003E2E4 8C4A0040 */ lw $t2, 0x40($v0)
/* 03EEE8 8003E2E8 24040001 */ li $a0, 1
/* 03EEEC 8003E2EC 814B0054 */ lb $t3, 0x54($t2)
/* 03EEF0 8003E2F0 00000000 */ nop
/* 03EEF4 8003E2F4 148B00AB */ bne $a0, $t3, .L8003E5A4
/* 03EEF8 8003E2F8 8FBF0024 */ lw $ra, 0x24($sp)
/* 03EEFC 8003E2FC 8C430064 */ lw $v1, 0x64($v0)
/* 03EF00 8003E300 00000000 */ nop
/* 03EF04 8003E304 806C01D6 */ lb $t4, 0x1d6($v1)
/* 03EF08 8003E308 00000000 */ nop
/* 03EF0C 8003E30C 29810005 */ slti $at, $t4, 5
/* 03EF10 8003E310 14200005 */ bnez $at, .L8003E328
/* 03EF14 8003E314 00000000 */ nop
/* 03EF18 8003E318 846D0000 */ lh $t5, ($v1)
/* 03EF1C 8003E31C 2401FFFF */ li $at, -1
/* 03EF20 8003E320 11A100A0 */ beq $t5, $at, .L8003E5A4
/* 03EF24 8003E324 8FBF0024 */ lw $ra, 0x24($sp)
.L8003E328:
/* 03EF28 8003E328 8E0E0078 */ lw $t6, 0x78($s0)
/* 03EF2C 8003E32C 80620172 */ lb $v0, 0x172($v1)
/* 03EF30 8003E330 A06E0172 */ sb $t6, 0x172($v1)
/* 03EF34 8003E334 806F0172 */ lb $t7, 0x172($v1)
/* 03EF38 8003E338 00000000 */ nop
/* 03EF3C 8003E33C 144F000A */ bne $v0, $t7, .L8003E368
/* 03EF40 8003E340 00000000 */ nop
/* 03EF44 8003E344 80790173 */ lb $t9, 0x173($v1)
/* 03EF48 8003E348 00000000 */ nop
/* 03EF4C 8003E34C 13200006 */ beqz $t9, .L8003E368
/* 03EF50 8003E350 00000000 */ nop
/* 03EF54 8003E354 80780174 */ lb $t8, 0x174($v1)
/* 03EF58 8003E358 00000000 */ nop
/* 03EF5C 8003E35C 27080001 */ addiu $t0, $t8, 1
/* 03EF60 8003E360 10000002 */ b .L8003E36C
/* 03EF64 8003E364 A0680174 */ sb $t0, 0x174($v1)
.L8003E368:
/* 03EF68 8003E368 A0600174 */ sb $zero, 0x174($v1)
.L8003E36C:
/* 03EF6C 8003E36C AFA30038 */ sw $v1, 0x38($sp)
/* 03EF70 8003E370 0C01AF66 */ jal get_current_level_race_type
/* 03EF74 8003E374 AFA60034 */ sw $a2, 0x34($sp)
/* 03EF78 8003E378 8FA30038 */ lw $v1, 0x38($sp)
/* 03EF7C 8003E37C 30490040 */ andi $t1, $v0, 0x40
/* 03EF80 8003E380 1120000C */ beqz $t1, .L8003E3B4
/* 03EF84 8003E384 24040001 */ li $a0, 1
/* 03EF88 8003E388 806A0174 */ lb $t2, 0x174($v1)
/* 03EF8C 8003E38C 00000000 */ nop
/* 03EF90 8003E390 29410002 */ slti $at, $t2, 2
/* 03EF94 8003E394 14200002 */ bnez $at, .L8003E3A0
/* 03EF98 8003E398 00000000 */ nop
/* 03EF9C 8003E39C A0640174 */ sb $a0, 0x174($v1)
.L8003E3A0:
/* 03EFA0 8003E3A0 806B0172 */ lb $t3, 0x172($v1)
/* 03EFA4 8003E3A4 24010002 */ li $at, 2
/* 03EFA8 8003E3A8 15610003 */ bne $t3, $at, .L8003E3B8
/* 03EFAC 8003E3AC 240C0003 */ li $t4, 3
/* 03EFB0 8003E3B0 A0640174 */ sb $a0, 0x174($v1)
.L8003E3B4:
/* 03EFB4 8003E3B4 240C0003 */ li $t4, 3
.L8003E3B8:
/* 03EFB8 8003E3B8 A3AC002D */ sb $t4, 0x2d($sp)
/* 03EFBC 8003E3BC 0C0270C3 */ jal get_filtered_cheats
/* 03EFC0 8003E3C0 AFA30038 */ sw $v1, 0x38($sp)
/* 03EFC4 8003E3C4 8FA30038 */ lw $v1, 0x38($sp)
/* 03EFC8 8003E3C8 00026AC0 */ sll $t5, $v0, 0xb
/* 03EFCC 8003E3CC 05A10002 */ bgez $t5, .L8003E3D8
/* 03EFD0 8003E3D0 24040002 */ li $a0, 2
/* 03EFD4 8003E3D4 A0640174 */ sb $a0, 0x174($v1)
.L8003E3D8:
/* 03EFD8 8003E3D8 806E0174 */ lb $t6, 0x174($v1)
/* 03EFDC 8003E3DC 00000000 */ nop
/* 03EFE0 8003E3E0 29C10003 */ slti $at, $t6, 3
/* 03EFE4 8003E3E4 14200003 */ bnez $at, .L8003E3F4
/* 03EFE8 8003E3E8 00000000 */ nop
/* 03EFEC 8003E3EC A0640174 */ sb $a0, 0x174($v1)
/* 03EFF0 8003E3F0 A3A4002D */ sb $a0, 0x2d($sp)
.L8003E3F4:
/* 03EFF4 8003E3F4 2404000C */ li $a0, 12
/* 03EFF8 8003E3F8 0C0078A7 */ jal get_misc_asset
/* 03EFFC 8003E3FC AFA30038 */ sw $v1, 0x38($sp)
/* 03F000 8003E400 8FA30038 */ lw $v1, 0x38($sp)
/* 03F004 8003E404 00000000 */ nop
/* 03F008 8003E408 806F0172 */ lb $t7, 0x172($v1)
/* 03F00C 8003E40C 80780174 */ lb $t8, 0x174($v1)
/* 03F010 8003E410 000FC880 */ sll $t9, $t7, 2
/* 03F014 8003E414 032FC821 */ addu $t9, $t9, $t7
/* 03F018 8003E418 0019C840 */ sll $t9, $t9, 1
/* 03F01C 8003E41C 00184040 */ sll $t0, $t8, 1
/* 03F020 8003E420 03284821 */ addu $t1, $t9, $t0
/* 03F024 8003E424 906C0209 */ lbu $t4, 0x209($v1)
/* 03F028 8003E428 01225021 */ addu $t2, $t1, $v0
/* 03F02C 8003E42C 814B0001 */ lb $t3, 1($t2)
/* 03F030 8003E430 80660173 */ lb $a2, 0x173($v1)
/* 03F034 8003E434 358D0001 */ ori $t5, $t4, 1
/* 03F038 8003E438 A06D0209 */ sb $t5, 0x209($v1)
/* 03F03C 8003E43C A06B0173 */ sb $t3, 0x173($v1)
/* 03F040 8003E440 0C0270F2 */ jal get_number_of_active_players
/* 03F044 8003E444 A3A6002E */ sb $a2, 0x2e($sp)
/* 03F048 8003E448 8FA30038 */ lw $v1, 0x38($sp)
/* 03F04C 8003E44C 83A6002E */ lb $a2, 0x2e($sp)
/* 03F050 8003E450 28410002 */ slti $at, $v0, 2
/* 03F054 8003E454 10200002 */ beqz $at, .L8003E460
/* 03F058 8003E458 240E0010 */ li $t6, 16
/* 03F05C 8003E45C AE0E007C */ sw $t6, 0x7c($s0)
.L8003E460:
/* 03F060 8003E460 84670000 */ lh $a3, ($v1)
/* 03F064 8003E464 2401FFFF */ li $at, -1
/* 03F068 8003E468 14E1000A */ bne $a3, $at, .L8003E494
/* 03F06C 8003E46C 2404000E */ li $a0, 14
/* 03F070 8003E470 8E05000C */ lw $a1, 0xc($s0)
/* 03F074 8003E474 8E060010 */ lw $a2, 0x10($s0)
/* 03F078 8003E478 8E070014 */ lw $a3, 0x14($s0)
/* 03F07C 8003E47C 240F0004 */ li $t7, 4
/* 03F080 8003E480 AFAF0010 */ sw $t7, 0x10($sp)
/* 03F084 8003E484 0C002556 */ jal play_sound_at_position
/* 03F088 8003E488 AFA00014 */ sw $zero, 0x14($sp)
/* 03F08C 8003E48C 1000003D */ b .L8003E584
/* 03F090 8003E490 240D0001 */ li $t5, 1
.L8003E494:
/* 03F094 8003E494 80620174 */ lb $v0, 0x174($v1)
/* 03F098 8003E498 83B8002D */ lb $t8, 0x2d($sp)
/* 03F09C 8003E49C 00000000 */ nop
/* 03F0A0 8003E4A0 17020024 */ bne $t8, $v0, .L8003E534
/* 03F0A4 8003E4A4 00000000 */ nop
/* 03F0A8 8003E4A8 807901D8 */ lb $t9, 0x1d8($v1)
/* 03F0AC 8003E4AC 00000000 */ nop
/* 03F0B0 8003E4B0 17200034 */ bnez $t9, .L8003E584
/* 03F0B4 8003E4B4 240D0001 */ li $t5, 1
/* 03F0B8 8003E4B8 80680173 */ lb $t0, 0x173($v1)
/* 03F0BC 8003E4BC 2404000E */ li $a0, 14
/* 03F0C0 8003E4C0 10C80014 */ beq $a2, $t0, .L8003E514
/* 03F0C4 8003E4C4 240A0004 */ li $t2, 4
/* 03F0C8 8003E4C8 2404013E */ li $a0, 318
/* 03F0CC 8003E4CC 3C053F80 */ lui $a1, 0x3f80
/* 03F0D0 8003E4D0 00E03025 */ move $a2, $a3
/* 03F0D4 8003E4D4 0C029D21 */ jal set_time_trial_start_voice
/* 03F0D8 8003E4D8 AFA30038 */ sw $v1, 0x38($sp)
/* 03F0DC 8003E4DC 8FA30038 */ lw $v1, 0x38($sp)
/* 03F0E0 8003E4E0 00002825 */ move $a1, $zero
/* 03F0E4 8003E4E4 80660174 */ lb $a2, 0x174($v1)
/* 03F0E8 8003E4E8 00000000 */ nop
/* 03F0EC 8003E4EC 28C10003 */ slti $at, $a2, 3
/* 03F0F0 8003E4F0 14200003 */ bnez $at, .L8003E500
/* 03F0F4 8003E4F4 24C400A0 */ addiu $a0, $a2, 0xa0
/* 03F0F8 8003E4F8 24060002 */ li $a2, 2
/* 03F0FC 8003E4FC 24C400A0 */ addiu $a0, $a2, 0xa0
.L8003E500:
/* 03F100 8003E500 3089FFFF */ andi $t1, $a0, 0xffff
/* 03F104 8003E504 0C000741 */ jal sound_play
/* 03F108 8003E508 01202025 */ move $a0, $t1
/* 03F10C 8003E50C 1000001D */ b .L8003E584
/* 03F110 8003E510 240D0001 */ li $t5, 1
.L8003E514:
/* 03F114 8003E514 8E05000C */ lw $a1, 0xc($s0)
/* 03F118 8003E518 8E060010 */ lw $a2, 0x10($s0)
/* 03F11C 8003E51C 8E070014 */ lw $a3, 0x14($s0)
/* 03F120 8003E520 AFA00014 */ sw $zero, 0x14($sp)
/* 03F124 8003E524 0C002556 */ jal play_sound_at_position
/* 03F128 8003E528 AFAA0010 */ sw $t2, 0x10($sp)
/* 03F12C 8003E52C 10000015 */ b .L8003E584
/* 03F130 8003E530 240D0001 */ li $t5, 1
.L8003E534:
/* 03F134 8003E534 806B01D8 */ lb $t3, 0x1d8($v1)
/* 03F138 8003E538 00000000 */ nop
/* 03F13C 8003E53C 15600011 */ bnez $t3, .L8003E584
/* 03F140 8003E540 240D0001 */ li $t5, 1
/* 03F144 8003E544 18400009 */ blez $v0, .L8003E56C
/* 03F148 8003E548 2404013E */ li $a0, 318
/* 03F14C 8003E54C 3C053F80 */ lui $a1, 0x3f80
/* 03F150 8003E550 00E03025 */ move $a2, $a3
/* 03F154 8003E554 0C029D21 */ jal set_time_trial_start_voice
/* 03F158 8003E558 AFA30038 */ sw $v1, 0x38($sp)
/* 03F15C 8003E55C 8FA30038 */ lw $v1, 0x38($sp)
/* 03F160 8003E560 00000000 */ nop
/* 03F164 8003E564 80620174 */ lb $v0, 0x174($v1)
/* 03F168 8003E568 00000000 */ nop
.L8003E56C:
/* 03F16C 8003E56C 244400A0 */ addiu $a0, $v0, 0xa0
/* 03F170 8003E570 308CFFFF */ andi $t4, $a0, 0xffff
/* 03F174 8003E574 01802025 */ move $a0, $t4
/* 03F178 8003E578 0C000741 */ jal sound_play
/* 03F17C 8003E57C 00002825 */ move $a1, $zero
/* 03F180 8003E580 240D0001 */ li $t5, 1
.L8003E584:
/* 03F184 8003E584 AE0D0074 */ sw $t5, 0x74($s0)
/* 03F188 8003E588 8FA50044 */ lw $a1, 0x44($sp)
/* 03F18C 8003E58C 0C02BF0F */ jal func_800AFC3C
/* 03F190 8003E590 02002025 */ move $a0, $s0
/* 03F194 8003E594 8FAF0034 */ lw $t7, 0x34($sp)
/* 03F198 8003E598 240E005A */ li $t6, 90
/* 03F19C 8003E59C A5EE0004 */ sh $t6, 4($t7)
.L8003E5A0:
/* 03F1A0 8003E5A0 8FBF0024 */ lw $ra, 0x24($sp)
.L8003E5A4:
/* 03F1A4 8003E5A4 8FB00020 */ lw $s0, 0x20($sp)
/* 03F1A8 8003E5A8 03E00008 */ jr $ra
/* 03F1AC 8003E5AC 27BD0040 */ addiu $sp, $sp, 0x40
File diff suppressed because it is too large Load Diff
+3
View File
@@ -157,6 +157,9 @@ typedef struct LevelObjectEntry_Door {
/* 0x10 */ u8 unk10;
/* 0x11 */ s8 unk11;
/* 0x12 */ u8 scale;
/* 0x13 */ s8 unk13;
/* 0x14 */ s8 unk14;
/* 0x15 */ u8 unk15;
} LevelObjectEntry_Door;
typedef struct LevelObjectEntry_FogChanger {
+8
View File
@@ -154,6 +154,13 @@ typedef struct ObjPropertySetupPoint {
s32 unk4;
} ObjPropertySetupPoint;
typedef struct ObjPropertyWeapon {
s32 unk0;
u8 unk4;
u8 unk5;
s16 unk6;
} ObjPropertyWeapon;
typedef struct ObjProperties {
union {
ObjPropertyCommon common;
@@ -185,6 +192,7 @@ typedef struct ObjProperties {
ObjPropertyWeaponBalloon weaponBalloon;
ObjPropertyRacer racer;
ObjPropertySetupPoint setupPoint;
ObjPropertyWeapon weapon;
};
} ObjProperties;
+36 -10
View File
@@ -421,10 +421,34 @@ typedef struct LevelHeader {
/* 0x52 */ u8 music;
/* 0x53 */ u8 unk53;
/* 0x54 */ u16 instruments;
/* 0x56 */ u8 unk56;
/* 0x57 */ u8 unk57;
/* 0x58 */ u8 unk58;
/* 0x59 */ u8 unk59;
/* 0x5A */ s16 unk5A;
/* 0x5C */ u8 unk5C;
/* 0x5D */ u8 unk5D;
/* 0x5E */ s16 unk5E;
/* 0x60 */ s16 unk60;
/* 0x62 */ s16 unk62;
/* 0x64 */ s16 unk64;
/* 0x66 */ s16 unk66;
/* 0x68 */ s16 unk68;
/* 0x6A */ u8 unk6A;
/* 0x6B */ u8 unk6B;
/* 0x6C */ s8 unk6C;
/* 0x6D */ s8 unk6D;
/* 0x6E */ s16 unk6E;
/* 0x56 */ u8 pad56[0x1A];
//func_800B8134 Seems to use this struct, and it differs on unk70 only.
union {
/* 0x70 */ LevelHeader_70 *unk70;
struct {
/* 0x70 */ u8 unk70_u8;
/* 0x71 */ u8 unk71;
};
};
/* 0x74 */ LevelHeader_70 *unk74[7];
// Weather related?
@@ -1004,9 +1028,9 @@ typedef struct Object_Fish {
/* 0x0F8 */ TextureHeader *texture;
/* 0x0FC */ u8 unkFC;
/* 0x0FD */ u8 unkFD;
/* 0x0FE */ u8 unkFE;
/* 0x0FF */ u8 unkFF;
/* 0x100 */ s32 unk100;
/* 0x0FE */ s16 unkFE;
/* 0x100 */ s16 unk100;
/* 0x102 */ s16 unk102;
/* 0x104 */ s16 unk104;
/* 0x106 */ s16 unk106;
/* 0x108 */ f32 unk108;
@@ -1390,16 +1414,16 @@ typedef struct Object_Racer {
typedef struct Object_Door {
/* 0x00 */ f32 homeY;
/* 0x04 */ u8 pad4[0x4];
/* 0x04 */ SoundMask *unk4;
/* 0x08 */ s32 unk8;
/* 0x0A */ s16 padA;
/* 0x0A */ s16 unkA;
/* 0x0E */ s8 unkE;
/* 0x0F */ u8 unkF;
/* 0x10 */ u8 unk10;
/* 0x11 */ u8 unk11;
/* 0x12 */ u8 unk12;
/* 0x13 */ u8 unk13;
/* 0x14 */ s8 unk14;
/* 0x13 */ s8 unk13;
/* 0x14 */ s8 unk14[4];
} Object_Door;
typedef struct Object_Trigger {
@@ -1582,7 +1606,9 @@ typedef struct Object_8001E89C_64 {
typedef struct Object_CharacterSelect {
u8 pad0[0x14];
f32 unk14;
u8 pad18[0x14];
u8 pad18[0x10];
s16 unk28;
u8 unk2A[2];
u8 unk2C;
u8 pad2D[2];
u8 unk2F;
+1 -1
View File
@@ -65,7 +65,7 @@ void process_onscreen_textbox(s32 arg0);
void find_next_subtitle(void);
s32 func_800C38B4(s32 arg0, TextBox *textbox);
void render_subtitles(void);
void set_current_text(s32 arg0);
void set_current_text(s32 textID);
s32 dialogue_challenge_loop(void);
#endif
+12 -4
View File
@@ -162,15 +162,23 @@ void set_rng_seed(s32 num) {
gCurrentRNGSeed = num;
}
void save_rng_seed(s32 num) {
num = gCurrentRNGSeed;
#ifdef NON_MATCHING
void save_rng_seed(void) {
s32 num = gCurrentRNGSeed;
gPrevRNGSeed = num;
}
#else
GLOBAL_ASM("asm/math_util/save_rng_seed.s")
#endif
void load_rng_seed(s32 num) {
num = gPrevRNGSeed;
#ifdef NON_MATCHING
void load_rng_seed(void) {
s32 num = gPrevRNGSeed;
gCurrentRNGSeed = num;
}
#else
GLOBAL_ASM("asm/math_util/load_rng_seed.s")
#endif
s32 get_rng_seed(void) {
return gCurrentRNGSeed;
+2 -2
View File
@@ -29,8 +29,8 @@ s32 coss(s16 angle);
s32 sins(s16 angle);
s32 sins_2(s16 angle);
void set_rng_seed(s32 num);
void save_rng_seed(s32 num);
void load_rng_seed(s32 num);
void save_rng_seed(void);
void load_rng_seed(void);
s32 get_rng_seed(void);
s32 get_random_number_from_range(s32, s32);
void f32_matrix_to_s32_matrix(Matrix *input, MatrixS *output);
+665 -75
View File
File diff suppressed because it is too large Load Diff
+5 -17
View File
@@ -239,18 +239,6 @@ typedef struct unk80041A90_MidiFade {
f32 unk14;
} unk80041A90_MidiFade;
// Unsure about the signed/unsigned with these arrays.
extern u16 D_800DC9A8[20];
extern u16 D_800DC9D0[64];
extern s8 D_800DCA50[8];
extern u8 D_800DCA58[9];
extern s8 D_800DCA64[9];
extern s8 D_800DCA70[10];
extern s32 D_800DCA7C[3];
extern s32 D_800DCA88[3];
extern s8 D_800DCA94[8];
extern s8 D_800DCA9C[12];
typedef struct VertexPosition {
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
@@ -399,6 +387,11 @@ void homing_rocket_prevent_overshoot(Object *obj, s32 updateRate, Object_Weapon
void func_8001F23C(Object *obj, LevelObjectEntry_Animation *animEntry);
void obj_loop_effectbox(Object *obj, s32 updateRate);
void func_8001EE74(void);
void obj_loop_door(Object *doorObj, s32 updateRate);
void obj_loop_fish(Object *fishObj, s32 updateRate);
void obj_loop_weaponballoon(Object *weaponBalloonObj, s32 updateRate);
void obj_loop_char_select(Object *charSelectObj, s32 updateRate);
void func_8003F2E8(Object *weaponObj, s32 updateRate);
//Non Matching
void obj_loop_lavaspurt(Object *obj, s32 updateRate);
@@ -412,12 +405,8 @@ void obj_loop_posarrow(Object *obj, s32 updateRate);
void obj_loop_bananacreator(Object *obj, s32 updateRate);
void obj_loop_butterfly(Object *obj, s32 updateRate);
void obj_loop_airzippers_waterzippers(Object *obj, s32 updateRate);
void obj_loop_char_select(Object *obj, s32 updateRate);
void obj_loop_texscroll(Object *obj, s32 updateRate);
void obj_loop_weaponballoon(Object *obj, s32 updateRate);
void obj_loop_door(Object *obj, s32 updateRate);
void obj_loop_exit(Object *obj, s32 updateRate);
void obj_loop_fish(Object *obj, s32 updateRate);
void obj_loop_scenery(Object *obj, s32 updateRate);
void obj_init_midifade(Object *obj, LevelObjectEntry_MidiFade *entry);
INCONSISTENT void obj_init_butterfly();
@@ -443,6 +432,5 @@ void try_to_collect_egg(Object *, Object_CollectEgg*);
s32 func_8001F3EC(s32);
s32 func_80021600(s32);
void func_8003F2E8(Object *, s32 updateRate);
#endif
+2 -3
View File
@@ -482,7 +482,7 @@ void clear_object_pointers(void) {
D_8011AE00 = 0;
D_8011AE01 = 1;
D_8011AD53 = 0;
D_8011ADD5 = 0;
D_8011ADD5 = FALSE;
}
/**
@@ -2346,9 +2346,8 @@ s32 play_footstep_sounds(Object *obj, s32 arg1, s32 frame, s32 oddSoundId, s32 e
* Make the next call of move_object never mark the object as out of bounds.
* Official Name: objMoveXYZnocheck
*/
s32 ignore_bounds_check(void) { //! @bug The developers probably intended this to be a void function.
void ignore_bounds_check(void) {
gNoBoundsCheck = TRUE;
// No return value!
}
/**
+1 -1
View File
@@ -356,7 +356,7 @@ s32 func_80010028(s32 arg0);
void func_80011390(void);
s32 get_race_countdown(void);
s32 get_race_start_timer(void);
s32 ignore_bounds_check(void);
void ignore_bounds_check(void);
void func_80012C30(void);
void func_80012C3C(Gfx** dList);
void func_80012C98(Gfx **dList);
+388 -69
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