diff --git a/asm/non_matchings/code_80027D00/func_8002B308.s b/asm/non_matchings/code_80027D00/func_8002B308.s deleted file mode 100644 index d1c648d07..000000000 --- a/asm/non_matchings/code_80027D00/func_8002B308.s +++ /dev/null @@ -1,193 +0,0 @@ -glabel func_8002B308 -/* 02BF08 8002B308 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 02BF0C 8002B30C AFBF001C */ sw $ra, 0x1c($sp) -/* 02BF10 8002B310 AFB10018 */ sw $s1, 0x18($sp) -/* 02BF14 8002B314 AFB00014 */ sw $s0, 0x14($sp) -/* 02BF18 8002B318 AFA50024 */ sw $a1, 0x24($sp) -/* 02BF1C 8002B31C AFA60028 */ sw $a2, 0x28($sp) -/* 02BF20 8002B320 8C82000C */ lw $v0, 0xc($a0) -/* 02BF24 8002B324 00058E00 */ sll $s1, $a1, 0x18 -/* 02BF28 8002B328 00117603 */ sra $t6, $s1, 0x18 -/* 02BF2C 8002B32C 24010002 */ li $at, 2 -/* 02BF30 8002B330 304F0002 */ andi $t7, $v0, 2 -/* 02BF34 8002B334 01C08825 */ move $s1, $t6 -/* 02BF38 8002B338 15E10006 */ bne $t7, $at, .L8002B354 -/* 02BF3C 8002B33C 00808025 */ move $s0, $a0 -/* 02BF40 8002B340 000E2E00 */ sll $a1, $t6, 0x18 -/* 02BF44 8002B344 0005C603 */ sra $t8, $a1, 0x18 -/* 02BF48 8002B348 0C023AB8 */ jal func_8008EAE0 -/* 02BF4C 8002B34C 03002825 */ move $a1, $t8 -/* 02BF50 8002B350 8E02000C */ lw $v0, 0xc($s0) -.L8002B354: -/* 02BF54 8002B354 30590004 */ andi $t9, $v0, 4 -/* 02BF58 8002B358 24010004 */ li $at, 4 -/* 02BF5C 8002B35C 17210006 */ bne $t9, $at, .L8002B378 -/* 02BF60 8002B360 00112E00 */ sll $a1, $s1, 0x18 -/* 02BF64 8002B364 00054603 */ sra $t0, $a1, 0x18 -/* 02BF68 8002B368 01002825 */ move $a1, $t0 -/* 02BF6C 8002B36C 0C02314A */ jal func_8008C528 -/* 02BF70 8002B370 02002025 */ move $a0, $s0 -/* 02BF74 8002B374 8E02000C */ lw $v0, 0xc($s0) -.L8002B378: -/* 02BF78 8002B378 30490001 */ andi $t1, $v0, 1 -/* 02BF7C 8002B37C 24010001 */ li $at, 1 -/* 02BF80 8002B380 15210006 */ bne $t1, $at, .L8002B39C -/* 02BF84 8002B384 00112E00 */ sll $a1, $s1, 0x18 -/* 02BF88 8002B388 00055603 */ sra $t2, $a1, 0x18 -/* 02BF8C 8002B38C 01402825 */ move $a1, $t2 -/* 02BF90 8002B390 0C023370 */ jal func_8008CDC0 -/* 02BF94 8002B394 02002025 */ move $a0, $s0 -/* 02BF98 8002B398 8E02000C */ lw $v0, 0xc($s0) -.L8002B39C: -/* 02BF9C 8002B39C 304B0200 */ andi $t3, $v0, 0x200 -/* 02BFA0 8002B3A0 24010200 */ li $at, 512 -/* 02BFA4 8002B3A4 15610006 */ bne $t3, $at, .L8002B3C0 -/* 02BFA8 8002B3A8 00112E00 */ sll $a1, $s1, 0x18 -/* 02BFAC 8002B3AC 00056603 */ sra $t4, $a1, 0x18 -/* 02BFB0 8002B3B0 01802825 */ move $a1, $t4 -/* 02BFB4 8002B3B4 0C0234F1 */ jal func_8008D3C4 -/* 02BFB8 8002B3B8 02002025 */ move $a0, $s0 -/* 02BFBC 8002B3BC 8E02000C */ lw $v0, 0xc($s0) -.L8002B3C0: -/* 02BFC0 8002B3C0 3C030200 */ lui $v1, 0x200 -/* 02BFC4 8002B3C4 00436824 */ and $t5, $v0, $v1 -/* 02BFC8 8002B3C8 146D0006 */ bne $v1, $t5, .L8002B3E4 -/* 02BFCC 8002B3CC 00112E00 */ sll $a1, $s1, 0x18 -/* 02BFD0 8002B3D0 00057603 */ sra $t6, $a1, 0x18 -/* 02BFD4 8002B3D4 01C02825 */ move $a1, $t6 -/* 02BFD8 8002B3D8 0C00A9C1 */ jal func_8002A704 -/* 02BFDC 8002B3DC 02002025 */ move $a0, $s0 -/* 02BFE0 8002B3E0 8E02000C */ lw $v0, 0xc($s0) -.L8002B3E4: -/* 02BFE4 8002B3E4 304F1000 */ andi $t7, $v0, 0x1000 -/* 02BFE8 8002B3E8 24011000 */ li $at, 4096 -/* 02BFEC 8002B3EC 15E10006 */ bne $t7, $at, .L8002B408 -/* 02BFF0 8002B3F0 00112E00 */ sll $a1, $s1, 0x18 -/* 02BFF4 8002B3F4 0005C603 */ sra $t8, $a1, 0x18 -/* 02BFF8 8002B3F8 03002825 */ move $a1, $t8 -/* 02BFFC 8002B3FC 0C02355C */ jal func_8008D570 -/* 02C000 8002B400 02002025 */ move $a0, $s0 -/* 02C004 8002B404 8E02000C */ lw $v0, 0xc($s0) -.L8002B408: -/* 02C008 8002B408 3C030002 */ lui $v1, 2 -/* 02C00C 8002B40C 0043C824 */ and $t9, $v0, $v1 -/* 02C010 8002B410 14790006 */ bne $v1, $t9, .L8002B42C -/* 02C014 8002B414 00112E00 */ sll $a1, $s1, 0x18 -/* 02C018 8002B418 00054603 */ sra $t0, $a1, 0x18 -/* 02C01C 8002B41C 01002825 */ move $a1, $t0 -/* 02C020 8002B420 0C0235EC */ jal func_8008D7B0 -/* 02C024 8002B424 02002025 */ move $a0, $s0 -/* 02C028 8002B428 8E02000C */ lw $v0, 0xc($s0) -.L8002B42C: -/* 02C02C 8002B42C 30490100 */ andi $t1, $v0, 0x100 -/* 02C030 8002B430 24010100 */ li $at, 256 -/* 02C034 8002B434 15210006 */ bne $t1, $at, .L8002B450 -/* 02C038 8002B438 00112E00 */ sll $a1, $s1, 0x18 -/* 02C03C 8002B43C 00055603 */ sra $t2, $a1, 0x18 -/* 02C040 8002B440 01402825 */ move $a1, $t2 -/* 02C044 8002B444 0C0236AF */ jal func_8008DABC -/* 02C048 8002B448 02002025 */ move $a0, $s0 -/* 02C04C 8002B44C 8E02000C */ lw $v0, 0xc($s0) -.L8002B450: -/* 02C050 8002B450 304B4000 */ andi $t3, $v0, 0x4000 -/* 02C054 8002B454 24014000 */ li $at, 16384 -/* 02C058 8002B458 15610006 */ bne $t3, $at, .L8002B474 -/* 02C05C 8002B45C 02002025 */ move $a0, $s0 -/* 02C060 8002B460 00112E00 */ sll $a1, $s1, 0x18 -/* 02C064 8002B464 00056603 */ sra $t4, $a1, 0x18 -/* 02C068 8002B468 0C0237E6 */ jal func_8008DF98 -/* 02C06C 8002B46C 01802825 */ move $a1, $t4 -/* 02C070 8002B470 8E02000C */ lw $v0, 0xc($s0) -.L8002B474: -/* 02C074 8002B474 3C030020 */ lui $v1, 0x20 -/* 02C078 8002B478 00436824 */ and $t5, $v0, $v1 -/* 02C07C 8002B47C 146D0006 */ bne $v1, $t5, .L8002B498 -/* 02C080 8002B480 02002025 */ move $a0, $s0 -/* 02C084 8002B484 00112E00 */ sll $a1, $s1, 0x18 -/* 02C088 8002B488 00057603 */ sra $t6, $a1, 0x18 -/* 02C08C 8002B48C 0C0231CF */ jal func_8008C73C -/* 02C090 8002B490 01C02825 */ move $a1, $t6 -/* 02C094 8002B494 8E02000C */ lw $v0, 0xc($s0) -.L8002B498: -/* 02C098 8002B498 3C030040 */ lui $v1, 0x40 -/* 02C09C 8002B49C 00437824 */ and $t7, $v0, $v1 -/* 02C0A0 8002B4A0 146F0006 */ bne $v1, $t7, .L8002B4BC -/* 02C0A4 8002B4A4 02002025 */ move $a0, $s0 -/* 02C0A8 8002B4A8 00112E00 */ sll $a1, $s1, 0x18 -/* 02C0AC 8002B4AC 0005C603 */ sra $t8, $a1, 0x18 -/* 02C0B0 8002B4B0 0C0239B0 */ jal func_8008E6C0 -/* 02C0B4 8002B4B4 03002825 */ move $a1, $t8 -/* 02C0B8 8002B4B8 8E02000C */ lw $v0, 0xc($s0) -.L8002B4BC: -/* 02C0BC 8002B4BC 3C030100 */ lui $v1, 0x100 -/* 02C0C0 8002B4C0 0043C824 */ and $t9, $v0, $v1 -/* 02C0C4 8002B4C4 14790006 */ bne $v1, $t9, .L8002B4E0 -/* 02C0C8 8002B4C8 02002025 */ move $a0, $s0 -/* 02C0CC 8002B4CC 00112E00 */ sll $a1, $s1, 0x18 -/* 02C0D0 8002B4D0 00054603 */ sra $t0, $a1, 0x18 -/* 02C0D4 8002B4D4 0C023AB8 */ jal func_8008EAE0 -/* 02C0D8 8002B4D8 01002825 */ move $a1, $t0 -/* 02C0DC 8002B4DC 8E02000C */ lw $v0, 0xc($s0) -.L8002B4E0: -/* 02C0E0 8002B4E0 3C030080 */ lui $v1, 0x80 -/* 02C0E4 8002B4E4 00434824 */ and $t1, $v0, $v1 -/* 02C0E8 8002B4E8 14690006 */ bne $v1, $t1, .L8002B504 -/* 02C0EC 8002B4EC 02002025 */ move $a0, $s0 -/* 02C0F0 8002B4F0 00112E00 */ sll $a1, $s1, 0x18 -/* 02C0F4 8002B4F4 00055603 */ sra $t2, $a1, 0x18 -/* 02C0F8 8002B4F8 0C023B22 */ jal func_8008EC88 -/* 02C0FC 8002B4FC 01402825 */ move $a1, $t2 -/* 02C100 8002B500 8E02000C */ lw $v0, 0xc($s0) -.L8002B504: -/* 02C104 8002B504 304B8000 */ andi $t3, $v0, 0x8000 -/* 02C108 8002B508 34018000 */ li $at, 32768 -/* 02C10C 8002B50C 15610006 */ bne $t3, $at, .L8002B528 -/* 02C110 8002B510 02002025 */ move $a0, $s0 -/* 02C114 8002B514 00112E00 */ sll $a1, $s1, 0x18 -/* 02C118 8002B518 00056603 */ sra $t4, $a1, 0x18 -/* 02C11C 8002B51C 0C023BB9 */ jal func_8008EEE4 -/* 02C120 8002B520 01802825 */ move $a1, $t4 -/* 02C124 8002B524 8E02000C */ lw $v0, 0xc($s0) -.L8002B528: -/* 02C128 8002B528 304D2000 */ andi $t5, $v0, 0x2000 -/* 02C12C 8002B52C 24012000 */ li $at, 8192 -/* 02C130 8002B530 15A10006 */ bne $t5, $at, .L8002B54C -/* 02C134 8002B534 02002025 */ move $a0, $s0 -/* 02C138 8002B538 00112E00 */ sll $a1, $s1, 0x18 -/* 02C13C 8002B53C 00057603 */ sra $t6, $a1, 0x18 -/* 02C140 8002B540 0C023DDE */ jal func_8008F778 -/* 02C144 8002B544 01C02825 */ move $a1, $t6 -/* 02C148 8002B548 8E02000C */ lw $v0, 0xc($s0) -.L8002B54C: -/* 02C14C 8002B54C 304F0800 */ andi $t7, $v0, 0x800 -/* 02C150 8002B550 24010800 */ li $at, 2048 -/* 02C154 8002B554 15E10006 */ bne $t7, $at, .L8002B570 -/* 02C158 8002B558 02002025 */ move $a0, $s0 -/* 02C15C 8002B55C 00112E00 */ sll $a1, $s1, 0x18 -/* 02C160 8002B560 0005C603 */ sra $t8, $a1, 0x18 -/* 02C164 8002B564 0C023E8E */ jal func_8008FA38 -/* 02C168 8002B568 03002825 */ move $a1, $t8 -/* 02C16C 8002B56C 8E02000C */ lw $v0, 0xc($s0) -.L8002B570: -/* 02C170 8002B570 30590080 */ andi $t9, $v0, 0x80 -/* 02C174 8002B574 13200006 */ beqz $t9, .L8002B590 -/* 02C178 8002B578 02002025 */ move $a0, $s0 -/* 02C17C 8002B57C 00112E00 */ sll $a1, $s1, 0x18 -/* 02C180 8002B580 00054603 */ sra $t0, $a1, 0x18 -/* 02C184 8002B584 0C02343F */ jal func_8008D0FC -/* 02C188 8002B588 01002825 */ move $a1, $t0 -/* 02C18C 8002B58C 8E02000C */ lw $v0, 0xc($s0) -.L8002B590: -/* 02C190 8002B590 00024B00 */ sll $t1, $v0, 0xc -/* 02C194 8002B594 05210005 */ bgez $t1, .L8002B5AC -/* 02C198 8002B598 02002025 */ move $a0, $s0 -/* 02C19C 8002B59C 00112E00 */ sll $a1, $s1, 0x18 -/* 02C1A0 8002B5A0 00055603 */ sra $t2, $a1, 0x18 -/* 02C1A4 8002B5A4 0C0239B0 */ jal func_8008E6C0 -/* 02C1A8 8002B5A8 01402825 */ move $a1, $t2 -.L8002B5AC: -/* 02C1AC 8002B5AC 8FBF001C */ lw $ra, 0x1c($sp) -/* 02C1B0 8002B5B0 8FB00014 */ lw $s0, 0x14($sp) -/* 02C1B4 8002B5B4 8FB10018 */ lw $s1, 0x18($sp) -/* 02C1B8 8002B5B8 03E00008 */ jr $ra -/* 02C1BC 8002B5BC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code_80027D00/func_8002FCA8.s b/asm/non_matchings/code_80027D00/func_8002FCA8.s deleted file mode 100644 index ba48d2715..000000000 --- a/asm/non_matchings/code_80027D00/func_8002FCA8.s +++ /dev/null @@ -1,133 +0,0 @@ -glabel func_8002FCA8 -/* 0308A8 8002FCA8 AFA50004 */ sw $a1, 4($sp) -/* 0308AC 8002FCAC 8C8200BC */ lw $v0, 0xbc($a0) -/* 0308B0 8002FCB0 44806000 */ mtc1 $zero, $f12 -/* 0308B4 8002FCB4 00057600 */ sll $t6, $a1, 0x18 -/* 0308B8 8002FCB8 24010200 */ li $at, 512 -/* 0308BC 8002FCBC 30580200 */ andi $t8, $v0, 0x200 -/* 0308C0 8002FCC0 000E2E03 */ sra $a1, $t6, 0x18 -/* 0308C4 8002FCC4 13010035 */ beq $t8, $at, .L8002FD9C -/* 0308C8 8002FCC8 46006006 */ mov.s $f0, $f12 -/* 0308CC 8002FCCC 908301EC */ lbu $v1, 0x1ec($a0) -/* 0308D0 8002FCD0 2861000F */ slti $at, $v1, 0xf -/* 0308D4 8002FCD4 5020000B */ beql $at, $zero, .L8002FD04 -/* 0308D8 8002FCD8 908301D4 */ lbu $v1, 0x1d4($a0) -/* 0308DC 8002FCDC 94990254 */ lhu $t9, 0x254($a0) -/* 0308E0 8002FCE0 3C09800E */ lui $t1, %hi(D_800E2A90) -/* 0308E4 8002FCE4 00035080 */ sll $t2, $v1, 2 -/* 0308E8 8002FCE8 00194080 */ sll $t0, $t9, 2 -/* 0308EC 8002FCEC 01284821 */ addu $t1, $t1, $t0 -/* 0308F0 8002FCF0 8D292A90 */ lw $t1, %lo(D_800E2A90)($t1) -/* 0308F4 8002FCF4 012A5821 */ addu $t3, $t1, $t2 -/* 0308F8 8002FCF8 C5640000 */ lwc1 $f4, ($t3) -/* 0308FC 8002FCFC 46046000 */ add.s $f0, $f12, $f4 -/* 030900 8002FD00 908301D4 */ lbu $v1, 0x1d4($a0) -.L8002FD04: -/* 030904 8002FD04 2861000F */ slti $at, $v1, 0xf -/* 030908 8002FD08 5020000B */ beql $at, $zero, .L8002FD38 -/* 03090C 8002FD0C 908301BC */ lbu $v1, 0x1bc($a0) -/* 030910 8002FD10 948C0254 */ lhu $t4, 0x254($a0) -/* 030914 8002FD14 3C0E800E */ lui $t6, %hi(D_800E2A90) -/* 030918 8002FD18 00037880 */ sll $t7, $v1, 2 -/* 03091C 8002FD1C 000C6880 */ sll $t5, $t4, 2 -/* 030920 8002FD20 01CD7021 */ addu $t6, $t6, $t5 -/* 030924 8002FD24 8DCE2A90 */ lw $t6, %lo(D_800E2A90)($t6) -/* 030928 8002FD28 01CFC021 */ addu $t8, $t6, $t7 -/* 03092C 8002FD2C C7060000 */ lwc1 $f6, ($t8) -/* 030930 8002FD30 46060000 */ add.s $f0, $f0, $f6 -/* 030934 8002FD34 908301BC */ lbu $v1, 0x1bc($a0) -.L8002FD38: -/* 030938 8002FD38 2861000F */ slti $at, $v1, 0xf -/* 03093C 8002FD3C 5020000B */ beql $at, $zero, .L8002FD6C -/* 030940 8002FD40 908301A4 */ lbu $v1, 0x1a4($a0) -/* 030944 8002FD44 94990254 */ lhu $t9, 0x254($a0) -/* 030948 8002FD48 3C09800E */ lui $t1, %hi(D_800E2AB0) -/* 03094C 8002FD4C 00035080 */ sll $t2, $v1, 2 -/* 030950 8002FD50 00194080 */ sll $t0, $t9, 2 -/* 030954 8002FD54 01284821 */ addu $t1, $t1, $t0 -/* 030958 8002FD58 8D292AB0 */ lw $t1, %lo(D_800E2AB0)($t1) -/* 03095C 8002FD5C 012A5821 */ addu $t3, $t1, $t2 -/* 030960 8002FD60 C5680000 */ lwc1 $f8, ($t3) -/* 030964 8002FD64 46080000 */ add.s $f0, $f0, $f8 -/* 030968 8002FD68 908301A4 */ lbu $v1, 0x1a4($a0) -.L8002FD6C: -/* 03096C 8002FD6C 2861000F */ slti $at, $v1, 0xf -/* 030970 8002FD70 5020000B */ beql $at, $zero, .L8002FDA0 -/* 030974 8002FD74 0005C880 */ sll $t9, $a1, 2 -/* 030978 8002FD78 948C0254 */ lhu $t4, 0x254($a0) -/* 03097C 8002FD7C 3C0E800E */ lui $t6, %hi(D_800E2AB0) -/* 030980 8002FD80 00037880 */ sll $t7, $v1, 2 -/* 030984 8002FD84 000C6880 */ sll $t5, $t4, 2 -/* 030988 8002FD88 01CD7021 */ addu $t6, $t6, $t5 -/* 03098C 8002FD8C 8DCE2AB0 */ lw $t6, %lo(D_800E2AB0)($t6) -/* 030990 8002FD90 01CFC021 */ addu $t8, $t6, $t7 -/* 030994 8002FD94 C70A0000 */ lwc1 $f10, ($t8) -/* 030998 8002FD98 460A0000 */ add.s $f0, $f0, $f10 -.L8002FD9C: -/* 03099C 8002FD9C 0005C880 */ sll $t9, $a1, 2 -.L8002FDA0: -/* 0309A0 8002FDA0 3C088016 */ lui $t0, %hi(D_801652C0) # 0x8016 -/* 0309A4 8002FDA4 01194021 */ addu $t0, $t0, $t9 -/* 0309A8 8002FDA8 8D0852C0 */ lw $t0, %lo(D_801652C0)($t0) # 0x52c0($t0) -/* 0309AC 8002FDAC 3C014348 */ li $at, 0x43480000 # 200.000000 -/* 0309B0 8002FDB0 44819000 */ mtc1 $at, $f18 -/* 0309B4 8002FDB4 31090004 */ andi $t1, $t0, 4 -/* 0309B8 8002FDB8 11200003 */ beqz $t1, .L8002FDC8 -/* 0309BC 8002FDBC 00001825 */ move $v1, $zero -/* 0309C0 8002FDC0 10000001 */ b .L8002FDC8 -/* 0309C4 8002FDC4 24030002 */ li $v1, 2 -.L8002FDC8: -/* 0309C8 8002FDC8 C490009C */ lwc1 $f16, 0x9c($a0) -/* 0309CC 8002FDCC 24010002 */ li $at, 2 -/* 0309D0 8002FDD0 4610903E */ c.le.s $f18, $f16 -/* 0309D4 8002FDD4 00000000 */ nop -/* 0309D8 8002FDD8 45020012 */ bc1fl .L8002FE24 -/* 0309DC 8002FDDC 3C030020 */ lui $v1, 0x20 -/* 0309E0 8002FDE0 54610010 */ bnel $v1, $at, .L8002FE24 -/* 0309E4 8002FDE4 3C030020 */ lui $v1, 0x20 -/* 0309E8 8002FDE8 848300C0 */ lh $v1, 0xc0($a0) -/* 0309EC 8002FDEC 240100B6 */ li $at, 182 -/* 0309F0 8002FDF0 0061001A */ div $zero, $v1, $at -/* 0309F4 8002FDF4 00005012 */ mflo $t2 -/* 0309F8 8002FDF8 29410010 */ slti $at, $t2, 0x10 -/* 0309FC 8002FDFC 10200002 */ beqz $at, .L8002FE08 -/* 030A00 8002FE00 2941FFF1 */ slti $at, $t2, -0xf -/* 030A04 8002FE04 10200006 */ beqz $at, .L8002FE20 -.L8002FE08: -/* 030A08 8002FE08 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 030A0C 8002FE0C 44813800 */ mtc1 $at, $f7 -/* 030A10 8002FE10 44803000 */ mtc1 $zero, $f6 -/* 030A14 8002FE14 46000121 */ cvt.d.s $f4, $f0 -/* 030A18 8002FE18 46262200 */ add.d $f8, $f4, $f6 -/* 030A1C 8002FE1C 46204020 */ cvt.s.d $f0, $f8 -.L8002FE20: -/* 030A20 8002FE20 3C030020 */ lui $v1, 0x20 -.L8002FE24: -/* 030A24 8002FE24 00435824 */ and $t3, $v0, $v1 -/* 030A28 8002FE28 546B0009 */ bnel $v1, $t3, .L8002FE50 -/* 030A2C 8002FE2C C4820088 */ lwc1 $f2, 0x88($a0) -/* 030A30 8002FE30 948C0000 */ lhu $t4, ($a0) -/* 030A34 8002FE34 24014000 */ li $at, 16384 -/* 030A38 8002FE38 318D4000 */ andi $t5, $t4, 0x4000 -/* 030A3C 8002FE3C 11A10003 */ beq $t5, $at, .L8002FE4C -/* 030A40 8002FE40 3C01C040 */ li $at, 0xC0400000 # -3.000000 -/* 030A44 8002FE44 44810000 */ mtc1 $at, $f0 -/* 030A48 8002FE48 00000000 */ nop -.L8002FE4C: -/* 030A4C 8002FE4C C4820088 */ lwc1 $f2, 0x88($a0) -.L8002FE50: -/* 030A50 8002FE50 4602603E */ c.le.s $f12, $f2 -/* 030A54 8002FE54 00000000 */ nop -/* 030A58 8002FE58 45020005 */ bc1fl .L8002FE70 -/* 030A5C 8002FE5C 46001287 */ neg.s $f10, $f2 -/* 030A60 8002FE60 46001302 */ mul.s $f12, $f2, $f0 -/* 030A64 8002FE64 10000005 */ b .L8002FE7C -/* 030A68 8002FE68 460C1401 */ sub.s $f16, $f2, $f12 -/* 030A6C 8002FE6C 46001287 */ neg.s $f10, $f2 -.L8002FE70: -/* 030A70 8002FE70 46005302 */ mul.s $f12, $f10, $f0 -/* 030A74 8002FE74 00000000 */ nop -/* 030A78 8002FE78 460C1401 */ sub.s $f16, $f2, $f12 -.L8002FE7C: -/* 030A7C 8002FE7C 03E00008 */ jr $ra -/* 030A80 8002FE80 E4900208 */ swc1 $f16, 0x208($a0) diff --git a/asm/non_matchings/code_80027D00/func_80030C34.s b/asm/non_matchings/code_80027D00/func_80030C34.s deleted file mode 100644 index 00faab6c3..000000000 --- a/asm/non_matchings/code_80027D00/func_80030C34.s +++ /dev/null @@ -1,131 +0,0 @@ -glabel func_80030C34 -/* 031834 80030C34 3C0E800E */ lui $t6, %hi(gPlayerOne) # $t6, 0x800e -/* 031838 80030C38 8DCEC4DC */ lw $t6, %lo(gPlayerOne)($t6) -/* 03183C 80030C3C 27BDFFF8 */ addiu $sp, $sp, -8 -/* 031840 80030C40 3C0F800E */ lui $t7, %hi(gPlayerTwo) # $t7, 0x800e -/* 031844 80030C44 148E0002 */ bne $a0, $t6, .L80030C50 -/* 031848 80030C48 3C18800E */ lui $t8, %hi(gPlayerThree) # $t8, 0x800e -/* 03184C 80030C4C AFA00004 */ sw $zero, 4($sp) -.L80030C50: -/* 031850 80030C50 8DEFC4E0 */ lw $t7, %lo(gPlayerTwo)($t7) -/* 031854 80030C54 8FA20004 */ lw $v0, 4($sp) -/* 031858 80030C58 3C19800E */ lui $t9, %hi(gPlayerFour) # $t9, 0x800e -/* 03185C 80030C5C 148F0002 */ bne $a0, $t7, .L80030C68 -/* 031860 80030C60 3C09800E */ lui $t1, %hi(gPlayerFive) # $t1, 0x800e -/* 031864 80030C64 24020001 */ li $v0, 1 -.L80030C68: -/* 031868 80030C68 8F18C4E4 */ lw $t8, %lo(gPlayerThree)($t8) -/* 03186C 80030C6C 3C0A800E */ lui $t2, %hi(gPlayerSix) # $t2, 0x800e -/* 031870 80030C70 3C0B800E */ lui $t3, %hi(gPlayerSeven) # $t3, 0x800e -/* 031874 80030C74 14980002 */ bne $a0, $t8, .L80030C80 -/* 031878 80030C78 3C0C800E */ lui $t4, %hi(gPlayerEight) # $t4, 0x800e -/* 03187C 80030C7C 24020002 */ li $v0, 2 -.L80030C80: -/* 031880 80030C80 8F39C4E8 */ lw $t9, %lo(gPlayerFour)($t9) -/* 031884 80030C84 3C0D8016 */ lui $t5, %hi(D_80165460) # $t5, 0x8016 -/* 031888 80030C88 25AD5460 */ addiu $t5, %lo(D_80165460) # addiu $t5, $t5, 0x5460 -/* 03188C 80030C8C 14990002 */ bne $a0, $t9, .L80030C98 -/* 031890 80030C90 00000000 */ nop -/* 031894 80030C94 24020003 */ li $v0, 3 -.L80030C98: -/* 031898 80030C98 8D29C4EC */ lw $t1, %lo(gPlayerFive)($t1) -/* 03189C 80030C9C 3C0F8016 */ lui $t7, %hi(gPlayerIsThrottleActive) # $t7, 0x8016 -/* 0318A0 80030CA0 25EF53E0 */ addiu $t7, %lo(gPlayerIsThrottleActive) # addiu $t7, $t7, 0x53e0 -/* 0318A4 80030CA4 14890002 */ bne $a0, $t1, .L80030CB0 -/* 0318A8 80030CA8 00000000 */ nop -/* 0318AC 80030CAC 24020004 */ li $v0, 4 -.L80030CB0: -/* 0318B0 80030CB0 8D4AC4F0 */ lw $t2, %lo(gPlayerSix)($t2) -/* 0318B4 80030CB4 3C098016 */ lui $t1, %hi(D_80165420) # $t1, 0x8016 -/* 0318B8 80030CB8 25295420 */ addiu $t1, %lo(D_80165420) # addiu $t1, $t1, 0x5420 -/* 0318BC 80030CBC 148A0002 */ bne $a0, $t2, .L80030CC8 -/* 0318C0 80030CC0 00000000 */ nop -/* 0318C4 80030CC4 24020005 */ li $v0, 5 -.L80030CC8: -/* 0318C8 80030CC8 8D6BC4F4 */ lw $t3, %lo(gPlayerSeven)($t3) -/* 0318CC 80030CCC 148B0002 */ bne $a0, $t3, .L80030CD8 -/* 0318D0 80030CD0 00000000 */ nop -/* 0318D4 80030CD4 24020006 */ li $v0, 6 -.L80030CD8: -/* 0318D8 80030CD8 8D8CC4F8 */ lw $t4, %lo(gPlayerEight)($t4) -/* 0318DC 80030CDC 3C0B8016 */ lui $t3, %hi(D_80165480) # $t3, 0x8016 -/* 0318E0 80030CE0 256B5480 */ addiu $t3, %lo(D_80165480) # addiu $t3, $t3, 0x5480 -/* 0318E4 80030CE4 548C0003 */ bnel $a0, $t4, .L80030CF4 -/* 0318E8 80030CE8 00021880 */ sll $v1, $v0, 2 -/* 0318EC 80030CEC 24020007 */ li $v0, 7 -/* 0318F0 80030CF0 00021880 */ sll $v1, $v0, 2 -.L80030CF4: -/* 0318F4 80030CF4 006D2021 */ addu $a0, $v1, $t5 -/* 0318F8 80030CF8 8C8E0000 */ lw $t6, ($a0) -/* 0318FC 80030CFC 3C0C8016 */ lui $t4, %hi(D_80165440) # $t4, 0x8016 -/* 031900 80030D00 258C5440 */ addiu $t4, %lo(D_80165440) # addiu $t4, $t4, 0x5440 -/* 031904 80030D04 15C00037 */ bnez $t6, .L80030DE4 -/* 031908 80030D08 006B1021 */ addu $v0, $v1, $t3 -/* 03190C 80030D0C 006F1021 */ addu $v0, $v1, $t7 -/* 031910 80030D10 8C580000 */ lw $t8, ($v0) -/* 031914 80030D14 24080001 */ li $t0, 1 -/* 031918 80030D18 3C198016 */ lui $t9, %hi(D_80165420) # $t9, 0x8016 -/* 03191C 80030D1C 1518000E */ bne $t0, $t8, .L80030D58 -/* 031920 80030D20 27395420 */ addiu $t9, %lo(D_80165420) # addiu $t9, $t9, 0x5420 -/* 031924 80030D24 00792821 */ addu $a1, $v1, $t9 -/* 031928 80030D28 8CA60000 */ lw $a2, ($a1) -/* 03192C 80030D2C 28C10002 */ slti $at, $a2, 2 -/* 031930 80030D30 14200002 */ bnez $at, .L80030D3C -/* 031934 80030D34 28C10009 */ slti $at, $a2, 9 -/* 031938 80030D38 14200003 */ bnez $at, .L80030D48 -.L80030D3C: -/* 03193C 80030D3C 3C018016 */ lui $at, %hi(D_80165440) # 0x8016 -/* 031940 80030D40 00230821 */ addu $at, $at, $v1 -/* 031944 80030D44 AC205440 */ sw $zero, %lo(D_80165440)($at) # 0x5440($at) -.L80030D48: -/* 031948 80030D48 3C018016 */ lui $at, %hi(D_80165400) # 0x8016 -/* 03194C 80030D4C ACA00000 */ sw $zero, ($a1) -/* 031950 80030D50 00230821 */ addu $at, $at, $v1 -/* 031954 80030D54 AC205400 */ sw $zero, %lo(D_80165400)($at) # 0x5400($at) -.L80030D58: -/* 031958 80030D58 00692821 */ addu $a1, $v1, $t1 -/* 03195C 80030D5C 8CAA0000 */ lw $t2, ($a1) -/* 031960 80030D60 AC400000 */ sw $zero, ($v0) -/* 031964 80030D64 006C3821 */ addu $a3, $v1, $t4 -/* 031968 80030D68 25460001 */ addiu $a2, $t2, 1 -/* 03196C 80030D6C 28C10009 */ slti $at, $a2, 9 -/* 031970 80030D70 14200003 */ bnez $at, .L80030D80 -/* 031974 80030D74 ACA60000 */ sw $a2, ($a1) -/* 031978 80030D78 24060009 */ li $a2, 9 -/* 03197C 80030D7C ACA60000 */ sw $a2, ($a1) -.L80030D80: -/* 031980 80030D80 28C10002 */ slti $at, $a2, 2 -/* 031984 80030D84 1420000D */ bnez $at, .L80030DBC -/* 031988 80030D88 240A0078 */ li $t2, 120 -/* 03198C 80030D8C 28C10009 */ slti $at, $a2, 9 -/* 031990 80030D90 1020000A */ beqz $at, .L80030DBC -/* 031994 80030D94 3C0E8016 */ lui $t6, %hi(D_80165400) # $t6, 0x8016 -/* 031998 80030D98 25CE5400 */ addiu $t6, %lo(D_80165400) # addiu $t6, $t6, 0x5400 -/* 03199C 80030D9C 006E1021 */ addu $v0, $v1, $t6 -/* 0319A0 80030DA0 8C4F0000 */ lw $t7, ($v0) -/* 0319A4 80030DA4 55E00005 */ bnel $t7, $zero, .L80030DBC -/* 0319A8 80030DA8 AC480000 */ sw $t0, ($v0) -/* 0319AC 80030DAC 8CF80000 */ lw $t8, ($a3) -/* 0319B0 80030DB0 27190001 */ addiu $t9, $t8, 1 -/* 0319B4 80030DB4 ACF90000 */ sw $t9, ($a3) -/* 0319B8 80030DB8 AC480000 */ sw $t0, ($v0) -.L80030DBC: -/* 0319BC 80030DBC 8CE90000 */ lw $t1, ($a3) -/* 0319C0 80030DC0 24010005 */ li $at, 5 -/* 0319C4 80030DC4 1521000C */ bne $t1, $at, .L80030DF8 -/* 0319C8 80030DC8 3C018016 */ lui $at, %hi(D_80165480) # 0x8016 -/* 0319CC 80030DCC AC880000 */ sw $t0, ($a0) -/* 0319D0 80030DD0 00230821 */ addu $at, $at, $v1 -/* 0319D4 80030DD4 AC2A5480 */ sw $t2, %lo(D_80165480)($at) # 0x5480($at) -/* 0319D8 80030DD8 ACE00000 */ sw $zero, ($a3) -/* 0319DC 80030DDC 10000006 */ b .L80030DF8 -/* 0319E0 80030DE0 ACA00000 */ sw $zero, ($a1) -.L80030DE4: -/* 0319E4 80030DE4 8C4C0000 */ lw $t4, ($v0) -/* 0319E8 80030DE8 258DFFFF */ addiu $t5, $t4, -1 -/* 0319EC 80030DEC 1DA00002 */ bgtz $t5, .L80030DF8 -/* 0319F0 80030DF0 AC4D0000 */ sw $t5, ($v0) -/* 0319F4 80030DF4 AC800000 */ sw $zero, ($a0) -.L80030DF8: -/* 0319F8 80030DF8 03E00008 */ jr $ra -/* 0319FC 80030DFC 27BD0008 */ addiu $sp, $sp, 8 diff --git a/asm/non_matchings/code_80027D00/func_80030E00.s b/asm/non_matchings/code_80027D00/func_80030E00.s deleted file mode 100644 index 40de0d1a6..000000000 --- a/asm/non_matchings/code_80027D00/func_80030E00.s +++ /dev/null @@ -1,130 +0,0 @@ -glabel func_80030E00 -/* 031A00 80030E00 3C0E800E */ lui $t6, %hi(gPlayerOne) # $t6, 0x800e -/* 031A04 80030E04 8DCEC4DC */ lw $t6, %lo(gPlayerOne)($t6) -/* 031A08 80030E08 27BDFFF8 */ addiu $sp, $sp, -8 -/* 031A0C 80030E0C 3C0F800E */ lui $t7, %hi(gPlayerTwo) # $t7, 0x800e -/* 031A10 80030E10 148E0002 */ bne $a0, $t6, .L80030E1C -/* 031A14 80030E14 3C18800E */ lui $t8, %hi(gPlayerThree) # $t8, 0x800e -/* 031A18 80030E18 AFA00004 */ sw $zero, 4($sp) -.L80030E1C: -/* 031A1C 80030E1C 8DEFC4E0 */ lw $t7, %lo(gPlayerTwo)($t7) -/* 031A20 80030E20 8FA20004 */ lw $v0, 4($sp) -/* 031A24 80030E24 3C19800E */ lui $t9, %hi(gPlayerFour) # $t9, 0x800e -/* 031A28 80030E28 148F0002 */ bne $a0, $t7, .L80030E34 -/* 031A2C 80030E2C 3C09800E */ lui $t1, %hi(gPlayerFive) # $t1, 0x800e -/* 031A30 80030E30 24020001 */ li $v0, 1 -.L80030E34: -/* 031A34 80030E34 8F18C4E4 */ lw $t8, %lo(gPlayerThree)($t8) -/* 031A38 80030E38 3C0A800E */ lui $t2, %hi(gPlayerSix) # $t2, 0x800e -/* 031A3C 80030E3C 3C0B800E */ lui $t3, %hi(gPlayerSeven) # $t3, 0x800e -/* 031A40 80030E40 14980002 */ bne $a0, $t8, .L80030E4C -/* 031A44 80030E44 3C0C800E */ lui $t4, %hi(gPlayerEight) # $t4, 0x800e -/* 031A48 80030E48 24020002 */ li $v0, 2 -.L80030E4C: -/* 031A4C 80030E4C 8F39C4E8 */ lw $t9, %lo(gPlayerFour)($t9) -/* 031A50 80030E50 3C0D8016 */ lui $t5, %hi(D_80165460) # $t5, 0x8016 -/* 031A54 80030E54 25AD5460 */ addiu $t5, %lo(D_80165460) # addiu $t5, $t5, 0x5460 -/* 031A58 80030E58 14990002 */ bne $a0, $t9, .L80030E64 -/* 031A5C 80030E5C 00000000 */ nop -/* 031A60 80030E60 24020003 */ li $v0, 3 -.L80030E64: -/* 031A64 80030E64 8D29C4EC */ lw $t1, %lo(gPlayerFive)($t1) -/* 031A68 80030E68 3C0F8016 */ lui $t7, %hi(gPlayerIsThrottleActive) # $t7, 0x8016 -/* 031A6C 80030E6C 25EF53E0 */ addiu $t7, %lo(gPlayerIsThrottleActive) # addiu $t7, $t7, 0x53e0 -/* 031A70 80030E70 14890002 */ bne $a0, $t1, .L80030E7C -/* 031A74 80030E74 00000000 */ nop -/* 031A78 80030E78 24020004 */ li $v0, 4 -.L80030E7C: -/* 031A7C 80030E7C 8D4AC4F0 */ lw $t2, %lo(gPlayerSix)($t2) -/* 031A80 80030E80 3C098016 */ lui $t1, %hi(D_80165420) # $t1, 0x8016 -/* 031A84 80030E84 24080001 */ li $t0, 1 -/* 031A88 80030E88 148A0002 */ bne $a0, $t2, .L80030E94 -/* 031A8C 80030E8C 25295420 */ addiu $t1, %lo(D_80165420) # addiu $t1, $t1, 0x5420 -/* 031A90 80030E90 24020005 */ li $v0, 5 -.L80030E94: -/* 031A94 80030E94 8D6BC4F4 */ lw $t3, %lo(gPlayerSeven)($t3) -/* 031A98 80030E98 148B0002 */ bne $a0, $t3, .L80030EA4 -/* 031A9C 80030E9C 00000000 */ nop -/* 031AA0 80030EA0 24020006 */ li $v0, 6 -.L80030EA4: -/* 031AA4 80030EA4 8D8CC4F8 */ lw $t4, %lo(gPlayerEight)($t4) -/* 031AA8 80030EA8 3C0B8016 */ lui $t3, %hi(D_80165480) # $t3, 0x8016 -/* 031AAC 80030EAC 256B5480 */ addiu $t3, %lo(D_80165480) # addiu $t3, $t3, 0x5480 -/* 031AB0 80030EB0 548C0003 */ bnel $a0, $t4, .L80030EC0 -/* 031AB4 80030EB4 00021880 */ sll $v1, $v0, 2 -/* 031AB8 80030EB8 24020007 */ li $v0, 7 -/* 031ABC 80030EBC 00021880 */ sll $v1, $v0, 2 -.L80030EC0: -/* 031AC0 80030EC0 006D2021 */ addu $a0, $v1, $t5 -/* 031AC4 80030EC4 8C8E0000 */ lw $t6, ($a0) -/* 031AC8 80030EC8 3C0C8016 */ lui $t4, %hi(D_80165440) # $t4, 0x8016 -/* 031ACC 80030ECC 258C5440 */ addiu $t4, %lo(D_80165440) # addiu $t4, $t4, 0x5440 -/* 031AD0 80030ED0 15C00036 */ bnez $t6, .L80030FAC -/* 031AD4 80030ED4 006B1021 */ addu $v0, $v1, $t3 -/* 031AD8 80030ED8 006F1021 */ addu $v0, $v1, $t7 -/* 031ADC 80030EDC 8C580000 */ lw $t8, ($v0) -/* 031AE0 80030EE0 3C198016 */ lui $t9, %hi(D_80165420) # $t9, 0x8016 -/* 031AE4 80030EE4 27395420 */ addiu $t9, %lo(D_80165420) # addiu $t9, $t9, 0x5420 -/* 031AE8 80030EE8 1700000D */ bnez $t8, .L80030F20 -/* 031AEC 80030EEC 00792821 */ addu $a1, $v1, $t9 -/* 031AF0 80030EF0 8CA60000 */ lw $a2, ($a1) -/* 031AF4 80030EF4 28C10002 */ slti $at, $a2, 2 -/* 031AF8 80030EF8 14200002 */ bnez $at, .L80030F04 -/* 031AFC 80030EFC 28C10009 */ slti $at, $a2, 9 -/* 031B00 80030F00 14200003 */ bnez $at, .L80030F10 -.L80030F04: -/* 031B04 80030F04 3C018016 */ lui $at, %hi(D_80165440) # 0x8016 -/* 031B08 80030F08 00230821 */ addu $at, $at, $v1 -/* 031B0C 80030F0C AC205440 */ sw $zero, %lo(D_80165440)($at) # 0x5440($at) -.L80030F10: -/* 031B10 80030F10 3C018016 */ lui $at, %hi(D_80165400) # 0x8016 -/* 031B14 80030F14 ACA00000 */ sw $zero, ($a1) -/* 031B18 80030F18 00230821 */ addu $at, $at, $v1 -/* 031B1C 80030F1C AC205400 */ sw $zero, %lo(D_80165400)($at) # 0x5400($at) -.L80030F20: -/* 031B20 80030F20 00692821 */ addu $a1, $v1, $t1 -/* 031B24 80030F24 8CAA0000 */ lw $t2, ($a1) -/* 031B28 80030F28 AC480000 */ sw $t0, ($v0) -/* 031B2C 80030F2C 006C3821 */ addu $a3, $v1, $t4 -/* 031B30 80030F30 25460001 */ addiu $a2, $t2, 1 -/* 031B34 80030F34 28C10009 */ slti $at, $a2, 9 -/* 031B38 80030F38 14200003 */ bnez $at, .L80030F48 -/* 031B3C 80030F3C ACA60000 */ sw $a2, ($a1) -/* 031B40 80030F40 24060009 */ li $a2, 9 -/* 031B44 80030F44 ACA60000 */ sw $a2, ($a1) -.L80030F48: -/* 031B48 80030F48 28C10002 */ slti $at, $a2, 2 -/* 031B4C 80030F4C 1420000D */ bnez $at, .L80030F84 -/* 031B50 80030F50 240A0078 */ li $t2, 120 -/* 031B54 80030F54 28C10009 */ slti $at, $a2, 9 -/* 031B58 80030F58 1020000A */ beqz $at, .L80030F84 -/* 031B5C 80030F5C 3C0E8016 */ lui $t6, %hi(D_80165400) # $t6, 0x8016 -/* 031B60 80030F60 25CE5400 */ addiu $t6, %lo(D_80165400) # addiu $t6, $t6, 0x5400 -/* 031B64 80030F64 006E1021 */ addu $v0, $v1, $t6 -/* 031B68 80030F68 8C4F0000 */ lw $t7, ($v0) -/* 031B6C 80030F6C 55E00005 */ bnel $t7, $zero, .L80030F84 -/* 031B70 80030F70 AC480000 */ sw $t0, ($v0) -/* 031B74 80030F74 8CF80000 */ lw $t8, ($a3) -/* 031B78 80030F78 27190001 */ addiu $t9, $t8, 1 -/* 031B7C 80030F7C ACF90000 */ sw $t9, ($a3) -/* 031B80 80030F80 AC480000 */ sw $t0, ($v0) -.L80030F84: -/* 031B84 80030F84 8CE90000 */ lw $t1, ($a3) -/* 031B88 80030F88 24010005 */ li $at, 5 -/* 031B8C 80030F8C 1521000C */ bne $t1, $at, .L80030FC0 -/* 031B90 80030F90 3C018016 */ lui $at, %hi(D_80165480) # 0x8016 -/* 031B94 80030F94 AC880000 */ sw $t0, ($a0) -/* 031B98 80030F98 00230821 */ addu $at, $at, $v1 -/* 031B9C 80030F9C AC2A5480 */ sw $t2, %lo(D_80165480)($at) # 0x5480($at) -/* 031BA0 80030FA0 ACE00000 */ sw $zero, ($a3) -/* 031BA4 80030FA4 10000006 */ b .L80030FC0 -/* 031BA8 80030FA8 ACA00000 */ sw $zero, ($a1) -.L80030FAC: -/* 031BAC 80030FAC 8C4C0000 */ lw $t4, ($v0) -/* 031BB0 80030FB0 258DFFFF */ addiu $t5, $t4, -1 -/* 031BB4 80030FB4 1DA00002 */ bgtz $t5, .L80030FC0 -/* 031BB8 80030FB8 AC4D0000 */ sw $t5, ($v0) -/* 031BBC 80030FBC AC800000 */ sw $zero, ($a0) -.L80030FC0: -/* 031BC0 80030FC0 03E00008 */ jr $ra -/* 031BC4 80030FC4 27BD0008 */ addiu $sp, $sp, 8 diff --git a/asm/non_matchings/code_80027D00/func_80032050.s b/asm/non_matchings/code_80027D00/func_80032050.s deleted file mode 100644 index 11fef0558..000000000 --- a/asm/non_matchings/code_80027D00/func_80032050.s +++ /dev/null @@ -1,131 +0,0 @@ -glabel func_80032050 -/* 032C50 80032050 3C0E800E */ lui $t6, %hi(gPlayerOne) # $t6, 0x800e -/* 032C54 80032054 8DCEC4DC */ lw $t6, %lo(gPlayerOne)($t6) -/* 032C58 80032058 27BDFFF8 */ addiu $sp, $sp, -8 -/* 032C5C 8003205C 3C0F800E */ lui $t7, %hi(gPlayerTwo) # $t7, 0x800e -/* 032C60 80032060 148E0002 */ bne $a0, $t6, .L8003206C -/* 032C64 80032064 3C18800E */ lui $t8, %hi(gPlayerThree) # $t8, 0x800e -/* 032C68 80032068 AFA00004 */ sw $zero, 4($sp) -.L8003206C: -/* 032C6C 8003206C 8DEFC4E0 */ lw $t7, %lo(gPlayerTwo)($t7) -/* 032C70 80032070 8FA20004 */ lw $v0, 4($sp) -/* 032C74 80032074 3C19800E */ lui $t9, %hi(gPlayerFour) # $t9, 0x800e -/* 032C78 80032078 148F0002 */ bne $a0, $t7, .L80032084 -/* 032C7C 8003207C 3C09800E */ lui $t1, %hi(gPlayerFive) # $t1, 0x800e -/* 032C80 80032080 24020001 */ li $v0, 1 -.L80032084: -/* 032C84 80032084 8F18C4E4 */ lw $t8, %lo(gPlayerThree)($t8) -/* 032C88 80032088 3C0A800E */ lui $t2, %hi(gPlayerSix) # $t2, 0x800e -/* 032C8C 8003208C 3C0B800E */ lui $t3, %hi(gPlayerSeven) # $t3, 0x800e -/* 032C90 80032090 14980002 */ bne $a0, $t8, .L8003209C -/* 032C94 80032094 3C0C800E */ lui $t4, %hi(gPlayerEight) # $t4, 0x800e -/* 032C98 80032098 24020002 */ li $v0, 2 -.L8003209C: -/* 032C9C 8003209C 8F39C4E8 */ lw $t9, %lo(gPlayerFour)($t9) -/* 032CA0 800320A0 3C0D8016 */ lui $t5, %hi(D_80165520) # $t5, 0x8016 -/* 032CA4 800320A4 25AD5520 */ addiu $t5, %lo(D_80165520) # addiu $t5, $t5, 0x5520 -/* 032CA8 800320A8 14990002 */ bne $a0, $t9, .L800320B4 -/* 032CAC 800320AC 00000000 */ nop -/* 032CB0 800320B0 24020003 */ li $v0, 3 -.L800320B4: -/* 032CB4 800320B4 8D29C4EC */ lw $t1, %lo(gPlayerFive)($t1) -/* 032CB8 800320B8 3C0F8016 */ lui $t7, %hi(D_801654A0) # $t7, 0x8016 -/* 032CBC 800320BC 25EF54A0 */ addiu $t7, %lo(D_801654A0) # addiu $t7, $t7, 0x54a0 -/* 032CC0 800320C0 14890002 */ bne $a0, $t1, .L800320CC -/* 032CC4 800320C4 00000000 */ nop -/* 032CC8 800320C8 24020004 */ li $v0, 4 -.L800320CC: -/* 032CCC 800320CC 8D4AC4F0 */ lw $t2, %lo(gPlayerSix)($t2) -/* 032CD0 800320D0 3C098016 */ lui $t1, %hi(D_801654E0) # $t1, 0x8016 -/* 032CD4 800320D4 252954E0 */ addiu $t1, %lo(D_801654E0) # addiu $t1, $t1, 0x54e0 -/* 032CD8 800320D8 148A0002 */ bne $a0, $t2, .L800320E4 -/* 032CDC 800320DC 00000000 */ nop -/* 032CE0 800320E0 24020005 */ li $v0, 5 -.L800320E4: -/* 032CE4 800320E4 8D6BC4F4 */ lw $t3, %lo(gPlayerSeven)($t3) -/* 032CE8 800320E8 148B0002 */ bne $a0, $t3, .L800320F4 -/* 032CEC 800320EC 00000000 */ nop -/* 032CF0 800320F0 24020006 */ li $v0, 6 -.L800320F4: -/* 032CF4 800320F4 8D8CC4F8 */ lw $t4, %lo(gPlayerEight)($t4) -/* 032CF8 800320F8 3C0B8016 */ lui $t3, %hi(D_80165540) # $t3, 0x8016 -/* 032CFC 800320FC 256B5540 */ addiu $t3, %lo(D_80165540) # addiu $t3, $t3, 0x5540 -/* 032D00 80032100 548C0003 */ bnel $a0, $t4, .L80032110 -/* 032D04 80032104 00021880 */ sll $v1, $v0, 2 -/* 032D08 80032108 24020007 */ li $v0, 7 -/* 032D0C 8003210C 00021880 */ sll $v1, $v0, 2 -.L80032110: -/* 032D10 80032110 006D2021 */ addu $a0, $v1, $t5 -/* 032D14 80032114 8C8E0000 */ lw $t6, ($a0) -/* 032D18 80032118 3C0C8016 */ lui $t4, %hi(D_80165500) # $t4, 0x8016 -/* 032D1C 8003211C 258C5500 */ addiu $t4, %lo(D_80165500) # addiu $t4, $t4, 0x5500 -/* 032D20 80032120 15C00037 */ bnez $t6, .L80032200 -/* 032D24 80032124 006B1021 */ addu $v0, $v1, $t3 -/* 032D28 80032128 006F1021 */ addu $v0, $v1, $t7 -/* 032D2C 8003212C 8C580000 */ lw $t8, ($v0) -/* 032D30 80032130 24080001 */ li $t0, 1 -/* 032D34 80032134 3C198016 */ lui $t9, %hi(D_801654E0) # $t9, 0x8016 -/* 032D38 80032138 1518000E */ bne $t0, $t8, .L80032174 -/* 032D3C 8003213C 273954E0 */ addiu $t9, %lo(D_801654E0) # addiu $t9, $t9, 0x54e0 -/* 032D40 80032140 00792821 */ addu $a1, $v1, $t9 -/* 032D44 80032144 8CA60000 */ lw $a2, ($a1) -/* 032D48 80032148 28C10002 */ slti $at, $a2, 2 -/* 032D4C 8003214C 14200002 */ bnez $at, .L80032158 -/* 032D50 80032150 28C10009 */ slti $at, $a2, 9 -/* 032D54 80032154 14200003 */ bnez $at, .L80032164 -.L80032158: -/* 032D58 80032158 3C018016 */ lui $at, %hi(D_80165500) # 0x8016 -/* 032D5C 8003215C 00230821 */ addu $at, $at, $v1 -/* 032D60 80032160 AC205500 */ sw $zero, %lo(D_80165500)($at) # 0x5500($at) -.L80032164: -/* 032D64 80032164 3C018016 */ lui $at, %hi(D_801654C0) # 0x8016 -/* 032D68 80032168 ACA00000 */ sw $zero, ($a1) -/* 032D6C 8003216C 00230821 */ addu $at, $at, $v1 -/* 032D70 80032170 AC2054C0 */ sw $zero, %lo(D_801654C0)($at) # 0x54c0($at) -.L80032174: -/* 032D74 80032174 00692821 */ addu $a1, $v1, $t1 -/* 032D78 80032178 8CAA0000 */ lw $t2, ($a1) -/* 032D7C 8003217C AC400000 */ sw $zero, ($v0) -/* 032D80 80032180 006C3821 */ addu $a3, $v1, $t4 -/* 032D84 80032184 25460001 */ addiu $a2, $t2, 1 -/* 032D88 80032188 28C10009 */ slti $at, $a2, 9 -/* 032D8C 8003218C 14200003 */ bnez $at, .L8003219C -/* 032D90 80032190 ACA60000 */ sw $a2, ($a1) -/* 032D94 80032194 24060009 */ li $a2, 9 -/* 032D98 80032198 ACA60000 */ sw $a2, ($a1) -.L8003219C: -/* 032D9C 8003219C 28C10002 */ slti $at, $a2, 2 -/* 032DA0 800321A0 1420000D */ bnez $at, .L800321D8 -/* 032DA4 800321A4 240A0078 */ li $t2, 120 -/* 032DA8 800321A8 28C10009 */ slti $at, $a2, 9 -/* 032DAC 800321AC 1020000A */ beqz $at, .L800321D8 -/* 032DB0 800321B0 3C0E8016 */ lui $t6, %hi(D_801654C0) # $t6, 0x8016 -/* 032DB4 800321B4 25CE54C0 */ addiu $t6, %lo(D_801654C0) # addiu $t6, $t6, 0x54c0 -/* 032DB8 800321B8 006E1021 */ addu $v0, $v1, $t6 -/* 032DBC 800321BC 8C4F0000 */ lw $t7, ($v0) -/* 032DC0 800321C0 55E00005 */ bnel $t7, $zero, .L800321D8 -/* 032DC4 800321C4 AC480000 */ sw $t0, ($v0) -/* 032DC8 800321C8 8CF80000 */ lw $t8, ($a3) -/* 032DCC 800321CC 27190001 */ addiu $t9, $t8, 1 -/* 032DD0 800321D0 ACF90000 */ sw $t9, ($a3) -/* 032DD4 800321D4 AC480000 */ sw $t0, ($v0) -.L800321D8: -/* 032DD8 800321D8 8CE90000 */ lw $t1, ($a3) -/* 032DDC 800321DC 24010005 */ li $at, 5 -/* 032DE0 800321E0 1521000C */ bne $t1, $at, .L80032214 -/* 032DE4 800321E4 3C018016 */ lui $at, %hi(D_80165540) # 0x8016 -/* 032DE8 800321E8 AC880000 */ sw $t0, ($a0) -/* 032DEC 800321EC 00230821 */ addu $at, $at, $v1 -/* 032DF0 800321F0 AC2A5540 */ sw $t2, %lo(D_80165540)($at) # 0x5540($at) -/* 032DF4 800321F4 ACE00000 */ sw $zero, ($a3) -/* 032DF8 800321F8 10000006 */ b .L80032214 -/* 032DFC 800321FC ACA00000 */ sw $zero, ($a1) -.L80032200: -/* 032E00 80032200 8C4C0000 */ lw $t4, ($v0) -/* 032E04 80032204 258DFFFF */ addiu $t5, $t4, -1 -/* 032E08 80032208 1DA00002 */ bgtz $t5, .L80032214 -/* 032E0C 8003220C AC4D0000 */ sw $t5, ($v0) -/* 032E10 80032210 AC800000 */ sw $zero, ($a0) -.L80032214: -/* 032E14 80032214 03E00008 */ jr $ra -/* 032E18 80032218 27BD0008 */ addiu $sp, $sp, 8 diff --git a/asm/non_matchings/code_80027D00/func_8003221C.s b/asm/non_matchings/code_80027D00/func_8003221C.s deleted file mode 100644 index 27aa070a5..000000000 --- a/asm/non_matchings/code_80027D00/func_8003221C.s +++ /dev/null @@ -1,130 +0,0 @@ -glabel func_8003221C -/* 032E1C 8003221C 3C0E800E */ lui $t6, %hi(gPlayerOne) # $t6, 0x800e -/* 032E20 80032220 8DCEC4DC */ lw $t6, %lo(gPlayerOne)($t6) -/* 032E24 80032224 27BDFFF8 */ addiu $sp, $sp, -8 -/* 032E28 80032228 3C0F800E */ lui $t7, %hi(gPlayerTwo) # $t7, 0x800e -/* 032E2C 8003222C 148E0002 */ bne $a0, $t6, .L80032238 -/* 032E30 80032230 3C18800E */ lui $t8, %hi(gPlayerThree) # $t8, 0x800e -/* 032E34 80032234 AFA00004 */ sw $zero, 4($sp) -.L80032238: -/* 032E38 80032238 8DEFC4E0 */ lw $t7, %lo(gPlayerTwo)($t7) -/* 032E3C 8003223C 8FA20004 */ lw $v0, 4($sp) -/* 032E40 80032240 3C19800E */ lui $t9, %hi(gPlayerFour) # $t9, 0x800e -/* 032E44 80032244 148F0002 */ bne $a0, $t7, .L80032250 -/* 032E48 80032248 3C09800E */ lui $t1, %hi(gPlayerFive) # $t1, 0x800e -/* 032E4C 8003224C 24020001 */ li $v0, 1 -.L80032250: -/* 032E50 80032250 8F18C4E4 */ lw $t8, %lo(gPlayerThree)($t8) -/* 032E54 80032254 3C0A800E */ lui $t2, %hi(gPlayerSix) # $t2, 0x800e -/* 032E58 80032258 3C0B800E */ lui $t3, %hi(gPlayerSeven) # $t3, 0x800e -/* 032E5C 8003225C 14980002 */ bne $a0, $t8, .L80032268 -/* 032E60 80032260 3C0C800E */ lui $t4, %hi(gPlayerEight) # $t4, 0x800e -/* 032E64 80032264 24020002 */ li $v0, 2 -.L80032268: -/* 032E68 80032268 8F39C4E8 */ lw $t9, %lo(gPlayerFour)($t9) -/* 032E6C 8003226C 3C0D8016 */ lui $t5, %hi(D_80165520) # $t5, 0x8016 -/* 032E70 80032270 25AD5520 */ addiu $t5, %lo(D_80165520) # addiu $t5, $t5, 0x5520 -/* 032E74 80032274 14990002 */ bne $a0, $t9, .L80032280 -/* 032E78 80032278 00000000 */ nop -/* 032E7C 8003227C 24020003 */ li $v0, 3 -.L80032280: -/* 032E80 80032280 8D29C4EC */ lw $t1, %lo(gPlayerFive)($t1) -/* 032E84 80032284 3C0F8016 */ lui $t7, %hi(D_801654A0) # $t7, 0x8016 -/* 032E88 80032288 25EF54A0 */ addiu $t7, %lo(D_801654A0) # addiu $t7, $t7, 0x54a0 -/* 032E8C 8003228C 14890002 */ bne $a0, $t1, .L80032298 -/* 032E90 80032290 00000000 */ nop -/* 032E94 80032294 24020004 */ li $v0, 4 -.L80032298: -/* 032E98 80032298 8D4AC4F0 */ lw $t2, %lo(gPlayerSix)($t2) -/* 032E9C 8003229C 3C098016 */ lui $t1, %hi(D_801654E0) # $t1, 0x8016 -/* 032EA0 800322A0 24080001 */ li $t0, 1 -/* 032EA4 800322A4 148A0002 */ bne $a0, $t2, .L800322B0 -/* 032EA8 800322A8 252954E0 */ addiu $t1, %lo(D_801654E0) # addiu $t1, $t1, 0x54e0 -/* 032EAC 800322AC 24020005 */ li $v0, 5 -.L800322B0: -/* 032EB0 800322B0 8D6BC4F4 */ lw $t3, %lo(gPlayerSeven)($t3) -/* 032EB4 800322B4 148B0002 */ bne $a0, $t3, .L800322C0 -/* 032EB8 800322B8 00000000 */ nop -/* 032EBC 800322BC 24020006 */ li $v0, 6 -.L800322C0: -/* 032EC0 800322C0 8D8CC4F8 */ lw $t4, %lo(gPlayerEight)($t4) -/* 032EC4 800322C4 3C0B8016 */ lui $t3, %hi(D_80165540) # $t3, 0x8016 -/* 032EC8 800322C8 256B5540 */ addiu $t3, %lo(D_80165540) # addiu $t3, $t3, 0x5540 -/* 032ECC 800322CC 548C0003 */ bnel $a0, $t4, .L800322DC -/* 032ED0 800322D0 00021880 */ sll $v1, $v0, 2 -/* 032ED4 800322D4 24020007 */ li $v0, 7 -/* 032ED8 800322D8 00021880 */ sll $v1, $v0, 2 -.L800322DC: -/* 032EDC 800322DC 006D2021 */ addu $a0, $v1, $t5 -/* 032EE0 800322E0 8C8E0000 */ lw $t6, ($a0) -/* 032EE4 800322E4 3C0C8016 */ lui $t4, %hi(D_80165500) # $t4, 0x8016 -/* 032EE8 800322E8 258C5500 */ addiu $t4, %lo(D_80165500) # addiu $t4, $t4, 0x5500 -/* 032EEC 800322EC 15C00036 */ bnez $t6, .L800323C8 -/* 032EF0 800322F0 006B1021 */ addu $v0, $v1, $t3 -/* 032EF4 800322F4 006F1021 */ addu $v0, $v1, $t7 -/* 032EF8 800322F8 8C580000 */ lw $t8, ($v0) -/* 032EFC 800322FC 3C198016 */ lui $t9, %hi(D_801654E0) # $t9, 0x8016 -/* 032F00 80032300 273954E0 */ addiu $t9, %lo(D_801654E0) # addiu $t9, $t9, 0x54e0 -/* 032F04 80032304 1700000D */ bnez $t8, .L8003233C -/* 032F08 80032308 00792821 */ addu $a1, $v1, $t9 -/* 032F0C 8003230C 8CA60000 */ lw $a2, ($a1) -/* 032F10 80032310 28C10002 */ slti $at, $a2, 2 -/* 032F14 80032314 14200002 */ bnez $at, .L80032320 -/* 032F18 80032318 28C10009 */ slti $at, $a2, 9 -/* 032F1C 8003231C 14200003 */ bnez $at, .L8003232C -.L80032320: -/* 032F20 80032320 3C018016 */ lui $at, %hi(D_80165500) # 0x8016 -/* 032F24 80032324 00230821 */ addu $at, $at, $v1 -/* 032F28 80032328 AC205500 */ sw $zero, %lo(D_80165500)($at) # 0x5500($at) -.L8003232C: -/* 032F2C 8003232C 3C018016 */ lui $at, %hi(D_801654C0) # 0x8016 -/* 032F30 80032330 ACA00000 */ sw $zero, ($a1) -/* 032F34 80032334 00230821 */ addu $at, $at, $v1 -/* 032F38 80032338 AC2054C0 */ sw $zero, %lo(D_801654C0)($at) # 0x54c0($at) -.L8003233C: -/* 032F3C 8003233C 00692821 */ addu $a1, $v1, $t1 -/* 032F40 80032340 8CAA0000 */ lw $t2, ($a1) -/* 032F44 80032344 AC480000 */ sw $t0, ($v0) -/* 032F48 80032348 006C3821 */ addu $a3, $v1, $t4 -/* 032F4C 8003234C 25460001 */ addiu $a2, $t2, 1 -/* 032F50 80032350 28C10009 */ slti $at, $a2, 9 -/* 032F54 80032354 14200003 */ bnez $at, .L80032364 -/* 032F58 80032358 ACA60000 */ sw $a2, ($a1) -/* 032F5C 8003235C 24060009 */ li $a2, 9 -/* 032F60 80032360 ACA60000 */ sw $a2, ($a1) -.L80032364: -/* 032F64 80032364 28C10002 */ slti $at, $a2, 2 -/* 032F68 80032368 1420000D */ bnez $at, .L800323A0 -/* 032F6C 8003236C 240A0078 */ li $t2, 120 -/* 032F70 80032370 28C10009 */ slti $at, $a2, 9 -/* 032F74 80032374 1020000A */ beqz $at, .L800323A0 -/* 032F78 80032378 3C0E8016 */ lui $t6, %hi(D_801654C0) # $t6, 0x8016 -/* 032F7C 8003237C 25CE54C0 */ addiu $t6, %lo(D_801654C0) # addiu $t6, $t6, 0x54c0 -/* 032F80 80032380 006E1021 */ addu $v0, $v1, $t6 -/* 032F84 80032384 8C4F0000 */ lw $t7, ($v0) -/* 032F88 80032388 55E00005 */ bnel $t7, $zero, .L800323A0 -/* 032F8C 8003238C AC480000 */ sw $t0, ($v0) -/* 032F90 80032390 8CF80000 */ lw $t8, ($a3) -/* 032F94 80032394 27190001 */ addiu $t9, $t8, 1 -/* 032F98 80032398 ACF90000 */ sw $t9, ($a3) -/* 032F9C 8003239C AC480000 */ sw $t0, ($v0) -.L800323A0: -/* 032FA0 800323A0 8CE90000 */ lw $t1, ($a3) -/* 032FA4 800323A4 24010005 */ li $at, 5 -/* 032FA8 800323A8 1521000C */ bne $t1, $at, .L800323DC -/* 032FAC 800323AC 3C018016 */ lui $at, %hi(D_80165540) # 0x8016 -/* 032FB0 800323B0 AC880000 */ sw $t0, ($a0) -/* 032FB4 800323B4 00230821 */ addu $at, $at, $v1 -/* 032FB8 800323B8 AC2A5540 */ sw $t2, %lo(D_80165540)($at) # 0x5540($at) -/* 032FBC 800323BC ACE00000 */ sw $zero, ($a3) -/* 032FC0 800323C0 10000006 */ b .L800323DC -/* 032FC4 800323C4 ACA00000 */ sw $zero, ($a1) -.L800323C8: -/* 032FC8 800323C8 8C4C0000 */ lw $t4, ($v0) -/* 032FCC 800323CC 258DFFFF */ addiu $t5, $t4, -1 -/* 032FD0 800323D0 1DA00002 */ bgtz $t5, .L800323DC -/* 032FD4 800323D4 AC4D0000 */ sw $t5, ($v0) -/* 032FD8 800323D8 AC800000 */ sw $zero, ($a0) -.L800323DC: -/* 032FDC 800323DC 03E00008 */ jr $ra -/* 032FE0 800323E0 27BD0008 */ addiu $sp, $sp, 8 diff --git a/asm/non_matchings/code_80027D00/func_800337CC.s b/asm/non_matchings/code_80027D00/func_800337CC.s deleted file mode 100644 index 0bccf1df2..000000000 --- a/asm/non_matchings/code_80027D00/func_800337CC.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_800337CC -/* 0343CC 800337CC 848E0044 */ lh $t6, 0x44($a0) -/* 0343D0 800337D0 3C198016 */ lui $t9, %hi(D_80165280) # $t9, 0x8016 -/* 0343D4 800337D4 27395280 */ addiu $t9, %lo(D_80165280) # addiu $t9, $t9, 0x5280 -/* 0343D8 800337D8 0006C080 */ sll $t8, $a2, 2 -/* 0343DC 800337DC 31CFFFDF */ andi $t7, $t6, 0xffdf -/* 0343E0 800337E0 A48F0044 */ sh $t7, 0x44($a0) -/* 0343E4 800337E4 03191021 */ addu $v0, $t8, $t9 -/* 0343E8 800337E8 44856000 */ mtc1 $a1, $f12 -/* 0343EC 800337EC C4440000 */ lwc1 $f4, ($v0) -/* 0343F0 800337F0 44801000 */ mtc1 $zero, $f2 -/* 0343F4 800337F4 460C2181 */ sub.s $f6, $f4, $f12 -/* 0343F8 800337F8 E4460000 */ swc1 $f6, ($v0) -/* 0343FC 800337FC C4400000 */ lwc1 $f0, ($v0) -/* 034400 80033800 4602003E */ c.le.s $f0, $f2 -/* 034404 80033804 00000000 */ nop -/* 034408 80033808 45020004 */ bc1fl .L8003381C -/* 03440C 8003380C C4820214 */ lwc1 $f2, 0x214($a0) -/* 034410 80033810 E4420000 */ swc1 $f2, ($v0) -/* 034414 80033814 C4400000 */ lwc1 $f0, ($v0) -/* 034418 80033818 C4820214 */ lwc1 $f2, 0x214($a0) -.L8003381C: -/* 03441C 8003381C 4600103E */ c.le.s $f2, $f0 -/* 034420 80033820 00000000 */ nop -/* 034424 80033824 45000003 */ bc1f .L80033834 -/* 034428 80033828 00000000 */ nop -/* 03442C 8003382C E4420000 */ swc1 $f2, ($v0) -/* 034430 80033830 C4400000 */ lwc1 $f0, ($v0) -.L80033834: -/* 034434 80033834 46000202 */ mul.s $f8, $f0, $f0 -/* 034438 80033838 3C0141C8 */ li $at, 0x41C80000 # 25.000000 -/* 03443C 8003383C 44815000 */ mtc1 $at, $f10 -/* 034440 80033840 00000000 */ nop -/* 034444 80033844 460A4403 */ div.s $f16, $f8, $f10 -/* 034448 80033848 03E00008 */ jr $ra -/* 03444C 8003384C E4900098 */ swc1 $f16, 0x98($a0) diff --git a/src/code_80027D00.c b/src/code_80027D00.c index 91ccd0184..e15be8bdb 100644 --- a/src/code_80027D00.c +++ b/src/code_80027D00.c @@ -4,6 +4,7 @@ #include "variables.h" #include "kart_attributes.h" #include "memory.h" +#include "math_util.h" #include "code_8001F980.h" #include "code_80027D00.h" #include "code_8008C1D0.h" @@ -1086,92 +1087,71 @@ void func_80029B4C(Player *player, f32 arg1, f32 arg2, f32 arg3) { GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80029B4C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -static f32 D_800DDBD4[8] = { 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f }; +#ifdef NEEDS_RODATA +// data_0DD0A0_1_1.s +// might be plain data? +extern f32 D_800DDBD4[8];// = { 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f }; void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { - s16 sp3A; - f32 sp30; - s32 sp28; - f32 temp_f0; - f32 temp_f0_2; + s32 stackPadding[2]; f32 temp_f12; - f32 temp_f12_2; - f32 temp_f12_3; - f32 temp_f12_4; - f32 temp_f14; - f32 temp_f20; - f32 temp_f2; f32 var_f20; - s16 temp_v0; + s32 temp_v0; s16 temp_v1; s16 var_a1; - s32 temp_t0; - s32 temp_t7; - s32 temp_t8; - s32 temp_t9; - s32 temp_v0_2; - s32 temp_v0_3; - u16 temp_v1_2; + s32 test; + f32 temp_f0; - temp_v1 = -player->unk_02E - player->unk_0C0; + temp_v1 = -player->unk_02C[1] - player->unk_0C0; if ((player->unk_0BC & 0x40000000) == 0x40000000) { - var_f20 = (f32) (((f64) ((D_800DDBD4[player->characterId] * 18.0f) / 2.0f) * ((f64) player->unk_224 * 1.5)) - 1.0); + var_f20 = (((D_800DDBD4[player->characterId] * 18) / 2) * (player->unk_224 * 1.5)) - 1; } else { - var_f20 = (((D_800DDBD4[player->characterId] * 18.0f) / 2.0f) * player->unk_224) - 1.0f; + var_f20 = (((D_800DDBD4[player->characterId] * 18) / 2) * player->unk_224) - 1; } - temp_t7 = (temp_v1 + 0x2000) & 0xFFFF; - sp28 = temp_t7; - sp3A = temp_v1; - player->boundingBoxCorners[0].cornerPos[2] = (coss((u16) temp_t7) * var_f20) + arg3; - temp_f12 = (sins((u16) sp28) * var_f20) + arg1; + + player->boundingBoxCorners[0].cornerPos[2] = (coss(temp_v1 + 0x2000) * var_f20) + arg3; + temp_f12 = (sins(temp_v1 + 0x2000) * var_f20) + arg1; player->boundingBoxCorners[0].cornerPos[0] = temp_f12; player->boundingBoxCorners[0].cornerGroundY = func_802ABE30(temp_f12, arg2, player->boundingBoxCorners[0].cornerPos[2], player->unk_110.unk3A); - temp_t8 = (sp3A - 0x2000) & 0xFFFF; - sp28 = temp_t8; - player->boundingBoxCorners[1].cornerPos[2] = (coss((u16) temp_t8) * var_f20) + arg3; - temp_f12_2 = (sins((u16) sp28) * var_f20) + arg1; - player->boundingBoxCorners[1].cornerPos[0] = temp_f12_2; - player->boundingBoxCorners[1].cornerGroundY = func_802ABE30(temp_f12_2, arg2, player->boundingBoxCorners[1].cornerPos[2], player->unk_110.unk3A); - temp_t9 = (sp3A + 0x6000) & 0xFFFF; - sp28 = temp_t9; - player->boundingBoxCorners[2].cornerPos[2] = (coss((u16) temp_t9) * var_f20) + arg3; - temp_f12_3 = (sins((u16) sp28) * var_f20) + arg1; - player->boundingBoxCorners[2].cornerPos[0] = temp_f12_3; - player->boundingBoxCorners[2].cornerGroundY = func_802ABE30(temp_f12_3, arg2, player->boundingBoxCorners[2].cornerPos[2], player->unk_110.unk3A); - temp_t0 = (sp3A - 0x6000) & 0xFFFF; - sp28 = temp_t0; - player->boundingBoxCorners[3].cornerPos[2] = (coss((u16) temp_t0) * var_f20) + arg3; - player->boundingBoxCorners[3].cornerPos[0] = (sins((u16) sp28) * var_f20) + arg1; + + player->boundingBoxCorners[1].cornerPos[2] = (coss(temp_v1 - 0x2000) * var_f20) + arg3; + temp_f12 = (sins(temp_v1 - 0x2000) * var_f20) + arg1; + player->boundingBoxCorners[1].cornerPos[0] = temp_f12; + player->boundingBoxCorners[1].cornerGroundY = func_802ABE30(temp_f12, arg2, player->boundingBoxCorners[1].cornerPos[2], player->unk_110.unk3A); + + player->boundingBoxCorners[2].cornerPos[2] = (coss(temp_v1 + 0x6000) * var_f20) + arg3; + temp_f12 = (sins(temp_v1 + 0x6000) * var_f20) + arg1; + player->boundingBoxCorners[2].cornerPos[0] = temp_f12; + player->boundingBoxCorners[2].cornerGroundY = func_802ABE30(temp_f12, arg2, player->boundingBoxCorners[2].cornerPos[2], player->unk_110.unk3A); + + player->boundingBoxCorners[3].cornerPos[2] = (coss(temp_v1 - 0x6000) * var_f20) + arg3; + player->boundingBoxCorners[3].cornerPos[0] = (sins(temp_v1 - 0x6000) * var_f20) + arg1; player->boundingBoxCorners[3].cornerGroundY = func_802ABE30(player->boundingBoxCorners[2].cornerPos[0], arg2, player->boundingBoxCorners[2].cornerPos[2], player->unk_110.unk3A); + if ((player->unk_0BC & 8) != 8) { - temp_f0 = player->boundingBoxCorners[0].cornerGroundY; - temp_f2 = player->boundingBoxCorners[2].cornerGroundY; - temp_f12_4 = player->boundingBoxCorners[1].cornerGroundY; - temp_f14 = player->boundingBoxCorners[3].cornerGroundY; - player->unk_230 = (temp_f0 + temp_f2) / 2.0f; - player->unk_23C = (temp_f12_4 + temp_f14) / 2.0f; - player->unk_1FC = (temp_f0 + temp_f12_4) / 2.0f; - player->unk_1F8 = (temp_f2 + temp_f14) / 2.0f; + player->unk_230 = (player->boundingBoxCorners[2].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2; + player->unk_23C = (player->boundingBoxCorners[3].cornerGroundY + player->boundingBoxCorners[1].cornerGroundY) / 2; + player->unk_1FC = (player->boundingBoxCorners[1].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2; + player->unk_1F8 = (player->boundingBoxCorners[3].cornerGroundY + player->boundingBoxCorners[2].cornerGroundY) / 2; } - temp_v1_2 = func_802ABD10(player->unk_110.unk3A) & 0xFF; - player->unk_0F8 = temp_v1_2; - player->boundingBoxCorners[3].surfaceType = (u8) temp_v1_2; - player->boundingBoxCorners[2].surfaceType = (u8) temp_v1_2; - player->boundingBoxCorners[1].surfaceType = (u8) temp_v1_2; - player->boundingBoxCorners[0].surfaceType = (u8) temp_v1_2; - temp_f20 = (D_800DDBD4[player->characterId] * 18.0f) + 1.0f; - player->unk_206 = -func_802B7C40((player->unk_23C - player->unk_230) / temp_f20); + player->unk_0F8 = (u8)func_802ABD10(player->unk_110.unk3A); + player->boundingBoxCorners[3].surfaceType = player->unk_0F8; + player->boundingBoxCorners[2].surfaceType = player->unk_0F8; + player->boundingBoxCorners[1].surfaceType = player->unk_0F8; + player->boundingBoxCorners[0].surfaceType = player->unk_0F8; + var_f20 = (D_800DDBD4[player->characterId] * 18) + 1; + temp_f0 = (player->unk_23C - player->unk_230); + player->unk_206 = -func_802B7C40(temp_f0 / var_f20); if ((player->unk_0BC & 8) != 8) { - move_s16_towards(&player->unk_0C4, func_802B7C40((player->unk_1F8 - player->unk_1FC) / temp_f20), 0.5f); + temp_f0 = (player->unk_1F8 - player->unk_1FC); + move_s16_towards(&player->unk_0C4, func_802B7C40(temp_f0 / var_f20), 0.5f); } else { - temp_f0_2 = player->rotY - arg2; - sp30 = temp_f0_2; - temp_v0 = func_802B7C40(temp_f0_2 / temp_f20); - var_a1 = temp_v0 * 0xA; - if (temp_f0_2 >= 0.0f) { + temp_f0 = player->rotY - arg2; + temp_v0 = func_802B7C40(temp_f0 / var_f20); + if (temp_f0 >= 0.0f) { var_a1 = temp_v0 * 2; + } else { + var_a1 = temp_v0 * 0xA; } move_s16_towards(&player->unk_0C4, var_a1, 0.5f); } @@ -1181,14 +1161,12 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { player->boundingBoxCorners[3].unk_14 &= ~1; } if (player->unk_0F8 == 0x00FE) { - temp_v0_2 = player->unk_0BC; - if (((temp_v0_2 & 0x100000) != 0x100000) && ((temp_v0_2 & 8) != 8)) { + if (((player->unk_0BC & 0x100000) != 0x100000) && ((player->unk_0BC & 8) != 8)) { player->statusEffects |= 0x800000; } } if (player->unk_0F8 == 0x00FC) { - temp_v0_3 = player->unk_0BC; - if (((temp_v0_3 & 4) != 4) && ((temp_v0_3 & 8) != 8)) { + if (((player->unk_0BC & 4) != 4) && ((player->unk_0BC & 8) != 8)) { player->statusEffects |= 0x8000; } } @@ -1485,7 +1463,7 @@ UNUSED void func_8002AE30(void) { } #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { s16 sp2E; f32 sp28; @@ -1503,10 +1481,10 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar s32 var_t7; s32 var_v1; - sp28 = (sins(-player->unk_02E & 0xFFFF) * player->unk_094) + arg2; + sp28 = (sins(-player->unk_02C[1] & 0xFFFF) * player->unk_094) + arg2; temp_f2 = player->unk_094; temp_v0 = player->unk_0BC; - temp_f16 = (coss(-player->unk_02E & 0xFFFF) * temp_f2) + arg3; + temp_f16 = (coss(-player->unk_02C[1] & 0xFFFF) * temp_f2) + arg3; if (((temp_v0 & 0x800) != 0x800) && ((temp_v0 & 0x10) != 0x10) && !(player->unk_044 & 0x4000) && ((((temp_f2 / 18.0f) * 216.0f) <= 8.0f) || ((temp_t2 = (s32) player->unk_07C >> 0x10, ((temp_t2 < 5) != 0)) && (temp_t2 >= -4)))) { if ((temp_v0 & 0x20) == 0x20) { temp_v0_2 = player->unk_0C0; @@ -1559,164 +1537,91 @@ block_33: GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002AE38.s") #endif -#ifdef MIPS_TO_C -UNUSED void func_8002B218(void *arg0) { - s32 temp_t0; - s32 var_v0; - u16 temp_a1; +#ifdef NEEDS_RODATA +//data_0DD0A0_2.s +// Might be plain data? +extern u16 D_800E3C70[10];// = { 0x0003, 0x0016, 0x0026, 0x003c, 0x0050, 0x0069, 0x0090, 0x009d, 0x00a9, 0x00cc }; +extern u16 D_800E3C84[10];// = { 0x000c, 0x0021, 0x002f, 0x0045, 0x005f, 0x007a, 0x0098, 0x00a5, 0x00b3, 0x00d5 }; - sp38[0].unk0 = (s32) D_800E3C70.unk0; - sp38[0].unk4 = (s32) D_800E3C70.unk4; - var_v0 = 0; - sp38[0].unk8 = (s32) D_800E3C70.unk8; - sp38[0].unkC = (s32) D_800E3C70.unkC; - sp38[0].unk10 = (s32) D_800E3C70.unk10; - sp24[0].unk0 = (s32) D_800E3C84.unk0; - sp24[0].unk4 = (s32) D_800E3C84.unk4; - sp24[0].unk8 = (s32) D_800E3C84.unk8; - sp24[0].unkC = (s32) D_800E3C84.unkC; - sp24[0].unk10 = (s32) D_800E3C84.unk10; - temp_a1 = arg0->unk6; -loop_1: - temp_t0 = (var_v0 + 1) & 0xFFFF; - if (temp_a1 == (&sp38[0])[var_v0]) { - arg0->unkBC = (s32) (arg0->unkBC | 0x10); - func_8002AA50(temp_a1, (u16 (*)[]) &sp38[0], (u16 (*)[]) &sp24[0]); - arg0->unk204 = 0; - return; +void func_8002B218(Player *player) { + u16 someIndex; + u16 sp38[10] = { 0x0003, 0x0016, 0x0026, 0x003c, 0x0050, 0x0069, 0x0090, 0x009d, 0x00a9, 0x00cc }; + u16 sp24[10] = { 0x000c, 0x0021, 0x002f, 0x0045, 0x005f, 0x007a, 0x0098, 0x00a5, 0x00b3, 0x00d5 }; + + for (someIndex = 0; someIndex < 10; someIndex++) { + if (player->unk_006 == sp38[someIndex]) { + player->unk_0BC |= 0x10; + func_8002AA50(player); + player->unk_204 = 0; + break; + } + + if (player->unk_006 == sp24[someIndex]) { + player->unk_0BC &= ~0x10; + break; + } } - if (temp_a1 == (&sp24[0])[var_v0]) { - arg0->unkBC = (s32) (arg0->unkBC & ~0x10); - return; - } - var_v0 = temp_t0; - if (temp_t0 >= 0xA) { - return; - } - goto loop_1; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002B218.s") #endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 90e635335cb052c4324a3aa7478e4761db19dfaf -void func_8002A704(Player *, s8); /* extern */ - void func_8002B308(Player *player, s8 arg1, s8 arg2) { - s32 temp_v0; - s32 phi_v0; - s32 phi_v0_2; - s32 phi_v0_3; - s32 phi_v0_4; - s32 phi_v0_5; - s32 phi_v0_6; - s32 phi_v0_7; - s32 phi_v0_8; - s32 phi_v0_9; - s32 phi_v0_10; - s32 phi_v0_11; - s32 phi_v0_12; - s32 phi_v0_13; - s32 phi_v0_14; - s32 phi_v0_15; - s32 phi_v0_16; - s32 phi_v0_17; - - temp_v0 = player->statusEffects; - phi_v0 = temp_v0; - if ((temp_v0 & 2) == 2) { + if ((player->statusEffects & 2) == 2) { func_8008EAE0(player, arg1); - phi_v0 = player->statusEffects; } - phi_v0_2 = phi_v0; - if ((phi_v0 & 4) == 4) { + if ((player->statusEffects & 4) == 4) { func_8008C528(player, arg1); - phi_v0_2 = player->statusEffects; } - phi_v0_3 = phi_v0_2; - if ((phi_v0_2 & 1) == 1) { + if ((player->statusEffects & 1) == 1) { func_8008CDC0(player, arg1); - phi_v0_3 = player->statusEffects; } - phi_v0_4 = phi_v0_3; - if ((phi_v0_3 & 0x200) == 0x200) { + if ((player->statusEffects & 0x200) == 0x200) { func_8008D3C4(player, arg1); - phi_v0_4 = player->statusEffects; } - phi_v0_5 = phi_v0_4; - if ((phi_v0_4 & 0x02000000) == 0x02000000) { + if ((player->statusEffects & 0x02000000) == 0x02000000) { func_8002A704(player, arg1); - phi_v0_5 = player->statusEffects; } - phi_v0_6 = phi_v0_5; - if ((phi_v0_5 & 0x1000) == 0x1000) { + if ((player->statusEffects & 0x1000) == 0x1000) { func_8008D570(player, arg1); - phi_v0_6 = player->statusEffects; } - phi_v0_7 = phi_v0_6; - if ((phi_v0_6 & 0x20000) == 0x20000) { + if ((player->statusEffects & 0x20000) == 0x20000) { func_8008D7B0(player, arg1); - phi_v0_7 = player->statusEffects; } - phi_v0_8 = phi_v0_7; - if ((phi_v0_7 & 0x100) == 0x100) { + if ((player->statusEffects & 0x100) == 0x100) { func_8008DABC(player, arg1); - phi_v0_8 = player->statusEffects; } - phi_v0_9 = phi_v0_8; - if ((phi_v0_8 & 0x4000) == 0x4000) { + if ((player->statusEffects & 0x4000) == 0x4000) { func_8008DF98(player, arg1); - phi_v0_9 = player->statusEffects; } - phi_v0_10 = phi_v0_9; - if ((phi_v0_9 & 0x200000) == 0x200000) { + if ((player->statusEffects & 0x200000) == 0x200000) { func_8008C73C(player, arg1); - phi_v0_10 = player->statusEffects; } - phi_v0_11 = phi_v0_10; - if ((phi_v0_10 & 0x400000) == 0x400000) { + if ((player->statusEffects & 0x400000) == 0x400000) { func_8008E6C0(player, arg1); - phi_v0_11 = player->statusEffects; } - phi_v0_12 = phi_v0_11; - if ((phi_v0_11 & 0x01000000) == 0x01000000) { + if ((player->statusEffects & 0x01000000) == 0x01000000) { func_8008EAE0(player, arg1); - phi_v0_12 = player->statusEffects; } - phi_v0_13 = phi_v0_12; - if ((phi_v0_12 & 0x800000) == 0x800000) { + if ((player->statusEffects & 0x800000) == 0x800000) { func_8008EC88(player, arg1); - phi_v0_13 = player->statusEffects; } - phi_v0_14 = phi_v0_13; - if ((phi_v0_13 & 0x8000) == 0x8000) { + if ((player->statusEffects & 0x8000) == 0x8000) { func_8008EEE4(player, arg1); - phi_v0_14 = player->statusEffects; } - phi_v0_15 = phi_v0_14; - if ((phi_v0_14 & 0x2000) == 0x2000) { + if ((player->statusEffects & 0x2000) == 0x2000) { func_8008F778(player, arg1); - phi_v0_15 = player->statusEffects; } - phi_v0_16 = phi_v0_15; - if ((phi_v0_15 & 0x800) == 0x800) { + if ((player->statusEffects & 0x800) == 0x800) { func_8008FA38(player, arg1); - phi_v0_16 = player->statusEffects; } - phi_v0_17 = phi_v0_16; - if ((phi_v0_16 & 0x80) != 0) { + if (player->statusEffects & 0x80) { func_8008D0FC(player, arg1); - phi_v0_17 = player->statusEffects; } - if (phi_v0_17 & 0x80000) { + if (player->statusEffects & 0x80000) { func_8008E6C0(player, arg1); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002B308.s") -#endif void func_8002B5C0(Player *player, s8 arg1, s8 arg2) { if (((player->unk_0CA & 8) != 0) || ((player->unk_0CA & 2) != 0)) { @@ -1785,10 +1690,10 @@ void func_8002B830(Player *player, s8 arg1, s8 arg2) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 90e635335cb052c4324a3aa7478e4761db19dfaf +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b extern ? D_801653C0; -UNUSED void func_8002B8A4(Player *player_one, Player *player_two) { +void func_8002B8A4(Player *player_one, Player *player_two) { s32 spC; Player *temp_a1; Player *temp_a2; @@ -1798,160 +1703,153 @@ UNUSED void func_8002B8A4(Player *player_one, Player *player_two) { Player *temp_t2; Player *temp_t3; Player *temp_v0; - s32 phi_v1; - s32 phi_v1_2; + s32 var_v1; temp_v0 = gPlayerOne; if (player_one == temp_v0) { spC = 0; } temp_a1 = gPlayerTwo; - phi_v1 = spC; + var_v1 = spC; if (player_one == temp_a1) { - phi_v1 = 1; + var_v1 = 1; } temp_a2 = gPlayerThree; if (player_one == temp_a2) { - phi_v1 = 2; + var_v1 = 2; } temp_a3 = gPlayerFour; if (player_one == temp_a3) { - phi_v1 = 3; + var_v1 = 3; } temp_t0 = gPlayerFive; if (player_one == temp_t0) { - phi_v1 = 4; + var_v1 = 4; } temp_t1 = gPlayerSix; if (player_one == temp_t1) { - phi_v1 = 5; + var_v1 = 5; } temp_t2 = gPlayerSeven; if (player_one == temp_t2) { - phi_v1 = 6; + var_v1 = 6; } temp_t3 = gPlayerEight; if (player_one == temp_t3) { - phi_v1 = 7; + var_v1 = 7; } - *(&D_801653C0 + (phi_v1 * 4)) = player_two; - phi_v1_2 = phi_v1; + *(&D_801653C0 + (var_v1 * 4)) = player_two; if (player_two == temp_v0) { - phi_v1_2 = 0; + var_v1 = 0; } if (player_two == temp_a1) { - phi_v1_2 = 1; + var_v1 = 1; } if (player_two == temp_a2) { - phi_v1_2 = 2; + var_v1 = 2; } if (player_two == temp_a3) { - phi_v1_2 = 3; + var_v1 = 3; } if (player_two == temp_t0) { - phi_v1_2 = 4; + var_v1 = 4; } if (player_two == temp_t1) { - phi_v1_2 = 5; + var_v1 = 5; } if (player_two == temp_t2) { - phi_v1_2 = 6; + var_v1 = 6; } if (player_two == temp_t3) { - phi_v1_2 = 7; + var_v1 = 7; } - *(&D_801653C0 + (phi_v1_2 * 4)) = player_one; + *(&D_801653C0 + (var_v1 * 4)) = player_one; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002B8A4.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +#ifdef NON_MATCHING +// data_0DD0A0_3_0_0.s +extern f64 D_800ED7D0;// = 4.2; void func_8002B9CC(Player *player, s8 arg1, s32 arg2) { - f32 *temp_v0_3; f32 temp_f0; - f32 temp_f0_2; - f32 temp_f14; - f32 temp_f14_2; f32 temp_f2; - s32 temp_v0_2; - s32 temp_v0_4; - struct_D_8018CE10 *temp_v0; + f32 temp_f14; if ((player->unk_046 & 2) == 2) { - temp_v0 = &D_8018CE10[arg1]; - temp_f0 = temp_v0->unk_04; - temp_f14 = temp_v0->unk_0C; - if ((f64) sqrtf((temp_f0 * temp_f0) + (0.0f * 0.0f) + (temp_f14 * temp_f14)) >= 6.5) { - temp_v0_2 = player->unk_0BC; - player->unk_08C /= 4.0f; - player->unk_09C /= 4.0f; - if (!(temp_v0_2 & 0x80) && !(temp_v0_2 & 0x40)) { + temp_f0 = D_8018CE10[arg1].unk_04; + temp_f2 = 0; + temp_f14 = D_8018CE10[arg1].unk_0C; + if (sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f14 * temp_f14)) >= 6.5) { + player->unk_08C /= 4; + player->unk_09C /= 4; + if (!(player->unk_0BC & 0x80) && !(player->unk_0BC & 0x40)) { func_8008C73C(player, arg1); } } } else { - temp_v0_3 = D_80165070[arg1]; - temp_f0_2 = temp_v0_3->unk0 - player->unk_034[0]; - temp_f2 = temp_v0_3->unk4 - player->unk_034[1]; - temp_f14_2 = temp_v0_3->unk8 - player->unk_034[2]; - if ((f64) sqrtf((temp_f0_2 * temp_f0_2) + (temp_f2 * temp_f2) + (temp_f14_2 * temp_f14_2)) >= 4.2) { - temp_v0_4 = player->unk_0BC; - player->unk_08C /= 4.0f; - player->unk_09C /= 4.0f; - if (!(temp_v0_4 & 0x80) && !(temp_v0_4 & 0x40)) { + temp_f0 = D_80165070[arg1][0] - player->unk_034[0]; + temp_f2 = D_80165070[arg1][1] - player->unk_034[1]; + temp_f14 = D_80165070[arg1][2] - player->unk_034[2]; + if (sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f14 * temp_f14)) >= 4.2) { + player->unk_08C /= 4; + player->unk_09C /= 4; + if (!(player->unk_0BC & 0x80) && !(player->unk_0BC & 0x40)) { func_8008C73C(player, arg1); } } - player->unk_234 = (s16) ((s16) (-func_802B5224(player->pos, &player->rotX) - (player->unk_02E - player->unk_0C0)) / 182); + // There's some register allocation mismatching here. Its unclear what the cause is + // and the permtuer didn't find anything + player->unk_234 = ((s16) (-func_802B5224(player->pos, &player->rotX) - (player->unk_02C[1] - player->unk_0C0))) / 182; } } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002B9CC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_802B6540(f32 (*)[3], ?, ?, ?, s32); /* extern */ -static ? D_800E3C98; /* unable to generate initializer */ +#ifdef NON_MATCHING +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +extern s16 D_800E3C98[10];// = { 0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa, 0x05b0, 0x0666 }; void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, f32 *arg3) { - f32 sp60; - f32 sp5C; - f32 sp58; - f32 sp54; - f32 sp50; - f32 sp4C; - ? sp30; - s16 temp_a1; - s16 var_v0; - s32 temp_lo; - s32 temp_lo_2; + Mat3 sp64; + Vec3f sp58; + Vec3f sp4C; + s32 var_v0; s32 temp_t9; - u16 temp_v0; + s16 sp30[10] = { 0x0000, 0x00b6, 0x016c, 0x0222, 0x02d8, 0x038e, 0x0444, 0x04fa, 0x05b0, 0x0666 }; - sp30.unk0 = (s32) D_800E3C98.unk0; - sp30.unk4 = (s32) D_800E3C98.unk4; - sp30.unk8 = (s32) D_800E3C98.unk8; - sp30.unkC = (s32) D_800E3C98.unkC; - sp30.unk10 = (s32) D_800E3C98.unk10; - temp_v0 = (u16) player->unk_256; - if (((s32) temp_v0 > 0) && ((s32) temp_v0 < 3) && (player->unk_046 & 0x20) && ((func_802B6540((f32 (*)[3]) &sp64[0], 0, 0x3F800000, 0, 0), sp5C = 0.0f, sp58 = *arg1, sp60 = *arg2, func_802B63B8(&sp58, (f32 (*)[3]) &sp64[0]), sp4C = player->rotX, sp50 = 0.0f, sp54 = player->rotZ, func_802B63B8(&sp4C, (f32 (*)[3]) &sp64[0]), temp_a1 = player->unk_02E, temp_lo = (s16) ((temp_a1 - -func_802B5224(&sp58, &sp4C)) + 0x10000) / 182, (((s16) temp_lo < 0x97) == 0)) || ((s16) temp_lo < -0x96))) { - temp_t9 = (s32) player->unk_07C >> 0x10; - temp_lo_2 = temp_t9 / 6; - var_v0 = (s16) temp_lo_2; - if ((s16) temp_lo_2 < 0) { - var_v0 = (s16) temp_lo_2 * -1; - } - if (var_v0 >= 8) { - var_v0 = 8; - } - if (temp_t9 < 0) { - player->unk_02E = temp_a1 - (sp + (var_v0 * 2))->unk30; - return; - } - player->unk_02E = temp_a1 + (sp + (var_v0 * 2))->unk30; + if ((u16)player->unk_256 <= 0) return; + if ((u16)player->unk_256 > 2) return; + if (!(player->unk_046 & 0x20)) return; + func_802B6540(sp64, 0.0f, 1.0f, 0.0f, (s16) 0); + sp58[0] = *arg1; + sp58[1] = 0.0f; + sp58[2] = *arg2; + func_802B63B8(sp58, sp64); + sp4C[0] = player->rotX; + sp4C[1] = 0.0f; + sp4C[2] = player->rotZ; + func_802B63B8(sp4C, sp64); + // There's some wonkiness surrounding this line + temp_t9 = (s16) ((player->unk_02C[1] - -func_802B5224(sp58, sp4C)) + 0x10000) / 182; + if((s16) temp_t9 < 0x97) { + if(((s16) temp_t9 > -0x97)) return; + } + + temp_t9 = player->unk_07C >> 0x10; + var_v0 = temp_t9 / 6; + if ((s16) var_v0 < 0) { + var_v0 *= -1; + } + if ((s16) var_v0 >= 8) { + var_v0 = 8; + } + if (temp_t9 < 0) { + player->unk_02C[1] -= sp30[var_v0]; + } else { + player->unk_02C[1] += sp30[var_v0]; } } #else @@ -1996,71 +1894,58 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002BD58.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8001FD78(void *, s32, s32, s32); // extern -void func_800C9060(u8, ?, s32); // extern -void func_800C90F4(u8, s32, s32); // extern - -void func_8002BF4C(void *arg0, u8 arg1) { +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_8002BF4C(Player *player, u8 arg1) { s32 sp30; - s32 temp_a2; - s32 temp_s1; + Player *var_s0; s32 temp_t2; - s32 temp_v0_2; + s32 var_s1; + s32 var_v0; u16 temp_v0; - Player *phi_s0; - s32 phi_v0; - s32 phi_s1; - s32 phi_a2; - s32 phi_a2_2; + u16 temp_v0_2; + u16 var_a2; - phi_a2_2 = 0; - if (((arg0->unk94 / 18.0f) * 216.0f) < 50.0f) { - arg0->unkE2 = 0; - arg0->unkBC = arg0->unkBC & 0xFFDFFFFF; + var_a2 = 0; + if (((player->unk_094 / 18.0f) * 216.0f) < 50.0f) { + player->unk_0E2 = 0; + player->unk_0BC &= 0xFFDFFFFF; return; } - phi_s0 = gPlayerOne; - phi_s1 = 0; - if ((arg0->unkBC & 0x200000) == 0x200000) { - arg0->unkE2 = arg0->unkE2 - 1; - if (arg0->unkE2 <= 0) { - arg0->unkBC = arg0->unkBC & 0xFFDFFFFF; - return; - } - // Duplicate return node #18. Try simplifying control flow for better match - return; - } -loop_6: - if ((arg0 != phi_s0) && (temp_v0 = phi_s0->unk_000, ((temp_v0 & 0x100) == 0)) && ((temp_v0 & 0x8000) != 0) && (temp_v0_2 = func_8001FD78(arg0, phi_s0->posX, phi_s0->posY, phi_s0->posZ), temp_a2 = temp_v0_2, phi_a2 = temp_a2, phi_a2_2 = temp_a2, (temp_v0_2 == 1))) { - arg0->unkE2 = arg0->unkE2 + 1; - if (arg0->unkE2 >= 0x3D) { - temp_t2 = arg0->unk0 & 0x100; - arg0->unkBC = arg0->unkBC | 0x200000; - phi_v0 = temp_t2; - if (temp_t2 != 0x100) { - sp30 = temp_a2; - func_800C90F4(arg1, (arg0->unk254 * 0x10) + 0x29008001, temp_a2); - phi_v0 = arg0->unk0 & 0x100; - } - phi_a2 = temp_a2; - if (phi_v0 != 0x100) { - sp30 = temp_a2; - func_800C9060(arg1, 0x19008011, temp_a2); - phi_a2 = temp_a2; - } + var_s1 = 0; + var_s0 = gPlayerOne; + if ((player->unk_0BC & 0x200000) == 0x200000) { + player->unk_0E2 -= 1; + if (player->unk_0E2 <= 0) { + player->unk_0BC &= 0xFFDFFFFF; } } else { - temp_s1 = phi_s1 + 0xDD8; - phi_s0 += 0xDD8; - phi_s1 = temp_s1; - phi_a2 = phi_a2_2; - if (temp_s1 != 0x6EC0) { - goto loop_6; +loop_6: + if ((player != var_s0) && (temp_v0 = var_s0->unk_000, ((temp_v0 & 0x100) == 0)) && (temp_v0 & 0x8000) && (temp_v0_2 = func_8001FD78(player, var_s0->pos[0], var_s0->pos[1], var_s0->pos[2]), var_a2 = temp_v0_2, (temp_v0_2 == 1))) { + player->unk_0E2 += 1; + if (player->unk_0E2 >= 0x3D) { + temp_t2 = player->unk_000 & 0x100; + player->unk_0BC |= 0x200000; + var_v0 = temp_t2; + if (temp_t2 != 0x100) { + sp30 = (s32) var_a2; + func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008001); + var_v0 = player->unk_000 & 0x100; + } + if (var_v0 != 0x100) { + sp30 = (s32) var_a2; + func_800C9060(arg1, 0x19008011U); + } + } + } else { + var_s1 += 0xDD8; + var_s0 += 0xDD8; + if (var_s1 != 0x6EC0) { + goto loop_6; + } + } + if (var_a2 == 0) { + player->unk_0E2 = 0; } - } - if (phi_a2 == 0) { - arg0->unkE2 = 0; } } #else @@ -2422,13 +2307,10 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002C954.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_8008C9EC(Player *, s8); /* extern */ -void func_8008CEB0(Player *, s8); /* extern */ -void func_8008D170(Player *, s8); /* extern */ -void func_8008E118(Player *, s8); /* extern */ -void func_80090970(Player *, s8, s8); /* extern */ -void func_80091298(Player *, s8); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_8008CEB0(Player *, s8); /* extern */ +? func_8008D170(Player *, s8); /* extern */ +? func_80090970(Player *, s8, s8); /* extern */ extern s32 D_800DC510; void func_8002CD48(Player *player, s8 arg1, s8 arg2) { @@ -2497,7 +2379,7 @@ void func_8002CD48(Player *player, s8 arg1, s8 arg2) { if (player->statusEffects & 0x04000000) { func_8008FC64(player, arg1); } - if ((player->statusEffects * 0x10) < 0) { + if (player->statusEffects & 0x08000000) { func_8008FCDC(player, arg1); } } @@ -2581,28 +2463,24 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002D028.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_80027EDC(Player *, s8); /* extern */ -void func_80029B4C(Player *, f32, f32, f32); /* extern */ -void func_8002A194(Player *, f32, f32, f32); /* extern */ -void func_8002A79C(Player *, s8); /* extern */ -void func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ -void func_8002BB9C(Player *, f32 *, f32 *, s8, s32, f32 *); /* extern */ -void func_8002BF4C(Player *, s8); /* extern */ -void func_8002C4F8(Player *, s8); /* extern */ -void func_8002C7E4(f32, f32, Player *, s8, s8); /* extern */ -void func_8002C954(Player *, s8, f32 *); /* extern */ -void func_8002CD48(Player *, s8, s8); /* extern */ -void func_8002FCA8(Player *, s8); /* extern */ -f32 func_80030150(Player *, s8); /* extern */ -void func_80037BB4(Player *, f32 *); /* extern */ -void func_800CADD0(u8, f32); /* extern */ -void func_802B6540(f32 *, f32, f32, f32, s32); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_80027EDC(Player *, s8); /* extern */ +? func_80029B4C(Player *, f32, f32, f32); /* extern */ +? func_8002A79C(Player *, s8); /* extern */ +? func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ +? func_8002BB9C(Player *, f32 *, f32 *, s8, s32, f32 *); /* extern */ +? func_8002BF4C(Player *, s8); /* extern */ +? func_8002C4F8(Player *, s8); /* extern */ +? func_8002C7E4(f32, f32, Player *, s8, s8); /* extern */ +? func_8002C954(Player *, s8, f32 *); /* extern */ +? func_8002CD48(Player *, s8, s8); /* extern */ +? func_80037BB4(Player *, f32 *); /* extern */ +? func_800CADD0(u8, f32); /* extern */ static ? D_800E3CE8; /* unable to generate initializer */ static ? D_800E3CF4; /* unable to generate initializer */ static ? D_800E3D00; /* unable to generate initializer */ static ? D_800E3D0C; /* unable to generate initializer */ -static s32 D_800E3D18[0x17]; +f32 D_800E3D18[0x17]; s16 gCurrentCourseId; /* unable to generate initializer */ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { @@ -2635,6 +2513,8 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { f32 *temp_a1; f32 *temp_v0_18; f32 *temp_v0_19; + f32 *var_t6; + f32 temp_at; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_7; @@ -2670,8 +2550,6 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { s16 temp_v0_6; s16 temp_v0_7; s16 temp_v0_9; - s32 *var_t6; - s32 temp_at; s32 temp_t4; s32 temp_t4_2; s32 temp_v0_16; @@ -2711,7 +2589,7 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { var_t7->unk-8 = (s32) var_t6->unk-8; var_t7->unk-4 = (s32) var_t6->unk-4; } while (var_t6 != (D_800E3D18 + 0x54)); - var_t7->unk0 = (s32) var_t6->unk0; + var_t7->unk0 = (f32) var_t6->unk0; var_t7->unk4 = (s32) var_t6->unk4; sp7C = 0; func_80027EDC(player, arg3); @@ -2767,9 +2645,9 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { spB0 = player->kartGravity * -1.0f; spAC = var_f14 * 0.0f; } - sp60 = coss((player->unk_02E + player->unk_0C0) & 0xFFFF); - temp_a1 = player->unk_174; - temp_f2_2 = (sins((player->unk_02E + player->unk_0C0) & 0xFFFF) * -(player->rotX - player->pos[0])) + ((player->rotZ - player->pos[2]) * sp60); + sp60 = coss((player->unk_02C[1] + player->unk_0C0) & 0xFFFF); + temp_a1 = player->unk_174[0]; + temp_f2_2 = (sins((player->unk_02C[1] + player->unk_0C0) & 0xFFFF) * -(player->rotX - player->pos[0])) + ((player->rotZ - player->pos[2]) * sp60); if ((f64) temp_f2_2 > 0.1) { player->unk_044 |= 8; } else { @@ -2851,9 +2729,9 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { player->unk_060 = 0.0f; player->unk_05C = 1.0f; if ((player->unk_044 & 1) != 1) { - func_802B6540(sp58, player->unk_058, player->unk_05C, player->unk_060, (s32) player->unk_02E); + func_802B6540((f32 (*)[3]) sp58, player->unk_058, player->unk_05C, player->unk_060, (s16) (s32) player->unk_02C[1]); } else { - func_802B6540(sp58, player->unk_058, player->unk_05C, player->unk_060, player->unk_02E + 0x8000); + func_802B6540((f32 (*)[3]) sp58, player->unk_058, player->unk_05C, player->unk_060, (s16) (player->unk_02C[1] + 0x8000)); } player->unk_0BC |= 8; player->unk_0C2 += 1; @@ -2918,19 +2796,19 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { if (spA8 <= 0.0f) { func_8003F46C(player, &sp8C, &sp98, &sp178, &spA8, &spFC, &spF8, &spF4); } - spA8 = player->unk_110.unk3C; + spA8 = player->unk_110.unk3C[0]; if (spA8 < 0.0f) { func_8003F734(player, &sp8C, &sp98, &spA8, &spFC, &spF8, &spF4); func_8002C954(player, arg3, &sp98); } - spA8 = player->unk_110.unk40; + spA8 = player->unk_110.unk3C[1]; if (spA8 < 0.0f) { func_8003FBAC(player, &sp8C, &sp98, &spA8, &spFC, &spF8, &spF4); func_8002C954(player, arg3, &sp98); } - spA8 = player->unk_110.unk3C; + spA8 = player->unk_110.unk3C[0]; if (spA8 >= 0.0f) { - spA8 = player->unk_110.unk40; + spA8 = player->unk_110.unk3C[1]; if (spA8 >= 0.0f) { temp_v0_14 = (u16) player->unk_256; player->unk_046 &= 0xFFDF; @@ -2952,7 +2830,7 @@ void func_8002D268(Player *player, Camera *camera, s8 arg2, s8 arg3) { func_8008F5A4(player, arg3); } player->unk_074 = func_802ABE30(spFC, spF8, spF4, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0_16 = gActiveScreenMode, (temp_v0_16 == SCREEN_MODE_1P)) || (temp_v0_16 == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (temp_v0_16 == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { + if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0_16 = gActiveScreenMode, (temp_v0_16 == 0)) || (temp_v0_16 == 2) || (temp_v0_16 == 1))) { func_80029B4C(player, spFC, spF8, spF4); } else { func_8002A194(player, spFC, spF8, spF4); @@ -3027,18 +2905,14 @@ void func_8002E4C4(Player *player) { } #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_80029B4C(Player *, f32, f32, f32); /* extern */ -void func_8002A194(Player *, f32, f32, f32); /* extern */ -void func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ -void func_8002C4F8(Player *, s8); /* extern */ -void func_8002C7E4(Player *, s8, s8); /* extern */ -void func_8002C954(Player *, s8, f32 *); /* extern */ -void func_8002CD48(Player *, s8, s8); /* extern */ -void func_8002FCA8(Player *, s8); /* extern */ -f32 func_80030150(Player *, s8); /* extern */ -void func_800CADD0(u8, f32); /* extern */ -void func_802B6540(f32 *, f32, f32, f32, s32); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_80029B4C(Player *, f32, f32, f32); /* extern */ +? func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ +? func_8002C4F8(Player *, s8); /* extern */ +? func_8002C7E4(Player *, s8, s8); /* extern */ +? func_8002C954(Player *, s8, f32 *); /* extern */ +? func_8002CD48(Player *, s8, s8); /* extern */ +? func_800CADD0(u8, f32); /* extern */ static ? D_800E3D74; /* unable to generate initializer */ static ? D_800E3D80; /* unable to generate initializer */ static ? D_800E3D8C; /* unable to generate initializer */ @@ -3134,14 +3008,14 @@ void func_8002E594(Player *player, Camera *camera, s8 arg2, s8 arg3) { } func_8002C7E4(player, arg3, arg2); if (sp46 == 1) { - temp_a0 = player->unk_174; + temp_a0 = player->unk_174[0]; sp40 = temp_a0; - func_802B6540(temp_a0, player->unk_058, player->unk_05C, player->unk_060, (s32) player->unk_02E); - func_802B6540(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s32) player->unk_0AE); + func_802B6540((f32 (*)[3]) temp_a0, player->unk_058, player->unk_05C, player->unk_060, (s16) (s32) player->unk_02C[1]); + func_802B6540((f32 (*)[3]) player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s16) (s32) player->unk_0AE); } else { - temp_a0_2 = player->unk_174; + temp_a0_2 = player->unk_174[0]; sp40 = temp_a0_2; - func_802B6540(temp_a0_2, player->unk_058, player->unk_05C, player->unk_060, (s32) player->unk_02E); + func_802B6540((f32 (*)[3]) temp_a0_2, player->unk_058, player->unk_05C, player->unk_060, (s16) (s32) player->unk_02C[1]); } spF4 = func_80030150(player, arg3); if (sp46 == 1) { @@ -3268,21 +3142,21 @@ block_63: if (sp74 <= 0.0f) { func_8003F46C(player, &sp48, &sp54, &spE0, &sp74, &spD0, &spCC, &spC8); } - sp74 = player->unk_110.unk3C; + sp74 = player->unk_110.unk3C[0]; if (sp74 < 0.0f) { func_8003F734(player, &sp48, &sp54, &sp74, &spD0, &spCC, &spC8); func_8002C954(player, arg3, &sp54); func_80031F48(player, 6.0f); } - sp74 = player->unk_110.unk40; + sp74 = player->unk_110.unk3C[1]; if (sp74 < 0.0f) { func_8003FBAC(player, &sp48, &sp54, &sp74, &spD0, &spCC, &spC8); func_8002C954(player, arg3, &sp54); func_80031F48(player, 6.0f); } - sp74 = player->unk_110.unk3C; + sp74 = player->unk_110.unk3C[0]; if (sp74 >= 0.0f) { - sp74 = player->unk_110.unk40; + sp74 = player->unk_110.unk3C[1]; if (sp74 >= 0.0f) { temp_v0_9 = (u16) player->unk_256; player->unk_046 &= 0xFFDF; @@ -3304,7 +3178,7 @@ block_63: func_8008F5A4(player, arg3); } player->unk_074 = func_802ABE30(spD0, spCC, spC8, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0_11 = gActiveScreenMode, (temp_v0_11 == SCREEN_MODE_1P)) || (temp_v0_11 == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (temp_v0_11 == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { + if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0_11 = gActiveScreenMode, (temp_v0_11 == 0)) || (temp_v0_11 == 2) || (temp_v0_11 == 1))) { func_80029B4C(player, spD0, spCC, spC8); } else { func_8002A194(player, spD0, spCC, spC8); @@ -3346,10 +3220,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002E594.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_8002CD48(Player *, s8, s8); /* extern */ -f32 func_80030150(Player *, s8); /* extern */ -void func_802B6540(f32, f32, f32 *, f32, f32, f32, s32); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_8002CD48(Player *, s8, s8); /* extern */ static ? D_800E3D98; /* unable to generate initializer */ static ? D_800E3DA4; /* unable to generate initializer */ static ? D_800E3DB0; /* unable to generate initializer */ @@ -3408,7 +3280,7 @@ void control_cpu_movement(Player *player, Camera *camera, s8 arg2, s8 arg3) { player->unk_10C = 0; player->unk_256 = 0; player->unk_0BC &= 0xFFFF7FFF; - temp_a1 = player->unk_174; + temp_a1 = player->unk_174[0]; spFC = func_80030150(player, arg3); sp3C = temp_a1; func_802B63B8(&spF4, (f32 (*)[3]) temp_a1); @@ -3432,7 +3304,7 @@ void control_cpu_movement(Player *player, Camera *camera, s8 arg2, s8 arg3) { player->kartHopJerk = 0.0f; player->kartHopAcceleration = 0.0f; player->kartHopVelocity = 0.0f; - func_802B6540(temp_f12, temp_f14, sp3C, player->unk_058, player->unk_05C, player->unk_060, (s32) player->unk_02E); + func_802B6540((f32 (*)[3]) sp3C, player->unk_058, player->unk_05C, player->unk_060, (s16) (s32) player->unk_02C[1]); player->unk_0C2 = 0; temp_t1 = player->unk_0BC & ~2; player->unk_0BC = temp_t1; @@ -3469,13 +3341,10 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/control_cpu_movement.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_80029B4C(Player *, f32, f32, f32); /* extern */ -void func_8002A194(Player *, f32, f32, f32); /* extern */ -void func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ -f32 func_80030150(Player *, s8); /* extern */ -void func_80037BB4(? *); /* extern */ -void func_802B6540(f32 *, f32, f32, f32, s32); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_80029B4C(Player *, f32, f32, f32); /* extern */ +? func_8002AE38(Player *, s8, f32, f32, f32, f32); /* extern */ +? func_80037BB4(? *); /* extern */ static ? D_800E3DC8; /* unable to generate initializer */ static ? D_800E3DD4; /* unable to generate initializer */ static ? D_800E3DE0; /* unable to generate initializer */ @@ -3535,7 +3404,7 @@ void func_8002F730(Player *player, Camera *camera, s8 arg2, s8 arg3) { func_80037BB4(&spD0); sp84 = player->unk_064 * 0.0f; sp7C = player->unk_06C * 0.0f; - temp_a1 = player->unk_174; + temp_a1 = player->unk_174[0]; spFC = func_80030150(player, arg3); sp4C = temp_a1; func_802B63B8(&spF4, (f32 (*)[3]) temp_a1); @@ -3570,14 +3439,14 @@ void func_8002F730(Player *player, Camera *camera, s8 arg2, s8 arg3) { player->unk_058 = 0.0f; player->unk_060 = 0.0f; player->unk_05C = 1.0f; - func_802B6540(sp4C, 0.0f, 1.0f, 0.0f, (s32) player->unk_02E); + func_802B6540((f32 (*)[3]) sp4C, 0.0f, 1.0f, 0.0f, (s16) (s32) player->unk_02C[1]); player->unk_0BC &= ~8; sp78 = player->unk_110.unk3C[2]; if (sp78 <= 0.0f) { func_8003F46C(player, &sp5C, &sp68, &spE8, &sp78, &spCC, &spC8, &spC4); } player->unk_074 = func_802ABE30(spCC, spC8, spC4, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0 = gActiveScreenMode, (temp_v0 == SCREEN_MODE_1P)) || (temp_v0 == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (temp_v0 == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { + if (((player->unk_000 & 0x4000) == 0x4000) && ((temp_v0 = gActiveScreenMode, (temp_v0 == 0)) || (temp_v0 == 2) || (temp_v0 == 1))) { func_80029B4C(player, spCC, spC8, spC4); } else { func_8002A194(player, spCC, spC8, spC4); @@ -3620,123 +3489,104 @@ void func_8002F730(Player *player, Camera *camera, s8 arg2, s8 arg3) { GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002F730.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 void func_8002FCA8(Player *player, s8 arg1) { - f32 temp_f2; + f32 var_f0; + f32 var_f12; s32 temp_lo; - s32 temp_v0; - u8 temp_v1; - u8 temp_v1_2; - u8 temp_v1_3; - u8 temp_v1_4; - s32 phi_v1; - f32 phi_f12; - f32 phi_f0; - f32 phi_f0_2; - f32 phi_f0_3; - f32 phi_f0_4; - f32 phi_f0_5; + s32 var_v1; - temp_v0 = player->unk_0BC; - phi_f0_2 = 0.0f; - phi_f0_5 = 0.0f; - if ((temp_v0 & 0x200) != 0x200) { - temp_v1 = player->boundingBoxCorners[3].surfaceType; - if ((s32) temp_v1 < 0xF) { - phi_f0_5 = 0.0f + D_800E2A90[player->characterId][temp_v1]; + var_f0 = 0.0f; + if ((player->unk_0BC & 0x200) != 0x200) { + if ((s32) player->boundingBoxCorners[3].surfaceType < 0xF) { + var_f0 += D_800E2A90[player->characterId][player->boundingBoxCorners[3].surfaceType]; } - temp_v1_2 = player->boundingBoxCorners[2].surfaceType; - phi_f0_4 = phi_f0_5; - if ((s32) temp_v1_2 < 0xF) { - phi_f0_4 = phi_f0_5 + D_800E2A90[player->characterId][temp_v1_2]; + if ((s32) player->boundingBoxCorners[2].surfaceType < 0xF) { + var_f0 += D_800E2A90[player->characterId][player->boundingBoxCorners[2].surfaceType]; } - temp_v1_3 = player->boundingBoxCorners[1].surfaceType; - phi_f0_3 = phi_f0_4; - if ((s32) temp_v1_3 < 0xF) { - phi_f0_3 = phi_f0_4 + D_800E2AB0[player->characterId][temp_v1_3]; + if ((s32) player->boundingBoxCorners[1].surfaceType < 0xF) { + var_f0 += D_800E2AB0[player->characterId][player->boundingBoxCorners[1].surfaceType]; } - temp_v1_4 = player->boundingBoxCorners[0].surfaceType; - phi_f0_2 = phi_f0_3; - if ((s32) temp_v1_4 < 0xF) { - phi_f0_2 = phi_f0_3 + D_800E2AB0[player->characterId][temp_v1_4]; + if ((s32) player->boundingBoxCorners[0].surfaceType < 0xF) { + var_f0 += D_800E2AB0[player->characterId][player->boundingBoxCorners[0].surfaceType]; } } - phi_v1 = 0; - phi_f0 = phi_f0_2; - if ((D_801652C0[arg1] & 4) != 0) { - phi_v1 = 2; - } - if ((player->unk_09C >= 200.0f) && (phi_v1 == 2) && ((temp_lo = (s32) player->unk_0C0 / 182, ((temp_lo < 0x10) == 0)) || (temp_lo < -0xF))) { - phi_f0 = (f32) ((f64) phi_f0_2 + 1.0); - } - if (((temp_v0 & 0x200000) == 0x200000) && ((player->unk_000 & 0x4000) != 0x4000)) { - phi_f0 = -3.0f; - } - temp_f2 = player->unk_088; - if (temp_f2 >= 0.0f) { - phi_f12 = temp_f2 * phi_f0; + if (D_801652C0[arg1] & 4) { + var_v1 = 2; } else { - phi_f12 = -temp_f2 * phi_f0; + var_v1 = 0; } - player->unk_208 = temp_f2 - phi_f12; + if ((player->unk_09C >= 200.0f) && (var_v1 == 2)) { + temp_lo = (s16) player->unk_0C0 / 182; + if ((temp_lo > 0xF) || (temp_lo < -0xF)) { + var_f0 += 1.0; + } + } + if (((player->unk_0BC & 0x200000) == 0x200000) && ((player->unk_000 & 0x4000) != 0x4000)) { + var_f0 = -3.0f; + } + + if (player->unk_088 >= 0.0f) { + var_f12 = player->unk_088 * var_f0; + } else { + var_f12 = -player->unk_088 * var_f0; + } + player->unk_208 = player->unk_088 - var_f12; } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002FCA8.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f64 D_800ED8D8;// = 1.1; +extern f64 D_800ED8E0;// = 1.1; +extern f64 D_800ED8E8;// = 1.0125; +extern f64 D_800ED8F0;// = 1.2; +extern f64 D_800ED8F8;// = 1.025; +extern f64 D_800ED900;// = 1.2; +extern f64 D_800ED908;// = 0.7; +extern f64 D_800ED910;// = 0.7; +extern f64 D_800ED918;// = 0.004; +extern f64 D_800ED920;// = 0.004; +extern f64 D_800ED928;// = 0.7; + void func_8002FE84(Player *player, f32 arg1) { - f32 temp_f0; - f32 temp_f0_2; f32 temp_f0_3; - s32 temp_lo; - s32 temp_lo_2; - s32 temp_v0; - u8 temp_v0_2; - u8 temp_v0_3; - f32 phi_f0; - f64 phi_f18; - f32 phi_f0_2; - f32 phi_f0_3; + f32 var_f0; + s16 temp_lo; + s32 test; - temp_v0 = player->unk_0BC; - if ((temp_v0 & 0x4000) == 0x4000) { - temp_f0 = player->unk_09C; - player->unk_098 = (f32) ((f64) ((temp_f0 * temp_f0) / 25.0f) * 1.1); + if ((player->unk_0BC & 0x4000) == 0x4000) { + player->unk_098 = ((player->unk_09C * player->unk_09C) / 25.0f) * 1.1; return; } - if ((temp_v0 & 8) == 8) { - temp_f0_2 = player->unk_09C; - player->unk_098 = (f32) ((f64) ((temp_f0_2 * temp_f0_2) / 25.0f) * 1.1); + + // Huh? + if (((player->unk_0BC & 0xFFFFFFFF) & 8) == 8) { + player->unk_098 = ((player->unk_09C * player->unk_09C) / 25.0f) * 1.1; return; } + + var_f0 = 0.0f; player->unk_098 = arg1; - temp_lo = (s32) player->unk_0C4 / 182; - if (((s32) (s16) temp_lo >= 0x12) || ((s32) (s16) temp_lo < -0x11)) { - phi_f0 = (f32) ((f64) 0.0f + (((f64) (s16) temp_lo * 0.0125) / 1.2)); + temp_lo = player->unk_0C4 / 182; + if ((temp_lo > 0x11) || (temp_lo < -0x11)) { + var_f0 += (temp_lo * 0.0125) / 1.2; } else { - phi_f0 = (f32) ((f64) 0.0f + (((f64) (s16) temp_lo * 0.025) / 1.2)); + var_f0 += (temp_lo * 0.025) / 1.2; } - temp_v0_2 = player->boundingBoxCorners[3].surfaceType; - player->unk_098 = (1.0f - phi_f0) * arg1; - phi_f0_3 = phi_f0; - if (temp_v0_2 == 8) { - phi_f0_3 = (f32) ((f64) phi_f0 + ((f64) D_800E2E90[player->characterId][temp_v0_2] * 0.7)); + player->unk_098 = arg1 * (1.0f - var_f0); + if (player->boundingBoxCorners[3].surfaceType == 8) { + var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[3].surfaceType] * 0.7; } - temp_v0_3 = player->boundingBoxCorners[2].surfaceType; - phi_f0_2 = phi_f0_3; - if (temp_v0_3 == 8) { - phi_f0_2 = (f32) ((f64) phi_f0_3 + ((f64) D_800E2E90[player->characterId][temp_v0_3] * 0.7)); + if (player->boundingBoxCorners[2].surfaceType == 8) { + // The unecessary "* 1.0" here is to force the compiler to save this 0.7 as a separate RO value from the 0.7 just above this comment + var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[2].surfaceType] * (0.7 * 1.0); } - temp_lo_2 = (s32) player->unk_0C0 / 182; - if (temp_lo_2 < 0) { - phi_f18 = (f64) phi_f0_2 + ((f64) -temp_lo_2 * 0.004); + test = player->unk_0C0 / 182; + if (test < 0) { + var_f0 += -test * 0.004; } else { - phi_f18 = (f64) phi_f0_2 + ((f64) temp_lo_2 * 0.004); + var_f0 += test * 0.004; } - player->unk_098 = (f32) ((f64) arg1 * (1.0 + ((f64) (f32) phi_f18 * 0.7))); + player->unk_098 = arg1 * (1.0 + (var_f0 * 0.7)); if ((player->unk_0BC & 0x20) == 0x20) { temp_f0_3 = player->unk_09C + 180.0f; player->unk_098 = (temp_f0_3 * temp_f0_3) / 25.0f; @@ -3746,343 +3596,212 @@ void func_8002FE84(Player *player, f32 arg1) { GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8002FE84.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -void func_8002FE84(f32, Player *, f32); /* extern */ -void move_f32_towards(f32 *, f32, f32, Player *); /* extern */ +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f64 D_800ED940;// = -0.2 +extern f64 D_800ED948;// = -0.55 +extern f64 D_800ED950;// = 0.004 +extern f64 D_800ED958;// = 0.004 +extern f64 D_800ED960;// = 0.01 +extern f64 D_800ED968;// = 0.01 +extern f64 D_800ED970;// = 0.008 +extern f64 D_800ED978;// = 0.008 +extern f64 D_800ED980;// = 0.3 +extern f64 D_800ED988;// = 0.15 +extern f64 D_800ED990;// = 0.05 +extern f64 D_800ED998;// = 0.04 +extern f64 D_800ED9A0;// = -0.85 +extern f64 D_800ED9A8;// = -0.55 +extern f64 D_800ED9B0;// = 0.05 f32 func_80030150(Player *player, s8 arg1) { - f32 sp24; - f32 sp1C; - Player *temp_a0_2; - Player *temp_a0_3; - Player *temp_a3; - f32 *temp_a0; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f12; - f32 temp_f2; - f32 temp_f2_2; - f32 temp_f2_3; - f32 temp_f4; - f64 temp_f18; - s16 temp_v0_6; - s32 temp_a1; - s32 temp_a1_2; - s32 temp_a1_3; - s32 temp_a2; - s32 temp_lo; - s32 temp_lo_2; - s32 temp_lo_3; - s32 temp_t0; - s32 temp_t5; - u16 temp_v0_5; - u16 temp_v1; - u8 temp_v0; - u8 temp_v0_2; - u8 temp_v0_3; - u8 temp_v0_4; - s32 phi_v0; - f32 phi_f0; - Player *phi_a3; - f32 phi_f0_2; - s32 phi_v0_2; - Player *phi_a3_2; - f32 phi_f14; - Player *phi_a3_3; - f32 phi_f0_3; - f32 phi_f2; - f32 phi_f0_4; - f64 phi_f4; - f32 phi_f0_5; - f32 phi_f0_6; - f32 phi_f0_7; - f32 phi_f0_8; - f32 phi_f0_9; - f64 phi_f4_2; - f32 phi_f0_10; - f32 phi_f0_11; - f32 phi_f0_12; - f64 phi_f6; - - temp_a3 = player; - temp_f2 = (player->unk_094 / 18.0f) * 216.0f; - phi_a3 = temp_a3; - phi_f0_2 = 0.0f; - phi_f14 = 0.0f; - phi_f0_6 = 0.0f; - phi_f0_12 = 0.0f; - if (temp_f2 >= 8.0f) { - temp_a1 = player->unk_0BC; - temp_t0 = temp_a1 & 0x200; - temp_a2 = temp_a1 & 8; - if (temp_t0 != 0x200) { - temp_v0 = player->boundingBoxCorners[3].surfaceType; - if ((s32) temp_v0 >= 0xF) { + f32 var_f0; + s16 temp_lo; + f32 var_f2; + s32 var_v0; + var_f0 = 0.0f; + var_f2 = (player->unk_094 / 18.0f) * 216.0f; + if (var_f2 >= 8.0f) { + if ((player->unk_0BC & 0x200) != 0x200) { + if(1) {} + if ((s32) player->boundingBoxCorners[3].surfaceType >= 0xF) { + // ??????? } else { - phi_f0_12 = 0.0f + D_800E2E90[temp_a3->characterId][temp_v0]; + var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[3].surfaceType]; } - temp_v0_2 = temp_a3->boundingBoxCorners[2].surfaceType; - phi_f0_10 = phi_f0_12; - if ((s32) temp_v0_2 < 0xF) { - phi_f0_10 = phi_f0_12 + *(*(D_800E2E90 + (temp_a3->characterId * 4)) + (temp_v0_2 * 4)); + if ((s32) player->boundingBoxCorners[2].surfaceType < 0xF) { + var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[2].surfaceType]; } - temp_v0_3 = temp_a3->boundingBoxCorners[1].surfaceType; - phi_f0_8 = phi_f0_10; - if ((s32) temp_v0_3 < 0xF) { - phi_f0_8 = phi_f0_10 + D_800E2EB0[temp_a3->characterId][temp_v0_3]; + if ((s32) player->boundingBoxCorners[1].surfaceType < 0xF) { + var_f0 += D_800E2EB0[player->characterId][player->boundingBoxCorners[1].surfaceType]; } - temp_v0_4 = temp_a3->boundingBoxCorners[0].surfaceType; - phi_f0_6 = phi_f0_8; - if ((s32) temp_v0_4 < 0xF) { - phi_f0_6 = phi_f0_8 + *(*(D_800E2E90 + (temp_a3->characterId * 4)) + (temp_v0_4 * 4)); + if ((s32) player->boundingBoxCorners[0].surfaceType < 0xF) { + var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[0].surfaceType]; } } - phi_f0_5 = phi_f0_6; - if ((temp_a2 != 8) && ((temp_a3->unk_0CA & 2) != 2)) { - temp_lo = (s32) temp_a3->unk_0C4 / 182; - if (temp_f2 >= 20.0f) { - if (((s32) (s16) temp_lo >= 0x12) || ((s32) (s16) temp_lo < -0x11)) { - phi_f0_11 = (f32) ((f64) phi_f0_6 - (((f64) (s16) temp_lo * 0.0126) / 3.0)); + if (((player->unk_0BC & 8) != 8) && ((player->unk_0CA & 2) != 2)) { + temp_lo = player->unk_0C4 / 182; + if (var_f2 >= 20.0f) { + if ((temp_lo > 0x11) || (temp_lo < -0x11)) { + var_f0 -= ((temp_lo * 0.0126) / 3.0); } else { - phi_f6 = (f64) phi_f0_6 - (((f64) (s16) temp_lo * 0.026) / 3.0); - goto block_20; + var_f0 -= ((temp_lo * 0.026) / 3.0); } } else { - temp_f0 = (f32) ((f64) phi_f0_6 + -0.2); - phi_f0_11 = temp_f0; - if ((temp_a1 & 0x40000000) == 0x40000000) { - phi_f6 = (f64) temp_f0 + -0.55; -block_20: - phi_f0_11 = (f32) phi_f6; + var_f0 += -0.2; + if ((player->unk_0BC & 0x40000000) == 0x40000000) { + var_f0 += -0.55; } } - if (((temp_a1 & 0x10) == 0x10) || ((s32) temp_a3->unk_204 > 0)) { - temp_lo_2 = (s32) temp_a3->unk_0C0 / 182; - phi_v0 = temp_lo_2; - if (temp_lo_2 < 0) { - phi_f0_9 = (f32) ((f64) phi_f0_11 + ((f64) -temp_lo_2 * 0.004)); + if (((player->unk_0BC & 0x10) == 0x10) || (player->unk_204 > 0)) { + var_v0 = (s16) player->unk_0C0 / 182; + if (var_v0 < 0) { + var_f0 += -var_v0 * 0.004; } else { - phi_f0_9 = (f32) ((f64) phi_f0_11 + ((f64) temp_lo_2 * 0.004)); + var_f0 += var_v0 * 0.004; } } else { - temp_v1 = temp_a3->characterId; - temp_lo_3 = (s32) temp_a3->unk_0C0 / 182; - phi_v0 = temp_lo_3; - if (temp_lo_3 < 0) { - phi_f0_9 = (f32) ((f64) phi_f0_11 + ((f64) -temp_lo_3 * (0.01 + (f64) gKartTurnSpeedReductionTable0[temp_v1]))); + var_v0 = (s16) player->unk_0C0 / 182; + if (var_v0 < 0) { + var_f0 += -var_v0 * (0.01 + gKartTurnSpeedReductionTable0[player->characterId]); } else { - phi_f0_9 = (f32) ((f64) phi_f0_11 + ((f64) temp_lo_3 * (0.01 + (f64) gKartTurnSpeedReductionTable0[temp_v1]))); + var_f0 += var_v0 * (0.01 + gKartTurnSpeedReductionTable0[player->characterId]); } } - phi_f0_7 = phi_f0_9; - if (((temp_a1 & 0x20000000) == 0x20000000) && ((s32) temp_a3->unk_228 < 0xA)) { - if (phi_v0 < 0) { - phi_f4_2 = (f64) phi_f0_9 + ((f64) -phi_v0 * 0.008); + if (((player->unk_0BC & 0x20000000) == 0x20000000) && (player->unk_228 < 0xA)) { + if (var_v0 < 0) { + var_f0 += -var_v0 * 0.008; } else { - phi_f4_2 = (f64) phi_f0_9 + ((f64) phi_v0 * 0.008); + var_f0 += var_v0 * 0.008; } - phi_f0_7 = (f32) phi_f4_2; } - phi_f0_5 = phi_f0_7; - if (temp_t0 == 0x200) { - phi_f0_5 = (f32) ((f64) phi_f0_7 + -0.25); + if ((player->unk_0BC & 0x200) == 0x200) { + var_f0 += -0.25; } } - temp_v0_5 = temp_a3->unk_0DE; - phi_f0_4 = phi_f0_5; - if ((temp_v0_5 & 1) == 1) { - phi_f4 = (f64) phi_f0_5 + 0.3; - goto block_44; - } - if ((temp_v0_5 & 2) == 2) { - phi_f0_4 = (f32) ((f64) phi_f0_5 + 0.15); - } - temp_f2_2 = D_801652A0[arg1]; - phi_f0 = phi_f0_4; - if (((f64) (temp_f2_2 - temp_a3->boundingBoxCorners[2].cornerGroundY) >= 3.5) || ((f64) (temp_f2_2 - temp_a3->boundingBoxCorners[3].cornerGroundY) >= 3.5)) { - phi_f4 = (f64) phi_f0_4 + 0.05; -block_44: - phi_f0 = (f32) phi_f4; - } - if (temp_a2 != 0) { - temp_f18 = (f64) temp_a3->unk_08C * 0.04; - sp24 = phi_f0; - player = temp_a3; - move_f32_towards(&temp_a3->unk_0A0, (f32) temp_f18, 0.15f, temp_a3); - phi_a3 = player; - phi_f0_2 = phi_f0; + if ((player->unk_0DE & 1) == 1) { + var_f0 += 0.3; } else { - player = temp_a3; - sp24 = phi_f0; - move_f32_towards(&temp_a3->unk_0A0, 0.0f, 0.1f, temp_a3); - phi_a3 = player; - phi_f0_2 = phi_f0; + if ((player->unk_0DE & 2) == 2) { + var_f0 += 0.15; + } + if (((D_801652A0[arg1] - player->boundingBoxCorners[2].cornerGroundY) >= 3.5) || ((D_801652A0[arg1] - player->boundingBoxCorners[3].cornerGroundY) >= 3.5)) { + var_f0 += 0.05; + } + } + if ((player->unk_0BC & 8) != 0) { + move_f32_towards(&player->unk_0A0, player->unk_08C * 0.04, 0.15f); + } else { + move_f32_towards(&player->unk_0A0, 0.0f, 0.1f); } } else { - temp_a3->unk_0A0 = 0.0f; - temp_a3->unk_0E8 = 0.0f; - if (((s32) temp_a3->unk_0C4 / 182) < 0) { - temp_f0_2 = (f32) ((f64) 0.0f + -0.85); - phi_f0_2 = temp_f0_2; - if ((temp_a3->unk_0BC * 2) < 0) { - phi_f0_2 = (f32) ((f64) temp_f0_2 + -0.55); + player->unk_0A0 = 0.0f; + player->unk_0E8 = 0.0f; + if (((s16) player->unk_0C4 / 182) < 0) { + var_f0 += -0.85; + if (player->unk_0BC & 0x40000000) { + var_f0 += -0.55; } } } - temp_t5 = phi_a3->unk_000 & 0x4000; - phi_v0_2 = temp_t5; - phi_a3_2 = phi_a3; - phi_f14 = 0.0f; - if (temp_t5 != 0x4000) { - if ((phi_a3->unk_0BC & 0x200000) == 0x200000) { - player = phi_a3; - sp24 = phi_f0_2; - move_f32_towards(phi_a3 + 0xE8, 380.0f, 0.5f, phi_a3); - phi_v0_2 = player->unk_000 & 0x4000; - phi_a3_2 = player; + if ((player->unk_000 & 0x4000) != 0x4000) { + if ((player->unk_0BC & 0x200000) == 0x200000) { + move_f32_towards(&player->unk_0E8, 380.0f, 0.5f); } else { - player = phi_a3; - sp24 = phi_f0_2; - move_f32_towards(phi_a3 + 0xE8, 0.0f, 0.1f, phi_a3); - phi_v0_2 = player->unk_000 & 0x4000; - phi_a3_2 = player; + move_f32_towards(&player->unk_0E8, 0.0f, 0.1f); } } - phi_a3_3 = phi_a3_2; - phi_f0_3 = phi_f0_2; - if (phi_v0_2 == 0x4000) { - temp_a1_2 = phi_a3_2->unk_0BC; - temp_a0 = phi_a3_2 + 0xE8; - if (((temp_a1_2 & 0x100) == 0x100) && ((temp_a1_2 & 0x10) != 0x10)) { - player = phi_a3_2; - sp24 = phi_f0_2; - move_f32_towards(temp_a0, 580.0f, 0.2f, phi_a3_2); + if ((player->unk_000 & 0x4000) == 0x4000) { + if (((player->unk_0BC & 0x100) == 0x100) && ((player->unk_0BC & 0x10) != 0x10)) { + move_f32_towards(&player->unk_0E8, 580.0f, 0.2f); } else { - player = phi_a3_2; - sp24 = phi_f0_2; - move_f32_towards(temp_a0, phi_f14, 0.01f, phi_a3_2); + move_f32_towards(&player->unk_0E8, 0.0f, 0.01f); } if ((player->unk_0BC & 0x200000) == 0x200000) { - player = player; - sp24 = sp24; - move_f32_towards(player + 0xE4, 580.0f, 0.01f, player); + move_f32_towards(&player->unk_0E4, 580.0f, 0.01f); } else { - player = player; - sp24 = sp24; - move_f32_towards(player + 0xE4, 0.0f, 0.01f, player); + move_f32_towards(&player->unk_0E4, 0.0f, 0.01f); } - phi_a3_3 = player; - phi_f0_3 = sp24; } - player = phi_a3_3; - move_f32_towards(&phi_a3_3->unk_104, phi_f0_3, (f32) ((f64) gKartTurnSpeedReductionTable1[phi_a3_3->characterId] + 0.05), phi_a3_3); - temp_f0_3 = player->unk_08C; - temp_f12 = player->boostPower; - temp_f2_3 = (temp_f0_3 + player->unk_0E8 + temp_f12 + player->unk_0E4) - player->unk_0A0; - phi_f2 = temp_f2_3; - if (temp_f2_3 < 0.0f) { - phi_f2 = 0.0f; + move_f32_towards(&player->unk_104, var_f0, gKartTurnSpeedReductionTable1[player->characterId] + 0.05); + var_f2 = (player->unk_08C + player->unk_0E8 + player->boostPower + player->unk_0E4) - player->unk_0A0; + if (var_f2 < 0.0f) { + var_f2 = 0.0f; } - temp_v0_6 = player->unk_0CA; - if (((temp_v0_6 & 2) == 2) || ((temp_v0_6 & 8) == 8) || ((player->unk_000 & 0x2000) == 0x2000)) { - return (1.0f - player->unk_104) * phi_f2; + if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8) || ((player->unk_000 & 0x2000) == 0x2000)) { + return (1.0f - player->unk_104) * var_f2; } - temp_a1_3 = player->unk_0BC; - if (((temp_a1_3 & 0x80) == 0x80) || ((temp_a1_3 & 0x40) == 0x40) || ((temp_a1_3 & 0x01000000) == 0x01000000) || ((temp_a1_3 & 0x02000000) == 0x02000000)) { - return (1.0f - player->unk_104) * phi_f2; + if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) || ((player->unk_0BC & 0x01000000) == 0x01000000) || ((player->unk_0BC & 0x02000000) == 0x02000000)) { + return (1.0f - player->unk_104) * var_f2; } - if (((temp_a1_3 & 0x2000) == 0x2000) || ((temp_a1_3 & 0x100000) == 0x100000) || (temp_a0_2 = player, ((temp_a1_3 & 4) == 4))) { - temp_f4 = temp_f12 + temp_f0_3; - temp_a0_3 = player; - player = player; - func_8002FE84(temp_f12, temp_a0_3, temp_f4); + // Have to `and` the 0x2000 here to force the compiler to reload the immediate + if (((player->unk_0BC & 0x2000) == (0x2000 & 0xFFFFFFFF)) || ((player->unk_0BC & 0x100000) == 0x100000) || ((player->unk_0BC & 4) == 4)) { + func_8002FE84(player, player->boostPower + player->unk_08C); return player->boostPower + player->unk_08C; } - player = player; - sp1C = phi_f2; - func_8002FE84(temp_f12, temp_a0_2, phi_f2); - return (1.0f - player->unk_104) * phi_f2; + func_8002FE84(player, var_f2); + return (1.0f - player->unk_104) * var_f2; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030150.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern f32 D_800ED9B8; -extern f32 D_800ED9BC; -extern f32 D_800ED9C0; -extern f32 D_800ED9C4; -extern f32 D_800ED9C8; -extern f32 D_800ED9CC; -extern f32 D_800ED9D0; -extern f32 D_800ED9D4; +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f32 D_800ED9B8// = 0.35f; +extern f32 D_800ED9BC// = 0.55f; +extern f32 D_800ED9C0// = 0.94f; +extern f32 D_800ED9C4// = 0.85f; +extern f32 D_800ED9C8// = 0.46f; +extern f32 D_800ED9CC// = 0.48f; +extern f32 D_800ED9D0// = 0.3f; +extern f32 D_800ED9D4// = 0.54f; +void func_80030A34(Player *player) { + f32 var_f0; + f32 var_f2; -void func_80030A34(void *arg0) { - s16 temp_v0; - s16 temp_v0_3; - u16 temp_v0_2; - void *phi_a1; - f32 phi_f0; - f32 phi_f2; - f32 phi_f12; - - temp_v0 = arg0->unkCA; - phi_a1 = arg0; - if (((temp_v0 & 2) != 2) && ((temp_v0 & 8) != 8)) { - if ((((arg0->unk94 / 18.0f) * 216.0f) >= 8.0f) && (arg0->unkDC0 < 1.0f)) { - temp_v0_2 = arg0->unkF8; - if (temp_v0_2 != 1) { - if ((temp_v0_2 != 0xE) && (temp_v0_2 != 0x10)) { - phi_f0 = D_800ED9C8; - phi_f2 = D_800ED9CC; - phi_f12 = 0.0f; + if (((player->unk_0CA & 2) != 2) && ((player->unk_0CA & 8) != 8)) { + if ((((player->unk_094 / 18.0f) * 216.0f) >= 8.0f) && (player->unk_DC0 < 1.0f)) { + switch (player->unk_0F8) { /* irregular */ + case 1: + if (random_int(0x000AU) != 8) { + var_f0 = 0.35f; + var_f2 = 0.55f; } else { - phi_f0 = D_800ED9C0; - phi_f2 = D_800ED9C4; - phi_f12 = 0.0f; - } - } else { - arg0 = arg0; - phi_a1 = arg0; - if (random_int(0xA) != 8) { - phi_f0 = D_800ED9B8; - phi_f2 = D_800ED9BC; - phi_f12 = 0.0f; - } else { - arg0->unk7A = 0; - arg0->unk108 = 0.0f; - goto block_16; + player->unk_07A = 0; + player->unk_108 = 0.0f; + var_f0 = 0.0f; + var_f2 = 0.0f; } + break; + case 14: + case 16: + var_f0 = 0.94f; + var_f2 = 0.85f; + break; + default: + if(1){} + var_f0 = 0.46f; + var_f2 = 0.48f; + break; } + } else if (random_int(0x000AU) != 8) { + var_f0 = 0.3f; + var_f2 = 0.54f; } else { - arg0 = arg0; - phi_a1 = arg0; - if (random_int(0xA) != 8) { - phi_f0 = D_800ED9D0; - phi_f2 = D_800ED9D4; - phi_f12 = 0.0f; - } else { - arg0->unk7A = 0; - arg0->unk108 = 0.0f; -block_16: - phi_a1 = arg0; - phi_f0 = 0.0f; - phi_f2 = 0.0f; - phi_f12 = 0.0f; - } + player->unk_07A = 0; + player->unk_108 = 0.0f; + var_f0 = 0.0f; + var_f2 = 0.0f; } - phi_a1->unk7A = phi_a1->unk7A + 1; - temp_v0_3 = phi_a1->unk7A; - phi_a1->unk108 = (temp_v0_3 * phi_f0) - (0.5 * phi_f2 * (temp_v0_3 * temp_v0_3)); - if ((temp_v0_3 != 0) && (phi_a1->unk108 < phi_f12)) { - phi_a1->unk7A = 0; + player->unk_07A += 1; + player->unk_108 = (player->unk_07A * var_f0) - (0.5 * var_f2 * (player->unk_07A * player->unk_07A)); + if ((player->unk_07A != 0) && (player->unk_108 < 0.0f)) { + player->unk_07A = 0; } - if (phi_a1->unk108 <= phi_f12) { - phi_a1->unk108 = phi_f12; + if (player->unk_108 <= 0.0f) { + player->unk_108 = 0.0f; } } } @@ -4090,193 +3809,126 @@ block_16: GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030A34.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -// This is likely the function responsible for detecting triple-tap "A" -// for "fast" acceleration -void func_80030C34(s32 arg0) { - s32 sp4; - s32 *temp_a0; - s32 *temp_a1; - s32 *temp_a1_2; - s32 *temp_a3; - s32 *temp_v0; - s32 *temp_v0_2; - s32 *temp_v0_3; - s32 temp_a2; - s32 temp_a2_2; - s32 temp_t5; - s32 phi_v0; - s32 phi_a2; +// This is likely the function responsible for detecting triple-tap "A" for "fast" acceleration +void func_80030C34(Player *player) { + s32 var_v0; - if (arg0 == gPlayerOne) { - sp4 = 0; + if (player == gPlayerOne) { + var_v0 = 0; } - phi_v0 = sp4; - if (arg0 == gPlayerTwo) { - phi_v0 = 1; + if (player == gPlayerTwo) { + var_v0 = 1; } - if (arg0 == gPlayerThree) { - phi_v0 = 2; + if (player == gPlayerThree) { + var_v0 = 2; } - if (arg0 == gPlayerFour) { - phi_v0 = 3; + if (player == gPlayerFour) { + var_v0 = 3; } - if (arg0 == gPlayerFive) { - phi_v0 = 4; + if (player == gPlayerFive) { + var_v0 = 4; } - if (arg0 == gPlayerSix) { - phi_v0 = 5; + if (player == gPlayerSix) { + var_v0 = 5; } - if (arg0 == gPlayerSeven) { - phi_v0 = 6; + if (player == gPlayerSeven) { + var_v0 = 6; } - if (arg0 == gPlayerEight) { - phi_v0 = 7; + if (player == gPlayerEight) { + var_v0 = 7; } - temp_a0 = &D_80165460[phi_v0]; - temp_v0 = &D_80165480[phi_v0]; - if (*temp_a0 == 0) { - temp_v0_2 = &gPlayerIsThrottleActive[phi_v0]; - if (*temp_v0_2 == 1) { - temp_a1 = &D_80165420[phi_v0]; - temp_a2 = *temp_a1; - if ((temp_a2 < 2) || (temp_a2 >= 9)) { - D_80165440[phi_v0] = 0; + if (D_80165460[var_v0] == 0) { + if (gPlayerIsThrottleActive[var_v0] == 1) { + if ((D_80165420[var_v0] < 2) || (D_80165420[var_v0] >= 9)) { + D_80165440[var_v0] = 0; } - *temp_a1 = 0; - D_80165400[phi_v0] = 0; + D_80165420[var_v0] = 0; + D_80165400[var_v0] = 0; } - temp_a1_2 = &D_80165420[phi_v0]; - *temp_v0_2 = 0; - temp_a3 = &D_80165440[phi_v0]; - temp_a2_2 = *temp_a1_2 + 1; - *temp_a1_2 = temp_a2_2; - phi_a2 = temp_a2_2; - if (temp_a2_2 >= 9) { - *temp_a1_2 = 9; - phi_a2 = 9; + gPlayerIsThrottleActive[var_v0] = 0; + D_80165420[var_v0]++; + if (D_80165420[var_v0] >= 9) { + D_80165420[var_v0] = 9; } - if ((phi_a2 >= 2) && (phi_a2 < 9)) { - temp_v0_3 = &D_80165400[phi_v0]; - if (*temp_v0_3 == 0) { - *temp_a3 = *temp_a3 + 1; + if ((D_80165420[var_v0] >= 2) && (D_80165420[var_v0] < 9)) { + if (D_80165400[var_v0] == 0) { + D_80165440[var_v0] += 1; } - *temp_v0_3 = 1; + D_80165400[var_v0] = 1; } - if (*temp_a3 == 5) { - *temp_a0 = 1; - D_80165480[phi_v0] = 0x78; - *temp_a3 = 0; - *temp_a1_2 = 0; - return; + if (D_80165440[var_v0] == 5) { + D_80165460[var_v0] = 1; + D_80165480[var_v0] = 0x00000078; + D_80165440[var_v0] = 0; + D_80165420[var_v0] = 0; + } + } else { + D_80165480[var_v0]--; + if (D_80165480[var_v0] <= 0) { + D_80165460[var_v0] = 0; } - // Duplicate return node #33. Try simplifying control flow for better match - return; - } - temp_t5 = *temp_v0 - 1; - *temp_v0 = temp_t5; - if (temp_t5 <= 0) { - *temp_a0 = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030C34.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -// This is likely the function responsible for detecting triple-tap "A" -// for "fast" acceleration -void func_80030E00(s32 arg0) { - s32 sp4; - s32 *temp_a0; - s32 *temp_a1; - s32 *temp_a1_2; - s32 *temp_a3; - s32 *temp_v0; - s32 *temp_v0_2; - s32 *temp_v0_3; - s32 temp_a2; - s32 temp_a2_2; - s32 temp_t5; - s32 phi_v0; - s32 phi_a2; +void func_80030E00(Player *player) { + s32 var_v0; - if (arg0 == gPlayerOne) { - sp4 = 0; + if (player == gPlayerOne) { + var_v0 = 0; } - phi_v0 = sp4; - if (arg0 == gPlayerTwo) { - phi_v0 = 1; + if (player == gPlayerTwo) { + var_v0 = 1; } - if (arg0 == gPlayerThree) { - phi_v0 = 2; + if (player == gPlayerThree) { + var_v0 = 2; } - if (arg0 == gPlayerFour) { - phi_v0 = 3; + if (player == gPlayerFour) { + var_v0 = 3; } - if (arg0 == gPlayerFive) { - phi_v0 = 4; + if (player == gPlayerFive) { + var_v0 = 4; } - if (arg0 == gPlayerSix) { - phi_v0 = 5; + if (player == gPlayerSix) { + var_v0 = 5; } - if (arg0 == gPlayerSeven) { - phi_v0 = 6; + if (player == gPlayerSeven) { + var_v0 = 6; } - if (arg0 == gPlayerEight) { - phi_v0 = 7; + if (player == gPlayerEight) { + var_v0 = 7; } - temp_a0 = &D_80165460[phi_v0]; - temp_v0 = &D_80165480[phi_v0]; - if (*temp_a0 == 0) { - temp_v0_2 = &gPlayerIsThrottleActive[phi_v0]; - temp_a1 = &D_80165420[phi_v0]; - if (*temp_v0_2 == 0) { - temp_a2 = *temp_a1; - if ((temp_a2 < 2) || (temp_a2 >= 9)) { - D_80165440[phi_v0] = 0; + if (D_80165460[var_v0] == 0) { + if (gPlayerIsThrottleActive[var_v0] == 0) { + if ((D_80165420[var_v0] < 2) || (D_80165420[var_v0] >= 9)) { + D_80165440[var_v0] = 0; } - *temp_a1 = 0; - D_80165400[phi_v0] = 0; + D_80165420[var_v0] = 0; + D_80165400[var_v0] = 0; } - temp_a1_2 = &D_80165420[phi_v0]; - *temp_v0_2 = 1; - temp_a3 = &D_80165440[phi_v0]; - temp_a2_2 = *temp_a1_2 + 1; - *temp_a1_2 = temp_a2_2; - phi_a2 = temp_a2_2; - if (temp_a2_2 >= 9) { - *temp_a1_2 = 9; - phi_a2 = 9; + gPlayerIsThrottleActive[var_v0] = 1; + D_80165420[var_v0]++; + if (D_80165420[var_v0] >= 9) { + D_80165420[var_v0] = 9; } - if ((phi_a2 >= 2) && (phi_a2 < 9)) { - temp_v0_3 = &D_80165400[phi_v0]; - if (*temp_v0_3 == 0) { - *temp_a3 = *temp_a3 + 1; + if ((D_80165420[var_v0] >= 2) && (D_80165420[var_v0] < 9)) { + if (D_80165400[var_v0] == 0) { + D_80165440[var_v0] += 1; } - *temp_v0_3 = 1; + D_80165400[var_v0] = 1; } - if (*temp_a3 == 5) { - *temp_a0 = 1; - D_80165480[phi_v0] = 0x78; - *temp_a3 = 0; - *temp_a1_2 = 0; - return; + if (D_80165440[var_v0] == 5) { + D_80165460[var_v0] = 1; + D_80165480[var_v0] = 0x00000078; + D_80165440[var_v0] = 0; + D_80165420[var_v0] = 0; + } + } else { + D_80165480[var_v0]--; + if (D_80165480[var_v0] <= 0) { + D_80165460[var_v0] = 0; } - // Duplicate return node #33. Try simplifying control flow for better match - return; - } - temp_t5 = *temp_v0 - 1; - *temp_v0 = temp_t5; - if (temp_t5 <= 0) { - *temp_a0 = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030E00.s") -#endif /* D_80165460 appears to track on a per-player index whether they're doing regular or "fast" accleration @@ -4400,414 +4052,281 @@ void func_80031F48(Player *player, f32 arg1) { } } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80032050(s32 arg0) { - s32 sp4; - s32 *temp_a0; - s32 *temp_a1; - s32 *temp_a1_2; - s32 *temp_a3; - s32 *temp_v0; - s32 *temp_v0_2; - s32 *temp_v0_3; - s32 temp_a2; - s32 temp_a2_2; - s32 temp_t5; - s32 phi_v0; - s32 phi_a2; +void func_80032050(Player *player) { + s32 var_v0; - if (arg0 == gPlayerOne) { - sp4 = 0; - } - phi_v0 = sp4; - if (arg0 == gPlayerTwo) { - phi_v0 = 1; - } - if (arg0 == gPlayerThree) { - phi_v0 = 2; - } - if (arg0 == gPlayerFour) { - phi_v0 = 3; - } - if (arg0 == gPlayerFive) { - phi_v0 = 4; - } - if (arg0 == gPlayerSix) { - phi_v0 = 5; - } - if (arg0 == gPlayerSeven) { - phi_v0 = 6; - } - if (arg0 == gPlayerEight) { - phi_v0 = 7; - } - temp_a0 = &D_80165520[phi_v0]; - temp_v0 = &D_80165540[phi_v0]; - if (*temp_a0 == 0) { - temp_v0_2 = &D_801654A0[phi_v0]; - if (*temp_v0_2 == 1) { - temp_a1 = &D_801654E0[phi_v0]; - temp_a2 = *temp_a1; - if ((temp_a2 < 2) || (temp_a2 >= 9)) { - D_80165500[phi_v0] = 0; - } - *temp_a1 = 0; - D_801654C0[phi_v0] = 0; - } - temp_a1_2 = &D_801654E0[phi_v0]; - *temp_v0_2 = 0; - temp_a3 = &D_80165500[phi_v0]; - temp_a2_2 = *temp_a1_2 + 1; - *temp_a1_2 = temp_a2_2; - phi_a2 = temp_a2_2; - if (temp_a2_2 >= 9) { - *temp_a1_2 = 9; - phi_a2 = 9; - } - if ((phi_a2 >= 2) && (phi_a2 < 9)) { - temp_v0_3 = &D_801654C0[phi_v0]; - if (*temp_v0_3 == 0) { - *temp_a3 = *temp_a3 + 1; - } - *temp_v0_3 = 1; - } - if (*temp_a3 == 5) { - *temp_a0 = 1; - D_80165540[phi_v0] = 0x78; - *temp_a3 = 0; - *temp_a1_2 = 0; - return; - } - // Duplicate return node #33. Try simplifying control flow for better match - return; - } - temp_t5 = *temp_v0 - 1; - *temp_v0 = temp_t5; - if (temp_t5 <= 0) { - *temp_a0 = 0; - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80032050.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8003221C(s32 arg0) { - s32 sp4; - s32 *temp_a0; - s32 *temp_a1; - s32 *temp_a1_2; - s32 *temp_a3; - s32 *temp_v0; - s32 *temp_v0_2; - s32 *temp_v0_3; - s32 temp_a2; - s32 temp_a2_2; - s32 temp_t5; - s32 phi_v0; - s32 phi_a2; - - if (arg0 == gPlayerOne) { - sp4 = 0; - } - phi_v0 = sp4; - if (arg0 == gPlayerTwo) { - phi_v0 = 1; - } - if (arg0 == gPlayerThree) { - phi_v0 = 2; - } - if (arg0 == gPlayerFour) { - phi_v0 = 3; - } - if (arg0 == gPlayerFive) { - phi_v0 = 4; - } - if (arg0 == gPlayerSix) { - phi_v0 = 5; - } - if (arg0 == gPlayerSeven) { - phi_v0 = 6; - } - if (arg0 == gPlayerEight) { - phi_v0 = 7; - } - temp_a0 = &D_80165520[phi_v0]; - temp_v0 = &D_80165540[phi_v0]; - if (*temp_a0 == 0) { - temp_v0_2 = &D_801654A0[phi_v0]; - temp_a1 = &D_801654E0[phi_v0]; - if (*temp_v0_2 == 0) { - temp_a2 = *temp_a1; - if ((temp_a2 < 2) || (temp_a2 >= 9)) { - D_80165500[phi_v0] = 0; - } - *temp_a1 = 0; - D_801654C0[phi_v0] = 0; - } - temp_a1_2 = &D_801654E0[phi_v0]; - *temp_v0_2 = 1; - temp_a3 = &D_80165500[phi_v0]; - temp_a2_2 = *temp_a1_2 + 1; - *temp_a1_2 = temp_a2_2; - phi_a2 = temp_a2_2; - if (temp_a2_2 >= 9) { - *temp_a1_2 = 9; - phi_a2 = 9; - } - if ((phi_a2 >= 2) && (phi_a2 < 9)) { - temp_v0_3 = &D_801654C0[phi_v0]; - if (*temp_v0_3 == 0) { - *temp_a3 = *temp_a3 + 1; - } - *temp_v0_3 = 1; - } - if (*temp_a3 == 5) { - *temp_a0 = 1; - D_80165540[phi_v0] = 0x78; - *temp_a3 = 0; - *temp_a1_2 = 0; - return; - } - // Duplicate return node #33. Try simplifying control flow for better match - return; - } - temp_t5 = *temp_v0 - 1; - *temp_v0 = temp_t5; - if (temp_t5 <= 0) { - *temp_a0 = 0; - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_8003221C.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -void func_80031F48(f32, f32, f32); /* extern */ - -void func_800323E4(Player *player) { - s32 sp24; - f32 sp1C; - f32 temp_f0; - s32 temp_t5; - u8 temp_v0; - u8 temp_v0_2; - s32 phi_v1; - f32 phi_f2; - f32 phi_f12; - f32 phi_f2_2; - - phi_f2_2 = 0.0f; if (player == gPlayerOne) { - sp24 = 0; + var_v0 = 0; } - phi_v1 = sp24; if (player == gPlayerTwo) { - phi_v1 = 1; + var_v0 = 1; } if (player == gPlayerThree) { - phi_v1 = 2; + var_v0 = 2; } if (player == gPlayerFour) { - phi_v1 = 3; + var_v0 = 3; } if (player == gPlayerFive) { - phi_v1 = 4; + var_v0 = 4; } if (player == gPlayerSix) { - phi_v1 = 5; + var_v0 = 5; } if (player == gPlayerSeven) { - phi_v1 = 6; + var_v0 = 6; } if (player == gPlayerEight) { - phi_v1 = 7; + var_v0 = 7; } - temp_t5 = player->unk_0BC | 1; - player->unk_0BC = temp_t5; - if ((temp_t5 & 0x20) == 0x20) { - func_80031F48(0.0f, 1.0f); - player->unk_20C = 0.0f; - return; - } - temp_v0 = player->boundingBoxCorners[3].surfaceType; - if ((s32) temp_v0 < 0xF) { - phi_f2_2 = 0.0f + D_800E3210[player->characterId][temp_v0]; - } - temp_v0_2 = player->boundingBoxCorners[2].surfaceType; - phi_f2 = phi_f2_2; - if ((s32) temp_v0_2 < 0xF) { - phi_f2 = phi_f2_2 + D_800E3210[player->characterId][temp_v0_2]; - } - if ((player->unk_22C - player->unk_094) <= 0.0f) { - player->unk_20C = 0.0f; + + if (D_80165520[var_v0] == 0) { + if (D_801654A0[var_v0] == 1) { + if ((D_801654E0[var_v0] < 2) || (D_801654E0[var_v0] >= 9)) { + D_80165500[var_v0] = 0; + } + D_801654E0[var_v0] = 0; + D_801654C0[var_v0] = 0; + } + D_801654A0[var_v0] = 0; + D_801654E0[var_v0]++; + if (D_801654E0[var_v0] >= 9) { + D_801654E0[var_v0] = 9; + } + if ((D_801654E0[var_v0] >= 2) && (D_801654E0[var_v0] < 9)) { + if (D_801654C0[var_v0] == 0) { + D_80165500[var_v0]++; + } + D_801654C0[var_v0] = 1; + } + if (D_80165500[var_v0] == 5) { + D_80165520[var_v0] = 1; + D_80165540[var_v0] = 0x00000078; + D_80165500[var_v0] = 0; + D_801654E0[var_v0] = 0; + } } else { - player->unk_20C = (f32) ((f64) player->unk_20C + 0.02); - if (player->unk_20C >= 2.0f) { - player->unk_20C = 2.0f; + D_80165540[var_v0]--; + if (D_80165540[var_v0] <= 0) { + D_80165520[var_v0] = 0; } } - phi_f12 = 2.0f; - if (D_80165520[phi_v1] == 1) { - if (player->unk_20C >= 2.0f) { - func_80031F48(2.0f, (1.0f - phi_f2) * 5.0f); - return; +} + +void func_8003221C(Player *player) { + s32 var_v0; + + if (player == gPlayerOne) { + var_v0 = 0; + } + if (player == gPlayerTwo) { + var_v0 = 1; + } + if (player == gPlayerThree) { + var_v0 = 2; + } + if (player == gPlayerFour) { + var_v0 = 3; + } + if (player == gPlayerFive) { + var_v0 = 4; + } + if (player == gPlayerSix) { + var_v0 = 5; + } + if (player == gPlayerSeven) { + var_v0 = 6; + } + if (player == gPlayerEight) { + var_v0 = 7; + } + + if (D_80165520[var_v0] == 0) { + if (D_801654A0[var_v0] == 0) { + if ((D_801654E0[var_v0] < 2) || (D_801654E0[var_v0] >= 9)) { + D_80165500[var_v0] = 0; + } + D_801654E0[var_v0] = 0; + D_801654C0[var_v0] = 0; + } + D_801654A0[var_v0] = 1; + D_801654E0[var_v0]++; + if (D_801654E0[var_v0] >= 9) { + D_801654E0[var_v0] = 9; + } + if ((D_801654E0[var_v0] >= 2) && (D_801654E0[var_v0] < 9)) { + if (D_801654C0[var_v0] == 0) { + D_80165500[var_v0]++; + } + D_801654C0[var_v0] = 1; + } + if (D_80165500[var_v0] == 5) { + D_80165520[var_v0] = 1; + D_80165540[var_v0] = 0x00000078; + D_80165500[var_v0] = 0; + D_801654E0[var_v0] = 0; + } + } else { + D_80165540[var_v0]--; + if (D_80165540[var_v0] <= 0) { + D_80165520[var_v0] = 0; } - func_80031F48(2.0f, (1.0f - phi_f2) * 3.0f); - return; } - if (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) { - sp1C = phi_f2; - func_80031F48(2.0f, (1.0f - phi_f2) * 4.0f); - phi_f12 = 2.0f; +} + +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f64 D_800EDB00;// = 0.02; +extern f64 D_800EDB08;// = 1.2; +void func_800323E4(Player *player) { + s32 var_v1; + f32 test; + f32 var_f2; + + var_f2 = 0.0f; + if (player == gPlayerOne) { + var_v1 = 0; } - temp_f0 = 1.0f - phi_f2; - if (phi_f12 <= player->unk_20C) { - func_80031F48(phi_f12, (bitwise f32) player, (f32) ((f64) temp_f0 * 2.5)); - return; + if (player == gPlayerTwo) { + var_v1 = 1; + } + if (player == gPlayerThree) { + var_v1 = 2; + } + if (player == gPlayerFour) { + var_v1 = 3; + } + if (player == gPlayerFive) { + var_v1 = 4; + } + if (player == gPlayerSix) { + var_v1 = 5; + } + if (player == gPlayerSeven) { + var_v1 = 6; + } + if (player == gPlayerEight) { + var_v1 = 7; + } + player->unk_0BC |= 1; + // This check will never be true, why is it here? + if ((player->unk_0BC & 0x20) == 0x20) { + func_80031F48(player, 1.0f); + player->unk_20C = var_f2; + } else { + if ((s32) player->boundingBoxCorners[3].surfaceType < 0xF) { + var_f2 += D_800E3210[player->characterId][player->boundingBoxCorners[3].surfaceType]; + } + if ((s32) player->boundingBoxCorners[2].surfaceType < 0xF) { + var_f2 += D_800E3210[player->characterId][player->boundingBoxCorners[2].surfaceType]; + } + test = player->unk_22C - player->unk_094; + if (test <= 0.0f) { + player->unk_20C = 0.0f; + } else { + player->unk_20C += 0.02; + if (player->unk_20C >= 2.0f) { + player->unk_20C = 2.0f; + } + } + if (D_80165520[var_v1] == 1) { + if (player->unk_20C >= 2.0f) { + func_80031F48(player, (1.0f - var_f2) * 5.0f); + } else { + func_80031F48(player, (1.0f - var_f2) * 3.0f); + } + } else { + if (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) { + func_80031F48(player, (1.0f - var_f2) * 4.0f); + } + if (player->unk_20C >= 2.0f) { + func_80031F48(player, (1.0f - var_f2) * 2.5); + } else { + func_80031F48(player, (1.0f - var_f2) * 1.2); + } + } } - func_80031F48(phi_f12, (bitwise f32) player, (f32) ((f64) temp_f0 * 1.2)); } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_800323E4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern f64 D_800EDB10; -extern f64 D_800EDB18; -extern f64 D_800EDB20; -extern f64 D_800EDB28; -extern f64 D_800EDB30; -extern f64 D_800EDB38; -extern f64 D_800EDB40; -extern f64 D_800EDB48; -extern f64 D_800EDB50; -extern f64 D_800EDB58; -extern f64 D_800EDB60; -extern f64 D_800EDB68; -extern f64 D_800EDB70; -extern f64 D_800EDB78; -extern f64 D_800EDB80; -extern f64 D_800EDB88; -extern f32 D_800EDB90; +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f64 D_800EDB10// = 0.1; +extern f64 D_800EDB18// = 0.1; +extern f64 D_800EDB20// = 0.2; +extern f64 D_800EDB28// = 0.2; +extern f64 D_800EDB30// = 0.3; +extern f64 D_800EDB38// = 0.3; +extern f64 D_800EDB40// = 0.4; +extern f64 D_800EDB48// = 0.4; +extern f64 D_800EDB50// = 0.6; +extern f64 D_800EDB58// = 0.6; +extern f64 D_800EDB60// = 0.7; +extern f64 D_800EDB68// = 0.7; +extern f64 D_800EDB70// = 0.8; +extern f64 D_800EDB78// = 0.8; +extern f64 D_800EDB80// = 0.9; +extern f64 D_800EDB88// = 0.9; +extern f32 D_800EDB90// = 0.9; extern s16 D_801656F0; -extern ? gKartAccelerationTables; extern s32 gRaceFrameCounter; -void func_80032700(void *arg0) { - f32 temp_f0_2; - f64 temp_f0; - f64 temp_f2; - s32 temp_t6; +void func_80032700(Player *player) { s32 temp_v0; - f64 phi_f0; - f64 phi_f2; - f64 phi_f0_2; - f64 phi_f2_2; - f64 phi_f0_3; - f64 phi_f2_3; - f64 phi_f0_4; - f64 phi_f2_4; - f64 phi_f0_5; - f64 phi_f2_5; - f64 phi_f0_6; - f64 phi_f2_6; - f64 phi_f0_7; - f64 phi_f2_7; - f64 phi_f0_8; - f64 phi_f2_8; - f64 phi_f0_9; - s32 phi_v0; + s32 var_v0; + s32 test; - temp_f0 = arg0->unk9C; - phi_f0 = temp_f0; - if ((temp_f0 >= 0.0) && (temp_f0 < (arg0->unk214 * D_800EDB10))) { - arg0->unk9C = temp_f0 + (**(&gKartAccelerationTables + (arg0->unk254 * 4)) * 3.0); - phi_f0 = arg0->unk9C; + temp_v0 = get_player_index_for_player(player); + if ((player->unk_09C >= 0.0) && (player->unk_09C < (player->unk_214 * 0.1))) { + player->unk_09C += gKartAccelerationTables[player->characterId][0] * 3.0; } - temp_f2 = arg0->unk214; - phi_f2 = temp_f2; - phi_f0_2 = phi_f0; - if (((temp_f2 * D_800EDB18) <= phi_f0) && (phi_f0 < (temp_f2 * D_800EDB20))) { - arg0->unk9C = phi_f0 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk4 * 3.0); - phi_f2 = arg0->unk214; - phi_f0_2 = arg0->unk9C; + if (((player->unk_214 * 0.1) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.2))) { + player->unk_09C += gKartAccelerationTables[player->characterId][1] * 3.0; } - phi_f2_2 = phi_f2; - phi_f0_3 = phi_f0_2; - if (((phi_f2 * D_800EDB28) <= phi_f0_2) && (phi_f0_2 < (phi_f2 * D_800EDB30))) { - arg0->unk9C = phi_f0_2 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk8 * 3.0); - phi_f2_2 = arg0->unk214; - phi_f0_3 = arg0->unk9C; + if (((player->unk_214 * 0.2) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.3))) { + player->unk_09C += gKartAccelerationTables[player->characterId][2] * 3.0; } - phi_f2_3 = phi_f2_2; - phi_f0_4 = phi_f0_3; - if (((phi_f2_2 * D_800EDB38) <= phi_f0_3) && (phi_f0_3 < (phi_f2_2 * D_800EDB40))) { - arg0->unk9C = phi_f0_3 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unkC * 3.0); - phi_f2_3 = arg0->unk214; - phi_f0_4 = arg0->unk9C; + if (((player->unk_214 * 0.3) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.4))) { + player->unk_09C += gKartAccelerationTables[player->characterId][3] * 3.0; } - phi_f2_4 = phi_f2_3; - phi_f0_5 = phi_f0_4; - if (((phi_f2_3 * D_800EDB48) <= phi_f0_4) && (phi_f0_4 < (phi_f2_3 * 0.5))) { - arg0->unk9C = phi_f0_4 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk10 * 3.0); - phi_f2_4 = arg0->unk214; - phi_f0_5 = arg0->unk9C; + if (((player->unk_214 * 0.4) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5))) { + player->unk_09C += gKartAccelerationTables[player->characterId][4] * 3.0; } - phi_f2_5 = phi_f2_4; - phi_f0_6 = phi_f0_5; - if (((phi_f2_4 * 0.5) <= phi_f0_5) && (phi_f0_5 < (phi_f2_4 * D_800EDB50))) { - arg0->unk9C = phi_f0_5 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk14 * 3.0); - phi_f2_5 = arg0->unk214; - phi_f0_6 = arg0->unk9C; + if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.6))) { + player->unk_09C += gKartAccelerationTables[player->characterId][5] * 3.0; } - phi_f2_6 = phi_f2_5; - phi_f0_7 = phi_f0_6; - if (((phi_f2_5 * D_800EDB58) <= phi_f0_6) && (phi_f0_6 < (phi_f2_5 * D_800EDB60))) { - arg0->unk9C = phi_f0_6 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk18 * 2.5); - phi_f2_6 = arg0->unk214; - phi_f0_7 = arg0->unk9C; + if (((player->unk_214 * 0.6) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.7))) { + player->unk_09C += gKartAccelerationTables[player->characterId][6] * 2.5; } - phi_f2_7 = phi_f2_6; - phi_f0_8 = phi_f0_7; - if (((phi_f2_6 * D_800EDB68) <= phi_f0_7) && (phi_f0_7 < (phi_f2_6 * D_800EDB70))) { - arg0->unk9C = phi_f0_7 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk1C * 2.5); - phi_f2_7 = arg0->unk214; - phi_f0_8 = arg0->unk9C; + if (((player->unk_214 * 0.7) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.8))) { + player->unk_09C += gKartAccelerationTables[player->characterId][7] * 2.5; } - phi_f2_8 = phi_f2_7; - phi_f0_9 = phi_f0_8; - if (((phi_f2_7 * D_800EDB78) <= phi_f0_8) && (phi_f0_8 < (phi_f2_7 * D_800EDB80))) { - arg0->unk9C = phi_f0_8 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk20 * 2.5); - phi_f2_8 = arg0->unk214; - phi_f0_9 = arg0->unk9C; + if (((player->unk_214 * 0.8) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.9))) { + player->unk_09C += gKartAccelerationTables[player->characterId][8] * 2.5; } - if (((phi_f2_8 * D_800EDB88) <= phi_f0_9) && (phi_f0_9 <= phi_f2_8)) { - arg0->unk9C = phi_f0_9 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk24 * 2.5); + if (((player->unk_214 * 0.9) <= player->unk_09C) && (player->unk_09C <= player->unk_214 * 1.0)) { + player->unk_09C += gKartAccelerationTables[player->characterId][9] * 2.5; } if (D_801656F0 == 1) { - phi_v0 = 8; - if (gModeSelection == TIME_TRIALS) { - phi_v0 = 0x14; + test = gRaceFrameCounter - D_801652E0[temp_v0]; + if (gModeSelection == (s32) 1) { + var_v0 = 0x14; + } else { + var_v0 = 8; } - if (((gRaceFrameCounter - D_801652E0[get_player_index_for_player()]) < phi_v0) && ((arg0->unk44 & 0x20) != 0x20)) { - arg0->unkC = arg0->unkC | 0x2000000; - } else if ((arg0->unk214 * D_800EDB90) <= arg0->unk9C) { - temp_v0 = arg0->unkC; - temp_t6 = temp_v0 | 0x10000000; - if ((temp_v0 & 0x2000000) != 0x2000000) { - arg0->unkC = temp_t6; - arg0->unkC = temp_t6 & 0xFDFFFFFF; + if ((test < var_v0) && ((player->unk_044 & 0x20) != 0x20)) { + player->statusEffects |= 0x02000000; + } else if ((player->unk_214 * 0.9f) <= player->unk_09C) { + if ((player->statusEffects & 0x02000000) != 0x02000000) { + player->statusEffects |= 0x10000000; + player->statusEffects &= ~0x02000000; } } } - temp_f0_2 = arg0->unk9C; - arg0->unk44 = arg0->unk44 | 0x20; - arg0->unk98 = (temp_f0_2 * temp_f0_2) / 25.0f; + player->unk_044 |= 0x20; + player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80032700.s") @@ -4890,157 +4409,81 @@ void func_80033280(Player *player, f32 arg1) { player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern f64 D_800EDC48; -extern f64 D_800EDC50; -extern f64 D_800EDC58; -extern f64 D_800EDC60; -extern f64 D_800EDC68; -extern f64 D_800EDC70; -extern f64 D_800EDC78; -extern f64 D_800EDC80; -extern f64 D_800EDC88; -extern f64 D_800EDC90; -extern f64 D_800EDC98; -extern f64 D_800EDCA0; -extern f64 D_800EDCA8; -extern f64 D_800EDCB0; -extern f64 D_800EDCB8; -extern f64 D_800EDCC0; -extern f64 D_800EDCC8; -extern f64 D_800EDCD0; -extern f64 D_800EDCD8; -extern f64 D_800EDCE0; -extern ? gKartAccelerationTables; +#ifdef NEEDS_RODATA +// data_0DD0A0_3_0_0 +extern f64 D_800EDC48// = 0.1; +extern f64 D_800EDC50// = 3.2; +extern f64 D_800EDC58// = 3.2; +extern f64 D_800EDC60// = 0.1; +extern f64 D_800EDC68// = 0.2; +extern f64 D_800EDC70// = 0.2; +extern f64 D_800EDC78// = 0.3; +extern f64 D_800EDC80// = 0.3; +extern f64 D_800EDC88// = 0.4; +extern f64 D_800EDC90// = 0.4; +extern f64 D_800EDC98// = 0.6; +extern f64 D_800EDCA0// = 0.6; +extern f64 D_800EDCA8// = 0.7; +extern f64 D_800EDCB0// = 0.7; +extern f64 D_800EDCB8// = 0.8; +extern f64 D_800EDCC0// = 2.8; +extern f64 D_800EDCC8// = 2.8; +extern f64 D_800EDCD0// = 0.8; +extern f64 D_800EDCD8// = 0.9; +extern f64 D_800EDCE0// = 0.9; -void func_800332E8(void *arg0, s32 arg1) { - f32 *temp_v0; - f64 temp_f0; - f64 temp_f12; - f64 temp_f12_2; - f64 temp_f2; - f64 phi_f0; - f64 phi_f2; - f64 phi_f0_2; - f64 phi_f2_2; - f64 phi_f0_3; - f64 phi_f2_3; - f64 phi_f0_4; - f64 phi_f2_4; - f64 phi_f0_5; - f64 phi_f2_5; - f64 phi_f0_6; - f64 phi_f2_6; - f64 phi_f0_7; - f64 phi_f2_7; - f64 phi_f0_8; - f64 phi_f2_8; - f64 phi_f0_9; - - temp_v0 = &D_80165280[arg1]; - temp_f0 = *temp_v0; - phi_f0 = temp_f0; - if ((temp_f0 >= 0.0) && (temp_f0 < (arg0->unk214 * D_800EDC48))) { - *temp_v0 = temp_f0 + (**(&gKartAccelerationTables + (arg0->unk254 * 4)) * D_800EDC50); - phi_f0 = *temp_v0; +void func_800332E8(Player *player, s32 arg1) { + if ((D_80165280[arg1] >= 0.0) && (D_80165280[arg1] < ((f64) player->unk_214 * 0.1))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][0] * 3.2; } - temp_f12 = D_800EDC58; - temp_f2 = arg0->unk214; - phi_f2 = temp_f2; - phi_f0_2 = phi_f0; - if (((temp_f2 * D_800EDC60) <= phi_f0) && (phi_f0 < (temp_f2 * D_800EDC68))) { - *temp_v0 = phi_f0 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk4 * temp_f12); - phi_f2 = arg0->unk214; - phi_f0_2 = *temp_v0; + if (((player->unk_214 * 0.1) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.2))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][1] * 3.2; } - phi_f2_2 = phi_f2; - phi_f0_3 = phi_f0_2; - if (((phi_f2 * D_800EDC70) <= phi_f0_2) && (phi_f0_2 < (phi_f2 * D_800EDC78))) { - *temp_v0 = phi_f0_2 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk8 * temp_f12); - phi_f2_2 = arg0->unk214; - phi_f0_3 = *temp_v0; + if (((player->unk_214 * 0.2) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.3))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][2] * 3.2; } - phi_f2_3 = phi_f2_2; - phi_f0_4 = phi_f0_3; - if (((phi_f2_2 * D_800EDC80) <= phi_f0_3) && (phi_f0_3 < (phi_f2_2 * D_800EDC88))) { - *temp_v0 = phi_f0_3 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unkC * temp_f12); - phi_f2_3 = arg0->unk214; - phi_f0_4 = *temp_v0; + if (((player->unk_214 * 0.3) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.4))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][3] * 3.2; } - phi_f2_4 = phi_f2_3; - phi_f0_5 = phi_f0_4; - if (((phi_f2_3 * D_800EDC90) <= phi_f0_4) && (phi_f0_4 < (phi_f2_3 * 0.5))) { - *temp_v0 = phi_f0_4 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk10 * temp_f12); - phi_f2_4 = arg0->unk214; - phi_f0_5 = *temp_v0; + if (((player->unk_214 * 0.4) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.5))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][4] * 3.2; } - phi_f2_5 = phi_f2_4; - phi_f0_6 = phi_f0_5; - if (((phi_f2_4 * 0.5) <= phi_f0_5) && (phi_f0_5 < (phi_f2_4 * D_800EDC98))) { - *temp_v0 = phi_f0_5 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk14 * temp_f12); - phi_f2_5 = arg0->unk214; - phi_f0_6 = *temp_v0; + if (((player->unk_214 * 0.5) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.6))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][5] * 3.2; } - phi_f2_6 = phi_f2_5; - phi_f0_7 = phi_f0_6; - if (((phi_f2_5 * D_800EDCA0) <= phi_f0_6) && (phi_f0_6 < (phi_f2_5 * D_800EDCA8))) { - *temp_v0 = phi_f0_6 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk18 * temp_f12); - phi_f2_6 = arg0->unk214; - phi_f0_7 = *temp_v0; + if (((player->unk_214 * 0.6) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.7))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][6] * 3.2; } - phi_f2_7 = phi_f2_6; - phi_f0_8 = phi_f0_7; - if (((phi_f2_6 * D_800EDCB0) <= phi_f0_7) && (phi_f0_7 < (phi_f2_6 * D_800EDCB8))) { - *temp_v0 = phi_f0_7 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk1C * D_800EDCC0); - phi_f2_7 = arg0->unk214; - phi_f0_8 = *temp_v0; + if (((player->unk_214 * 0.7) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.8))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][7] * 2.8; } - temp_f12_2 = D_800EDCC8; - phi_f2_8 = phi_f2_7; - phi_f0_9 = phi_f0_8; - if (((phi_f2_7 * D_800EDCD0) <= phi_f0_8) && (phi_f0_8 < (phi_f2_7 * D_800EDCD8))) { - *temp_v0 = phi_f0_8 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk20 * temp_f12_2); - phi_f2_8 = arg0->unk214; - phi_f0_9 = *temp_v0; + if (((player->unk_214 * 0.8) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.9))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][8] * 2.8; } - if (((phi_f2_8 * D_800EDCE0) <= phi_f0_9) && (phi_f0_9 <= phi_f2_8)) { - *temp_v0 = phi_f0_9 + ((*(&gKartAccelerationTables + (arg0->unk254 * 4)))->unk24 * temp_f12_2); + if (((player->unk_214 * 0.9) <= D_80165280[arg1]) && (D_80165280[arg1] <= (player->unk_214 * 1.0))) { + D_80165280[arg1] += gKartAccelerationTables[player->characterId][9] * 2.8; } - arg0->unk44 = arg0->unk44 | 0x20; - if (*temp_v0 < 0.0f) { - *temp_v0 = 0.0f; + player->unk_044 |= 0x20; + if (D_80165280[arg1] < 0.0f) { + D_80165280[arg1] = 0.0f; } - arg0->unk98 = (*temp_v0 * *temp_v0) / 25.0f; + player->unk_098 = (D_80165280[arg1] * D_80165280[arg1]) / 25.0f; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_800332E8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 90e635335cb052c4324a3aa7478e4761db19dfaf void func_800337CC(Player *player, f32 arg1, s32 arg2) { - f32 *temp_v0; - f32 temp_f2; - f32 phi_f0; - - player->unk_044 &= 0xFFDF; - temp_v0 = &D_80165280[arg2]; - *temp_v0 -= arg1; - if (*temp_v0 <= 0.0f) { - *temp_v0 = 0.0f; + player->unk_044 &= ~0x20; + D_80165280[arg2] -= arg1; + if (D_80165280[arg2] <= 0.0f) { + D_80165280[arg2] = 0.0f; } - temp_f2 = player->unk_214; - phi_f0 = *temp_v0; - if (temp_f2 <= *temp_v0) { - *temp_v0 = temp_f2; - phi_f0 = *temp_v0; + if (player->unk_214 <= D_80165280[arg2]) { + D_80165280[arg2] = player->unk_214; } - player->unk_098 = (phi_f0 * phi_f0) / 25.0f; + player->unk_098 = (D_80165280[arg2] * D_80165280[arg2]) / 25.0f; } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_800337CC.s") -#endif void func_80033850(Player *arg0, f32 arg1) { arg0->unk_090 += arg1; @@ -5050,42 +4493,36 @@ void func_80033850(Player *arg0, f32 arg1) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80033884(void *arg0, s32 *arg1, s32 *arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { - s32 temp_at; +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_80033884(Player *player, s32 *arg1, s32 *arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { s32 temp_v0; - s32 temp_v0_3; + s32 temp_v0_2; + s32 temp_v1; u32 temp_t8; - u32 temp_v0_2; - u32 temp_v1; - s32 phi_v1; - s32 phi_v1_2; + u32 var_v1; temp_v0 = *arg1; if ((temp_v0 >= arg4) || (-arg4 >= temp_v0)) { - temp_v1 = arg0->unk200; + temp_v1 = player->unk_200; temp_t8 = temp_v1 - 0x800; - temp_at = temp_t8 < 0xF0000000; - temp_v0_2 = temp_v1; - arg0->unk200 = temp_t8; - phi_v1 = temp_t8; - if (temp_at == 0) { - arg0->unk200 = temp_v0_2; - phi_v1 = temp_v0_2; + player->unk_200 = (s32) temp_t8; + var_v1 = temp_t8; + if (temp_t8 >= 0xF0000000U) { + player->unk_200 = temp_v1; + var_v1 = (u32) temp_v1; } - phi_v1_2 = phi_v1; - if (arg5 >= phi_v1) { - arg0->unk200 = arg5; - phi_v1_2 = arg5; + if (arg5 >= (s32) var_v1) { + player->unk_200 = arg5; + var_v1 = (u32) arg5; } - temp_v0_3 = *arg2; - if (arg3 < temp_v0_3) { - *arg2 = temp_v0_3 - phi_v1_2; + temp_v0_2 = *arg2; + if (arg3 < temp_v0_2) { + *arg2 = temp_v0_2 - var_v1; } else { - *arg2 = temp_v0_3 + phi_v1_2; + *arg2 = temp_v0_2 + var_v1; } - if (arg0->unk90 < arg6) { - arg0->unk90 = -arg6; + if (player->unk_090 < (f32) arg6) { + player->unk_090 = (f32) -arg6; } } } @@ -5131,78 +4568,67 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80033940.s") #endif #ifdef MIPS_TO_C -UNUSED void func_800339C4(void *arg0, s32 *arg1, s32 arg2, s32 arg3, s32 arg4) { - s32 temp_at; - s32 temp_v1_2; +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_800339C4(Player *player, s32 *arg1, s32 arg2, s32 arg3, f32 arg4) { + s32 temp_v0; + s32 temp_v1; u32 temp_t6; - u32 temp_v0; - u32 temp_v1; u32 var_v0; - temp_v0 = arg0->unk200; + temp_v0 = player->unk_200; temp_t6 = temp_v0 - 0x800; - temp_at = temp_t6 < 0xF0000000U; - temp_v1 = temp_v0; - arg0->unk200 = temp_t6; + player->unk_200 = (s32) temp_t6; var_v0 = temp_t6; - if (temp_at == 0) { - arg0->unk200 = temp_v1; - var_v0 = temp_v1; + if (temp_t6 >= 0xF0000000U) { + player->unk_200 = temp_v0; + var_v0 = (u32) temp_v0; } if (arg3 >= (s32) var_v0) { - arg0->unk200 = (u32) arg3; + player->unk_200 = arg3; var_v0 = (u32) arg3; } - temp_v1_2 = *arg1; - if (arg2 < temp_v1_2) { - *arg1 = temp_v1_2 - var_v0; + temp_v1 = *arg1; + if (arg2 < temp_v1) { + *arg1 = temp_v1 - var_v0; } else { - *arg1 = temp_v1_2 + var_v0; + *arg1 = temp_v1 + var_v0; } - func_80033850(arg4); + func_80033850(player, arg4); } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_800339C4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80033850(s32); // extern - -void func_80033A40(void *arg0, s32 *arg1, s32 *arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { - s32 temp_at; +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_80033A40(Player *player, s32 *arg1, s32 *arg2, s32 arg3, s32 arg4, s32 arg5, f32 arg6) { s32 temp_v0; - s32 temp_v1_2; + s32 temp_v0_2; + s32 temp_v1; u32 temp_t8; - u32 temp_v0_2; - u32 temp_v1; - s32 phi_v0; - s32 phi_v0_2; + u32 var_v0; temp_v0 = *arg1; if ((temp_v0 >= arg4) || (-arg4 >= temp_v0)) { - temp_v0_2 = arg0->unk200; + temp_v0_2 = player->unk_200; temp_t8 = temp_v0_2 - 0x800; - temp_at = temp_t8 < 0xF0000000; - temp_v1 = temp_v0_2; - arg0->unk200 = temp_t8; - phi_v0 = temp_t8; - if (temp_at == 0) { - arg0->unk200 = temp_v1; - phi_v0 = temp_v1; + player->unk_200 = (s32) temp_t8; + var_v0 = temp_t8; + if (temp_t8 >= 0xF0000000U) { + player->unk_200 = temp_v0_2; + var_v0 = (u32) temp_v0_2; } - phi_v0_2 = phi_v0; - if (arg5 >= phi_v0) { - arg0->unk200 = arg5; - phi_v0_2 = arg5; + if (arg5 >= (s32) var_v0) { + player->unk_200 = arg5; + var_v0 = (u32) arg5; } - temp_v1_2 = *arg2; - if (arg3 < temp_v1_2) { - *arg2 = temp_v1_2 - phi_v0_2; + temp_v1 = *arg2; + if (arg3 < temp_v1) { + *arg2 = temp_v1 - var_v0; } else { - *arg2 = temp_v1_2 + phi_v0_2; + *arg2 = temp_v1 + var_v0; } - func_80033850(arg6); + func_80033850(player, arg6); } } #else @@ -5210,12 +4636,11 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80033A40.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 792017ad9d422c2467bd42686f383a5c41f41c75 -void func_8002A8A4(f32, f32, Player *, s8); /* extern */ -void func_8002BD58(Player *, s32); /* extern */ -void func_80033884(Player *, s32 *, s32 *, s32, s32, s32, s32); /* extern */ -void func_80033A40(Player *, s32 *, s32 *, s32, s32, s32, f32); /* extern */ -void func_80036CB4(Player *); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_8002A8A4(f32, f32, Player *, s8); /* extern */ +? func_80033884(Player *, s32 *, s32 *, s32, s32, s32, s32); /* extern */ +? func_80033A40(Player *, s32 *, s32 *, s32, s32, s32, f32); /* extern */ +? func_80036CB4(Player *); /* extern */ s32 func_80038534(struct Controller *); /* extern */ static s32 D_800E3DF8[0x9C] = { 0, @@ -5374,9 +4799,9 @@ static s32 D_800E3DF8[0x9C] = { 0x3F4CCCCD, 0x3F4CCCCD, 0x3F4CCCCD, -}; /* const */ +}; -void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { +void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { s32 sp2E4; s32 sp2E0; s32 sp2D0; @@ -5389,19 +4814,26 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { s32 sp40; s32 sp3C; s32 sp38; - ? *temp_t6; + ? *var_t6; f32 temp_f0; f32 temp_f0_2; f32 temp_f0_3; f32 temp_f0_4; - f32 temp_f0_5; - f32 temp_f0_6; - f32 temp_f0_7; + f32 var_f0; + f32 var_f0_2; + f32 var_f0_3; + f32 var_f12; + f32 var_f2; + f32 var_f2_2; + f32 var_f2_3; s16 temp_v1_3; s16 temp_v1_6; - s32 *temp_t7; + s16 var_s1_2; + s16 var_s1_3; s32 *temp_v0; s32 *temp_v0_2; + s32 *var_t7; + s32 temp_at; s32 temp_f6; s32 temp_f8; s32 temp_lo; @@ -5427,7 +4859,7 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { s32 temp_t4; s32 temp_t5; s32 temp_t5_2; - s32 temp_t7_2; + s32 temp_t7; s32 temp_t9; s32 temp_v0_10; s32 temp_v0_3; @@ -5438,73 +4870,52 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { s32 temp_v1_5; s32 temp_v1_7; s32 temp_v1_8; + s32 var_a0; + s32 var_s1; + s32 var_t0; + s32 var_t1; + s32 var_t4; + s32 var_v1; u16 temp_v0_6; u16 temp_v1_9; u8 temp_v0_4; u8 temp_v0_5; u8 temp_v0_8; u8 temp_v0_9; - s32 *phi_t7; - ? *phi_t6; - s32 phi_t1; - s32 phi_a0; - f32 phi_f2; - s32 phi_s1; - s32 phi_t0; - s32 phi_v1; - f32 phi_f2_2; - f32 phi_f2_3; - f32 phi_f12; - f32 phi_f0; - f32 phi_f0_2; - s16 phi_s1_2; - f32 phi_f0_3; - f32 phi_f0_4; - s16 phi_s1_3; - s16 phi_t4; - f32 phi_f2_4; - s32 phi_t0_2; - s32 phi_t0_3; - s32 phi_v1_2; - s32 phi_v1_3; - f32 phi_f0_5; - f32 phi_f2_5; - f32 phi_f12_2; + var_t7 = D_800E3DF8; + var_t6 = &sp44; sp2C0 = 0.0f; - phi_t7 = D_800E3DF8; - phi_t6 = &sp44; do { - temp_t7 = phi_t7 + 0xC; - temp_t6 = phi_t6 + 0xC; - temp_t6->unk-C = (s32) *phi_t7; - temp_t6->unk-8 = (s32) temp_t7->unk-8; - temp_t6->unk-4 = (s32) temp_t7->unk-4; - phi_t7 = temp_t7; - phi_t6 = temp_t6; - } while (temp_t7 != (D_800E3DF8 + 0x270)); + temp_at = *var_t7; + var_t7 += 0xC; + var_t6 += 0xC; + var_t6->unk-C = temp_at; + var_t6->unk-8 = (s32) var_t7->unk-8; + var_t6->unk-4 = (s32) var_t7->unk-4; + } while (var_t7 != (D_800E3DF8 + 0x270)); temp_v1 = player->unk_0BC; - if ((((temp_v1 & 2) != 2) && (((temp_lo = (s32) player->unk_0C0 / 182, ((temp_lo < 7) != 0)) && (temp_lo >= -6)) || ((arg1->button & 0x10) != 0x10))) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) || ((temp_v1 & 0x8000) == 0x8000)) { + if ((((temp_v1 & 2) != 2) && (((temp_lo = (s16) player->unk_0C0 / 182, ((temp_lo < 7) != 0)) && (temp_lo >= -6)) || ((controller->button & 0x10) != 0x10))) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) || ((temp_v1 & 0x8000) == 0x8000)) { sp2BC = 0.0f; func_80036CB4(player); } - temp_lo_2 = (s32) player->unk_0C0 / 182; + temp_lo_2 = (s16) player->unk_0C0 / 182; if (temp_lo_2 < -5) { player->unk_044 |= 4; player->unk_044 &= 0xFFFD; temp_v0 = &D_801652C0[arg2]; + var_s1 = arg2 * 4; *temp_v0 += 1; - phi_s1 = arg2 * 4; } else if (temp_lo_2 >= 6) { player->unk_044 |= 2; player->unk_044 &= 0xFFFB; temp_v0_2 = &D_801652C0[arg2]; + var_s1 = arg2 * 4; *temp_v0_2 += 1; - phi_s1 = arg2 * 4; } else { player->unk_044 &= 0xFFF9; D_801652C0[arg2] = 0; - phi_s1 = arg2 * 4; + var_s1 = arg2 * 4; } temp_v1_2 = player->unk_0BC; if (((temp_v1_2 & 2) == 2) || ((temp_v1_2 & 0x10) == 0x10)) { @@ -5512,212 +4923,207 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { } sp2BC = 0.0f; sp2E4 = player->unk_07C; - temp_v0_3 = func_80038534(arg1); + temp_v0_3 = func_80038534(controller); temp_v1_3 = player->unk_044; - phi_t1 = temp_v0_3; - phi_f2_4 = 0.0f; + var_f2 = 0.0f; + var_t1 = temp_v0_3; if (((temp_v1_3 & 1) == 1) || ((temp_v1_3 & 8) == 8)) { - phi_t1 = -temp_v0_3; + var_t1 = -temp_v0_3; } - temp_t3 = (phi_t1 << 0x10) & 0xFFFF0000; + temp_t3 = (var_t1 << 0x10) & 0xFFFF0000; player->unk_07C = temp_t3; temp_t5 = sp2E4 - temp_t3; sp2D0 = temp_t5; temp_t9 = temp_t5 >> 0x10; sp2D0 = temp_t9; player->unk_0FA = (s16) temp_t9; - if (((sp2D0 >= 0x5A) || (sp2D0 < -0x59)) && ((player->unk_044 & 0x4000) == 0)) { + if (((sp2D0 >= 0x5A) || (sp2D0 < -0x59)) && !(player->unk_044 & 0x4000)) { temp_v1_4 = player->unk_0BC; - if (((temp_v1_4 & 0x10) == 0) && (gCCSelection == CC_150) && (gModeSelection != BATTLE) && ((temp_v1_4 & 8) == 0) && (((player->unk_094 / 18.0f) * 216.0f) >= 40.0f) && (player->unk_204 == 0)) { + if (!(temp_v1_4 & 0x10) && (gCCSelection == 2) && (gModeSelection != 3) && !(temp_v1_4 & 8) && (((player->unk_094 / 18.0f) * 216.0f) >= 40.0f) && (player->unk_204 == 0)) { player->statusEffects |= 0x80; } } temp_v0_4 = player->boundingBoxCorners[3].surfaceType; temp_v1_5 = player->unk_0BC; if ((s32) temp_v0_4 < 0xF) { - phi_f2_4 = 0.0f + D_800E3610[player->characterId][temp_v0_4]; + var_f2 = 0.0f + D_800E3610[player->characterId][temp_v0_4]; } temp_v0_5 = player->boundingBoxCorners[2].surfaceType; - phi_f2 = phi_f2_4; if ((s32) temp_v0_5 < 0xF) { - phi_f2 = phi_f2_4 + D_800E3610[player->characterId][temp_v0_5]; + var_f2 += D_800E3610[player->characterId][temp_v0_5]; } if ((temp_v1_5 & 0x20) == 0x20) { - phi_t0_2 = 0xA; - phi_v1_2 = 0xA; + var_v1 = 0x0000000A; + var_t0 = 0x0000000A; } else { - phi_a0 = 0; - phi_t0_2 = 8; + var_a0 = 0; + var_t0 = 8; if (((temp_v1_5 & 0x10) == 0x10) && ((temp_v1_5 & 2) != 2)) { - phi_a0 = 3; + var_a0 = 3; } - phi_v1_2 = 8; + var_v1 = 8; if (((player->unk_094 / 18.0f) * 216.0f) >= 15.0f) { temp_v1_6 = player->unk_044; if ((temp_v1_6 & 2) == 2) { if ((sp2D0 < 0x24) && (sp2D0 >= 0)) { - temp_f8 = (s32) ((gKartTable800E3650[player->characterId] + 1.0f) * ((f32) (phi_a0 + 0xF) * (1.0f + phi_f2))); + temp_f8 = (s32) ((gKartTable800E3650[player->characterId] + 1.0f) * ((f32) (var_a0 + 0xF) * (1.0f + var_f2))); sp2C8 = temp_f8; sp2CC = temp_f8; } else { - temp_f0 = 1.0f + phi_f2; - sp2C8 = (s32) ((f32) (phi_a0 + 5) * temp_f0); - sp2CC = (s32) ((f32) (phi_a0 + 9) * temp_f0); + temp_f0 = 1.0f + var_f2; + sp2C8 = (s32) ((f32) (var_a0 + 5) * temp_f0); + sp2CC = (s32) ((f32) (var_a0 + 9) * temp_f0); } } else if ((temp_v1_6 & 4) == 4) { if ((sp2D0 >= -0x23) && (sp2D0 <= 0)) { - temp_f6 = (s32) ((gKartTable800E3650[player->characterId] + 1.0f) * ((f32) (phi_a0 + 0xF) * (1.0f + phi_f2))); + temp_f6 = (s32) ((gKartTable800E3650[player->characterId] + 1.0f) * ((f32) (var_a0 + 0xF) * (1.0f + var_f2))); sp2C8 = temp_f6; sp2CC = temp_f6; } else { - temp_f0_2 = 1.0f + phi_f2; - sp2C8 = (s32) ((f32) (phi_a0 + 5) * temp_f0_2); - sp2CC = (s32) ((f32) (phi_a0 + 9) * temp_f0_2); + temp_f0_2 = 1.0f + var_f2; + sp2C8 = (s32) ((f32) (var_a0 + 5) * temp_f0_2); + sp2CC = (s32) ((f32) (var_a0 + 9) * temp_f0_2); } } else { - temp_f0_3 = 1.0f + phi_f2; - sp2C8 = (s32) ((f32) (phi_a0 + 3) * temp_f0_3); - sp2CC = (s32) ((f32) (phi_a0 + 6) * temp_f0_3); + temp_f0_3 = 1.0f + var_f2; + sp2C8 = (s32) ((f32) (var_a0 + 3) * temp_f0_3); + sp2CC = (s32) ((f32) (var_a0 + 6) * temp_f0_3); } - phi_t0_2 = sp2CC; - phi_v1_2 = sp2C8; + var_t0 = sp2CC; + var_v1 = sp2C8; } else { sp2C8 = 8; sp2CC = 8; } } temp_v0_6 = player->unk_0DE; - phi_t0_3 = phi_t0_2; - phi_v1_3 = phi_v1_2; if ((temp_v0_6 & 1) == 1) { - phi_t0 = (s32) ((f64) phi_t0_2 * 1.5); - phi_v1 = (s32) ((f64) phi_v1_2 * 1.5); + var_v1 = (s32) ((f64) var_v1 * 1.5); + var_t0 = (s32) ((f64) var_t0 * 1.5); } else { if ((temp_v0_6 & 2) == 2) { - phi_t0_3 = (s32) ((f64) phi_t0_2 * 1.2); - phi_v1_3 = (s32) ((f64) phi_v1_2 * 1.2); + var_v1 = (s32) ((f64) var_v1 * 1.2); + var_t0 = (s32) ((f64) var_t0 * 1.2); } - temp_f0_4 = *(D_801652A0 + phi_s1); - phi_t0 = phi_t0_3; - phi_v1 = phi_v1_3; + temp_f0_4 = *(D_801652A0 + var_s1); if (((f64) (temp_f0_4 - player->boundingBoxCorners[2].cornerGroundY) >= 3.5) || ((f64) (temp_f0_4 - player->boundingBoxCorners[3].cornerGroundY) >= 3.5)) { - phi_t0 = (s32) ((f64) phi_t0_3 * 1.05); - phi_v1 = (s32) ((f64) phi_v1_3 * 1.05); + var_v1 = (s32) ((f64) var_v1 * 1.05); + var_t0 = (s32) ((f64) var_t0 * 1.05); } } - sp2E0 = phi_t1; - sp2CC = phi_t0; - sp2C8 = phi_v1; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x5A, 0x78000 / phi_v1, 0x1C2); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x59, 0x76000 / sp2C8, 0x1B8); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x58, 0x74000 / sp2C8, 0x1AE); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x57, 0x72000 / sp2C8, 0x1A4); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x56, 0x70000 / sp2C8, 0x19A); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x55, 0x58000 / sp2C8, 0x190); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x54, 0x56000 / sp2C8, 0x18B); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x53, 0x50000 / sp2C8, 0x186); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x52, 0x4F000 / sp2C8, 0x186); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x51, 0x4E000 / sp2C8, 0x17C); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x50, 0x4D000 / sp2C8, 0x172); + sp2E0 = var_t1; + sp2CC = var_t0; + sp2C8 = var_v1; + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000005A, 0x78000 / var_v1, 0x000001C2); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000059, 0x76000 / sp2C8, 0x000001B8); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000058, 0x74000 / sp2C8, 0x000001AE); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000057, 0x72000 / sp2C8, 0x000001A4); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000056, 0x70000 / sp2C8, 0x0000019A); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000055, 0x58000 / sp2C8, 0x00000190); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000054, 0x56000 / sp2C8, 0x0000018B); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000053, 0x50000 / sp2C8, 0x00000186); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000052, 0x4F000 / sp2C8, 0x00000186); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000051, 0x4E000 / sp2C8, 0x0000017C); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000050, 0x4D000 / sp2C8, 0x00000172); temp_lo_3 = 0x4C000 / sp2C8; sp40 = temp_lo_3; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4F, temp_lo_3, 0x168); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4E, sp40, 0x168); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4D, 0x4B000 / sp2C8, 0x15E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4C, 0x4A000 / sp2C8, 0x154); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004F, temp_lo_3, 0x00000168); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004E, sp40, 0x00000168); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004D, 0x4B000 / sp2C8, 0x0000015E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004C, 0x4A000 / sp2C8, 0x00000154); temp_lo_4 = 0x49000 / sp2C8; sp40 = temp_lo_4; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4B, temp_lo_4, 0x14A); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x4A, sp40, 0x14A); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x49, sp40, 0x14A); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x48, 0x48000 / sp2C8, 0x140); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004B, temp_lo_4, 0x0000014A); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000004A, sp40, 0x0000014A); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000049, sp40, 0x0000014A); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000048, 0x48000 / sp2C8, 0x00000140); temp_lo_5 = 0x47000 / sp2C8; sp40 = temp_lo_5; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x47, temp_lo_5, 0x13B); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x46, sp40, 0x13B); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000047, temp_lo_5, 0x0000013B); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000046, sp40, 0x0000013B); temp_lo_6 = 0x46000 / sp2C8; sp40 = temp_lo_6; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x45, temp_lo_6, 0x131); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x44, sp40, 0x131); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000045, temp_lo_6, 0x00000131); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000044, sp40, 0x00000131); temp_lo_7 = 0x45000 / sp2C8; sp3C = temp_lo_7; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x43, temp_lo_7, 0x118); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x42, sp40, 0x10E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x41, sp3C, 0x10E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x40, 0x44000 / sp2C8, 0x104); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000043, temp_lo_7, 0x00000118); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000042, sp40, 0x0000010E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000041, sp3C, 0x0000010E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000040, 0x44000 / sp2C8, 0x00000104); temp_lo_8 = 0x43000 / sp2C8; sp40 = temp_lo_8; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3F, temp_lo_8, 0xFA); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3E, sp40, 0xFA); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3D, sp40, 0xFA); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3C, 0x3D000 / sp2C8, 0xF5); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3B, 0x3C000 / sp2C8, 0xF5); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x3A, 0x3B000 / sp2C8, 0xF5); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x39, 0x3A000 / sp2C8, 0xF5); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003F, temp_lo_8, 0x000000FA); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003E, sp40, 0x000000FA); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003D, sp40, 0x000000FA); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003C, 0x3D000 / sp2C8, 0x000000F5); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003B, 0x3C000 / sp2C8, 0x000000F5); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000003A, 0x3B000 / sp2C8, 0x000000F5); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000039, 0x3A000 / sp2C8, 0x000000F5); temp_lo_9 = 0x38000 / sp2C8; sp40 = temp_lo_9; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x38, temp_lo_9, 0xF5); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x37, sp40, 0xE6); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x36, sp40, 0xE6); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x35, sp40, 0xE6); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x34, sp40, 0xE6); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x33, sp40, 0xE6); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000038, temp_lo_9, 0x000000F5); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000037, sp40, 0x000000E6); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000036, sp40, 0x000000E6); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000035, sp40, 0x000000E6); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000034, sp40, 0x000000E6); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000033, sp40, 0x000000E6); temp_lo_10 = 0x32000 / sp2C8; sp40 = temp_lo_10; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x32, temp_lo_10, 0xDC); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x31, sp40, 0xDC); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x30, sp40, 0xDC); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2F, sp40, 0xDC); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2E, sp40, 0xDC); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2D, 0x30000 / sp2C8, 0x6E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000032, temp_lo_10, 0x000000DC); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000031, sp40, 0x000000DC); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000030, sp40, 0x000000DC); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002F, sp40, 0x000000DC); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002E, sp40, 0x000000DC); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002D, 0x30000 / sp2C8, 0x0000006E); temp_lo_11 = 0x2E000 / sp2C8; sp40 = temp_lo_11; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2C, temp_lo_11, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2B, sp40, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x2A, sp40, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x29, sp40, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x28, sp40, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x27, 0x2C000 / sp2C8, 0x6E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002C, temp_lo_11, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002B, sp40, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000002A, sp40, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000029, sp40, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000028, sp40, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000027, 0x2C000 / sp2C8, 0x0000006E); temp_lo_12 = 0x28000 / sp2C8; sp40 = temp_lo_12; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x26, temp_lo_12, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x25, sp40, 0x6E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000026, temp_lo_12, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000025, sp40, 0x0000006E); temp_lo_13 = 0x24000 / sp2C8; sp40 = temp_lo_13; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x24, temp_lo_13, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x23, sp40, 0x6E); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x22, 0x22000 / sp2C8, 0x6E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000024, temp_lo_13, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000023, sp40, 0x0000006E); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000022, 0x22000 / sp2C8, 0x0000006E); temp_lo_14 = 0x20000 / sp2C8; sp40 = temp_lo_14; - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x20, temp_lo_14, 0x64); - func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x1F, sp40, 0x64); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x1E, 0x1F000 / sp2CC, 0.9f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x1D, 0x1E000 / sp2CC, 0.9f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x1C, 0x1D000 / sp2CC, 0.9f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x1B, 0x1C000 / sp2CC, 0.9f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x1A, 0x1B000 / sp2CC, 0.9f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x19, 0x1A000 / sp2CC, 1.0f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x18, 0x19000 / sp2CC, 1.0f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x17, 0x18000 / sp2CC, 1.0f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x16, 0x17000 / sp2CC, 1.0f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x15, 0x16000 / sp2CC, 1.0f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x14, 0x15000 / sp2CC, 1.05f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x13, 0x14000 / sp2CC, 1.05f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x12, 0x13000 / sp2CC, 1.05f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x11, 0x12000 / sp2CC, 1.05f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x10, 0x11000 / sp2CC, 1.05f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xF, 0x10000 / sp2CC, 1.2f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xE, 0xF000 / sp2CC, 1.2f); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000020, temp_lo_14, 0x00000064); + func_80033884(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001F, sp40, 0x00000064); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001E, 0x1F000 / sp2CC, 0.9f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001D, 0x1E000 / sp2CC, 0.9f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001C, 0x1D000 / sp2CC, 0.9f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001B, 0x1C000 / sp2CC, 0.9f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000001A, 0x1B000 / sp2CC, 0.9f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000019, 0x1A000 / sp2CC, 1.0f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000018, 0x19000 / sp2CC, 1.0f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000017, 0x18000 / sp2CC, 1.0f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000016, 0x17000 / sp2CC, 1.0f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000015, 0x16000 / sp2CC, 1.0f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000014, 0x15000 / sp2CC, 1.05f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000013, 0x14000 / sp2CC, 1.05f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000012, 0x13000 / sp2CC, 1.05f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000011, 0x12000 / sp2CC, 1.05f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x00000010, 0x11000 / sp2CC, 1.05f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000F, 0x10000 / sp2CC, 1.2f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000E, 0xF000 / sp2CC, 1.2f); temp_lo_15 = 0xE000 / sp2CC; sp40 = temp_lo_15; - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xD, temp_lo_15, 1.2f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000D, temp_lo_15, 1.2f); temp_lo_16 = 0xD000 / sp2CC; sp3C = temp_lo_16; - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xC, temp_lo_16, 1.2f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000C, temp_lo_16, 1.2f); temp_lo_17 = 0xC000 / sp2CC; sp38 = temp_lo_17; - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xB, temp_lo_17, 1.2f); - func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0xA, sp40, 1.6f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000B, temp_lo_17, 1.2f); + func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0x0000000A, sp40, 1.6f); func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 9, sp3C, 1.6f); func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 8, sp38, 1.6f); func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 7, 0xB000 / sp2CC, 1.6f); @@ -5731,84 +5137,79 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { temp_v1_7 = player->unk_0BC; temp_v0_7 = temp_v1_7 & 0x10; if (temp_v0_7 == 0x10) { - phi_f2_2 = (f32) ((s32) (sp2E4 >> 0x10) / 8); - phi_f0_5 = (player->unk_094 / 18.0f) * 216.0f; + var_f2_2 = (f32) ((s32) (sp2E4 >> 0x10) / 8); + var_f0 = (player->unk_094 / 18.0f) * 216.0f; } else { - temp_f0_5 = (player->unk_094 / 18.0f) * 216.0f; - phi_f0_5 = temp_f0_5; - if (temp_f0_5 <= 25.0f) { - phi_f2_2 = (f32) ((s32) (sp2E4 >> 0x10) / 12); + var_f0 = (player->unk_094 / 18.0f) * 216.0f; + if (var_f0 <= 25.0f) { + var_f2_2 = (f32) ((s32) (sp2E4 >> 0x10) / 12); } else { - phi_f2_2 = (f32) (sp2E4 >> 0x10) / (8.0f + (player->unk_09C / 50.0f)); + var_f2_2 = (f32) (sp2E4 >> 0x10) / (8.0f + (player->unk_09C / 50.0f)); } } - phi_f2_5 = phi_f2_2; - if (phi_f2_2 < 0.0f) { - phi_f2_5 = -phi_f2_2; + if (var_f2_2 < 0.0f) { + var_f2_2 = -var_f2_2; } if ((temp_v1_7 & 0x20) == 0x20) { - phi_f2_3 = (sp + ((s16) (s32) phi_f0_5 * 4))->unk6C * 1.5f * phi_f2_5; + var_f2_3 = (sp + ((s16) (s32) var_f0 * 4))->unk6C * 1.5f * var_f2_2; } else if (temp_v0_7 == 0x10) { - phi_f2_3 = (sp + ((s16) (s32) phi_f0_5 * 4))->unk44 * phi_f2_5; + var_f2_3 = (sp + ((s16) (s32) var_f0 * 4))->unk44 * var_f2_2; } else { - phi_f2_3 = (sp + ((s16) (s32) phi_f0_5 * 4))->unk44 * 1.5f * phi_f2_5; + var_f2_3 = (sp + ((s16) (s32) var_f0 * 4))->unk44 * 1.5f * var_f2_2; } player->unk_07C = sp2E4; if (player->unk_10C != 0) { - sp2C4 = phi_f2_3; - func_8002BD58(player, 0x10); + sp2C4 = var_f2_3; + func_8002BD58(player); } temp_v0_8 = player->boundingBoxCorners[3].surfaceType; player->unk_0BC &= 0xDFFFFFFF; if ((s32) temp_v0_8 >= 0xF) { - phi_f12_2 = sp2C0; + var_f12 = sp2C0; } else { - phi_f12_2 = 0.0f + D_800E3410[player->characterId][temp_v0_8]; + var_f12 = 0.0f + D_800E3410[player->characterId][temp_v0_8]; } temp_v0_9 = player->boundingBoxCorners[2].surfaceType; - phi_f12 = phi_f12_2; if ((s32) temp_v0_9 < 0xF) { - phi_f12 = phi_f12_2 + D_800E3410[player->characterId][temp_v0_9]; + var_f12 += D_800E3410[player->characterId][temp_v0_9]; } temp_v1_8 = player->unk_0BC; temp_v0_10 = temp_v1_8 & 2; if ((temp_v0_10 != 2) && ((temp_v1_8 & 0x10) != 0x10)) { if ((temp_v1_8 & 0x20) == 0x20) { - player->unk_078 = (s16) (s32) ((f32) (((s32) player->unk_07C >> 0x10) * 5) * phi_f2_3); + player->unk_078 = (s16) (s32) ((f32) (((s32) player->unk_07C >> 0x10) * 5) * var_f2_3); } else { if ((temp_v1_8 & 1) != 1) { temp_v1_9 = player->characterId; temp_t3_2 = (s32) player->unk_07C >> 0x10; if ((temp_t3_2 >= 0x2D) || (temp_t3_2 < -0x2C)) { - player->unk_078 = (s16) (s32) (((f64) gKartHandlingTable[temp_v1_9] + 0.15) * (f64) ((f32) temp_t3_2 * (phi_f2_3 + (phi_f2_3 * phi_f12)))); + player->unk_078 = (s16) (s32) (((f64) gKartHandlingTable[temp_v1_9] + 0.15) * (f64) ((f32) temp_t3_2 * (var_f2_3 + (var_f2_3 * var_f12)))); } else { - player->unk_078 = (s16) (s32) (gKartHandlingTable[temp_v1_9] * ((f32) temp_t3_2 * (phi_f2_3 + (phi_f2_3 * phi_f12)))); + player->unk_078 = (s16) (s32) (gKartHandlingTable[temp_v1_9] * ((f32) temp_t3_2 * (var_f2_3 + (var_f2_3 * var_f12)))); } } else { - temp_f0_6 = (player->unk_094 / 18.0f) * 216.0f; - phi_f0 = temp_f0_6; - if ((temp_f0_6 >= 0.0f) && (temp_f0_6 < 8.0f)) { - player->unk_078 = (s16) (s32) ((f32) ((s32) player->unk_07C >> 0x10) * (phi_f2_3 + (phi_f2_3 * phi_f12))); - phi_f0 = (player->unk_094 / 18.0f) * 216.0f; + var_f0_2 = (player->unk_094 / 18.0f) * 216.0f; + if ((var_f0_2 >= 0.0f) && (var_f0_2 < 8.0f)) { + player->unk_078 = (s16) (s32) ((f32) ((s32) player->unk_07C >> 0x10) * (var_f2_3 + (var_f2_3 * var_f12))); + var_f0_2 = (player->unk_094 / 18.0f) * 216.0f; } - phi_f0_2 = phi_f0; - if ((phi_f0 >= 8.0f) && (phi_f0 < 65.0f)) { - player->unk_078 = (s16) (s32) ((f64) ((s32) player->unk_07C >> 0x10) * ((f64) phi_f2_3 + 1.5 + (f64) (phi_f2_3 * phi_f12))); - phi_f0_2 = (player->unk_094 / 18.0f) * 216.0f; + if ((var_f0_2 >= 8.0f) && (var_f0_2 < 65.0f)) { + player->unk_078 = (s16) (s32) ((f64) ((s32) player->unk_07C >> 0x10) * ((f64) var_f2_3 + 1.5 + (f64) (var_f2_3 * var_f12))); + var_f0_2 = (player->unk_094 / 18.0f) * 216.0f; } - if (phi_f0_2 >= 65.0f) { - player->unk_078 = (s16) (s32) ((f64) ((s32) player->unk_07C >> 0x10) * ((f64) phi_f2_3 + 1.6 + (f64) (phi_f2_3 * phi_f12))); + if (var_f0_2 >= 65.0f) { + player->unk_078 = (s16) (s32) ((f64) ((s32) player->unk_07C >> 0x10) * ((f64) var_f2_3 + 1.6 + (f64) (var_f2_3 * var_f12))); } } player->unk_228 = 0; - if ((s32) player->unk_22A < 2) { + if (player->unk_22A < 2) { player->unk_22A = 0; } } } else if (((temp_v1_8 & 8) != 8) && (temp_v0_10 != 2)) { - if (((s32) player->unk_0C0 / 182) > 0) { + if (((s16) player->unk_0C0 / 182) > 0) { temp_t5_2 = (s32) player->unk_07C >> 0x10; - phi_s1_2 = (s16) (((s32) ((temp_t5_2 * 0xD) + 0x2B1) / 106) + 0x28); + var_s1_2 = ((s32) ((temp_t5_2 * 0xD) + 0x2B1) / 106) + 0x28; if (temp_t5_2 < -0x27) { temp_t2 = temp_v1_8 | 0x20000000; player->unk_0BC = temp_t2; @@ -5816,57 +5217,55 @@ void func_80033AE0(Player *player, struct Controller *arg1, s8 arg2) { player->unk_0BC = temp_t2 | 0x20000000; } } - sp2C4 = phi_f2_3; - sp2C0 = phi_f12; - func_8002A8A4(phi_f12, 0.0f, player, arg2); + sp2C4 = var_f2_3; + sp2C0 = var_f12; + func_8002A8A4(var_f12, 0.0f, player, arg2); } else { - temp_t7_2 = (s32) player->unk_07C >> 0x10; - phi_s1_2 = (s16) (((s32) ((temp_t7_2 * 0xD) + 0x2B1) / 106) - 0x35); - if (temp_t7_2 >= 0x28) { + temp_t7 = (s32) player->unk_07C >> 0x10; + var_s1_2 = ((s32) ((temp_t7 * 0xD) + 0x2B1) / 106) - 0x35; + if (temp_t7 >= 0x28) { temp_t4 = temp_v1_8 | 0x20000000; player->unk_0BC = temp_t4; - if (temp_t7_2 < -0x31) { + if (temp_t7 < -0x31) { player->unk_0BC = temp_t4 | 0x20000000; } } - sp2C4 = phi_f2_3; - sp2C0 = phi_f12; - func_8002A8A4(phi_f12, 0.0f, player, arg2); + sp2C4 = var_f2_3; + sp2C0 = var_f12; + func_8002A8A4(var_f12, 0.0f, player, arg2); } - temp_f0_7 = (player->unk_094 / 18.0f) * 216.0f; - phi_f0_3 = temp_f0_7; - if ((temp_f0_7 >= 0.0f) && (temp_f0_7 < 8.0f)) { - player->unk_078 = (s16) (s32) ((f32) phi_s1_2 * (sp2C4 + 2.0f + (sp2C4 * sp2C0))); - phi_f0_3 = (player->unk_094 / 18.0f) * 216.0f; + var_f0_3 = (player->unk_094 / 18.0f) * 216.0f; + if ((var_f0_3 >= 0.0f) && (var_f0_3 < 8.0f)) { + player->unk_078 = (s16) (s32) ((f32) var_s1_2 * (sp2C4 + 2.0f + (sp2C4 * sp2C0))); + var_f0_3 = (player->unk_094 / 18.0f) * 216.0f; } - phi_f0_4 = phi_f0_3; - if ((phi_f0_3 >= 8.0f) && (phi_f0_3 < 65.0f)) { - player->unk_078 = (s16) (s32) ((f32) phi_s1_2 * (sp2C4 + 3.0f + (sp2C4 * sp2C0))); - phi_f0_4 = (player->unk_094 / 18.0f) * 216.0f; + if ((var_f0_3 >= 8.0f) && (var_f0_3 < 65.0f)) { + player->unk_078 = (s16) (s32) ((f32) var_s1_2 * (sp2C4 + 3.0f + (sp2C4 * sp2C0))); + var_f0_3 = (player->unk_094 / 18.0f) * 216.0f; } - if (phi_f0_4 >= 65.0f) { - player->unk_078 = (s16) (s32) ((f64) phi_s1_2 * ((f64) sp2C4 + 3.5 + (f64) (sp2C4 * sp2C0))); + if (var_f0_3 >= 65.0f) { + player->unk_078 = (s16) (s32) ((f64) var_s1_2 * ((f64) sp2C4 + 3.5 + (f64) (sp2C4 * sp2C0))); } if ((player->unk_0BC & 0x20000000) == 0x20000000) { player->unk_078 = (s16) (s32) ((f64) player->unk_078 * 0.9); } else { - phi_t4 = (s16) (s32) ((f64) player->unk_078 * 0.65); + var_t4 = (s32) ((f64) player->unk_078 * 0.65); goto block_125; } } else { - phi_s1_3 = (s16) ((s32) player->unk_07C >> 0x10); + var_s1_3 = (s16) ((s32) player->unk_07C >> 0x10); if (sp2E0 == 0) { - phi_s1_3 = 0; + var_s1_3 = 0; } if (((player->unk_094 / 18.0f) * 216.0f) <= 5.0f) { - player->unk_078 = (s16) (s32) ((f32) phi_s1_3 * (phi_f2_3 + 6.0f)); + player->unk_078 = (s16) (s32) ((f32) var_s1_3 * (var_f2_3 + 6.0f)); } else { - phi_t4 = (s16) (s32) ((f32) phi_s1_3 * (phi_f2_3 + 1.5f)); + var_t4 = (s32) ((f32) var_s1_3 * (var_f2_3 + 1.5f)); block_125: - player->unk_078 = phi_t4; + player->unk_078 = (s16) var_t4; } } - if (gModeSelection == BATTLE) { + if (gModeSelection == 3) { player->unk_078 = (s16) (s32) ((f64) player->unk_078 * 1.7); } } @@ -5875,113 +5274,266 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80033AE0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void move_s32_towards(f32, s32 *, s16, ?, void *); // extern -void func_80036CB4(f32, void *, s32); // extern -extern s32 D_800E4068; -extern ? D_800E4308; -extern f64 D_800EDD88; +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_80036CB4(f32, Player *, s32); /* extern */ +static s32 D_800E4068[0xA8] = { + 0, + 0x3DCCCCCD, + 0x3DCCCCCD, + 0x3E4CCCCD, + 0x3E99999A, + 0x3ECCCCCD, + 0x3F000000, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F19999A, + 0x3F000000, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3ECCCCCD, + 0x3F000000, + 0x3F000000, + 0x3F000000, + 0x3F000000, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F333333, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F4CCCCD, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, + 0x3F19999A, +}; +static ? D_800E4308; /* unable to generate initializer */ -void func_8003680C(void *arg0, s16 arg1) { +void func_8003680C(Player *player, s16 arg1) { s32 sp304; - ? sp44; ? sp24; - ? *temp_t1; + f32 *var_t1; + f32 var_f0; + f32 var_f0_2; s16 temp_v1_2; - s32 *temp_a0; - s32 *temp_t6; - s32 temp_t4; + s16 var_v0; + s16 var_v0_2; + s32 *var_t6; + s32 temp_at; s32 temp_t8; s32 temp_v0; s32 temp_v0_2; s32 temp_v0_3; s32 temp_v1; - void *temp_a3; - s32 *phi_t6; - ? *phi_t1; - f32 phi_f0; - f32 phi_f0_2; - s16 phi_v0; - s16 phi_v0_2; - f32 phi_f0_3; - temp_a3 = arg0; + var_t6 = D_800E4068; + var_t1 = &sp44[0]; sp304 = 0; - phi_t6 = &D_800E4068; - phi_t1 = &sp44; do { - temp_t6 = phi_t6 + 0xC; - temp_t1 = phi_t1 + 0xC; - temp_t1->unk-C = *phi_t6; - temp_t1->unk-8 = temp_t6->unk-8; - temp_t1->unk-4 = temp_t6->unk-4; - phi_t6 = temp_t6; - phi_t1 = temp_t1; - } while (temp_t6 != (&D_800E4068 + 0x2A0)); - sp24.unk0 = D_800E4308.unk0; - sp24.unk4 = D_800E4308.unk4; - sp24.unkC = D_800E4308.unkC; - sp24.unk8 = D_800E4308.unk8; - sp24.unk10 = D_800E4308.unk10; - sp24.unk14 = D_800E4308.unk14; - sp24.unk1C = D_800E4308.unk1C; - sp24.unk18 = D_800E4308.unk18; - temp_v0 = temp_a3->unkBC; - if (((temp_v0 & 0x80) == 0) && ((temp_v0 & 0x40) == 0) && ((temp_v0 & 0x400) == 0) && ((temp_v0 << 0xF) >= 0) && ((temp_v0 << 0xE) >= 0) && ((temp_v0 << 7) >= 0) && ((temp_v0 << 6) >= 0) && ((temp_v0 << 5) >= 0)) { + temp_at = *var_t6; + var_t6 += 0xC; + var_t1 += 0xC; + var_t1->unk-C = temp_at; + var_t1->unk-8 = (s32) var_t6->unk-8; + var_t1->unk-4 = (s32) var_t6->unk-4; + } while (var_t6 != (D_800E4068 + 0x2A0)); + sp24.unk0 = (s32) D_800E4308.unk0; + sp24.unk4 = (s32) D_800E4308.unk4; + sp24.unkC = (s32) D_800E4308.unkC; + sp24.unk8 = (s32) D_800E4308.unk8; + sp24.unk10 = (s32) D_800E4308.unk10; + sp24.unk14 = (s32) D_800E4308.unk14; + sp24.unk1C = (s32) D_800E4308.unk1C; + sp24.unk18 = (s32) D_800E4308.unk18; + temp_v0 = player->unk_0BC; + if (!(temp_v0 & 0x80) && !(temp_v0 & 0x40) && !(temp_v0 & 0x400) && !(temp_v0 & 0x10000) && !(temp_v0 & 0x20000) && !(temp_v0 & 0x01000000) && !(temp_v0 & 0x02000000) && !(temp_v0 & 0x04000000)) { temp_t8 = temp_v0 & 0xDFFFFFFF; - if (!(((temp_a3->unk94 / 18.0f) * 216.0f) >= 110.0f)) { - temp_a3->unkBC = temp_t8; - temp_a3->unk228 = 0; - if ((temp_t8 & 0x80) == 0) { - temp_a0 = &sp304; - if ((temp_t8 & 0x40) == 0) { - sp304 = temp_a3->unk7C >> 0x10; - arg0 = temp_a3; - move_s32_towards(216.0f, temp_a0, arg1, 0x3EB33333, temp_a3); - temp_t4 = sp304 << 0x10; - sp304 = temp_t4; - temp_v0_2 = arg0->unkBC; - temp_v1 = temp_v0_2 & 0x10; - if (temp_v1 == 0x10) { - phi_f0 = (temp_t4 >> 0x10) / 5; + if (!(((player->unk_094 / 18.0f) * 216.0f) >= 110.0f)) { + player->unk_0BC = temp_t8; + player->unk_228 = 0; + if (!(temp_t8 & 0x80) && !(temp_t8 & 0x40)) { + sp304 = (s32) player->unk_07C >> 0x10; + move_s32_towards(&sp304, (s32) arg1, 0.35f); + sp304 <<= 0x10; + temp_v0_2 = player->unk_0BC; + temp_v1 = temp_v0_2 & 0x10; + if (temp_v1 == 0x10) { + var_f0 = (f32) ((s16) sp304 / 5); + } else { + var_f0 = (f32) (sp304 >> 0x10) / (8.0f + (player->unk_09C / 50.0f)); + } + if (var_f0 < 0.0f) { + var_f0 = -var_f0; + } + if (temp_v1 == 0x10) { + var_f0_2 = (&sp44[0])[(s16) (s32) ((player->unk_094 / 18.0f) * 216.0f)] * var_f0; + } else { + var_f0_2 = (sp + (player->characterId * 4))->unk24 * (&sp44[0])[(s16) (s32) ((player->unk_094 / 18.0f) * 216.0f)] * var_f0; + } + player->unk_07C = sp304; + if (((temp_v0_2 & 2) != 2) && (temp_v1 != 0x10)) { + if ((temp_v0_2 & 1) != 1) { + player->unk_078 = (s16) (s32) ((f32) (sp304 >> 0x10) * var_f0_2); } else { - phi_f0 = (sp304 >> 0x10) / (8.0f + (arg0->unk9C / 50.0f)); + player->unk_078 = (s16) (s32) ((f64) ((s32) player->unk_07C >> 0x10) * ((f64) var_f0_2 + 1.5)); } - phi_f0_3 = phi_f0; - if (phi_f0 < 0.0f) { - phi_f0_3 = -phi_f0; - } - if (temp_v1 == 0x10) { - phi_f0_2 = *(&sp44 + (((arg0->unk94 / 18.0f) * 216.0f) * 4)) * phi_f0_3; + } else if ((temp_v0_2 & 8) != 8) { + if (((s16) player->unk_0C0 / 182) > 0) { + var_v0 = (s16) ((s32) player->unk_07C >> 0x10); } else { - phi_f0_2 = (sp + (arg0->unk254 * 4))->unk24 * *(&sp44 + (((arg0->unk94 / 18.0f) * 216.0f) * 4)) * phi_f0_3; + var_v0 = (s16) ((s32) player->unk_07C >> 0x10); } - arg0->unk7C = sp304; - if (((temp_v0_2 & 2) != 2) && (temp_v1 != 0x10)) { - if ((temp_v0_2 & 1) != 1) { - arg0->unk78 = (sp304 >> 0x10) * phi_f0_2; - } else { - arg0->unk78 = (arg0->unk7C >> 0x10) * (phi_f0_2 + 1.5); - } - } else if ((temp_v0_2 & 8) != 8) { - if ((arg0->unkC0 / 0xB6) > 0) { - phi_v0 = arg0->unk7C >> 0x10; - } else { - phi_v0 = arg0->unk7C >> 0x10; - } - arg0->unk78 = phi_v0 * (phi_f0_2 + 3.0); - arg0->unk78 = arg0->unk78 * D_800EDD88; - } else { - phi_v0_2 = arg0->unk7C >> 0x10; - if (arg1 == 0) { - phi_v0_2 = 0; - } - arg0->unk78 = phi_v0_2 * phi_f0_2; - } - temp_v0_3 = arg0->unkBC; - if ((((temp_v0_3 & 2) != 2) && (temp_v1_2 = arg0->unkC0, ((temp_v1_2 < 0x3D) != 0)) && (temp_v1_2 >= -0x3C)) || (((arg0->unk94 / 18.0f) * 216.0f) <= 20.0f) || ((temp_v0_3 & 0x8000) == 0x8000)) { - func_80036CB4(216.0f, arg0, 2); + player->unk_078 = (s16) (s32) ((f64) var_v0 * ((f64) var_f0_2 + 3.0)); + player->unk_078 = (s16) (s32) ((f64) player->unk_078 * 0.8); + } else { + var_v0_2 = (s16) ((s32) player->unk_07C >> 0x10); + if (arg1 == 0) { + var_v0_2 = 0; } + player->unk_078 = (s16) (s32) ((f32) var_v0_2 * var_f0_2); + } + temp_v0_3 = player->unk_0BC; + if ((((temp_v0_3 & 2) != 2) && (temp_v1_2 = player->unk_0C0, ((temp_v1_2 < 0x3D) != 0)) && (temp_v1_2 >= -0x3C)) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) || ((temp_v0_3 & 0x8000) == 0x8000)) { + func_80036CB4(216.0f, player, 2); } } } @@ -6000,37 +5552,29 @@ void func_80036C5C(Player *arg0) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80036CB4(void *arg0) { - s32 temp_lo; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v1; - s32 phi_v0; - s32 phi_v1; - s32 phi_v0_2; +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_80036CB4(Player *player) { + s32 var_v0; + s32 var_v0_2; + s32 var_v1; - temp_v0 = arg0->unkBC; - temp_v1 = temp_v0 & 0x10; - phi_v1 = temp_v1; - phi_v0_2 = temp_v0; - if ((temp_v1 == 0x10) && ((arg0->unk0 & 0x4000) == 0x4000)) { - temp_lo = arg0->unkC0 / 0xB6; - phi_v0 = temp_lo; - if (temp_lo > 0) { - arg0->unk7C = (((((arg0->unk7C >> 0x10) * 0xD) + 0x2B1) / 0x6A) + 0x28) << 0x10; - phi_v0 = arg0->unkC0 / 0xB6; + var_v0 = player->unk_0BC; + var_v1 = var_v0 & 0x10; + if ((var_v1 == 0x10) && ((player->unk_000 & 0x4000) == 0x4000)) { + var_v0_2 = (s16) player->unk_0C0 / 182; + if (var_v0_2 > 0) { + var_v0_2 = (s16) player->unk_0C0 / 182; + player->unk_07C = (((s32) ((((s32) player->unk_07C >> 0x10) * 0xD) + 0x2B1) / 106) + 0x28) << 0x10; } - if (phi_v0 < 0) { - arg0->unk7C = (((((arg0->unk7C >> 0x10) * 0xD) + 0x2B1) / 0x6A) - 0x35) << 0x10; + if (var_v0_2 < 0) { + player->unk_07C = (((s32) ((((s32) player->unk_07C >> 0x10) * 0xD) + 0x2B1) / 106) - 0x35) << 0x10; } - temp_v0_2 = arg0->unkBC & ~0x10; - arg0->unkBC = temp_v0_2; - phi_v1 = temp_v0_2 & 0x10; - phi_v0_2 = temp_v0_2; + var_v0 = player->unk_0BC & ~0x10; + player->unk_0BC = var_v0; + var_v1 = var_v0 & 0x10; } - if ((phi_v1 == 0x10) && ((arg0->unk0 & 0x4000) != 0x4000)) { - arg0->unkBC = phi_v0_2 & ~0x10; + if ((var_v1 == 0x10) && ((player->unk_000 & 0x4000) != 0x4000)) { + player->unk_0BC = var_v0 & ~0x10; } } #else @@ -6038,138 +5582,85 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80036CB4.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_802B63B8(f32, f32, void *, void *, void *); // extern -extern f64 D_800EDD90; -extern f64 D_800EDD98; -extern f64 D_800EDDA0; -extern f64 D_800EDDA8; -extern f64 D_800EDDB0; -extern f64 D_800EDDB8; -extern f64 D_800EDDC0; - -void func_80036DB4(void *arg0, void *arg1, void *arg2) { +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +void func_80036DB4(Player *player, f32 *arg1, f32 *arg2) { f32 sp20; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f12; - f32 temp_f12_2; - f32 temp_f12_3; - f32 temp_f14; - f32 temp_f14_2; - f32 temp_f14_3; - f32 temp_f14_4; - f32 temp_f14_5; - f32 temp_f2; - f32 temp_f2_2; - f32 temp_f2_3; - f32 temp_f2_4; - f32 temp_f2_5; - s16 temp_v0; + f32 var_f14; + f32 var_f18; + f32 var_f2; + f64 var_f10; + s16 var_v0; s32 temp_a0; s32 temp_t0; s32 temp_t6; - s32 phi_v0; - f32 phi_f18; - f32 phi_f12; - f32 phi_f14; - f32 phi_f0; - f32 phi_f2; - f64 phi_f10; - temp_t0 = arg0->unkBC; + temp_t0 = player->unk_0BC; if (((temp_t0 & 0x1000) == 0x1000) || ((temp_t0 & 0x20) == 0x20)) { arg1->unk0 = 0.0f; arg1->unk4 = 0.0f; arg1->unk8 = 0.0f; - func_802B63B8((bitwise f32) arg1, (bitwise f32) (arg0 + 0x174), arg0); + func_802B63B8(arg1, (f32 (*)[3]) player->unk_174[0]); } else { temp_a0 = temp_t0 & 0x10; if ((temp_a0 == 0x10) && ((temp_t0 & 2) != 2)) { - temp_f12 = arg0->unk94; - temp_f0 = arg0->unk208; - temp_f14 = -arg0->unk20C; - temp_f2 = -(temp_f12 / 18.0f) * 216.0f; - sp20 = arg0->unk84 * 3.0f; - phi_f12 = temp_f12; - phi_f14 = temp_f14; - phi_f18 = temp_f0 + (temp_f2 * 3.0f) + (temp_f14 * 10.0f); - phi_f0 = temp_f0; - phi_f2 = temp_f2; - } else if (((temp_t0 & 0x800) == 0) && ((arg0->unk44 & 0x4000) == 0)) { - temp_v0 = arg0->unkFA; - phi_v0 = temp_v0; - if (temp_v0 > 0) { - phi_v0 = temp_v0 * -1; + var_f14 = -player->unk_20C; + var_f2 = -(player->unk_094 / 18.0f) * 216.0f; + var_f18 = player->unk_208 + (var_f2 * 3.0f) + (var_f14 * 10.0f); + sp20 = player->unk_084 * 3.0f; + } else if (!(temp_t0 & 0x800) && !(player->unk_044 & 0x4000)) { + var_v0 = player->unk_0FA; + if (var_v0 > 0) { + var_v0 *= -1; } - temp_t6 = arg0->unk7C >> 0x10; + temp_t6 = (s32) player->unk_07C >> 0x10; if ((temp_t6 < 0x15) && (temp_t6 >= -0x14)) { - if (phi_v0 < 0x14) { - temp_f14_2 = -arg0->unk20C; - temp_f2_2 = -(arg0->unk94 / 18.0f) * 216.0f; - phi_f14 = temp_f14_2; - phi_f10 = (arg0->unk208 + (temp_f2_2 / 3.0f)) + (-arg0->unk9C * D_800EDD90) + (temp_f14_2 * 50.0f); - phi_f2 = temp_f2_2; + if (var_v0 < 0x14) { + var_f14 = -player->unk_20C; + var_f2 = -(player->unk_094 / 18.0f) * 216.0f; + var_f10 = (f64) (player->unk_208 + (var_f2 / 3.0f)) + ((f64) -player->unk_09C * 0.02) + (f64) (var_f14 * 50.0f); goto block_16; } - temp_f12_2 = arg0->unk94; - temp_f0_2 = arg0->unk208; - temp_f14_3 = -arg0->unk20C; - temp_f2_3 = -(temp_f12_2 / 18.0f) * 216.0f; - phi_f12 = temp_f12_2; - phi_f14 = temp_f14_3; - phi_f18 = (temp_f0_2 + (temp_f2_3 / 3.0f)) + ((temp_t6 * D_800EDD98) + (-arg0->unk9C * D_800EDDA0)) + (temp_f14_3 * 50.0f); - phi_f0 = temp_f0_2; - phi_f2 = temp_f2_3; + var_f14 = -player->unk_20C; + var_f2 = -(player->unk_094 / 18.0f) * 216.0f; + var_f18 = (f32) ((f64) (player->unk_208 + (var_f2 / 3.0f)) + (((f64) temp_t6 * 0.01) + ((f64) -player->unk_09C * 0.05)) + (f64) (var_f14 * 50.0f)); } else { - temp_f14_4 = -arg0->unk20C; - temp_f2_4 = -(arg0->unk94 / 18.0f) * 216.0f; - phi_f14 = temp_f14_4; - phi_f10 = (arg0->unk208 + (temp_f2_4 / 3.0f)) + ((temp_t6 * D_800EDDA8) + (-arg0->unk9C * D_800EDDB0)) + (temp_f14_4 * 50.0f); - phi_f2 = temp_f2_4; + var_f14 = -player->unk_20C; + var_f2 = -(player->unk_094 / 18.0f) * 216.0f; + var_f10 = (f64) (player->unk_208 + (var_f2 / 3.0f)) + (((f64) temp_t6 * 0.1) + ((f64) -player->unk_09C * 0.15)) + (f64) (var_f14 * 50.0f); block_16: - phi_f12 = arg0->unk94; - phi_f18 = phi_f10; - phi_f0 = arg0->unk208; + var_f18 = (f32) var_f10; } - sp20 = arg0->unk84; + sp20 = player->unk_084; } else { - temp_f12_3 = arg0->unk94; - temp_f0_3 = arg0->unk208; - temp_f14_5 = -arg0->unk20C; - temp_f2_5 = -(temp_f12_3 / 18.0f) * 216.0f; - sp20 = arg0->unk84; - phi_f12 = temp_f12_3; - phi_f14 = temp_f14_5; - phi_f18 = temp_f0_3 + (temp_f2_5 * 1.5) + (((arg0->unk7C >> 0x10) * D_800EDDB8) + (-arg0->unk9C * D_800EDDC0)) + (temp_f14_5 * 50.0f); - phi_f0 = temp_f0_3; - phi_f2 = temp_f2_5; + var_f14 = -player->unk_20C; + var_f2 = -(player->unk_094 / 18.0f) * 216.0f; + sp20 = player->unk_084; + var_f18 = (f32) ((f64) player->unk_208 + ((f64) var_f2 * 1.5) + (((f64) ((s32) player->unk_07C >> 0x10) * 0.1) + ((f64) -player->unk_09C * 0.05)) + (f64) (var_f14 * 50.0f)); } if ((temp_t0 & 0x200) == 0x200) { if ((temp_a0 == 0x10) && ((temp_t0 & 2) != 2)) { - sp20 = arg0->unk84 * 3.0f; - phi_f18 = phi_f0 + (phi_f2 * 3.0f) + (phi_f14 * 10.0f); + var_f18 = player->unk_208 + (var_f2 * 3.0f) + (var_f14 * 10.0f); + sp20 = player->unk_084 * 3.0f; } else { - sp20 = arg0->unk84; - phi_f18 = phi_f0 + (phi_f2 / 3.0f); + sp20 = player->unk_084; + var_f18 = player->unk_208 + (var_f2 / 3.0f); } } arg1->unk4 = 0.0f; - arg1->unk0 = (arg0->unk90 + phi_f18) * phi_f12; - arg1->unk8 = arg0->unk94 * sp20; - func_802B63B8(phi_f12, phi_f14, arg1, arg0 + 0x174, arg0); + arg1->unk0 = (player->unk_090 + var_f18) * player->unk_094; + arg1->unk8 = (f32) (player->unk_094 * sp20); + func_802B63B8(arg1, (f32 (*)[3]) player->unk_174[0]); } arg2->unk0 = arg1->unk0; - arg2->unk4 = arg1->unk4; - arg2->unk8 = arg1->unk8; + arg2->unk4 = (f32) arg1->unk4; + arg2->unk8 = (f32) arg1->unk8; } #else GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80036DB4.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b void func_800371F4(Player *player, f32 *arg1, f32 *arg2) { f32 sp20; f32 var_f14; @@ -6185,7 +5676,7 @@ void func_800371F4(Player *player, f32 *arg1, f32 *arg2) { arg1->unk0 = 0.0f; arg1->unk4 = 0.0f; arg1->unk8 = 0.0f; - func_802B63B8(arg1, (f32 (*)[3]) player->unk_174); + func_802B63B8(arg1, (f32 (*)[3]) player->unk_174[0]); } else { temp_a0 = temp_t0 & 0x10; if ((temp_a0 == 0x10) && ((temp_t0 & 2) != 2)) { @@ -6233,7 +5724,7 @@ void func_800371F4(Player *player, f32 *arg1, f32 *arg2) { arg1->unk4 = 0.0f; arg1->unk0 = -(player->unk_090 + var_f18) * player->unk_094; arg1->unk8 = (f32) (player->unk_094 * sp20); - func_802B63B8(arg1, (f32 (*)[3]) player->unk_174); + func_802B63B8(arg1, (f32 (*)[3]) player->unk_174[0]); } arg2->unk0 = arg1->unk0; arg2->unk4 = (f32) arg1->unk4; @@ -6400,15 +5891,9 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80037BB4.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_80030C34(Player *); /* extern */ -void func_80030E00(Player *); /* extern */ -void func_80032050(Player *); /* extern */ -void func_8003221C(Player *); /* extern */ -void func_800323E4(Player *); /* extern */ -void func_800332E8(Player *, s8); /* extern */ -void func_800337CC(Player *, ?, s8); /* extern */ -void func_80033AE0(Player *, struct Controller *, s8); /* extern */ +//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +? func_80030C34(Player *); /* extern */ +? func_80033AE0(Player *, struct Controller *, s8); /* extern */ s32 func_800388B0(struct Controller *); /* extern */ void func_80037CFC(Player *player, struct Controller *controller, u8 arg2) { @@ -6443,7 +5928,7 @@ void func_80037CFC(Player *player, struct Controller *controller, u8 arg2) { temp_t4 = player->unk_0BC & ~1; player->unk_0BC = temp_t4; var_v0_2 = temp_t4; - if (((temp_t4 << 0xB) >= 0) && !(temp_t4 & 4)) { + if (!(temp_t4 & 0x100000) && !(temp_t4 & 4)) { if (((player->unk_094 / 18.0f) * 216.0f) <= 12.0f) { temp_v1 = controller->button; if (temp_v1 & 0x8000) { @@ -6467,7 +5952,7 @@ void func_80037CFC(Player *player, struct Controller *controller, u8 arg2) { func_80030FC8(player); func_80030E00(player); } else { - if (gModeSelection == BATTLE) { + if (gModeSelection == 3) { func_80031F48(player, 2.0f); } else { func_80031F48(player, 1.0f); @@ -6483,7 +5968,7 @@ void func_80037CFC(Player *player, struct Controller *controller, u8 arg2) { } } temp_v0_3 = player->unk_0BC; - if (((temp_v0_3 << 0xB) >= 0) && !(temp_v0_3 & 4)) { + if (!(temp_v0_3 & 0x100000) && !(temp_v0_3 & 4)) { if ((func_800388B0(controller) < -0x31) && (((player->unk_094 / 18.0f) * 216.0f) <= 5.0f) && (controller->button & 0x4000)) { player->unk_09C = 140.0f; player->unk_044 |= 1; @@ -6512,11 +5997,11 @@ void func_80037CFC(Player *player, struct Controller *controller, u8 arg2) { if ((var_v1 == 0x80) || ((var_v0 & 0x40) == 0x40) || ((var_v0 & 0x01000000) == 0x01000000) || ((var_v0 & 0x02000000) == 0x02000000)) { if (controller->button & 0x8000) { func_80030E00(player); - func_800332E8(player, (s8) arg2); + func_800332E8(player, (s32) (s8) arg2); return; } func_80030C34(player); - func_800337CC(player, 0x40A00000, (s8) arg2); + func_800337CC(player, 5.0f, (s32) (s8) arg2); } } } diff --git a/src/code_80027D00.h b/src/code_80027D00.h index 3d698033b..26c7ae7f6 100644 --- a/src/code_80027D00.h +++ b/src/code_80027D00.h @@ -16,24 +16,39 @@ void func_800291F0(); void func_800291F8(); void func_80029200(Player*, s8); void func_8002934C(Player*, Camera*, s8, s8); +void func_8002A194(Player*, f32, f32, f32); void func_8002A5F4(Vec3f, f32, Vec3f, f32, f32); +void func_8002A704(Player*, s8); void func_8002AA50(Player*); void func_8002AAC0(Player*); void func_8002AB70(Player*); void func_8002AE20(); void func_8002AE28(); void func_8002AE30(); +void func_8002B218(Player*); void func_8002B308(Player*, s8, s8); void func_8002B5C0(Player*, s8, s8); void func_8002B830(Player*, s8, s8); +void func_8002BD58(Player*); void func_8002C11C(Player*); void func_8002D268(Player*, Camera*, s8, s8); void func_8002E4C4(Player*); +void func_8002FCA8(Player*, s8); +void func_8002FE84(Player*, f32); +f32 func_80030150(Player*, s8); +void func_80030A34(Player*); +void func_80030E00(Player*); void func_80030FC8(Player*); void func_80031F48(Player*, f32); +void func_80032050(Player*); +void func_8003221C(Player*); +void func_800323E4(Player*); +void func_80032700(Player*); void func_80032CB0(Player*, f32); void func_80032D94(Player*); void func_80033280(Player*, f32); +void func_800332E8(Player*, s32); +void func_800337CC(Player*, f32, s32); void func_80033850(Player*, f32); void func_80036C5C(Player*); void func_80037614(Player*, Vec3f, Vec3f);