mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
We are battling in Darkwater Beach. (1 opponent remains) (#409)
* func_8000418C WIP * func_8000418C progress * Mach func_80030664 * Match func_80030DE0 * func_8001CC48 NON_MATCHING * Match func_8001B3C4 * Match func_80036040 * Match func_8001EFA4 * Match func_80016C68 * Update README * Remove func_80030DE0 asm * Update src/objects.c Co-authored-by: David Benepe <benepe96@gmail.com> * Match free_hud --------- Co-authored-by: David Benepe <benepe96@gmail.com>
This commit is contained in:
co-authored by
David Benepe
parent
888e4cde8b
commit
fd40898eee
@@ -5,11 +5,11 @@ 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 September 21, 2023, this is our current score:
|
||||
As of September 22, 2023, this is our current score:
|
||||
|
||||
    Decomp progress: 53.85%
|
||||
    Decomp progress: 54.12%
|
||||
|
||||
    Documentation progress: 27.65%
|
||||
    Documentation progress: 28.35%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
|
||||
---
|
||||
@@ -128,30 +128,30 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of September 21st, 2023, this is our current score:
|
||||
As of September 22nd, 2023, this is our current score:
|
||||
```
|
||||
========================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------- 53.85% Complete --------------------
|
||||
# Decompiled functions: 1550
|
||||
# GLOBAL_ASM remaining: 288
|
||||
# NON_MATCHING functions: 14
|
||||
# NON_EQUIVALENT WIP functions: 69
|
||||
------------------- 54.12% Complete --------------------
|
||||
# Decompiled functions: 1556
|
||||
# GLOBAL_ASM remaining: 282
|
||||
# NON_MATCHING functions: 15
|
||||
# NON_EQUIVALENT WIP functions: 68
|
||||
--------------------- Game Status ----------------------
|
||||
Balloons: 26/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 2/4, Wizpig Amulets: 2/4
|
||||
--------------------------------------------------------
|
||||
We are battling in Darkwater Beach. (2 opponents remain)
|
||||
We are battling in Darkwater Beach. (1 opponent remains)
|
||||
========================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------- 27.65% Complete --------------------
|
||||
# Documented functions: 606
|
||||
# Undocumented remaining: 964
|
||||
------------------- 28.35% Complete --------------------
|
||||
# Documented functions: 621
|
||||
# Undocumented remaining: 949
|
||||
--------------------- Game Status ----------------------
|
||||
Balloons: 14/47, Keys: 1/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
--------------------------------------------------------
|
||||
We are racing in Walrus Cove. (Lap 1/3)
|
||||
We are racing in Walrus Cove. (Lap 3/3)
|
||||
========================================================
|
||||
```
|
||||
<!-- README_SCORE_END -->
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
glabel func_800A003C
|
||||
/* 0A0C3C 800A003C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0A0C40 800A0040 3C028012 */ lui $v0, %hi(gAssetHudElementIdsCount) # $v0, 0x8012
|
||||
/* 0A0C44 800A0044 8C426CF8 */ lw $v0, %lo(gAssetHudElementIdsCount)($v0)
|
||||
/* 0A0C48 800A0048 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0A0C4C 800A004C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0A0C50 800A0050 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 0A0C54 800A0054 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 0A0C58 800A0058 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 0A0C5C 800A005C AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 0A0C60 800A0060 18400032 */ blez $v0, .L800A012C
|
||||
/* 0A0C64 800A0064 00008025 */ move $s0, $zero
|
||||
/* 0A0C68 800A0068 3C148012 */ lui $s4, %hi(gAssetHudElementIds) # $s4, 0x8012
|
||||
/* 0A0C6C 800A006C 3C128012 */ lui $s2, %hi(gAssetHudElements) # $s2, 0x8012
|
||||
/* 0A0C70 800A0070 26526CF4 */ addiu $s2, %lo(gAssetHudElements) # addiu $s2, $s2, 0x6cf4
|
||||
/* 0A0C74 800A0074 26946CF0 */ addiu $s4, %lo(gAssetHudElementIds) # addiu $s4, $s4, 0x6cf0
|
||||
/* 0A0C78 800A0078 00008825 */ move $s1, $zero
|
||||
/* 0A0C7C 800A007C 3413C000 */ li $s3, 49152
|
||||
.L800A0080:
|
||||
/* 0A0C80 800A0080 8E4E0000 */ lw $t6, ($s2)
|
||||
/* 0A0C84 800A0084 00000000 */ nop
|
||||
/* 0A0C88 800A0088 01D17821 */ addu $t7, $t6, $s1
|
||||
/* 0A0C8C 800A008C 8DE40000 */ lw $a0, ($t7)
|
||||
/* 0A0C90 800A0090 00000000 */ nop
|
||||
/* 0A0C94 800A0094 10800021 */ beqz $a0, .L800A011C
|
||||
/* 0A0C98 800A0098 00000000 */ nop
|
||||
/* 0A0C9C 800A009C 8E980000 */ lw $t8, ($s4)
|
||||
/* 0A0CA0 800A00A0 0010C840 */ sll $t9, $s0, 1
|
||||
/* 0A0CA4 800A00A4 03194021 */ addu $t0, $t8, $t9
|
||||
/* 0A0CA8 800A00A8 85020000 */ lh $v0, ($t0)
|
||||
/* 0A0CAC 800A00AC 00000000 */ nop
|
||||
/* 0A0CB0 800A00B0 3049C000 */ andi $t1, $v0, 0xc000
|
||||
/* 0A0CB4 800A00B4 16690005 */ bne $s3, $t1, .L800A00CC
|
||||
/* 0A0CB8 800A00B8 304A8000 */ andi $t2, $v0, 0x8000
|
||||
/* 0A0CBC 800A00BC 0C01ECAF */ jal free_texture
|
||||
/* 0A0CC0 800A00C0 00000000 */ nop
|
||||
/* 0A0CC4 800A00C4 10000010 */ b .L800A0108
|
||||
/* 0A0CC8 800A00C8 8E4C0000 */ lw $t4, ($s2)
|
||||
.L800A00CC:
|
||||
/* 0A0CCC 800A00CC 11400005 */ beqz $t2, .L800A00E4
|
||||
/* 0A0CD0 800A00D0 304B4000 */ andi $t3, $v0, 0x4000
|
||||
/* 0A0CD4 800A00D4 0C01F32C */ jal free_sprite
|
||||
/* 0A0CD8 800A00D8 00000000 */ nop
|
||||
/* 0A0CDC 800A00DC 1000000A */ b .L800A0108
|
||||
/* 0A0CE0 800A00E0 8E4C0000 */ lw $t4, ($s2)
|
||||
.L800A00E4:
|
||||
/* 0A0CE4 800A00E4 11600005 */ beqz $t3, .L800A00FC
|
||||
/* 0A0CE8 800A00E8 00000000 */ nop
|
||||
/* 0A0CEC 800A00EC 0C003FEE */ jal gParticlePtrList_addObject
|
||||
/* 0A0CF0 800A00F0 00000000 */ nop
|
||||
/* 0A0CF4 800A00F4 10000004 */ b .L800A0108
|
||||
/* 0A0CF8 800A00F8 8E4C0000 */ lw $t4, ($s2)
|
||||
.L800A00FC:
|
||||
/* 0A0CFC 800A00FC 0C017FD0 */ jal func_8005FF40
|
||||
/* 0A0D00 800A0100 00000000 */ nop
|
||||
/* 0A0D04 800A0104 8E4C0000 */ lw $t4, ($s2)
|
||||
.L800A0108:
|
||||
/* 0A0D08 800A0108 3C028012 */ lui $v0, %hi(gAssetHudElementIdsCount) # $v0, 0x8012
|
||||
/* 0A0D0C 800A010C 01916821 */ addu $t5, $t4, $s1
|
||||
/* 0A0D10 800A0110 ADA00000 */ sw $zero, ($t5)
|
||||
/* 0A0D14 800A0114 8C426CF8 */ lw $v0, %lo(gAssetHudElementIdsCount)($v0)
|
||||
/* 0A0D18 800A0118 00000000 */ nop
|
||||
.L800A011C:
|
||||
/* 0A0D1C 800A011C 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0A0D20 800A0120 0202082A */ slt $at, $s0, $v0
|
||||
/* 0A0D24 800A0124 1420FFD6 */ bnez $at, .L800A0080
|
||||
/* 0A0D28 800A0128 26310004 */ addiu $s1, $s1, 4
|
||||
.L800A012C:
|
||||
/* 0A0D2C 800A012C 3C048012 */ lui $a0, %hi(gPlayerHud) # $a0, 0x8012
|
||||
/* 0A0D30 800A0130 3C128012 */ lui $s2, %hi(gAssetHudElements) # $s2, 0x8012
|
||||
/* 0A0D34 800A0134 3C148012 */ lui $s4, %hi(gAssetHudElementIds) # $s4, 0x8012
|
||||
/* 0A0D38 800A0138 8C846CE0 */ lw $a0, %lo(gPlayerHud)($a0)
|
||||
/* 0A0D3C 800A013C 26946CF0 */ addiu $s4, %lo(gAssetHudElementIds) # addiu $s4, $s4, 0x6cf0
|
||||
/* 0A0D40 800A0140 0C01C450 */ jal free_from_memory_pool
|
||||
/* 0A0D44 800A0144 26526CF4 */ addiu $s2, %lo(gAssetHudElements) # addiu $s2, $s2, 0x6cf4
|
||||
/* 0A0D48 800A0148 8E840000 */ lw $a0, ($s4)
|
||||
/* 0A0D4C 800A014C 0C01C450 */ jal free_from_memory_pool
|
||||
/* 0A0D50 800A0150 00000000 */ nop
|
||||
/* 0A0D54 800A0154 3C018012 */ lui $at, %hi(gAssetHudElementIdsCount) # $at, 0x8012
|
||||
/* 0A0D58 800A0158 AC206CF8 */ sw $zero, %lo(gAssetHudElementIdsCount)($at)
|
||||
/* 0A0D5C 800A015C 8E440000 */ lw $a0, ($s2)
|
||||
/* 0A0D60 800A0160 0C01C450 */ jal free_from_memory_pool
|
||||
/* 0A0D64 800A0164 00000000 */ nop
|
||||
/* 0A0D68 800A0168 0C004013 */ jal gParticlePtrList_flush
|
||||
/* 0A0D6C 800A016C 00000000 */ nop
|
||||
/* 0A0D70 800A0170 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 0A0D74 800A0174 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0A0D78 800A0178 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 0A0D7C 800A017C 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 0A0D80 800A0180 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 0A0D84 800A0184 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 0A0D88 800A0188 03E00008 */ jr $ra
|
||||
/* 0A0D8C 800A018C 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
glabel func_80036040
|
||||
/* 036C40 80036040 27BDFF68 */ addiu $sp, $sp, -0x98
|
||||
/* 036C44 80036044 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 036C48 80036048 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 036C4C 8003604C 8C83004C */ lw $v1, 0x4c($a0)
|
||||
/* 036C50 80036050 00808025 */ move $s0, $a0
|
||||
/* 036C54 80036054 906E0013 */ lbu $t6, 0x13($v1)
|
||||
/* 036C58 80036058 00000000 */ nop
|
||||
/* 036C5C 8003605C 29C10028 */ slti $at, $t6, 0x28
|
||||
/* 036C60 80036060 10200049 */ beqz $at, .L80036188
|
||||
/* 036C64 80036064 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 036C68 80036068 8C620000 */ lw $v0, ($v1)
|
||||
/* 036C6C 8003606C 24070001 */ li $a3, 1
|
||||
/* 036C70 80036070 8C4F0040 */ lw $t7, 0x40($v0)
|
||||
/* 036C74 80036074 00000000 */ nop
|
||||
/* 036C78 80036078 81F80054 */ lb $t8, 0x54($t7)
|
||||
/* 036C7C 8003607C 00000000 */ nop
|
||||
/* 036C80 80036080 14F80041 */ bne $a3, $t8, .L80036188
|
||||
/* 036C84 80036084 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 036C88 80036088 8C430064 */ lw $v1, 0x64($v0)
|
||||
/* 036C8C 8003608C 00000000 */ nop
|
||||
/* 036C90 80036090 8C790144 */ lw $t9, 0x144($v1)
|
||||
/* 036C94 80036094 00000000 */ nop
|
||||
/* 036C98 80036098 1720003B */ bnez $t9, .L80036188
|
||||
/* 036C9C 8003609C 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 036CA0 800360A0 A0A7000B */ sb $a3, 0xb($a1)
|
||||
/* 036CA4 800360A4 84880006 */ lh $t0, 6($a0)
|
||||
/* 036CA8 800360A8 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 036CAC 800360AC 35094000 */ ori $t1, $t0, 0x4000
|
||||
/* 036CB0 800360B0 A4890006 */ sh $t1, 6($a0)
|
||||
/* 036CB4 800360B4 AC640144 */ sw $a0, 0x144($v1)
|
||||
/* 036CB8 800360B8 844A0000 */ lh $t2, ($v0)
|
||||
/* 036CBC 800360BC 44812000 */ mtc1 $at, $f4
|
||||
/* 036CC0 800360C0 000A5823 */ negu $t3, $t2
|
||||
/* 036CC4 800360C4 A7AB0038 */ sh $t3, 0x38($sp)
|
||||
/* 036CC8 800360C8 844C0002 */ lh $t4, 2($v0)
|
||||
/* 036CCC 800360CC 27A40050 */ addiu $a0, $sp, 0x50
|
||||
/* 036CD0 800360D0 000C6823 */ negu $t5, $t4
|
||||
/* 036CD4 800360D4 A7AD003A */ sh $t5, 0x3a($sp)
|
||||
/* 036CD8 800360D8 844E0004 */ lh $t6, 4($v0)
|
||||
/* 036CDC 800360DC E7A40040 */ swc1 $f4, 0x40($sp)
|
||||
/* 036CE0 800360E0 000E7823 */ negu $t7, $t6
|
||||
/* 036CE4 800360E4 A7AF003C */ sh $t7, 0x3c($sp)
|
||||
/* 036CE8 800360E8 C446000C */ lwc1 $f6, 0xc($v0)
|
||||
/* 036CEC 800360EC 27A50038 */ addiu $a1, $sp, 0x38
|
||||
/* 036CF0 800360F0 46003207 */ neg.s $f8, $f6
|
||||
/* 036CF4 800360F4 E7A80044 */ swc1 $f8, 0x44($sp)
|
||||
/* 036CF8 800360F8 C44A0010 */ lwc1 $f10, 0x10($v0)
|
||||
/* 036CFC 800360FC 00000000 */ nop
|
||||
/* 036D00 80036100 46005407 */ neg.s $f16, $f10
|
||||
/* 036D04 80036104 E7B00048 */ swc1 $f16, 0x48($sp)
|
||||
/* 036D08 80036108 C4520014 */ lwc1 $f18, 0x14($v0)
|
||||
/* 036D0C 8003610C AFA20090 */ sw $v0, 0x90($sp)
|
||||
/* 036D10 80036110 46009107 */ neg.s $f4, $f18
|
||||
/* 036D14 80036114 0C01BF9D */ jal object_transform_to_matrix_2
|
||||
/* 036D18 80036118 E7A4004C */ swc1 $f4, 0x4c($sp)
|
||||
/* 036D1C 8003611C 8E05000C */ lw $a1, 0xc($s0)
|
||||
/* 036D20 80036120 8E060010 */ lw $a2, 0x10($s0)
|
||||
/* 036D24 80036124 8E070014 */ lw $a3, 0x14($s0)
|
||||
/* 036D28 80036128 2618000C */ addiu $t8, $s0, 0xc
|
||||
/* 036D2C 8003612C 26190010 */ addiu $t9, $s0, 0x10
|
||||
/* 036D30 80036130 26080014 */ addiu $t0, $s0, 0x14
|
||||
/* 036D34 80036134 AFA80018 */ sw $t0, 0x18($sp)
|
||||
/* 036D38 80036138 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 036D3C 8003613C AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 036D40 80036140 0C01BD93 */ jal guMtxXFMF
|
||||
/* 036D44 80036144 27A40050 */ addiu $a0, $sp, 0x50
|
||||
/* 036D48 80036148 8FA20090 */ lw $v0, 0x90($sp)
|
||||
/* 036D4C 8003614C C606000C */ lwc1 $f6, 0xc($s0)
|
||||
/* 036D50 80036150 C4480008 */ lwc1 $f8, 8($v0)
|
||||
/* 036D54 80036154 C6100010 */ lwc1 $f16, 0x10($s0)
|
||||
/* 036D58 80036158 46083283 */ div.s $f10, $f6, $f8
|
||||
/* 036D5C 8003615C C6060014 */ lwc1 $f6, 0x14($s0)
|
||||
/* 036D60 80036160 E60A000C */ swc1 $f10, 0xc($s0)
|
||||
/* 036D64 80036164 C4520008 */ lwc1 $f18, 8($v0)
|
||||
/* 036D68 80036168 00000000 */ nop
|
||||
/* 036D6C 8003616C 46128103 */ div.s $f4, $f16, $f18
|
||||
/* 036D70 80036170 E6040010 */ swc1 $f4, 0x10($s0)
|
||||
/* 036D74 80036174 C4480008 */ lwc1 $f8, 8($v0)
|
||||
/* 036D78 80036178 00000000 */ nop
|
||||
/* 036D7C 8003617C 46083283 */ div.s $f10, $f6, $f8
|
||||
/* 036D80 80036180 E60A0014 */ swc1 $f10, 0x14($s0)
|
||||
/* 036D84 80036184 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
.L80036188:
|
||||
/* 036D88 80036188 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 036D8C 8003618C 03E00008 */ jr $ra
|
||||
/* 036D90 80036190 27BD0098 */ addiu $sp, $sp, 0x98
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
glabel func_80016C68
|
||||
/* 017868 80016C68 27BDFFA8 */ addiu $sp, $sp, -0x58
|
||||
/* 01786C 80016C6C AFB60050 */ sw $s6, 0x50($sp)
|
||||
/* 017870 80016C70 3C168012 */ lui $s6, %hi(objCount) # $s6, 0x8012
|
||||
/* 017874 80016C74 26D6AE5C */ addiu $s6, %lo(objCount) # addiu $s6, $s6, -0x51a4
|
||||
/* 017878 80016C78 8ECE0000 */ lw $t6, ($s6)
|
||||
/* 01787C 80016C7C E7BA0034 */ swc1 $f26, 0x34($sp)
|
||||
/* 017880 80016C80 E7B60024 */ swc1 $f22, 0x24($sp)
|
||||
/* 017884 80016C84 4486B000 */ mtc1 $a2, $f22
|
||||
/* 017888 80016C88 4487D000 */ mtc1 $a3, $f26
|
||||
/* 01788C 80016C8C AFB1003C */ sw $s1, 0x3c($sp)
|
||||
/* 017890 80016C90 E7B90028 */ swc1 $f25, 0x28($sp)
|
||||
/* 017894 80016C94 E7B8002C */ swc1 $f24, 0x2c($sp)
|
||||
/* 017898 80016C98 E7B50018 */ swc1 $f21, 0x18($sp)
|
||||
/* 01789C 80016C9C E7B4001C */ swc1 $f20, 0x1c($sp)
|
||||
/* 0178A0 80016CA0 46006506 */ mov.s $f20, $f12
|
||||
/* 0178A4 80016CA4 46007606 */ mov.s $f24, $f14
|
||||
/* 0178A8 80016CA8 AFBF0054 */ sw $ra, 0x54($sp)
|
||||
/* 0178AC 80016CAC AFB5004C */ sw $s5, 0x4c($sp)
|
||||
/* 0178B0 80016CB0 AFB40048 */ sw $s4, 0x48($sp)
|
||||
/* 0178B4 80016CB4 AFB30044 */ sw $s3, 0x44($sp)
|
||||
/* 0178B8 80016CB8 AFB20040 */ sw $s2, 0x40($sp)
|
||||
/* 0178BC 80016CBC AFB00038 */ sw $s0, 0x38($sp)
|
||||
/* 0178C0 80016CC0 E7BB0030 */ swc1 $f27, 0x30($sp)
|
||||
/* 0178C4 80016CC4 E7B70020 */ swc1 $f23, 0x20($sp)
|
||||
/* 0178C8 80016CC8 19C00034 */ blez $t6, .L80016D9C
|
||||
/* 0178CC 80016CCC 00008825 */ move $s1, $zero
|
||||
/* 0178D0 80016CD0 3C148012 */ lui $s4, %hi(gObjPtrList) # $s4, 0x8012
|
||||
/* 0178D4 80016CD4 8FB30068 */ lw $s3, 0x68($sp)
|
||||
/* 0178D8 80016CD8 2694AE58 */ addiu $s4, %lo(gObjPtrList) # addiu $s4, $s4, -0x51a8
|
||||
/* 0178DC 80016CDC 00009025 */ move $s2, $zero
|
||||
/* 0178E0 80016CE0 24150055 */ li $s5, 85
|
||||
.L80016CE4:
|
||||
/* 0178E4 80016CE4 8E8F0000 */ lw $t7, ($s4)
|
||||
/* 0178E8 80016CE8 00000000 */ nop
|
||||
/* 0178EC 80016CEC 01F2C021 */ addu $t8, $t7, $s2
|
||||
/* 0178F0 80016CF0 8F100000 */ lw $s0, ($t8)
|
||||
/* 0178F4 80016CF4 00000000 */ nop
|
||||
/* 0178F8 80016CF8 86190006 */ lh $t9, 6($s0)
|
||||
/* 0178FC 80016CFC 00000000 */ nop
|
||||
/* 017900 80016D00 33288000 */ andi $t0, $t9, 0x8000
|
||||
/* 017904 80016D04 15000020 */ bnez $t0, .L80016D88
|
||||
/* 017908 80016D08 00000000 */ nop
|
||||
/* 01790C 80016D0C 86090048 */ lh $t1, 0x48($s0)
|
||||
/* 017910 80016D10 00000000 */ nop
|
||||
/* 017914 80016D14 16A9001C */ bne $s5, $t1, .L80016D88
|
||||
/* 017918 80016D18 00000000 */ nop
|
||||
/* 01791C 80016D1C C604000C */ lwc1 $f4, 0xc($s0)
|
||||
/* 017920 80016D20 C6060014 */ lwc1 $f6, 0x14($s0)
|
||||
/* 017924 80016D24 46142081 */ sub.s $f2, $f4, $f20
|
||||
/* 017928 80016D28 1660000C */ bnez $s3, .L80016D5C
|
||||
/* 01792C 80016D2C 46163381 */ sub.s $f14, $f6, $f22
|
||||
/* 017930 80016D30 C6080010 */ lwc1 $f8, 0x10($s0)
|
||||
/* 017934 80016D34 46021282 */ mul.s $f10, $f2, $f2
|
||||
/* 017938 80016D38 46184001 */ sub.s $f0, $f8, $f24
|
||||
/* 01793C 80016D3C 46000402 */ mul.s $f16, $f0, $f0
|
||||
/* 017940 80016D40 00000000 */ nop
|
||||
/* 017944 80016D44 460E7102 */ mul.s $f4, $f14, $f14
|
||||
/* 017948 80016D48 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 01794C 80016D4C 0C0326B4 */ jal sqrtf
|
||||
/* 017950 80016D50 46049300 */ add.s $f12, $f18, $f4
|
||||
/* 017954 80016D54 10000007 */ b .L80016D74
|
||||
/* 017958 80016D58 461A003C */ c.lt.s $f0, $f26
|
||||
.L80016D5C:
|
||||
/* 01795C 80016D5C 46021182 */ mul.s $f6, $f2, $f2
|
||||
/* 017960 80016D60 00000000 */ nop
|
||||
/* 017964 80016D64 460E7202 */ mul.s $f8, $f14, $f14
|
||||
/* 017968 80016D68 0C0326B4 */ jal sqrtf
|
||||
/* 01796C 80016D6C 46083300 */ add.s $f12, $f6, $f8
|
||||
/* 017970 80016D70 461A003C */ c.lt.s $f0, $f26
|
||||
.L80016D74:
|
||||
/* 017974 80016D74 00000000 */ nop
|
||||
/* 017978 80016D78 45000003 */ bc1f .L80016D88
|
||||
/* 01797C 80016D7C 00000000 */ nop
|
||||
/* 017980 80016D80 10000007 */ b .L80016DA0
|
||||
/* 017984 80016D84 02001025 */ move $v0, $s0
|
||||
.L80016D88:
|
||||
/* 017988 80016D88 8ECA0000 */ lw $t2, ($s6)
|
||||
/* 01798C 80016D8C 26310001 */ addiu $s1, $s1, 1
|
||||
/* 017990 80016D90 022A082A */ slt $at, $s1, $t2
|
||||
/* 017994 80016D94 1420FFD3 */ bnez $at, .L80016CE4
|
||||
/* 017998 80016D98 26520004 */ addiu $s2, $s2, 4
|
||||
.L80016D9C:
|
||||
/* 01799C 80016D9C 00001025 */ move $v0, $zero
|
||||
.L80016DA0:
|
||||
/* 0179A0 80016DA0 8FBF0054 */ lw $ra, 0x54($sp)
|
||||
/* 0179A4 80016DA4 C7B50018 */ lwc1 $f21, 0x18($sp)
|
||||
/* 0179A8 80016DA8 C7B4001C */ lwc1 $f20, 0x1c($sp)
|
||||
/* 0179AC 80016DAC C7B70020 */ lwc1 $f23, 0x20($sp)
|
||||
/* 0179B0 80016DB0 C7B60024 */ lwc1 $f22, 0x24($sp)
|
||||
/* 0179B4 80016DB4 C7B90028 */ lwc1 $f25, 0x28($sp)
|
||||
/* 0179B8 80016DB8 C7B8002C */ lwc1 $f24, 0x2c($sp)
|
||||
/* 0179BC 80016DBC C7BB0030 */ lwc1 $f27, 0x30($sp)
|
||||
/* 0179C0 80016DC0 C7BA0034 */ lwc1 $f26, 0x34($sp)
|
||||
/* 0179C4 80016DC4 8FB00038 */ lw $s0, 0x38($sp)
|
||||
/* 0179C8 80016DC8 8FB1003C */ lw $s1, 0x3c($sp)
|
||||
/* 0179CC 80016DCC 8FB20040 */ lw $s2, 0x40($sp)
|
||||
/* 0179D0 80016DD0 8FB30044 */ lw $s3, 0x44($sp)
|
||||
/* 0179D4 80016DD4 8FB40048 */ lw $s4, 0x48($sp)
|
||||
/* 0179D8 80016DD8 8FB5004C */ lw $s5, 0x4c($sp)
|
||||
/* 0179DC 80016DDC 8FB60050 */ lw $s6, 0x50($sp)
|
||||
/* 0179E0 80016DE0 03E00008 */ jr $ra
|
||||
/* 0179E4 80016DE4 27BD0058 */ addiu $sp, $sp, 0x58
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
glabel func_8001B3C4
|
||||
/* 01BFC4 8001B3C4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 01BFC8 8001B3C8 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 01BFCC 8001B3CC AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 01BFD0 8001B3D0 3C01800E */ lui $at, %hi(D_800DC718) # $at, 0x800e
|
||||
/* 01BFD4 8001B3D4 00808025 */ move $s0, $a0
|
||||
/* 01BFD8 8001B3D8 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* 01BFDC 8001B3DC 0C0166D3 */ jal free_tt_ghost_data
|
||||
/* 01BFE0 8001B3E0 AC20C718 */ sw $zero, %lo(D_800DC718)($at)
|
||||
/* 01BFE4 8001B3E4 3C01800E */ lui $at, %hi(D_800DC734) # $at, 0x800e
|
||||
/* 01BFE8 8001B3E8 A020C734 */ sb $zero, %lo(D_800DC734)($at)
|
||||
/* 01BFEC 8001B3EC 0C0078A7 */ jal get_misc_asset
|
||||
/* 01BFF0 8001B3F0 2404001C */ li $a0, 28
|
||||
/* 01BFF4 8001B3F4 804E0000 */ lb $t6, ($v0)
|
||||
/* 01BFF8 8001B3F8 2407FFFF */ li $a3, -1
|
||||
/* 01BFFC 8001B3FC 00402825 */ move $a1, $v0
|
||||
/* 01C000 8001B400 10EE000E */ beq $a3, $t6, .L8001B43C
|
||||
/* 01C004 8001B404 00003025 */ move $a2, $zero
|
||||
/* 01C008 8001B408 804F0000 */ lb $t7, ($v0)
|
||||
/* 01C00C 8001B40C 00402021 */ addu $a0, $v0, $zero
|
||||
/* 01C010 8001B410 120F000A */ beq $s0, $t7, .L8001B43C
|
||||
/* 01C014 8001B414 00000000 */ nop
|
||||
.L8001B418:
|
||||
/* 01C018 8001B418 80980001 */ lb $t8, 1($a0)
|
||||
/* 01C01C 8001B41C 24C60001 */ addiu $a2, $a2, 1
|
||||
/* 01C020 8001B420 10F80006 */ beq $a3, $t8, .L8001B43C
|
||||
/* 01C024 8001B424 24840001 */ addiu $a0, $a0, 1
|
||||
/* 01C028 8001B428 00A6C821 */ addu $t9, $a1, $a2
|
||||
/* 01C02C 8001B42C 83280000 */ lb $t0, ($t9)
|
||||
/* 01C030 8001B430 00000000 */ nop
|
||||
/* 01C034 8001B434 1608FFF8 */ bne $s0, $t0, .L8001B418
|
||||
/* 01C038 8001B438 00000000 */ nop
|
||||
.L8001B43C:
|
||||
/* 01C03C 8001B43C 3C10800E */ lui $s0, %hi(D_800DC738) # $s0, 0x800e
|
||||
/* 01C040 8001B440 2610C738 */ addiu $s0, %lo(D_800DC738) # addiu $s0, $s0, -0x38c8
|
||||
/* 01C044 8001B444 92090000 */ lbu $t1, ($s0)
|
||||
/* 01C048 8001B448 240A0010 */ li $t2, 16
|
||||
/* 01C04C 8001B44C 11200024 */ beqz $t1, .L8001B4E0
|
||||
/* 01C050 8001B450 00CA2804 */ sllv $a1, $t2, $a2
|
||||
/* 01C054 8001B454 0C027A9E */ jal set_eeprom_settings_value
|
||||
/* 01C058 8001B458 000527C3 */ sra $a0, $a1, 0x1f
|
||||
/* 01C05C 8001B45C 0C027AC2 */ jal get_eeprom_settings
|
||||
/* 01C060 8001B460 00000000 */ nop
|
||||
/* 01C064 8001B464 3C0100FF */ lui $at, (0x00FFFFF0 >> 16) # lui $at, 0xff
|
||||
/* 01C068 8001B468 3421FFF0 */ ori $at, (0x00FFFFF0 & 0xFFFF) # ori $at, $at, 0xfff0
|
||||
/* 01C06C 8001B46C 00616824 */ and $t5, $v1, $at
|
||||
/* 01C070 8001B470 3C0100FF */ lui $at, (0x00FFFFF0 >> 16) # lui $at, 0xff
|
||||
/* 01C074 8001B474 3421FFF0 */ ori $at, (0x00FFFFF0 & 0xFFFF) # ori $at, $at, 0xfff0
|
||||
/* 01C078 8001B478 15A1000F */ bne $t5, $at, .L8001B4B8
|
||||
/* 01C07C 8001B47C 2404024C */ li $a0, 588
|
||||
/* 01C080 8001B480 0C0270B8 */ jal set_magic_code_flags
|
||||
/* 01C084 8001B484 24040001 */ li $a0, 1
|
||||
/* 01C088 8001B488 2404024E */ li $a0, 590
|
||||
/* 01C08C 8001B48C 0C000741 */ jal play_sound_global
|
||||
/* 01C090 8001B490 00002825 */ move $a1, $zero
|
||||
/* 01C094 8001B494 2404024F */ li $a0, 591
|
||||
/* 01C098 8001B498 00002825 */ move $a1, $zero
|
||||
/* 01C09C 8001B49C 0C0003F7 */ jal func_80000FDC
|
||||
/* 01C0A0 8001B4A0 3C063FC0 */ lui $a2, 0x3fc0
|
||||
/* 01C0A4 8001B4A4 0C030C7B */ jal func_800C31EC
|
||||
/* 01C0A8 8001B4A8 24040054 */ li $a0, 84
|
||||
/* 01C0AC 8001B4AC 1000000A */ b .L8001B4D8
|
||||
/* 01C0B0 8001B4B0 00000000 */ nop
|
||||
/* 01C0B4 8001B4B4 2404024C */ li $a0, 588
|
||||
.L8001B4B8:
|
||||
/* 01C0B8 8001B4B8 0C000741 */ jal play_sound_global
|
||||
/* 01C0BC 8001B4BC 00002825 */ move $a1, $zero
|
||||
/* 01C0C0 8001B4C0 2404024D */ li $a0, 589
|
||||
/* 01C0C4 8001B4C4 00002825 */ move $a1, $zero
|
||||
/* 01C0C8 8001B4C8 0C0003F7 */ jal func_80000FDC
|
||||
/* 01C0CC 8001B4CC 3C063F80 */ lui $a2, 0x3f80
|
||||
/* 01C0D0 8001B4D0 0C030C7B */ jal func_800C31EC
|
||||
/* 01C0D4 8001B4D4 24040053 */ li $a0, 83
|
||||
.L8001B4D8:
|
||||
/* 01C0D8 8001B4D8 10000004 */ b .L8001B4EC
|
||||
/* 01C0DC 8001B4DC A2000000 */ sb $zero, ($s0)
|
||||
.L8001B4E0:
|
||||
/* 01C0E0 8001B4E0 8FA40024 */ lw $a0, 0x24($sp)
|
||||
/* 01C0E4 8001B4E4 0C029B6D */ jal play_time_trial_end_message
|
||||
/* 01C0E8 8001B4E8 00000000 */ nop
|
||||
.L8001B4EC:
|
||||
/* 01C0EC 8001B4EC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 01C0F0 8001B4F0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 01C0F4 8001B4F4 03E00008 */ jr $ra
|
||||
/* 01C0F8 8001B4F8 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_800E5668
|
||||
.double 0.1
|
||||
|
||||
.text
|
||||
glabel func_8001EFA4
|
||||
/* 01FBA4 8001EFA4 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 01FBA8 8001EFA8 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 01FBAC 8001EFAC AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 01FBB0 8001EFB0 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 01FBB4 8001EFB4 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 01FBB8 8001EFB8 8C91003C */ lw $s1, 0x3c($a0)
|
||||
/* 01FBBC 8001EFBC 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 01FBC0 8001EFC0 922F000B */ lbu $t7, 0xb($s1)
|
||||
/* 01FBC4 8001EFC4 44811000 */ mtc1 $at, $f2
|
||||
/* 01FBC8 8001EFC8 448F2000 */ mtc1 $t7, $f4
|
||||
/* 01FBCC 8001EFCC 3C014280 */ li $at, 0x42800000 # 64.000000
|
||||
/* 01FBD0 8001EFD0 46802020 */ cvt.s.w $f0, $f4
|
||||
/* 01FBD4 8001EFD4 8CB00064 */ lw $s0, 0x64($a1)
|
||||
/* 01FBD8 8001EFD8 44813000 */ mtc1 $at, $f6
|
||||
/* 01FBDC 8001EFDC 4602003C */ c.lt.s $f0, $f2
|
||||
/* 01FBE0 8001EFE0 00809025 */ move $s2, $a0
|
||||
/* 01FBE4 8001EFE4 45000003 */ bc1f .L8001EFF4
|
||||
/* 01FBE8 8001EFE8 00000000 */ nop
|
||||
/* 01FBEC 8001EFEC 46001006 */ mov.s $f0, $f2
|
||||
/* 01FBF0 8001EFF0 00000000 */ nop
|
||||
.L8001EFF4:
|
||||
/* 01FBF4 8001EFF4 46060003 */ div.s $f0, $f0, $f6
|
||||
/* 01FBF8 8001EFF8 8CB80040 */ lw $t8, 0x40($a1)
|
||||
/* 01FBFC 8001EFFC 00000000 */ nop
|
||||
/* 01FC00 8001F000 C708000C */ lwc1 $f8, 0xc($t8)
|
||||
/* 01FC04 8001F004 ACA00078 */ sw $zero, 0x78($a1)
|
||||
/* 01FC08 8001F008 ACA0007C */ sw $zero, 0x7c($a1)
|
||||
/* 01FC0C 8001F00C 46004282 */ mul.s $f10, $f8, $f0
|
||||
/* 01FC10 8001F010 E4AA0008 */ swc1 $f10, 8($a1)
|
||||
/* 01FC14 8001F014 82220022 */ lb $v0, 0x22($s1)
|
||||
/* 01FC18 8001F018 00000000 */ nop
|
||||
/* 01FC1C 8001F01C 28410002 */ slti $at, $v0, 2
|
||||
/* 01FC20 8001F020 14200006 */ bnez $at, .L8001F03C
|
||||
/* 01FC24 8001F024 2841000A */ slti $at, $v0, 0xa
|
||||
/* 01FC28 8001F028 10200004 */ beqz $at, .L8001F03C
|
||||
/* 01FC2C 8001F02C 2459FFFF */ addiu $t9, $v0, -1
|
||||
/* 01FC30 8001F030 ACB90078 */ sw $t9, 0x78($a1)
|
||||
/* 01FC34 8001F034 82220022 */ lb $v0, 0x22($s1)
|
||||
/* 01FC38 8001F038 00000000 */ nop
|
||||
.L8001F03C:
|
||||
/* 01FC3C 8001F03C 2841000A */ slti $at, $v0, 0xa
|
||||
/* 01FC40 8001F040 14200004 */ bnez $at, .L8001F054
|
||||
/* 01FC44 8001F044 28410012 */ slti $at, $v0, 0x12
|
||||
/* 01FC48 8001F048 10200002 */ beqz $at, .L8001F054
|
||||
/* 01FC4C 8001F04C 2448FFF7 */ addiu $t0, $v0, -9
|
||||
/* 01FC50 8001F050 ACA80078 */ sw $t0, 0x78($a1)
|
||||
.L8001F054:
|
||||
/* 01FC54 8001F054 C650000C */ lwc1 $f16, 0xc($s2)
|
||||
/* 01FC58 8001F058 3C01800E */ lui $at, %hi(D_800E5668) # $at, 0x800e
|
||||
/* 01FC5C 8001F05C E4B0000C */ swc1 $f16, 0xc($a1)
|
||||
/* 01FC60 8001F060 C6520010 */ lwc1 $f18, 0x10($s2)
|
||||
/* 01FC64 8001F064 00000000 */ nop
|
||||
/* 01FC68 8001F068 E4B20010 */ swc1 $f18, 0x10($a1)
|
||||
/* 01FC6C 8001F06C C6440014 */ lwc1 $f4, 0x14($s2)
|
||||
/* 01FC70 8001F070 00000000 */ nop
|
||||
/* 01FC74 8001F074 E4A40014 */ swc1 $f4, 0x14($a1)
|
||||
/* 01FC78 8001F078 86490000 */ lh $t1, ($s2)
|
||||
/* 01FC7C 8001F07C 00000000 */ nop
|
||||
/* 01FC80 8001F080 A4A90000 */ sh $t1, ($a1)
|
||||
/* 01FC84 8001F084 864A0004 */ lh $t2, 4($s2)
|
||||
/* 01FC88 8001F088 00000000 */ nop
|
||||
/* 01FC8C 8001F08C A4AA0004 */ sh $t2, 4($a1)
|
||||
/* 01FC90 8001F090 864B0002 */ lh $t3, 2($s2)
|
||||
/* 01FC94 8001F094 00000000 */ nop
|
||||
/* 01FC98 8001F098 A4AB0002 */ sh $t3, 2($a1)
|
||||
/* 01FC9C 8001F09C A6000026 */ sh $zero, 0x26($s0)
|
||||
/* 01FCA0 8001F0A0 822C0021 */ lb $t4, 0x21($s1)
|
||||
/* 01FCA4 8001F0A4 00000000 */ nop
|
||||
/* 01FCA8 8001F0A8 A20C003D */ sb $t4, 0x3d($s0)
|
||||
/* 01FCAC 8001F0AC 822D0010 */ lb $t5, 0x10($s1)
|
||||
/* 01FCB0 8001F0B0 00000000 */ nop
|
||||
/* 01FCB4 8001F0B4 A60D0028 */ sh $t5, 0x28($s0)
|
||||
/* 01FCB8 8001F0B8 822E0014 */ lb $t6, 0x14($s1)
|
||||
/* 01FCBC 8001F0BC C430566C */ lwc1 $f16, %lo(D_800E5668 + 4)($at)
|
||||
/* 01FCC0 8001F0C0 448E3000 */ mtc1 $t6, $f6
|
||||
/* 01FCC4 8001F0C4 C4315668 */ lwc1 $f17, %lo(D_800E5668)($at)
|
||||
/* 01FCC8 8001F0C8 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 01FCCC 8001F0CC 460042A1 */ cvt.d.s $f10, $f8
|
||||
/* 01FCD0 8001F0D0 46305482 */ mul.d $f18, $f10, $f16
|
||||
/* 01FCD4 8001F0D4 46209120 */ cvt.s.d $f4, $f18
|
||||
/* 01FCD8 8001F0D8 E6040008 */ swc1 $f4, 8($s0)
|
||||
/* 01FCDC 8001F0DC 8624000E */ lh $a0, 0xe($s1)
|
||||
/* 01FCE0 8001F0E0 0C00322D */ jal normalise_time
|
||||
/* 01FCE4 8001F0E4 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 01FCE8 8001F0E8 8FA5002C */ lw $a1, 0x2c($sp)
|
||||
/* 01FCEC 8001F0EC A602002A */ sh $v0, 0x2a($s0)
|
||||
/* 01FCF0 8001F0F0 822F0012 */ lb $t7, 0x12($s1)
|
||||
/* 01FCF4 8001F0F4 44800000 */ mtc1 $zero, $f0
|
||||
/* 01FCF8 8001F0F8 A0AF003B */ sb $t7, 0x3b($a1)
|
||||
/* 01FCFC 8001F0FC 92380016 */ lbu $t8, 0x16($s1)
|
||||
/* 01FD00 8001F100 00000000 */ nop
|
||||
/* 01FD04 8001F104 A4B80018 */ sh $t8, 0x18($a1)
|
||||
/* 01FD08 8001F108 82390017 */ lb $t9, 0x17($s1)
|
||||
/* 01FD0C 8001F10C E6000010 */ swc1 $f0, 0x10($s0)
|
||||
/* 01FD10 8001F110 44993000 */ mtc1 $t9, $f6
|
||||
/* 01FD14 8001F114 00000000 */ nop
|
||||
/* 01FD18 8001F118 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 01FD1C 8001F11C E6080014 */ swc1 $f8, 0x14($s0)
|
||||
/* 01FD20 8001F120 92280018 */ lbu $t0, 0x18($s1)
|
||||
/* 01FD24 8001F124 00000000 */ nop
|
||||
/* 01FD28 8001F128 A208002C */ sb $t0, 0x2c($s0)
|
||||
/* 01FD2C 8001F12C 92290019 */ lbu $t1, 0x19($s1)
|
||||
/* 01FD30 8001F130 00000000 */ nop
|
||||
/* 01FD34 8001F134 A209002E */ sb $t1, 0x2e($s0)
|
||||
/* 01FD38 8001F138 822A002C */ lb $t2, 0x2c($s1)
|
||||
/* 01FD3C 8001F13C 00000000 */ nop
|
||||
/* 01FD40 8001F140 A20A003E */ sb $t2, 0x3e($s0)
|
||||
/* 01FD44 8001F144 822B002D */ lb $t3, 0x2d($s1)
|
||||
/* 01FD48 8001F148 00000000 */ nop
|
||||
/* 01FD4C 8001F14C A20B003F */ sb $t3, 0x3f($s0)
|
||||
/* 01FD50 8001F150 822C001A */ lb $t4, 0x1a($s1)
|
||||
/* 01FD54 8001F154 00000000 */ nop
|
||||
/* 01FD58 8001F158 A20C0031 */ sb $t4, 0x31($s0)
|
||||
/* 01FD5C 8001F15C 822D001B */ lb $t5, 0x1b($s1)
|
||||
/* 01FD60 8001F160 00000000 */ nop
|
||||
/* 01FD64 8001F164 A20D0032 */ sb $t5, 0x32($s0)
|
||||
/* 01FD68 8001F168 822E001C */ lb $t6, 0x1c($s1)
|
||||
/* 01FD6C 8001F16C 00000000 */ nop
|
||||
/* 01FD70 8001F170 A20E0033 */ sb $t6, 0x33($s0)
|
||||
/* 01FD74 8001F174 822F0020 */ lb $t7, 0x20($s1)
|
||||
/* 01FD78 8001F178 A200002D */ sb $zero, 0x2d($s0)
|
||||
/* 01FD7C 8001F17C E6000004 */ swc1 $f0, 4($s0)
|
||||
/* 01FD80 8001F180 E6000000 */ swc1 $f0, ($s0)
|
||||
/* 01FD84 8001F184 A20F0034 */ sb $t7, 0x34($s0)
|
||||
/* 01FD88 8001F188 AE40006C */ sw $zero, 0x6c($s2)
|
||||
/* 01FD8C 8001F18C 86240024 */ lh $a0, 0x24($s1)
|
||||
/* 01FD90 8001F190 0C00322D */ jal normalise_time
|
||||
/* 01FD94 8001F194 00000000 */ nop
|
||||
/* 01FD98 8001F198 A6020036 */ sh $v0, 0x36($s0)
|
||||
/* 01FD9C 8001F19C 82380026 */ lb $t8, 0x26($s1)
|
||||
/* 01FDA0 8001F1A0 00000000 */ nop
|
||||
/* 01FDA4 8001F1A4 A218003A */ sb $t8, 0x3a($s0)
|
||||
/* 01FDA8 8001F1A8 82230013 */ lb $v1, 0x13($s1)
|
||||
/* 01FDAC 8001F1AC 00000000 */ nop
|
||||
/* 01FDB0 8001F1B0 04600002 */ bltz $v1, .L8001F1BC
|
||||
/* 01FDB4 8001F1B4 00000000 */ nop
|
||||
/* 01FDB8 8001F1B8 A203002F */ sb $v1, 0x2f($s0)
|
||||
.L8001F1BC:
|
||||
/* 01FDBC 8001F1BC 8239001F */ lb $t9, 0x1f($s1)
|
||||
/* 01FDC0 8001F1C0 8E040018 */ lw $a0, 0x18($s0)
|
||||
/* 01FDC4 8001F1C4 A2190039 */ sb $t9, 0x39($s0)
|
||||
/* 01FDC8 8001F1C8 9228001E */ lbu $t0, 0x1e($s1)
|
||||
/* 01FDCC 8001F1CC 240D00FF */ li $t5, 255
|
||||
/* 01FDD0 8001F1D0 A2080038 */ sb $t0, 0x38($s0)
|
||||
/* 01FDD4 8001F1D4 82290029 */ lb $t1, 0x29($s1)
|
||||
/* 01FDD8 8001F1D8 00000000 */ nop
|
||||
/* 01FDDC 8001F1DC A209003B */ sb $t1, 0x3b($s0)
|
||||
/* 01FDE0 8001F1E0 822A002E */ lb $t2, 0x2e($s1)
|
||||
/* 01FDE4 8001F1E4 00000000 */ nop
|
||||
/* 01FDE8 8001F1E8 A20A0040 */ sb $t2, 0x40($s0)
|
||||
/* 01FDEC 8001F1EC 822B002F */ lb $t3, 0x2f($s1)
|
||||
/* 01FDF0 8001F1F0 00000000 */ nop
|
||||
/* 01FDF4 8001F1F4 A20B0041 */ sb $t3, 0x41($s0)
|
||||
/* 01FDF8 8001F1F8 822C002B */ lb $t4, 0x2b($s1)
|
||||
/* 01FDFC 8001F1FC A20D0042 */ sb $t5, 0x42($s0)
|
||||
/* 01FE00 8001F200 10800003 */ beqz $a0, .L8001F210
|
||||
/* 01FE04 8001F204 A20C003C */ sb $t4, 0x3c($s0)
|
||||
/* 01FE08 8001F208 0C001223 */ jal func_8000488C
|
||||
/* 01FE0C 8001F20C 00000000 */ nop
|
||||
.L8001F210:
|
||||
/* 01FE10 8001F210 AE000018 */ sw $zero, 0x18($s0)
|
||||
/* 01FE14 8001F214 822E0030 */ lb $t6, 0x30($s1)
|
||||
/* 01FE18 8001F218 AE12001C */ sw $s2, 0x1c($s0)
|
||||
/* 01FE1C 8001F21C A2000045 */ sb $zero, 0x45($s0)
|
||||
/* 01FE20 8001F220 A20E0043 */ sb $t6, 0x43($s0)
|
||||
/* 01FE24 8001F224 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 01FE28 8001F228 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 01FE2C 8001F22C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 01FE30 8001F230 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 01FE34 8001F234 03E00008 */ jr $ra
|
||||
/* 01FE38 8001F238 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
glabel func_80030664
|
||||
/* 031264 80030664 00057400 */ sll $t6, $a1, 0x10
|
||||
/* 031268 80030668 0006C400 */ sll $t8, $a2, 0x10
|
||||
/* 03126C 8003066C 0018CC03 */ sra $t9, $t8, 0x10
|
||||
/* 031270 80030670 000E7C03 */ sra $t7, $t6, 0x10
|
||||
/* 031274 80030674 AFA50004 */ sw $a1, 4($sp)
|
||||
/* 031278 80030678 AFA60008 */ sw $a2, 8($sp)
|
||||
/* 03127C 8003067C AFA7000C */ sw $a3, 0xc($sp)
|
||||
/* 031280 80030680 30E900FF */ andi $t1, $a3, 0xff
|
||||
/* 031284 80030684 032F082A */ slt $at, $t9, $t7
|
||||
/* 031288 80030688 01203825 */ move $a3, $t1
|
||||
/* 03128C 8003068C 03203025 */ move $a2, $t9
|
||||
/* 031290 80030690 10200007 */ beqz $at, .L800306B0
|
||||
/* 031294 80030694 01E02825 */ move $a1, $t7
|
||||
/* 031298 80030698 00192C00 */ sll $a1, $t9, 0x10
|
||||
/* 03129C 8003069C 000F3400 */ sll $a2, $t7, 0x10
|
||||
/* 0312A0 800306A0 00055403 */ sra $t2, $a1, 0x10
|
||||
/* 0312A4 800306A4 00065C03 */ sra $t3, $a2, 0x10
|
||||
/* 0312A8 800306A8 01402825 */ move $a1, $t2
|
||||
/* 0312AC 800306AC 01603025 */ move $a2, $t3
|
||||
.L800306B0:
|
||||
/* 0312B0 800306B0 28C10400 */ slti $at, $a2, 0x400
|
||||
/* 0312B4 800306B4 14200002 */ bnez $at, .L800306C0
|
||||
/* 0312B8 800306B8 000468C0 */ sll $t5, $a0, 3
|
||||
/* 0312BC 800306BC 240603FF */ li $a2, 1023
|
||||
.L800306C0:
|
||||
/* 0312C0 800306C0 24C2FFFB */ addiu $v0, $a2, -5
|
||||
/* 0312C4 800306C4 00A2082A */ slt $at, $a1, $v0
|
||||
/* 0312C8 800306C8 14200004 */ bnez $at, .L800306DC
|
||||
/* 0312CC 800306CC 01A46823 */ subu $t5, $t5, $a0
|
||||
/* 0312D0 800306D0 00022C00 */ sll $a1, $v0, 0x10
|
||||
/* 0312D4 800306D4 00056403 */ sra $t4, $a1, 0x10
|
||||
/* 0312D8 800306D8 01802825 */ move $a1, $t4
|
||||
.L800306DC:
|
||||
/* 0312DC 800306DC 93A30013 */ lbu $v1, 0x13($sp)
|
||||
/* 0312E0 800306E0 93A80017 */ lbu $t0, 0x17($sp)
|
||||
/* 0312E4 800306E4 3C0E8012 */ lui $t6, %hi(gFogData) # $t6, 0x8012
|
||||
/* 0312E8 800306E8 25CED388 */ addiu $t6, %lo(gFogData) # addiu $t6, $t6, -0x2c78
|
||||
/* 0312EC 800306EC 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 0312F0 800306F0 01AE1021 */ addu $v0, $t5, $t6
|
||||
/* 0312F4 800306F4 00077C00 */ sll $t7, $a3, 0x10
|
||||
/* 0312F8 800306F8 00054C00 */ sll $t1, $a1, 0x10
|
||||
/* 0312FC 800306FC 00065400 */ sll $t2, $a2, 0x10
|
||||
/* 031300 80030700 0003C400 */ sll $t8, $v1, 0x10
|
||||
/* 031304 80030704 0008CC00 */ sll $t9, $t0, 0x10
|
||||
/* 031308 80030708 AC400020 */ sw $zero, 0x20($v0)
|
||||
/* 03130C 8003070C AC400024 */ sw $zero, 0x24($v0)
|
||||
/* 031310 80030710 AC400014 */ sw $zero, 0x14($v0)
|
||||
/* 031314 80030714 AC400018 */ sw $zero, 0x18($v0)
|
||||
/* 031318 80030718 AC40001C */ sw $zero, 0x1c($v0)
|
||||
/* 03131C 8003071C AC4F0000 */ sw $t7, ($v0)
|
||||
/* 031320 80030720 AC580004 */ sw $t8, 4($v0)
|
||||
/* 031324 80030724 AC590008 */ sw $t9, 8($v0)
|
||||
/* 031328 80030728 AC49000C */ sw $t1, 0xc($v0)
|
||||
/* 03132C 8003072C AC4A0010 */ sw $t2, 0x10($v0)
|
||||
/* 031330 80030730 A0470028 */ sb $a3, 0x28($v0)
|
||||
/* 031334 80030734 A445002C */ sh $a1, 0x2c($v0)
|
||||
/* 031338 80030738 A446002E */ sh $a2, 0x2e($v0)
|
||||
/* 03133C 8003073C AC400030 */ sw $zero, 0x30($v0)
|
||||
/* 031340 80030740 AC400034 */ sw $zero, 0x34($v0)
|
||||
/* 031344 80030744 A0430029 */ sb $v1, 0x29($v0)
|
||||
/* 031348 80030748 03E00008 */ jr $ra
|
||||
/* 03134C 8003074C A048002A */ sb $t0, 0x2a($v0)
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
glabel func_80030DE0
|
||||
/* 0319E0 80030DE0 27BDFFF0 */ addiu $sp, $sp, -0x10
|
||||
/* 0319E4 80030DE4 AFB1000C */ sw $s1, 0xc($sp)
|
||||
/* 0319E8 80030DE8 AFB00008 */ sw $s0, 8($sp)
|
||||
/* 0319EC 80030DEC 8FB00024 */ lw $s0, 0x24($sp)
|
||||
/* 0319F0 80030DF0 8FB10020 */ lw $s1, 0x20($sp)
|
||||
/* 0319F4 80030DF4 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 0319F8 80030DF8 0211082A */ slt $at, $s0, $s1
|
||||
/* 0319FC 80030DFC 10200004 */ beqz $at, .L80030E10
|
||||
/* 031A00 80030E00 000470C0 */ sll $t6, $a0, 3
|
||||
/* 031A04 80030E04 02201025 */ move $v0, $s1
|
||||
/* 031A08 80030E08 02008825 */ move $s1, $s0
|
||||
/* 031A0C 80030E0C 00408025 */ move $s0, $v0
|
||||
.L80030E10:
|
||||
/* 031A10 80030E10 2A010400 */ slti $at, $s0, 0x400
|
||||
/* 031A14 80030E14 14200002 */ bnez $at, .L80030E20
|
||||
/* 031A18 80030E18 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 031A1C 80030E1C 241003FF */ li $s0, 1023
|
||||
.L80030E20:
|
||||
/* 031A20 80030E20 2602FFFB */ addiu $v0, $s0, -5
|
||||
/* 031A24 80030E24 0222082A */ slt $at, $s1, $v0
|
||||
/* 031A28 80030E28 14200002 */ bnez $at, .L80030E34
|
||||
/* 031A2C 80030E2C 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 031A30 80030E30 00408825 */ move $s1, $v0
|
||||
.L80030E34:
|
||||
/* 031A34 80030E34 3C0F8012 */ lui $t7, %hi(gFogData) # $t7, 0x8012
|
||||
/* 031A38 80030E38 25EFD388 */ addiu $t7, %lo(gFogData) # addiu $t7, $t7, -0x2c78
|
||||
/* 031A3C 80030E3C 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 031A40 80030E40 8C590000 */ lw $t9, ($v0)
|
||||
/* 031A44 80030E44 0005C400 */ sll $t8, $a1, 0x10
|
||||
/* 031A48 80030E48 03194023 */ subu $t0, $t8, $t9
|
||||
/* 031A4C 80030E4C 0103001A */ div $zero, $t0, $v1
|
||||
/* 031A50 80030E50 8C4B0004 */ lw $t3, 4($v0)
|
||||
/* 031A54 80030E54 00065400 */ sll $t2, $a2, 0x10
|
||||
/* 031A58 80030E58 014B6023 */ subu $t4, $t2, $t3
|
||||
/* 031A5C 80030E5C 8C4F0008 */ lw $t7, 8($v0)
|
||||
/* 031A60 80030E60 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 031A64 80030E64 01CFC023 */ subu $t8, $t6, $t7
|
||||
/* 031A68 80030E68 A0450028 */ sb $a1, 0x28($v0)
|
||||
/* 031A6C 80030E6C A0460029 */ sb $a2, 0x29($v0)
|
||||
/* 031A70 80030E70 A047002A */ sb $a3, 0x2a($v0)
|
||||
/* 031A74 80030E74 A451002C */ sh $s1, 0x2c($v0)
|
||||
/* 031A78 80030E78 A450002E */ sh $s0, 0x2e($v0)
|
||||
/* 031A7C 80030E7C 14600002 */ bnez $v1, .L80030E88
|
||||
/* 031A80 80030E80 00000000 */ nop
|
||||
/* 031A84 80030E84 0007000D */ break 7
|
||||
.L80030E88:
|
||||
/* 031A88 80030E88 2401FFFF */ li $at, -1
|
||||
/* 031A8C 80030E8C 14610004 */ bne $v1, $at, .L80030EA0
|
||||
/* 031A90 80030E90 3C018000 */ lui $at, 0x8000
|
||||
/* 031A94 80030E94 15010002 */ bne $t0, $at, .L80030EA0
|
||||
/* 031A98 80030E98 00000000 */ nop
|
||||
/* 031A9C 80030E9C 0006000D */ break 6
|
||||
.L80030EA0:
|
||||
/* 031AA0 80030EA0 00114400 */ sll $t0, $s1, 0x10
|
||||
/* 031AA4 80030EA4 AC430030 */ sw $v1, 0x30($v0)
|
||||
/* 031AA8 80030EA8 AC400034 */ sw $zero, 0x34($v0)
|
||||
/* 031AAC 80030EAC 00004812 */ mflo $t1
|
||||
/* 031AB0 80030EB0 AC490014 */ sw $t1, 0x14($v0)
|
||||
/* 031AB4 80030EB4 8C49000C */ lw $t1, 0xc($v0)
|
||||
/* 031AB8 80030EB8 0183001A */ div $zero, $t4, $v1
|
||||
/* 031ABC 80030EBC 01095023 */ subu $t2, $t0, $t1
|
||||
/* 031AC0 80030EC0 14600002 */ bnez $v1, .L80030ECC
|
||||
/* 031AC4 80030EC4 00000000 */ nop
|
||||
/* 031AC8 80030EC8 0007000D */ break 7
|
||||
.L80030ECC:
|
||||
/* 031ACC 80030ECC 2401FFFF */ li $at, -1
|
||||
/* 031AD0 80030ED0 14610004 */ bne $v1, $at, .L80030EE4
|
||||
/* 031AD4 80030ED4 3C018000 */ lui $at, 0x8000
|
||||
/* 031AD8 80030ED8 15810002 */ bne $t4, $at, .L80030EE4
|
||||
/* 031ADC 80030EDC 00000000 */ nop
|
||||
/* 031AE0 80030EE0 0006000D */ break 6
|
||||
.L80030EE4:
|
||||
/* 031AE4 80030EE4 00106400 */ sll $t4, $s0, 0x10
|
||||
/* 031AE8 80030EE8 00006812 */ mflo $t5
|
||||
/* 031AEC 80030EEC AC4D0018 */ sw $t5, 0x18($v0)
|
||||
/* 031AF0 80030EF0 8C4D0010 */ lw $t5, 0x10($v0)
|
||||
/* 031AF4 80030EF4 0303001A */ div $zero, $t8, $v1
|
||||
/* 031AF8 80030EF8 018D7023 */ subu $t6, $t4, $t5
|
||||
/* 031AFC 80030EFC 14600002 */ bnez $v1, .L80030F08
|
||||
/* 031B00 80030F00 00000000 */ nop
|
||||
/* 031B04 80030F04 0007000D */ break 7
|
||||
.L80030F08:
|
||||
/* 031B08 80030F08 2401FFFF */ li $at, -1
|
||||
/* 031B0C 80030F0C 14610004 */ bne $v1, $at, .L80030F20
|
||||
/* 031B10 80030F10 3C018000 */ lui $at, 0x8000
|
||||
/* 031B14 80030F14 17010002 */ bne $t8, $at, .L80030F20
|
||||
/* 031B18 80030F18 00000000 */ nop
|
||||
/* 031B1C 80030F1C 0006000D */ break 6
|
||||
.L80030F20:
|
||||
/* 031B20 80030F20 0000C812 */ mflo $t9
|
||||
/* 031B24 80030F24 AC59001C */ sw $t9, 0x1c($v0)
|
||||
/* 031B28 80030F28 00000000 */ nop
|
||||
/* 031B2C 80030F2C 0143001A */ div $zero, $t2, $v1
|
||||
/* 031B30 80030F30 14600002 */ bnez $v1, .L80030F3C
|
||||
/* 031B34 80030F34 00000000 */ nop
|
||||
/* 031B38 80030F38 0007000D */ break 7
|
||||
.L80030F3C:
|
||||
/* 031B3C 80030F3C 2401FFFF */ li $at, -1
|
||||
/* 031B40 80030F40 14610004 */ bne $v1, $at, .L80030F54
|
||||
/* 031B44 80030F44 3C018000 */ lui $at, 0x8000
|
||||
/* 031B48 80030F48 15410002 */ bne $t2, $at, .L80030F54
|
||||
/* 031B4C 80030F4C 00000000 */ nop
|
||||
/* 031B50 80030F50 0006000D */ break 6
|
||||
.L80030F54:
|
||||
/* 031B54 80030F54 00005812 */ mflo $t3
|
||||
/* 031B58 80030F58 AC4B0020 */ sw $t3, 0x20($v0)
|
||||
/* 031B5C 80030F5C 00000000 */ nop
|
||||
/* 031B60 80030F60 01C3001A */ div $zero, $t6, $v1
|
||||
/* 031B64 80030F64 14600002 */ bnez $v1, .L80030F70
|
||||
/* 031B68 80030F68 00000000 */ nop
|
||||
/* 031B6C 80030F6C 0007000D */ break 7
|
||||
.L80030F70:
|
||||
/* 031B70 80030F70 2401FFFF */ li $at, -1
|
||||
/* 031B74 80030F74 14610004 */ bne $v1, $at, .L80030F88
|
||||
/* 031B78 80030F78 3C018000 */ lui $at, 0x8000
|
||||
/* 031B7C 80030F7C 15C10002 */ bne $t6, $at, .L80030F88
|
||||
/* 031B80 80030F80 00000000 */ nop
|
||||
/* 031B84 80030F84 0006000D */ break 6
|
||||
.L80030F88:
|
||||
/* 031B88 80030F88 00007812 */ mflo $t7
|
||||
/* 031B8C 80030F8C AC4F0024 */ sw $t7, 0x24($v0)
|
||||
/* 031B90 80030F90 8FB1000C */ lw $s1, 0xc($sp)
|
||||
/* 031B94 80030F94 8FB00008 */ lw $s0, 8($sp)
|
||||
/* 031B98 80030F98 03E00008 */ jr $ra
|
||||
/* 031B9C 80030F9C 27BD0010 */ addiu $sp, $sp, 0x10
|
||||
|
||||
@@ -333,9 +333,10 @@ typedef struct LevelObjectEntry_Animation {
|
||||
/* 0x10 */ s8 actorIndex;
|
||||
/* 0x11 */ s8 order;
|
||||
/* 0x12 */ s8 objAnimIndex;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x13 */ s8 unk13;
|
||||
/* 0x14 */ s8 nodeSpeed;
|
||||
/* 0x15 */ u8 pad15[2];
|
||||
/* 0x15 */ s8 unk15;
|
||||
/* 0x16 */ u8 unk16;
|
||||
/* 0x17 */ s8 objAnimSpeed;
|
||||
/* 0x18 */ u8 objAnimLoopType; // 0 = Loop, 1 = Reverse loop, 2 = Play once, 3 = reverse once then stop.
|
||||
/* 0x19 */ u8 rotateType;
|
||||
@@ -343,20 +344,25 @@ typedef struct LevelObjectEntry_Animation {
|
||||
/* 0x1B */ s8 rollSpinSpeed;
|
||||
/* 0x1C */ s8 pitchSpinSpeed;
|
||||
/* 0x1D */ u8 goToNode;
|
||||
/* 0x1E */ u8 pad1E[3];
|
||||
/* 0x1E */ u8 unk1E;
|
||||
/* 0x1F */ s8 unk1F;
|
||||
/* 0x20 */ s8 unk20;
|
||||
/* 0x21 */ s8 channel;
|
||||
/* 0x22 */ u8 pad22[2];
|
||||
/* 0x24 */ s8 pauseFrameCount;
|
||||
/* 0x25 */ u8 pad25;
|
||||
/* 0x26 */ u8 specialHide;
|
||||
/* 0x22 */ s8 unk22;
|
||||
/* 0x23 */ s8 unk23;
|
||||
/* 0x24 */ s16 pauseFrameCount;
|
||||
/* 0x26 */ s8 specialHide;
|
||||
/* 0x27 */ u8 messageId;
|
||||
/* 0x28 */ u8 pad28[3];
|
||||
/* 0x2B */ u8 fadeAlpha;
|
||||
/* 0x2C */ u8 nextAnim;
|
||||
/* 0x2D */ u8 pad2D;
|
||||
/* 0x2E */ u8 soundEffect;
|
||||
/* 0x2F */ u8 fadeOptions; // 1 = Start fading from fadeAlpha, 2 = make visible, 3 = make invisible.
|
||||
/* 0x30 */ u8 pad30[2];
|
||||
/* 0x28 */ s8 unk28;
|
||||
/* 0x29 */ s8 unk29;
|
||||
/* 0x2A */ s8 unk2A;
|
||||
/* 0x2B */ s8 fadeAlpha;
|
||||
/* 0x2C */ s8 nextAnim;
|
||||
/* 0x2D */ s8 unk2D;
|
||||
/* 0x2E */ s8 soundEffect;
|
||||
/* 0x2F */ s8 fadeOptions; // 1 = Start fading from fadeAlpha, 2 = make visible, 3 = make invisible.
|
||||
/* 0x30 */ s8 unk30;
|
||||
/* 0x31 */ u8 unk31;
|
||||
} LevelObjectEntry_Animation;
|
||||
|
||||
typedef struct LevelObjectEntry_InfoPoint {
|
||||
|
||||
+1
-1
@@ -601,7 +601,7 @@ enum SoundID {
|
||||
/* 0x0249 */ SOUND_DRAWBRIDGE_BELL,
|
||||
/* 0x024A */ SOUND_BUBBLE_RISE,
|
||||
/* 0x024B */ SOUND_VOICE_TT_BEAT_MY_TIME, // "Now try beat my time"
|
||||
/* 0x024C */ SOUND_VOICE_TT_WELL_THEN,
|
||||
/* 0x024C */ SOUND_VOICE_TT_WELL_DONE,
|
||||
/* 0x024D */ SOUND_VOICE_TT_TRY_ANOTHER_TRACK, // "Now try another track"
|
||||
/* 0x024E */ SOUND_VOICE_TT_BEAT_ALL_TIMES, // "You've beaten all my times"
|
||||
/* 0x024F */ SOUND_VOICE_TT_UNLOCKED, // "Now you can pick me"
|
||||
|
||||
+39
-1
@@ -897,7 +897,45 @@ typedef struct Object_Animator {
|
||||
} Object_Animator;
|
||||
|
||||
typedef struct Object_Animation {
|
||||
/* 0x00 */ u8 pad0[0x4A];
|
||||
/* 0x00 */ f32 unk0;
|
||||
/* 0x04 */ f32 unk4;
|
||||
/* 0x08 */ f32 unk8;
|
||||
/* 0x0C */ s32 unkC;
|
||||
/* 0x10 */ f32 unk10;
|
||||
/* 0x14 */ f32 unk14;
|
||||
/* 0x18 */ u8 *unk18;
|
||||
/* 0x1C */ struct Object *unk1C;
|
||||
/* 0x20 */ s32 unk20;
|
||||
/* 0x24 */ s16 unk24;
|
||||
/* 0x26 */ s16 unk26;
|
||||
/* 0x28 */ u16 unk28;
|
||||
/* 0x2A */ u16 unk2A;
|
||||
/* 0x2C */ u8 unk2C;
|
||||
/* 0x2D */ u8 unk2D;
|
||||
/* 0x2E */ u8 unk2E;
|
||||
/* 0x2F */ u8 unk2F;
|
||||
/* 0x30 */ u8 unk30;
|
||||
/* 0x31 */ u8 unk31;
|
||||
/* 0x32 */ u8 unk32;
|
||||
/* 0x33 */ u8 unk33;
|
||||
/* 0x34 */ u8 unk34;
|
||||
/* 0x35 */ u8 unk35;
|
||||
/* 0x36 */ s16 unk36;
|
||||
/* 0x38 */ u8 unk38;
|
||||
/* 0x39 */ u8 unk39;
|
||||
/* 0x3A */ u8 unk3A;
|
||||
/* 0x3V */ u8 unk3B;
|
||||
/* 0x3C */ u8 unk3C;
|
||||
/* 0x3D */ u8 unk3D;
|
||||
/* 0x3E */ u8 unk3E;
|
||||
/* 0x3F */ u8 unk3F;
|
||||
/* 0x40 */ u8 unk40;
|
||||
/* 0x41 */ u8 unk41;
|
||||
/* 0x42 */ u8 unk42;
|
||||
/* 0x43 */ u8 unk43;
|
||||
/* 0x44 */ u8 unk44;
|
||||
/* 0x45 */ u8 unk45;
|
||||
/* 0x46 */ u8 pad46[4];
|
||||
/* 0x4A */ s16 unk4A;
|
||||
} Object_Animation;
|
||||
|
||||
|
||||
+10
-14
@@ -124,20 +124,16 @@ void func_8000410C(ALSoundState *state) {
|
||||
_removeEvents(&gAlSndPlayerPtr->evtq, state, 0xFFFF);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void func_8000418C(void *arg0) {
|
||||
f32 sp28;
|
||||
void *sp24;
|
||||
s16 sp20;
|
||||
f32 sp1C;
|
||||
f32 temp_f6;
|
||||
|
||||
temp_f6 = alCents2Ratio((s32) arg0->unk8->unk4->unk5) * arg0->unk2C;
|
||||
sp20 = 16;
|
||||
sp1C = temp_f6;
|
||||
sp24 = arg0;
|
||||
sp28 = sp1C;
|
||||
alEvtqPostEvent(&gAlSndPlayerPtr->evtq, (ALEvent *) &sp20, 33333);
|
||||
#ifdef NON_EQUIVALENT
|
||||
//There's some weird shenanigans with these structs that needs to be figured out.
|
||||
void func_8000418C(ALVoiceState *voiceState) {
|
||||
ALSndpEvent evt;
|
||||
s32 pad;
|
||||
evt.pitch.pitch = alCents2Ratio(((ALSound *)voiceState->voice.node.prev)->keyMap->detune) * voiceState->vibrato;
|
||||
evt.pitch.type = AL_SEQP_STOP_EVT;
|
||||
evt.pitch.state = voiceState;
|
||||
evt.msg.msg.loop.count = evt.msg.msg.tempo.ticks;
|
||||
alEvtqPostEvent(&gAlSndPlayerPtr->evtq, &evt.msg, 33333);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audiosfx/func_8000418C.s")
|
||||
|
||||
+26
-1
@@ -360,7 +360,32 @@ void init_hud(UNUSED s32 viewportCount) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/game_ui/func_8009F034.s")
|
||||
GLOBAL_ASM("asm/non_matchings/game_ui/func_800A003C.s")
|
||||
|
||||
/**
|
||||
* Free's all elements in the hud, and the player hud, and flushes particles
|
||||
*/
|
||||
void free_hud(void) {
|
||||
s32 i;
|
||||
for (i = 0; i < gAssetHudElementIdsCount; i++) {
|
||||
if (gAssetHudElements->entry[i] != NULL) {
|
||||
if ((gAssetHudElementIds[i] & 0xC000) == 0xC000) {
|
||||
free_texture(gAssetHudElements->entry[i]);
|
||||
} else if (gAssetHudElementIds[i] & 0x8000) {
|
||||
free_sprite((Sprite *) gAssetHudElements->entry[i]);
|
||||
} else if (gAssetHudElementIds[i] & 0x4000) {
|
||||
gParticlePtrList_addObject((Object *) gAssetHudElements->entry[i]);
|
||||
} else {
|
||||
func_8005FF40((ObjectModel **) gAssetHudElements->entry[i]);
|
||||
}
|
||||
gAssetHudElements->entry[i] = 0;
|
||||
}
|
||||
}
|
||||
free_from_memory_pool(*gPlayerHud);
|
||||
free_from_memory_pool(gAssetHudElementIds);
|
||||
gAssetHudElementIdsCount = 0;
|
||||
free_from_memory_pool(gAssetHudElements);
|
||||
gParticlePtrList_flush();
|
||||
}
|
||||
|
||||
u8 func_800A0190(void) {
|
||||
return D_80126D34;
|
||||
|
||||
+1
-1
@@ -382,6 +382,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtxList, s
|
||||
void init_hud(s32 viewportCount);
|
||||
void func_800A1C04(s32 arg0, Object *obj, s32 updateRate);
|
||||
void func_800A22F4(Object_Racer *racer, void *unused);
|
||||
void free_hud(void);
|
||||
|
||||
// Non Matching
|
||||
void func_800A14F0(Object *, s32);
|
||||
@@ -389,7 +390,6 @@ void func_800A4C44(Object_Racer *racer, s32 updateRate);
|
||||
void func_800A47A0(Object_Racer *obj, s32 updateRate);
|
||||
void func_800A718C(Object_64 *obj);
|
||||
void func_800AA600(Gfx **dList, MatrixS **mtx, Vertex **vtxList, unk80126CDC **arg3);
|
||||
void func_800A003C(void);
|
||||
void func_800A7FBC(s32, s32, s32 minutes, s32 seconds, s32 hundredths, s32);
|
||||
void func_800A1248(s32, Object*, s32);
|
||||
void func_800A277C(s32, Object*, s32);
|
||||
|
||||
+4
-4
@@ -8934,17 +8934,17 @@ s32 taj_menu_loop(void) {
|
||||
case -3:
|
||||
case -2:
|
||||
case -1:
|
||||
func_800C31EC(8 - sCurrentMenuID);
|
||||
func_800C31EC(ASSET_GAME_TEXT_8 - sCurrentMenuID); //Wouldn't this be ASSET_GAME_TEXT_9?
|
||||
sCurrentMenuID = 4;
|
||||
break;
|
||||
case -4:
|
||||
func_800C31EC(0x11);
|
||||
func_800C31EC(ASSET_GAME_TEXT_17);
|
||||
gNextTajChallengeMenu = 0;
|
||||
sCurrentMenuID = 1;
|
||||
gDialogueSubmenu = 3;
|
||||
break;
|
||||
case -5:
|
||||
func_800C31EC(0x15);
|
||||
func_800C31EC(ASSET_GAME_TEXT_21);
|
||||
gNextTajChallengeMenu = 0;
|
||||
sCurrentMenuID = 7;
|
||||
gDialogueSubmenu = 0;
|
||||
@@ -8952,7 +8952,7 @@ s32 taj_menu_loop(void) {
|
||||
case -8:
|
||||
case -7:
|
||||
case -6:
|
||||
func_800C31EC(12 - sCurrentMenuID);
|
||||
func_800C31EC(ASSET_GAME_TEXT_12 - sCurrentMenuID);
|
||||
sCurrentMenuID = 6;
|
||||
gDialogueSubmenu = 0;
|
||||
break;
|
||||
|
||||
+39
-7
@@ -658,7 +658,8 @@ void obj_loop_trophycab(Object *obj, s32 updateRate) {
|
||||
play_sound_global(SOUND_VOICE_TT_TROPHY_RACE, NULL);
|
||||
func_800A3870();
|
||||
} else {
|
||||
func_800C31EC(4);
|
||||
// Text for "TROPHY RACE" "TO ENTER THE TROPHY RACE, YOU MUST COMPLETE ALL THE TASKS FROM THIS WORLD. KEEP RACING!"
|
||||
func_800C31EC(ASSET_GAME_TEXT_4);
|
||||
gfxData->unk4 = 180;
|
||||
gfxData->unk0 = 140;
|
||||
set_sndfx_player_voice_limit(16);
|
||||
@@ -740,7 +741,7 @@ void obj_loop_collectegg(Object *obj, s32 updateRate) {
|
||||
}
|
||||
switch (egg->status) {
|
||||
case EGG_SPAWNED:
|
||||
func_80036040(obj, (Object_64 *) egg);
|
||||
try_to_collect_egg(obj, egg);
|
||||
break;
|
||||
case EGG_MOVING:
|
||||
obj->segment.trans.flags &= (0xFFFF - OBJ_FLAGS_INVISIBLE);
|
||||
@@ -801,7 +802,7 @@ void obj_loop_collectegg(Object *obj, s32 updateRate) {
|
||||
egg->spawnerObj->properties.eggSpawner.egg = NULL;
|
||||
}
|
||||
if (egg->hatchTimer < 540) {
|
||||
func_80036040(obj, (Object_64 *) egg);
|
||||
try_to_collect_egg(obj, egg);
|
||||
}
|
||||
if (racerObj != NULL && egg->status != EGG_IN_BASE) {
|
||||
racer->eggHudCounter -= 1;
|
||||
@@ -1127,7 +1128,38 @@ void obj_loop_characterflag(Object *obj, UNUSED s32 updateRate) {
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/object_functions/func_80036040.s")
|
||||
void try_to_collect_egg(Object *obj, Object_CollectEgg *egg) {
|
||||
Object_64 *racer;
|
||||
Object *interactedObj;
|
||||
Matrix mat;
|
||||
ObjectTransform transF;
|
||||
|
||||
if (obj->interactObj->distance < 40) {
|
||||
interactedObj = obj->interactObj->obj;
|
||||
if (interactedObj->segment.header->behaviorId == BHV_RACER) {
|
||||
racer = interactedObj->unk64;
|
||||
if (racer->racer.held_obj == NULL) {
|
||||
egg->status = EGG_UNK_01;
|
||||
obj->segment.trans.flags |= OBJ_FLAGS_INVISIBLE;
|
||||
racer->racer.held_obj = obj;
|
||||
transF.y_rotation = -interactedObj->segment.trans.y_rotation;
|
||||
transF.x_rotation = -interactedObj->segment.trans.x_rotation;
|
||||
transF.z_rotation = -interactedObj->segment.trans.z_rotation;
|
||||
transF.scale = 1.0f;
|
||||
transF.x_position = -interactedObj->segment.trans.x_position;
|
||||
transF.y_position = -interactedObj->segment.trans.y_position;
|
||||
transF.z_position = -interactedObj->segment.trans.z_position;
|
||||
object_transform_to_matrix_2(mat, &transF);
|
||||
guMtxXFMF(mat,
|
||||
obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position,
|
||||
&obj->segment.trans.x_position, &obj->segment.trans.y_position, &obj->segment.trans.z_position);
|
||||
obj->segment.trans.x_position /= interactedObj->segment.trans.scale;
|
||||
obj->segment.trans.y_position /= interactedObj->segment.trans.scale;
|
||||
obj->segment.trans.z_position /= interactedObj->segment.trans.scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hub world T.T init behaviour.
|
||||
@@ -1601,7 +1633,7 @@ void obj_init_animation(Object *obj, LevelObjectEntry_Animation *entry, s32 arg2
|
||||
}
|
||||
obj64 = &obj->unk64->animation;
|
||||
if (obj->unk64 != 0) {
|
||||
func_8001EFA4(obj, obj64);
|
||||
func_8001EFA4(obj, (Object *) obj64);
|
||||
if (entry->order != 0 || obj64->unk4A != entry->objectIdToSpawn) {
|
||||
gParticlePtrList_addObject((Object *) obj64);
|
||||
obj->unk64 = NULL;
|
||||
@@ -4017,9 +4049,9 @@ void obj_loop_weaponballoon(Object *obj, s32 updateRate) {
|
||||
obj->segment.trans.scale = 0.001f;
|
||||
}
|
||||
if (obj->segment.trans.scale < 0.1) {
|
||||
obj->segment.trans.flags |= 0x4000;
|
||||
obj->segment.trans.flags |= OBJ_FLAGS_INVISIBLE;
|
||||
} else {
|
||||
obj->segment.trans.flags &= 0xBFFF;
|
||||
obj->segment.trans.flags &= ~OBJ_FLAGS_INVISIBLE;
|
||||
}
|
||||
if (obj->properties.weaponBalloon.unk4 > 0) {
|
||||
obj->unk74 = 1;
|
||||
|
||||
@@ -442,14 +442,13 @@ s32 func_8001C524(f32 x, f32 y, f32 z, s32 arg3);
|
||||
s32 func_8001CC48(s32, s32, s32);
|
||||
f32 func_8001C6C4(Object_64 *, Object *, f32, f32, s32);
|
||||
void func_8000CBF0(Object*, s32);
|
||||
void try_to_collect_egg(Object *, Object_CollectEgg*);
|
||||
|
||||
|
||||
void func_8001EE74();
|
||||
void func_8001EFA4(Object *, Object_Animation*);
|
||||
void func_8001F23C(Object *obj, LevelObjectEntry_Animation *entry);
|
||||
s32 func_8001F3EC(s32);
|
||||
s32 func_80021600(s32);
|
||||
void func_80036040(Object *, Object_64*);
|
||||
void func_8003F2E8(Object *, s32 updateRate);
|
||||
|
||||
#endif
|
||||
|
||||
+189
-6
@@ -26,6 +26,8 @@
|
||||
#include "game_ui.h"
|
||||
#include "unknown_008C40.h"
|
||||
#include "controller.h"
|
||||
#include "game_text.h"
|
||||
#include "audiosfx.h"
|
||||
|
||||
#define MAX_CHECKPOINTS 60
|
||||
#define OBJECT_POOL_SIZE 0x15800
|
||||
@@ -51,7 +53,7 @@ s16 D_800DC724 = 0x2A30;
|
||||
s16 D_800DC728 = -1;
|
||||
s16 D_800DC72C = 0;
|
||||
u8 gHasGhostToSave = 0;
|
||||
s32 D_800DC734 = 0; // Currently unknown, might be a different type.
|
||||
u8 D_800DC734 = 0;
|
||||
u8 D_800DC738 = 0;
|
||||
s8 D_800DC73C = 0;
|
||||
s8 D_800DC740 = 0;
|
||||
@@ -968,7 +970,7 @@ Object *spawn_object(LevelObjectEntryCommon *entry, s32 arg1) {
|
||||
}
|
||||
sp50 = curObj->segment.header->unk30 & 0x80;
|
||||
if (sp50) {
|
||||
curObj->segment.trans.flags |= 0x80;
|
||||
curObj->segment.trans.flags |= OBJ_FLAGS_UNK_0080;
|
||||
}
|
||||
if (curObj->segment.header->behaviorId == BHV_ROCKET_SIGNPOST && settings->cutsceneFlags & 1) {
|
||||
update_object_stack_trace(OBJECT_SPAWN, -1);
|
||||
@@ -2983,7 +2985,33 @@ void func_80016BC4(Object *arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_80016C68.s")
|
||||
Object *func_80016C68(f32 x, f32 y, f32 z, f32 maxDistCheck, s32 dontCheckYAxis) {
|
||||
f32 yDiff;
|
||||
f32 zDiff;
|
||||
f32 xDiff;
|
||||
f32 distance;
|
||||
s32 i;
|
||||
Object *curObj;
|
||||
|
||||
for (i = 0; i < objCount; i++) {
|
||||
curObj = gObjPtrList[i];
|
||||
if (!(curObj->segment.trans.flags & OBJ_FLAGS_DEACTIVATED) && (curObj->behaviorId == BHV_ANIMATED_OBJECT_3)) {
|
||||
xDiff = curObj->segment.trans.x_position - x;
|
||||
zDiff = curObj->segment.trans.z_position - z;
|
||||
if (!dontCheckYAxis) {
|
||||
yDiff = curObj->segment.trans.y_position - y;
|
||||
distance = sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff));
|
||||
} else {
|
||||
distance = sqrtf((xDiff * xDiff) + (zDiff * zDiff));
|
||||
}
|
||||
if (distance < maxDistCheck) {
|
||||
return curObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_80016DE8.s")
|
||||
|
||||
void func_8001709C(Object *obj) {
|
||||
@@ -3202,7 +3230,38 @@ s32 func_8001B3AC(s32 arg0) {
|
||||
return arg0 == D_800DC718;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001B3C4.s")
|
||||
void func_8001B3C4(s32 arg0, s16 *playerId) {
|
||||
s32 trackIdCount;
|
||||
s8 *mainTrackIds;
|
||||
|
||||
D_800DC718 = 0;
|
||||
free_tt_ghost_data();
|
||||
D_800DC734 = 0;
|
||||
mainTrackIds = get_misc_asset(ASSET_MISC_MAIN_TRACKS_IDS);
|
||||
trackIdCount = 0;
|
||||
while (mainTrackIds[trackIdCount] != -1 && mainTrackIds[trackIdCount] != arg0) {
|
||||
trackIdCount++;
|
||||
}
|
||||
if (D_800DC738 != 0) {
|
||||
//Save that TT has been beaten for this track.
|
||||
set_eeprom_settings_value(16 << trackIdCount);
|
||||
//Check if TT has been beaten for all tracks.
|
||||
if ((get_eeprom_settings() & 0xFFFFF0) == 0xFFFFF0) {
|
||||
set_magic_code_flags(CHEAT_CONTROL_TT);
|
||||
play_sound_global(SOUND_VOICE_TT_BEAT_ALL_TIMES, NULL);
|
||||
func_80000FDC(SOUND_VOICE_TT_UNLOCKED, 0, 1.5f);
|
||||
func_800C31EC(ASSET_GAME_TEXT_84); //Text for "You have beaten all my times!" and then "Now you can PICK me!"
|
||||
} else {
|
||||
play_sound_global(SOUND_VOICE_TT_WELL_DONE, NULL);
|
||||
func_80000FDC(SOUND_VOICE_TT_TRY_ANOTHER_TRACK, 0, 1.0f);
|
||||
func_800C31EC(ASSET_GAME_TEXT_83); //Text for "Well Done! Now try another track."
|
||||
}
|
||||
D_800DC738 = 0;
|
||||
return;
|
||||
}
|
||||
play_time_trial_end_message(playerId);
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001B4FC.s")
|
||||
|
||||
Object *func_8001B640(void) {
|
||||
@@ -3593,7 +3652,62 @@ s32 func_8001C524(f32 diffX, f32 diffY, f32 diffZ, s32 someFlag) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001C6C4.s")
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
typedef struct LevelObjectEntry_Unknown8001CC48 {
|
||||
LevelObjectEntryCommon common;
|
||||
u8 pad8[2];
|
||||
u8 unkA[4];
|
||||
} LevelObjectEntry_Unknown8001CC48;
|
||||
|
||||
typedef struct Object_Unknown8001CC48 {
|
||||
s8 pad0[0x18];
|
||||
s8 unk18[4];
|
||||
} Object_Unknown8001CC48;
|
||||
|
||||
s32 func_8001CC48(s32 arg0, s32 arg1, s32 arg2) {
|
||||
LevelObjectEntry_Unknown8001CC48 *entry;
|
||||
Object *someObj;
|
||||
Object_Unknown8001CC48 *someObj64;
|
||||
s32 someCount;
|
||||
s32 i;
|
||||
s32 someIndex;
|
||||
s32 test;
|
||||
|
||||
if ((arg0 < -1) || (arg0 >= 128)) {
|
||||
return 255;
|
||||
}
|
||||
someObj = (*D_8011AF04)[arg0];
|
||||
if (someObj == NULL) {
|
||||
return 255;
|
||||
}
|
||||
entry = (LevelObjectEntry_Unknown8001CC48 *)someObj->segment.level_entry;
|
||||
someObj64 = (Object_Unknown8001CC48*)someObj->unk64;
|
||||
test = arg2 & 3;
|
||||
|
||||
// Swapping these messes up the registers.
|
||||
someCount = 0;
|
||||
someIndex = (someObj64->unk18[test] + 1) & 3;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (entry->unkA[someIndex] != 255) {
|
||||
if (entry->unkA[someIndex] != arg1) {
|
||||
someObj64->unk18[test] = someIndex;
|
||||
i = 4;
|
||||
someCount++;
|
||||
}
|
||||
}
|
||||
someIndex = (someIndex + 1) & 3;
|
||||
}
|
||||
if (someCount == 0) {
|
||||
return 255;
|
||||
}
|
||||
return entry->unkA[someObj64->unk18[test]];
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001CC48.s")
|
||||
#endif
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001CD28.s")
|
||||
|
||||
void func_8001D1AC(void) {
|
||||
@@ -3880,7 +3994,76 @@ void func_8001E89C(void) {
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001E93C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001EE74.s")
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001EFA4.s")
|
||||
|
||||
void func_8001EFA4(Object *arg0, Object *animObj) {
|
||||
LevelObjectEntry_Animation *animEntry;
|
||||
Object_Animation *anim;
|
||||
f32 scale;
|
||||
|
||||
animEntry = &arg0->segment.level_entry->animation;
|
||||
anim = &animObj->unk64->animation;
|
||||
scale = animEntry->scale & 0xFF;
|
||||
if (scale < 1.0f) {
|
||||
scale = 1.0f;
|
||||
}
|
||||
scale /= 64;
|
||||
animObj->segment.trans.scale = animObj->segment.header->scale * scale;
|
||||
animObj->properties.common.unk0 = 0;
|
||||
animObj->properties.common.unk4 = 0;
|
||||
if ((animEntry->unk22 >= 2) && (animEntry->unk22 < 10)) {
|
||||
animObj->properties.common.unk0 = animEntry->unk22 - 1;
|
||||
}
|
||||
if ((animEntry->unk22 >= 10) && (animEntry->unk22 < 18)) {
|
||||
animObj->properties.common.unk0 = animEntry->unk22 - 9;
|
||||
}
|
||||
animObj->segment.trans.x_position = arg0->segment.trans.x_position;
|
||||
animObj->segment.trans.y_position = arg0->segment.trans.y_position;
|
||||
animObj->segment.trans.z_position = arg0->segment.trans.z_position;
|
||||
animObj->segment.trans.y_rotation = arg0->segment.trans.y_rotation;
|
||||
animObj->segment.trans.z_rotation = arg0->segment.trans.z_rotation;
|
||||
animObj->segment.trans.x_rotation = arg0->segment.trans.x_rotation;
|
||||
anim->unk26 = 0;
|
||||
anim->unk3D = animEntry->channel;
|
||||
anim->unk28 = animEntry->actorIndex;
|
||||
anim->unk8 = (f32)animEntry->nodeSpeed * 0.1;
|
||||
anim->unk2A = normalise_time(animEntry->animationStartDelay);
|
||||
animObj->segment.object.animationID = animEntry->objAnimIndex;
|
||||
animObj->segment.animFrame = animEntry->unk16;
|
||||
anim->unk14 = animEntry->objAnimSpeed;
|
||||
anim->unk10 = 0;
|
||||
anim->unk2C = animEntry->objAnimLoopType;
|
||||
anim->unk2E = animEntry->rotateType;
|
||||
anim->unk3E = animEntry->nextAnim;
|
||||
anim->unk3F = animEntry->unk2D;
|
||||
anim->unk31 = animEntry->yawSpinSpeed;
|
||||
anim->unk32 = animEntry->rollSpinSpeed;
|
||||
anim->unk33 = animEntry->pitchSpinSpeed;
|
||||
anim->unk34 = animEntry->unk20;
|
||||
anim->unk2D = 0;
|
||||
anim->unk4 = 0;
|
||||
anim->unk0 = 0;
|
||||
arg0->unk6C = NULL;
|
||||
anim->unk36 = normalise_time(animEntry->pauseFrameCount);
|
||||
anim->unk3A = animEntry->specialHide;
|
||||
if (animEntry->unk13 >= 0) {
|
||||
anim->unk2F = animEntry->unk13;
|
||||
}
|
||||
anim->unk39 = animEntry->unk1F;
|
||||
anim->unk38 = animEntry->unk1E;
|
||||
anim->unk3B = animEntry->unk29;
|
||||
anim->unk40 = animEntry->soundEffect;
|
||||
anim->unk41 = animEntry->fadeOptions;
|
||||
anim->unk3C = animEntry->fadeAlpha;
|
||||
anim->unk42 = 0xFF;
|
||||
if (anim->unk18 != NULL) {
|
||||
func_8000488C(anim->unk18);
|
||||
}
|
||||
anim->unk18 = 0;
|
||||
anim->unk43 = animEntry->unk30;
|
||||
anim->unk1C = arg0;
|
||||
anim->unk45 = 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/objects/func_8001F23C.s")
|
||||
|
||||
s8 func_8001F3B8(void) {
|
||||
@@ -3981,7 +4164,7 @@ loop_11:
|
||||
}
|
||||
}
|
||||
}
|
||||
func_8001EFA4(D_8011AE74[i], (Object_Animation *) obj);
|
||||
func_8001EFA4(D_8011AE74[i], obj);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
||||
+4
-1
@@ -415,7 +415,7 @@ s32 move_object(Object *obj, f32 xPos, f32 yPos, f32 zPos);
|
||||
Object *get_racer_object_by_port(s32 index);
|
||||
void render_racer_shield(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *obj);
|
||||
void render_racer_magnet(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *obj);
|
||||
void update_envmap_position(f32 arg0, f32 arg1, f32 arg2);
|
||||
void update_envmap_position(f32 x, f32 y, f32 z);
|
||||
s32 func_8000FC6C(Object *obj, WaterEffect *shadow);
|
||||
s32 func_8001B2F0(s32 mapId);
|
||||
void render_3d_billboard(Object *obj);
|
||||
@@ -445,6 +445,9 @@ void light_setup_light_sources(Object *obj);
|
||||
s32 init_object_interaction_data(Object *arg0, ObjectInteraction *arg1);
|
||||
s32 func_8000FAC4(Object *obj, Object_6C *arg1);
|
||||
s32 obj_init_property_flags(s32 behaviorId);
|
||||
void func_8001B3C4(s32 arg0, s16 *playerId);
|
||||
void func_8001EFA4(Object *, Object *);
|
||||
Object *func_80016C68(f32 x, f32 y, f32 z, f32 maxDistCheck, s32 dontCheckYAxis);
|
||||
|
||||
//Non Matching
|
||||
void calc_dynamic_lighting_for_object_1(Object *, ObjectModel *, s16, Object *, f32, f32);
|
||||
|
||||
+2
-2
@@ -788,9 +788,9 @@ Particle *func_800B0698(Particle *arg0, Particle *arg1) {
|
||||
}
|
||||
if (properties->opacity < 255) {
|
||||
if (var_v0->segment.unk40 & 0x1000) {
|
||||
var_v0->segment.trans.flags |= 0x100;
|
||||
var_v0->segment.trans.flags |= OBJ_FLAGS_UNK_0100;
|
||||
} else {
|
||||
var_v0->segment.trans.flags |= 0x80;
|
||||
var_v0->segment.trans.flags |= OBJ_FLAGS_UNK_0080;
|
||||
}
|
||||
}
|
||||
if (var_v0->opacityTimer < var_v0->segment.particle.destroyTimer) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user