mirror of https://github.com/n64decomp/mk64.git
Add lots of headers (#252)
* Add a lot of header files Did my best to move all relevant function prototypes and external variable declarations into the header files too. Matched a few functions in the process * Updated progress.py Some of the listed files/folders have been deleted/renamed, so I reflected those changes in progress.py Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
parent
dfd54d9a10
commit
1897d232a6
|
|
@ -1,29 +0,0 @@
|
|||
glabel func_8002AA50
|
||||
/* 02B650 8002AA50 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 02B654 8002AA54 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 02B658 8002AA58 94820254 */ lhu $v0, 0x254($a0)
|
||||
/* 02B65C 8002AA5C 3C01800E */ lui $at, %hi(gKartHopJerkTable)
|
||||
/* 02B660 8002AA60 44803000 */ mtc1 $zero, $f6
|
||||
/* 02B664 8002AA64 00027080 */ sll $t6, $v0, 2
|
||||
/* 02B668 8002AA68 002E0821 */ addu $at, $at, $t6
|
||||
/* 02B66C 8002AA6C C42436F0 */ lwc1 $f4, %lo(gKartHopJerkTable)($at)
|
||||
/* 02B670 8002AA70 3C01800E */ lui $at, %hi(gKartHopInitialVelocityTable)
|
||||
/* 02B674 8002AA74 002E0821 */ addu $at, $at, $t6
|
||||
/* 02B678 8002AA78 E48600F4 */ swc1 $f6, 0xf4($a0)
|
||||
/* 02B67C 8002AA7C E48400F0 */ swc1 $f4, 0xf0($a0)
|
||||
/* 02B680 8002AA80 C42836D0 */ lwc1 $f8, %lo(gKartHopInitialVelocityTable)($at)
|
||||
/* 02B684 8002AA84 3C014040 */ li $at, 0x40400000 # 3.000000
|
||||
/* 02B688 8002AA88 8C8F00BC */ lw $t7, 0xbc($a0)
|
||||
/* 02B68C 8002AA8C 44815000 */ mtc1 $at, $f10
|
||||
/* 02B690 8002AA90 3C0143FA */ li $at, 0x43FA0000 # 500.000000
|
||||
/* 02B694 8002AA94 44818000 */ mtc1 $at, $f16
|
||||
/* 02B698 8002AA98 35F80002 */ ori $t8, $t7, 2
|
||||
/* 02B69C 8002AA9C AC9800BC */ sw $t8, 0xbc($a0)
|
||||
/* 02B6A0 8002AAA0 E48800EC */ swc1 $f8, 0xec($a0)
|
||||
/* 02B6A4 8002AAA4 E48A0DAC */ swc1 $f10, 0xdac($a0)
|
||||
/* 02B6A8 8002AAA8 0C00DB17 */ jal func_80036C5C
|
||||
/* 02B6AC 8002AAAC E4900100 */ swc1 $f16, 0x100($a0)
|
||||
/* 02B6B0 8002AAB0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 02B6B4 8002AAB4 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 02B6B8 8002AAB8 03E00008 */ jr $ra
|
||||
/* 02B6BC 8002AABC 00000000 */ nop
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
glabel func_80037614
|
||||
/* 038214 80037614 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 038218 80037618 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 03821C 8003761C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 038220 80037620 8C8200BC */ lw $v0, 0xbc($a0)
|
||||
/* 038224 80037624 24011000 */ li $at, 4096
|
||||
/* 038228 80037628 00808025 */ move $s0, $a0
|
||||
/* 03822C 8003762C 304E1000 */ andi $t6, $v0, 0x1000
|
||||
/* 038230 80037630 11C10005 */ beq $t6, $at, .L80037648
|
||||
/* 038234 80037634 00A03825 */ move $a3, $a1
|
||||
/* 038238 80037638 304F0020 */ andi $t7, $v0, 0x20
|
||||
/* 03823C 8003763C 24010020 */ li $at, 32
|
||||
/* 038240 80037640 15E1000D */ bne $t7, $at, .L80037678
|
||||
/* 038244 80037644 30580010 */ andi $t8, $v0, 0x10
|
||||
.L80037648:
|
||||
/* 038248 80037648 44807000 */ mtc1 $zero, $f14
|
||||
/* 03824C 8003764C 00E02025 */ move $a0, $a3
|
||||
/* 038250 80037650 26050174 */ addiu $a1, $s0, 0x174
|
||||
/* 038254 80037654 E4EE0000 */ swc1 $f14, ($a3)
|
||||
/* 038258 80037658 E4EE0004 */ swc1 $f14, 4($a3)
|
||||
/* 03825C 8003765C E4EE0008 */ swc1 $f14, 8($a3)
|
||||
/* 038260 80037660 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* 038264 80037664 0C0AD8EE */ jal func_802B63B8
|
||||
/* 038268 80037668 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 03826C 8003766C 8FA60028 */ lw $a2, 0x28($sp)
|
||||
/* 038270 80037670 10000037 */ b .L80037750
|
||||
/* 038274 80037674 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L80037678:
|
||||
/* 038278 80037678 24010010 */ li $at, 16
|
||||
/* 03827C 8003767C 17010013 */ bne $t8, $at, .L800376CC
|
||||
/* 038280 80037680 30590002 */ andi $t9, $v0, 2
|
||||
/* 038284 80037684 24010002 */ li $at, 2
|
||||
/* 038288 80037688 13210010 */ beq $t9, $at, .L800376CC
|
||||
/* 03828C 8003768C 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000
|
||||
/* 038290 80037690 44816000 */ mtc1 $at, $f12
|
||||
/* 038294 80037694 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 038298 80037698 44812000 */ mtc1 $at, $f4
|
||||
/* 03829C 8003769C C6000094 */ lwc1 $f0, 0x94($s0)
|
||||
/* 0382A0 800376A0 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 0382A4 800376A4 44815000 */ mtc1 $at, $f10
|
||||
/* 0382A8 800376A8 46040183 */ div.s $f6, $f0, $f4
|
||||
/* 0382AC 800376AC 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 0382B0 800376B0 44819000 */ mtc1 $at, $f18
|
||||
/* 0382B4 800376B4 46003207 */ neg.s $f8, $f6
|
||||
/* 0382B8 800376B8 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 0382BC 800376BC 00000000 */ nop
|
||||
/* 0382C0 800376C0 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 0382C4 800376C4 10000011 */ b .L8003770C
|
||||
/* 0382C8 800376C8 460C2080 */ add.s $f2, $f4, $f12
|
||||
.L800376CC:
|
||||
/* 0382CC 800376CC 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 0382D0 800376D0 44813000 */ mtc1 $at, $f6
|
||||
/* 0382D4 800376D4 C6000094 */ lwc1 $f0, 0x94($s0)
|
||||
/* 0382D8 800376D8 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 0382DC 800376DC 44818000 */ mtc1 $at, $f16
|
||||
/* 0382E0 800376E0 46060203 */ div.s $f8, $f0, $f6
|
||||
/* 0382E4 800376E4 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 0382E8 800376E8 44812000 */ mtc1 $at, $f4
|
||||
/* 0382EC 800376EC 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000
|
||||
/* 0382F0 800376F0 46004287 */ neg.s $f10, $f8
|
||||
/* 0382F4 800376F4 44814000 */ mtc1 $at, $f8
|
||||
/* 0382F8 800376F8 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 0382FC 800376FC 3C01C220 */ li $at, 0xC2200000 # -40.000000
|
||||
/* 038300 80037700 44816000 */ mtc1 $at, $f12
|
||||
/* 038304 80037704 46049183 */ div.s $f6, $f18, $f4
|
||||
/* 038308 80037708 46083080 */ add.s $f2, $f6, $f8
|
||||
.L8003770C:
|
||||
/* 03830C 8003770C 3C0141E0 */ li $at, 0x41E00000 # 28.000000
|
||||
/* 038310 80037710 44815000 */ mtc1 $at, $f10
|
||||
/* 038314 80037714 44807000 */ mtc1 $zero, $f14
|
||||
/* 038318 80037718 00E02025 */ move $a0, $a3
|
||||
/* 03831C 8003771C 460A1400 */ add.s $f16, $f2, $f10
|
||||
/* 038320 80037720 E4EE0004 */ swc1 $f14, 4($a3)
|
||||
/* 038324 80037724 26050174 */ addiu $a1, $s0, 0x174
|
||||
/* 038328 80037728 46008482 */ mul.s $f18, $f16, $f0
|
||||
/* 03832C 8003772C E4F20000 */ swc1 $f18, ($a3)
|
||||
/* 038330 80037730 C6040094 */ lwc1 $f4, 0x94($s0)
|
||||
/* 038334 80037734 460C2182 */ mul.s $f6, $f4, $f12
|
||||
/* 038338 80037738 E4E60008 */ swc1 $f6, 8($a3)
|
||||
/* 03833C 8003773C AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* 038340 80037740 0C0AD8EE */ jal func_802B63B8
|
||||
/* 038344 80037744 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 038348 80037748 8FA60028 */ lw $a2, 0x28($sp)
|
||||
/* 03834C 8003774C 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L80037750:
|
||||
/* 038350 80037750 C4E80000 */ lwc1 $f8, ($a3)
|
||||
/* 038354 80037754 E4C80000 */ swc1 $f8, ($a2)
|
||||
/* 038358 80037758 C4EA0004 */ lwc1 $f10, 4($a3)
|
||||
/* 03835C 8003775C E4CA0004 */ swc1 $f10, 4($a2)
|
||||
/* 038360 80037760 C4F00008 */ lwc1 $f16, 8($a3)
|
||||
/* 038364 80037764 E4D00008 */ swc1 $f16, 8($a2)
|
||||
/* 038368 80037768 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 03836C 8003776C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 038370 80037770 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 038374 80037774 03E00008 */ jr $ra
|
||||
/* 038378 80037778 00000000 */ nop
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
glabel func_8003777C
|
||||
/* 03837C 8003777C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 038380 80037780 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 038384 80037784 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 038388 80037788 8C8200BC */ lw $v0, 0xbc($a0)
|
||||
/* 03838C 8003778C 24011000 */ li $at, 4096
|
||||
/* 038390 80037790 00808025 */ move $s0, $a0
|
||||
/* 038394 80037794 304E1000 */ andi $t6, $v0, 0x1000
|
||||
/* 038398 80037798 11C10005 */ beq $t6, $at, .L800377B0
|
||||
/* 03839C 8003779C 00A03825 */ move $a3, $a1
|
||||
/* 0383A0 800377A0 304F0020 */ andi $t7, $v0, 0x20
|
||||
/* 0383A4 800377A4 24010020 */ li $at, 32
|
||||
/* 0383A8 800377A8 15E1000D */ bne $t7, $at, .L800377E0
|
||||
/* 0383AC 800377AC 30580010 */ andi $t8, $v0, 0x10
|
||||
.L800377B0:
|
||||
/* 0383B0 800377B0 44807000 */ mtc1 $zero, $f14
|
||||
/* 0383B4 800377B4 00E02025 */ move $a0, $a3
|
||||
/* 0383B8 800377B8 26050174 */ addiu $a1, $s0, 0x174
|
||||
/* 0383BC 800377BC E4EE0000 */ swc1 $f14, ($a3)
|
||||
/* 0383C0 800377C0 E4EE0004 */ swc1 $f14, 4($a3)
|
||||
/* 0383C4 800377C4 E4EE0008 */ swc1 $f14, 8($a3)
|
||||
/* 0383C8 800377C8 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* 0383CC 800377CC 0C0AD8EE */ jal func_802B63B8
|
||||
/* 0383D0 800377D0 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 0383D4 800377D4 8FA60028 */ lw $a2, 0x28($sp)
|
||||
/* 0383D8 800377D8 10000038 */ b .L800378BC
|
||||
/* 0383DC 800377DC 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L800377E0:
|
||||
/* 0383E0 800377E0 24010010 */ li $at, 16
|
||||
/* 0383E4 800377E4 17010013 */ bne $t8, $at, .L80037834
|
||||
/* 0383E8 800377E8 30590002 */ andi $t9, $v0, 2
|
||||
/* 0383EC 800377EC 24010002 */ li $at, 2
|
||||
/* 0383F0 800377F0 13210010 */ beq $t9, $at, .L80037834
|
||||
/* 0383F4 800377F4 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000
|
||||
/* 0383F8 800377F8 44816000 */ mtc1 $at, $f12
|
||||
/* 0383FC 800377FC 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 038400 80037800 44812000 */ mtc1 $at, $f4
|
||||
/* 038404 80037804 C6000094 */ lwc1 $f0, 0x94($s0)
|
||||
/* 038408 80037808 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 03840C 8003780C 44815000 */ mtc1 $at, $f10
|
||||
/* 038410 80037810 46040183 */ div.s $f6, $f0, $f4
|
||||
/* 038414 80037814 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 038418 80037818 44819000 */ mtc1 $at, $f18
|
||||
/* 03841C 8003781C 46003207 */ neg.s $f8, $f6
|
||||
/* 038420 80037820 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 038424 80037824 00000000 */ nop
|
||||
/* 038428 80037828 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 03842C 8003782C 10000011 */ b .L80037874
|
||||
/* 038430 80037830 460C2080 */ add.s $f2, $f4, $f12
|
||||
.L80037834:
|
||||
/* 038434 80037834 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 038438 80037838 44813000 */ mtc1 $at, $f6
|
||||
/* 03843C 8003783C C6000094 */ lwc1 $f0, 0x94($s0)
|
||||
/* 038440 80037840 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 038444 80037844 44818000 */ mtc1 $at, $f16
|
||||
/* 038448 80037848 46060203 */ div.s $f8, $f0, $f6
|
||||
/* 03844C 8003784C 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 038450 80037850 44812000 */ mtc1 $at, $f4
|
||||
/* 038454 80037854 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000
|
||||
/* 038458 80037858 46004287 */ neg.s $f10, $f8
|
||||
/* 03845C 8003785C 44814000 */ mtc1 $at, $f8
|
||||
/* 038460 80037860 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 038464 80037864 3C01C220 */ li $at, 0xC2200000 # -40.000000
|
||||
/* 038468 80037868 44816000 */ mtc1 $at, $f12
|
||||
/* 03846C 8003786C 46049183 */ div.s $f6, $f18, $f4
|
||||
/* 038470 80037870 46083080 */ add.s $f2, $f6, $f8
|
||||
.L80037874:
|
||||
/* 038474 80037874 3C0141E0 */ li $at, 0x41E00000 # 28.000000
|
||||
/* 038478 80037878 44815000 */ mtc1 $at, $f10
|
||||
/* 03847C 8003787C 44807000 */ mtc1 $zero, $f14
|
||||
/* 038480 80037880 00E02025 */ move $a0, $a3
|
||||
/* 038484 80037884 460A1400 */ add.s $f16, $f2, $f10
|
||||
/* 038488 80037888 E4EE0004 */ swc1 $f14, 4($a3)
|
||||
/* 03848C 8003788C 26050174 */ addiu $a1, $s0, 0x174
|
||||
/* 038490 80037890 46008487 */ neg.s $f18, $f16
|
||||
/* 038494 80037894 46009102 */ mul.s $f4, $f18, $f0
|
||||
/* 038498 80037898 E4E40000 */ swc1 $f4, ($a3)
|
||||
/* 03849C 8003789C C6060094 */ lwc1 $f6, 0x94($s0)
|
||||
/* 0384A0 800378A0 460C3202 */ mul.s $f8, $f6, $f12
|
||||
/* 0384A4 800378A4 E4E80008 */ swc1 $f8, 8($a3)
|
||||
/* 0384A8 800378A8 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* 0384AC 800378AC 0C0AD8EE */ jal func_802B63B8
|
||||
/* 0384B0 800378B0 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 0384B4 800378B4 8FA60028 */ lw $a2, 0x28($sp)
|
||||
/* 0384B8 800378B8 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L800378BC:
|
||||
/* 0384BC 800378BC C4EA0000 */ lwc1 $f10, ($a3)
|
||||
/* 0384C0 800378C0 E4CA0000 */ swc1 $f10, ($a2)
|
||||
/* 0384C4 800378C4 C4F00004 */ lwc1 $f16, 4($a3)
|
||||
/* 0384C8 800378C8 E4D00004 */ swc1 $f16, 4($a2)
|
||||
/* 0384CC 800378CC C4F20008 */ lwc1 $f18, 8($a3)
|
||||
/* 0384D0 800378D0 E4D20008 */ swc1 $f18, 8($a2)
|
||||
/* 0384D4 800378D4 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0384D8 800378D8 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0384DC 800378DC 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 0384E0 800378E0 03E00008 */ jr $ra
|
||||
/* 0384E4 800378E4 00000000 */ nop
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
glabel func_800378E8
|
||||
/* 0384E8 800378E8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 0384EC 800378EC AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0384F0 800378F0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0384F4 800378F4 8C8200BC */ lw $v0, 0xbc($a0)
|
||||
/* 0384F8 800378F8 24010020 */ li $at, 32
|
||||
/* 0384FC 800378FC 00A08025 */ move $s0, $a1
|
||||
/* 038500 80037900 304E0020 */ andi $t6, $v0, 0x20
|
||||
/* 038504 80037904 15C1000B */ bne $t6, $at, .L80037934
|
||||
/* 038508 80037908 00803825 */ move $a3, $a0
|
||||
/* 03850C 8003790C 44807000 */ mtc1 $zero, $f14
|
||||
/* 038510 80037910 00A02025 */ move $a0, $a1
|
||||
/* 038514 80037914 E4AE0000 */ swc1 $f14, ($a1)
|
||||
/* 038518 80037918 E4AE0004 */ swc1 $f14, 4($a1)
|
||||
/* 03851C 8003791C E4AE0008 */ swc1 $f14, 8($a1)
|
||||
/* 038520 80037920 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 038524 80037924 0C0AD8EE */ jal func_802B63B8
|
||||
/* 038528 80037928 24E50174 */ addiu $a1, $a3, 0x174
|
||||
/* 03852C 8003792C 1000003C */ b .L80037A20
|
||||
/* 038530 80037930 8FA60028 */ lw $a2, 0x28($sp)
|
||||
.L80037934:
|
||||
/* 038534 80037934 304F0010 */ andi $t7, $v0, 0x10
|
||||
/* 038538 80037938 24010010 */ li $at, 16
|
||||
/* 03853C 8003793C 15E10016 */ bne $t7, $at, .L80037998
|
||||
/* 038540 80037940 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 038544 80037944 44812000 */ mtc1 $at, $f4
|
||||
/* 038548 80037948 C4E00094 */ lwc1 $f0, 0x94($a3)
|
||||
/* 03854C 8003794C 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 038550 80037950 44815000 */ mtc1 $at, $f10
|
||||
/* 038554 80037954 46040183 */ div.s $f6, $f0, $f4
|
||||
/* 038558 80037958 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
||||
/* 03855C 8003795C 44819000 */ mtc1 $at, $f18
|
||||
/* 038560 80037960 3C014120 */ li $at, 0x41200000 # 10.000000
|
||||
/* 038564 80037964 46003207 */ neg.s $f8, $f6
|
||||
/* 038568 80037968 C4E60208 */ lwc1 $f6, 0x208($a3)
|
||||
/* 03856C 8003796C 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 038570 80037970 C4EA020C */ lwc1 $f10, 0x20c($a3)
|
||||
/* 038574 80037974 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 038578 80037978 44819000 */ mtc1 $at, $f18
|
||||
/* 03857C 8003797C 46005407 */ neg.s $f16, $f10
|
||||
/* 038580 80037980 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000
|
||||
/* 038584 80037984 44816000 */ mtc1 $at, $f12
|
||||
/* 038588 80037988 46043200 */ add.s $f8, $f6, $f4
|
||||
/* 03858C 8003798C 46128182 */ mul.s $f6, $f16, $f18
|
||||
/* 038590 80037990 10000015 */ b .L800379E8
|
||||
/* 038594 80037994 46064080 */ add.s $f2, $f8, $f6
|
||||
.L80037998:
|
||||
/* 038598 80037998 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 03859C 8003799C 44812000 */ mtc1 $at, $f4
|
||||
/* 0385A0 800379A0 C4E00094 */ lwc1 $f0, 0x94($a3)
|
||||
/* 0385A4 800379A4 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 0385A8 800379A8 44819000 */ mtc1 $at, $f18
|
||||
/* 0385AC 800379AC 46040283 */ div.s $f10, $f0, $f4
|
||||
/* 0385B0 800379B0 3C014220 */ li $at, 0x42200000 # 40.000000
|
||||
/* 0385B4 800379B4 44813000 */ mtc1 $at, $f6
|
||||
/* 0385B8 800379B8 3C014248 */ li $at, 0x42480000 # 50.000000
|
||||
/* 0385BC 800379BC C4EC0084 */ lwc1 $f12, 0x84($a3)
|
||||
/* 0385C0 800379C0 46005407 */ neg.s $f16, $f10
|
||||
/* 0385C4 800379C4 C4EA0208 */ lwc1 $f10, 0x208($a3)
|
||||
/* 0385C8 800379C8 46128202 */ mul.s $f8, $f16, $f18
|
||||
/* 0385CC 800379CC C4F2020C */ lwc1 $f18, 0x20c($a3)
|
||||
/* 0385D0 800379D0 46064103 */ div.s $f4, $f8, $f6
|
||||
/* 0385D4 800379D4 44813000 */ mtc1 $at, $f6
|
||||
/* 0385D8 800379D8 46009207 */ neg.s $f8, $f18
|
||||
/* 0385DC 800379DC 46045400 */ add.s $f16, $f10, $f4
|
||||
/* 0385E0 800379E0 46064282 */ mul.s $f10, $f8, $f6
|
||||
/* 0385E4 800379E4 460A8080 */ add.s $f2, $f16, $f10
|
||||
.L800379E8:
|
||||
/* 0385E8 800379E8 C4E40090 */ lwc1 $f4, 0x90($a3)
|
||||
/* 0385EC 800379EC 44807000 */ mtc1 $zero, $f14
|
||||
/* 0385F0 800379F0 02002025 */ move $a0, $s0
|
||||
/* 0385F4 800379F4 46022480 */ add.s $f18, $f4, $f2
|
||||
/* 0385F8 800379F8 E60E0004 */ swc1 $f14, 4($s0)
|
||||
/* 0385FC 800379FC 24E50174 */ addiu $a1, $a3, 0x174
|
||||
/* 038600 80037A00 46009202 */ mul.s $f8, $f18, $f0
|
||||
/* 038604 80037A04 E6080000 */ swc1 $f8, ($s0)
|
||||
/* 038608 80037A08 C4E60094 */ lwc1 $f6, 0x94($a3)
|
||||
/* 03860C 80037A0C 460C3402 */ mul.s $f16, $f6, $f12
|
||||
/* 038610 80037A10 E6100008 */ swc1 $f16, 8($s0)
|
||||
/* 038614 80037A14 0C0AD8EE */ jal func_802B63B8
|
||||
/* 038618 80037A18 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 03861C 80037A1C 8FA60028 */ lw $a2, 0x28($sp)
|
||||
.L80037A20:
|
||||
/* 038620 80037A20 C60A0000 */ lwc1 $f10, ($s0)
|
||||
/* 038624 80037A24 E4CA0000 */ swc1 $f10, ($a2)
|
||||
/* 038628 80037A28 C6040004 */ lwc1 $f4, 4($s0)
|
||||
/* 03862C 80037A2C E4C40004 */ swc1 $f4, 4($a2)
|
||||
/* 038630 80037A30 C6120008 */ lwc1 $f18, 8($s0)
|
||||
/* 038634 80037A34 E4D20008 */ swc1 $f18, 8($a2)
|
||||
/* 038638 80037A38 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 03863C 80037A3C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 038640 80037A40 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 038644 80037A44 03E00008 */ jr $ra
|
||||
/* 038648 80037A48 00000000 */ nop
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
glabel func_80037A4C
|
||||
/* 03864C 80037A4C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 038650 80037A50 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 038654 80037A54 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 038658 80037A58 8C8200BC */ lw $v0, 0xbc($a0)
|
||||
/* 03865C 80037A5C 24010020 */ li $at, 32
|
||||
/* 038660 80037A60 00A08025 */ move $s0, $a1
|
||||
/* 038664 80037A64 304E0020 */ andi $t6, $v0, 0x20
|
||||
/* 038668 80037A68 15C1000B */ bne $t6, $at, .L80037A98
|
||||
/* 03866C 80037A6C 00803825 */ move $a3, $a0
|
||||
/* 038670 80037A70 44807000 */ mtc1 $zero, $f14
|
||||
/* 038674 80037A74 00A02025 */ move $a0, $a1
|
||||
/* 038678 80037A78 E4AE0000 */ swc1 $f14, ($a1)
|
||||
/* 03867C 80037A7C E4AE0004 */ swc1 $f14, 4($a1)
|
||||
/* 038680 80037A80 E4AE0008 */ swc1 $f14, 8($a1)
|
||||
/* 038684 80037A84 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 038688 80037A88 0C0AD8EE */ jal func_802B63B8
|
||||
/* 03868C 80037A8C 24E50174 */ addiu $a1, $a3, 0x174
|
||||
/* 038690 80037A90 1000003D */ b .L80037B88
|
||||
/* 038694 80037A94 8FA60028 */ lw $a2, 0x28($sp)
|
||||
.L80037A98:
|
||||
/* 038698 80037A98 304F0010 */ andi $t7, $v0, 0x10
|
||||
/* 03869C 80037A9C 24010010 */ li $at, 16
|
||||
/* 0386A0 80037AA0 15E10016 */ bne $t7, $at, .L80037AFC
|
||||
/* 0386A4 80037AA4 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 0386A8 80037AA8 44812000 */ mtc1 $at, $f4
|
||||
/* 0386AC 80037AAC C4E00094 */ lwc1 $f0, 0x94($a3)
|
||||
/* 0386B0 80037AB0 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 0386B4 80037AB4 44815000 */ mtc1 $at, $f10
|
||||
/* 0386B8 80037AB8 46040183 */ div.s $f6, $f0, $f4
|
||||
/* 0386BC 80037ABC 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
||||
/* 0386C0 80037AC0 44819000 */ mtc1 $at, $f18
|
||||
/* 0386C4 80037AC4 3C014248 */ li $at, 0x42480000 # 50.000000
|
||||
/* 0386C8 80037AC8 46003207 */ neg.s $f8, $f6
|
||||
/* 0386CC 80037ACC C4E60208 */ lwc1 $f6, 0x208($a3)
|
||||
/* 0386D0 80037AD0 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 0386D4 80037AD4 C4EA020C */ lwc1 $f10, 0x20c($a3)
|
||||
/* 0386D8 80037AD8 46128102 */ mul.s $f4, $f16, $f18
|
||||
/* 0386DC 80037ADC 44819000 */ mtc1 $at, $f18
|
||||
/* 0386E0 80037AE0 46005407 */ neg.s $f16, $f10
|
||||
/* 0386E4 80037AE4 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000
|
||||
/* 0386E8 80037AE8 44816000 */ mtc1 $at, $f12
|
||||
/* 0386EC 80037AEC 46043200 */ add.s $f8, $f6, $f4
|
||||
/* 0386F0 80037AF0 46128182 */ mul.s $f6, $f16, $f18
|
||||
/* 0386F4 80037AF4 10000015 */ b .L80037B4C
|
||||
/* 0386F8 80037AF8 46064080 */ add.s $f2, $f8, $f6
|
||||
.L80037AFC:
|
||||
/* 0386FC 80037AFC 3C014190 */ li $at, 0x41900000 # 18.000000
|
||||
/* 038700 80037B00 44812000 */ mtc1 $at, $f4
|
||||
/* 038704 80037B04 C4E00094 */ lwc1 $f0, 0x94($a3)
|
||||
/* 038708 80037B08 3C014358 */ li $at, 0x43580000 # 216.000000
|
||||
/* 03870C 80037B0C 44819000 */ mtc1 $at, $f18
|
||||
/* 038710 80037B10 46040283 */ div.s $f10, $f0, $f4
|
||||
/* 038714 80037B14 3C014220 */ li $at, 0x42200000 # 40.000000
|
||||
/* 038718 80037B18 44813000 */ mtc1 $at, $f6
|
||||
/* 03871C 80037B1C 3C014248 */ li $at, 0x42480000 # 50.000000
|
||||
/* 038720 80037B20 C4EC0084 */ lwc1 $f12, 0x84($a3)
|
||||
/* 038724 80037B24 46005407 */ neg.s $f16, $f10
|
||||
/* 038728 80037B28 C4EA0208 */ lwc1 $f10, 0x208($a3)
|
||||
/* 03872C 80037B2C 46128202 */ mul.s $f8, $f16, $f18
|
||||
/* 038730 80037B30 C4F2020C */ lwc1 $f18, 0x20c($a3)
|
||||
/* 038734 80037B34 46064103 */ div.s $f4, $f8, $f6
|
||||
/* 038738 80037B38 44813000 */ mtc1 $at, $f6
|
||||
/* 03873C 80037B3C 46009207 */ neg.s $f8, $f18
|
||||
/* 038740 80037B40 46045400 */ add.s $f16, $f10, $f4
|
||||
/* 038744 80037B44 46064282 */ mul.s $f10, $f8, $f6
|
||||
/* 038748 80037B48 460A8080 */ add.s $f2, $f16, $f10
|
||||
.L80037B4C:
|
||||
/* 03874C 80037B4C C4E40090 */ lwc1 $f4, 0x90($a3)
|
||||
/* 038750 80037B50 44807000 */ mtc1 $zero, $f14
|
||||
/* 038754 80037B54 02002025 */ move $a0, $s0
|
||||
/* 038758 80037B58 46022480 */ add.s $f18, $f4, $f2
|
||||
/* 03875C 80037B5C E60E0004 */ swc1 $f14, 4($s0)
|
||||
/* 038760 80037B60 24E50174 */ addiu $a1, $a3, 0x174
|
||||
/* 038764 80037B64 46009207 */ neg.s $f8, $f18
|
||||
/* 038768 80037B68 46004182 */ mul.s $f6, $f8, $f0
|
||||
/* 03876C 80037B6C E6060000 */ swc1 $f6, ($s0)
|
||||
/* 038770 80037B70 C4F00094 */ lwc1 $f16, 0x94($a3)
|
||||
/* 038774 80037B74 460C8282 */ mul.s $f10, $f16, $f12
|
||||
/* 038778 80037B78 E60A0008 */ swc1 $f10, 8($s0)
|
||||
/* 03877C 80037B7C 0C0AD8EE */ jal func_802B63B8
|
||||
/* 038780 80037B80 AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* 038784 80037B84 8FA60028 */ lw $a2, 0x28($sp)
|
||||
.L80037B88:
|
||||
/* 038788 80037B88 C6040000 */ lwc1 $f4, ($s0)
|
||||
/* 03878C 80037B8C E4C40000 */ swc1 $f4, ($a2)
|
||||
/* 038790 80037B90 C6120004 */ lwc1 $f18, 4($s0)
|
||||
/* 038794 80037B94 E4D20004 */ swc1 $f18, 4($a2)
|
||||
/* 038798 80037B98 C6080008 */ lwc1 $f8, 8($s0)
|
||||
/* 03879C 80037B9C E4C80008 */ swc1 $f8, 8($a2)
|
||||
/* 0387A0 80037BA0 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0387A4 80037BA4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0387A8 80037BA8 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 0387AC 80037BAC 03E00008 */ jr $ra
|
||||
/* 0387B0 80037BB0 00000000 */ nop
|
||||
|
|
@ -9,6 +9,9 @@ typedef s16 Vec3s[3];
|
|||
typedef u16 Vec3su[3];
|
||||
typedef s16 Vec4s[4];
|
||||
|
||||
typedef f32 Mat3[3][3];
|
||||
typedef f32 Mat4[4][4];
|
||||
|
||||
#define COURSE_NULL 0xFF
|
||||
|
||||
typedef enum {
|
||||
|
|
@ -293,7 +296,7 @@ typedef struct {
|
|||
/* 0x010E */ char unk_10E[0x2];
|
||||
/* 0x0110 */ UnkActorInner unk_110;
|
||||
/* 0x0150 */ f32 unk_150[9];
|
||||
/* 0x0174 */ f32 unk_174[9];
|
||||
/* 0x0174 */ Mat3 unk_174;
|
||||
/* 0x0198 */ KartBoundingBoxCorner boundingBoxCorners[4];
|
||||
/* 0x01F8 */ f32 unk_1F8;
|
||||
/* 0x01FC */ f32 unk_1FC;
|
||||
|
|
|
|||
|
|
@ -9,15 +9,12 @@ void func_8000F2DC(void);
|
|||
void func_8000F628(void);
|
||||
void func_8000EEDC(void);
|
||||
void func_802B6540(f32* arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4);
|
||||
void func_80295BF8(s32 arg0);
|
||||
void func_8005D6C0(Player* player);
|
||||
void func_8006B7E4(Player* player, s32 arg1);
|
||||
void func_800267AC(Player* player, s8 arg1, s8 arg2);
|
||||
void func_8005D290(void);
|
||||
// TODO: should rot, arg4, and arg5 be rotx, roty, and rotz?
|
||||
void func_8001C4D0(f32 x, f32 y, f32 z, s16 rot, s16 arg4, s32 arg5);
|
||||
void func_8003DB5C(void);
|
||||
void func_8003D080(void);
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@
|
|||
#include <common_structs.h>
|
||||
#include "camera.h"
|
||||
|
||||
typedef f32 Mat4[4][4];
|
||||
typedef f32 Mat3[3][3];
|
||||
|
||||
enum SpTaskState {
|
||||
SPTASK_STATE_NOT_STARTED,
|
||||
SPTASK_STATE_RUNNING,
|
||||
|
|
|
|||
106
progress.py
106
progress.py
|
|
@ -65,27 +65,32 @@ TotalMipsToCFunctions = len(CountMipsToCFunctions(GetFiles("src", ".c")) if not
|
|||
TotalNonMatchingFunctions = len(CountNonMatchingFunctions(GetFiles("src", ".c")) if not args.matching else [])
|
||||
|
||||
mainSegFiles2 = [
|
||||
"asm/non_matchings/crash_screen", "asm/non_matchings/code_80004740",
|
||||
"asm/non_matchings/staff_ghosts", "asm/non_matchings/code_80005FD0",
|
||||
"asm/non_matchings/code_8001C4D0", "asm/non_matchings/code_8001F980",
|
||||
"asm/non_matchings/code_80027040", "asm/non_matchings/code_80027D00",
|
||||
"asm/non_matchings/code_800393C0", "asm/non_matchings/code_8003DC40",
|
||||
"asm/non_matchings/code_80040E50", "asm/non_matchings/code_800431B0",
|
||||
"asm/non_matchings/code_80057C60", "asm/non_matchings/code_8006E9C0",
|
||||
"asm/non_matchings/code_80071F00", "asm/non_matchings/code_80086E70",
|
||||
"asm/non_matchings/code_8008C1D0", "asm/non_matchings/code_80091750",
|
||||
"asm/non_matchings/menus"
|
||||
]
|
||||
"asm/non_matchings/code_80004740",
|
||||
"asm/non_matchings/code_80005FD0",
|
||||
"asm/non_matchings/code_8001F980",
|
||||
"asm/non_matchings/code_80027D00",
|
||||
"asm/non_matchings/code_800431B0",
|
||||
"asm/non_matchings/code_80057C60",
|
||||
"asm/non_matchings/code_8006E9C0",
|
||||
"asm/non_matchings/code_80071F00",
|
||||
"asm/non_matchings/code_80086E70",
|
||||
"asm/non_matchings/code_8008C1D0",
|
||||
"asm/non_matchings/code_80091750",
|
||||
"asm/non_matchings/crash_screen",
|
||||
"asm/non_matchings/menus",
|
||||
"asm/non_matchings/staff_ghosts",
|
||||
]
|
||||
seg2Files2 = [
|
||||
"asm/non_matchings/code_8028DF00", "asm/non_matchings/code_80290C20",
|
||||
"asm/non_matchings/code_actors", "asm/non_matchings/code_802A3730",
|
||||
"asm/non_matchings/memory", "asm/non_matchings/code_802B0210",
|
||||
"asm/non_matchings/math_util"
|
||||
"asm/non_matchings/actors",
|
||||
"asm/non_matchings/math_util",
|
||||
"asm/non_matchings/memory",
|
||||
"asm/non_matchings/race_logic",
|
||||
"asm/non_matchings/render_courses",
|
||||
"asm/non_matchings/skybox",
|
||||
]
|
||||
seg3Files2 = [
|
||||
"asm/non_matchings/code_80280000", "asm/non_matchings/code_80280650",
|
||||
"asm/non_matchings/code_80281610", "asm/non_matchings/code_80281780",
|
||||
"asm/non_matchings/code_80281C40", "asm/non_matchings/code_80281FA0"
|
||||
"asm/non_matchings/code_80280650",
|
||||
"asm/non_matchings/code_80281FA0",
|
||||
]
|
||||
audioFiles2 = [
|
||||
"asm/non_matchings/audio"
|
||||
|
|
@ -148,35 +153,54 @@ audio = 0
|
|||
libultra = 0
|
||||
|
||||
mainSegFiles = [
|
||||
"build/us/src/main", "build/us/src/code_800029B0",
|
||||
"build/us/src/profiler", "build/us/src/crash_screen",
|
||||
"build/us/src/code_80004740", "build/us/src/staff_ghosts",
|
||||
"build/us/src/code_800029B0",
|
||||
"build/us/src/code_80004740",
|
||||
"build/us/src/code_80005FD0",
|
||||
"build/us/src/code_8001C4D0", "build/us/src/code_8001F980",
|
||||
"build/us/src/code_80027040", "build/us/src/code_80027D00",
|
||||
"build/us/src/code_800393C0", "build/us/src/code_8003DC40",
|
||||
"build/us/src/gbiMacro", "build/us/src/code_80040E50",
|
||||
"build/us/src/code_800431B0", "build/us/src/code_80057C60",
|
||||
"build/us/src/code_8006E9C0", "build/us/src/code_80071F00",
|
||||
"build/us/src/code_80086E70", "build/us/src/code_8008C1D0",
|
||||
"build/us/src/code_80091750", "build/us/src/code_800AF9B0"
|
||||
]
|
||||
"build/us/src/code_8001F980",
|
||||
"build/us/src/code_80027D00",
|
||||
"build/us/src/code_800431B0",
|
||||
"build/us/src/code_80057C60",
|
||||
"build/us/src/code_8006E9C0",
|
||||
"build/us/src/code_80071F00",
|
||||
"build/us/src/code_80086E70",
|
||||
"build/us/src/code_8008C1D0",
|
||||
"build/us/src/code_80091750",
|
||||
"build/us/src/code_800AF9B0",
|
||||
"build/us/src/crash_screen",
|
||||
"build/us/src/gbiMacro",
|
||||
"build/us/src/kart_dma",
|
||||
"build/us/src/main",
|
||||
"build/us/src/math_util_2",
|
||||
"build/us/src/profiler",
|
||||
"build/us/src/spawn_players",
|
||||
"build/us/src/staff_ghosts",
|
||||
]
|
||||
seg2Files = [
|
||||
"build/us/src/code_8028DF00", "build/us/src/code_80290C20",
|
||||
"build/us/src/code_80296A50", "build/us/src/code_802A3730",
|
||||
"build/us/src/memory", "build/us/src/code_802B0210",
|
||||
"build/us/src/math_util"
|
||||
"build/us/src/actors",
|
||||
"build/us/src/actors_extended",
|
||||
"build/us/src/math_util",
|
||||
"build/us/src/memory",
|
||||
"build/us/src/race_logic",
|
||||
"build/us/src/render_courses",
|
||||
"build/us/src/skybox_and_splitscreen",
|
||||
]
|
||||
seg3Files = [
|
||||
"build/us/src/code_80280000", "build/us/src/code_80280650",
|
||||
"build/us/src/code_80281610", "build/us/src/code_80281780",
|
||||
"build/us/src/code_80281C40", "build/us/src/code_80281FA0"
|
||||
"build/us/src/camera_junk",
|
||||
"build/us/src/code_80280000",
|
||||
"build/us/src/code_80280650",
|
||||
"build/us/src/code_80281780",
|
||||
"build/us/src/code_80281C40",
|
||||
"build/us/src/code_80281FA0",
|
||||
]
|
||||
segAudioFiles = [
|
||||
"build/us/src/audio/synthesis", "build/us/src/audio/heap",
|
||||
"build/us/src/audio/load", "build/us/src/audio/playback",
|
||||
"build/us/src/audio/effects", "build/us/src/audio/seqplayer",
|
||||
"build/us/src/audio/external", "build/us/src/audio/port_eu"
|
||||
"build/us/src/audio/effects",
|
||||
"build/us/src/audio/external",
|
||||
"build/us/src/audio/heap",
|
||||
"build/us/src/audio/load",
|
||||
"build/us/src/audio/playback",
|
||||
"build/us/src/audio/port_eu",
|
||||
"build/us/src/audio/seqplayer",
|
||||
"build/us/src/audio/synthesis",
|
||||
]
|
||||
|
||||
for line in mapFile:
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ s32 D_802BA058;
|
|||
struct Actor *D_802BA05C;
|
||||
s8 D_802BA060[512]; // tlut 256
|
||||
u16 D_802BA260;
|
||||
extern u16 gNumActors;
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit a8f43e46d33dcb7e04d9cdc44a10b3daf4c92c3b
|
||||
|
|
@ -1560,8 +1559,6 @@ void func_8029A75C(Camera *arg0, Mat4 arg1, struct ShellActor *arg2) {
|
|||
func_8029A3AC(arg0, arg1, arg2);
|
||||
}
|
||||
|
||||
extern s8 D_0D004E68[];
|
||||
|
||||
// Middle of a tlut access
|
||||
void func_8029A828(Camera *arg0, Mat4 arg1, struct ShellActor *arg2) {
|
||||
gDPLoadTLUT_pal256(gDisplayListHead++, &D_0D004E68[0x1D0]);
|
||||
|
|
|
|||
10
src/actors.h
10
src/actors.h
|
|
@ -31,6 +31,8 @@ void func_80298328(Camera*, Mat4, struct PiranhaPlant*);
|
|||
void func_802986B4(Camera*, Mat4, struct Actor*);
|
||||
void func_80298AC0(Player*);
|
||||
void func_80298D7C(Camera*, Mat4, struct Actor*);
|
||||
void func_80298C94();
|
||||
void func_80298D10();
|
||||
void func_80299144(Camera*, Mat4, struct Actor*);
|
||||
void func_8029930C(Camera*, Mat4, struct Actor*);
|
||||
void func_802994D4(Camera*, Mat4, struct Actor*);
|
||||
|
|
@ -53,6 +55,7 @@ void update_obj_railroad_crossing(struct RailroadCrossing*);
|
|||
void update_obj_mario_raceway_sign(struct Actor*);
|
||||
void func_8029ABD4(Vec3f, s16);
|
||||
void func_8029AC18(Camera*, Mat4, struct Actor*);
|
||||
void func_8029AE14();
|
||||
void func_8029AE1C(Camera*, struct PaddleWheelBoat*, Mat4, u16);
|
||||
void func_8029B06C(Camera*, struct Actor*);
|
||||
void func_8029B2E4(Camera*, struct Actor*);
|
||||
|
|
@ -110,6 +113,13 @@ extern void func_800C90F4(u8, uintptr_t);
|
|||
extern void func_800C99E0(Vec3f, s32);
|
||||
extern void func_800C9D80(Vec3f, Vec3f, u32);
|
||||
|
||||
extern s32 D_802BA050;
|
||||
extern s32 D_802BA054;
|
||||
extern s32 D_802BA058;
|
||||
extern struct Actor *D_802BA05C;
|
||||
extern s8 D_802BA060[512]; // tlut 256
|
||||
extern u16 D_802BA260;
|
||||
|
||||
extern struct Actor gActorList[];
|
||||
extern Player gPlayers[];
|
||||
extern u16 gNumActors;
|
||||
|
|
|
|||
|
|
@ -5,16 +5,21 @@
|
|||
|
||||
void play_sound2(s32);
|
||||
void func_800C8EAC(u16);
|
||||
void func_800C8EF8();
|
||||
void func_800C90F4(u8, uintptr_t);
|
||||
void func_800CA008(u8, u8);
|
||||
void func_800CA0A0();
|
||||
void func_800CA0B8();
|
||||
void func_800CA0CC();
|
||||
void func_800CA118();
|
||||
void func_800CA270();
|
||||
void func_800CA330();
|
||||
void func_800CA330(s32);
|
||||
void func_800CA388();
|
||||
void func_800CA388(s32);
|
||||
void func_800CA49C();
|
||||
void func_800CB134();
|
||||
void func_800CB2C4(void);
|
||||
void func_800C90F4(u8, uintptr_t);
|
||||
|
||||
extern s8 D_800EA0F4;
|
||||
extern s8 D_800EA108;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,9 @@
|
|||
#include <macros.h>
|
||||
#include <common_structs.h>
|
||||
#include "camera.h"
|
||||
#include "camera_junk.h"
|
||||
#include "math_util.h"
|
||||
|
||||
// guPerspective params
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
extern f32 D_80150130[];
|
||||
|
||||
void setup_camera_ending_sequence(void) {
|
||||
Camera *camera;
|
||||
f32 x_dist;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef CAMERA_JUNK_H
|
||||
#define CAMERA_JUNK_H
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void setup_camera_ending_sequence();
|
||||
void func_802816B8();
|
||||
|
||||
// guPerspective params
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
extern f32 D_80150130[];
|
||||
|
||||
#endif
|
||||
|
|
@ -5,9 +5,11 @@
|
|||
#include "waypoints.h"
|
||||
#include "actors.h"
|
||||
#include "actor_types.h"
|
||||
#include "math_util.h"
|
||||
#include "audio/external.h"
|
||||
#include "code_800029B0.h"
|
||||
#include <defines.h>
|
||||
|
||||
extern void func_800C8F44(u16 arg0);
|
||||
extern u16 D_800DC5A8;
|
||||
|
||||
extern struct Controller *gControllerOne[];
|
||||
|
|
@ -34,13 +36,9 @@ extern u32 D_8015F734;
|
|||
extern u32 gPrevLoadedAddress;
|
||||
extern s32 D_80150120;
|
||||
|
||||
void func_800CA008(u8, u8);
|
||||
|
||||
extern f32 D_8015F738, D_8015F748, D_8015F758, D_8015F768, D_8015F778;
|
||||
extern u32 *D_802B91C8;
|
||||
|
||||
void vec3f_set(f32 *, f32, f32, f32);
|
||||
|
||||
// gfx?
|
||||
extern u32 *D_0F04FE28;
|
||||
extern u32 *D_0F050118;
|
||||
|
|
@ -77,7 +75,7 @@ struct UnkStruct_800DC5EC *D_800DC5F0 = &D_8015F480[1];
|
|||
struct UnkStruct_800DC5EC *D_800DC5F4 = &D_8015F480[2];
|
||||
struct UnkStruct_800DC5EC *D_800DC5F8 = &D_8015F480[3];
|
||||
u16 D_800DC5FC = 0;
|
||||
uintptr_t *pAppNmiBuffer = &osAppNmiBuffer;
|
||||
u8 *pAppNmiBuffer = &osAppNmiBuffer;
|
||||
s32 gIsMirrorMode = 0;
|
||||
f32 D_800DC608 = 1.0f;
|
||||
Lights1 D_800DC610[] = {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef CODE_800029B0_H
|
||||
#define CODE_800029B0_H
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_800029B0();
|
||||
void setup_race();
|
||||
void func_80002DAC();
|
||||
void clear_nmi_buffer();
|
||||
void func_80003040();
|
||||
|
||||
// audio/external
|
||||
|
||||
void func_800C8F44(u16 arg0);
|
||||
|
||||
#endif
|
||||
|
|
@ -2,10 +2,8 @@
|
|||
#include <macros.h>
|
||||
#include <types.h>
|
||||
#include <mk64.h>
|
||||
#include "trig_tables.h"
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
#include "math_util.h"
|
||||
#include "code_80004740.h"
|
||||
|
||||
void func_80004740(Mtx *dest, Mat4 src) {
|
||||
#ifdef AVOID_UB
|
||||
|
|
@ -27,10 +25,6 @@ void func_80004740(Mtx *dest, Mat4 src) {
|
|||
#endif
|
||||
}
|
||||
|
||||
extern f32 sins(u16);
|
||||
extern f32 coss(u16);
|
||||
|
||||
|
||||
void func_800048D8(Mat4 dest, Vec3f b, Vec3s c) {
|
||||
register f32 sx = sins(c[0]);
|
||||
register f32 cx = coss(c[0]);
|
||||
|
|
@ -63,139 +57,95 @@ void func_800048D8(Mat4 dest, Vec3f b, Vec3s c) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_80004740(void *, ? *); // extern
|
||||
? func_800048D8(? *, ? *, ? *); // extern
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern ? D_80162D70;
|
||||
extern s16 D_80162D76;
|
||||
extern s16 D_80162D7A;
|
||||
extern s32 D_8018D120;
|
||||
extern void *gDisplayListHead;
|
||||
|
||||
void func_80004A1C(void *arg0, s32 arg1, void *arg2, s32 arg3) {
|
||||
? sp94;
|
||||
f32 sp94;
|
||||
? sp92;
|
||||
? sp8C;
|
||||
? sp4C;
|
||||
s16 sp8C;
|
||||
u32 sp3C;
|
||||
? *temp_v0;
|
||||
? *temp_v1_3;
|
||||
Gfx *temp_v1;
|
||||
Gfx *temp_v1_2;
|
||||
f32 *var_v0;
|
||||
f32 *var_v0_2;
|
||||
f32 temp_f18;
|
||||
s16 *var_v1_3;
|
||||
s16 temp_t0;
|
||||
s16 temp_t9;
|
||||
s16 temp_t9_2;
|
||||
s32 temp_t4;
|
||||
s32 temp_t4_2;
|
||||
s32 temp_t8;
|
||||
s32 temp_t8_2;
|
||||
s32 temp_v0_4;
|
||||
void *temp_a0;
|
||||
void *temp_a0_2;
|
||||
void *temp_v0_2;
|
||||
void *temp_v0_3;
|
||||
void *temp_v1;
|
||||
void *temp_v1_2;
|
||||
void *temp_v1_4;
|
||||
void *temp_v1_5;
|
||||
s32 phi_t8;
|
||||
s16 phi_t9;
|
||||
? *phi_v0;
|
||||
void *phi_a0;
|
||||
s32 phi_t8_2;
|
||||
s16 phi_t9_2;
|
||||
? *phi_v0_2;
|
||||
s32 phi_t4;
|
||||
void *phi_v0_3;
|
||||
s32 phi_t4_2;
|
||||
void *phi_v0_4;
|
||||
void *phi_v0_5;
|
||||
s32 phi_a0_2;
|
||||
? *phi_v1;
|
||||
void *phi_v1_2;
|
||||
void *phi_v1_3;
|
||||
s16 temp_t3;
|
||||
s16 var_t9;
|
||||
s32 temp_v0;
|
||||
s32 var_a0_2;
|
||||
s32 var_t4;
|
||||
s32 var_t8;
|
||||
void *var_a0;
|
||||
void *var_v0_3;
|
||||
void *var_v1;
|
||||
void *var_v1_2;
|
||||
|
||||
temp_t0 = D_80162D76;
|
||||
sp3C = arg0->unkC;
|
||||
if (temp_t0 == 0) {
|
||||
temp_a0 = &D_80162D70 + 2;
|
||||
temp_t9 = temp_a0->unk-2;
|
||||
temp_t8 = arg0->unk10;
|
||||
phi_t8 = temp_t8;
|
||||
phi_t9 = temp_t9;
|
||||
phi_v0 = &sp94;
|
||||
phi_a0 = temp_a0;
|
||||
phi_t8_2 = temp_t8;
|
||||
phi_t9_2 = temp_t9;
|
||||
phi_v0_2 = &sp94;
|
||||
phi_v1_2 = arg0;
|
||||
if (temp_a0 != &D_80162D76) {
|
||||
var_v1 = arg0;
|
||||
var_v0 = &sp94;
|
||||
var_a0 = &D_80162D70 + 2;
|
||||
var_t9 = var_a0->unk-2;
|
||||
var_t8 = var_v1->unk10;
|
||||
if (var_a0 != &D_80162D76) {
|
||||
do {
|
||||
temp_a0_2 = phi_a0 + 2;
|
||||
temp_v0 = phi_v0 + 4;
|
||||
temp_v1 = phi_v1_2 + 4;
|
||||
temp_t9_2 = temp_a0_2->unk-2;
|
||||
temp_v0->unk-4 = phi_t8 + phi_t9;
|
||||
temp_t8_2 = temp_v1->unk10;
|
||||
phi_t8 = temp_t8_2;
|
||||
phi_t9 = temp_t9_2;
|
||||
phi_v0 = temp_v0;
|
||||
phi_a0 = temp_a0_2;
|
||||
phi_t8_2 = temp_t8_2;
|
||||
phi_t9_2 = temp_t9_2;
|
||||
phi_v0_2 = temp_v0;
|
||||
phi_v1_2 = temp_v1;
|
||||
} while (temp_a0_2 != &D_80162D76);
|
||||
var_a0 += 2;
|
||||
var_v0 += 4;
|
||||
temp_f18 = (f32) (var_t8 + var_t9);
|
||||
var_v1 += 4;
|
||||
var_t9 = var_a0->unk-2;
|
||||
var_v0->unk-4 = temp_f18;
|
||||
var_t8 = var_v1->unk10;
|
||||
} while (var_a0 != &D_80162D76);
|
||||
}
|
||||
(phi_v0_2 + 4)->unk-4 = phi_t8_2 + phi_t9_2;
|
||||
(var_v0 + 4)->unk-4 = (f32) (var_t8 + var_t9);
|
||||
D_80162D76 = temp_t0 + 1;
|
||||
} else {
|
||||
temp_v0_2 = &sp94 + 4;
|
||||
temp_t4 = arg0->unk10;
|
||||
phi_t4 = temp_t4;
|
||||
phi_v0_3 = temp_v0_2;
|
||||
phi_t4_2 = temp_t4;
|
||||
phi_v0_4 = temp_v0_2;
|
||||
phi_v1_3 = arg0;
|
||||
if (temp_v0_2 != &arg0) {
|
||||
var_v1_2 = arg0;
|
||||
var_v0_2 = &sp94 + 4;
|
||||
var_t4 = var_v1_2->unk10;
|
||||
if (var_v0_2 != &arg0) {
|
||||
do {
|
||||
temp_v0_3 = phi_v0_3 + 4;
|
||||
temp_v1_2 = phi_v1_3 + 4;
|
||||
temp_v0_3->unk-8 = phi_t4;
|
||||
temp_t4_2 = temp_v1_2->unk10;
|
||||
phi_t4 = temp_t4_2;
|
||||
phi_v0_3 = temp_v0_3;
|
||||
phi_t4_2 = temp_t4_2;
|
||||
phi_v0_4 = temp_v0_3;
|
||||
phi_v1_3 = temp_v1_2;
|
||||
} while (temp_v0_3 != &arg0);
|
||||
var_v0_2 += 4;
|
||||
var_v1_2 += 4;
|
||||
var_v0_2->unk-8 = (f32) var_t4;
|
||||
var_t4 = var_v1_2->unk10;
|
||||
} while (var_v0_2 != &arg0);
|
||||
}
|
||||
phi_v0_4->unk-4 = phi_t4_2;
|
||||
var_v0_2->unk-4 = (f32) var_t4;
|
||||
}
|
||||
phi_v0_5 = arg2;
|
||||
phi_v1 = &sp8C;
|
||||
var_v0_3 = arg2;
|
||||
var_v1_3 = &sp8C;
|
||||
do {
|
||||
phi_a0_2 = 0;
|
||||
if (arg3 < phi_v0_5->unk0) {
|
||||
phi_a0_2 = arg3;
|
||||
var_a0_2 = 0;
|
||||
if (arg3 < (s32) var_v0_3->unk0) {
|
||||
var_a0_2 = arg3;
|
||||
}
|
||||
temp_v1_3 = phi_v1 + 2;
|
||||
temp_v1_3->unk-2 = *(arg1 + (phi_v0_5->unk2 * 2) + (phi_a0_2 * 2));
|
||||
phi_v0_5 += 4;
|
||||
phi_v1 = temp_v1_3;
|
||||
} while (temp_v1_3 != &sp92);
|
||||
func_800048D8(&sp4C, &sp94, &sp8C);
|
||||
func_80004740(gGfxPool + (D_8018D120 << 6) + 0x2C0, &sp4C);
|
||||
temp_v1_4 = gDisplayListHead;
|
||||
D_80162D7A = D_80162D7A + 1;
|
||||
gDisplayListHead = temp_v1_4 + 8;
|
||||
temp_v1_4->unk0 = 0x1040040;
|
||||
temp_v1_4->unk4 = gGfxPool + (D_8018D120 << 6) + 0x800002C0;
|
||||
D_8018D120 = D_8018D120 + 1;
|
||||
var_v1_3 += 2;
|
||||
temp_t3 = *(arg1 + (var_v0_3->unk2 * 2) + (var_a0_2 * 2));
|
||||
var_v0_3 += 4;
|
||||
var_v1_3->unk-2 = temp_t3;
|
||||
} while (var_v1_3 != &sp92);
|
||||
func_800048D8((f32 (*)[4]) &sp4C[0], &sp94, &sp8C);
|
||||
func_80004740(&gGfxPool->mtxPool[D_8018D120] + 0x2C0, (f32 (*)[4]) &sp4C[0]);
|
||||
temp_v1 = gDisplayListHead;
|
||||
D_80162D7A += 1;
|
||||
gDisplayListHead = temp_v1 + 8;
|
||||
temp_v1->words.w0 = 0x01040040;
|
||||
temp_v1->words.w1 = (u32) (&gGfxPool->mtxPool[D_8018D120] + 0x800002C0);
|
||||
D_8018D120 += 1;
|
||||
if (sp3C != 0) {
|
||||
temp_v0_4 = lookup_item(sp3C);
|
||||
temp_v1_5 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v1_5 + 8;
|
||||
temp_v1_5->unk4 = temp_v0_4;
|
||||
temp_v1_5->unk0 = 0x6000000;
|
||||
temp_v0 = lookup_item(sp3C);
|
||||
temp_v1_2 = gDisplayListHead;
|
||||
gDisplayListHead = temp_v1_2 + 8;
|
||||
temp_v1_2->words.w1 = (u32) temp_v0;
|
||||
temp_v1_2->words.w0 = 0x06000000;
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
#ifndef CODE_80004740_H
|
||||
#define CODE_80004740_H
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_80004740(Mtx *dest, Mat4 src);
|
||||
void func_800048D8(Mat4 dest, Vec3f b, Vec3s c);
|
||||
|
||||
#endif
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "common_structs.h"
|
||||
#include "vehicles.h"
|
||||
#include "waypoints.h"
|
||||
|
||||
// TODO: This header is missing some function prototypes
|
||||
|
||||
|
|
@ -12,12 +13,14 @@ s16 func_80005FD0(Vec3f, Vec3f);
|
|||
s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_80006114(Vec3f, Vec3f, s16);
|
||||
s32 func_800061DC(Vec3f, f32, s32);
|
||||
void func_800074D4();
|
||||
s32 func_80007BF8(u16, u16, u16, u16, u16);
|
||||
void func_80008DC0(s32);
|
||||
s32 func_80008E58(s32, s32);
|
||||
void func_80008F38(s32);
|
||||
void func_80009000(s32);
|
||||
void func_800090F0(s32, Player*);
|
||||
void func_80009B60(s32);
|
||||
s32 func_8000B7E4(s32, u16);
|
||||
s32 func_8000B820(s32);
|
||||
f32 func_8000B874(f32, f32, u16, s32);
|
||||
|
|
@ -33,11 +36,11 @@ s16 func_8000CD24(f32, f32, f32, s16, Player*, s32, s32);
|
|||
s16 func_8000D24C(f32, f32, f32, s32*);
|
||||
s16 func_8000D2B4(f32, f32, f32, s16, s32);
|
||||
s16 func_8000D33C(f32, f32, f32, s16, s32);
|
||||
s16 func_8000D6D0(Vec3f, s16 *, f32, f32, s32, s32);
|
||||
s16 func_8000D940(Vec3f, s16 *, f32, f32, s32);
|
||||
s16 func_8000D6D0(Vec3f, s16*, f32, f32, s32, s32);
|
||||
s16 func_8000D940(Vec3f, s16*, f32, f32, s32);
|
||||
s16 func_8000DBAC(Vec3f, s16*, f32);
|
||||
void func_8000F0E0(void);
|
||||
void func_8000F124(void);
|
||||
void func_8000F0E0();
|
||||
void func_8000F124();
|
||||
void func_80010218(s32);
|
||||
f32 func_80010480(s32, u16);
|
||||
void func_800107C4(s32);
|
||||
|
|
@ -67,6 +70,7 @@ void func_80014CC0(s32, Player*);
|
|||
void func_80014D08(s32);
|
||||
void func_80014D30(s32, s32);
|
||||
void func_8001968C();
|
||||
void func_8001C05C();
|
||||
void func_8001C3C4(s32);
|
||||
|
||||
/* This is where I'd put my static data, if I had any */
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -4,16 +4,21 @@
|
|||
#include "types.h"
|
||||
#include "common_structs.h"
|
||||
|
||||
#define SOME_TEXTURE_POINTER_MATH 0x800
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_8001F980(s32*, s32*);
|
||||
void func_8001F9E4(Player*, Camera*, s8);
|
||||
u16 func_8001FB0C(Player*, Camera*, f32, f32);
|
||||
u16 func_8001FD78(Player*, f32, f32, f32);
|
||||
void func_80020000(Player*, Camera*, u8, u8);
|
||||
void func_8002088C();
|
||||
void func_80020F1C();
|
||||
void func_80020524();
|
||||
void func_80021244(Player*, s8, s8);
|
||||
void func_800215DC();
|
||||
void func_8002186C();
|
||||
void func_800219BC();
|
||||
void func_80021C78();
|
||||
void func_80021D40();
|
||||
|
|
@ -29,21 +34,59 @@ void move_s32_towards(s32*, s32, f32);
|
|||
void move_f32_towards(f32*, f32, f32);
|
||||
void move_s16_towards(s16*, s16, f32);
|
||||
void move_u16_towards(u16*, s16, f32);
|
||||
void func_80022744();
|
||||
void func_8002276C();
|
||||
void func_80022A98(Player*, s8);
|
||||
void func_80022B50(Player*, s8);
|
||||
void func_80022BC4(Player*, s8);
|
||||
void func_80022CA8(Player*, s8, s8, s8);
|
||||
void func_80022D60(Player*, s8, s8, s8);
|
||||
void func_80022DB4(Player*, s8);
|
||||
void func_80022E84(Player*, s8, s8, s8);
|
||||
void func_80022F14(Player*, s8, s32, f32);
|
||||
void func_80023038(Player*, s8, s32, f32);
|
||||
s32 func_800230E4(s32, s8);
|
||||
void func_800231D8(Player*, s8);
|
||||
void func_800235AC(Player*, s8);
|
||||
void func_80023BF0(Player*, s8, s8, s8);
|
||||
void func_80023C84(Player*, s8, s8);
|
||||
void func_80026A48(Player*, s8);
|
||||
void func_80030A34(Player*);
|
||||
void func_8002701C();
|
||||
void func_80027024(s32, s32, s32);
|
||||
|
||||
/* This is where I'd put my static data, if I had any */
|
||||
|
||||
extern u16 D_800DC51C;
|
||||
extern s32 D_800DDB58;
|
||||
extern f64 D_800ED680;
|
||||
extern f64 D_800ED688;
|
||||
extern s32 D_80164A28;
|
||||
extern u16 D_8015F894;
|
||||
|
||||
extern s32 D_80164A28;
|
||||
extern s16 D_80164AAE[];
|
||||
extern s16 D_80164AB0[];
|
||||
extern s16 D_80164ABE[];
|
||||
extern s16 D_80164AC0[];
|
||||
extern s32 D_80164AD0[];
|
||||
extern u16 D_80164B10[];
|
||||
extern u16 D_80164B20[];
|
||||
extern u16 D_80164B30[];
|
||||
extern u16 D_80164B40[];
|
||||
extern u16 D_80164B50[];
|
||||
extern u16 D_80164B60[];
|
||||
extern s32 D_80164B80[];
|
||||
|
||||
extern u32 D_8018D474;
|
||||
extern s32 D_8018D930[];
|
||||
|
||||
extern Gfx D_0D008C78[];
|
||||
extern Gfx D_0D008D58[];
|
||||
|
||||
extern u16 D_800DC51C;
|
||||
extern s32 D_800DDB58;
|
||||
extern Vtx *D_800DDBB4[];
|
||||
extern f32 D_800DDBD4[];
|
||||
extern s32 D_800DDE74[];
|
||||
extern Vtx D_800E51D0[];
|
||||
extern f64 D_800ED680;
|
||||
extern f64 D_800ED688;
|
||||
extern f32 D_800ED6A8;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
3982
src/code_80027D00.c
3982
src/code_80027D00.c
File diff suppressed because it is too large
Load Diff
|
|
@ -2,6 +2,7 @@
|
|||
#define CODE_80027D00_H
|
||||
|
||||
#include "common_structs.h"
|
||||
#include "camera.h"
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
|
|
@ -16,6 +17,7 @@ void func_800291F8();
|
|||
void func_80029200(Player*, s8);
|
||||
void func_8002934C(Player*, Camera*, s8, s8);
|
||||
void func_8002A5F4(Vec3f, f32, Vec3f, f32, f32);
|
||||
void func_8002AA50(Player*);
|
||||
void func_8002AAC0(Player*);
|
||||
void func_8002AB70(Player*);
|
||||
void func_8002AE20();
|
||||
|
|
@ -34,6 +36,10 @@ void func_80032D94(Player*);
|
|||
void func_80033280(Player*, f32);
|
||||
void func_80033850(Player*, f32);
|
||||
void func_80036C5C(Player*);
|
||||
void func_80037614(Player*, Vec3f, Vec3f);
|
||||
void func_8003777C(Player*, Vec3f, Vec3f);
|
||||
void func_800378E8(Player*, Vec3f, Vec3f);
|
||||
void func_80037A4C(Player*, Vec3f, Vec3f);
|
||||
void func_80038BE4(Player*, s16);
|
||||
|
||||
/* This is where I'd put my static data, if I had any */
|
||||
|
|
|
|||
|
|
@ -164,20 +164,15 @@ void func_8004B180(s32, s32, s32, s32);
|
|||
void func_8004B1C8(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004B254(s32, s32, s32);
|
||||
void func_8004B2BC(s32);
|
||||
void func_8004B2BC(s32);
|
||||
void func_8004B310(s32);
|
||||
void func_8004B35C(s32, s32, s32, s32);
|
||||
void func_8004B35C(s32,s32,s32,s32);
|
||||
void func_8004B3C8(s32);
|
||||
void func_8004B414(s32, s32, s32, s32);
|
||||
void func_8004B414(s32,s32,s32,s32);
|
||||
void func_8004B480(s32, s32, s32);
|
||||
void func_8004B4E8(s32, s32, s32, s32);
|
||||
void func_8004B554(s32);
|
||||
void func_8004B5A8(s32, s32, s32, s32);
|
||||
void func_8004B614(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004B614(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004B6C4(s32, s32, s32);
|
||||
void func_8004B6C4(s32, s32, s32);
|
||||
void func_8004B72C(s32, s32, s32, s32, s32, s32, s32);
|
||||
void func_8004B950(s32, s32, s32, s32, s32);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ void func_8005AB20();
|
|||
void func_8005B914();
|
||||
|
||||
void func_8005C360(f32);
|
||||
void func_8005C64C(s32);
|
||||
void func_8005C6B4(s8, s16*, s16*, s16*);
|
||||
void func_8005C728();
|
||||
void func_8005CB60(s32, s32);
|
||||
|
|
|
|||
|
|
@ -119,7 +119,6 @@ void func_80075F98(Vec3f, s32, f32);
|
|||
void func_8007601C(s32);
|
||||
void func_80076194(s32, Vec3f, f32, s32);
|
||||
void func_80076538(s32);
|
||||
void func_80086604();
|
||||
void func_8007675C(s32, Vec3s, s32);
|
||||
void func_80076B7C();
|
||||
void func_80076DC4(s32);
|
||||
|
|
@ -133,6 +132,7 @@ void func_80077B3C(s32);
|
|||
void func_80077BCC(s32);
|
||||
void func_80078C68();
|
||||
void func_80078C70(s32);
|
||||
void func_80078F64();
|
||||
void func_80079054(s32);
|
||||
void func_80079084(s32);
|
||||
void func_800790B4(s32);
|
||||
|
|
@ -182,6 +182,7 @@ void func_80085080(s32);
|
|||
void func_80085534(s32);
|
||||
void func_80085BB4(s32);
|
||||
void func_80086424(s32);
|
||||
void func_80086604();
|
||||
void func_80086D80();
|
||||
|
||||
// audio/external.c
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "kart_attributes.h"
|
||||
#include "waypoints.h"
|
||||
#include "code_80005FD0.h"
|
||||
#include "code_8001F980.h"
|
||||
#include "code_80027D00.h"
|
||||
|
|
@ -336,18 +337,11 @@ void func_8008C8C4(Player* player, s8 arg1) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? func_80031F48(void *, ?); /* extern */
|
||||
? func_8006B8B4(void *, s8, ? *); /* extern */
|
||||
? func_8008C8C4(void *, s8); /* extern */
|
||||
extern ? D_80165460;
|
||||
extern ? D_80165480;
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern ? D_8018D920;
|
||||
extern s32 gModeSelection;
|
||||
static ? D_800E6F60; /* unable to generate initializer; const */
|
||||
static ? D_800E6F60; /* unable to generate initializer */
|
||||
|
||||
void func_8008C9EC(void *arg0, s8 arg1) {
|
||||
? sp30;
|
||||
void func_8008C9EC(Player *player, s8 arg1) {
|
||||
s16 *temp_a0;
|
||||
s16 *temp_a0_2;
|
||||
s16 *temp_v0;
|
||||
|
|
@ -356,63 +350,61 @@ void func_8008C9EC(void *arg0, s8 arg1) {
|
|||
s16 temp_t8;
|
||||
s16 temp_v1;
|
||||
s16 temp_v1_2;
|
||||
s32 temp_t7_2;
|
||||
|
||||
sp30.unk0 = D_800E6F60.unk0;
|
||||
sp30.unk4 = D_800E6F60.unk4;
|
||||
sp30.unk8 = D_800E6F60.unk8;
|
||||
arg0->unk206 = 0;
|
||||
arg0->unkC4 = 0;
|
||||
if ((arg0->unk46 & 0x40) == 0x40) {
|
||||
func_80031F48(0x42C80000);
|
||||
sp30[0].unk0 = (s32) D_800E6F60.unk0;
|
||||
sp30[0].unk4 = (s32) D_800E6F60.unk4;
|
||||
sp30[0].unk8 = (u16) D_800E6F60.unk8;
|
||||
player->unk_206 = 0;
|
||||
player->unk_0C4 = 0;
|
||||
if ((player->unk_046 & 0x40) == 0x40) {
|
||||
func_80031F48(player, 100.0f);
|
||||
} else {
|
||||
if ((arg0->unk0 & 0x4000) == 0x4000) {
|
||||
func_80031F48(arg0, 0x3F800000);
|
||||
if ((player->unk_000 & 0x4000) == 0x4000) {
|
||||
func_80031F48(player, 1.0f);
|
||||
} else {
|
||||
func_80031F48(arg0, 0x40800000);
|
||||
func_80031F48(player, 4.0f);
|
||||
}
|
||||
if ((arg0->unk0 & 0x4000) == 0) {
|
||||
func_80031F48(arg0, 0x41F00000);
|
||||
if (!(player->unk_000 & 0x4000)) {
|
||||
func_80031F48(player, 30.0f);
|
||||
}
|
||||
}
|
||||
if ((arg0->unkBC & 0x80) == 0x80) {
|
||||
temp_a0 = &sp30 + (arg0->unkB2 * 2);
|
||||
arg0->unk2E = arg0->unk2E - *temp_a0;
|
||||
if ((player->unk_0BC & 0x80) == 0x80) {
|
||||
temp_a0 = &(&sp30[0])[player->unk_0B2];
|
||||
player->unk_02E -= *temp_a0;
|
||||
temp_v0 = (arg1 * 2) + &D_8018D920;
|
||||
temp_t7 = *temp_v0 - *temp_a0;
|
||||
*temp_v0 = temp_t7;
|
||||
temp_v1 = arg0->unkB2;
|
||||
if (((temp_t7 & 0xFFFF) / (0x10000 / (0x168 / (*(&sp30 + (temp_v1 * 2)) / 182)))) == 0) {
|
||||
arg0->unkB2 = temp_v1 - 1;
|
||||
if (arg0->unkB2 <= 0) {
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_8006B8B4(arg0, arg1, &sp30);
|
||||
temp_v1 = player->unk_0B2;
|
||||
if ((s16) ((s32) (temp_t7 & 0xFFFF) / (s32) (0x10000 / (s32) (0x168 / (s32) ((s16) (&sp30[0])[temp_v1] / 182)))) == 0) {
|
||||
player->unk_0B2 = temp_v1 - 1;
|
||||
if (player->unk_0B2 <= 0) {
|
||||
if (gModeSelection == 3) {
|
||||
func_8006B8B4(player, arg1);
|
||||
}
|
||||
func_8008C8C4(arg0, arg1);
|
||||
func_8008C8C4(player, arg1);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
temp_a0_2 = (arg0->unkB2 * 2) + &sp30;
|
||||
arg0->unk2E = arg0->unk2E + *temp_a0_2;
|
||||
temp_a0_2 = &(&sp30[0])[player->unk_0B2];
|
||||
player->unk_02E += *temp_a0_2;
|
||||
temp_v0_2 = (arg1 * 2) + &D_8018D920;
|
||||
temp_t8 = *temp_v0_2 - *temp_a0_2;
|
||||
*temp_v0_2 = temp_t8;
|
||||
temp_v1_2 = arg0->unkB2;
|
||||
if (((temp_t8 & 0xFFFF) / (0x10000 / (0x168 / ((sp + (temp_v1_2 * 2))->unk30 / 182)))) == 0) {
|
||||
arg0->unkB2 = temp_v1_2 - 1;
|
||||
if (arg0->unkB2 <= 0) {
|
||||
func_8008C8C4(arg0, arg1);
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_8006B8B4(arg0, arg1);
|
||||
temp_v1_2 = player->unk_0B2;
|
||||
if ((s16) ((s32) (temp_t8 & 0xFFFF) / (s32) (0x10000 / (s32) (0x168 / (s32) ((s16) (sp + (temp_v1_2 * 2))->unk30 / 182)))) == 0) {
|
||||
player->unk_0B2 = temp_v1_2 - 1;
|
||||
if (player->unk_0B2 <= 0) {
|
||||
func_8008C8C4(player, arg1);
|
||||
if (gModeSelection == 3) {
|
||||
func_8006B8B4(player, arg1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_t7_2 = arg1 * 4;
|
||||
if ((*(&D_80165460 + temp_t7_2) == 1) && ((arg0->unk0 & 0x4000) == 0x4000)) {
|
||||
*(&D_80165480 + temp_t7_2) = 0x78;
|
||||
if (arg0->unk9C <= 90.0f) {
|
||||
arg0->unk9C = 90.0f;
|
||||
if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) {
|
||||
D_80165480[arg1] = 0x00000078;
|
||||
if (player->unk_09C <= 90.0f) {
|
||||
player->unk_09C = 90.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -991,87 +983,76 @@ void func_8008DF98(Player* player, s8 arg1) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? move_f32_towards(void *, f32, ?); /* extern */
|
||||
? func_80031F48(void *, ?, s8); /* extern */
|
||||
? func_8008DABC(void *, s8, s8); /* extern */
|
||||
? func_8008E3C0(s8, s8, s8); /* extern */
|
||||
? func_800C90F4(s32, s32, s8); /* extern */
|
||||
extern ? D_80165190;
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern ? D_8018D920;
|
||||
extern ? gKartBoundingBoxSizeTable;
|
||||
|
||||
void func_8008E118(void *arg0, s8 arg1) {
|
||||
void func_8008E118(Player *player, s8 arg1) {
|
||||
s16 *temp_v0_2;
|
||||
s16 *temp_v0_3;
|
||||
s16 *temp_v0_4;
|
||||
s16 temp_t0;
|
||||
s32 temp_a0;
|
||||
s32 temp_v0;
|
||||
s8 temp_a2;
|
||||
s8 temp_t1;
|
||||
void *temp_v0_2;
|
||||
void *temp_v0_4;
|
||||
s8 phi_a2;
|
||||
s8 var_a2;
|
||||
|
||||
temp_v0 = arg0->unkBC;
|
||||
temp_a2 = arg1;
|
||||
phi_a2 = temp_a2;
|
||||
if (((temp_v0 & 0x8000) == 0x8000) && ((temp_v0 & 0x4000000) != 0x4000000)) {
|
||||
arg0->unkBC = temp_v0 & 0xFFFDFFFF;
|
||||
arg0->unkA8 = 0;
|
||||
arg0->unk7C = 0;
|
||||
arg0->unkC0 = 0;
|
||||
temp_v0 = player->unk_0BC;
|
||||
var_a2 = arg1;
|
||||
if (((temp_v0 & 0x8000) == 0x8000) && ((temp_v0 & 0x04000000) != 0x04000000)) {
|
||||
player->unk_0BC = temp_v0 & 0xFFFDFFFF;
|
||||
player->unk_0A8 = 0;
|
||||
player->unk_07C = 0;
|
||||
player->unk_0C0 = 0;
|
||||
temp_t1 = arg1;
|
||||
arg0->unk2E = arg0->unkAE;
|
||||
player->unk_02E = player->unk_0AE;
|
||||
arg1 = arg1;
|
||||
func_8008E3C0(temp_t1, temp_a2);
|
||||
temp_v0_2 = (arg1 * 2) + &D_80165190;
|
||||
func_8008E3C0(player, temp_t1);
|
||||
temp_v0_2 = &(*D_80165190)[arg1];
|
||||
temp_v0_2->unk0 = 1;
|
||||
temp_v0_2->unk10 = 1;
|
||||
temp_v0_2->unk20 = 1;
|
||||
temp_v0_2->unk30 = 1;
|
||||
func_8008DABC(arg0, arg1, arg1);
|
||||
func_8008DABC(player, arg1);
|
||||
return;
|
||||
}
|
||||
temp_a0 = temp_a2 * 2;
|
||||
if ((temp_v0 & 0x20000) == 0x20000) {
|
||||
arg0->unk2E = arg0->unk2E - 0x5B0;
|
||||
temp_v0_3 = temp_a0 + &D_8018D920;
|
||||
player->unk_02E -= 0x5B0;
|
||||
temp_v0_3 = (var_a2 * 2) + &D_8018D920;
|
||||
temp_t0 = *temp_v0_3 - 0x5B0;
|
||||
*temp_v0_3 = temp_t0;
|
||||
if (((temp_t0 & 0xFFFF) / 1456) == 0) {
|
||||
arg0->unkB2 = arg0->unkB2 - 1;
|
||||
if (arg0->unkB2 <= 0) {
|
||||
arg0->unkA8 = 0;
|
||||
arg0->unkBC = arg0->unkBC & 0xFFFDFFFF;
|
||||
arg0->unk7C = 0;
|
||||
arg0->unkC0 = 0;
|
||||
temp_v0_4 = temp_a0 + &D_80165190;
|
||||
arg0->unk2E = arg0->unkAE;
|
||||
if ((s16) ((s32) (temp_t0 & 0xFFFF) / 1456) == 0) {
|
||||
player->unk_0B2 -= 1;
|
||||
if (player->unk_0B2 <= 0) {
|
||||
player->unk_0A8 = 0;
|
||||
player->unk_0BC &= 0xFFFDFFFF;
|
||||
player->unk_07C = 0;
|
||||
player->unk_0C0 = 0;
|
||||
temp_v0_4 = &(*D_80165190)[var_a2];
|
||||
player->unk_02E = player->unk_0AE;
|
||||
temp_v0_4->unk0 = 1;
|
||||
temp_v0_4->unk10 = 1;
|
||||
temp_v0_4->unk20 = 1;
|
||||
temp_v0_4->unk30 = 1;
|
||||
}
|
||||
}
|
||||
func_80031F48(arg0, 0x3F800000, temp_a2);
|
||||
func_80031F48(player, 1.0f);
|
||||
return;
|
||||
}
|
||||
arg0->unkB0 = arg0->unkB0 + 1;
|
||||
arg0->unk8C = arg0->unk8C * 0.6;
|
||||
if ((arg0->unkB0 == 1) && ((arg0->unk0 & 0x4000) != 0)) {
|
||||
arg1 = temp_a2;
|
||||
func_800C90F4(temp_a2 & 0xFF, (arg0->unk254 * 0x10) + 0x29008005, temp_a2);
|
||||
phi_a2 = arg1;
|
||||
player->unk_0B0 += 1;
|
||||
player->unk_08C = (f32) ((f64) player->unk_08C * 0.6);
|
||||
if ((player->unk_0B0 == 1) && (player->unk_000 & 0x4000)) {
|
||||
arg1 = var_a2;
|
||||
func_800C90F4(var_a2 & 0xFF, (player->characterId * 0x10) + 0x29008005);
|
||||
var_a2 = arg1;
|
||||
}
|
||||
if ((arg0->unkB0 >= 0) && (arg0->unkB0 < 0x1CC)) {
|
||||
move_f32_towards(arg0 + 0x224, 0.7f, 0x3DCCCCCD);
|
||||
move_f32_towards(arg0 + 0x70, *(&gKartBoundingBoxSizeTable + (arg0->unk254 * 4)) * 0.9, 0x3DCCCCCD);
|
||||
if ((player->unk_0B0 >= 0) && (player->unk_0B0 < 0x1CC)) {
|
||||
move_f32_towards(&player->unk_224, 0.7f, 0.1f);
|
||||
move_f32_towards(&player->boundingBoxSize, (f32) ((f64) gKartBoundingBoxSizeTable[player->characterId] * 0.9), 0.1f);
|
||||
return;
|
||||
}
|
||||
arg1 = phi_a2;
|
||||
func_8008E3C0(arg0, phi_a2, phi_a2);
|
||||
if ((arg0->unk0 & 0x4000) != 0) {
|
||||
func_800C90F4(arg1 & 0xFF, (arg0->unk254 * 0x10) + 0x29008008, arg1);
|
||||
arg1 = var_a2;
|
||||
func_8008E3C0(player, var_a2);
|
||||
if (player->unk_000 & 0x4000) {
|
||||
func_800C90F4(arg1 & 0xFF, (player->characterId * 0x10) + 0x29008008);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
@ -2099,219 +2080,178 @@ void func_80090868(Player* player) {
|
|||
// Note that D_80004334 is a fake pointer.
|
||||
// Should put this func through mips to C prior to decomp.
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
? move_f32_towards(void *, f32, ?); /* extern */
|
||||
? move_s16_towards(void *, ?, ?); /* extern */
|
||||
? func_8006B8B4(void *, s8); /* extern */
|
||||
? func_8008C354(s8); /* extern */
|
||||
? func_8008F104(void *, s8); /* extern */
|
||||
? func_8008FB30(void *, s8); /* extern */
|
||||
? func_80090178(void *, s8, f32 *, ? *); /* extern */
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
? func_80090178(Player *, s8, f32 *, f32 *); /* extern */
|
||||
? func_8009E020(s8, ?); /* extern */
|
||||
? func_8009E088(s8, ?); /* extern */
|
||||
? func_800C9018(u8, ?); /* extern */
|
||||
s32 func_802B5224(f32 *, ? *); /* extern */
|
||||
f32 sins(s32); /* extern */
|
||||
f32 coss(s32); /* extern */
|
||||
extern ? D_80004334;
|
||||
extern void *D_80164550;
|
||||
extern ? D_801652A0;
|
||||
extern ? D_80165330;
|
||||
extern s32 gModeSelection;
|
||||
|
||||
void func_80090970(void *arg0, s8 arg1, s8 arg2) {
|
||||
void func_80090970(Player *player, s8 arg1, s8 arg2) {
|
||||
f32 sp44;
|
||||
? sp38;
|
||||
f32 *sp28;
|
||||
f32 sp38;
|
||||
f32 *sp28; /* compiler-managed */
|
||||
f32 *temp_v0_2;
|
||||
f32 temp_f6;
|
||||
s16 temp_v0;
|
||||
s16 temp_v0_6;
|
||||
s16 temp_v1;
|
||||
s16 temp_v1_2;
|
||||
s32 temp_at;
|
||||
s32 temp_v0_5;
|
||||
s32 temp_v0_8;
|
||||
struct TrackWayPoint *temp_v0_7;
|
||||
u16 temp_t7;
|
||||
u16 temp_v0_3;
|
||||
u16 temp_v0_4;
|
||||
void *temp_v0_7;
|
||||
f32 phi_at;
|
||||
|
||||
arg0->unkC2 = 0xC;
|
||||
arg0->unk78 = 0;
|
||||
arg0->unk7C = 0;
|
||||
arg0->unkC0 = 0;
|
||||
arg0->unk8C = 0.0f;
|
||||
func_8008C354(arg1);
|
||||
temp_t7 = arg0->unk222;
|
||||
player->unk_0C2 = 0x000C;
|
||||
player->unk_078 = 0;
|
||||
player->unk_07C = 0;
|
||||
player->unk_0C0 = 0;
|
||||
player->unk_08C = 0.0f;
|
||||
func_8008C354(player, arg1);
|
||||
temp_t7 = (u16) player->unk_222;
|
||||
switch (temp_t7) {
|
||||
case 0:
|
||||
temp_v1 = arg0->unkCA;
|
||||
temp_v1 = player->unk_0CA;
|
||||
if ((temp_v1 & 1) == 1) {
|
||||
temp_v0 = arg0->unkC8;
|
||||
temp_v0 = player->unk_0C8;
|
||||
if ((temp_v0 < 0x3C) || ((temp_v1 & 2) != 2)) {
|
||||
arg0->unkC8 = temp_v0 + 1;
|
||||
temp_at = arg0->unkC8 < 0x3C;
|
||||
phi_at = (bitwise f32) temp_at;
|
||||
if (temp_at == 0) {
|
||||
arg0->unkC8 = 0x3C;
|
||||
player->unk_0C8 = temp_v0 + 1;
|
||||
if (player->unk_0C8 >= 0x3C) {
|
||||
player->unk_0C8 = 0x003C;
|
||||
}
|
||||
} else {
|
||||
temp_v0_2 = (arg1 * 4) + &D_801652A0;
|
||||
temp_v0_2 = &D_801652A0[arg1];
|
||||
sp28 = temp_v0_2;
|
||||
move_f32_towards(arg0 + 0x18, *temp_v0_2 + 100.0f, 0x3C449BA6);
|
||||
move_s16_towards(arg0 + (arg2 * 2) + 0xCC, 0, 0x3E4CCCCD);
|
||||
phi_at = 40.0f;
|
||||
if ((*sp28 + 40.0f) <= arg0->unk18) {
|
||||
arg0->unk222 = 1;
|
||||
arg0->unkC6 = 0xFF;
|
||||
arg0->unkCA = arg0->unkCA | 4;
|
||||
phi_at = 40.0f;
|
||||
move_f32_towards(&player->pos[1], *temp_v0_2 + 100.0f, 0.012f);
|
||||
move_s16_towards(player + (arg2 * 2) + 0xCC, 0, 0.2f);
|
||||
if ((*sp28 + 40.0f) <= player->pos[1]) {
|
||||
player->unk_222 = 1;
|
||||
player->unk_0C6 = 0x00FF;
|
||||
player->unk_0CA |= 4;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
phi_at = 100.0f;
|
||||
if ((temp_v1 & 2) == 2) {
|
||||
move_f32_towards(arg0 + 0x18, arg0->unk74 + 100.0f, 0x3CCCCCCD);
|
||||
move_s16_towards(arg0 + (arg2 * 2) + 0xCC, 0, 0x3E4CCCCD);
|
||||
phi_at = 40.0f;
|
||||
if ((arg0->unk74 + 40.0f) <= arg0->unk18) {
|
||||
arg0->unk222 = 1;
|
||||
arg0->unkC6 = 0xFF;
|
||||
arg0->unkCA = arg0->unkCA | 4;
|
||||
phi_at = 40.0f;
|
||||
}
|
||||
} else if ((temp_v1 & 2) == 2) {
|
||||
move_f32_towards(&player->pos[1], player->unk_074 + 100.0f, 0.025f);
|
||||
move_s16_towards(player + (arg2 * 2) + 0xCC, 0, 0.2f);
|
||||
if ((player->unk_074 + 40.0f) <= player->pos[1]) {
|
||||
player->unk_222 = 1;
|
||||
player->unk_0C6 = 0x00FF;
|
||||
player->unk_0CA |= 4;
|
||||
}
|
||||
}
|
||||
if (&D_80004334 != (arg0->unkBC & &D_80004334)) {
|
||||
// Error: Got lui instruction with macro other than %hi
|
||||
// At instruction: lui $at, %lo(D_80004334)
|
||||
// D_80004334 FAKE POINTER
|
||||
} else {
|
||||
func_8008FB30(arg0, arg1);
|
||||
default:
|
||||
block_49:
|
||||
phi_at = 180.0f;
|
||||
if ((player->unk_0BC & 0x80000000) == 0x80000000) {
|
||||
func_8008FB30(player, arg1);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
temp_v0_3 = arg0->unk0;
|
||||
if (((temp_v0_3 & 0x4000) == 0x4000) && ((temp_v0_3 & 0x1000) == 0)) {
|
||||
temp_v0_3 = player->unk_000;
|
||||
if (((temp_v0_3 & 0x4000) == 0x4000) && !(temp_v0_3 & 0x1000)) {
|
||||
func_8009E088(arg1, 0xA);
|
||||
}
|
||||
if ((arg0->unkCA & 1) == 1) {
|
||||
move_f32_towards(arg0 + 0x18, *(&D_801652A0 + (arg1 * 4)) + 40.0f, 0x3CA3D70A);
|
||||
arg0->unkC6 = arg0->unkC6 - 8;
|
||||
if (arg0->unkC6 < 9) {
|
||||
arg0->unkC6 = 0;
|
||||
arg0->unk222 = 2;
|
||||
arg0->unkCA = arg0->unkCA & 0xFFFE;
|
||||
if ((player->unk_0CA & 1) == 1) {
|
||||
move_f32_towards(&player->pos[1], D_801652A0[arg1] + 40.0f, 0.02f);
|
||||
player->unk_0C6 -= 8;
|
||||
if (player->unk_0C6 < 9) {
|
||||
player->unk_0C6 = 0;
|
||||
player->unk_222 = 2;
|
||||
player->unk_0CA &= 0xFFFE;
|
||||
}
|
||||
} else {
|
||||
move_f32_towards(arg0 + 0x18, arg0->unk24 + 40.0f, 0x3CA3D70A);
|
||||
arg0->unkC6 = arg0->unkC6 - 8;
|
||||
if (arg0->unkC6 < 9) {
|
||||
arg0->unkC6 = 0;
|
||||
arg0->unk222 = 2;
|
||||
move_f32_towards(&player->pos[1], player->rotY + 40.0f, 0.02f);
|
||||
player->unk_0C6 -= 8;
|
||||
if (player->unk_0C6 < 9) {
|
||||
player->unk_0C6 = 0;
|
||||
player->unk_222 = 2;
|
||||
}
|
||||
}
|
||||
arg0->unkCA = arg0->unkCA & 0xDFFF;
|
||||
goto block_49;
|
||||
player->unk_0CA &= 0xDFFF;
|
||||
break;
|
||||
case 2:
|
||||
func_80090178(arg0, arg1, &sp44, &sp38);
|
||||
arg0->unk2E = -func_802B5224(&sp44, &sp38);
|
||||
arg0->unk14 = sp44;
|
||||
arg0->unk18 = sp48 + 40.0f;
|
||||
arg0->unk222 = 3;
|
||||
arg0->unk1C = sp4C;
|
||||
goto block_49;
|
||||
func_80090178(player, arg1, &sp44, &sp38);
|
||||
player->unk_02E = -func_802B5224(&sp44, &sp38);
|
||||
player->pos[0] = sp44;
|
||||
player->pos[1] = sp48 + 40.0f;
|
||||
player->unk_222 = 3;
|
||||
player->pos[2] = sp4C;
|
||||
break;
|
||||
case 3:
|
||||
*(&D_80165330 + (arg1 * 2)) = 0;
|
||||
temp_v0_4 = arg0->unk0;
|
||||
if (((temp_v0_4 & 0x4000) == 0x4000) && ((temp_v0_4 & 0x1000) == 0)) {
|
||||
temp_v0_4 = player->unk_000;
|
||||
if (((temp_v0_4 & 0x4000) == 0x4000) && !(temp_v0_4 & 0x1000)) {
|
||||
func_8009E020(arg1, 0x14);
|
||||
}
|
||||
func_80090178(arg0, arg1, &sp44, &sp38);
|
||||
arg0->unk14 = sp44;
|
||||
arg0->unk18 = sp48 + 40.0f;
|
||||
arg0->unk1C = sp4C;
|
||||
func_80090178(player, arg1, &sp44, &sp38);
|
||||
player->pos[0] = sp44;
|
||||
player->pos[1] = sp48 + 40.0f;
|
||||
player->pos[2] = sp4C;
|
||||
temp_v0_5 = arg1 * 0x1C70;
|
||||
sp28 = temp_v0_5;
|
||||
arg0->unk1C = (coss((temp_v0_5 - arg0->unk2E) & 0xFFFF) * -5.0f) + arg0->unk1C;
|
||||
temp_f6 = sins((temp_v0_5 - arg0->unk2E) & 0xFFFF) * -5.0f;
|
||||
arg0->unkC6 = arg0->unkC6 + 8;
|
||||
arg0->unk14 = temp_f6 + arg0->unk14;
|
||||
if (arg0->unkC6 >= 0xF0) {
|
||||
arg0->unkC6 = 0xFF;
|
||||
arg0->unk222 = 4;
|
||||
arg0->unkCA = arg0->unkCA & 0xFFFB;
|
||||
arg0->unkC8 = 0;
|
||||
player->pos[2] += coss((temp_v0_5 - player->unk_02E) & 0xFFFF) * -5.0f;
|
||||
temp_f6 = sins((temp_v0_5 - player->unk_02E) & 0xFFFF) * -5.0f;
|
||||
player->unk_0C6 += 8;
|
||||
player->pos[0] += temp_f6;
|
||||
if (player->unk_0C6 >= 0xF0) {
|
||||
player->unk_0C6 = 0x00FF;
|
||||
player->unk_222 = 4;
|
||||
player->unk_0CA &= 0xFFFB;
|
||||
player->unk_0C8 = 0;
|
||||
}
|
||||
goto block_49;
|
||||
break;
|
||||
case 4:
|
||||
temp_v0_6 = arg0->unkC8;
|
||||
if ((temp_v0_6 == 0x96) || (temp_v0_6 == 0xC8) || (temp_v0_6 == 0xFA)) {
|
||||
arg0->unk1C = (coss(-arg0->unk2E & 0xFFFF) * -10.0f) + arg0->unk1C;
|
||||
arg0->unk14 = (sins(-arg0->unk2E & 0xFFFF) * -10.0f) + arg0->unk14;
|
||||
temp_v0_6 = player->unk_0C8;
|
||||
if ((temp_v0_6 == 0x0096) || (temp_v0_6 == 0x00C8) || (temp_v0_6 == 0x00FA)) {
|
||||
player->pos[2] += coss(-player->unk_02E & 0xFFFF) * -10.0f;
|
||||
player->pos[0] += sins(-player->unk_02E & 0xFFFF) * -10.0f;
|
||||
}
|
||||
if (arg0->unkC8 == 0xFC) {
|
||||
temp_v0_7 = D_80164550;
|
||||
arg0->unk14 = temp_v0_7->unk0;
|
||||
arg0->unk18 = temp_v0_7->unk2;
|
||||
arg0->unk1C = temp_v0_7->unk4;
|
||||
if (player->unk_0C8 == 0x00FC) {
|
||||
temp_v0_7 = *D_80164550;
|
||||
player->pos[0] = (f32) temp_v0_7->wayPointX;
|
||||
player->pos[1] = (f32) temp_v0_7->wayPointY;
|
||||
player->pos[2] = (f32) temp_v0_7->wayPointZ;
|
||||
}
|
||||
move_f32_towards(arg0 + 0x18, (arg0->unk74 + arg0->unk70) - 2.0f, 0x3D23D70A);
|
||||
arg0->unkC8 = arg0->unkC8 + 1;
|
||||
phi_at = (bitwise f32) 8;
|
||||
if ((arg0->unkBC & 8) == 8) {
|
||||
// Error: %hi macro outside of lui
|
||||
// At instruction: andi $t8, $v0, %hi(D_80004334)
|
||||
if (MIPS2C_ERROR()) {
|
||||
// Error: Got lui instruction with macro other than %hi
|
||||
// At instruction: lui $at, %lo(D_80004334)
|
||||
} else {
|
||||
goto block_41;
|
||||
}
|
||||
} else {
|
||||
block_41:
|
||||
arg0->unkCA = arg0->unkCA & 0xEFFF;
|
||||
if (arg0->unkC8 >= 0x5B) {
|
||||
if ((arg0->unk0 & 0x4000) != 0) {
|
||||
func_800C9018(arg1, 0x100FA28);
|
||||
move_f32_towards(&player->pos[1], (player->unk_074 + player->boundingBoxSize) - 2.0f, 0.04f);
|
||||
temp_v0_8 = player->unk_0BC;
|
||||
player->unk_0C8 += 1;
|
||||
if (((temp_v0_8 & 8) != 8) || (temp_v0_8 & 0x8000)) {
|
||||
player->unk_0CA &= 0xEFFF;
|
||||
if (player->unk_0C8 >= 0x5B) {
|
||||
if (player->unk_000 & 0x4000) {
|
||||
func_800C9018((u8) arg1, 0x0100FA28);
|
||||
}
|
||||
if (gModeSelection == BATTLE) {
|
||||
func_8006B8B4(arg0, arg1);
|
||||
if (gModeSelection == 3) {
|
||||
func_8006B8B4(player, arg1);
|
||||
}
|
||||
arg0->unkCA = arg0->unkCA & 0xFFFD;
|
||||
temp_v1_2 = arg0->unkCA;
|
||||
arg0->unkDE = arg0->unkDE & 0xFFFB;
|
||||
player->unk_0CA &= 0xFFFD;
|
||||
temp_v1_2 = player->unk_0CA;
|
||||
player->unk_0DE &= 0xFFFB;
|
||||
if ((temp_v1_2 & 0x80) != 0x80) {
|
||||
arg0->unkCA = temp_v1_2 & 0xFFF7;
|
||||
if ((arg0->unk214 * 0.9) <= arg0->unk9C) {
|
||||
func_8008F104(arg0, arg1);
|
||||
player->unk_0CA = temp_v1_2 & 0xFFF7;
|
||||
if (((f64) player->unk_214 * 0.9) <= (f64) player->unk_09C) {
|
||||
func_8008F104(player, arg1);
|
||||
}
|
||||
}
|
||||
}
|
||||
goto block_49;
|
||||
}
|
||||
break;
|
||||
}
|
||||
arg0->unkDA0 = arg0->unkDA0 + 8.0f;
|
||||
if (phi_at <= arg0->unkDA0) {
|
||||
arg0->unkDA0 = phi_at;
|
||||
player->unk_DA0 += 8.0f;
|
||||
if (player->unk_DA0 >= 180.0f) {
|
||||
player->unk_DA0 = 180.0f;
|
||||
}
|
||||
if (arg0->unkD98 == 1) {
|
||||
arg0->unkD9C = arg0->unkD9C + arg0->unkDA0;
|
||||
if (arg0->unkD9C >= 1820.0f) {
|
||||
arg0->unkDA0 = 0.0f;
|
||||
arg0->unkD98 = arg0->unkD98 * -1;
|
||||
if (player->unk_D98 == 1) {
|
||||
player->unk_D9C += player->unk_DA0;
|
||||
if (player->unk_D9C >= 1820.0f) {
|
||||
player->unk_DA0 = 0.0f;
|
||||
player->unk_D98 *= -1;
|
||||
}
|
||||
}
|
||||
if (arg0->unkD98 == -1) {
|
||||
arg0->unkD9C = arg0->unkD9C - arg0->unkDA0;
|
||||
if (arg0->unkD9C <= -1820.0f) {
|
||||
arg0->unkDA0 = 0.0f;
|
||||
arg0->unkD98 = arg0->unkD98 * -1;
|
||||
if (player->unk_D98 == -1) {
|
||||
player->unk_D9C -= player->unk_DA0;
|
||||
if (player->unk_D9C <= -1820.0f) {
|
||||
player->unk_DA0 = 0.0f;
|
||||
player->unk_D98 *= -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2395,57 +2335,54 @@ void func_800911B4(Player* player, s8 arg1) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
|
||||
extern s8 D_801658BC;
|
||||
extern ? D_8018D920;
|
||||
extern ? gKartGravityTable;
|
||||
static ? D_800E706C; /* unable to generate initializer; const */
|
||||
static ? D_800E706C; /* unable to generate initializer */
|
||||
|
||||
void func_80091298(void *arg0, s8 arg1) {
|
||||
? spC;
|
||||
void func_80091298(Player *player, s8 arg1) {
|
||||
f32 temp_f0;
|
||||
f32 temp_f2;
|
||||
s16 *temp_a2;
|
||||
s16 temp_t9;
|
||||
s32 temp_t8;
|
||||
s16 phi_v1;
|
||||
s16 var_v1;
|
||||
|
||||
spC.unk0 = D_800E706C.unk0;
|
||||
spC.unk4 = D_800E706C.unk4;
|
||||
spC.unk8 = D_800E706C.unk8;
|
||||
arg0->unk44 = arg0->unk44 | 0x2000;
|
||||
if (arg0->unkB2 == 0) {
|
||||
phi_v1 = 0;
|
||||
spC[0].unk0 = D_800E706C.unk0;
|
||||
spC[0].unk4 = (s32) D_800E706C.unk4;
|
||||
spC[0].unk8 = (s32) D_800E706C.unk8;
|
||||
player->unk_044 |= 0x2000;
|
||||
if (player->unk_0B2 == 0) {
|
||||
var_v1 = 0;
|
||||
} else {
|
||||
temp_a2 = (arg1 * 2) + &D_8018D920;
|
||||
arg0->unk2E = arg0->unk2E - 0xE38;
|
||||
player->unk_02E -= 0xE38;
|
||||
temp_t9 = *temp_a2 - 0xE38;
|
||||
temp_t8 = (temp_t9 & 0xFFFF) / 3640;
|
||||
*temp_a2 = temp_t9;
|
||||
phi_v1 = temp_t8;
|
||||
var_v1 = (s16) ((s32) (temp_t9 & 0xFFFF) / 3640);
|
||||
}
|
||||
if (((phi_v1 == 9) && (arg0->unkB2 == 1)) || ((phi_v1 == 0) && (arg0->unkB2 == 2)) || (arg0->unkB2 == 0)) {
|
||||
arg0->unkB2 = arg0->unkB2 - 1;
|
||||
if (arg0->unkB2 <= 0) {
|
||||
arg0->unkB2 = 0;
|
||||
if (((var_v1 == 9) && (player->unk_0B2 == 1)) || ((var_v1 == 0) && (player->unk_0B2 == 2)) || (player->unk_0B2 == 0)) {
|
||||
player->unk_0B2 -= 1;
|
||||
if (player->unk_0B2 <= 0) {
|
||||
player->unk_0B2 = 0;
|
||||
}
|
||||
if (arg0->unkB2 == 0) {
|
||||
temp_f2 = arg0->unk70;
|
||||
temp_f0 = *(&spC + (arg1 * 4));
|
||||
if ((arg0->unk18 - (temp_f2 + 1.0f)) <= temp_f0) {
|
||||
arg0->unkDCC = 0;
|
||||
arg0->unkA8 = 0;
|
||||
arg0->unk18 = (temp_f0 + temp_f2) + 1.08;
|
||||
arg0->unk7C = 0;
|
||||
arg0->unkC0 = 0;
|
||||
arg0->unk44 = arg0->unk44 & 0xF7FF;
|
||||
arg0->unkDC0 = 3.0f;
|
||||
arg0->unkD4 = 0;
|
||||
arg0->unk100 = *(&gKartGravityTable + (arg0->unk254 * 4));
|
||||
arg0->unk0 = arg0->unk0 | 0x2000;
|
||||
arg0->unk94 = 0.0f;
|
||||
arg0->unk8C = 0.0f;
|
||||
arg0->unk9C = 0.0f;
|
||||
if (player->unk_0B2 == 0) {
|
||||
temp_f2 = player->boundingBoxSize;
|
||||
temp_f0 = (&spC[0])[arg1];
|
||||
if ((player->pos[1] - (temp_f2 + 1.0f)) <= temp_f0) {
|
||||
player->unk_DCC = 0;
|
||||
player->unk_0A8 = 0;
|
||||
player->pos[1] = (f32) ((f64) (temp_f0 + temp_f2) + 1.08);
|
||||
player->unk_07C = 0;
|
||||
player->unk_0C0 = 0;
|
||||
player->unk_044 &= 0xF7FF;
|
||||
player->unk_DC0 = 3.0f;
|
||||
player->unkD4 = 0;
|
||||
player->unk_100 = gKartGravityTable[player->characterId];
|
||||
player->unk_000 |= 0x2000;
|
||||
player->unk_094 = 0.0f;
|
||||
player->unk_08C = 0.0f;
|
||||
player->unk_09C = 0.0f;
|
||||
if (arg1 == 0) {
|
||||
D_801658BC = 1;
|
||||
}
|
||||
|
|
@ -2472,21 +2409,12 @@ void func_800914A0(void) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
//This function did not have a glabel in the original assembly, as such it may
|
||||
//be unused/unnamed
|
||||
? func_800914A0(s16, s32, s16); /* extern */
|
||||
? func_802ADDC8(void *, ?, f32, f32, f32); /* extern */
|
||||
s16 atan2s(f32, f32); /* extern */
|
||||
f32 sqrtf(f32, f32); /* extern */
|
||||
extern void *gPlayerOneCopy;
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern u16 D_80152308;
|
||||
extern s16 D_8015F6F8;
|
||||
extern u32 D_8015F718;
|
||||
extern ? cameras;
|
||||
extern ? gSegmentTable;
|
||||
static ? D_800E7080; /* unable to generate initializer; const */
|
||||
static ? D_800E708C; /* unable to generate initializer; const */
|
||||
static ? D_800E7080; /* unable to generate initializer */
|
||||
static ? D_800E708C; /* unable to generate initializer */
|
||||
|
||||
void func_800914E0(void) {
|
||||
? sp64;
|
||||
|
|
@ -2495,6 +2423,7 @@ void func_800914E0(void) {
|
|||
f32 sp38;
|
||||
f32 sp34;
|
||||
f32 sp30;
|
||||
Player **var_t1;
|
||||
f32 temp_f12;
|
||||
f32 temp_f14;
|
||||
f32 temp_f16;
|
||||
|
|
@ -2502,64 +2431,55 @@ void func_800914E0(void) {
|
|||
f32 temp_f8;
|
||||
s16 temp_a0;
|
||||
s16 temp_a0_2;
|
||||
s16 temp_a3;
|
||||
s16 temp_v0_2;
|
||||
u16 temp_t0;
|
||||
u32 temp_v0;
|
||||
void *temp_v0_3;
|
||||
u16 phi_t0;
|
||||
void **phi_t1;
|
||||
|
||||
sp64.unk0 = D_800E7080.unk0;
|
||||
sp64.unk4 = D_800E7080.unk4;
|
||||
sp64.unk8 = D_800E7080.unk8;
|
||||
sp58.unk0 = D_800E708C.unk0;
|
||||
sp58.unk4 = D_800E708C.unk4;
|
||||
sp58.unk8 = D_800E708C.unk8;
|
||||
sp64.unk0 = (s32) D_800E7080.unk0;
|
||||
sp64.unk4 = (s32) D_800E7080.unk4;
|
||||
sp64.unk8 = (s32) D_800E7080.unk8;
|
||||
sp58.unk0 = (s32) D_800E708C.unk0;
|
||||
sp58.unk4 = (s32) D_800E708C.unk4;
|
||||
sp58.unk8 = (s32) D_800E708C.unk8;
|
||||
temp_v0 = D_8015F718;
|
||||
temp_a0 = temp_v0 & 0xFFFFFF;
|
||||
sp48 = *(&gSegmentTable + ((temp_v0 >> 0x18) * 4)) + temp_a0 + 0x80000000;
|
||||
temp_t0 = D_80152308;
|
||||
temp_a3 = gPlayerOneCopy->unk6;
|
||||
temp_v0_2 = temp_a3 - temp_t0;
|
||||
cameras.unk18 = 0.0f;
|
||||
cameras.unk20 = 0.0f;
|
||||
cameras.unk1C = 1.0f;
|
||||
phi_t0 = temp_t0;
|
||||
phi_t1 = &gPlayerOneCopy;
|
||||
var_t1 = &gPlayerOneCopy;
|
||||
sp48 = gSegmentTable[temp_v0 >> 0x18] + temp_a0 + 0x80000000;
|
||||
temp_v0_2 = (s16) gPlayerOneCopy->unk_006 - D_80152308;
|
||||
cameras->up[0] = 0.0f;
|
||||
cameras->up[2] = 0.0f;
|
||||
cameras->up[1] = 1.0f;
|
||||
if (temp_v0_2 == 7) {
|
||||
func_800914A0(temp_a0, 7, temp_a3);
|
||||
phi_t0 = D_80152308;
|
||||
func_800914A0(temp_a0, 7);
|
||||
goto block_5;
|
||||
}
|
||||
if (temp_v0_2 < 0xE) {
|
||||
temp_a0_2 = temp_v0_2 + D_8015F6F8;
|
||||
if (temp_a0_2 == 7) {
|
||||
func_800914A0(temp_a0_2, 7, temp_a3);
|
||||
phi_t0 = D_80152308;
|
||||
func_800914A0(temp_a0_2, 7);
|
||||
block_5:
|
||||
phi_t1 = &gPlayerOneCopy;
|
||||
var_t1 = &gPlayerOneCopy;
|
||||
}
|
||||
}
|
||||
temp_v0_3 = (phi_t0 * 8) + sp48;
|
||||
temp_f8 = temp_v0_3->unk0 + 0xA;
|
||||
cameras.unk0 = temp_f8;
|
||||
temp_f16 = temp_v0_3->unk2 + 7;
|
||||
*(&cameras + 4) = temp_f16;
|
||||
temp_f4 = temp_v0_3->unk4 - 0x14;
|
||||
*(&cameras + 8) = temp_f4;
|
||||
*(&cameras + 0xC) = (*phi_t1)->unk14;
|
||||
*(&cameras + 0x10) = (*phi_t1)->unk18;
|
||||
*(&cameras + 0x14) = (*phi_t1)->unk1C;
|
||||
func_802ADDC8(&cameras + 0x54, 0x41A00000, temp_f8, temp_f16, temp_f4);
|
||||
temp_f12 = *(&cameras + 0xC) - cameras.unk0;
|
||||
temp_v0_3 = (D_80152308 * 8) + sp48;
|
||||
temp_f8 = (f32) (temp_v0_3->unk0 + 0xA);
|
||||
cameras->pos[0] = temp_f8;
|
||||
temp_f16 = (f32) (temp_v0_3->unk2 + 7);
|
||||
cameras->pos[1] = temp_f16;
|
||||
temp_f4 = (f32) (temp_v0_3->unk4 - 0x14);
|
||||
cameras->pos[2] = temp_f4;
|
||||
cameras->lookAt[0] = (*var_t1)->pos[0];
|
||||
cameras->lookAt[1] = (*var_t1)->pos[1];
|
||||
cameras->lookAt[2] = (*var_t1)->pos[2];
|
||||
func_802ADDC8(&cameras->unk_54, 20.0f, temp_f8, temp_f16, temp_f4);
|
||||
temp_f12 = cameras->lookAt[0] - cameras->pos[0];
|
||||
sp38 = temp_f12;
|
||||
temp_f14 = *(&cameras + 0x14) - *(&cameras + 8);
|
||||
sp34 = *(&cameras + 0x10) - *(&cameras + 4);
|
||||
temp_f14 = cameras->lookAt[2] - cameras->pos[2];
|
||||
sp34 = cameras->lookAt[1] - cameras->pos[1];
|
||||
sp30 = temp_f14;
|
||||
*(&cameras + 0x26) = atan2s(temp_f12, temp_f14);
|
||||
*(&cameras + 0x24) = atan2s(sqrtf((sp38 * sp38) + (temp_f14 * temp_f14), temp_f14), sp34);
|
||||
*(&cameras + 0x28) = 0;
|
||||
cameras->rot[1] = atan2s(temp_f12, temp_f14);
|
||||
cameras->rot[0] = atan2s(sqrtf((sp38 * sp38) + (temp_f14 * temp_f14)), sp34);
|
||||
cameras->rot[2] = 0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_8008C1D0/func_800914E0.s")
|
||||
|
|
|
|||
|
|
@ -146,8 +146,6 @@ extern f32 D_800EF678;
|
|||
extern f32 D_800EF67C;
|
||||
extern u16 D_80152308;
|
||||
extern u16 D_8015F6F8;
|
||||
extern u16 gNearestWaypointByPlayerId[];
|
||||
extern u16 gWaypointCountByPathIndex;
|
||||
extern s16 D_80165190[4][8];
|
||||
extern f32 D_80165280[];
|
||||
extern s16 D_80165320[];
|
||||
|
|
|
|||
|
|
@ -6,32 +6,13 @@
|
|||
#include "main.h"
|
||||
#include "types.h"
|
||||
#include "camera.h"
|
||||
#include "memory.h"
|
||||
#include "math_util.h"
|
||||
#include "code_80280000.h"
|
||||
#include "code_80281780.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
#include <config.h>
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
extern f32 D_80150130[4];
|
||||
extern s16 gCreditsCourseId;
|
||||
extern u16 D_80150112;
|
||||
extern u16 D_80164AF0;
|
||||
extern u32 D_8018D120;
|
||||
extern s32 gPrevLoadedAddress;
|
||||
extern mk64_surface_map_ram (*D_8015F580)[];
|
||||
extern u16 D_8015F588; // Number of entires in D_8015F580
|
||||
|
||||
extern u16 gIsInQuitToMenuTransition, gQuitToMenuTransitionCounter;
|
||||
extern s32 D_802874A0;
|
||||
|
||||
extern u16 atan2s(f32, f32);
|
||||
extern u16 D_80164714, D_80164716, D_80164718;
|
||||
extern u16 D_800DC5E4;
|
||||
extern u32 gGamestate;
|
||||
extern u32 D_802874FC;
|
||||
|
||||
extern u16 D_800DC518;
|
||||
|
||||
void func_80280000(void) {
|
||||
func_802966A0();
|
||||
func_80059AC8();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef CODE_80280000_H
|
||||
#define CODE_80280000_H
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_80280000();
|
||||
void func_80280038();
|
||||
void func_80280268(s32 arg0);
|
||||
void credits_loop();
|
||||
void load_credits();
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
extern f32 D_80150130[4];
|
||||
extern s16 gCreditsCourseId;
|
||||
extern u16 D_80150112;
|
||||
extern s16 D_80164AF0;
|
||||
extern u32 D_8018D120;
|
||||
extern mk64_surface_map_ram (*D_8015F580)[];
|
||||
extern u16 D_8015F588; // Number of entires in D_8015F580
|
||||
|
||||
extern u16 gIsInQuitToMenuTransition, gQuitToMenuTransitionCounter;
|
||||
extern s32 D_802874A0;
|
||||
|
||||
extern u16 D_80164714, D_80164716, D_80164718;
|
||||
extern u16 D_800DC5E4;
|
||||
extern u32 gGamestate;
|
||||
extern u32 D_802874FC;
|
||||
|
||||
extern u16 D_800DC518;
|
||||
|
||||
#endif
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
#include <types.h>
|
||||
#include <common_structs.h>
|
||||
#include "main.h"
|
||||
#include "variables.h"
|
||||
#include "code_8001F980.h"
|
||||
#include "code_80280650.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef CODE_80280650_H
|
||||
#define CODE_80280650_H
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
struct UnkStruct_80280658 {
|
||||
s32 unk0;
|
||||
s16 unk4;
|
||||
|
|
@ -73,7 +75,7 @@ f32 func_8028080C();
|
|||
f32 func_80280850(f32);
|
||||
void func_80280884();
|
||||
void func_8028093C(struct UnkStruct_80280658*);
|
||||
void func_80280A28(Vec3f, Vec3s, f32);
|
||||
void func_80280A28(Vec3f, Vec3s, f32 );
|
||||
void func_80280FA0(s32);
|
||||
void func_80280FA8(s32);
|
||||
void func_80280FB0();
|
||||
|
|
@ -85,7 +87,7 @@ void func_80281528();
|
|||
void func_80281530();
|
||||
void func_80281538();
|
||||
void func_80281540();
|
||||
void func_80281548();
|
||||
void ending_sequence_loop();
|
||||
|
||||
extern struct UnkStruct_80280658 *D_802874F8;
|
||||
extern struct UnkStruct_80280658 *D_80284E7C;
|
||||
|
|
@ -96,7 +98,6 @@ extern s32 D_80284E88;
|
|||
extern s32 D_802874E0;
|
||||
extern s8 D_802874F4;
|
||||
extern s32 D_802874D4;
|
||||
extern s16 D_80150112;
|
||||
extern s32 D_802874FC;
|
||||
extern Mat4 D_80287500;
|
||||
extern s16 D_80164AF0;
|
||||
|
|
|
|||
|
|
@ -4,25 +4,14 @@
|
|||
#include "variables.h"
|
||||
#include <defines.h>
|
||||
#include <config.h>
|
||||
|
||||
#include "memory.h"
|
||||
#include "camera.h"
|
||||
#include "spawn_players.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
#include "code_8006E9C0.h"
|
||||
#include "code_80280650.h"
|
||||
#include "code_80281780.h"
|
||||
|
||||
extern Camera cameras[];
|
||||
|
||||
extern s32 gPrevLoadedAddress;
|
||||
|
||||
/*
|
||||
extern Gfx D_070067E8[];
|
||||
extern Gfx D_0700AEF8[];
|
||||
extern Gfx D_0700A970[];
|
||||
extern Gfx D_0700AC30[];
|
||||
extern Gfx D_07000CE0[];
|
||||
extern Gfx D_07000E88[];
|
||||
extern Gfx D_0700A618[];
|
||||
extern Gfx D_070023F8[];
|
||||
extern Gfx D_07002478[];
|
||||
*/
|
||||
|
||||
// unk4 is buttonDown?
|
||||
void func_80281780(void) {
|
||||
if (gEnableDebugMode != 0) {
|
||||
|
|
|
|||
|
|
@ -1,23 +1,25 @@
|
|||
#ifndef CODE_80281780_H
|
||||
#define CODE_80281780_H
|
||||
|
||||
// variables found in code_80281780.c; not necessarily ones that belong there
|
||||
extern void func_802A4D18();
|
||||
extern void func_802A74BC();
|
||||
extern void load_course();
|
||||
extern u32 set_segment_base_addr();
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_80281780(void);
|
||||
s32 func_80281880(s32 arg0);
|
||||
void func_802818BC(void);
|
||||
void load_ending_sequence_royalraceway(void);
|
||||
|
||||
|
||||
extern int func_802AA88C();
|
||||
extern void func_802AF5AC();
|
||||
extern void func_80295C6C();
|
||||
extern void func_80281780();
|
||||
extern void func_802818BC();
|
||||
extern void func_8003D080();
|
||||
extern void func_8006E9C0();
|
||||
extern void func_8001C05C();
|
||||
extern void func_80280FB0();
|
||||
extern void func_802816B8();
|
||||
extern u32 set_segment_base_addr();
|
||||
extern void load_course();
|
||||
|
||||
extern void func_80093E60();
|
||||
extern void *gHeapEndPtr;
|
||||
|
||||
extern void func_802816B8();
|
||||
|
||||
extern void func_80295C6C();
|
||||
|
||||
extern void func_802A4D18();
|
||||
|
||||
extern s16 gCurrentCourseId;
|
||||
extern u16 D_800DC5B4;
|
||||
|
|
@ -35,7 +37,6 @@ extern s32 D_80287554;
|
|||
extern f32 D_801647A4;
|
||||
extern f32 D_80150130[];
|
||||
|
||||
extern s32 gPrevLoadedAddress;
|
||||
extern s32 D_8015F734;
|
||||
|
||||
extern s32 D_8015F730;
|
||||
|
|
@ -44,9 +45,9 @@ extern f32 D_8015F8E4;
|
|||
extern s16 D_8015F6EA;
|
||||
extern s16 D_8015F6EE;
|
||||
extern s16 D_8015F6F2;
|
||||
extern u16 D_8015F6E8;
|
||||
extern u16 D_8015F6EC; // s16 or u16?
|
||||
extern u16 D_8015F6F0;
|
||||
extern s16 D_8015F6E8;
|
||||
extern s16 D_8015F6EC; // s16 or u16?
|
||||
extern s16 D_8015F6F0;
|
||||
extern s32 D_8015F59C;
|
||||
extern s32 D_8015F5A0;
|
||||
extern s32 D_8015F58C;
|
||||
|
|
|
|||
|
|
@ -2,28 +2,15 @@
|
|||
#include <PR/gu.h>
|
||||
#include <macros.h>
|
||||
#include "main.h"
|
||||
#include "math_util.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
#include "code_800431B0.h"
|
||||
#include "code_80057C60.h"
|
||||
#include "code_80091750.h"
|
||||
#include "code_80280650.h"
|
||||
#include "code_80281C40.h"
|
||||
#include "code_80281FA0.h"
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
|
||||
struct UnkStruct80287560 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
}; // 0xC
|
||||
|
||||
extern struct UnkStruct80287560 D_80287560[];
|
||||
extern s32 D_802874FC;
|
||||
|
||||
extern u32 gMenuSelectionFromEndingSequence;
|
||||
extern s32 D_80287554;
|
||||
extern u16 gIsInQuitToMenuTransition;
|
||||
extern Gfx D_00284F70[];
|
||||
extern Gfx D_00284EE0[];
|
||||
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
|
||||
extern f32 D_80150130[];
|
||||
void func_80281C40(void) {
|
||||
s32 i;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef CODE_80281C40_H
|
||||
#define CODE_80281C40_h
|
||||
|
||||
struct UnkStruct80287560 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
}; // 0xC
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_80281C40();
|
||||
void func_80281CB4(s32, s32, s32, s32);
|
||||
void func_80281D00();
|
||||
|
||||
extern struct UnkStruct80287560 D_80287560[];
|
||||
extern s32 D_802874FC;
|
||||
|
||||
extern u32 gMenuSelectionFromEndingSequence;
|
||||
extern s32 D_80287554;
|
||||
extern u16 gIsInQuitToMenuTransition;
|
||||
extern Gfx D_00284F70[];
|
||||
extern Gfx D_00284EE0[];
|
||||
|
||||
extern f32 D_80150148, D_8015014C, D_80150150;
|
||||
|
||||
extern f32 D_80150130[];
|
||||
|
||||
#endif
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
#include "variables.h"
|
||||
#include "framebuffers.h"
|
||||
#include "common_structs.h"
|
||||
#include "code_80027040.h"
|
||||
#include "kart_dma.h"
|
||||
|
||||
uintptr_t **gKartMarioTable0[] = {
|
||||
gKartMarioGroup8, gKartMarioGroup7, gKartMarioGroup6,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#ifndef CODE_80027040_H
|
||||
#define CODE_80027040_H
|
||||
#ifndef KART_DMA_H
|
||||
#define KART_DMA_H
|
||||
|
||||
#include "macros.h"
|
||||
#include "common_structs.h"
|
||||
|
|
@ -9,8 +9,8 @@
|
|||
void func_80027040(Player*, s8, s8, s8, s8);
|
||||
void func_80027560(Player*, s8, s8, s8, s8);
|
||||
void func_80027A20(Player*, s8, s8, s8);
|
||||
void func_80027BDC(UNUSED Player*, s32, void*, u16);
|
||||
void func_80027C74(UNUSED Player*, s32, void*, u16);
|
||||
void func_80027BDC(Player*, s32, void*, u16);
|
||||
void func_80027C74(Player*, s32, void*, u16);
|
||||
|
||||
/* This is where I'd put my static data, if I had any */
|
||||
|
||||
82
src/main.c
82
src/main.c
|
|
@ -12,23 +12,22 @@
|
|||
#include "common_structs.h"
|
||||
#include <defines.h>
|
||||
#include "framebuffers.h"
|
||||
#include "camera.h"
|
||||
#include "profiler.h"
|
||||
#include "race_logic.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
#include "code_800431B0.h"
|
||||
#include "code_8008C1D0.h"
|
||||
#include "code_80281780.h"
|
||||
|
||||
// Declarations (not in this file)
|
||||
void func_8008C214(void);
|
||||
void func_80091B78(void);
|
||||
void func_802A4D18(void);
|
||||
void init_rdp(void);
|
||||
void set_viewport(void);
|
||||
void select_framebuffer(void);
|
||||
void init_z_buffer(void);
|
||||
|
||||
void audio_init();
|
||||
void profiler_log_gfx_time(enum ProfilerGfxEvent eventID);
|
||||
void profiler_log_vblank_time(void);
|
||||
|
||||
void create_debug_thread(void);
|
||||
void start_debug_thread(void);
|
||||
|
||||
extern void func_80290B14();
|
||||
extern void func_80057A50(s32 arg0, s32 arg1, char arg2[8], s16 arg3);
|
||||
|
||||
struct SPTask *create_next_audio_frame_task(void);
|
||||
|
||||
|
|
@ -182,55 +181,6 @@ UNUSED s16 D_800DC590 = 0;
|
|||
f32 gVBlankTimer = 0.0f;
|
||||
f32 gCourseTimer = 0.0f;
|
||||
|
||||
|
||||
extern u64 rspbootTextStart[], rspbootTextEnd[];
|
||||
extern u64 gspF3DEXTextStart[], gspF3DEXTextEnd[];
|
||||
extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[];
|
||||
extern u64 gspF3DEXDataStart[];
|
||||
extern u64 gspF3DLXDataStart[];
|
||||
|
||||
extern u64 gGfxSPTaskOutputBuffer[];
|
||||
extern u32 gGfxSPTaskOutputBufferSize;
|
||||
|
||||
extern u32 gPrevLoadedAddress;
|
||||
extern u32 D_8015F734;
|
||||
extern u8 _data_segment2SegmentRomStart[];
|
||||
extern u8 _data_segment2SegmentRomEnd[];
|
||||
extern u8 _common_texturesSegmentRomStart[];
|
||||
extern u8 _common_texturesSegmentRomEnd[];
|
||||
extern u8 _data_802BA370SegmentRomStart[];
|
||||
extern u32 gHeapEndPtr;
|
||||
extern u32 *D_801978D0; // Segment? Keeps track of segmented addresses?
|
||||
|
||||
|
||||
|
||||
//extern u16 gFramebuffer0;
|
||||
//extern u16 gFramebuffer1;
|
||||
//extern u16 gFramebuffer2;
|
||||
|
||||
extern s16 gCurrentlyLoadedCourseId;
|
||||
extern s16 gCurrentCourseId;
|
||||
|
||||
extern u16 D_80164AF0;
|
||||
extern u16 D_800DC5FC;
|
||||
extern u16 gIsInQuitToMenuTransition;
|
||||
|
||||
|
||||
extern s32 D_8015F788;
|
||||
extern s16 D_801625E8;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5EC;
|
||||
|
||||
|
||||
extern Camera *camera1;
|
||||
extern Camera *camera2;
|
||||
extern Camera *camera3;
|
||||
extern Camera *camera4;
|
||||
|
||||
extern u16 D_800DC5B0;
|
||||
extern s32 gPlayerWinningIndex;
|
||||
|
||||
extern s32 gEnableResourceMeters;
|
||||
|
||||
void create_thread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri pri) {
|
||||
thread->next = NULL;
|
||||
thread->queue = NULL;
|
||||
|
|
@ -1160,12 +1110,12 @@ void thread5_game_loop(UNUSED void *arg) {
|
|||
set_vblank_handler(2, &gGameVblankHandler, &gGameVblankQueue, (OSMesg) OS_EVENT_SW2);
|
||||
// These variables track stats such as player wins.
|
||||
// In the event of a console reset, it remembers them.
|
||||
gNmiUnknown1 = (s32) pAppNmiBuffer;
|
||||
gNmiUnknown2 = (s32) pAppNmiBuffer + 2;
|
||||
gNmiUnknown3 = (s32) pAppNmiBuffer + 11;
|
||||
gNmiUnknown4 = (s32) pAppNmiBuffer + 23;
|
||||
gNmiUnknown5 = (s32) pAppNmiBuffer + 25;
|
||||
gNmiUnknown6 = (s32) pAppNmiBuffer + 28;
|
||||
gNmiUnknown1 = &pAppNmiBuffer[0]; // 2 u8's, tracks number of times player 1/2 won a VS race
|
||||
gNmiUnknown2 = &pAppNmiBuffer[2]; // 9 u8's, 3x3, tracks number of times player 1/2/3 has placed in 1st/2nd/3rd in a VS race
|
||||
gNmiUnknown3 = &pAppNmiBuffer[11]; // 12 u8's, 4x3, tracks number of times player 1/2/3/4 has placed in 1st/2nd/3rd in a VS race
|
||||
gNmiUnknown4 = &pAppNmiBuffer[23]; // 2 u8's, tracking number of Battle mode wins by player 1/2
|
||||
gNmiUnknown5 = &pAppNmiBuffer[25]; // 3 u8's, tracking number of Battle mode wins by player 1/2/3
|
||||
gNmiUnknown6 = &pAppNmiBuffer[28]; // 4 u8's, tracking number of Battle mode wins by player 1/2/3/4
|
||||
rendering_init();
|
||||
read_controllers();
|
||||
func_800C5CB8();
|
||||
|
|
@ -1210,4 +1160,4 @@ void thread4_audio(UNUSED void *arg) {
|
|||
}
|
||||
profiler_log_thread4_time();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
47
src/main.h
47
src/main.h
|
|
@ -40,6 +40,8 @@ void init_seg_80280000();
|
|||
void init_seg_8028DF00();
|
||||
void dma_copy(u8*, u8*, u32);
|
||||
void setup_game_memory();
|
||||
void game_init_clear_framebuffer();
|
||||
void race_logic_loop();
|
||||
void game_state_handler();
|
||||
void interrupt_gfx_sptask();
|
||||
void receive_new_tasks();
|
||||
|
|
@ -67,10 +69,51 @@ extern OSMesgQueue gDmaMesgQueue;
|
|||
extern s32 gGamestateNext;
|
||||
extern s32 gActiveScreenMode;
|
||||
extern f32 gVBlankTimer;
|
||||
extern uintptr_t pAppNmiBuffer;
|
||||
extern s32 gNmiUnknown1, gNmiUnknown2, gNmiUnknown3, gNmiUnknown4, gNmiUnknown5, gNmiUnknown6;
|
||||
extern u8 *pAppNmiBuffer;
|
||||
extern u8 *gNmiUnknown1;
|
||||
extern u8 *gNmiUnknown2;
|
||||
extern u8 *gNmiUnknown3;
|
||||
extern u8 *gNmiUnknown4;
|
||||
extern u8 *gNmiUnknown5;
|
||||
extern u8 *gNmiUnknown6;
|
||||
extern s32 gScreenModeSelection;
|
||||
|
||||
extern s16 sIsController1Unplugged;
|
||||
|
||||
extern u64 rspbootTextStart[], rspbootTextEnd[];
|
||||
extern u64 gspF3DEXTextStart[], gspF3DEXTextEnd[];
|
||||
extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[];
|
||||
extern u64 gspF3DEXDataStart[];
|
||||
extern u64 gspF3DLXDataStart[];
|
||||
|
||||
extern u64 gGfxSPTaskOutputBuffer[];
|
||||
extern u32 gGfxSPTaskOutputBufferSize;
|
||||
|
||||
extern u32 gPrevLoadedAddress;
|
||||
extern s32 D_8015F734;
|
||||
extern u8 _data_segment2SegmentRomStart[];
|
||||
extern u8 _data_segment2SegmentRomEnd[];
|
||||
extern u8 _common_texturesSegmentRomStart[];
|
||||
extern u8 _common_texturesSegmentRomEnd[];
|
||||
extern u8 _data_802BA370SegmentRomStart[];
|
||||
extern u32 gHeapEndPtr;
|
||||
extern u32 *D_801978D0; // Segment? Keeps track of segmented addresses?
|
||||
|
||||
extern s16 gCurrentlyLoadedCourseId;
|
||||
extern s16 gCurrentCourseId;
|
||||
|
||||
extern s16 D_80164AF0;
|
||||
extern u16 D_800DC5FC;
|
||||
extern u16 gIsInQuitToMenuTransition;
|
||||
|
||||
|
||||
extern s32 D_8015F788;
|
||||
extern s16 D_801625E8;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5EC;
|
||||
|
||||
extern u16 D_800DC5B0;
|
||||
extern s32 gPlayerWinningIndex;
|
||||
|
||||
extern s32 gEnableResourceMeters;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ void func_802B5A44(Mat4, s16);
|
|||
void func_802B5AAC(Mat4, s16);
|
||||
void func_802B5CAC(s16, s16, Vec3f);
|
||||
void func_802B5D30(s16, s16, s32);
|
||||
void func_802B5D64(u32, s16, s32, s32);
|
||||
void func_802B5F00(Mat4, f32);
|
||||
void func_802B5F74(Mat4, Vec3f, Vec3s);
|
||||
void func_802B60B4(Mat4, Vec3s, Vec3s);
|
||||
|
|
|
|||
10
src/memory.c
10
src/memory.c
|
|
@ -484,8 +484,6 @@ void func_802A8940(Gfx *arg0, u8 *arg1, u8 arg2) {
|
|||
D_802BA270++;
|
||||
}
|
||||
|
||||
extern s32 D_802BA270;
|
||||
|
||||
// end display list
|
||||
void func_802A89C0(Gfx *arg0, u8 arg1, u8 arg2) {
|
||||
arg0[D_802BA270].words.w0 = G_ENDDL << 24;
|
||||
|
|
@ -4233,14 +4231,6 @@ block_12:
|
|||
GLOBAL_ASM("asm/non_matchings/memory/func_802AF5D8.s")
|
||||
#endif
|
||||
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
|
||||
struct UnkStruct802AF7B4 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
};
|
||||
|
||||
void func_802AF7B4(uintptr_t addr, s32 arg1, s32 arg2) {
|
||||
s32 segment = SEGMENT_NUMBER2(addr);
|
||||
s32 offset = SEGMENT_OFFSET(addr);
|
||||
|
|
|
|||
90
src/memory.h
90
src/memory.h
|
|
@ -15,6 +15,11 @@ struct MainPoolState {
|
|||
struct MainPoolState *prev;
|
||||
};
|
||||
|
||||
struct UnkStruct802AF7B4 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
};
|
||||
|
||||
struct UnkStruct_802B8CD4 {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
|
|
@ -35,7 +40,7 @@ struct AllocOnlyPool {
|
|||
|
||||
#define ALIGN4(val) (((val) + 0x3) & ~0x3)
|
||||
|
||||
s32 func_802A7B70(s32);
|
||||
s32 func_802A7B70(s32);
|
||||
uintptr_t set_segment_base_addr(s32, void*);
|
||||
void *get_segment_base_addr(s32);
|
||||
s32 lookup_item(u32);
|
||||
|
|
@ -56,44 +61,51 @@ void *load_segment(s32, u8*, u8*, u32);
|
|||
void *func_802A8190(s32, s32);
|
||||
void func_802A81EC();
|
||||
struct AllocOnlyPool *alloc_only_pool_init(u32, u32);
|
||||
u32 func_802A82AC(s32);
|
||||
s32 func_802A82E4(u8*, u8*);
|
||||
s32 func_802A8348(s32, s32, s32);
|
||||
s32 func_802A841C(s32, s32, s32);
|
||||
s32 func_802A84F4(s32, u32, u32);
|
||||
u32 MIO0_0F(s32, u32, u32);
|
||||
void func_802A8844();
|
||||
void func_802A884C(Gfx*, u8, s8);
|
||||
void func_802A8940(Gfx*, u8*, u8);
|
||||
void func_802A89C0(Gfx*, u8, u8);
|
||||
void func_802A8A04(Gfx*, u8, u8);
|
||||
void func_802A8A70(Gfx*, u8, u8);
|
||||
void func_802A8ADC(Gfx*, u8, u8);
|
||||
void func_802A8B48(Gfx*, u8, u8);
|
||||
void func_802A8BB4(Gfx*, u8, u8);
|
||||
void func_802A8C20(Gfx*, u8, u8);
|
||||
void func_802A8C8C(Gfx*, u8, u8);
|
||||
void func_802A8CF8(Gfx*, u8, u8);
|
||||
void func_802A8D64(Gfx*, u8, u8);
|
||||
void func_802A8DD0(Gfx*, u8, u8);
|
||||
void func_802A8E3C(Gfx*, u8, u8);
|
||||
void func_802A8EA8(Gfx*, u8, u8);
|
||||
void func_802A8F14(Gfx*, u8, u8);
|
||||
void func_802A94D8(Gfx*, u8, u8);
|
||||
void func_802A9544(Gfx*, u8, u8);
|
||||
void func_802AAAAC(UnkActorInner*);
|
||||
s8 func_802ABD10(u16);
|
||||
s16 func_802ABD40(u16);
|
||||
s16 func_802ABD7C(u16);
|
||||
s16 func_802ABDB8(u16);
|
||||
s16 func_802ABDF4(u16);
|
||||
f32 func_802ABE30(f32, f32, f32, u16);
|
||||
f32 func_802ABEAC(UnkActorInner*, Vec3f);
|
||||
void process_shell_collision(Vec3f, f32, Vec3f, f32);
|
||||
void func_802AC098(UnkActorInner*, Vec3f);
|
||||
void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_802ADDC8(UnkActorInner*, f32, f32, f32, f32);
|
||||
f32 func_802AE1C0(f32, f32, f32);
|
||||
u32 func_802A82AC(s32);
|
||||
s32 func_802A82E4(u8*, u8*);
|
||||
s32 func_802A8348(s32, s32, s32);
|
||||
s32 func_802A841C(s32, s32, s32);
|
||||
s32 func_802A84F4(s32, u32, u32);
|
||||
u32 MIO0_0F(s32, u32, u32);
|
||||
void func_802A8844();
|
||||
void func_802A884C(Gfx*, u8, s8);
|
||||
void func_802A8940(Gfx*, u8*, u8);
|
||||
void func_802A89C0(Gfx*, u8, u8);
|
||||
void func_802A8A04(Gfx*, u8, u8);
|
||||
void func_802A8A70(Gfx*, u8, u8);
|
||||
void func_802A8ADC(Gfx*, u8, u8);
|
||||
void func_802A8B48(Gfx*, u8, u8);
|
||||
void func_802A8BB4(Gfx*, u8, u8);
|
||||
void func_802A8C20(Gfx*, u8, u8);
|
||||
void func_802A8C8C(Gfx*, u8, u8);
|
||||
void func_802A8CF8(Gfx*, u8, u8);
|
||||
void func_802A8D64(Gfx*, u8, u8);
|
||||
void func_802A8DD0(Gfx*, u8, u8);
|
||||
void func_802A8E3C(Gfx*, u8, u8);
|
||||
void func_802A8EA8(Gfx*, u8, u8);
|
||||
void func_802A8F14(Gfx*, u8, u8);
|
||||
void func_802A94D8(Gfx*, u8, u8);
|
||||
void func_802A9544(Gfx*, u8, u8);
|
||||
void func_802AAA70(uintptr_t);
|
||||
void func_802AAAAC(UnkActorInner*);
|
||||
s8 func_802ABD10(u16);
|
||||
s16 func_802ABD40(u16);
|
||||
s16 func_802ABD7C(u16);
|
||||
s16 func_802ABDB8(u16);
|
||||
s16 func_802ABDF4(u16);
|
||||
f32 func_802ABE30(f32, f32, f32, u16);
|
||||
f32 func_802ABEAC(UnkActorInner*, Vec3f);
|
||||
void process_shell_collision(Vec3f, f32, Vec3f, f32);
|
||||
void func_802AC098(UnkActorInner*, f32*);
|
||||
void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_802ADDC8(UnkActorInner*, f32, f32, f32, f32);
|
||||
f32 func_802AE1C0(f32, f32, f32);
|
||||
void func_802AF314();
|
||||
void func_802AF588(s32);
|
||||
void func_802AF5AC(s32, s8);
|
||||
void func_802AF5D8(u32, s8, s32);
|
||||
void func_802AF7B4(uintptr_t, s32, s32);
|
||||
void func_802AF8BC(uintptr_t, s8, u8, u8, u8);
|
||||
|
||||
// main.c
|
||||
extern struct D_80150158 gD_80150158[];
|
||||
|
|
|
|||
516
src/race_logic.c
516
src/race_logic.c
|
|
@ -4,8 +4,16 @@
|
|||
#include <common_structs.h>
|
||||
#include <config.h>
|
||||
#include <defines.h>
|
||||
#include "waypoints.h"
|
||||
#include "camera.h"
|
||||
#include "waypoints.h"
|
||||
#include "staff_ghosts.h"
|
||||
#include "code_800029B0.h"
|
||||
#include "code_80057C60.h"
|
||||
#include "code_80071F00.h"
|
||||
#include "code_80091750.h"
|
||||
#include "audio/external.h"
|
||||
#include "race_logic.h"
|
||||
#include "skybox_and_splitscreen.h"
|
||||
|
||||
extern Player *gPlayerTwo;
|
||||
extern Player *gPlayerThree;
|
||||
|
|
@ -27,8 +35,8 @@ extern struct UnkStruct_800DC5EC *D_800DC5F0;
|
|||
extern struct UnkStruct_800DC5EC *D_800DC5F4;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F8;
|
||||
|
||||
extern u8 *gNmiUnknown2;
|
||||
extern u8 *gNmiUnknown1;
|
||||
extern u8 *gNmiUnknown2;
|
||||
extern u8 *gNmiUnknown3;
|
||||
extern u8 *gNmiUnknown4;
|
||||
extern u8 *gNmiUnknown5;
|
||||
|
|
@ -40,7 +48,6 @@ extern s8 gCupCourseSelection;
|
|||
extern s32 D_800DC544;
|
||||
|
||||
extern Player gPlayers[];
|
||||
extern Player *gPlayerTwo;
|
||||
extern Player *gPlayerOne;
|
||||
extern s32 gLapCountByPlayerId[];
|
||||
extern s32 D_80150120;
|
||||
|
|
@ -78,38 +85,6 @@ extern s16 D_8015F8F2[];
|
|||
extern f32 D_8015F8D8;
|
||||
extern f32 D_80150148;
|
||||
|
||||
extern void func_800CA118();
|
||||
extern void func_800CA49C();
|
||||
extern void func_8028E678();
|
||||
extern void func_80009B60();
|
||||
|
||||
extern void func_800CA330();
|
||||
extern void func_800CA388();
|
||||
|
||||
extern void func_80092630();
|
||||
extern void func_8028E438();
|
||||
extern void func_800C8EF8();
|
||||
extern void play_sound2();
|
||||
extern void func_80002DAC();
|
||||
extern void func_8005C64C();
|
||||
extern void func_8028F914();
|
||||
extern void func_802A7940();
|
||||
extern void func_802A7728();
|
||||
extern void func_80078F64();
|
||||
extern void func_800925A0();
|
||||
extern void func_8028F4E8();
|
||||
extern void func_8028EDA8();
|
||||
extern void update_player_battle_status();
|
||||
extern void update_race_position_data();
|
||||
extern void func_8028F970();
|
||||
extern void func_8028E298();
|
||||
extern void func_80092564();
|
||||
extern void func_8028F8BC();
|
||||
extern void func_800029B0();
|
||||
extern void func_800C8EAC();
|
||||
extern void func_800074D4();
|
||||
extern void func_80005AE8();
|
||||
|
||||
extern u16 D_8015F894;
|
||||
|
||||
u16 D_802BA030;
|
||||
|
|
@ -200,9 +175,6 @@ void update_player_battle_status(void) {
|
|||
}
|
||||
}
|
||||
|
||||
extern f32 gTimePlayerLastTouchedFinishLine[];
|
||||
extern f32 gLapCompletionPercentByPlayerId[];
|
||||
|
||||
void func_8028E298(void) {
|
||||
f32 temp_v0;
|
||||
s32 i;
|
||||
|
|
@ -723,8 +695,6 @@ void func_8028EF28(void) {
|
|||
void func_8028F3E8(void) {
|
||||
|
||||
}
|
||||
extern s32 gPlayerPositions[]; // D_801643B8 (position for each player)
|
||||
extern s16 gPlayerPositionLUT[]; // D_8015F8F0 (player index at each position)
|
||||
|
||||
// func_8028F3F0
|
||||
void update_race_position_data(void) {
|
||||
|
|
@ -780,120 +750,97 @@ void func_8028F4E8(void) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
extern void *D_800DC5EC;
|
||||
extern void *D_800DC5F0;
|
||||
extern void *D_800DC5F4;
|
||||
extern void *D_800DC5F8;
|
||||
extern f32 D_802BA034;
|
||||
|
||||
void func_8028F588(void) {
|
||||
s32 temp_f10;
|
||||
s32 temp_f10_2;
|
||||
s32 temp_f10_3;
|
||||
s32 temp_f18;
|
||||
s32 temp_f18_2;
|
||||
s32 temp_f6;
|
||||
s32 temp_f6_2;
|
||||
s32 temp_f6_3;
|
||||
s16 var_v0;
|
||||
s16 var_v0_2;
|
||||
s16 var_v0_3;
|
||||
s16 var_v0_4;
|
||||
s16 var_v0_5;
|
||||
s16 var_v0_6;
|
||||
s16 var_v0_7;
|
||||
s16 var_v0_8;
|
||||
s32 temp_v0;
|
||||
s16 phi_v0;
|
||||
s16 phi_v0_2;
|
||||
s16 phi_v0_3;
|
||||
s16 phi_v0_4;
|
||||
s16 phi_v0_5;
|
||||
s16 phi_v0_6;
|
||||
s16 phi_v0_7;
|
||||
s16 phi_v0_8;
|
||||
|
||||
temp_v0 = gActiveScreenMode;
|
||||
if (temp_v0 != 0) {
|
||||
if (temp_v0 != 1) {
|
||||
if (temp_v0 != 2) {
|
||||
if (temp_v0 != 3) {
|
||||
return;
|
||||
}
|
||||
temp_f10 = (s32) (160.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f10 <= 0) {
|
||||
phi_v0 = 1;
|
||||
} else {
|
||||
phi_v0 = (s16) temp_f10;
|
||||
if ((s32) (s16) temp_f10 >= 0x140) {
|
||||
phi_v0 = 0x13C;
|
||||
}
|
||||
}
|
||||
D_800DC5EC->screenWidth = phi_v0;
|
||||
D_800DC5F0->screenWidth = phi_v0;
|
||||
D_800DC5F4->screenWidth = phi_v0;
|
||||
D_800DC5F8->screenWidth = phi_v0;
|
||||
temp_f6 = (s32) (120.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f6 <= 0) {
|
||||
phi_v0_2 = 1;
|
||||
} else {
|
||||
phi_v0_2 = (s16) temp_f6;
|
||||
if ((s32) (s16) temp_f6 >= 0xF0) {
|
||||
phi_v0_2 = 0xEC;
|
||||
}
|
||||
}
|
||||
D_800DC5EC->screenHeight = phi_v0_2;
|
||||
D_800DC5F0->screenHeight = phi_v0_2;
|
||||
D_800DC5F4->screenHeight = phi_v0_2;
|
||||
D_800DC5F8->screenHeight = phi_v0_2;
|
||||
return;
|
||||
}
|
||||
temp_f18 = (s32) (160.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f18 <= 0) {
|
||||
phi_v0_3 = 1;
|
||||
} else {
|
||||
phi_v0_3 = (s16) temp_f18;
|
||||
if ((s32) (s16) temp_f18 >= 0x140) {
|
||||
phi_v0_3 = 0x13C;
|
||||
}
|
||||
}
|
||||
D_800DC5EC->screenWidth = phi_v0_3;
|
||||
D_800DC5F0->screenWidth = phi_v0_3;
|
||||
temp_f10_2 = (s32) (240.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f10_2 <= 0) {
|
||||
phi_v0_4 = 1;
|
||||
} else {
|
||||
phi_v0_4 = (s16) temp_f10_2;
|
||||
if ((s32) (s16) temp_f10_2 >= 0x1E0) {
|
||||
phi_v0_4 = 0x1DC;
|
||||
}
|
||||
}
|
||||
D_800DC5EC->screenHeight = phi_v0_4;
|
||||
D_800DC5F0->screenHeight = phi_v0_4;
|
||||
return;
|
||||
switch (temp_v0) { /* irregular */
|
||||
case 0:
|
||||
var_v0 = (s16) (s32) (320.0f * D_802BA034);
|
||||
if (var_v0 < 0) {
|
||||
var_v0 = 1;
|
||||
}
|
||||
temp_f6_2 = (s32) (320.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f6_2 <= 0) {
|
||||
phi_v0_5 = 1;
|
||||
} else {
|
||||
phi_v0_5 = (s16) temp_f6_2;
|
||||
if ((s32) (s16) temp_f6_2 >= 0x280) {
|
||||
phi_v0_5 = 0x27C;
|
||||
}
|
||||
D_800DC5EC->unk2C = var_v0;
|
||||
var_v0_2 = (s16) (s32) (240.0f * D_802BA034);
|
||||
if (var_v0_2 < 0) {
|
||||
var_v0_2 = 1;
|
||||
}
|
||||
D_800DC5EC->screenWidth = phi_v0_5;
|
||||
D_800DC5F0->screenWidth = phi_v0_5;
|
||||
temp_f18_2 = (s32) (120.0f * D_802BA034);
|
||||
if ((s32) (s16) temp_f18_2 <= 0) {
|
||||
phi_v0_6 = 1;
|
||||
} else {
|
||||
phi_v0_6 = (s16) temp_f18_2;
|
||||
if ((s32) (s16) temp_f18_2 >= 0xF0) {
|
||||
phi_v0_6 = 0xEC;
|
||||
}
|
||||
D_800DC5EC->unk2E = var_v0_2;
|
||||
return;
|
||||
case 2:
|
||||
var_v0_3 = (s16) (s32) (160.0f * D_802BA034);
|
||||
if (var_v0_3 <= 0) {
|
||||
var_v0_3 = 1;
|
||||
} else if (var_v0_3 >= 0x140) {
|
||||
var_v0_3 = 0x013C;
|
||||
}
|
||||
D_800DC5EC->screenHeight = phi_v0_6;
|
||||
D_800DC5F0->screenHeight = phi_v0_6;
|
||||
D_800DC5EC->unk2C = var_v0_3;
|
||||
D_800DC5F0->unk2C = var_v0_3;
|
||||
var_v0_4 = (s16) (s32) (240.0f * D_802BA034);
|
||||
if (var_v0_4 <= 0) {
|
||||
var_v0_4 = 1;
|
||||
} else if (var_v0_4 >= 0x1E0) {
|
||||
var_v0_4 = 0x01DC;
|
||||
}
|
||||
D_800DC5EC->unk2E = var_v0_4;
|
||||
D_800DC5F0->unk2E = var_v0_4;
|
||||
return;
|
||||
case 1:
|
||||
var_v0_5 = (s16) (s32) (320.0f * D_802BA034);
|
||||
if (var_v0_5 <= 0) {
|
||||
var_v0_5 = 1;
|
||||
} else if (var_v0_5 >= 0x280) {
|
||||
var_v0_5 = 0x027C;
|
||||
}
|
||||
D_800DC5EC->unk2C = var_v0_5;
|
||||
D_800DC5F0->unk2C = var_v0_5;
|
||||
var_v0_6 = (s16) (s32) (120.0f * D_802BA034);
|
||||
if (var_v0_6 <= 0) {
|
||||
var_v0_6 = 1;
|
||||
} else if (var_v0_6 >= 0xF0) {
|
||||
var_v0_6 = 0x00EC;
|
||||
}
|
||||
D_800DC5EC->unk2E = var_v0_6;
|
||||
D_800DC5F0->unk2E = var_v0_6;
|
||||
return;
|
||||
case 3:
|
||||
var_v0_7 = (s16) (s32) (160.0f * D_802BA034);
|
||||
if (var_v0_7 <= 0) {
|
||||
var_v0_7 = 1;
|
||||
} else if (var_v0_7 >= 0x140) {
|
||||
var_v0_7 = 0x013C;
|
||||
}
|
||||
D_800DC5EC->unk2C = var_v0_7;
|
||||
D_800DC5F0->unk2C = var_v0_7;
|
||||
D_800DC5F4->unk2C = var_v0_7;
|
||||
D_800DC5F8->unk2C = var_v0_7;
|
||||
var_v0_8 = (s16) (s32) (120.0f * D_802BA034);
|
||||
if (var_v0_8 <= 0) {
|
||||
var_v0_8 = 1;
|
||||
} else if (var_v0_8 >= 0xF0) {
|
||||
var_v0_8 = 0x00EC;
|
||||
}
|
||||
D_800DC5EC->unk2E = var_v0_8;
|
||||
D_800DC5F0->unk2E = var_v0_8;
|
||||
D_800DC5F4->unk2E = var_v0_8;
|
||||
D_800DC5F8->unk2E = var_v0_8;
|
||||
return;
|
||||
}
|
||||
temp_f10_3 = (s32) (320.0f * D_802BA034);
|
||||
phi_v0_7 = (s16) temp_f10_3;
|
||||
if ((s32) (s16) temp_f10_3 < 0) {
|
||||
phi_v0_7 = 1;
|
||||
}
|
||||
D_800DC5EC->screenWidth = phi_v0_7;
|
||||
temp_f6_3 = (s32) (240.0f * D_802BA034);
|
||||
phi_v0_8 = (s16) temp_f6_3;
|
||||
if ((s32) (s16) temp_f6_3 < 0) {
|
||||
phi_v0_8 = 1;
|
||||
}
|
||||
D_800DC5EC->screenHeight = phi_v0_8;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/race_logic/func_8028F588.s")
|
||||
|
|
@ -916,100 +863,100 @@ void func_8028F914(void) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
? func_800029B0(); /* extern */
|
||||
? func_80005AE8(Player *); /* extern */
|
||||
? func_800C9F90(?); /* extern */
|
||||
? play_sound2(?); /* extern */
|
||||
extern s32 D_80162DF0;
|
||||
extern void *gControllerOne;
|
||||
static u16 D_800DC5A8; /* unable to generate initializer */
|
||||
|
||||
void func_8028F970(void) {
|
||||
Player *temp_a0;
|
||||
Player *temp_a0_2;
|
||||
Player *temp_a0_3;
|
||||
s32 temp_s2;
|
||||
struct Controller *temp_a1;
|
||||
Player *var_s3;
|
||||
s32 var_s2;
|
||||
struct Controller *temp_s0;
|
||||
u16 temp_t7;
|
||||
u16 temp_v0;
|
||||
u16 temp_v0_2;
|
||||
u16 temp_v0_3;
|
||||
Player *phi_s3;
|
||||
s32 phi_s2;
|
||||
u16 phi_a0;
|
||||
void *temp_a1;
|
||||
|
||||
if (D_8015F890 == 0) {
|
||||
phi_s3 = gPlayers;
|
||||
phi_s2 = 0;
|
||||
var_s3 = gPlayers;
|
||||
var_s2 = 0;
|
||||
loop_2:
|
||||
temp_v0 = phi_s3->unk_000;
|
||||
if (((temp_v0 & PLAYER_HUMAN) != 0) && ((temp_v0 & PLAYER_CPU) == 0)) {
|
||||
temp_s0 = &gControllers[phi_s2];
|
||||
temp_v0 = var_s3->unk_000;
|
||||
if ((temp_v0 & 0x4000) && !(temp_v0 & 0x1000)) {
|
||||
temp_s0 = &gControllers[var_s2];
|
||||
if (gActiveScreenMode != 3) {
|
||||
temp_v0_2 = temp_s0->buttonPressed;
|
||||
if (((temp_v0_2 & 0x20) != 0) && ((temp_s0->button & 0x10) == 0)) {
|
||||
if ((temp_v0_2 & 0x20) && !(temp_s0->button & 0x10)) {
|
||||
temp_s0->buttonPressed = temp_v0_2 & 0xFFDF;
|
||||
temp_t7 = D_800DC5A8 + 1;
|
||||
D_800DC5A8 = temp_t7;
|
||||
if ((temp_t7 & 0xFFFF) >= 3) {
|
||||
D_800DC5A8 = 0U;
|
||||
D_800DC5A8 = 0;
|
||||
}
|
||||
play_sound2(0x4900801C);
|
||||
func_800029B0();
|
||||
}
|
||||
}
|
||||
if (((temp_s0->buttonPressed & 0x1000) != 0) && (temp_v0_3 = temp_s0->button, ((temp_v0_3 & 0x10) == 0)) && ((temp_v0_3 & 0x20) == 0)) {
|
||||
if ((temp_s0->buttonPressed & 0x1000) && (temp_v0_3 = temp_s0->button, ((temp_v0_3 & 0x10) == 0)) && !(temp_v0_3 & 0x20)) {
|
||||
func_8028DF00();
|
||||
D_800DC5FC = (s16) (((s32) (temp_s0 - gControllerOne) >> 4) + 1);
|
||||
D_800DC5FC = ((s32) (temp_s0 - gControllerOne) >> 4) + 1;
|
||||
temp_s0->buttonPressed = 0;
|
||||
func_800C9F90(1);
|
||||
D_80162DF0 = 1;
|
||||
if (gModeSelection == TIME_TRIALS) {
|
||||
if (gModeSelection == 1) {
|
||||
temp_a0 = gPlayerOne;
|
||||
if ((temp_a0->unk_000 & 0x8100) != 0) {
|
||||
if (temp_a0->unk_000 & 0x8100) {
|
||||
func_80005AE8(temp_a0);
|
||||
}
|
||||
temp_a0_2 = gPlayerTwo;
|
||||
if ((temp_a0_2->unk_000 & 0x8100) != 0) {
|
||||
if (temp_a0_2->unk_000 & 0x8100) {
|
||||
func_80005AE8(temp_a0_2);
|
||||
}
|
||||
temp_a0_3 = gPlayerThree;
|
||||
if ((temp_a0_3->unk_000 & 0x8100) != 0) {
|
||||
if (temp_a0_3->unk_000 & 0x8100) {
|
||||
func_80005AE8(temp_a0_3);
|
||||
return;
|
||||
}
|
||||
// Duplicate return node #29. Try simplifying control flow for better match
|
||||
return;
|
||||
}
|
||||
// Duplicate return node #29. Try simplifying control flow for better match
|
||||
return;
|
||||
} else {
|
||||
goto block_20;
|
||||
}
|
||||
goto block_20;
|
||||
}
|
||||
} else {
|
||||
block_20:
|
||||
temp_s2 = phi_s2 + 1;
|
||||
phi_s3 += 0xDD8;
|
||||
phi_s2 = temp_s2;
|
||||
if (temp_s2 == 4) {
|
||||
if ((gEnableDebugMode != 0) && (gModeSelection != BATTLE)) {
|
||||
temp_a1 = gControllerOne;
|
||||
if ((temp_a1->buttonPressed & 0x800) != 0) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
}
|
||||
phi_a0 = temp_a1->buttonPressed;
|
||||
if ((temp_a1->buttonPressed & 0x100) != 0) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
gLapCountByPlayerId->unk4 = 2;
|
||||
phi_a0 = temp_a1->buttonPressed;
|
||||
}
|
||||
if ((phi_a0 & 0x400) != 0) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
gLapCountByPlayerId->unk4 = 2;
|
||||
gLapCountByPlayerId->unk8 = 2;
|
||||
gLapCountByPlayerId->unkC = 2;
|
||||
gLapCountByPlayerId->unk10 = 2;
|
||||
gLapCountByPlayerId->unk14 = 2;
|
||||
gLapCountByPlayerId->unk18 = 2;
|
||||
gLapCountByPlayerId->unk1C = 2;
|
||||
var_s2 += 1;
|
||||
var_s3 += 0xDD8;
|
||||
if (var_s2 == 4) {
|
||||
if ((gEnableDebugMode != 0) && (gModeSelection != 3)) {
|
||||
temp_a1 = gControllerOne;
|
||||
if (temp_a1->unk6 & 0x800) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
}
|
||||
if (temp_a1->unk6 & 0x100) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
gLapCountByPlayerId->unk4 = 2;
|
||||
}
|
||||
if (temp_a1->unk6 & 0x400) {
|
||||
gLapCountByPlayerId->unk0 = 2;
|
||||
gLapCountByPlayerId->unk4 = 2;
|
||||
gLapCountByPlayerId->unk8 = 2;
|
||||
gLapCountByPlayerId->unkC = 2;
|
||||
gLapCountByPlayerId->unk10 = 2;
|
||||
gLapCountByPlayerId->unk14 = 2;
|
||||
gLapCountByPlayerId->unk18 = 2;
|
||||
gLapCountByPlayerId->unk1C = 2;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
goto loop_2;
|
||||
}
|
||||
// Duplicate return node #29. Try simplifying control flow for better match
|
||||
return;
|
||||
}
|
||||
goto loop_2;
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
@ -1043,7 +990,6 @@ void func_8028FC34(void) {
|
|||
gMenuSelection = LOGO_INTRO_MENU;
|
||||
}
|
||||
}
|
||||
extern u16 D_80162DD6;
|
||||
|
||||
void func_8028FCBC(void) {
|
||||
Player *ply = &gPlayers[0];
|
||||
|
|
@ -1255,7 +1201,14 @@ void func_802903B0(void) {
|
|||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
void func_802903D8(u16 *arg0, u16 *arg1) {
|
||||
//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc
|
||||
static f32 D_802B92A0 = 0.1f;
|
||||
static f32 D_802B92A4 = 0.2f;
|
||||
static f32 D_802B92A8 = 0.55f;
|
||||
static f64 D_802B92B0 = 0.85;
|
||||
static ? gFloatArray802B8790; /* unable to generate initializer */
|
||||
|
||||
void func_802903D8(Player *player_one, Player *player_two) {
|
||||
f32 sp74;
|
||||
f32 sp70;
|
||||
f32 sp68;
|
||||
|
|
@ -1264,14 +1217,12 @@ void func_802903D8(u16 *arg0, u16 *arg1) {
|
|||
f32 sp5C;
|
||||
f32 sp58;
|
||||
f32 sp54;
|
||||
? sp28;
|
||||
f32 sp24;
|
||||
f32 sp20;
|
||||
f32 temp_f0;
|
||||
f32 temp_f0_2;
|
||||
f32 temp_f0_3;
|
||||
f32 temp_f0_4;
|
||||
f32 temp_f0_5;
|
||||
f32 temp_f14;
|
||||
f32 temp_f16;
|
||||
f32 temp_f2;
|
||||
|
|
@ -1280,119 +1231,102 @@ void func_802903D8(u16 *arg0, u16 *arg1) {
|
|||
f32 temp_f6;
|
||||
f32 temp_f6_2;
|
||||
s32 temp_v0;
|
||||
u16 *temp_a0;
|
||||
u16 *temp_a2;
|
||||
u16 *temp_a3;
|
||||
u16 *phi_a3;
|
||||
u16 *phi_a2;
|
||||
|
||||
temp_f4 = (arg0->unk70 + arg1->unk70) - 5.0f;
|
||||
temp_a3 = arg0;
|
||||
temp_a2 = arg1;
|
||||
temp_f4 = (player_one->boundingBoxSize + player_two->boundingBoxSize) - 5.0f;
|
||||
sp74 = temp_f4;
|
||||
sp28.unk0 = (s32) gFloatArray802B8790.unk0;
|
||||
sp28.unk4 = (s32) gFloatArray802B8790.unk4;
|
||||
sp28.unk8 = (s32) gFloatArray802B8790.unk8;
|
||||
sp28.unkC = (s32) gFloatArray802B8790.unkC;
|
||||
sp28.unk10 = (s32) gFloatArray802B8790.unk10;
|
||||
sp28.unk14 = (s32) gFloatArray802B8790.unk14;
|
||||
sp28.unk18 = (s32) gFloatArray802B8790.unk18;
|
||||
sp28.unk1C = (s32) gFloatArray802B8790.unk1C;
|
||||
sp24 = *(&sp28 + (arg0->unk254 * 4));
|
||||
sp20 = *(&sp28 + (arg1->unk254 * 4));
|
||||
sp60 = arg0->unk14 - arg1->unk14;
|
||||
temp_f6 = (arg0->unk18 - arg0->unk70) - (arg1->unk18 - arg1->unk70);
|
||||
sp28[0].unk0 = gFloatArray802B8790.unk0;
|
||||
sp28[0].unk4 = (s32) gFloatArray802B8790.unk4;
|
||||
sp28[0].unk8 = (s32) gFloatArray802B8790.unk8;
|
||||
sp28[0].unkC = (s32) gFloatArray802B8790.unkC;
|
||||
sp28[0].unk10 = (s32) gFloatArray802B8790.unk10;
|
||||
sp28[0].unk14 = (s32) gFloatArray802B8790.unk14;
|
||||
sp28[0].unk18 = (s32) gFloatArray802B8790.unk18;
|
||||
sp28[0].unk1C = (s32) gFloatArray802B8790.unk1C;
|
||||
sp24 = (&sp28[0])[player_one->characterId];
|
||||
sp20 = (&sp28[0])[player_two->characterId];
|
||||
sp60 = player_one->pos[0] - player_two->pos[0];
|
||||
temp_f6 = (player_one->pos[1] - player_one->boundingBoxSize) - (player_two->pos[1] - player_two->boundingBoxSize);
|
||||
sp64 = temp_f6;
|
||||
sp68 = arg0->unk1C - arg1->unk1C;
|
||||
sp54 = arg1->unk34 - arg0->unk34;
|
||||
sp58 = arg1->unk38 - arg0->unk38;
|
||||
sp5C = arg1->unk3C - arg0->unk3C;
|
||||
temp_f0 = (sp68 * sp68) + ((sp60 * sp60) + (temp_f6 * temp_f6));
|
||||
temp_f0_2 = sqrtf(temp_f0);
|
||||
if (!(temp_f0_2 < D_802B92A0) && !(temp_f4 < temp_f0_2)) {
|
||||
if ((arg0->unk0 & 0x40) != 0) {
|
||||
if ((arg1->unk0 & 0x40) != 0) {
|
||||
func_8008FC1C(temp_f0_2, temp_a2, temp_a3);
|
||||
func_8008FC1C((bitwise f32) arg1);
|
||||
func_800C9060(((s32) (arg1 - gPlayerOne) / 0xDD8) & 0xFF, 6.643295e-24f, arg1);
|
||||
sp68 = player_one->pos[2] - player_two->pos[2];
|
||||
sp54 = player_two->unk_034[0] - player_one->unk_034[0];
|
||||
sp58 = player_two->unk_034[1] - player_one->unk_034[1];
|
||||
sp5C = player_two->unk_034[2] - player_one->unk_034[2];
|
||||
temp_f0 = sqrtf((sp68 * sp68) + ((sp60 * sp60) + (temp_f6 * temp_f6)));
|
||||
if (!(temp_f0 < D_802B92A0) && !(temp_f4 < temp_f0)) {
|
||||
if (player_one->unk_000 & 0x40) {
|
||||
if (player_two->unk_000 & 0x40) {
|
||||
func_8008FC1C(player_one);
|
||||
func_8008FC1C(player_two);
|
||||
func_800C9060(((s32) (player_two - gPlayerOne) / 3544) & 0xFF, 0x19008001U);
|
||||
return;
|
||||
}
|
||||
temp_a0 = temp_a3;
|
||||
temp_a2->unkC = (s32) (temp_a2->unkC | 0x400000);
|
||||
sp70 = temp_f0_2;
|
||||
arg0 = temp_a3;
|
||||
arg1 = temp_a2;
|
||||
func_8008FC1C(temp_f0_2, temp_a0, temp_a2, temp_a3);
|
||||
func_800C9060(((s32) (arg1 - gPlayerOne) / 0xDD8) & 0xFF, 6.643295e-24f, arg1);
|
||||
phi_a3 = arg0;
|
||||
phi_a2 = arg1;
|
||||
player_two->unk_00C |= 0x400000;
|
||||
sp70 = temp_f0;
|
||||
func_8008FC1C(player_one);
|
||||
func_800C9060(((s32) (player_two - gPlayerOne) / 3544) & 0xFF, 0x19008001U);
|
||||
goto block_8;
|
||||
}
|
||||
phi_a3 = temp_a3;
|
||||
phi_a2 = temp_a2;
|
||||
if ((temp_a2->unk0 & 0x40) != 0) {
|
||||
temp_a3->unkC = (s32) (temp_a3->unkC | 0x400000);
|
||||
arg0 = temp_a3;
|
||||
func_8008FC1C(temp_f0_2, temp_a2, temp_a2, temp_a3);
|
||||
func_800C9060(((s32) (arg0 - gPlayerOne) / 0xDD8) & 0xFF, 6.643295e-24f);
|
||||
if (player_two->unk_000 & 0x40) {
|
||||
player_one->unk_00C |= 0x400000;
|
||||
func_8008FC1C(player_two);
|
||||
func_800C9060(((s32) (player_one - gPlayerOne) / 3544) & 0xFF, 0x19008001U);
|
||||
return;
|
||||
}
|
||||
block_8:
|
||||
temp_v0 = phi_a3->unkBC;
|
||||
if ((temp_v0 & 0x200) != 0) {
|
||||
if ((phi_a2->unkBC & 0x200) == 0) {
|
||||
phi_a2->unkC = (s32) (phi_a2->unkC | 0x1000000);
|
||||
temp_v0 = player_one->unk_0BC;
|
||||
if (temp_v0 & 0x200) {
|
||||
if (!(player_two->unk_0BC & 0x200)) {
|
||||
player_two->unk_00C |= 0x01000000;
|
||||
}
|
||||
} else if ((phi_a2->unkBC & 0x200) != 0) {
|
||||
phi_a3->unkC = (s32) (phi_a3->unkC | 0x1000000);
|
||||
} else if (player_two->unk_0BC & 0x200) {
|
||||
player_one->unk_00C |= 0x01000000;
|
||||
} else {
|
||||
phi_a3->unkBC = (s32) (temp_v0 | 0x8000);
|
||||
phi_a2->unkBC = (s32) (phi_a2->unkBC | 0x8000);
|
||||
player_one->unk_0BC = temp_v0 | 0x8000;
|
||||
player_two->unk_0BC |= 0x8000;
|
||||
}
|
||||
temp_f6_2 = sp60 / sqrtf(temp_f0);
|
||||
temp_f0_3 = sqrtf((sp5C * sp5C) + ((sp54 * sp54) + (sp58 * sp58)));
|
||||
temp_f6_2 = sp60 / temp_f0;
|
||||
temp_f0_2 = sqrtf((sp5C * sp5C) + ((sp54 * sp54) + (sp58 * sp58)));
|
||||
sp60 = temp_f6_2;
|
||||
sp64 /= sqrtf(temp_f0);
|
||||
sp68 /= sqrtf(temp_f0);
|
||||
if (temp_f0_3 < D_802B92A4) {
|
||||
temp_f14 = (phi_a3->unk70 + phi_a2->unk70) * D_802B92A8;
|
||||
phi_a3->unk14 = (f32) ((temp_f6_2 * temp_f14) + phi_a2->unk14);
|
||||
phi_a3->unk18 = (f32) ((sp64 * temp_f14) + phi_a2->unk18);
|
||||
phi_a3->unk1C = (f32) ((sp68 * temp_f14) + phi_a2->unk1C);
|
||||
phi_a2->unk14 = (f32) (phi_a2->unk14 - (temp_f14 * sp60));
|
||||
phi_a2->unk18 = (f32) (phi_a2->unk18 - (temp_f14 * sp64));
|
||||
phi_a2->unk1C = (f32) (phi_a2->unk1C - (temp_f14 * sp68));
|
||||
sp64 /= temp_f0;
|
||||
sp68 /= temp_f0;
|
||||
if (temp_f0_2 < D_802B92A4) {
|
||||
temp_f14 = (player_one->boundingBoxSize + player_two->boundingBoxSize) * D_802B92A8;
|
||||
player_one->pos[0] = (temp_f6_2 * temp_f14) + player_two->pos[0];
|
||||
player_one->pos[1] = (sp64 * temp_f14) + player_two->pos[1];
|
||||
player_one->pos[2] = (sp68 * temp_f14) + player_two->pos[2];
|
||||
player_two->pos[0] -= temp_f14 * sp60;
|
||||
player_two->pos[1] -= temp_f14 * sp64;
|
||||
player_two->pos[2] -= temp_f14 * sp68;
|
||||
return;
|
||||
}
|
||||
temp_f16 = (f32) ((f64) (temp_f0_3 * (((sp5C * sp68) + ((sp60 * sp54) + (sp64 * sp58))) / temp_f0_3)) * D_802B92B0);
|
||||
if ((phi_a3->unkBC & 0x200) != 0x200) {
|
||||
temp_f16 = (f32) ((f64) (temp_f0_2 * (((sp5C * sp68) + ((sp60 * sp54) + (sp64 * sp58))) / temp_f0_2)) * D_802B92B0);
|
||||
if ((player_one->unk_0BC & 0x200) != 0x200) {
|
||||
temp_f2 = (temp_f16 * sp20) / sp24;
|
||||
phi_a3->unk34 = (f32) (phi_a3->unk34 + (sp60 * temp_f2));
|
||||
phi_a3->unk38 = (f32) (phi_a3->unk38 + (sp64 * temp_f2));
|
||||
phi_a3->unk3C = (f32) (phi_a3->unk3C + (sp68 * temp_f2));
|
||||
temp_f0_4 = sqrtf(temp_f0) - sp74;
|
||||
phi_a3->unk14 = (f32) (phi_a3->unk14 - (sp60 * temp_f0_4 * 0.5f));
|
||||
phi_a3->unk18 = (f32) (phi_a3->unk18 - (sp64 * temp_f0_4 * 0.5f));
|
||||
phi_a3->unk1C = (f32) (phi_a3->unk1C - (sp68 * temp_f0_4 * 0.5f));
|
||||
player_one->unk_034[0] += sp60 * temp_f2;
|
||||
player_one->unk_034[1] += sp64 * temp_f2;
|
||||
player_one->unk_034[2] += sp68 * temp_f2;
|
||||
temp_f0_3 = temp_f0 - sp74;
|
||||
player_one->pos[0] -= sp60 * temp_f0_3 * 0.5f;
|
||||
player_one->pos[1] -= sp64 * temp_f0_3 * 0.5f;
|
||||
player_one->pos[2] -= sp68 * temp_f0_3 * 0.5f;
|
||||
}
|
||||
if ((phi_a2->unkBC & 0x200) != 0x200) {
|
||||
if ((player_two->unk_0BC & 0x200) != 0x200) {
|
||||
temp_f2_2 = (temp_f16 * sp24) / sp20;
|
||||
phi_a2->unk34 = (f32) (phi_a2->unk34 - (sp60 * temp_f2_2));
|
||||
phi_a2->unk38 = (f32) (phi_a2->unk38 - (sp64 * temp_f2_2));
|
||||
phi_a2->unk3C = (f32) (phi_a2->unk3C - (sp68 * temp_f2_2));
|
||||
temp_f0_5 = sqrtf(temp_f0) - sp74;
|
||||
phi_a2->unk14 = (f32) (phi_a2->unk14 + (sp60 * temp_f0_5 * 0.5f));
|
||||
phi_a2->unk18 = (f32) (phi_a2->unk18 + (sp64 * temp_f0_5 * 0.5f));
|
||||
phi_a2->unk1C = (f32) (phi_a2->unk1C + (sp68 * temp_f0_5 * 0.5f));
|
||||
player_two->unk_034[0] -= sp60 * temp_f2_2;
|
||||
player_two->unk_034[1] -= sp64 * temp_f2_2;
|
||||
player_two->unk_034[2] -= sp68 * temp_f2_2;
|
||||
temp_f0_4 = temp_f0 - sp74;
|
||||
player_two->pos[0] += sp60 * temp_f0_4 * 0.5f;
|
||||
player_two->pos[1] += sp64 * temp_f0_4 * 0.5f;
|
||||
player_two->pos[2] += sp68 * temp_f0_4 * 0.5f;
|
||||
}
|
||||
if ((phi_a3->unk0 & 0x4000) != 0) {
|
||||
func_800C9060((bitwise s32) 0.5f, sqrtf(temp_f0), (u16 *) (((s32) (phi_a3 - gPlayerOne) / 0xDD8) & 0xFF), 0x19008001, phi_a2, phi_a3);
|
||||
if (player_one->unk_000 & 0x4000) {
|
||||
func_800C9060(((s32) (player_one - gPlayerOne) / 3544) & 0xFF, 0x19008001U);
|
||||
return;
|
||||
}
|
||||
if ((phi_a2->unk0 & 0x4000) != 0) {
|
||||
func_800C9060((bitwise s32) 0.5f, sqrtf(temp_f0), (u16 *) (((s32) (phi_a2 - gPlayerOne) / 0xDD8) & 0xFF), 0x19008001, phi_a2, phi_a3);
|
||||
if (player_two->unk_000 & 0x4000) {
|
||||
func_800C9060(((s32) (player_two - gPlayerOne) / 3544) & 0xFF, 0x19008001U);
|
||||
}
|
||||
// Duplicate return node #24. Try simplifying control flow for better match
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
#ifndef RACE_LOGIC_H
|
||||
#define RACE_LOGIC_H
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_8028DF00();
|
||||
void func_8028DF38();
|
||||
void func_8028E028();
|
||||
void update_player_battle_status();
|
||||
void func_8028E298();
|
||||
void func_8028E3A0();
|
||||
void func_8028E438();
|
||||
void func_8028E678();
|
||||
void func_8028EC38(s32);
|
||||
void func_8028EC98(s32);
|
||||
void func_8028EDA8();
|
||||
f32 func_8028EE8C(s32);
|
||||
void func_8028EEF0(s32);
|
||||
void func_8028EF28();
|
||||
void func_8028F3E8();
|
||||
void update_race_position_data();
|
||||
void func_8028F474();
|
||||
void func_8028F4E8();
|
||||
void func_8028F8BC();
|
||||
void func_8028F914();
|
||||
void func_8028F970();
|
||||
void func_8028FBD4();
|
||||
void func_8028FC34();
|
||||
void func_8028FCBC();
|
||||
void func_80290314();
|
||||
void func_80290338();
|
||||
void func_80290360();
|
||||
void func_80290388();
|
||||
void func_802903B0();
|
||||
void func_802909F0();
|
||||
void func_80290B14();
|
||||
|
||||
extern f32 gTimePlayerLastTouchedFinishLine[];
|
||||
extern f32 gLapCompletionPercentByPlayerId[];
|
||||
extern s32 gPlayerPositions[]; // D_801643B8 (position for each player)
|
||||
extern s16 gPlayerPositionLUT[]; // D_8015F8F0 (player index at each position)
|
||||
extern u16 D_80162DD6;
|
||||
|
||||
#endif
|
||||
|
|
@ -3,35 +3,11 @@
|
|||
#include <common_structs.h>
|
||||
#include <defines.h>
|
||||
#include <types.h>
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
s32 func_80290C20(Camera *camera);
|
||||
void load_surface_map(s32, struct UnkStruct_800DC5EC *arg1);
|
||||
extern void func_802B5D64(u32, s16, s32, s32);
|
||||
extern s16 gCurrentCourseId;
|
||||
extern s32 gPrevLoadedAddress;
|
||||
extern s32 gActiveScreenMode;
|
||||
|
||||
extern u16 sRenderedFramebuffer;
|
||||
extern uintptr_t *gPhysicalFramebuffers[];
|
||||
extern uintptr_t gSegmentTable[];
|
||||
|
||||
extern void func_802AAAAC(Player *);
|
||||
extern Player gPlayers[];
|
||||
|
||||
extern s32 D_8015F59C;
|
||||
extern s32 D_8015F5A0;
|
||||
|
||||
extern s32 D_800DC5DC;
|
||||
extern s32 D_800DC5E0;
|
||||
extern s16 D_802B87D8;
|
||||
|
||||
void func_80298C94(); // extern
|
||||
void func_802AF7B4(s32, s32, s32); // extern
|
||||
extern s32 D_802B87C4;
|
||||
extern s32 D_802B87C8;
|
||||
extern s32 D_802B87CC;
|
||||
void func_802A7658(s32, s32, s32, s32, u16*, u16*);
|
||||
#include "actors.h"
|
||||
#include "math_util.h"
|
||||
#include "memory.h"
|
||||
#include "code_80281780.h"
|
||||
#include "render_courses.h"
|
||||
|
||||
s32 func_80290C20(Camera *camera) {
|
||||
if (camera->unk_54.unk34 == 0) {
|
||||
|
|
@ -46,16 +22,6 @@ s32 func_80290C20(Camera *camera) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void func_802AF5D8(u32, s8, s32); // extern
|
||||
extern s32 D_8015F5A4;
|
||||
|
||||
struct Unk0CAC {
|
||||
s32 unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
void func_80290CAC(uintptr_t arg0) {
|
||||
s32 segment = SEGMENT_NUMBER2(arg0);
|
||||
s32 offset = SEGMENT_OFFSET(arg0);
|
||||
|
|
@ -218,8 +184,6 @@ void func_80291198(void) {
|
|||
gSPDisplayList(gDisplayListHead++, 0x07001140);
|
||||
}
|
||||
|
||||
extern s32 gScreenModeSelection;
|
||||
|
||||
void func_802911C4(void) {
|
||||
if (gScreenModeSelection == SCREEN_MODE_1P) {
|
||||
gSPDisplayList(gDisplayListHead++, 0x070008E8);
|
||||
|
|
@ -984,10 +948,6 @@ block_82:
|
|||
GLOBAL_ASM("asm/non_matchings/render_courses/func_8029122C.s")
|
||||
#endif
|
||||
|
||||
void func_80291198();
|
||||
void func_802911C4();
|
||||
extern Gfx mario_raceway_dls[];
|
||||
|
||||
void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
s32 pad;
|
||||
u16 sp22 = arg0->pathCounter;
|
||||
|
|
@ -1097,13 +1057,6 @@ void render_mario_raceway(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPDisplayList(gDisplayListHead++, 0x07000160);
|
||||
}
|
||||
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern s16 D_802B87B0;
|
||||
extern s16 D_802B87B4;
|
||||
extern Gfx choco_mountain_dls[];
|
||||
|
||||
void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
|
||||
s32 pad[13];
|
||||
|
||||
|
|
@ -1146,9 +1099,6 @@ void render_choco_mountain(struct UnkStruct_800DC5EC *arg0) {
|
|||
|
||||
}
|
||||
|
||||
extern s32 D_802B87BC;
|
||||
extern Gfx bowsers_castle_dls[];
|
||||
|
||||
void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
|
@ -1175,11 +1125,6 @@ void render_bowsers_castle(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPDisplayList(gDisplayListHead++, 0x07000248);
|
||||
}
|
||||
|
||||
extern Gfx banshee_boardwalk_dls[];
|
||||
extern Gfx D_0600B278[];
|
||||
|
||||
extern void mtxf_translate(Mat4 dest, Vec3f b);
|
||||
extern void func_802B4FF8(Mat4 arg0, s32 arg1);
|
||||
void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
||||
Camera *camera = arg0->camera;
|
||||
Mat4 spCC;
|
||||
|
|
@ -1231,8 +1176,6 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) {
|
|||
gDPPipeSync(gDisplayListHead++);
|
||||
}
|
||||
|
||||
extern Gfx yoshi_valley_dls;
|
||||
|
||||
void render_yoshi_valley(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
|
@ -1243,8 +1186,6 @@ void render_yoshi_valley(struct UnkStruct_800DC5EC *arg0) {
|
|||
gDPPipeSync(gDisplayListHead++);
|
||||
}
|
||||
|
||||
extern u8 frappe_snowland_dls[];
|
||||
|
||||
void render_frappe_snowland(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
|
@ -1262,8 +1203,6 @@ void render_frappe_snowland(struct UnkStruct_800DC5EC *arg0) {
|
|||
load_surface_map(&frappe_snowland_dls, arg0);
|
||||
}
|
||||
|
||||
extern Gfx koopa_troopa_beach_dls[];
|
||||
|
||||
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
|
|
@ -1288,8 +1227,6 @@ void render_koopa_troopa_beach(struct UnkStruct_800DC5EC *arg0) {
|
|||
gDPPipeSync(gDisplayListHead++);
|
||||
}
|
||||
|
||||
extern Gfx royal_raceway_dls[];
|
||||
|
||||
void render_royal_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
|
@ -1316,8 +1253,6 @@ void render_royal_raceway(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
}
|
||||
|
||||
extern Gfx luigi_raceway_dls[];
|
||||
|
||||
void render_luigi_raceway(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
s32 pad;
|
||||
|
|
@ -1462,17 +1397,6 @@ void render_moo_moo_farm(struct UnkStruct_800DC5EC *arg0) {
|
|||
GLOBAL_ASM("asm/non_matchings/render_courses/render_moo_moo_farm.s")
|
||||
#endif
|
||||
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern s16 D_802B87B0;
|
||||
extern s16 D_802B87B4;
|
||||
extern s16 D_802B87D4;
|
||||
|
||||
extern Gfx toads_turnpike_dls[];
|
||||
|
||||
extern Lights1 D_800DC610[]; // Light data?
|
||||
|
||||
void render_toads_turnpike(struct UnkStruct_800DC5EC *arg0) {
|
||||
s32 pad[13];
|
||||
|
||||
|
|
@ -1498,8 +1422,6 @@ void render_toads_turnpike(struct UnkStruct_800DC5EC *arg0) {
|
|||
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
|
||||
}
|
||||
|
||||
extern u8 kalimari_desert_dls[];
|
||||
|
||||
void render_kalimari_desert(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
func_802B5D64(&D_800DC610, D_802B87D4, 0, 1);
|
||||
|
|
@ -1528,8 +1450,6 @@ void render_kalimari_desert(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
}
|
||||
|
||||
extern u8 sherbet_land_dls[];
|
||||
|
||||
void render_sherbet_land(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
|
@ -1549,8 +1469,6 @@ void render_rainbow_road(struct UnkStruct_800DC5EC *arg0) {
|
|||
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
|
||||
}
|
||||
|
||||
extern Gfx wario_stadium_dls[];
|
||||
|
||||
void render_wario_stadium(struct UnkStruct_800DC5EC *arg0) {
|
||||
s16 prevFrame;
|
||||
|
||||
|
|
@ -1651,10 +1569,6 @@ void render_double_deck(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
|
||||
}
|
||||
|
||||
extern s16 D_802B87D0;
|
||||
|
||||
extern Gfx dks_jungle_parkway_dls[];
|
||||
|
||||
void render_dks_jungle_parkway(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
func_802B5D64(&D_800DC610, D_802B87D4, 0, 1);
|
||||
|
|
@ -1699,24 +1613,6 @@ void render_big_donut(struct UnkStruct_800DC5EC *arg0) {
|
|||
gSPDisplayList(gDisplayListHead++, 0x07000230);
|
||||
}
|
||||
|
||||
extern Gfx D_060071B0[];
|
||||
extern Gfx D_060076A0[];
|
||||
extern Gfx D_06009148[];
|
||||
extern Gfx D_06009348[];
|
||||
extern Gfx D_06009AE8[];
|
||||
extern Gfx D_0600B308[];
|
||||
extern Gfx D_0600CA78[];
|
||||
extern Gfx D_0600D8E8[];
|
||||
extern Gfx D_0600FD40[];
|
||||
extern Gfx D_06013C30[];
|
||||
extern Gfx D_06014088[];
|
||||
extern Gfx D_06016220[];
|
||||
extern Gfx D_06018020[];
|
||||
extern Gfx D_06018D68[];
|
||||
extern Gfx D_06022E00[];
|
||||
extern Gfx D_06023930[];
|
||||
extern Gfx D_sherbet_land_06000000[];
|
||||
|
||||
void func_8029569C(void) {
|
||||
switch (gCurrentCourseId) {
|
||||
case 0:
|
||||
|
|
@ -1782,8 +1678,6 @@ void func_8029569C(void) {
|
|||
}
|
||||
}
|
||||
|
||||
extern u16 D_800DC518;
|
||||
|
||||
void func_80295A38(struct UnkStruct_800DC5EC *arg0) {
|
||||
|
||||
func_802B5D64(D_800DC610, D_802B87D4, 0, 1);
|
||||
|
|
@ -1870,24 +1764,6 @@ void func_80295BF8(s32 playerIndex) {
|
|||
player->boundingBoxCorners[BACK_LEFT_TYRE].surfaceMapIndex = 0x1388;
|
||||
}
|
||||
|
||||
|
||||
extern void func_802AF314(u16 *, s16 *, s16 *, s16 *);
|
||||
extern u16 D_8015F58A;
|
||||
|
||||
extern s16 D_8015F700;
|
||||
extern s16 D_8015F702;
|
||||
extern f32 D_8015F8E8;
|
||||
extern f32 D_8015F8E4;
|
||||
|
||||
extern s16 D_8015F6E8;
|
||||
extern s16 D_8015F6F0;
|
||||
extern s16 D_8015F6EA;
|
||||
extern s16 D_8015F6F2;
|
||||
extern s16 D_8015F6EE;
|
||||
extern u16 D_8015F588;
|
||||
|
||||
#define ALIGNF(x) (((x) + 0xF) & ~0xF)
|
||||
|
||||
void func_80295C6C(void) {
|
||||
gPrevLoadedAddress += ALIGNF(D_8015F588 * 0x2C);
|
||||
D_8015F6E8 += 20;
|
||||
|
|
@ -1895,61 +1771,20 @@ void func_80295C6C(void) {
|
|||
D_8015F6EA += -20;
|
||||
D_8015F6F2 += -20;
|
||||
D_8015F6EE += -20;
|
||||
func_802AF314(&D_8015F6F0, &D_8015F6EA, &D_8015F6F2, &D_8015F6EE);
|
||||
func_802AF314();
|
||||
gPrevLoadedAddress += ALIGNF(D_8015F58A * 2);
|
||||
}
|
||||
|
||||
|
||||
extern s16 D_8015F6F4;
|
||||
extern s16 D_8015F6F6;
|
||||
|
||||
UNUSED void func_80295D50(s16 arg0, s16 arg1) {
|
||||
D_8015F6F4 = arg1;
|
||||
D_8015F6F6 = arg0;
|
||||
}
|
||||
|
||||
extern s16 D_8015F6F4;
|
||||
extern s16 D_8015F6F6;
|
||||
|
||||
void func_80295D6C(void) {
|
||||
D_8015F6F4 = 3000;
|
||||
D_8015F6F6 = -3000;
|
||||
}
|
||||
|
||||
void func_802AAA70(uintptr_t); /* extern */
|
||||
void func_802AF588(uintptr_t); /* extern */
|
||||
void func_802AF5AC(uintptr_t, s8); /* extern */
|
||||
void func_802AF8BC(uintptr_t, s8, u8, u8, u8); /* extern */
|
||||
void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2);
|
||||
|
||||
extern Gfx D_060072D0[];
|
||||
extern Gfx D_060079A0[];
|
||||
extern Gfx D_060093D8[];
|
||||
extern Gfx D_06009650[];
|
||||
extern Gfx D_06009C20[];
|
||||
extern Gfx D_0600B458[];
|
||||
extern Gfx D_0600CC38[];
|
||||
extern Gfx D_0600DC28[];
|
||||
extern Gfx D_0600FF28[];
|
||||
extern Gfx D_06014338[];
|
||||
extern Gfx D_060144B8[];
|
||||
extern Gfx D_06016440[];
|
||||
extern Gfx D_06016558[];
|
||||
extern Gfx D_06018240[];
|
||||
extern Gfx D_06018FD8[];
|
||||
extern Gfx D_06023070[];
|
||||
extern Gfx D_06023B68[];
|
||||
extern Vec3f D_8015F590;
|
||||
extern u16 D_800DC5BC; /* unable to generate initializer */
|
||||
extern s16 D_800DC5C8; /* unable to generate initializer */
|
||||
extern s32 gGamestate;
|
||||
extern s32 gModeSelection;
|
||||
extern u16 gNumActors;
|
||||
extern s16 D_8015F6EC;
|
||||
extern s32 D_8015F58C;
|
||||
extern uintptr_t D_8015F580;
|
||||
extern s32 gCCSelection;
|
||||
|
||||
void func_80295D88(void) {
|
||||
f32 phi_f10;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,160 @@
|
|||
#ifndef RENDER_COURSES_H
|
||||
#define RENDER_COURSES_H
|
||||
|
||||
#define ALIGNF(x) (((x) + 0xF) & ~0xF)
|
||||
|
||||
struct Unk0CAC {
|
||||
s32 unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
s32 func_80290C20(Camera*);
|
||||
void func_80290CAC(uintptr_t);
|
||||
void load_surface_map(s32, struct UnkStruct_800DC5EC*);
|
||||
void func_80291198();
|
||||
void func_802911C4();
|
||||
void render_mario_raceway(struct UnkStruct_800DC5EC*);
|
||||
void render_choco_mountain(struct UnkStruct_800DC5EC*);
|
||||
void render_bowsers_castle(struct UnkStruct_800DC5EC*);
|
||||
void render_banshee_boardwalk(struct UnkStruct_800DC5EC*);
|
||||
void render_yoshi_valley(struct UnkStruct_800DC5EC*);
|
||||
void render_frappe_snowland(struct UnkStruct_800DC5EC*);
|
||||
void render_koopa_troopa_beach(struct UnkStruct_800DC5EC*);
|
||||
void render_royal_raceway(struct UnkStruct_800DC5EC*);
|
||||
void render_luigi_raceway(struct UnkStruct_800DC5EC*);
|
||||
void render_toads_turnpike(struct UnkStruct_800DC5EC*);
|
||||
void render_kalimari_desert(struct UnkStruct_800DC5EC*);
|
||||
void render_sherbet_land(struct UnkStruct_800DC5EC*);
|
||||
void render_rainbow_road(struct UnkStruct_800DC5EC*);
|
||||
void render_wario_stadium(struct UnkStruct_800DC5EC*);
|
||||
void render_block_fort(struct UnkStruct_800DC5EC*);
|
||||
void render_skyscraper(struct UnkStruct_800DC5EC*);
|
||||
void render_double_deck(struct UnkStruct_800DC5EC*);
|
||||
void render_dks_jungle_parkway(struct UnkStruct_800DC5EC*);
|
||||
void render_big_donut(struct UnkStruct_800DC5EC*);
|
||||
void func_8029569C();
|
||||
void func_80295A38(struct UnkStruct_800DC5EC*);
|
||||
void func_80295BF8(s32);
|
||||
void func_80295C6C();
|
||||
void func_80295D50(s16, s16);
|
||||
void func_80295D6C();
|
||||
void func_80295D88();
|
||||
void func_802966A0();
|
||||
void func_802969F8();
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
extern s16 gCurrentCourseId;
|
||||
extern u32 gPrevLoadedAddress;
|
||||
extern s32 gActiveScreenMode;
|
||||
|
||||
extern u16 sRenderedFramebuffer;
|
||||
extern uintptr_t *gPhysicalFramebuffers[];
|
||||
extern uintptr_t gSegmentTable[];
|
||||
|
||||
extern Player gPlayers[];
|
||||
|
||||
extern s32 D_8015F59C;
|
||||
extern s32 D_8015F5A0;
|
||||
|
||||
extern s32 D_800DC5DC;
|
||||
extern s32 D_800DC5E0;
|
||||
extern s16 D_802B87D8;
|
||||
extern s32 D_802B87C4;
|
||||
extern s32 D_802B87C8;
|
||||
extern s32 D_802B87CC;
|
||||
extern s32 D_8015F5A4;
|
||||
extern s32 gScreenModeSelection;
|
||||
extern Gfx mario_raceway_dls[];
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern s16 D_802B87B0;
|
||||
extern s16 D_802B87B4;
|
||||
extern Gfx choco_mountain_dls[];
|
||||
extern s32 D_802B87BC;
|
||||
extern Gfx bowsers_castle_dls[];
|
||||
extern Gfx banshee_boardwalk_dls[];
|
||||
extern Gfx D_0600B278[];
|
||||
extern Gfx yoshi_valley_dls;
|
||||
extern u8 frappe_snowland_dls[];
|
||||
extern Gfx koopa_troopa_beach_dls[];
|
||||
extern Gfx royal_raceway_dls[];
|
||||
extern Gfx luigi_raceway_dls[];
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern s16 D_802B87B0;
|
||||
extern s16 D_802B87B4;
|
||||
extern s16 D_802B87D4;
|
||||
|
||||
extern Gfx toads_turnpike_dls[];
|
||||
|
||||
extern Lights1 D_800DC610[]; // Light data?
|
||||
extern u8 kalimari_desert_dls[];
|
||||
extern u8 sherbet_land_dls[];
|
||||
extern Gfx wario_stadium_dls[];
|
||||
extern s16 D_802B87D0;
|
||||
|
||||
extern Gfx dks_jungle_parkway_dls[];
|
||||
extern Gfx D_060071B0[];
|
||||
extern Gfx D_060076A0[];
|
||||
extern Gfx D_06009148[];
|
||||
extern Gfx D_06009348[];
|
||||
extern Gfx D_06009AE8[];
|
||||
extern Gfx D_0600B308[];
|
||||
extern Gfx D_0600CA78[];
|
||||
extern Gfx D_0600D8E8[];
|
||||
extern Gfx D_0600FD40[];
|
||||
extern Gfx D_06013C30[];
|
||||
extern Gfx D_06014088[];
|
||||
extern Gfx D_06016220[];
|
||||
extern Gfx D_06018020[];
|
||||
extern Gfx D_06018D68[];
|
||||
extern Gfx D_06022E00[];
|
||||
extern Gfx D_06023930[];
|
||||
extern Gfx D_sherbet_land_06000000[];
|
||||
extern u16 D_800DC518;
|
||||
extern u16 D_8015F58A;
|
||||
|
||||
extern s16 D_8015F700;
|
||||
extern s16 D_8015F702;
|
||||
extern f32 D_8015F8E8;
|
||||
extern f32 D_8015F8E4;
|
||||
|
||||
extern s16 D_8015F6EA;
|
||||
extern s16 D_8015F6F2;
|
||||
extern s16 D_8015F6EE;
|
||||
extern u16 D_8015F588;
|
||||
extern s16 D_8015F6F4;
|
||||
extern s16 D_8015F6F6;
|
||||
extern s16 D_8015F6F4;
|
||||
extern s16 D_8015F6F6;
|
||||
extern Gfx D_060072D0[];
|
||||
extern Gfx D_060079A0[];
|
||||
extern Gfx D_060093D8[];
|
||||
extern Gfx D_06009650[];
|
||||
extern Gfx D_06009C20[];
|
||||
extern Gfx D_0600B458[];
|
||||
extern Gfx D_0600CC38[];
|
||||
extern Gfx D_0600DC28[];
|
||||
extern Gfx D_0600FF28[];
|
||||
extern Gfx D_06014338[];
|
||||
extern Gfx D_060144B8[];
|
||||
extern Gfx D_06016440[];
|
||||
extern Gfx D_06016558[];
|
||||
extern Gfx D_06018240[];
|
||||
extern Gfx D_06018FD8[];
|
||||
extern Gfx D_06023070[];
|
||||
extern Gfx D_06023B68[];
|
||||
extern Vec3f D_8015F590;
|
||||
extern u16 D_800DC5BC; /* unable to generate initializer */
|
||||
extern s32 gGamestate;
|
||||
extern s32 gModeSelection;
|
||||
extern u16 gNumActors;
|
||||
extern s32 D_8015F58C;
|
||||
extern uintptr_t D_8015F580;
|
||||
extern s32 gCCSelection;
|
||||
|
||||
#endif
|
||||
|
|
@ -7,30 +7,7 @@
|
|||
#include <variables.h>
|
||||
#include <config.h>
|
||||
#include "camera.h"
|
||||
|
||||
void select_framebuffer();
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5EC;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F0;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F4;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F8;
|
||||
|
||||
extern u16 D_800DC5B0;
|
||||
|
||||
void init_rdp();
|
||||
extern s32 gGamestateNext;
|
||||
extern s16 gIsInQuitToMenuTransition;
|
||||
extern u16 gQuitToMenuTransitionCounter;
|
||||
extern s32 gMenuSelection;
|
||||
extern s32 D_800E86A4;
|
||||
extern s32 gMenuSelectionFromQuit;
|
||||
|
||||
extern s32 D_801502B4;
|
||||
extern uintptr_t *gPhysicalFramebuffers[];
|
||||
extern u16 sRenderingFramebuffer;
|
||||
|
||||
#include "skybox_and_splitscreen.h"
|
||||
|
||||
Vp D_802B8880[] = {
|
||||
{640, 480, 511, 0,
|
||||
|
|
@ -259,8 +236,6 @@ UNUSED void func_802A40CC(void) {}
|
|||
UNUSED void func_802A40D4(void) {}
|
||||
UNUSED void func_802A40DC(void) {}
|
||||
|
||||
#define G_CLEAR_ALL_MODES 0xFFFFFFFF
|
||||
|
||||
UNUSED s32 set_viewport2(void) {
|
||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&D_800DC5EC->viewport));
|
||||
gSPClearGeometryMode(gDisplayListHead++, G_CLEAR_ALL_MODES);
|
||||
|
|
@ -274,10 +249,6 @@ void set_viewport(void) {
|
|||
gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
|
||||
}
|
||||
|
||||
extern s32 D_800DC5D0;
|
||||
extern s32 D_800DC5D4;
|
||||
extern s32 D_800DC5D8;
|
||||
|
||||
/**
|
||||
* Tells the RDP which of the three framebuffers it shall draw to.
|
||||
*/
|
||||
|
|
@ -325,10 +296,6 @@ void func_802A4300(void) {
|
|||
|
||||
}
|
||||
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
|
||||
struct Skybox {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
|
|
@ -393,7 +360,6 @@ struct Skybox D_802B8BCC[21] = {
|
|||
{0, 0, 0, 0, 0, 0},
|
||||
{255, 224, 240, 0, 0, 0},
|
||||
};
|
||||
extern u16 D_800DC5BC;
|
||||
|
||||
void func_802A450C(Vtx *skybox) {
|
||||
s32 i;
|
||||
|
|
@ -458,9 +424,6 @@ void func_802A450C(Vtx *skybox) {
|
|||
skybox[7].v.cn[2] = D_802B8BCC[gCurrentCourseId].unk4;
|
||||
}
|
||||
|
||||
extern Mtx *D_0D008E98;
|
||||
extern struct GfxPool *gGfxPool;
|
||||
|
||||
void func_802A487C(Vtx *arg0, UNUSED s32 arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED s32 arg4) {
|
||||
|
||||
init_rdp();
|
||||
|
|
@ -670,8 +633,6 @@ GLOBAL_ASM("asm/non_matchings/skybox/func_802A4D18.s")
|
|||
//extern f32 D_80150138;
|
||||
//extern f32 D_8015013C;
|
||||
|
||||
extern f32 D_80150130[];
|
||||
|
||||
void func_802A4EF4(void) {
|
||||
switch(gActiveScreenMode) {
|
||||
case 0:
|
||||
|
|
@ -695,8 +656,6 @@ void func_802A4EF4(void) {
|
|||
}
|
||||
}
|
||||
|
||||
extern u16 D_800DC5B4;
|
||||
|
||||
void func_802A5004(void) {
|
||||
|
||||
init_rdp();
|
||||
|
|
@ -875,15 +834,6 @@ void func_802A5760(void) {
|
|||
}
|
||||
}
|
||||
|
||||
extern f32 D_80150148;
|
||||
extern f32 D_80150150;
|
||||
extern f32 D_8015014C;
|
||||
|
||||
|
||||
extern u16 D_800DC5C8;
|
||||
extern u16 D_800DC5B8;
|
||||
extern Camera cameras[];
|
||||
|
||||
void func_802A59A4(void) {
|
||||
Camera *camera = &cameras[0];
|
||||
u16 spAA[32];
|
||||
|
|
@ -932,8 +882,6 @@ void func_802A59A4(void) {
|
|||
}
|
||||
}
|
||||
|
||||
extern s32 D_8015F788;
|
||||
|
||||
void func_802A5CB4(void) {
|
||||
Camera *camera = &cameras[0];
|
||||
u16 sp9A[22];
|
||||
|
|
@ -1317,12 +1265,6 @@ void func_802A7178(void) {
|
|||
D_8015F788 += 1;
|
||||
}
|
||||
|
||||
extern struct UnkStruct_800DC5EC D_8015F480[];
|
||||
extern s32 D_8015F790[];
|
||||
|
||||
extern struct Controller gControllers[];
|
||||
extern Player gPlayers[];
|
||||
|
||||
void func_802A74BC(void) {
|
||||
struct UnkStruct_800DC5EC *wrapper = &D_8015F480[0];
|
||||
Player *player = &gPlayers[0];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
#ifndef SKYBOX_AND_SPLITSCREEN_H
|
||||
#define SKYBOX_AND_SPLITSCREEN_H
|
||||
|
||||
#define G_CLEAR_ALL_MODES 0xFFFFFFFF
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void func_802A3730(struct UnkStruct_800DC5EC*);
|
||||
void func_802A38AC();
|
||||
void func_802A38B4();
|
||||
void func_802A39E0(struct UnkStruct_800DC5EC*);
|
||||
void init_z_buffer();
|
||||
void init_rdp();
|
||||
void func_802A40A4();
|
||||
void func_802A40AC();
|
||||
void func_802A40B4();
|
||||
void func_802A40BC();
|
||||
void func_802A40C4();
|
||||
void func_802A40CC();
|
||||
void func_802A40D4();
|
||||
void func_802A40DC();
|
||||
s32 set_viewport2();
|
||||
void set_viewport();
|
||||
void select_framebuffer();
|
||||
void func_802A4300();
|
||||
void func_802A450C(Vtx*);
|
||||
void func_802A487C(Vtx*, s32, s32, s32, s32);
|
||||
void func_802A4EF4();
|
||||
void func_802A5004();
|
||||
void func_802A50EC();
|
||||
void func_802A51D4();
|
||||
void func_802A52BC();
|
||||
void func_802A53A4();
|
||||
void func_802A54A8();
|
||||
void func_802A5590();
|
||||
void func_802A5678();
|
||||
void func_802A5760();
|
||||
void func_802A59A4();
|
||||
void func_802A5CB4();
|
||||
void func_802A5FAC();
|
||||
void func_802A62A4();
|
||||
void func_802A65B8();
|
||||
void func_802A68CC();
|
||||
void func_802A6BB0();
|
||||
void func_802A6E94();
|
||||
void func_802A7178();
|
||||
void func_802A74BC();
|
||||
void func_802A7658(s32, s32, s32, s32, u16*, u16*);
|
||||
void func_802A7728();
|
||||
void func_802A7940();
|
||||
|
||||
extern Gfx *gDisplayListHead;
|
||||
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5EC;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F0;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F4;
|
||||
extern struct UnkStruct_800DC5EC *D_800DC5F8;
|
||||
extern u16 D_800DC5B0;
|
||||
extern s32 gGamestateNext;
|
||||
extern u16 gIsInQuitToMenuTransition;
|
||||
extern u16 gQuitToMenuTransitionCounter;
|
||||
extern s32 gMenuSelection;
|
||||
extern s32 D_800E86A4;
|
||||
extern s32 gMenuSelectionFromQuit;
|
||||
|
||||
extern u32 D_801502B4;
|
||||
extern uintptr_t gPhysicalFramebuffers[3];
|
||||
extern u16 sRenderingFramebuffer;
|
||||
extern s32 D_800DC5D0;
|
||||
extern s32 D_800DC5D4;
|
||||
extern s32 D_800DC5D8;
|
||||
extern s32 D_801625EC;
|
||||
extern s32 D_801625F0;
|
||||
extern s32 D_801625F4;
|
||||
extern u16 D_800DC5BC;
|
||||
extern Mtx *D_0D008E98;
|
||||
extern struct GfxPool *gGfxPool;
|
||||
extern f32 D_80150130[];
|
||||
extern u16 D_800DC5B4;
|
||||
extern f32 D_80150148;
|
||||
extern f32 D_80150150;
|
||||
extern f32 D_8015014C;
|
||||
|
||||
|
||||
extern u16 D_800DC5C8;
|
||||
extern u16 D_800DC5B8;
|
||||
extern s32 D_8015F788;
|
||||
extern struct UnkStruct_800DC5EC D_8015F480[];
|
||||
extern s32 D_8015F790[];
|
||||
|
||||
extern struct Controller gControllers[];
|
||||
extern Player gPlayers[];
|
||||
extern s32 D_800DC5DC;
|
||||
extern s32 D_800DC5E0;
|
||||
extern uintptr_t gSegmentTable[];
|
||||
extern u16 sRenderedFramebuffer;
|
||||
|
||||
#endif
|
||||
|
|
@ -4,18 +4,10 @@
|
|||
#include "memory.h"
|
||||
#include "waypoints.h"
|
||||
#include "framebuffers.h"
|
||||
#include "code_80027040.h"
|
||||
#include "kart_dma.h"
|
||||
#include "camera.h"
|
||||
#include "code_80027D00.h"
|
||||
|
||||
extern s16 D_80165560[];
|
||||
extern s32* D_800E3C50[];
|
||||
extern u16* D_800E3890[];
|
||||
extern s16 D_80165340;
|
||||
|
||||
extern Camera *camera1;
|
||||
extern Camera *camera2;
|
||||
extern Camera *camera3;
|
||||
extern Camera *camera4;
|
||||
#include "spawn_players.h"
|
||||
|
||||
void spawn_player(Player *player, s8 playerIndex, f32 arg2, f32 arg3, f32 arg4, f32 arg5, u16 arg6, s16 arg7) {
|
||||
f32 ret;
|
||||
|
|
@ -1011,7 +1003,7 @@ void func_8003CD78(void) {
|
|||
func_8003BE30();
|
||||
}
|
||||
|
||||
void func_8003CD98(Player *player, struct Camera *camera, s8 arg2, s8 arg3) {
|
||||
void func_8003CD98(Player *player, Camera *camera, s8 arg2, s8 arg3) {
|
||||
if (player->unk_000 & PLAYER_EXISTS) {
|
||||
if (arg3 == 0) {
|
||||
func_8002D268(player, camera, arg3, arg2);
|
||||
|
|
@ -1206,4 +1198,3 @@ void func_8003DB5C(void) {
|
|||
func_80027A20(player, i, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
#ifndef SPAWN_PLAYERS_H
|
||||
#define SPAWN_PLAYERS_H
|
||||
|
||||
#include "camera.h"
|
||||
#include "common_structs.h"
|
||||
|
||||
/* Function Prototypes */
|
||||
|
||||
void spawn_player(Player*, s8, f32, f32, f32, f32, u16, s16);
|
||||
void func_80039AE4();
|
||||
void func_80039DA4();
|
||||
void func_80039F44(f32*, f32*, f32);
|
||||
void func_8003A59C(f32*, f32*, f32);
|
||||
void func_8003A9F0(f32* arg0, f32* arg1, f32);
|
||||
void func_8003AE24(f32*, f32*, f32);
|
||||
void spawn_players_2p_battle(f32*, f32*, f32);
|
||||
void func_8003B318(f32*, f32*, f32);
|
||||
void spawn_players_3p_battle(f32*, f32*, f32);
|
||||
void func_8003B870(f32*, f32*, f32);
|
||||
void spawn_players_4p_battle(f32*, f32*, f32);
|
||||
void func_8003BE30();
|
||||
void func_8003C0F0();
|
||||
void func_8003CD78();
|
||||
void func_8003CD98(Player*, Camera*, s8, s8);
|
||||
void func_8003D080();
|
||||
void func_8003DB5C();
|
||||
|
||||
extern s16 D_80165560[];
|
||||
extern s32* D_800E3C50[];
|
||||
extern u16* D_800E3890[];
|
||||
extern s16 D_80165340;
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue