diff --git a/asm/non_matchings/object_functions/obj_init_fish.s b/asm/non_matchings/object_functions/obj_init_fish.s deleted file mode 100644 index 22693f96..00000000 --- a/asm/non_matchings/object_functions/obj_init_fish.s +++ /dev/null @@ -1,316 +0,0 @@ -.late_rodata -glabel D_800E6048 -.float 0.01 - -.text -glabel obj_init_fish -/* 037830 80036C30 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 037834 80036C34 AFBF0024 */ sw $ra, 0x24($sp) -/* 037838 80036C38 AFB20020 */ sw $s2, 0x20($sp) -/* 03783C 80036C3C AFB1001C */ sw $s1, 0x1c($sp) -/* 037840 80036C40 AFB00018 */ sw $s0, 0x18($sp) -/* 037844 80036C44 AFA60048 */ sw $a2, 0x48($sp) -/* 037848 80036C48 90AE000E */ lbu $t6, 0xe($a1) -/* 03784C 80036C4C 8C900064 */ lw $s0, 0x64($a0) -/* 037850 80036C50 000E7900 */ sll $t7, $t6, 4 -/* 037854 80036C54 A60F0100 */ sh $t7, 0x100($s0) -/* 037858 80036C58 90B8000F */ lbu $t8, 0xf($a1) -/* 03785C 80036C5C 00808825 */ move $s1, $a0 -/* 037860 80036C60 0018CA00 */ sll $t9, $t8, 8 -/* 037864 80036C64 A6190104 */ sh $t9, 0x104($s0) -/* 037868 80036C68 94A80008 */ lhu $t0, 8($a1) -/* 03786C 80036C6C 00A09025 */ move $s2, $a1 -/* 037870 80036C70 44882000 */ mtc1 $t0, $f4 -/* 037874 80036C74 05010005 */ bgez $t0, .L80036C8C -/* 037878 80036C78 468021A0 */ cvt.s.w $f6, $f4 -/* 03787C 80036C7C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 037880 80036C80 44814000 */ mtc1 $at, $f8 -/* 037884 80036C84 00000000 */ nop -/* 037888 80036C88 46083180 */ add.s $f6, $f6, $f8 -.L80036C8C: -/* 03788C 80036C8C E6060114 */ swc1 $f6, 0x114($s0) -/* 037890 80036C90 9249000A */ lbu $t1, 0xa($s2) -/* 037894 80036C94 00000000 */ nop -/* 037898 80036C98 44895000 */ mtc1 $t1, $f10 -/* 03789C 80036C9C 05210005 */ bgez $t1, .L80036CB4 -/* 0378A0 80036CA0 468054A0 */ cvt.s.w $f18, $f10 -/* 0378A4 80036CA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0378A8 80036CA8 44812000 */ mtc1 $at, $f4 -/* 0378AC 80036CAC 00000000 */ nop -/* 0378B0 80036CB0 46049480 */ add.s $f18, $f18, $f4 -.L80036CB4: -/* 0378B4 80036CB4 E6120118 */ swc1 $f18, 0x118($s0) -/* 0378B8 80036CB8 864A0002 */ lh $t2, 2($s2) -/* 0378BC 80036CBC 00000000 */ nop -/* 0378C0 80036CC0 448A4000 */ mtc1 $t2, $f8 -/* 0378C4 80036CC4 00000000 */ nop -/* 0378C8 80036CC8 468041A0 */ cvt.s.w $f6, $f8 -/* 0378CC 80036CCC E6060108 */ swc1 $f6, 0x108($s0) -/* 0378D0 80036CD0 864B0004 */ lh $t3, 4($s2) -/* 0378D4 80036CD4 00000000 */ nop -/* 0378D8 80036CD8 448B5000 */ mtc1 $t3, $f10 -/* 0378DC 80036CDC 00000000 */ nop -/* 0378E0 80036CE0 46805120 */ cvt.s.w $f4, $f10 -/* 0378E4 80036CE4 E604010C */ swc1 $f4, 0x10c($s0) -/* 0378E8 80036CE8 864C0006 */ lh $t4, 6($s2) -/* 0378EC 80036CEC 00000000 */ nop -/* 0378F0 80036CF0 448C9000 */ mtc1 $t4, $f18 -/* 0378F4 80036CF4 00000000 */ nop -/* 0378F8 80036CF8 46809220 */ cvt.s.w $f8, $f18 -/* 0378FC 80036CFC E6080110 */ swc1 $f8, 0x110($s0) -/* 037900 80036D00 8FAD0048 */ lw $t5, 0x48($sp) -/* 037904 80036D04 00000000 */ nop -/* 037908 80036D08 15A0000E */ bnez $t5, .L80036D44 -/* 03790C 80036D0C 00002025 */ move $a0, $zero -/* 037910 80036D10 0C01BE53 */ jal get_random_number_from_range -/* 037914 80036D14 3C050001 */ lui $a1, 1 -/* 037918 80036D18 A60200FE */ sh $v0, 0xfe($s0) -/* 03791C 80036D1C 00002025 */ move $a0, $zero -/* 037920 80036D20 0C01BE53 */ jal get_random_number_from_range -/* 037924 80036D24 3C050001 */ lui $a1, 1 -/* 037928 80036D28 A6020102 */ sh $v0, 0x102($s0) -/* 03792C 80036D2C 00002025 */ move $a0, $zero -/* 037930 80036D30 0C01BE53 */ jal get_random_number_from_range -/* 037934 80036D34 3C050001 */ lui $a1, 1 -/* 037938 80036D38 A6020106 */ sh $v0, 0x106($s0) -/* 03793C 80036D3C 10000005 */ b .L80036D54 -/* 037940 80036D40 A20000FD */ sb $zero, 0xfd($s0) -.L80036D44: -/* 037944 80036D44 860F0104 */ lh $t7, 0x104($s0) -/* 037948 80036D48 240E4000 */ li $t6, 16384 -/* 03794C 80036D4C A60E00FE */ sh $t6, 0xfe($s0) -/* 037950 80036D50 A62F0000 */ sh $t7, ($s1) -.L80036D54: -/* 037954 80036D54 861800FE */ lh $t8, 0xfe($s0) -/* 037958 80036D58 00000000 */ nop -/* 03795C 80036D5C 0018CC40 */ sll $t9, $t8, 0x11 -/* 037960 80036D60 0C01C1F1 */ jal sins_f -/* 037964 80036D64 00192403 */ sra $a0, $t9, 0x10 -/* 037968 80036D68 C6060114 */ lwc1 $f6, 0x114($s0) -/* 03796C 80036D6C 00000000 */ nop -/* 037970 80036D70 46060282 */ mul.s $f10, $f0, $f6 -/* 037974 80036D74 E7AA0030 */ swc1 $f10, 0x30($sp) -/* 037978 80036D78 860400FE */ lh $a0, 0xfe($s0) -/* 03797C 80036D7C 0C01C1FE */ jal coss_f -/* 037980 80036D80 00000000 */ nop -/* 037984 80036D84 C6040114 */ lwc1 $f4, 0x114($s0) -/* 037988 80036D88 00000000 */ nop -/* 03798C 80036D8C 46040482 */ mul.s $f18, $f0, $f4 -/* 037990 80036D90 E7B2002C */ swc1 $f18, 0x2c($sp) -/* 037994 80036D94 86040104 */ lh $a0, 0x104($s0) -/* 037998 80036D98 0C01C1F1 */ jal sins_f -/* 03799C 80036D9C 00000000 */ nop -/* 0379A0 80036DA0 86040104 */ lh $a0, 0x104($s0) -/* 0379A4 80036DA4 0C01C1FE */ jal coss_f -/* 0379A8 80036DA8 E7A00028 */ swc1 $f0, 0x28($sp) -/* 0379AC 80036DAC C7A20030 */ lwc1 $f2, 0x30($sp) -/* 0379B0 80036DB0 C7AC0028 */ lwc1 $f12, 0x28($sp) -/* 0379B4 80036DB4 46001202 */ mul.s $f8, $f2, $f0 -/* 0379B8 80036DB8 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 0379BC 80036DBC C6120108 */ lwc1 $f18, 0x108($s0) -/* 0379C0 80036DC0 460C8182 */ mul.s $f6, $f16, $f12 -/* 0379C4 80036DC4 E632000C */ swc1 $f18, 0xc($s1) -/* 0379C8 80036DC8 46008282 */ mul.s $f10, $f16, $f0 -/* 0379CC 80036DCC 46064380 */ add.s $f14, $f8, $f6 -/* 0379D0 80036DD0 C6080110 */ lwc1 $f8, 0x110($s0) -/* 0379D4 80036DD4 460C1102 */ mul.s $f4, $f2, $f12 -/* 0379D8 80036DD8 E6280014 */ swc1 $f8, 0x14($s1) -/* 0379DC 80036DDC E7AE0030 */ swc1 $f14, 0x30($sp) -/* 0379E0 80036DE0 46045401 */ sub.s $f16, $f10, $f4 -/* 0379E4 80036DE4 0C004558 */ jal ignore_bounds_check -/* 0379E8 80036DE8 E7B0002C */ swc1 $f16, 0x2c($sp) -/* 0379EC 80036DEC 8FA50030 */ lw $a1, 0x30($sp) -/* 0379F0 80036DF0 8FA7002C */ lw $a3, 0x2c($sp) -/* 0379F4 80036DF4 02202025 */ move $a0, $s1 -/* 0379F8 80036DF8 0C00455C */ jal move_object -/* 0379FC 80036DFC 24060000 */ li $a2, 0 -/* 037A00 80036E00 8FA90048 */ lw $t1, 0x48($sp) -/* 037A04 80036E04 02001825 */ move $v1, $s0 -/* 037A08 80036E08 15200031 */ bnez $t1, .L80036ED0 -/* 037A0C 80036E0C 3C02800E */ lui $v0, %hi(D_800DC9D0) # $v0, 0x800e -/* 037A10 80036E10 3C04800E */ lui $a0, %hi(D_800DCA50) # $a0, 0x800e -/* 037A14 80036E14 2484CA50 */ addiu $a0, %lo(D_800DCA50) # addiu $a0, $a0, -0x35b0 -/* 037A18 80036E18 2442C9D0 */ addiu $v0, %lo(D_800DC9D0) # addiu $v0, $v0, -0x3630 -.L80036E1C: -/* 037A1C 80036E1C 904A0000 */ lbu $t2, ($v0) -/* 037A20 80036E20 24420010 */ addiu $v0, $v0, 0x10 -/* 037A24 80036E24 A06A0000 */ sb $t2, ($v1) -/* 037A28 80036E28 904BFFF1 */ lbu $t3, -0xf($v0) -/* 037A2C 80036E2C 0044082B */ sltu $at, $v0, $a0 -/* 037A30 80036E30 A06B0001 */ sb $t3, 1($v1) -/* 037A34 80036E34 904CFFF2 */ lbu $t4, -0xe($v0) -/* 037A38 80036E38 24630010 */ addiu $v1, $v1, 0x10 -/* 037A3C 80036E3C A06CFFF2 */ sb $t4, -0xe($v1) -/* 037A40 80036E40 904DFFF3 */ lbu $t5, -0xd($v0) -/* 037A44 80036E44 1420FFF5 */ bnez $at, .L80036E1C -/* 037A48 80036E48 A06DFFF3 */ sb $t5, -0xd($v1) -/* 037A4C 80036E4C 3C03800E */ lui $v1, %hi(D_800DC9A8) # $v1, 0x800e -/* 037A50 80036E50 2463C9A8 */ addiu $v1, %lo(D_800DC9A8) # addiu $v1, $v1, -0x3658 -/* 037A54 80036E54 00003025 */ move $a2, $zero -/* 037A58 80036E58 02001025 */ move $v0, $s0 -/* 037A5C 80036E5C 24050006 */ li $a1, 6 -/* 037A60 80036E60 240400FF */ li $a0, 255 -.L80036E64: -/* 037A64 80036E64 846E0000 */ lh $t6, ($v1) -/* 037A68 80036E68 24C60001 */ addiu $a2, $a2, 1 -/* 037A6C 80036E6C A44E0080 */ sh $t6, 0x80($v0) -/* 037A70 80036E70 846F0002 */ lh $t7, 2($v1) -/* 037A74 80036E74 2442000A */ addiu $v0, $v0, 0xa -/* 037A78 80036E78 A44F0078 */ sh $t7, 0x78($v0) -/* 037A7C 80036E7C 84780004 */ lh $t8, 4($v1) -/* 037A80 80036E80 A044007C */ sb $a0, 0x7c($v0) -/* 037A84 80036E84 A044007D */ sb $a0, 0x7d($v0) -/* 037A88 80036E88 A044007E */ sb $a0, 0x7e($v0) -/* 037A8C 80036E8C A044007F */ sb $a0, 0x7f($v0) -/* 037A90 80036E90 A458007A */ sh $t8, 0x7a($v0) -/* 037A94 80036E94 84790000 */ lh $t9, ($v1) -/* 037A98 80036E98 24630006 */ addiu $v1, $v1, 6 -/* 037A9C 80036E9C A45900B2 */ sh $t9, 0xb2($v0) -/* 037AA0 80036EA0 8468FFFC */ lh $t0, -4($v1) -/* 037AA4 80036EA4 00000000 */ nop -/* 037AA8 80036EA8 A44800B4 */ sh $t0, 0xb4($v0) -/* 037AAC 80036EAC 8469FFFE */ lh $t1, -2($v1) -/* 037AB0 80036EB0 A04400B8 */ sb $a0, 0xb8($v0) -/* 037AB4 80036EB4 A04400B9 */ sb $a0, 0xb9($v0) -/* 037AB8 80036EB8 A04400BA */ sb $a0, 0xba($v0) -/* 037ABC 80036EBC A04400BB */ sb $a0, 0xbb($v0) -/* 037AC0 80036EC0 14C5FFE8 */ bne $a2, $a1, .L80036E64 -/* 037AC4 80036EC4 A44900B6 */ sh $t1, 0xb6($v0) -/* 037AC8 80036EC8 240A0001 */ li $t2, 1 -/* 037ACC 80036ECC A20A00FC */ sb $t2, 0xfc($s0) -.L80036ED0: -/* 037AD0 80036ED0 924B000C */ lbu $t3, 0xc($s2) -/* 037AD4 80036ED4 02001825 */ move $v1, $s0 -/* 037AD8 80036ED8 448B3000 */ mtc1 $t3, $f6 -/* 037ADC 80036EDC 05610005 */ bgez $t3, .L80036EF4 -/* 037AE0 80036EE0 468032A0 */ cvt.s.w $f10, $f6 -/* 037AE4 80036EE4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 037AE8 80036EE8 44812000 */ mtc1 $at, $f4 -/* 037AEC 80036EEC 00000000 */ nop -/* 037AF0 80036EF0 46045280 */ add.s $f10, $f10, $f4 -.L80036EF4: -/* 037AF4 80036EF4 3C01800E */ lui $at, %hi(D_800E6048) # $at, 0x800e -/* 037AF8 80036EF8 C4326048 */ lwc1 $f18, %lo(D_800E6048)($at) -/* 037AFC 80036EFC 8E2C0040 */ lw $t4, 0x40($s1) -/* 037B00 80036F00 46125202 */ mul.s $f8, $f10, $f18 -/* 037B04 80036F04 3C06800E */ lui $a2, %hi(D_800DCA50) # $a2, 0x800e -/* 037B08 80036F08 00002025 */ move $a0, $zero -/* 037B0C 80036F0C 00002825 */ move $a1, $zero -/* 037B10 80036F10 E6280008 */ swc1 $f8, 8($s1) -/* 037B14 80036F14 9242000B */ lbu $v0, 0xb($s2) -/* 037B18 80036F18 818D0055 */ lb $t5, 0x55($t4) -/* 037B1C 80036F1C 24C6CA50 */ addiu $a2, %lo(D_800DCA50) # addiu $a2, $a2, -0x35b0 -/* 037B20 80036F20 004D082A */ slt $at, $v0, $t5 -/* 037B24 80036F24 10200007 */ beqz $at, .L80036F44 -/* 037B28 80036F28 00000000 */ nop -/* 037B2C 80036F2C 8E2E0068 */ lw $t6, 0x68($s1) -/* 037B30 80036F30 00027880 */ sll $t7, $v0, 2 -/* 037B34 80036F34 01CFC021 */ addu $t8, $t6, $t7 -/* 037B38 80036F38 8F190000 */ lw $t9, ($t8) -/* 037B3C 80036F3C 10000006 */ b .L80036F58 -/* 037B40 80036F40 AE1900F8 */ sw $t9, 0xf8($s0) -.L80036F44: -/* 037B44 80036F44 8E280068 */ lw $t0, 0x68($s1) -/* 037B48 80036F48 00000000 */ nop -/* 037B4C 80036F4C 8D090000 */ lw $t1, ($t0) -/* 037B50 80036F50 00000000 */ nop -/* 037B54 80036F54 AE0900F8 */ sw $t1, 0xf8($s0) -.L80036F58: -/* 037B58 80036F58 8E0200F8 */ lw $v0, 0xf8($s0) -/* 037B5C 80036F5C 00000000 */ nop -/* 037B60 80036F60 1040000A */ beqz $v0, .L80036F8C -/* 037B64 80036F64 00000000 */ nop -/* 037B68 80036F68 90440000 */ lbu $a0, ($v0) -/* 037B6C 80036F6C 90450001 */ lbu $a1, 1($v0) -/* 037B70 80036F70 2484FFFF */ addiu $a0, $a0, -1 -/* 037B74 80036F74 24A5FFFF */ addiu $a1, $a1, -1 -/* 037B78 80036F78 00045140 */ sll $t2, $a0, 5 -/* 037B7C 80036F7C 00055940 */ sll $t3, $a1, 5 -/* 037B80 80036F80 01402025 */ move $a0, $t2 -/* 037B84 80036F84 10000001 */ b .L80036F8C -/* 037B88 80036F88 01602825 */ move $a1, $t3 -.L80036F8C: -/* 037B8C 80036F8C 3C02800E */ lui $v0, %hi(D_800DC9D0) # $v0, 0x800e -/* 037B90 80036F90 2442C9D0 */ addiu $v0, %lo(D_800DC9D0) # addiu $v0, $v0, -0x3630 -.L80036F94: -/* 037B94 80036F94 844C0004 */ lh $t4, 4($v0) -/* 037B98 80036F98 24420020 */ addiu $v0, $v0, 0x20 -/* 037B9C 80036F9C 01840019 */ multu $t4, $a0 -/* 037BA0 80036FA0 24630020 */ addiu $v1, $v1, 0x20 -/* 037BA4 80036FA4 00006812 */ mflo $t5 -/* 037BA8 80036FA8 000D7083 */ sra $t6, $t5, 2 -/* 037BAC 80036FAC A46EFFE4 */ sh $t6, -0x1c($v1) -/* 037BB0 80036FB0 844FFFE6 */ lh $t7, -0x1a($v0) -/* 037BB4 80036FB4 00000000 */ nop -/* 037BB8 80036FB8 01E50019 */ multu $t7, $a1 -/* 037BBC 80036FBC 0000C012 */ mflo $t8 -/* 037BC0 80036FC0 0018C883 */ sra $t9, $t8, 2 -/* 037BC4 80036FC4 A479FFE6 */ sh $t9, -0x1a($v1) -/* 037BC8 80036FC8 8448FFE8 */ lh $t0, -0x18($v0) -/* 037BCC 80036FCC 00000000 */ nop -/* 037BD0 80036FD0 01040019 */ multu $t0, $a0 -/* 037BD4 80036FD4 00004812 */ mflo $t1 -/* 037BD8 80036FD8 00095083 */ sra $t2, $t1, 2 -/* 037BDC 80036FDC A46AFFE8 */ sh $t2, -0x18($v1) -/* 037BE0 80036FE0 844BFFEA */ lh $t3, -0x16($v0) -/* 037BE4 80036FE4 00000000 */ nop -/* 037BE8 80036FE8 01650019 */ multu $t3, $a1 -/* 037BEC 80036FEC 00006012 */ mflo $t4 -/* 037BF0 80036FF0 000C6883 */ sra $t5, $t4, 2 -/* 037BF4 80036FF4 A46DFFEA */ sh $t5, -0x16($v1) -/* 037BF8 80036FF8 844EFFEC */ lh $t6, -0x14($v0) -/* 037BFC 80036FFC 00000000 */ nop -/* 037C00 80037000 01C40019 */ multu $t6, $a0 -/* 037C04 80037004 00007812 */ mflo $t7 -/* 037C08 80037008 000FC083 */ sra $t8, $t7, 2 -/* 037C0C 8003700C A478FFEC */ sh $t8, -0x14($v1) -/* 037C10 80037010 8459FFEE */ lh $t9, -0x12($v0) -/* 037C14 80037014 00000000 */ nop -/* 037C18 80037018 03250019 */ multu $t9, $a1 -/* 037C1C 8003701C 00004012 */ mflo $t0 -/* 037C20 80037020 00084883 */ sra $t1, $t0, 2 -/* 037C24 80037024 A469FFEE */ sh $t1, -0x12($v1) -/* 037C28 80037028 844AFFF4 */ lh $t2, -0xc($v0) -/* 037C2C 8003702C 00000000 */ nop -/* 037C30 80037030 01440019 */ multu $t2, $a0 -/* 037C34 80037034 00005812 */ mflo $t3 -/* 037C38 80037038 000B6083 */ sra $t4, $t3, 2 -/* 037C3C 8003703C A46CFFF4 */ sh $t4, -0xc($v1) -/* 037C40 80037040 844DFFF6 */ lh $t5, -0xa($v0) -/* 037C44 80037044 00000000 */ nop -/* 037C48 80037048 01A50019 */ multu $t5, $a1 -/* 037C4C 8003704C 00007012 */ mflo $t6 -/* 037C50 80037050 000E7883 */ sra $t7, $t6, 2 -/* 037C54 80037054 A46FFFF6 */ sh $t7, -0xa($v1) -/* 037C58 80037058 8458FFF8 */ lh $t8, -8($v0) -/* 037C5C 8003705C 00000000 */ nop -/* 037C60 80037060 03040019 */ multu $t8, $a0 -/* 037C64 80037064 0000C812 */ mflo $t9 -/* 037C68 80037068 00194083 */ sra $t0, $t9, 2 -/* 037C6C 8003706C A468FFF8 */ sh $t0, -8($v1) -/* 037C70 80037070 8449FFFA */ lh $t1, -6($v0) -/* 037C74 80037074 00000000 */ nop -/* 037C78 80037078 01250019 */ multu $t1, $a1 -/* 037C7C 8003707C 00005012 */ mflo $t2 -/* 037C80 80037080 000A5883 */ sra $t3, $t2, 2 -/* 037C84 80037084 A46BFFFA */ sh $t3, -6($v1) -/* 037C88 80037088 844CFFFC */ lh $t4, -4($v0) -/* 037C8C 8003708C 00000000 */ nop -/* 037C90 80037090 01840019 */ multu $t4, $a0 -/* 037C94 80037094 00006812 */ mflo $t5 -/* 037C98 80037098 000D7083 */ sra $t6, $t5, 2 -/* 037C9C 8003709C A46EFFFC */ sh $t6, -4($v1) -/* 037CA0 800370A0 844FFFFE */ lh $t7, -2($v0) -/* 037CA4 800370A4 00000000 */ nop -/* 037CA8 800370A8 01E50019 */ multu $t7, $a1 -/* 037CAC 800370AC 0000C012 */ mflo $t8 -/* 037CB0 800370B0 0018C883 */ sra $t9, $t8, 2 -/* 037CB4 800370B4 1446FFB7 */ bne $v0, $a2, .L80036F94 -/* 037CB8 800370B8 A479FFFE */ sh $t9, -2($v1) -/* 037CBC 800370BC 8FBF0024 */ lw $ra, 0x24($sp) -/* 037CC0 800370C0 8FB00018 */ lw $s0, 0x18($sp) -/* 037CC4 800370C4 8FB1001C */ lw $s1, 0x1c($sp) -/* 037CC8 800370C8 8FB20020 */ lw $s2, 0x20($sp) -/* 037CCC 800370CC 03E00008 */ jr $ra -/* 037CD0 800370D0 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/object_functions/obj_init_midifade.s b/asm/non_matchings/object_functions/obj_init_midifade.s deleted file mode 100644 index f4df7cdd..00000000 --- a/asm/non_matchings/object_functions/obj_init_midifade.s +++ /dev/null @@ -1,266 +0,0 @@ -glabel obj_init_midifade -/* 042690 80041A90 27BDFF00 */ addiu $sp, $sp, -0x100 -/* 042694 80041A94 AFBF003C */ sw $ra, 0x3c($sp) -/* 042698 80041A98 AFB00038 */ sw $s0, 0x38($sp) -/* 04269C 80041A9C E7B70030 */ swc1 $f23, 0x30($sp) -/* 0426A0 80041AA0 E7B60034 */ swc1 $f22, 0x34($sp) -/* 0426A4 80041AA4 E7B50028 */ swc1 $f21, 0x28($sp) -/* 0426A8 80041AA8 E7B4002C */ swc1 $f20, 0x2c($sp) -/* 0426AC 80041AAC 90AF0009 */ lbu $t7, 9($a1) -/* 0426B0 80041AB0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0426B4 80041AB4 000FC280 */ sll $t8, $t7, 0xa -/* 0426B8 80041AB8 A4980000 */ sh $t8, ($a0) -/* 0426BC 80041ABC 90A90008 */ lbu $t1, 8($a1) -/* 0426C0 80041AC0 4481B000 */ mtc1 $at, $f22 -/* 0426C4 80041AC4 44892000 */ mtc1 $t1, $f4 -/* 0426C8 80041AC8 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0426CC 80041ACC 46802020 */ cvt.s.w $f0, $f4 -/* 0426D0 80041AD0 8C880064 */ lw $t0, 0x64($a0) -/* 0426D4 80041AD4 44813000 */ mtc1 $at, $f6 -/* 0426D8 80041AD8 4616003C */ c.lt.s $f0, $f22 -/* 0426DC 80041ADC 00808025 */ move $s0, $a0 -/* 0426E0 80041AE0 45000002 */ bc1f .L80041AEC -/* 0426E4 80041AE4 00A03025 */ move $a2, $a1 -/* 0426E8 80041AE8 4600B006 */ mov.s $f0, $f22 -.L80041AEC: -/* 0426EC 80041AEC 00000000 */ nop -/* 0426F0 80041AF0 46060003 */ div.s $f0, $f0, $f6 -/* 0426F4 80041AF4 8E0A0040 */ lw $t2, 0x40($s0) -/* 0426F8 80041AF8 860B0000 */ lh $t3, ($s0) -/* 0426FC 80041AFC C548000C */ lwc1 $f8, 0xc($t2) -/* 042700 80041B00 4480A000 */ mtc1 $zero, $f20 -/* 042704 80041B04 27A4008C */ addiu $a0, $sp, 0x8c -/* 042708 80041B08 27A500E0 */ addiu $a1, $sp, 0xe0 -/* 04270C 80041B0C 46004282 */ mul.s $f10, $f8, $f0 -/* 042710 80041B10 E60A0008 */ swc1 $f10, 8($s0) -/* 042714 80041B14 A7AB00E0 */ sh $t3, 0xe0($sp) -/* 042718 80041B18 860C0002 */ lh $t4, 2($s0) -/* 04271C 80041B1C 00000000 */ nop -/* 042720 80041B20 A7AC00E2 */ sh $t4, 0xe2($sp) -/* 042724 80041B24 860D0004 */ lh $t5, 4($s0) -/* 042728 80041B28 E7B600E8 */ swc1 $f22, 0xe8($sp) -/* 04272C 80041B2C AFA800FC */ sw $t0, 0xfc($sp) -/* 042730 80041B30 AFA60104 */ sw $a2, 0x104($sp) -/* 042734 80041B34 E7B400EC */ swc1 $f20, 0xec($sp) -/* 042738 80041B38 E7B400F0 */ swc1 $f20, 0xf0($sp) -/* 04273C 80041B3C E7B400F4 */ swc1 $f20, 0xf4($sp) -/* 042740 80041B40 0C01BF0C */ jal object_transform_to_matrix -/* 042744 80041B44 A7AD00E4 */ sh $t5, 0xe4($sp) -/* 042748 80041B48 4405A000 */ mfc1 $a1, $f20 -/* 04274C 80041B4C 4406A000 */ mfc1 $a2, $f20 -/* 042750 80041B50 4407B000 */ mfc1 $a3, $f22 -/* 042754 80041B54 27AE00DC */ addiu $t6, $sp, 0xdc -/* 042758 80041B58 27AF00D8 */ addiu $t7, $sp, 0xd8 -/* 04275C 80041B5C 27B800D4 */ addiu $t8, $sp, 0xd4 -/* 042760 80041B60 AFB80018 */ sw $t8, 0x18($sp) -/* 042764 80041B64 AFAF0014 */ sw $t7, 0x14($sp) -/* 042768 80041B68 AFAE0010 */ sw $t6, 0x10($sp) -/* 04276C 80041B6C 0C01BD93 */ jal guMtxXFMF -/* 042770 80041B70 27A4008C */ addiu $a0, $sp, 0x8c -/* 042774 80041B74 8FA800FC */ lw $t0, 0xfc($sp) -/* 042778 80041B78 C7A400DC */ lwc1 $f4, 0xdc($sp) -/* 04277C 80041B7C 8FA40104 */ lw $a0, 0x104($sp) -/* 042780 80041B80 E5040008 */ swc1 $f4, 8($t0) -/* 042784 80041B84 C7A600D8 */ lwc1 $f6, 0xd8($sp) -/* 042788 80041B88 00001025 */ move $v0, $zero -/* 04278C 80041B8C E506000C */ swc1 $f6, 0xc($t0) -/* 042790 80041B90 C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 042794 80041B94 01001825 */ move $v1, $t0 -/* 042798 80041B98 E5080010 */ swc1 $f8, 0x10($t0) -/* 04279C 80041B9C C7A400DC */ lwc1 $f4, 0xdc($sp) -/* 0427A0 80041BA0 C60A000C */ lwc1 $f10, 0xc($s0) -/* 0427A4 80041BA4 C6080010 */ lwc1 $f8, 0x10($s0) -/* 0427A8 80041BA8 46045182 */ mul.s $f6, $f10, $f4 -/* 0427AC 80041BAC C7AA00D8 */ lwc1 $f10, 0xd8($sp) -/* 0427B0 80041BB0 00000000 */ nop -/* 0427B4 80041BB4 460A4102 */ mul.s $f4, $f8, $f10 -/* 0427B8 80041BB8 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 0427BC 80041BBC 46043200 */ add.s $f8, $f6, $f4 -/* 0427C0 80041BC0 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 0427C4 80041BC4 00000000 */ nop -/* 0427C8 80041BC8 46065102 */ mul.s $f4, $f10, $f6 -/* 0427CC 80041BCC 46044280 */ add.s $f10, $f8, $f4 -/* 0427D0 80041BD0 46005187 */ neg.s $f6, $f10 -/* 0427D4 80041BD4 E5060014 */ swc1 $f6, 0x14($t0) -/* 0427D8 80041BD8 9099001A */ lbu $t9, 0x1a($a0) -/* 0427DC 80041BDC 00000000 */ nop -/* 0427E0 80041BE0 A1190002 */ sb $t9, 2($t0) -/* 0427E4 80041BE4 9089001B */ lbu $t1, 0x1b($a0) -/* 0427E8 80041BE8 00000000 */ nop -/* 0427EC 80041BEC A1090040 */ sb $t1, 0x40($t0) -.L80041BF0: -/* 0427F0 80041BF0 908A000A */ lbu $t2, 0xa($a0) -/* 0427F4 80041BF4 24420001 */ addiu $v0, $v0, 1 -/* 0427F8 80041BF8 2841000F */ slti $at, $v0, 0xf -/* 0427FC 80041BFC 24630001 */ addiu $v1, $v1, 1 -/* 042800 80041C00 24840001 */ addiu $a0, $a0, 1 -/* 042804 80041C04 1420FFFA */ bnez $at, .L80041BF0 -/* 042808 80041C08 A06A002F */ sb $t2, 0x2f($v1) -/* 04280C 80041C0C 8E0B0068 */ lw $t3, 0x68($s0) -/* 042810 80041C10 2402000A */ li $v0, 10 -/* 042814 80041C14 8D650000 */ lw $a1, ($t3) -/* 042818 80041C18 00000000 */ nop -/* 04281C 80041C1C 8CA40000 */ lw $a0, ($a1) -/* 042820 80041C20 00000000 */ nop -/* 042824 80041C24 8C860004 */ lw $a2, 4($a0) -/* 042828 80041C28 84870024 */ lh $a3, 0x24($a0) -/* 04282C 80041C2C 24C3000A */ addiu $v1, $a2, 0xa -/* 042830 80041C30 846C0000 */ lh $t4, ($v1) -/* 042834 80041C34 846D0002 */ lh $t5, 2($v1) -/* 042838 80041C38 846E0004 */ lh $t6, 4($v1) -/* 04283C 80041C3C 448C4000 */ mtc1 $t4, $f8 -/* 042840 80041C40 448D2000 */ mtc1 $t5, $f4 -/* 042844 80041C44 448E5000 */ mtc1 $t6, $f10 -/* 042848 80041C48 468040A0 */ cvt.s.w $f2, $f8 -/* 04284C 80041C4C 00072880 */ sll $a1, $a3, 2 -/* 042850 80041C50 00A72821 */ addu $a1, $a1, $a3 -/* 042854 80041C54 46802520 */ cvt.s.w $f20, $f4 -/* 042858 80041C58 28E10002 */ slti $at, $a3, 2 -/* 04285C 80041C5C 00052840 */ sll $a1, $a1, 1 -/* 042860 80041C60 46805320 */ cvt.s.w $f12, $f10 -/* 042864 80041C64 24C4000A */ addiu $a0, $a2, 0xa -/* 042868 80041C68 46001386 */ mov.s $f14, $f2 -/* 04286C 80041C6C 4600A586 */ mov.s $f22, $f20 -/* 042870 80041C70 14200031 */ bnez $at, .L80041D38 -/* 042874 80041C74 46006406 */ mov.s $f16, $f12 -.L80041C78: -/* 042878 80041C78 848F0000 */ lh $t7, ($a0) -/* 04287C 80041C7C 2442000A */ addiu $v0, $v0, 0xa -/* 042880 80041C80 448F3000 */ mtc1 $t7, $f6 -/* 042884 80041C84 0045082A */ slt $at, $v0, $a1 -/* 042888 80041C88 46803020 */ cvt.s.w $f0, $f6 -/* 04288C 80041C8C 00801825 */ move $v1, $a0 -/* 042890 80041C90 460E003C */ c.lt.s $f0, $f14 -/* 042894 80041C94 00000000 */ nop -/* 042898 80041C98 45000002 */ bc1f .L80041CA4 -/* 04289C 80041C9C 00000000 */ nop -/* 0428A0 80041CA0 46000386 */ mov.s $f14, $f0 -.L80041CA4: -/* 0428A4 80041CA4 4600103C */ c.lt.s $f2, $f0 -/* 0428A8 80041CA8 00000000 */ nop -/* 0428AC 80041CAC 45000002 */ bc1f .L80041CB8 -/* 0428B0 80041CB0 00000000 */ nop -/* 0428B4 80041CB4 46000086 */ mov.s $f2, $f0 -.L80041CB8: -/* 0428B8 80041CB8 84780002 */ lh $t8, 2($v1) -/* 0428BC 80041CBC 00000000 */ nop -/* 0428C0 80041CC0 44984000 */ mtc1 $t8, $f8 -/* 0428C4 80041CC4 00000000 */ nop -/* 0428C8 80041CC8 46804020 */ cvt.s.w $f0, $f8 -/* 0428CC 80041CCC 4616003C */ c.lt.s $f0, $f22 -/* 0428D0 80041CD0 00000000 */ nop -/* 0428D4 80041CD4 45000002 */ bc1f .L80041CE0 -/* 0428D8 80041CD8 00000000 */ nop -/* 0428DC 80041CDC 46000586 */ mov.s $f22, $f0 -.L80041CE0: -/* 0428E0 80041CE0 4600A03C */ c.lt.s $f20, $f0 -/* 0428E4 80041CE4 00000000 */ nop -/* 0428E8 80041CE8 45000002 */ bc1f .L80041CF4 -/* 0428EC 80041CEC 00000000 */ nop -/* 0428F0 80041CF0 46000506 */ mov.s $f20, $f0 -.L80041CF4: -/* 0428F4 80041CF4 84790004 */ lh $t9, 4($v1) -/* 0428F8 80041CF8 00000000 */ nop -/* 0428FC 80041CFC 44992000 */ mtc1 $t9, $f4 -/* 042900 80041D00 00000000 */ nop -/* 042904 80041D04 46802020 */ cvt.s.w $f0, $f4 -/* 042908 80041D08 4610003C */ c.lt.s $f0, $f16 -/* 04290C 80041D0C 00000000 */ nop -/* 042910 80041D10 45000002 */ bc1f .L80041D1C -/* 042914 80041D14 00000000 */ nop -/* 042918 80041D18 46000406 */ mov.s $f16, $f0 -.L80041D1C: -/* 04291C 80041D1C 4600603C */ c.lt.s $f12, $f0 -/* 042920 80041D20 00000000 */ nop -/* 042924 80041D24 45000002 */ bc1f .L80041D30 -/* 042928 80041D28 00000000 */ nop -/* 04292C 80041D2C 46000306 */ mov.s $f12, $f0 -.L80041D30: -/* 042930 80041D30 1420FFD1 */ bnez $at, .L80041C78 -/* 042934 80041D34 2484000A */ addiu $a0, $a0, 0xa -.L80041D38: -/* 042938 80041D38 86040000 */ lh $a0, ($s0) -/* 04293C 80041D3C E7B0007C */ swc1 $f16, 0x7c($sp) -/* 042940 80041D40 E7AE0080 */ swc1 $f14, 0x80($sp) -/* 042944 80041D44 E7AC006C */ swc1 $f12, 0x6c($sp) -/* 042948 80041D48 E7A20070 */ swc1 $f2, 0x70($sp) -/* 04294C 80041D4C 0C01C1FE */ jal coss_f -/* 042950 80041D50 AFA800FC */ sw $t0, 0xfc($sp) -/* 042954 80041D54 E7A00068 */ swc1 $f0, 0x68($sp) -/* 042958 80041D58 86040000 */ lh $a0, ($s0) -/* 04295C 80041D5C 0C01C1F1 */ jal sins_f -/* 042960 80041D60 00000000 */ nop -/* 042964 80041D64 C7AE0080 */ lwc1 $f14, 0x80($sp) -/* 042968 80041D68 C7AA0068 */ lwc1 $f10, 0x68($sp) -/* 04296C 80041D6C C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 042970 80041D70 460A7182 */ mul.s $f6, $f14, $f10 -/* 042974 80041D74 46007486 */ mov.s $f18, $f14 -/* 042978 80041D78 C7A20070 */ lwc1 $f2, 0x70($sp) -/* 04297C 80041D7C C7AC006C */ lwc1 $f12, 0x6c($sp) -/* 042980 80041D80 46008202 */ mul.s $f8, $f16, $f0 -/* 042984 80041D84 8FA800FC */ lw $t0, 0xfc($sp) -/* 042988 80041D88 460A8102 */ mul.s $f4, $f16, $f10 -/* 04298C 80041D8C 46083380 */ add.s $f14, $f6, $f8 -/* 042990 80041D90 46009182 */ mul.s $f6, $f18, $f0 -/* 042994 80041D94 46001486 */ mov.s $f18, $f2 -/* 042998 80041D98 460A1202 */ mul.s $f8, $f2, $f10 -/* 04299C 80041D9C 46062401 */ sub.s $f16, $f4, $f6 -/* 0429A0 80041DA0 46006102 */ mul.s $f4, $f12, $f0 -/* 0429A4 80041DA4 46044080 */ add.s $f2, $f8, $f4 -/* 0429A8 80041DA8 460A6182 */ mul.s $f6, $f12, $f10 -/* 0429AC 80041DAC 460E103C */ c.lt.s $f2, $f14 -/* 0429B0 80041DB0 46009202 */ mul.s $f8, $f18, $f0 -/* 0429B4 80041DB4 45000004 */ bc1f .L80041DC8 -/* 0429B8 80041DB8 46083301 */ sub.s $f12, $f6, $f8 -/* 0429BC 80041DBC 46001006 */ mov.s $f0, $f2 -/* 0429C0 80041DC0 46007086 */ mov.s $f2, $f14 -/* 0429C4 80041DC4 46000386 */ mov.s $f14, $f0 -.L80041DC8: -/* 0429C8 80041DC8 4610603C */ c.lt.s $f12, $f16 -/* 0429CC 80041DCC 00000000 */ nop -/* 0429D0 80041DD0 45000004 */ bc1f .L80041DE4 -/* 0429D4 80041DD4 00000000 */ nop -/* 0429D8 80041DD8 46006006 */ mov.s $f0, $f12 -/* 0429DC 80041DDC 46008306 */ mov.s $f12, $f16 -/* 0429E0 80041DE0 46000406 */ mov.s $f16, $f0 -.L80041DE4: -/* 0429E4 80041DE4 C6040008 */ lwc1 $f4, 8($s0) -/* 0429E8 80041DE8 C606000C */ lwc1 $f6, 0xc($s0) -/* 0429EC 80041DEC 460E2282 */ mul.s $f10, $f4, $f14 -/* 0429F0 80041DF0 46065200 */ add.s $f8, $f10, $f6 -/* 0429F4 80041DF4 E5080018 */ swc1 $f8, 0x18($t0) -/* 0429F8 80041DF8 C6040008 */ lwc1 $f4, 8($s0) -/* 0429FC 80041DFC C6060010 */ lwc1 $f6, 0x10($s0) -/* 042A00 80041E00 46162282 */ mul.s $f10, $f4, $f22 -/* 042A04 80041E04 46065200 */ add.s $f8, $f10, $f6 -/* 042A08 80041E08 E508001C */ swc1 $f8, 0x1c($t0) -/* 042A0C 80041E0C C6040008 */ lwc1 $f4, 8($s0) -/* 042A10 80041E10 C6060014 */ lwc1 $f6, 0x14($s0) -/* 042A14 80041E14 46102282 */ mul.s $f10, $f4, $f16 -/* 042A18 80041E18 46065200 */ add.s $f8, $f10, $f6 -/* 042A1C 80041E1C E5080020 */ swc1 $f8, 0x20($t0) -/* 042A20 80041E20 C6040008 */ lwc1 $f4, 8($s0) -/* 042A24 80041E24 C606000C */ lwc1 $f6, 0xc($s0) -/* 042A28 80041E28 46022282 */ mul.s $f10, $f4, $f2 -/* 042A2C 80041E2C 46065200 */ add.s $f8, $f10, $f6 -/* 042A30 80041E30 E5080024 */ swc1 $f8, 0x24($t0) -/* 042A34 80041E34 C6040008 */ lwc1 $f4, 8($s0) -/* 042A38 80041E38 C6060010 */ lwc1 $f6, 0x10($s0) -/* 042A3C 80041E3C 46142282 */ mul.s $f10, $f4, $f20 -/* 042A40 80041E40 46065200 */ add.s $f8, $f10, $f6 -/* 042A44 80041E44 E5080028 */ swc1 $f8, 0x28($t0) -/* 042A48 80041E48 C6040008 */ lwc1 $f4, 8($s0) -/* 042A4C 80041E4C C6060014 */ lwc1 $f6, 0x14($s0) -/* 042A50 80041E50 460C2282 */ mul.s $f10, $f4, $f12 -/* 042A54 80041E54 A1000001 */ sb $zero, 1($t0) -/* 042A58 80041E58 46065200 */ add.s $f8, $f10, $f6 -/* 042A5C 80041E5C E508002C */ swc1 $f8, 0x2c($t0) -/* 042A60 80041E60 8FBF003C */ lw $ra, 0x3c($sp) -/* 042A64 80041E64 8FB00038 */ lw $s0, 0x38($sp) -/* 042A68 80041E68 C7B60034 */ lwc1 $f22, 0x34($sp) -/* 042A6C 80041E6C C7B70030 */ lwc1 $f23, 0x30($sp) -/* 042A70 80041E70 C7B4002C */ lwc1 $f20, 0x2c($sp) -/* 042A74 80041E74 C7B50028 */ lwc1 $f21, 0x28($sp) -/* 042A78 80041E78 03E00008 */ jr $ra -/* 042A7C 80041E7C 27BD0100 */ addiu $sp, $sp, 0x100 - diff --git a/asm/non_matchings/object_functions/obj_loop_animator.s b/asm/non_matchings/object_functions/obj_loop_animator.s deleted file mode 100644 index 32adfde0..00000000 --- a/asm/non_matchings/object_functions/obj_loop_animator.s +++ /dev/null @@ -1,151 +0,0 @@ -glabel obj_loop_animator -/* 0383E4 800377E4 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0383E8 800377E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0383EC 800377EC 8C830064 */ lw $v1, 0x64($a0) -/* 0383F0 800377F0 2401FFFF */ li $at, -1 -/* 0383F4 800377F4 84680004 */ lh $t0, 4($v1) -/* 0383F8 800377F8 84690006 */ lh $t1, 6($v1) -/* 0383FC 800377FC 01050019 */ multu $t0, $a1 -/* 038400 80037800 84780008 */ lh $t8, 8($v1) -/* 038404 80037804 00004012 */ mflo $t0 -/* 038408 80037808 00087100 */ sll $t6, $t0, 4 -/* 03840C 8003780C 030EC821 */ addu $t9, $t8, $t6 -/* 038410 80037810 01250019 */ multu $t1, $a1 -/* 038414 80037814 846E000A */ lh $t6, 0xa($v1) -/* 038418 80037818 A4790008 */ sh $t9, 8($v1) -/* 03841C 8003781C 84620008 */ lh $v0, 8($v1) -/* 038420 80037820 00000000 */ nop -/* 038424 80037824 3058000F */ andi $t8, $v0, 0xf -/* 038428 80037828 A4780008 */ sh $t8, 8($v1) -/* 03842C 8003782C 00024103 */ sra $t0, $v0, 4 -/* 038430 80037830 00004812 */ mflo $t1 -/* 038434 80037834 00097900 */ sll $t7, $t1, 4 -/* 038438 80037838 01CF7821 */ addu $t7, $t6, $t7 -/* 03843C 8003783C A46F000A */ sh $t7, 0xa($v1) -/* 038440 80037840 8466000A */ lh $a2, 0xa($v1) -/* 038444 80037844 846E0000 */ lh $t6, ($v1) -/* 038448 80037848 30D9000F */ andi $t9, $a2, 0xf -/* 03844C 8003784C A479000A */ sh $t9, 0xa($v1) -/* 038450 80037850 11C1006D */ beq $t6, $at, .L80037A08 -/* 038454 80037854 00064903 */ sra $t1, $a2, 4 -/* 038458 80037858 AFA3003C */ sw $v1, 0x3c($sp) -/* 03845C 8003785C AFA80020 */ sw $t0, 0x20($sp) -/* 038460 80037860 0C00B1F1 */ jal get_current_level_model -/* 038464 80037864 AFA9001C */ sw $t1, 0x1c($sp) -/* 038468 80037868 8FA3003C */ lw $v1, 0x3c($sp) -/* 03846C 8003786C 8C4F0004 */ lw $t7, 4($v0) -/* 038470 80037870 84780000 */ lh $t8, ($v1) -/* 038474 80037874 8FA80020 */ lw $t0, 0x20($sp) -/* 038478 80037878 0018C900 */ sll $t9, $t8, 4 -/* 03847C 8003787C 0338C821 */ addu $t9, $t9, $t8 -/* 038480 80037880 84780002 */ lh $t8, 2($v1) -/* 038484 80037884 0019C880 */ sll $t9, $t9, 2 -/* 038488 80037888 01F95021 */ addu $t2, $t7, $t9 -/* 03848C 8003788C 00187880 */ sll $t7, $t8, 2 -/* 038490 80037890 8D4E000C */ lw $t6, 0xc($t2) -/* 038494 80037894 01F87823 */ subu $t7, $t7, $t8 -/* 038498 80037898 000F7880 */ sll $t7, $t7, 2 -/* 03849C 8003789C 01CF2021 */ addu $a0, $t6, $t7 -/* 0384A0 800378A0 908D0000 */ lbu $t5, ($a0) -/* 0384A4 800378A4 8FA9001C */ lw $t1, 0x1c($sp) -/* 0384A8 800378A8 848C0004 */ lh $t4, 4($a0) -/* 0384AC 800378AC 848B0010 */ lh $t3, 0x10($a0) -/* 0384B0 800378B0 240100FF */ li $at, 255 -/* 0384B4 800378B4 11A10055 */ beq $t5, $at, .L80037A0C -/* 0384B8 800378B8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0384BC 800378BC 8C590000 */ lw $t9, ($v0) -/* 0384C0 800378C0 000DC0C0 */ sll $t8, $t5, 3 -/* 0384C4 800378C4 03387021 */ addu $t6, $t9, $t8 -/* 0384C8 800378C8 8DC70000 */ lw $a3, ($t6) -/* 0384CC 800378CC 018B082A */ slt $at, $t4, $t3 -/* 0384D0 800378D0 90E30000 */ lbu $v1, ($a3) -/* 0384D4 800378D4 01803025 */ move $a2, $t4 -/* 0384D8 800378D8 000329C0 */ sll $a1, $v1, 7 -/* 0384DC 800378DC 1020004A */ beqz $at, .L80037A08 -/* 0384E0 800378E0 00A02025 */ move $a0, $a1 -.L800378E4: -/* 0384E4 800378E4 8D590004 */ lw $t9, 4($t2) -/* 0384E8 800378E8 0006C100 */ sll $t8, $a2, 4 -/* 0384EC 800378EC 03381021 */ addu $v0, $t9, $t8 -/* 0384F0 800378F0 904E0000 */ lbu $t6, ($v0) -/* 0384F4 800378F4 24C60001 */ addiu $a2, $a2, 1 -/* 0384F8 800378F8 31CF0080 */ andi $t7, $t6, 0x80 -/* 0384FC 800378FC 15E00040 */ bnez $t7, .L80037A00 -/* 038500 80037900 00000000 */ nop -/* 038504 80037904 84430006 */ lh $v1, 6($v0) -/* 038508 80037908 0005C840 */ sll $t9, $a1, 1 -/* 03850C 8003790C 0323082A */ slt $at, $t9, $v1 -/* 038510 80037910 1020000A */ beqz $at, .L8003793C -/* 038514 80037914 00043840 */ sll $a3, $a0, 1 -/* 038518 80037918 0065C023 */ subu $t8, $v1, $a1 -/* 03851C 8003791C 844E000A */ lh $t6, 0xa($v0) -/* 038520 80037920 8459000E */ lh $t9, 0xe($v0) -/* 038524 80037924 A4580006 */ sh $t8, 6($v0) -/* 038528 80037928 01C57823 */ subu $t7, $t6, $a1 -/* 03852C 8003792C 0325C023 */ subu $t8, $t9, $a1 -/* 038530 80037930 84430006 */ lh $v1, 6($v0) -/* 038534 80037934 A44F000A */ sh $t7, 0xa($v0) -/* 038538 80037938 A458000E */ sh $t8, 0xe($v0) -.L8003793C: -/* 03853C 8003793C 04610008 */ bgez $v1, .L80037960 -/* 038540 80037940 00657021 */ addu $t6, $v1, $a1 -/* 038544 80037944 844F000A */ lh $t7, 0xa($v0) -/* 038548 80037948 8458000E */ lh $t8, 0xe($v0) -/* 03854C 8003794C A44E0006 */ sh $t6, 6($v0) -/* 038550 80037950 01E5C821 */ addu $t9, $t7, $a1 -/* 038554 80037954 03057021 */ addu $t6, $t8, $a1 -/* 038558 80037958 A459000A */ sh $t9, 0xa($v0) -/* 03855C 8003795C A44E000E */ sh $t6, 0xe($v0) -.L80037960: -/* 038560 80037960 84430004 */ lh $v1, 4($v0) -/* 038564 80037964 00000000 */ nop -/* 038568 80037968 00E3082A */ slt $at, $a3, $v1 -/* 03856C 8003796C 10200009 */ beqz $at, .L80037994 -/* 038570 80037970 00647823 */ subu $t7, $v1, $a0 -/* 038574 80037974 84590008 */ lh $t9, 8($v0) -/* 038578 80037978 844E000C */ lh $t6, 0xc($v0) -/* 03857C 8003797C A44F0004 */ sh $t7, 4($v0) -/* 038580 80037980 0324C023 */ subu $t8, $t9, $a0 -/* 038584 80037984 01C47823 */ subu $t7, $t6, $a0 -/* 038588 80037988 84430004 */ lh $v1, 4($v0) -/* 03858C 8003798C A4580008 */ sh $t8, 8($v0) -/* 038590 80037990 A44F000C */ sh $t7, 0xc($v0) -.L80037994: -/* 038594 80037994 04610009 */ bgez $v1, .L800379BC -/* 038598 80037998 0064C821 */ addu $t9, $v1, $a0 -/* 03859C 8003799C 84580008 */ lh $t8, 8($v0) -/* 0385A0 800379A0 844F000C */ lh $t7, 0xc($v0) -/* 0385A4 800379A4 A4590004 */ sh $t9, 4($v0) -/* 0385A8 800379A8 03047021 */ addu $t6, $t8, $a0 -/* 0385AC 800379AC 01E4C821 */ addu $t9, $t7, $a0 -/* 0385B0 800379B0 84430004 */ lh $v1, 4($v0) -/* 0385B4 800379B4 A44E0008 */ sh $t6, 8($v0) -/* 0385B8 800379B8 A459000C */ sh $t9, 0xc($v0) -.L800379BC: -/* 0385BC 800379BC 84580006 */ lh $t8, 6($v0) -/* 0385C0 800379C0 844F000A */ lh $t7, 0xa($v0) -/* 0385C4 800379C4 03097021 */ addu $t6, $t8, $t1 -/* 0385C8 800379C8 8458000E */ lh $t8, 0xe($v0) -/* 0385CC 800379CC A44E0006 */ sh $t6, 6($v0) -/* 0385D0 800379D0 01E9C821 */ addu $t9, $t7, $t1 -/* 0385D4 800379D4 03097021 */ addu $t6, $t8, $t1 -/* 0385D8 800379D8 A459000A */ sh $t9, 0xa($v0) -/* 0385DC 800379DC A44E000E */ sh $t6, 0xe($v0) -/* 0385E0 800379E0 84590008 */ lh $t9, 8($v0) -/* 0385E4 800379E4 844E000C */ lh $t6, 0xc($v0) -/* 0385E8 800379E8 00687821 */ addu $t7, $v1, $t0 -/* 0385EC 800379EC A44F0004 */ sh $t7, 4($v0) -/* 0385F0 800379F0 0328C021 */ addu $t8, $t9, $t0 -/* 0385F4 800379F4 01C87821 */ addu $t7, $t6, $t0 -/* 0385F8 800379F8 A4580008 */ sh $t8, 8($v0) -/* 0385FC 800379FC A44F000C */ sh $t7, 0xc($v0) -.L80037A00: -/* 038600 80037A00 14CBFFB8 */ bne $a2, $t3, .L800378E4 -/* 038604 80037A04 00000000 */ nop -.L80037A08: -/* 038608 80037A08 8FBF0014 */ lw $ra, 0x14($sp) -.L80037A0C: -/* 03860C 80037A0C 27BD0048 */ addiu $sp, $sp, 0x48 -/* 038610 80037A10 03E00008 */ jr $ra -/* 038614 80037A14 00000000 */ nop - diff --git a/asm/non_matchings/object_functions/obj_loop_butterfly.s b/asm/non_matchings/object_functions/obj_loop_butterfly.s deleted file mode 100644 index c7e40e35..00000000 --- a/asm/non_matchings/object_functions/obj_loop_butterfly.s +++ /dev/null @@ -1,992 +0,0 @@ -.late_rodata -glabel D_800E621C -.float 0.1 -glabel D_800E6220 -.float 1.6 -glabel D_800E6224 -.float 1.6 -glabel jpt_800E6228 -.word L80040D30, L80040E54, L80040E54, L800411E4, L8004153C -glabel D_800E623C -.float 22500.0 -glabel D_800E6240 -.float 1.2 -glabel D_800E6244 -.float 1.6 -glabel D_800E6248 -.float 1.6 - -.text -glabel obj_loop_butterfly -/* 041854 80040C54 27BDFF68 */ addiu $sp, $sp, -0x98 -/* 041858 80040C58 AFBF0024 */ sw $ra, 0x24($sp) -/* 04185C 80040C5C AFB00020 */ sw $s0, 0x20($sp) -/* 041860 80040C60 AFA5009C */ sw $a1, 0x9c($sp) -/* 041864 80040C64 8C89003C */ lw $t1, 0x3c($a0) -/* 041868 80040C68 8C880064 */ lw $t0, 0x64($a0) -/* 04186C 80040C6C 912E000A */ lbu $t6, 0xa($t1) -/* 041870 80040C70 8FAC009C */ lw $t4, 0x9c($sp) -/* 041874 80040C74 39CF0002 */ xori $t7, $t6, 2 -/* 041878 80040C78 2DEF0001 */ sltiu $t7, $t7, 1 -/* 04187C 80040C7C AFAF0064 */ sw $t7, 0x64($sp) -/* 041880 80040C80 85030106 */ lh $v1, 0x106($t0) -/* 041884 80040C84 00808025 */ move $s0, $a0 -/* 041888 80040C88 00035400 */ sll $t2, $v1, 0x10 -/* 04188C 80040C8C 000AC403 */ sra $t8, $t2, 0x10 -/* 041890 80040C90 07010004 */ bgez $t8, .L80040CA4 -/* 041894 80040C94 03005025 */ move $t2, $t8 -/* 041898 80040C98 00185023 */ negu $t2, $t8 -/* 04189C 80040C9C 000ACC00 */ sll $t9, $t2, 0x10 -/* 0418A0 80040CA0 00195403 */ sra $t2, $t9, 0x10 -.L80040CA4: -/* 0418A4 80040CA4 014C0019 */ multu $t2, $t4 -/* 0418A8 80040CA8 3C01800E */ lui $at, %hi(D_800E621C) # $at, 0x800e -/* 0418AC 80040CAC C420621C */ lwc1 $f0, %lo(D_800E621C)($at) -/* 0418B0 80040CB0 8FAF0064 */ lw $t7, 0x64($sp) -/* 0418B4 80040CB4 3C01800E */ lui $at, %hi(D_800E6220) # $at, 0x800e -/* 0418B8 80040CB8 46000406 */ mov.s $f16, $f0 -/* 0418BC 80040CBC 00005012 */ mflo $t2 -/* 0418C0 80040CC0 000A6C00 */ sll $t5, $t2, 0x10 -/* 0418C4 80040CC4 11E00005 */ beqz $t7, .L80040CDC -/* 0418C8 80040CC8 000D5403 */ sra $t2, $t5, 0x10 -/* 0418CC 80040CCC C4246220 */ lwc1 $f4, %lo(D_800E6220)($at) -/* 0418D0 80040CD0 00000000 */ nop -/* 0418D4 80040CD4 46040402 */ mul.s $f16, $f0, $f4 -/* 0418D8 80040CD8 00000000 */ nop -.L80040CDC: -/* 0418DC 80040CDC 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 0418E0 80040CE0 44810000 */ mtc1 $at, $f0 -/* 0418E4 80040CE4 8FB80064 */ lw $t8, 0x64($sp) -/* 0418E8 80040CE8 3C01800E */ lui $at, %hi(D_800E6224) # $at, 0x800e -/* 0418EC 80040CEC 13000005 */ beqz $t8, .L80040D04 -/* 0418F0 80040CF0 E7A00078 */ swc1 $f0, 0x78($sp) -/* 0418F4 80040CF4 C4266224 */ lwc1 $f6, %lo(D_800E6224)($at) -/* 0418F8 80040CF8 00000000 */ nop -/* 0418FC 80040CFC 46060202 */ mul.s $f8, $f0, $f6 -/* 041900 80040D00 E7A80078 */ swc1 $f8, 0x78($sp) -.L80040D04: -/* 041904 80040D04 910200FD */ lbu $v0, 0xfd($t0) -/* 041908 80040D08 00000000 */ nop -/* 04190C 80040D0C 2C410005 */ sltiu $at, $v0, 5 -/* 041910 80040D10 102002C9 */ beqz $at, .L80041838 -/* 041914 80040D14 0002C880 */ sll $t9, $v0, 2 -/* 041918 80040D18 3C01800E */ lui $at, %hi(jpt_800E6228) # $at, 0x800e -/* 04191C 80040D1C 00390821 */ addu $at, $at, $t9 -/* 041920 80040D20 8C396228 */ lw $t9, %lo(jpt_800E6228)($at) -/* 041924 80040D24 00000000 */ nop -/* 041928 80040D28 03200008 */ jr $t9 -/* 04192C 80040D2C 00000000 */ nop -glabel L80040D30 -/* 041930 80040D30 44807000 */ mtc1 $zero, $f14 -/* 041934 80040D34 240E0001 */ li $t6, 1 -/* 041938 80040D38 E50E0108 */ swc1 $f14, 0x108($t0) -/* 04193C 80040D3C 952B0008 */ lhu $t3, 8($t1) -/* 041940 80040D40 27AF0044 */ addiu $t7, $sp, 0x44 -/* 041944 80040D44 448B5000 */ mtc1 $t3, $f10 -/* 041948 80040D48 05610005 */ bgez $t3, .L80040D60 -/* 04194C 80040D4C 46805020 */ cvt.s.w $f0, $f10 -/* 041950 80040D50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 041954 80040D54 44819000 */ mtc1 $at, $f18 -/* 041958 80040D58 00000000 */ nop -/* 04195C 80040D5C 46120000 */ add.s $f0, $f0, $f18 -.L80040D60: -/* 041960 80040D60 852D0006 */ lh $t5, 6($t1) -/* 041964 80040D64 852C0002 */ lh $t4, 2($t1) -/* 041968 80040D68 448D3000 */ mtc1 $t5, $f6 -/* 04196C 80040D6C 448C2000 */ mtc1 $t4, $f4 -/* 041970 80040D70 468031A0 */ cvt.s.w $f6, $f6 -/* 041974 80040D74 44070000 */ mfc1 $a3, $f0 -/* 041978 80040D78 E7A00084 */ swc1 $f0, 0x84($sp) -/* 04197C 80040D7C 44063000 */ mfc1 $a2, $f6 -/* 041980 80040D80 AFA90038 */ sw $t1, 0x38($sp) -/* 041984 80040D84 AFA8003C */ sw $t0, 0x3c($sp) -/* 041988 80040D88 AFAF0014 */ sw $t7, 0x14($sp) -/* 04198C 80040D8C AFAE0010 */ sw $t6, 0x10($sp) -/* 041990 80040D90 0C005B7A */ jal obj_dist_racer -/* 041994 80040D94 46802320 */ cvt.s.w $f12, $f4 -/* 041998 80040D98 0002C400 */ sll $t8, $v0, 0x10 -/* 04199C 80040D9C 8FA8003C */ lw $t0, 0x3c($sp) -/* 0419A0 80040DA0 8FA90038 */ lw $t1, 0x38($sp) -/* 0419A4 80040DA4 C7A00084 */ lwc1 $f0, 0x84($sp) -/* 0419A8 80040DA8 0018CC03 */ sra $t9, $t8, 0x10 -/* 0419AC 80040DAC 1B200008 */ blez $t9, .L80040DD0 -/* 0419B0 80040DB0 24180001 */ li $t8, 1 -/* 0419B4 80040DB4 8FAB0044 */ lw $t3, 0x44($sp) -/* 0419B8 80040DB8 240C00F0 */ li $t4, 240 -/* 0419BC 80040DBC 240D0003 */ li $t5, 3 -/* 0419C0 80040DC0 A50C0104 */ sh $t4, 0x104($t0) -/* 0419C4 80040DC4 A10D00FD */ sb $t5, 0xfd($t0) -/* 0419C8 80040DC8 10000014 */ b .L80040E1C -/* 0419CC 80040DCC AD0B0100 */ sw $t3, 0x100($t0) -.L80040DD0: -/* 0419D0 80040DD0 852F0006 */ lh $t7, 6($t1) -/* 0419D4 80040DD4 852E0002 */ lh $t6, 2($t1) -/* 0419D8 80040DD8 448F5000 */ mtc1 $t7, $f10 -/* 0419DC 80040DDC 448E4000 */ mtc1 $t6, $f8 -/* 0419E0 80040DE0 468052A0 */ cvt.s.w $f10, $f10 -/* 0419E4 80040DE4 44807000 */ mtc1 $zero, $f14 -/* 0419E8 80040DE8 44070000 */ mfc1 $a3, $f0 -/* 0419EC 80040DEC 44065000 */ mfc1 $a2, $f10 -/* 0419F0 80040DF0 AFA8003C */ sw $t0, 0x3c($sp) -/* 0419F4 80040DF4 AFB80010 */ sw $t8, 0x10($sp) -/* 0419F8 80040DF8 0C005B1A */ jal obj_butterfly_node -/* 0419FC 80040DFC 46804320 */ cvt.s.w $f12, $f8 -/* 041A00 80040E00 8FA8003C */ lw $t0, 0x3c($sp) -/* 041A04 80040E04 10400005 */ beqz $v0, .L80040E1C -/* 041A08 80040E08 AD020100 */ sw $v0, 0x100($t0) -/* 041A0C 80040E0C 241900F0 */ li $t9, 240 -/* 041A10 80040E10 240B0003 */ li $t3, 3 -/* 041A14 80040E14 A5190104 */ sh $t9, 0x104($t0) -/* 041A18 80040E18 A10B00FD */ sb $t3, 0xfd($t0) -.L80040E1C: -/* 041A1C 80040E1C 860C0018 */ lh $t4, 0x18($s0) -/* 041A20 80040E20 8FAD009C */ lw $t5, 0x9c($sp) -/* 041A24 80040E24 24190078 */ li $t9, 120 -/* 041A28 80040E28 018D7021 */ addu $t6, $t4, $t5 -/* 041A2C 80040E2C 31CF00FF */ andi $t7, $t6, 0xff -/* 041A30 80040E30 A60F0018 */ sh $t7, 0x18($s0) -/* 041A34 80040E34 8FB80064 */ lw $t8, 0x64($sp) -/* 041A38 80040E38 00000000 */ nop -/* 041A3C 80040E3C 13000002 */ beqz $t8, .L80040E48 -/* 041A40 80040E40 00000000 */ nop -/* 041A44 80040E44 A6190018 */ sh $t9, 0x18($s0) -.L80040E48: -/* 041A48 80040E48 910200FD */ lbu $v0, 0xfd($t0) -/* 041A4C 80040E4C 1000027A */ b .L80041838 -/* 041A50 80040E50 00000000 */ nop -glabel L80040E54 -/* 041A54 80040E54 28610480 */ slti $at, $v1, 0x480 -/* 041A58 80040E58 1020000C */ beqz $at, .L80040E8C -/* 041A5C 80040E5C 00000000 */ nop -/* 041A60 80040E60 8FAB009C */ lw $t3, 0x9c($sp) -/* 041A64 80040E64 240F0480 */ li $t7, 1152 -/* 041A68 80040E68 000B6100 */ sll $t4, $t3, 4 -/* 041A6C 80040E6C 006C6821 */ addu $t5, $v1, $t4 -/* 041A70 80040E70 A50D0106 */ sh $t5, 0x106($t0) -/* 041A74 80040E74 850E0106 */ lh $t6, 0x106($t0) -/* 041A78 80040E78 00000000 */ nop -/* 041A7C 80040E7C 29C10481 */ slti $at, $t6, 0x481 -/* 041A80 80040E80 14200002 */ bnez $at, .L80040E8C -/* 041A84 80040E84 00000000 */ nop -/* 041A88 80040E88 A50F0106 */ sh $t7, 0x106($t0) -.L80040E8C: -/* 041A8C 80040E8C 85380002 */ lh $t8, 2($t1) -/* 041A90 80040E90 C612000C */ lwc1 $f18, 0xc($s0) -/* 041A94 80040E94 C6080014 */ lwc1 $f8, 0x14($s0) -/* 041A98 80040E98 85390006 */ lh $t9, 6($t1) -/* 041A9C 80040E9C 44982000 */ mtc1 $t8, $f4 -/* 041AA0 80040EA0 44995000 */ mtc1 $t9, $f10 -/* 041AA4 80040EA4 468021A0 */ cvt.s.w $f6, $f4 -/* 041AA8 80040EA8 8FAB009C */ lw $t3, 0x9c($sp) -/* 041AAC 80040EAC E7B0007C */ swc1 $f16, 0x7c($sp) -/* 041AB0 80040EB0 46805120 */ cvt.s.w $f4, $f10 -/* 041AB4 80040EB4 000B6100 */ sll $t4, $t3, 4 -/* 041AB8 80040EB8 AFAC002C */ sw $t4, 0x2c($sp) -/* 041ABC 80040EBC 46069301 */ sub.s $f12, $f18, $f6 -/* 041AC0 80040EC0 A7AA0072 */ sh $t2, 0x72($sp) -/* 041AC4 80040EC4 46044381 */ sub.s $f14, $f8, $f4 -/* 041AC8 80040EC8 E7AC0094 */ swc1 $f12, 0x94($sp) -/* 041ACC 80040ECC E7AE008C */ swc1 $f14, 0x8c($sp) -/* 041AD0 80040ED0 AFA90038 */ sw $t1, 0x38($sp) -/* 041AD4 80040ED4 0C01C1D4 */ jal arctan2_f -/* 041AD8 80040ED8 AFA8003C */ sw $t0, 0x3c($sp) -/* 041ADC 80040EDC 86040000 */ lh $a0, ($s0) -/* 041AE0 80040EE0 8FA8003C */ lw $t0, 0x3c($sp) -/* 041AE4 80040EE4 00441823 */ subu $v1, $v0, $a0 -/* 041AE8 80040EE8 00037C00 */ sll $t7, $v1, 0x10 -/* 041AEC 80040EEC 8FA90038 */ lw $t1, 0x38($sp) -/* 041AF0 80040EF0 87AA0072 */ lh $t2, 0x72($sp) -/* 041AF4 80040EF4 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 041AF8 80040EF8 000FC403 */ sra $t8, $t7, 0x10 -/* 041AFC 80040EFC 0701000A */ bgez $t8, .L80040F28 -/* 041B00 80040F00 03001825 */ move $v1, $t8 -/* 041B04 80040F04 000AC823 */ negu $t9, $t2 -/* 041B08 80040F08 0338082A */ slt $at, $t9, $t8 -/* 041B0C 80040F0C 10200004 */ beqz $at, .L80040F20 -/* 041B10 80040F10 008A6023 */ subu $t4, $a0, $t2 -/* 041B14 80040F14 00985821 */ addu $t3, $a0, $t8 -/* 041B18 80040F18 1000000B */ b .L80040F48 -/* 041B1C 80040F1C A60B0000 */ sh $t3, ($s0) -.L80040F20: -/* 041B20 80040F20 10000009 */ b .L80040F48 -/* 041B24 80040F24 A60C0000 */ sh $t4, ($s0) -.L80040F28: -/* 041B28 80040F28 18600007 */ blez $v1, .L80040F48 -/* 041B2C 80040F2C 006A082A */ slt $at, $v1, $t2 -/* 041B30 80040F30 10200004 */ beqz $at, .L80040F44 -/* 041B34 80040F34 008A7021 */ addu $t6, $a0, $t2 -/* 041B38 80040F38 00836821 */ addu $t5, $a0, $v1 -/* 041B3C 80040F3C 10000002 */ b .L80040F48 -/* 041B40 80040F40 A60D0000 */ sh $t5, ($s0) -.L80040F44: -/* 041B44 80040F44 A60E0000 */ sh $t6, ($s0) -.L80040F48: -/* 041B48 80040F48 852F0004 */ lh $t7, 4($t1) -/* 041B4C 80040F4C C60A0010 */ lwc1 $f10, 0x10($s0) -/* 041B50 80040F50 448F9000 */ mtc1 $t7, $f18 -/* 041B54 80040F54 44804000 */ mtc1 $zero, $f8 -/* 041B58 80040F58 468091A0 */ cvt.s.w $f6, $f18 -/* 041B5C 80040F5C 8FB8009C */ lw $t8, 0x9c($sp) -/* 041B60 80040F60 240F0001 */ li $t7, 1 -/* 041B64 80040F64 460A3001 */ sub.s $f0, $f6, $f10 -/* 041B68 80040F68 4608003C */ c.lt.s $f0, $f8 -/* 041B6C 80040F6C 00000000 */ nop -/* 041B70 80040F70 4500000F */ bc1f .L80040FB0 -/* 041B74 80040F74 00000000 */ nop -/* 041B78 80040F78 44989000 */ mtc1 $t8, $f18 -/* 041B7C 80040F7C C6040020 */ lwc1 $f4, 0x20($s0) -/* 041B80 80040F80 468091A0 */ cvt.s.w $f6, $f18 -/* 041B84 80040F84 46068282 */ mul.s $f10, $f16, $f6 -/* 041B88 80040F88 460A2201 */ sub.s $f8, $f4, $f10 -/* 041B8C 80040F8C E6080020 */ swc1 $f8, 0x20($s0) -/* 041B90 80040F90 C6120020 */ lwc1 $f18, 0x20($s0) -/* 041B94 80040F94 00000000 */ nop -/* 041B98 80040F98 4600903C */ c.lt.s $f18, $f0 -/* 041B9C 80040F9C 00000000 */ nop -/* 041BA0 80040FA0 4500001A */ bc1f .L8004100C -/* 041BA4 80040FA4 00000000 */ nop -/* 041BA8 80040FA8 10000018 */ b .L8004100C -/* 041BAC 80040FAC E6000020 */ swc1 $f0, 0x20($s0) -.L80040FB0: -/* 041BB0 80040FB0 44803000 */ mtc1 $zero, $f6 -/* 041BB4 80040FB4 8FB9009C */ lw $t9, 0x9c($sp) -/* 041BB8 80040FB8 4600303C */ c.lt.s $f6, $f0 -/* 041BBC 80040FBC 00000000 */ nop -/* 041BC0 80040FC0 4500000F */ bc1f .L80041000 -/* 041BC4 80040FC4 00000000 */ nop -/* 041BC8 80040FC8 44995000 */ mtc1 $t9, $f10 -/* 041BCC 80040FCC C6040020 */ lwc1 $f4, 0x20($s0) -/* 041BD0 80040FD0 46805220 */ cvt.s.w $f8, $f10 -/* 041BD4 80040FD4 46088482 */ mul.s $f18, $f16, $f8 -/* 041BD8 80040FD8 46122180 */ add.s $f6, $f4, $f18 -/* 041BDC 80040FDC E6060020 */ swc1 $f6, 0x20($s0) -/* 041BE0 80040FE0 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 041BE4 80040FE4 00000000 */ nop -/* 041BE8 80040FE8 460A003C */ c.lt.s $f0, $f10 -/* 041BEC 80040FEC 00000000 */ nop -/* 041BF0 80040FF0 45000006 */ bc1f .L8004100C -/* 041BF4 80040FF4 00000000 */ nop -/* 041BF8 80040FF8 10000004 */ b .L8004100C -/* 041BFC 80040FFC E6000020 */ swc1 $f0, 0x20($s0) -.L80041000: -/* 041C00 80041000 44804000 */ mtc1 $zero, $f8 -/* 041C04 80041004 00000000 */ nop -/* 041C08 80041008 E6080020 */ swc1 $f8, 0x20($s0) -.L8004100C: -/* 041C0C 8004100C 910B00FD */ lbu $t3, 0xfd($t0) -/* 041C10 80041010 24010001 */ li $at, 1 -/* 041C14 80041014 1561003B */ bne $t3, $at, .L80041104 -/* 041C18 80041018 27B80044 */ addiu $t8, $sp, 0x44 -/* 041C1C 8004101C 952C0008 */ lhu $t4, 8($t1) -/* 041C20 80041020 44807000 */ mtc1 $zero, $f14 -/* 041C24 80041024 448C2000 */ mtc1 $t4, $f4 -/* 041C28 80041028 05810005 */ bgez $t4, .L80041040 -/* 041C2C 8004102C 46802020 */ cvt.s.w $f0, $f4 -/* 041C30 80041030 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 041C34 80041034 44819000 */ mtc1 $at, $f18 -/* 041C38 80041038 00000000 */ nop -/* 041C3C 8004103C 46120000 */ add.s $f0, $f0, $f18 -.L80041040: -/* 041C40 80041040 852E0006 */ lh $t6, 6($t1) -/* 041C44 80041044 852D0002 */ lh $t5, 2($t1) -/* 041C48 80041048 448E5000 */ mtc1 $t6, $f10 -/* 041C4C 8004104C 448D3000 */ mtc1 $t5, $f6 -/* 041C50 80041050 468052A0 */ cvt.s.w $f10, $f10 -/* 041C54 80041054 44070000 */ mfc1 $a3, $f0 -/* 041C58 80041058 E7A00084 */ swc1 $f0, 0x84($sp) -/* 041C5C 8004105C 44065000 */ mfc1 $a2, $f10 -/* 041C60 80041060 AFA90038 */ sw $t1, 0x38($sp) -/* 041C64 80041064 AFA8003C */ sw $t0, 0x3c($sp) -/* 041C68 80041068 AFB80014 */ sw $t8, 0x14($sp) -/* 041C6C 8004106C AFAF0010 */ sw $t7, 0x10($sp) -/* 041C70 80041070 0C005B7A */ jal obj_dist_racer -/* 041C74 80041074 46803320 */ cvt.s.w $f12, $f6 -/* 041C78 80041078 0002CC00 */ sll $t9, $v0, 0x10 -/* 041C7C 8004107C 8FA8003C */ lw $t0, 0x3c($sp) -/* 041C80 80041080 8FA90038 */ lw $t1, 0x38($sp) -/* 041C84 80041084 C7A00084 */ lwc1 $f0, 0x84($sp) -/* 041C88 80041088 00195C03 */ sra $t3, $t9, 0x10 -/* 041C8C 8004108C 19600008 */ blez $t3, .L800410B0 -/* 041C90 80041090 24190001 */ li $t9, 1 -/* 041C94 80041094 8FAC0044 */ lw $t4, 0x44($sp) -/* 041C98 80041098 240D0078 */ li $t5, 120 -/* 041C9C 8004109C 240E0003 */ li $t6, 3 -/* 041CA0 800410A0 A50D0104 */ sh $t5, 0x104($t0) -/* 041CA4 800410A4 A10E00FD */ sb $t6, 0xfd($t0) -/* 041CA8 800410A8 10000016 */ b .L80041104 -/* 041CAC 800410AC AD0C0100 */ sw $t4, 0x100($t0) -.L800410B0: -/* 041CB0 800410B0 85380006 */ lh $t8, 6($t1) -/* 041CB4 800410B4 852F0002 */ lh $t7, 2($t1) -/* 041CB8 800410B8 44982000 */ mtc1 $t8, $f4 -/* 041CBC 800410BC 448F4000 */ mtc1 $t7, $f8 -/* 041CC0 800410C0 46802120 */ cvt.s.w $f4, $f4 -/* 041CC4 800410C4 44807000 */ mtc1 $zero, $f14 -/* 041CC8 800410C8 44070000 */ mfc1 $a3, $f0 -/* 041CCC 800410CC 44062000 */ mfc1 $a2, $f4 -/* 041CD0 800410D0 AFA90038 */ sw $t1, 0x38($sp) -/* 041CD4 800410D4 AFA8003C */ sw $t0, 0x3c($sp) -/* 041CD8 800410D8 AFB90010 */ sw $t9, 0x10($sp) -/* 041CDC 800410DC 0C005B1A */ jal obj_butterfly_node -/* 041CE0 800410E0 46804320 */ cvt.s.w $f12, $f8 -/* 041CE4 800410E4 8FA8003C */ lw $t0, 0x3c($sp) -/* 041CE8 800410E8 8FA90038 */ lw $t1, 0x38($sp) -/* 041CEC 800410EC 10400005 */ beqz $v0, .L80041104 -/* 041CF0 800410F0 AD020100 */ sw $v0, 0x100($t0) -/* 041CF4 800410F4 240B00F0 */ li $t3, 240 -/* 041CF8 800410F8 240C0003 */ li $t4, 3 -/* 041CFC 800410FC A50B0104 */ sh $t3, 0x104($t0) -/* 041D00 80041100 A10C00FD */ sb $t4, 0xfd($t0) -.L80041104: -/* 041D04 80041104 910D00FD */ lbu $t5, 0xfd($t0) -/* 041D08 80041108 24010003 */ li $at, 3 -/* 041D0C 8004110C 11A1002C */ beq $t5, $at, .L800411C0 -/* 041D10 80041110 00000000 */ nop -/* 041D14 80041114 852E0004 */ lh $t6, 4($t1) -/* 041D18 80041118 C7A00094 */ lwc1 $f0, 0x94($sp) -/* 041D1C 8004111C 448E3000 */ mtc1 $t6, $f6 -/* 041D20 80041120 C6120010 */ lwc1 $f18, 0x10($s0) -/* 041D24 80041124 468032A0 */ cvt.s.w $f10, $f6 -/* 041D28 80041128 C7AE008C */ lwc1 $f14, 0x8c($sp) -/* 041D2C 8004112C AFA8003C */ sw $t0, 0x3c($sp) -/* 041D30 80041130 46000202 */ mul.s $f8, $f0, $f0 -/* 041D34 80041134 460A9081 */ sub.s $f2, $f18, $f10 -/* 041D38 80041138 E7A20090 */ swc1 $f2, 0x90($sp) -/* 041D3C 8004113C 46021102 */ mul.s $f4, $f2, $f2 -/* 041D40 80041140 00000000 */ nop -/* 041D44 80041144 460E7482 */ mul.s $f18, $f14, $f14 -/* 041D48 80041148 46044180 */ add.s $f6, $f8, $f4 -/* 041D4C 8004114C 0C0326B4 */ jal sqrtf -/* 041D50 80041150 46123300 */ add.s $f12, $f6, $f18 -/* 041D54 80041154 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 041D58 80041158 44815000 */ mtc1 $at, $f10 -/* 041D5C 8004115C 8FA8003C */ lw $t0, 0x3c($sp) -/* 041D60 80041160 460A003C */ c.lt.s $f0, $f10 -/* 041D64 80041164 C7A20090 */ lwc1 $f2, 0x90($sp) -/* 041D68 80041168 45000015 */ bc1f .L800411C0 -/* 041D6C 8004116C 00000000 */ nop -/* 041D70 80041170 AFA8003C */ sw $t0, 0x3c($sp) -/* 041D74 80041174 0C004558 */ jal ignore_bounds_check -/* 041D78 80041178 E7A20090 */ swc1 $f2, 0x90($sp) -/* 041D7C 8004117C C7A20090 */ lwc1 $f2, 0x90($sp) -/* 041D80 80041180 C7A80094 */ lwc1 $f8, 0x94($sp) -/* 041D84 80041184 C7B2008C */ lwc1 $f18, 0x8c($sp) -/* 041D88 80041188 46001187 */ neg.s $f6, $f2 -/* 041D8C 8004118C 46004107 */ neg.s $f4, $f8 -/* 041D90 80041190 46009287 */ neg.s $f10, $f18 -/* 041D94 80041194 44075000 */ mfc1 $a3, $f10 -/* 041D98 80041198 44052000 */ mfc1 $a1, $f4 -/* 041D9C 8004119C 44063000 */ mfc1 $a2, $f6 -/* 041DA0 800411A0 0C00455C */ jal move_object -/* 041DA4 800411A4 02002025 */ move $a0, $s0 -/* 041DA8 800411A8 8FA8003C */ lw $t0, 0x3c($sp) -/* 041DAC 800411AC 44804000 */ mtc1 $zero, $f8 -/* 041DB0 800411B0 44802000 */ mtc1 $zero, $f4 -/* 041DB4 800411B4 E6080020 */ swc1 $f8, 0x20($s0) -/* 041DB8 800411B8 A10000FD */ sb $zero, 0xfd($t0) -/* 041DBC 800411BC E5040108 */ swc1 $f4, 0x108($t0) -.L800411C0: -/* 041DC0 800411C0 860F0018 */ lh $t7, 0x18($s0) -/* 041DC4 800411C4 8FB8002C */ lw $t8, 0x2c($sp) -/* 041DC8 800411C8 00000000 */ nop -/* 041DCC 800411CC 01F8C821 */ addu $t9, $t7, $t8 -/* 041DD0 800411D0 332B00FF */ andi $t3, $t9, 0xff -/* 041DD4 800411D4 A60B0018 */ sh $t3, 0x18($s0) -/* 041DD8 800411D8 910200FD */ lbu $v0, 0xfd($t0) -/* 041DDC 800411DC 10000196 */ b .L80041838 -/* 041DE0 800411E0 00000000 */ nop -glabel L800411E4 -/* 041DE4 800411E4 28610480 */ slti $at, $v1, 0x480 -/* 041DE8 800411E8 1020000C */ beqz $at, .L8004121C -/* 041DEC 800411EC 00000000 */ nop -/* 041DF0 800411F0 8FAC009C */ lw $t4, 0x9c($sp) -/* 041DF4 800411F4 24180480 */ li $t8, 1152 -/* 041DF8 800411F8 000C6900 */ sll $t5, $t4, 4 -/* 041DFC 800411FC 006D7021 */ addu $t6, $v1, $t5 -/* 041E00 80041200 A50E0106 */ sh $t6, 0x106($t0) -/* 041E04 80041204 850F0106 */ lh $t7, 0x106($t0) -/* 041E08 80041208 00000000 */ nop -/* 041E0C 8004120C 29E10481 */ slti $at, $t7, 0x481 -/* 041E10 80041210 14200002 */ bnez $at, .L8004121C -/* 041E14 80041214 00000000 */ nop -/* 041E18 80041218 A5180106 */ sh $t8, 0x106($t0) -.L8004121C: -/* 041E1C 8004121C 85390002 */ lh $t9, 2($t1) -/* 041E20 80041220 8D020100 */ lw $v0, 0x100($t0) -/* 041E24 80041224 44999000 */ mtc1 $t9, $f18 -/* 041E28 80041228 952C0008 */ lhu $t4, 8($t1) -/* 041E2C 8004122C 468092A0 */ cvt.s.w $f10, $f18 -/* 041E30 80041230 C446000C */ lwc1 $f6, 0xc($v0) -/* 041E34 80041234 000C6840 */ sll $t5, $t4, 1 -/* 041E38 80041238 460A3081 */ sub.s $f2, $f6, $f10 -/* 041E3C 8004123C 448D3000 */ mtc1 $t5, $f6 -/* 041E40 80041240 852B0006 */ lh $t3, 6($t1) -/* 041E44 80041244 46803020 */ cvt.s.w $f0, $f6 -/* 041E48 80041248 448B2000 */ mtc1 $t3, $f4 -/* 041E4C 8004124C C4480014 */ lwc1 $f8, 0x14($v0) -/* 041E50 80041250 46000002 */ mul.s $f0, $f0, $f0 -/* 041E54 80041254 8FAE009C */ lw $t6, 0x9c($sp) -/* 041E58 80041258 27AD0044 */ addiu $t5, $sp, 0x44 -/* 041E5C 8004125C 000E7900 */ sll $t7, $t6, 4 -/* 041E60 80041260 468024A0 */ cvt.s.w $f18, $f4 -/* 041E64 80041264 AFAF002C */ sw $t7, 0x2c($sp) -/* 041E68 80041268 240C0001 */ li $t4, 1 -/* 041E6C 8004126C 46021282 */ mul.s $f10, $f2, $f2 -/* 041E70 80041270 46124301 */ sub.s $f12, $f8, $f18 -/* 041E74 80041274 460C6102 */ mul.s $f4, $f12, $f12 -/* 041E78 80041278 46045200 */ add.s $f8, $f10, $f4 -/* 041E7C 8004127C 4608003C */ c.lt.s $f0, $f8 -/* 041E80 80041280 00000000 */ nop -/* 041E84 80041284 4500003E */ bc1f .L80041380 -/* 041E88 80041288 00000000 */ nop -/* 041E8C 8004128C AD000100 */ sw $zero, 0x100($t0) -/* 041E90 80041290 95380008 */ lhu $t8, 8($t1) -/* 041E94 80041294 44807000 */ mtc1 $zero, $f14 -/* 041E98 80041298 44989000 */ mtc1 $t8, $f18 -/* 041E9C 8004129C 07010005 */ bgez $t8, .L800412B4 -/* 041EA0 800412A0 46809020 */ cvt.s.w $f0, $f18 -/* 041EA4 800412A4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 041EA8 800412A8 44813000 */ mtc1 $at, $f6 -/* 041EAC 800412AC 00000000 */ nop -/* 041EB0 800412B0 46060000 */ add.s $f0, $f0, $f6 -.L800412B4: -/* 041EB4 800412B4 85390002 */ lh $t9, 2($t1) -/* 041EB8 800412B8 852B0006 */ lh $t3, 6($t1) -/* 041EBC 800412BC 44995000 */ mtc1 $t9, $f10 -/* 041EC0 800412C0 448B2000 */ mtc1 $t3, $f4 -/* 041EC4 800412C4 44070000 */ mfc1 $a3, $f0 -/* 041EC8 800412C8 46802120 */ cvt.s.w $f4, $f4 -/* 041ECC 800412CC E7B0007C */ swc1 $f16, 0x7c($sp) -/* 041ED0 800412D0 E7A00084 */ swc1 $f0, 0x84($sp) -/* 041ED4 800412D4 44062000 */ mfc1 $a2, $f4 -/* 041ED8 800412D8 A7AA0072 */ sh $t2, 0x72($sp) -/* 041EDC 800412DC AFA90038 */ sw $t1, 0x38($sp) -/* 041EE0 800412E0 AFA8003C */ sw $t0, 0x3c($sp) -/* 041EE4 800412E4 AFAD0014 */ sw $t5, 0x14($sp) -/* 041EE8 800412E8 AFAC0010 */ sw $t4, 0x10($sp) -/* 041EEC 800412EC 0C005B7A */ jal obj_dist_racer -/* 041EF0 800412F0 46805320 */ cvt.s.w $f12, $f10 -/* 041EF4 800412F4 00027400 */ sll $t6, $v0, 0x10 -/* 041EF8 800412F8 8FA8003C */ lw $t0, 0x3c($sp) -/* 041EFC 800412FC 8FA90038 */ lw $t1, 0x38($sp) -/* 041F00 80041300 87AA0072 */ lh $t2, 0x72($sp) -/* 041F04 80041304 C7A00084 */ lwc1 $f0, 0x84($sp) -/* 041F08 80041308 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 041F0C 8004130C 000E7C03 */ sra $t7, $t6, 0x10 -/* 041F10 80041310 19E00006 */ blez $t7, .L8004132C -/* 041F14 80041314 240D0001 */ li $t5, 1 -/* 041F18 80041318 8FB80044 */ lw $t8, 0x44($sp) -/* 041F1C 8004131C 241900F0 */ li $t9, 240 -/* 041F20 80041320 A5190104 */ sh $t9, 0x104($t0) -/* 041F24 80041324 10000016 */ b .L80041380 -/* 041F28 80041328 AD180100 */ sw $t8, 0x100($t0) -.L8004132C: -/* 041F2C 8004132C 852C0006 */ lh $t4, 6($t1) -/* 041F30 80041330 852B0002 */ lh $t3, 2($t1) -/* 041F34 80041334 448C9000 */ mtc1 $t4, $f18 -/* 041F38 80041338 448B4000 */ mtc1 $t3, $f8 -/* 041F3C 8004133C 468094A0 */ cvt.s.w $f18, $f18 -/* 041F40 80041340 44807000 */ mtc1 $zero, $f14 -/* 041F44 80041344 44070000 */ mfc1 $a3, $f0 -/* 041F48 80041348 44069000 */ mfc1 $a2, $f18 -/* 041F4C 8004134C E7B0007C */ swc1 $f16, 0x7c($sp) -/* 041F50 80041350 A7AA0072 */ sh $t2, 0x72($sp) -/* 041F54 80041354 AFA8003C */ sw $t0, 0x3c($sp) -/* 041F58 80041358 AFAD0010 */ sw $t5, 0x10($sp) -/* 041F5C 8004135C 0C005B1A */ jal obj_butterfly_node -/* 041F60 80041360 46804320 */ cvt.s.w $f12, $f8 -/* 041F64 80041364 8FA8003C */ lw $t0, 0x3c($sp) -/* 041F68 80041368 87AA0072 */ lh $t2, 0x72($sp) -/* 041F6C 8004136C C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 041F70 80041370 10400003 */ beqz $v0, .L80041380 -/* 041F74 80041374 AD020100 */ sw $v0, 0x100($t0) -/* 041F78 80041378 240E00F0 */ li $t6, 240 -/* 041F7C 8004137C A50E0104 */ sh $t6, 0x104($t0) -.L80041380: -/* 041F80 80041380 8D020100 */ lw $v0, 0x100($t0) -/* 041F84 80041384 240E0001 */ li $t6, 1 -/* 041F88 80041388 10400062 */ beqz $v0, .L80041514 -/* 041F8C 8004138C 00000000 */ nop -/* 041F90 80041390 C606000C */ lwc1 $f6, 0xc($s0) -/* 041F94 80041394 C44A000C */ lwc1 $f10, 0xc($v0) -/* 041F98 80041398 C6040014 */ lwc1 $f4, 0x14($s0) -/* 041F9C 8004139C C4480014 */ lwc1 $f8, 0x14($v0) -/* 041FA0 800413A0 460A3301 */ sub.s $f12, $f6, $f10 -/* 041FA4 800413A4 E7B0007C */ swc1 $f16, 0x7c($sp) -/* 041FA8 800413A8 46082381 */ sub.s $f14, $f4, $f8 -/* 041FAC 800413AC E7AC0094 */ swc1 $f12, 0x94($sp) -/* 041FB0 800413B0 E7AE008C */ swc1 $f14, 0x8c($sp) -/* 041FB4 800413B4 A7AA0072 */ sh $t2, 0x72($sp) -/* 041FB8 800413B8 0C01C1D4 */ jal arctan2_f -/* 041FBC 800413BC AFA8003C */ sw $t0, 0x3c($sp) -/* 041FC0 800413C0 86040000 */ lh $a0, ($s0) -/* 041FC4 800413C4 8FA8003C */ lw $t0, 0x3c($sp) -/* 041FC8 800413C8 00441823 */ subu $v1, $v0, $a0 -/* 041FCC 800413CC 0003CC00 */ sll $t9, $v1, 0x10 -/* 041FD0 800413D0 87AA0072 */ lh $t2, 0x72($sp) -/* 041FD4 800413D4 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 041FD8 800413D8 00195C03 */ sra $t3, $t9, 0x10 -/* 041FDC 800413DC 0561000A */ bgez $t3, .L80041408 -/* 041FE0 800413E0 01601825 */ move $v1, $t3 -/* 041FE4 800413E4 000A6023 */ negu $t4, $t2 -/* 041FE8 800413E8 018B082A */ slt $at, $t4, $t3 -/* 041FEC 800413EC 10200004 */ beqz $at, .L80041400 -/* 041FF0 800413F0 008A7023 */ subu $t6, $a0, $t2 -/* 041FF4 800413F4 008B6821 */ addu $t5, $a0, $t3 -/* 041FF8 800413F8 1000000B */ b .L80041428 -/* 041FFC 800413FC A60D0000 */ sh $t5, ($s0) -.L80041400: -/* 042000 80041400 10000009 */ b .L80041428 -/* 042004 80041404 A60E0000 */ sh $t6, ($s0) -.L80041408: -/* 042008 80041408 18600007 */ blez $v1, .L80041428 -/* 04200C 8004140C 006A082A */ slt $at, $v1, $t2 -/* 042010 80041410 10200004 */ beqz $at, .L80041424 -/* 042014 80041414 008AC021 */ addu $t8, $a0, $t2 -/* 042018 80041418 00837821 */ addu $t7, $a0, $v1 -/* 04201C 8004141C 10000002 */ b .L80041428 -/* 042020 80041420 A60F0000 */ sh $t7, ($s0) -.L80041424: -/* 042024 80041424 A6180000 */ sh $t8, ($s0) -.L80041428: -/* 042028 80041428 8D190100 */ lw $t9, 0x100($t0) -/* 04202C 8004142C 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 042030 80041430 44813000 */ mtc1 $at, $f6 -/* 042034 80041434 C7320010 */ lwc1 $f18, 0x10($t9) -/* 042038 80041438 C6040010 */ lwc1 $f4, 0x10($s0) -/* 04203C 8004143C 46069280 */ add.s $f10, $f18, $f6 -/* 042040 80041440 44804000 */ mtc1 $zero, $f8 -/* 042044 80041444 46045001 */ sub.s $f0, $f10, $f4 -/* 042048 80041448 8FAB009C */ lw $t3, 0x9c($sp) -/* 04204C 8004144C 4608003C */ c.lt.s $f0, $f8 -/* 042050 80041450 240D0004 */ li $t5, 4 -/* 042054 80041454 4500000F */ bc1f .L80041494 -/* 042058 80041458 00000000 */ nop -/* 04205C 8004145C 448B3000 */ mtc1 $t3, $f6 -/* 042060 80041460 C6120020 */ lwc1 $f18, 0x20($s0) -/* 042064 80041464 468032A0 */ cvt.s.w $f10, $f6 -/* 042068 80041468 460A8102 */ mul.s $f4, $f16, $f10 -/* 04206C 8004146C 46049201 */ sub.s $f8, $f18, $f4 -/* 042070 80041470 E6080020 */ swc1 $f8, 0x20($s0) -/* 042074 80041474 C6060020 */ lwc1 $f6, 0x20($s0) -/* 042078 80041478 00000000 */ nop -/* 04207C 8004147C 4600303C */ c.lt.s $f6, $f0 -/* 042080 80041480 00000000 */ nop -/* 042084 80041484 45000016 */ bc1f .L800414E0 -/* 042088 80041488 00000000 */ nop -/* 04208C 8004148C 10000014 */ b .L800414E0 -/* 042090 80041490 E6000020 */ swc1 $f0, 0x20($s0) -.L80041494: -/* 042094 80041494 44805000 */ mtc1 $zero, $f10 -/* 042098 80041498 8FAC009C */ lw $t4, 0x9c($sp) -/* 04209C 8004149C 4600503C */ c.lt.s $f10, $f0 -/* 0420A0 800414A0 00000000 */ nop -/* 0420A4 800414A4 4500000E */ bc1f .L800414E0 -/* 0420A8 800414A8 00000000 */ nop -/* 0420AC 800414AC 448C2000 */ mtc1 $t4, $f4 -/* 0420B0 800414B0 C6120020 */ lwc1 $f18, 0x20($s0) -/* 0420B4 800414B4 46802220 */ cvt.s.w $f8, $f4 -/* 0420B8 800414B8 46088182 */ mul.s $f6, $f16, $f8 -/* 0420BC 800414BC 46069280 */ add.s $f10, $f18, $f6 -/* 0420C0 800414C0 E60A0020 */ swc1 $f10, 0x20($s0) -/* 0420C4 800414C4 C6040020 */ lwc1 $f4, 0x20($s0) -/* 0420C8 800414C8 00000000 */ nop -/* 0420CC 800414CC 4604003C */ c.lt.s $f0, $f4 -/* 0420D0 800414D0 00000000 */ nop -/* 0420D4 800414D4 45000002 */ bc1f .L800414E0 -/* 0420D8 800414D8 00000000 */ nop -/* 0420DC 800414DC E6000020 */ swc1 $f0, 0x20($s0) -.L800414E0: -/* 0420E0 800414E0 C7A00094 */ lwc1 $f0, 0x94($sp) -/* 0420E4 800414E4 C7A2008C */ lwc1 $f2, 0x8c($sp) -/* 0420E8 800414E8 46000202 */ mul.s $f8, $f0, $f0 -/* 0420EC 800414EC 3C014380 */ li $at, 0x43800000 # 256.000000 -/* 0420F0 800414F0 44815000 */ mtc1 $at, $f10 -/* 0420F4 800414F4 46021482 */ mul.s $f18, $f2, $f2 -/* 0420F8 800414F8 46124180 */ add.s $f6, $f8, $f18 -/* 0420FC 800414FC 460A303C */ c.lt.s $f6, $f10 -/* 042100 80041500 00000000 */ nop -/* 042104 80041504 45000004 */ bc1f .L80041518 -/* 042108 80041508 00000000 */ nop -/* 04210C 8004150C 10000002 */ b .L80041518 -/* 042110 80041510 A10D00FD */ sb $t5, 0xfd($t0) -.L80041514: -/* 042114 80041514 A10E00FD */ sb $t6, 0xfd($t0) -.L80041518: -/* 042118 80041518 860F0018 */ lh $t7, 0x18($s0) -/* 04211C 8004151C 8FB8002C */ lw $t8, 0x2c($sp) -/* 042120 80041520 00000000 */ nop -/* 042124 80041524 01F8C821 */ addu $t9, $t7, $t8 -/* 042128 80041528 332B00FF */ andi $t3, $t9, 0xff -/* 04212C 8004152C A60B0018 */ sh $t3, 0x18($s0) -/* 042130 80041530 910200FD */ lbu $v0, 0xfd($t0) -/* 042134 80041534 100000C0 */ b .L80041838 -/* 042138 80041538 00000000 */ nop -glabel L8004153C -/* 04213C 8004153C 28610181 */ slti $at, $v1, 0x181 -/* 042140 80041540 1420000C */ bnez $at, .L80041574 -/* 042144 80041544 00000000 */ nop -/* 042148 80041548 8FAC009C */ lw $t4, 0x9c($sp) -/* 04214C 8004154C 24180180 */ li $t8, 384 -/* 042150 80041550 000C6900 */ sll $t5, $t4, 4 -/* 042154 80041554 006D7023 */ subu $t6, $v1, $t5 -/* 042158 80041558 A50E0106 */ sh $t6, 0x106($t0) -/* 04215C 8004155C 850F0106 */ lh $t7, 0x106($t0) -/* 042160 80041560 00000000 */ nop -/* 042164 80041564 29E10180 */ slti $at, $t7, 0x180 -/* 042168 80041568 10200002 */ beqz $at, .L80041574 -/* 04216C 8004156C 00000000 */ nop -/* 042170 80041570 A5180106 */ sh $t8, 0x106($t0) -.L80041574: -/* 042174 80041574 85390002 */ lh $t9, 2($t1) -/* 042178 80041578 C604000C */ lwc1 $f4, 0xc($s0) -/* 04217C 8004157C 44994000 */ mtc1 $t9, $f8 -/* 042180 80041580 952C0008 */ lhu $t4, 8($t1) -/* 042184 80041584 468044A0 */ cvt.s.w $f18, $f8 -/* 042188 80041588 000C6840 */ sll $t5, $t4, 1 -/* 04218C 8004158C 852B0006 */ lh $t3, 6($t1) -/* 042190 80041590 46122081 */ sub.s $f2, $f4, $f18 -/* 042194 80041594 448D2000 */ mtc1 $t5, $f4 -/* 042198 80041598 448B5000 */ mtc1 $t3, $f10 -/* 04219C 8004159C 46802020 */ cvt.s.w $f0, $f4 -/* 0421A0 800415A0 C6060014 */ lwc1 $f6, 0x14($s0) -/* 0421A4 800415A4 8FAE009C */ lw $t6, 0x9c($sp) -/* 0421A8 800415A8 46000002 */ mul.s $f0, $f0, $f0 -/* 0421AC 800415AC 8FB9009C */ lw $t9, 0x9c($sp) -/* 0421B0 800415B0 000E7900 */ sll $t7, $t6, 4 -/* 0421B4 800415B4 AFAF002C */ sw $t7, 0x2c($sp) -/* 0421B8 800415B8 46805220 */ cvt.s.w $f8, $f10 -/* 0421BC 800415BC 24180002 */ li $t8, 2 -/* 0421C0 800415C0 46021482 */ mul.s $f18, $f2, $f2 -/* 0421C4 800415C4 46083301 */ sub.s $f12, $f6, $f8 -/* 0421C8 800415C8 460C6282 */ mul.s $f10, $f12, $f12 -/* 0421CC 800415CC 460A9180 */ add.s $f6, $f18, $f10 -/* 0421D0 800415D0 4606003C */ c.lt.s $f0, $f6 -/* 0421D4 800415D4 00000000 */ nop -/* 0421D8 800415D8 45000003 */ bc1f .L800415E8 -/* 0421DC 800415DC 00000000 */ nop -/* 0421E0 800415E0 1000008D */ b .L80041818 -/* 0421E4 800415E4 A11800FD */ sb $t8, 0xfd($t0) -.L800415E8: -/* 0421E8 800415E8 95020104 */ lhu $v0, 0x104($t0) -/* 0421EC 800415EC 3C074316 */ lui $a3, 0x4316 -/* 0421F0 800415F0 0322082A */ slt $at, $t9, $v0 -/* 0421F4 800415F4 10200004 */ beqz $at, .L80041608 -/* 0421F8 800415F8 240C0001 */ li $t4, 1 -/* 0421FC 800415FC 00595823 */ subu $t3, $v0, $t9 -/* 042200 80041600 1000002C */ b .L800416B4 -/* 042204 80041604 A50B0104 */ sh $t3, 0x104($t0) -.L80041608: -/* 042208 80041608 A5000104 */ sh $zero, 0x104($t0) -/* 04220C 8004160C 8E060014 */ lw $a2, 0x14($s0) -/* 042210 80041610 C60C000C */ lwc1 $f12, 0xc($s0) -/* 042214 80041614 44807000 */ mtc1 $zero, $f14 -/* 042218 80041618 27AD0044 */ addiu $t5, $sp, 0x44 -/* 04221C 8004161C AFAD0014 */ sw $t5, 0x14($sp) -/* 042220 80041620 E7B0007C */ swc1 $f16, 0x7c($sp) -/* 042224 80041624 AFA8003C */ sw $t0, 0x3c($sp) -/* 042228 80041628 0C005B7A */ jal obj_dist_racer -/* 04222C 8004162C AFAC0010 */ sw $t4, 0x10($sp) -/* 042230 80041630 00022C00 */ sll $a1, $v0, 0x10 -/* 042234 80041634 00021C00 */ sll $v1, $v0, 0x10 -/* 042238 80041638 00057403 */ sra $t6, $a1, 0x10 -/* 04223C 8004163C 8FA8003C */ lw $t0, 0x3c($sp) -/* 042240 80041640 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 042244 80041644 00037C03 */ sra $t7, $v1, 0x10 -/* 042248 80041648 01C02825 */ move $a1, $t6 -/* 04224C 8004164C 15E00005 */ bnez $t7, .L80041664 -/* 042250 80041650 01E01825 */ move $v1, $t7 -/* 042254 80041654 24180001 */ li $t8, 1 -/* 042258 80041658 AD000100 */ sw $zero, 0x100($t0) -/* 04225C 8004165C 10000015 */ b .L800416B4 -/* 042260 80041660 A11800FD */ sb $t8, 0xfd($t0) -.L80041664: -/* 042264 80041664 28610002 */ slti $at, $v1, 2 -/* 042268 80041668 14200009 */ bnez $at, .L80041690 -/* 04226C 8004166C 24040001 */ li $a0, 1 -/* 042270 80041670 AFA8003C */ sw $t0, 0x3c($sp) -/* 042274 80041674 0C01BE53 */ jal get_random_number_from_range -/* 042278 80041678 E7B0007C */ swc1 $f16, 0x7c($sp) -/* 04227C 8004167C 00021C00 */ sll $v1, $v0, 0x10 -/* 042280 80041680 00035C03 */ sra $t3, $v1, 0x10 -/* 042284 80041684 8FA8003C */ lw $t0, 0x3c($sp) -/* 042288 80041688 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 04228C 8004168C 01601825 */ move $v1, $t3 -.L80041690: -/* 042290 80041690 2465FFFF */ addiu $a1, $v1, -1 -/* 042294 80041694 00056400 */ sll $t4, $a1, 0x10 -/* 042298 80041698 000C6C03 */ sra $t5, $t4, 0x10 -/* 04229C 8004169C 000D7080 */ sll $t6, $t5, 2 -/* 0422A0 800416A0 03AE7821 */ addu $t7, $sp, $t6 -/* 0422A4 800416A4 8DEF0044 */ lw $t7, 0x44($t7) -/* 0422A8 800416A8 241800F0 */ li $t8, 240 -/* 0422AC 800416AC A5180104 */ sh $t8, 0x104($t0) -/* 0422B0 800416B0 AD0F0100 */ sw $t7, 0x100($t0) -.L800416B4: -/* 0422B4 800416B4 911900FD */ lbu $t9, 0xfd($t0) -/* 0422B8 800416B8 24010004 */ li $at, 4 -/* 0422BC 800416BC 17210056 */ bne $t9, $at, .L80041818 -/* 0422C0 800416C0 00000000 */ nop -/* 0422C4 800416C4 8D020100 */ lw $v0, 0x100($t0) -/* 0422C8 800416C8 C608000C */ lwc1 $f8, 0xc($s0) -/* 0422CC 800416CC C444000C */ lwc1 $f4, 0xc($v0) -/* 0422D0 800416D0 C6120014 */ lwc1 $f18, 0x14($s0) -/* 0422D4 800416D4 46044001 */ sub.s $f0, $f8, $f4 -/* 0422D8 800416D8 C44A0014 */ lwc1 $f10, 0x14($v0) -/* 0422DC 800416DC 46000202 */ mul.s $f8, $f0, $f0 -/* 0422E0 800416E0 460A9081 */ sub.s $f2, $f18, $f10 -/* 0422E4 800416E4 3C01800E */ lui $at, %hi(D_800E623C) # $at, 0x800e -/* 0422E8 800416E8 C426623C */ lwc1 $f6, %lo(D_800E623C)($at) -/* 0422EC 800416EC 46021102 */ mul.s $f4, $f2, $f2 -/* 0422F0 800416F0 240B0003 */ li $t3, 3 -/* 0422F4 800416F4 00002025 */ move $a0, $zero -/* 0422F8 800416F8 24050064 */ li $a1, 100 -/* 0422FC 800416FC 46044480 */ add.s $f18, $f8, $f4 -/* 042300 80041700 4612303C */ c.lt.s $f6, $f18 -/* 042304 80041704 00000000 */ nop -/* 042308 80041708 45000003 */ bc1f .L80041718 -/* 04230C 8004170C 00000000 */ nop -/* 042310 80041710 10000041 */ b .L80041818 -/* 042314 80041714 A10B00FD */ sb $t3, 0xfd($t0) -.L80041718: -/* 042318 80041718 AFA8003C */ sw $t0, 0x3c($sp) -/* 04231C 8004171C 0C01BE53 */ jal get_random_number_from_range -/* 042320 80041720 E7B0007C */ swc1 $f16, 0x7c($sp) -/* 042324 80041724 8FA8003C */ lw $t0, 0x3c($sp) -/* 042328 80041728 C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 04232C 8004172C 28410063 */ slti $at, $v0, 0x63 -/* 042330 80041730 14200006 */ bnez $at, .L8004174C -/* 042334 80041734 8FA2009C */ lw $v0, 0x9c($sp) -/* 042338 80041738 850C0106 */ lh $t4, 0x106($t0) -/* 04233C 8004173C 00000000 */ nop -/* 042340 80041740 000C6823 */ negu $t5, $t4 -/* 042344 80041744 A50D0106 */ sh $t5, 0x106($t0) -/* 042348 80041748 8FA2009C */ lw $v0, 0x9c($sp) -.L8004174C: -/* 04234C 8004174C 850F0106 */ lh $t7, 0x106($t0) -/* 042350 80041750 860E0000 */ lh $t6, ($s0) -/* 042354 80041754 004F0019 */ multu $v0, $t7 -/* 042358 80041758 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 04235C 8004175C 44815000 */ mtc1 $at, $f10 -/* 042360 80041760 C6000010 */ lwc1 $f0, 0x10($s0) -/* 042364 80041764 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 042368 80041768 0000C012 */ mflo $t8 -/* 04236C 8004176C 01D8C821 */ addu $t9, $t6, $t8 -/* 042370 80041770 A6190000 */ sh $t9, ($s0) -/* 042374 80041774 8D0B0100 */ lw $t3, 0x100($t0) -/* 042378 80041778 00000000 */ nop -/* 04237C 8004177C C5620010 */ lwc1 $f2, 0x10($t3) -/* 042380 80041780 00000000 */ nop -/* 042384 80041784 460A1200 */ add.s $f8, $f2, $f10 -/* 042388 80041788 4600403C */ c.lt.s $f8, $f0 -/* 04238C 8004178C 00000000 */ nop -/* 042390 80041790 45000003 */ bc1f .L800417A0 -/* 042394 80041794 00000000 */ nop -/* 042398 80041798 10000009 */ b .L800417C0 -/* 04239C 8004179C A10000FE */ sb $zero, 0xfe($t0) -.L800417A0: -/* 0423A0 800417A0 44812000 */ mtc1 $at, $f4 -/* 0423A4 800417A4 240C0001 */ li $t4, 1 -/* 0423A8 800417A8 46041180 */ add.s $f6, $f2, $f4 -/* 0423AC 800417AC 4606003C */ c.lt.s $f0, $f6 -/* 0423B0 800417B0 00000000 */ nop -/* 0423B4 800417B4 45000002 */ bc1f .L800417C0 -/* 0423B8 800417B8 00000000 */ nop -/* 0423BC 800417BC A10C00FE */ sb $t4, 0xfe($t0) -.L800417C0: -/* 0423C0 800417C0 910D00FE */ lbu $t5, 0xfe($t0) -/* 0423C4 800417C4 00000000 */ nop -/* 0423C8 800417C8 11A00008 */ beqz $t5, .L800417EC -/* 0423CC 800417CC 00000000 */ nop -/* 0423D0 800417D0 44825000 */ mtc1 $v0, $f10 -/* 0423D4 800417D4 C6120020 */ lwc1 $f18, 0x20($s0) -/* 0423D8 800417D8 46805220 */ cvt.s.w $f8, $f10 -/* 0423DC 800417DC 46088102 */ mul.s $f4, $f16, $f8 -/* 0423E0 800417E0 46049180 */ add.s $f6, $f18, $f4 -/* 0423E4 800417E4 10000007 */ b .L80041804 -/* 0423E8 800417E8 E6060020 */ swc1 $f6, 0x20($s0) -.L800417EC: -/* 0423EC 800417EC 44824000 */ mtc1 $v0, $f8 -/* 0423F0 800417F0 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 0423F4 800417F4 468044A0 */ cvt.s.w $f18, $f8 -/* 0423F8 800417F8 46128102 */ mul.s $f4, $f16, $f18 -/* 0423FC 800417FC 46045181 */ sub.s $f6, $f10, $f4 -/* 042400 80041800 E6060020 */ swc1 $f6, 0x20($s0) -.L80041804: -/* 042404 80041804 860F0000 */ lh $t7, ($s0) -/* 042408 80041808 850E0106 */ lh $t6, 0x106($t0) -/* 04240C 8004180C 00000000 */ nop -/* 042410 80041810 01EEC021 */ addu $t8, $t7, $t6 -/* 042414 80041814 A6180000 */ sh $t8, ($s0) -.L80041818: -/* 042418 80041818 86190018 */ lh $t9, 0x18($s0) -/* 04241C 8004181C 8FAB002C */ lw $t3, 0x2c($sp) -/* 042420 80041820 00000000 */ nop -/* 042424 80041824 032B6021 */ addu $t4, $t9, $t3 -/* 042428 80041828 318D00FF */ andi $t5, $t4, 0xff -/* 04242C 8004182C A60D0018 */ sh $t5, 0x18($s0) -/* 042430 80041830 910200FD */ lbu $v0, 0xfd($t0) -/* 042434 80041834 00000000 */ nop -.L80041838: -/* 042438 80041838 10400018 */ beqz $v0, .L8004189C -/* 04243C 8004183C 00000000 */ nop -/* 042440 80041840 C5000108 */ lwc1 $f0, 0x108($t0) -/* 042444 80041844 C7A80078 */ lwc1 $f8, 0x78($sp) -/* 042448 80041848 8FAF009C */ lw $t7, 0x9c($sp) -/* 04244C 8004184C 4608003C */ c.lt.s $f0, $f8 -/* 042450 80041850 00000000 */ nop -/* 042454 80041854 45000011 */ bc1f .L8004189C -/* 042458 80041858 00000000 */ nop -/* 04245C 8004185C 448F5000 */ mtc1 $t7, $f10 -/* 042460 80041860 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 042464 80041864 46805120 */ cvt.s.w $f4, $f10 -/* 042468 80041868 44819000 */ mtc1 $at, $f18 -/* 04246C 8004186C 00000000 */ nop -/* 042470 80041870 46049182 */ mul.s $f6, $f18, $f4 -/* 042474 80041874 46060200 */ add.s $f8, $f0, $f6 -/* 042478 80041878 E5080108 */ swc1 $f8, 0x108($t0) -/* 04247C 8004187C C5120108 */ lwc1 $f18, 0x108($t0) -/* 042480 80041880 C7AA0078 */ lwc1 $f10, 0x78($sp) -/* 042484 80041884 00000000 */ nop -/* 042488 80041888 4612503C */ c.lt.s $f10, $f18 -/* 04248C 8004188C 00000000 */ nop -/* 042490 80041890 45000002 */ bc1f .L8004189C -/* 042494 80041894 00000000 */ nop -/* 042498 80041898 E50A0108 */ swc1 $f10, 0x108($t0) -.L8004189C: -/* 04249C 8004189C 44807000 */ mtc1 $zero, $f14 -/* 0424A0 800418A0 C5040108 */ lwc1 $f4, 0x108($t0) -/* 0424A4 800418A4 8FB80064 */ lw $t8, 0x64($sp) -/* 0424A8 800418A8 46047032 */ c.eq.s $f14, $f4 -/* 0424AC 800418AC 00000000 */ nop -/* 0424B0 800418B0 4501003D */ bc1t .L800419A8 -/* 0424B4 800418B4 00000000 */ nop -/* 0424B8 800418B8 910E00FD */ lbu $t6, 0xfd($t0) -/* 0424BC 800418BC 24010004 */ li $at, 4 -/* 0424C0 800418C0 11C10004 */ beq $t6, $at, .L800418D4 -/* 0424C4 800418C4 3C01800E */ lui $at, %hi(D_800E6240) # $at, 0x800e -/* 0424C8 800418C8 C4206240 */ lwc1 $f0, %lo(D_800E6240)($at) -/* 0424CC 800418CC 10000004 */ b .L800418E0 -/* 0424D0 800418D0 00000000 */ nop -.L800418D4: -/* 0424D4 800418D4 3C01800E */ lui $at, %hi(D_800E6244) # $at, 0x800e -/* 0424D8 800418D8 C4206244 */ lwc1 $f0, %lo(D_800E6244)($at) -/* 0424DC 800418DC 00000000 */ nop -.L800418E0: -/* 0424E0 800418E0 13000005 */ beqz $t8, .L800418F8 -/* 0424E4 800418E4 3C01800E */ lui $at, %hi(D_800E6248) # $at, 0x800e -/* 0424E8 800418E8 C4266248 */ lwc1 $f6, %lo(D_800E6248)($at) -/* 0424EC 800418EC 00000000 */ nop -/* 0424F0 800418F0 46060002 */ mul.s $f0, $f0, $f6 -/* 0424F4 800418F4 00000000 */ nop -.L800418F8: -/* 0424F8 800418F8 C6020020 */ lwc1 $f2, 0x20($s0) -/* 0424FC 800418FC 46000307 */ neg.s $f12, $f0 -/* 042500 80041900 460C103C */ c.lt.s $f2, $f12 -/* 042504 80041904 00000000 */ nop -/* 042508 80041908 45000004 */ bc1f .L8004191C -/* 04250C 8004190C 00000000 */ nop -/* 042510 80041910 E60C0020 */ swc1 $f12, 0x20($s0) -/* 042514 80041914 C6020020 */ lwc1 $f2, 0x20($s0) -/* 042518 80041918 00000000 */ nop -.L8004191C: -/* 04251C 8004191C 4602003C */ c.lt.s $f0, $f2 -/* 042520 80041920 00000000 */ nop -/* 042524 80041924 45000002 */ bc1f .L80041930 -/* 042528 80041928 00000000 */ nop -/* 04252C 8004192C E6000020 */ swc1 $f0, 0x20($s0) -.L80041930: -/* 042530 80041930 C5080108 */ lwc1 $f8, 0x108($t0) -/* 042534 80041934 00000000 */ nop -/* 042538 80041938 46087032 */ c.eq.s $f14, $f8 -/* 04253C 8004193C 00000000 */ nop -/* 042540 80041940 45010019 */ bc1t .L800419A8 -/* 042544 80041944 00000000 */ nop -/* 042548 80041948 86040000 */ lh $a0, ($s0) -/* 04254C 8004194C 0C01C1F1 */ jal sins_f -/* 042550 80041950 AFA8003C */ sw $t0, 0x3c($sp) -/* 042554 80041954 8FA8003C */ lw $t0, 0x3c($sp) -/* 042558 80041958 86040000 */ lh $a0, ($s0) -/* 04255C 8004195C C5120108 */ lwc1 $f18, 0x108($t0) -/* 042560 80041960 00000000 */ nop -/* 042564 80041964 46009287 */ neg.s $f10, $f18 -/* 042568 80041968 460A0102 */ mul.s $f4, $f0, $f10 -/* 04256C 8004196C 0C01C1FE */ jal coss_f -/* 042570 80041970 E604001C */ swc1 $f4, 0x1c($s0) -/* 042574 80041974 8FA8003C */ lw $t0, 0x3c($sp) -/* 042578 80041978 8E05001C */ lw $a1, 0x1c($s0) -/* 04257C 8004197C C5060108 */ lwc1 $f6, 0x108($t0) -/* 042580 80041980 8E060020 */ lw $a2, 0x20($s0) -/* 042584 80041984 46003207 */ neg.s $f8, $f6 -/* 042588 80041988 46080482 */ mul.s $f18, $f0, $f8 -/* 04258C 8004198C 02002025 */ move $a0, $s0 -/* 042590 80041990 E6120024 */ swc1 $f18, 0x24($s0) -/* 042594 80041994 8E070024 */ lw $a3, 0x24($s0) -/* 042598 80041998 0C00455C */ jal move_object -/* 04259C 8004199C 00000000 */ nop -/* 0425A0 800419A0 8FA8003C */ lw $t0, 0x3c($sp) -/* 0425A4 800419A4 00000000 */ nop -.L800419A8: -/* 0425A8 800419A8 911900FC */ lbu $t9, 0xfc($t0) -/* 0425AC 800419AC 240B0001 */ li $t3, 1 -/* 0425B0 800419B0 01796023 */ subu $t4, $t3, $t9 -/* 0425B4 800419B4 318D00FF */ andi $t5, $t4, 0xff -/* 0425B8 800419B8 000D7880 */ sll $t7, $t5, 2 -/* 0425BC 800419BC 01ED7823 */ subu $t7, $t7, $t5 -/* 0425C0 800419C0 000F7840 */ sll $t7, $t7, 1 -/* 0425C4 800419C4 000F7080 */ sll $t6, $t7, 2 -/* 0425C8 800419C8 A10C00FC */ sb $t4, 0xfc($t0) -/* 0425CC 800419CC 01CF7021 */ addu $t6, $t6, $t7 -/* 0425D0 800419D0 8FB80064 */ lw $t8, 0x64($sp) -/* 0425D4 800419D4 000E7040 */ sll $t6, $t6, 1 -/* 0425D8 800419D8 010E3021 */ addu $a2, $t0, $t6 -/* 0425DC 800419DC 17000003 */ bnez $t8, .L800419EC -/* 0425E0 800419E0 24C60080 */ addiu $a2, $a2, 0x80 -/* 0425E4 800419E4 10000002 */ b .L800419F0 -/* 0425E8 800419E8 24050007 */ li $a1, 7 -.L800419EC: -/* 0425EC 800419EC 24050008 */ li $a1, 8 -.L800419F0: -/* 0425F0 800419F0 860B0018 */ lh $t3, 0x18($s0) -/* 0425F4 800419F4 AFA60040 */ sw $a2, 0x40($sp) -/* 0425F8 800419F8 00AB2004 */ sllv $a0, $t3, $a1 -/* 0425FC 800419FC 0004CC00 */ sll $t9, $a0, 0x10 -/* 042600 80041A00 00192403 */ sra $a0, $t9, 0x10 -/* 042604 80041A04 0C01C20C */ jal sins -/* 042608 80041A08 A7A50076 */ sh $a1, 0x76($sp) -/* 04260C 80041A0C 87A50076 */ lh $a1, 0x76($sp) -/* 042610 80041A10 860D0018 */ lh $t5, 0x18($s0) -/* 042614 80041A14 00021A83 */ sra $v1, $v0, 0xa -/* 042618 80041A18 00AD2004 */ sllv $a0, $t5, $a1 -/* 04261C 80041A1C 00047C00 */ sll $t7, $a0, 0x10 -/* 042620 80041A20 000F2403 */ sra $a0, $t7, 0x10 -/* 042624 80041A24 0C01C20B */ jal coss -/* 042628 80041A28 AFA3006C */ sw $v1, 0x6c($sp) -/* 04262C 80041A2C 8FA3006C */ lw $v1, 0x6c($sp) -/* 042630 80041A30 8FA60040 */ lw $a2, 0x40($sp) -/* 042634 80041A34 00022283 */ sra $a0, $v0, 0xa -/* 042638 80041A38 04610002 */ bgez $v1, .L80041A44 -/* 04263C 80041A3C 00802825 */ move $a1, $a0 -/* 042640 80041A40 00031823 */ negu $v1, $v1 -.L80041A44: -/* 042644 80041A44 8FB80064 */ lw $t8, 0x64($sp) -/* 042648 80041A48 00031023 */ negu $v0, $v1 -/* 04264C 80041A4C 17000004 */ bnez $t8, .L80041A60 -/* 042650 80041A50 00000000 */ nop -/* 042654 80041A54 04810002 */ bgez $a0, .L80041A60 -/* 042658 80041A58 00000000 */ nop -/* 04265C 80041A5C 00042823 */ negu $a1, $a0 -.L80041A60: -/* 042660 80041A60 A4C20000 */ sh $v0, ($a2) -/* 042664 80041A64 A4C50002 */ sh $a1, 2($a2) -/* 042668 80041A68 A4C2000A */ sh $v0, 0xa($a2) -/* 04266C 80041A6C A4C5000C */ sh $a1, 0xc($a2) -/* 042670 80041A70 A4C30028 */ sh $v1, 0x28($a2) -/* 042674 80041A74 A4C5002A */ sh $a1, 0x2a($a2) -/* 042678 80041A78 A4C30032 */ sh $v1, 0x32($a2) -/* 04267C 80041A7C A4C50034 */ sh $a1, 0x34($a2) -/* 042680 80041A80 8FBF0024 */ lw $ra, 0x24($sp) -/* 042684 80041A84 8FB00020 */ lw $s0, 0x20($sp) -/* 042688 80041A88 03E00008 */ jr $ra -/* 04268C 80041A8C 27BD0098 */ addiu $sp, $sp, 0x98 - diff --git a/asm/non_matchings/object_functions/obj_loop_texscroll.s b/asm/non_matchings/object_functions/obj_loop_texscroll.s deleted file mode 100644 index d122eff8..00000000 --- a/asm/non_matchings/object_functions/obj_loop_texscroll.s +++ /dev/null @@ -1,165 +0,0 @@ -glabel obj_loop_texscroll -/* 040D48 80040148 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 040D4C 8004014C AFBF001C */ sw $ra, 0x1c($sp) -/* 040D50 80040150 AFB00018 */ sw $s0, 0x18($sp) -/* 040D54 80040154 AFA5003C */ sw $a1, 0x3c($sp) -/* 040D58 80040158 8C8D0064 */ lw $t5, 0x64($a0) -/* 040D5C 8004015C 0C00B1F1 */ jal get_current_level_model -/* 040D60 80040160 AFAD0024 */ sw $t5, 0x24($sp) -/* 040D64 80040164 8FAD0024 */ lw $t5, 0x24($sp) -/* 040D68 80040168 8FAA003C */ lw $t2, 0x3c($sp) -/* 040D6C 8004016C 85A80004 */ lh $t0, 4($t5) -/* 040D70 80040170 85A90006 */ lh $t1, 6($t5) -/* 040D74 80040174 010A0019 */ multu $t0, $t2 -/* 040D78 80040178 85AF0000 */ lh $t7, ($t5) -/* 040D7C 8004017C 8C4E0000 */ lw $t6, ($v0) -/* 040D80 80040180 000FC0C0 */ sll $t8, $t7, 3 -/* 040D84 80040184 01D8C821 */ addu $t9, $t6, $t8 -/* 040D88 80040188 8F230000 */ lw $v1, ($t9) -/* 040D8C 8004018C 85B80008 */ lh $t8, 8($t5) -/* 040D90 80040190 90660000 */ lbu $a2, ($v1) -/* 040D94 80040194 90670001 */ lbu $a3, 1($v1) -/* 040D98 80040198 00067A00 */ sll $t7, $a2, 8 -/* 040D9C 8004019C 01E03025 */ move $a2, $t7 -/* 040DA0 800401A0 85AF000A */ lh $t7, 0xa($t5) -/* 040DA4 800401A4 00004012 */ mflo $t0 -/* 040DA8 800401A8 00077200 */ sll $t6, $a3, 8 -/* 040DAC 800401AC 01C03825 */ move $a3, $t6 -/* 040DB0 800401B0 012A0019 */ multu $t1, $t2 -/* 040DB4 800401B4 0308C821 */ addu $t9, $t8, $t0 -/* 040DB8 800401B8 A5B90008 */ sh $t9, 8($t5) -/* 040DBC 800401BC 85A40008 */ lh $a0, 8($t5) -/* 040DC0 800401C0 00408025 */ move $s0, $v0 -/* 040DC4 800401C4 30980003 */ andi $t8, $a0, 3 -/* 040DC8 800401C8 A5B80008 */ sh $t8, 8($t5) -/* 040DCC 800401CC 0000F825 */ move $ra, $zero -/* 040DD0 800401D0 00044083 */ sra $t0, $a0, 2 -/* 040DD4 800401D4 00004812 */ mflo $t1 -/* 040DD8 800401D8 01E97021 */ addu $t6, $t7, $t1 -/* 040DDC 800401DC A5AE000A */ sh $t6, 0xa($t5) -/* 040DE0 800401E0 85A5000A */ lh $a1, 0xa($t5) -/* 040DE4 800401E4 00000000 */ nop -/* 040DE8 800401E8 30B90003 */ andi $t9, $a1, 3 -/* 040DEC 800401EC A5B9000A */ sh $t9, 0xa($t5) -/* 040DF0 800401F0 844F001A */ lh $t7, 0x1a($v0) -/* 040DF4 800401F4 8C430004 */ lw $v1, 4($v0) -/* 040DF8 800401F8 19E00067 */ blez $t7, .L80040398 -/* 040DFC 800401FC 00054883 */ sra $t1, $a1, 2 -/* 040E00 80040200 00605825 */ move $t3, $v1 -.L80040204: -/* 040E04 80040204 85620020 */ lh $v0, 0x20($t3) -/* 040E08 80040208 8D63000C */ lw $v1, 0xc($t3) -/* 040E0C 8004020C 1840005D */ blez $v0, .L80040384 -/* 040E10 80040210 00006025 */ move $t4, $zero -/* 040E14 80040214 00605025 */ move $t2, $v1 -.L80040218: -/* 040E18 80040218 85AE0000 */ lh $t6, ($t5) -/* 040E1C 8004021C 91580000 */ lbu $t8, ($t2) -/* 040E20 80040220 258C0001 */ addiu $t4, $t4, 1 -/* 040E24 80040224 15D80055 */ bne $t6, $t8, .L8004037C -/* 040E28 80040228 0182082A */ slt $at, $t4, $v0 -/* 040E2C 8004022C 85450004 */ lh $a1, 4($t2) -/* 040E30 80040230 85440010 */ lh $a0, 0x10($t2) -/* 040E34 80040234 00000000 */ nop -/* 040E38 80040238 00A4082A */ slt $at, $a1, $a0 -/* 040E3C 8004023C 1020004F */ beqz $at, .L8004037C -/* 040E40 80040240 0182082A */ slt $at, $t4, $v0 -.L80040244: -/* 040E44 80040244 8D790004 */ lw $t9, 4($t3) -/* 040E48 80040248 00057900 */ sll $t7, $a1, 4 -/* 040E4C 8004024C 032F1021 */ addu $v0, $t9, $t7 -/* 040E50 80040250 904E0000 */ lbu $t6, ($v0) -/* 040E54 80040254 24A50001 */ addiu $a1, $a1, 1 -/* 040E58 80040258 31D80080 */ andi $t8, $t6, 0x80 -/* 040E5C 8004025C 17000042 */ bnez $t8, .L80040368 -/* 040E60 80040260 00A4082A */ slt $at, $a1, $a0 -/* 040E64 80040264 84430006 */ lh $v1, 6($v0) -/* 040E68 80040268 00000000 */ nop -/* 040E6C 8004026C 00E3082A */ slt $at, $a3, $v1 -/* 040E70 80040270 10200009 */ beqz $at, .L80040298 -/* 040E74 80040274 0067C823 */ subu $t9, $v1, $a3 -/* 040E78 80040278 844F000A */ lh $t7, 0xa($v0) -/* 040E7C 8004027C 8458000E */ lh $t8, 0xe($v0) -/* 040E80 80040280 A4590006 */ sh $t9, 6($v0) -/* 040E84 80040284 01E77023 */ subu $t6, $t7, $a3 -/* 040E88 80040288 0307C823 */ subu $t9, $t8, $a3 -/* 040E8C 8004028C 84430006 */ lh $v1, 6($v0) -/* 040E90 80040290 A44E000A */ sh $t6, 0xa($v0) -/* 040E94 80040294 A459000E */ sh $t9, 0xe($v0) -.L80040298: -/* 040E98 80040298 04610008 */ bgez $v1, .L800402BC -/* 040E9C 8004029C 00677821 */ addu $t7, $v1, $a3 -/* 040EA0 800402A0 844E000A */ lh $t6, 0xa($v0) -/* 040EA4 800402A4 8459000E */ lh $t9, 0xe($v0) -/* 040EA8 800402A8 A44F0006 */ sh $t7, 6($v0) -/* 040EAC 800402AC 01C7C021 */ addu $t8, $t6, $a3 -/* 040EB0 800402B0 03277821 */ addu $t7, $t9, $a3 -/* 040EB4 800402B4 A458000A */ sh $t8, 0xa($v0) -/* 040EB8 800402B8 A44F000E */ sh $t7, 0xe($v0) -.L800402BC: -/* 040EBC 800402BC 84430004 */ lh $v1, 4($v0) -/* 040EC0 800402C0 00000000 */ nop -/* 040EC4 800402C4 00C3082A */ slt $at, $a2, $v1 -/* 040EC8 800402C8 10200009 */ beqz $at, .L800402F0 -/* 040ECC 800402CC 00667023 */ subu $t6, $v1, $a2 -/* 040ED0 800402D0 84580008 */ lh $t8, 8($v0) -/* 040ED4 800402D4 844F000C */ lh $t7, 0xc($v0) -/* 040ED8 800402D8 A44E0004 */ sh $t6, 4($v0) -/* 040EDC 800402DC 0306C823 */ subu $t9, $t8, $a2 -/* 040EE0 800402E0 01E67023 */ subu $t6, $t7, $a2 -/* 040EE4 800402E4 84430004 */ lh $v1, 4($v0) -/* 040EE8 800402E8 A4590008 */ sh $t9, 8($v0) -/* 040EEC 800402EC A44E000C */ sh $t6, 0xc($v0) -.L800402F0: -/* 040EF0 800402F0 04610009 */ bgez $v1, .L80040318 -/* 040EF4 800402F4 0066C021 */ addu $t8, $v1, $a2 -/* 040EF8 800402F8 84590008 */ lh $t9, 8($v0) -/* 040EFC 800402FC 844E000C */ lh $t6, 0xc($v0) -/* 040F00 80040300 A4580004 */ sh $t8, 4($v0) -/* 040F04 80040304 03267821 */ addu $t7, $t9, $a2 -/* 040F08 80040308 01C6C021 */ addu $t8, $t6, $a2 -/* 040F0C 8004030C 84430004 */ lh $v1, 4($v0) -/* 040F10 80040310 A44F0008 */ sh $t7, 8($v0) -/* 040F14 80040314 A458000C */ sh $t8, 0xc($v0) -.L80040318: -/* 040F18 80040318 84590006 */ lh $t9, 6($v0) -/* 040F1C 8004031C 844E000A */ lh $t6, 0xa($v0) -/* 040F20 80040320 03297821 */ addu $t7, $t9, $t1 -/* 040F24 80040324 8459000E */ lh $t9, 0xe($v0) -/* 040F28 80040328 A44F0006 */ sh $t7, 6($v0) -/* 040F2C 8004032C 01C9C021 */ addu $t8, $t6, $t1 -/* 040F30 80040330 03297821 */ addu $t7, $t9, $t1 -/* 040F34 80040334 A458000A */ sh $t8, 0xa($v0) -/* 040F38 80040338 A44F000E */ sh $t7, 0xe($v0) -/* 040F3C 8004033C 84580008 */ lh $t8, 8($v0) -/* 040F40 80040340 844F000C */ lh $t7, 0xc($v0) -/* 040F44 80040344 00687021 */ addu $t6, $v1, $t0 -/* 040F48 80040348 A44E0004 */ sh $t6, 4($v0) -/* 040F4C 8004034C 0308C821 */ addu $t9, $t8, $t0 -/* 040F50 80040350 01E87021 */ addu $t6, $t7, $t0 -/* 040F54 80040354 A4590008 */ sh $t9, 8($v0) -/* 040F58 80040358 A44E000C */ sh $t6, 0xc($v0) -/* 040F5C 8004035C 85440010 */ lh $a0, 0x10($t2) -/* 040F60 80040360 00000000 */ nop -/* 040F64 80040364 00A4082A */ slt $at, $a1, $a0 -.L80040368: -/* 040F68 80040368 1420FFB6 */ bnez $at, .L80040244 -/* 040F6C 8004036C 00000000 */ nop -/* 040F70 80040370 85620020 */ lh $v0, 0x20($t3) -/* 040F74 80040374 00000000 */ nop -/* 040F78 80040378 0182082A */ slt $at, $t4, $v0 -.L8004037C: -/* 040F7C 8004037C 1420FFA6 */ bnez $at, .L80040218 -/* 040F80 80040380 254A000C */ addiu $t2, $t2, 0xc -.L80040384: -/* 040F84 80040384 8618001A */ lh $t8, 0x1a($s0) -/* 040F88 80040388 27FF0001 */ addiu $ra, $ra, 1 -/* 040F8C 8004038C 03F8082A */ slt $at, $ra, $t8 -/* 040F90 80040390 1420FF9C */ bnez $at, .L80040204 -/* 040F94 80040394 256B0044 */ addiu $t3, $t3, 0x44 -.L80040398: -/* 040F98 80040398 8FBF001C */ lw $ra, 0x1c($sp) -/* 040F9C 8004039C 8FB00018 */ lw $s0, 0x18($sp) -/* 040FA0 800403A0 03E00008 */ jr $ra -/* 040FA4 800403A4 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/include/level_object_entries.h b/include/level_object_entries.h index e2314ea1..95bd2916 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -240,7 +240,7 @@ typedef struct LevelObjectEntry_Torch_Mist { typedef struct LevelObjectEntry_TexScroll { /* 0x00 */ LevelObjectEntryCommon common; - /* 0x08 */ s16 numTextures; + /* 0x08 */ s16 textureIndex; /* 0x0A */ s8 unkA; /* 0x0B */ s8 unkB; } LevelObjectEntry_TexScroll; @@ -443,8 +443,7 @@ typedef struct LevelObjectEntry_WaveGenerator { typedef struct LevelObjectEntry_Butterfly { /* 0x00 */ LevelObjectEntryCommon common; - /* 0x08 */ u8 unk8; - /* 0x09 */ u8 unk9; + /* 0x08 */ u16 unk8; /* 0x0A */ u8 unkA; /* 0x0B */ u8 unkB; } LevelObjectEntry_Butterfly; diff --git a/include/structs.h b/include/structs.h index 10932985..e8d075ac 100644 --- a/include/structs.h +++ b/include/structs.h @@ -1015,8 +1015,8 @@ typedef struct Object_Butterfly { /* 0x0FD */ u8 unkFD; /* 0x0FE */ u8 unkFE; /* 0x0FF */ u8 unkFF; - /* 0x100 */ s32 unk100; - /* 0x104 */ s16 unk104; + /* 0x100 */ struct Object *unk100; + /* 0x104 */ u16 unk104; /* 0x106 */ s16 unk106; /* 0x108 */ f32 unk108; /* 0x10C */ f32 unk10C; @@ -1130,7 +1130,7 @@ typedef struct Object_AudioReverb { } Object_AudioReverb; typedef struct Object_TexScroll { - /* 0x0 */ s16 numTextures; + /* 0x0 */ s16 textureIndex; /* 0x2 */ s16 pad2; /* 0x4 */ s16 unk4; /* 0x6 */ s16 unk6; @@ -1368,7 +1368,7 @@ typedef struct Object_Racer { /* 0x1FA */ s8 drifting; /* 0x1FB */ s8 unk1FB; /* 0x1FC */ u8 unk1FC; - /* 0x1FD */ u8 unk1FD; + /* 0x1FD */ s8 unk1FD; /* 0x1FE */ u8 unk1FE; /* 0x1FF */ u8 unk1FF; /* 0x200 */ s8 transitionTimer; diff --git a/src/object_functions.c b/src/object_functions.c index 81d2dbde..6dd11c0c 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -50,7 +50,7 @@ VertexPosition D_800DC9A8[6] = { { 0, 64, -64 }, { 0, -64, -64 }, { 0, 64, 32 }, { 0, -64, 32 }, { 0, 64, 64 }, { 0, -64, 64 }, }; -UNUSED s32 D_800DC9C8 = 0; +UNUSED s32 D_800DC9CC = 0; // Fish Object Related Triangle D_800DC9D0[8] = { @@ -1427,15 +1427,17 @@ void play_tt_voice_clip(u16 soundID, s32 interrupt) { } } -#ifdef NON_EQUIVALENT void obj_init_fish(Object *fishObj, LevelObjectEntry_Fish *fishEntry, s32 param) { Object_Fish *fish; - f32 sinsFE, cossFE, sins104, coss104; + s32 pad0[2]; f32 xPos; f32 zPos; + f32 sins104; s32 uMask; s32 vMask; + f32 coss104; s32 i; + f32 tempxPos; fish = &fishObj->unk64->fish; fish->unk100 = fishEntry->unkE << 4; @@ -1454,16 +1456,19 @@ void obj_init_fish(Object *fishObj, LevelObjectEntry_Fish *fishEntry, s32 param) fish->unkFE = 0x4000; fishObj->segment.trans.y_rotation = fish->unk104; } - sinsFE = sins_f((fish->unkFE * 2)) * fish->unk114; - cossFE = coss_f(fish->unkFE) * fish->unk114; + + xPos = sins_f(fish->unkFE * 2) * fish->unk114; + zPos = coss_f(fish->unkFE) * fish->unk114; sins104 = sins_f(fish->unk104); coss104 = coss_f(fish->unk104); - fishObj->segment.trans.x_position = fish->unk108; - xPos = (sinsFE * coss104) + (cossFE * sins104); + tempxPos = xPos; + xPos = (tempxPos * coss104) + (zPos * sins104); + zPos = (zPos * coss104) - (tempxPos * sins104); + + fishObj->segment.trans.x_position = fish->unk108; fishObj->segment.trans.z_position = fish->unk110; - zPos = (cossFE * coss104) - (sinsFE * sins104); ignore_bounds_check(); move_object(fishObj, xPos, 0.0f, zPos); @@ -1516,9 +1521,6 @@ void obj_init_fish(Object *fishObj, LevelObjectEntry_Fish *fishEntry, s32 param) fish->triangles[i].uv2.v = D_800DC9D0[i].uv2.v * vMask >> 2; } } -#else -GLOBAL_ASM("asm/non_matchings/object_functions/obj_init_fish.s") -#endif void obj_loop_fish(Object *fishObj, s32 updateRate) { f32 zThing; @@ -1693,94 +1695,98 @@ void obj_init_animator(Object *obj, LevelObjectEntry_Animator *entry, s32 param) obj_loop_animator(obj, 0x20000); } -#ifdef NON_EQUIVALENT - -#define TEX_INDEX_NO_TEXTURE 255 - -// Has minor issues - void obj_loop_animator(Object *obj, s32 updateRate) { - Object_Animator *obj64; // 3C - s32 sp20; - s32 sp1C; + s32 pad[2]; + Object_64 *obj64; LevelModel *levelModel; - s32 temp, temp2, segmentId, batchId; - s32 i; - s32 nextFacesOffset; - s32 curFacesOffset; - s32 texUVSpeed; - s32 texIndex; - TextureInfo *texInfo; - TriangleBatchInfo *triangleBatchInfo; - LevelModelSegment *levelModelSegment; - Triangle *triangle; + s32 trisStart; + s32 trisEnd; + s32 textureIndex; + s32 tri; + s32 shift; // a1 + s32 t0; + s32 t1; + Triangle *curTriangle; + TriangleBatchInfo *curBatch; + LevelModelSegment *curBlock; + s32 shift2; TextureHeader *tex; - s32 maxSpeed; - obj64 = &obj->unk64->animator; + obj64 = obj->unk64; - temp = obj64->speedFactorX * updateRate; - obj64->xSpeed += temp << 4; - sp20 = obj64->xSpeed >> 4; - obj64->xSpeed &= 0xF; + t0 = obj64->animator.speedFactorX; + t1 = obj64->animator.speedFactorY; - temp2 = obj64->speedFactorY * updateRate; - obj64->ySpeed += temp2 << 4; - sp1C = obj64->ySpeed >> 4; - obj64->ySpeed &= 0xF; + t0 *= updateRate; + t1 *= updateRate; - segmentId = obj64->segmentId; + t0 <<= 4; + t1 <<= 4; - if (obj64->segmentId != -1) { - levelModel = get_current_level_model(); - levelModelSegment = &levelModel->segments[segmentId]; - batchId = obj64->batchId; - triangleBatchInfo = &levelModelSegment->batches[batchId]; - texIndex = triangleBatchInfo->textureIndex; - curFacesOffset = triangleBatchInfo->facesOffset; - nextFacesOffset = triangleBatchInfo[1].facesOffset; - if (texIndex != TEX_INDEX_NO_TEXTURE) { - texUVSpeed = levelModel->textures[texIndex].texture->width << 7; - maxSpeed = texUVSpeed * 2; - for (i = curFacesOffset; i < nextFacesOffset; i++) { - triangle = &levelModelSegment->triangles[i]; - if (!(triangle->flags & 0x80)) { - if (maxSpeed < triangle->uv0.v) { - triangle->uv0.v -= texUVSpeed; - triangle->uv1.v -= texUVSpeed; - triangle->uv2.v -= texUVSpeed; - } - if (triangle->uv0.v < 0) { - triangle->uv0.v += texUVSpeed; - triangle->uv1.v += texUVSpeed; - triangle->uv2.v += texUVSpeed; - } - if (maxSpeed < triangle->uv0.u) { - triangle->uv0.u -= texUVSpeed; - triangle->uv1.u -= texUVSpeed; - triangle->uv2.u -= texUVSpeed; - } - if (triangle->uv0.u < 0) { - triangle->uv0.u += texUVSpeed; - triangle->uv1.u += texUVSpeed; - triangle->uv2.u += texUVSpeed; - } - triangle->uv0.v += sp1C; - triangle->uv1.v += sp1C; - triangle->uv2.v += sp1C; - triangle->uv0.u += sp20; - triangle->uv1.u += sp20; - triangle->uv2.u += sp20; + obj64->animator.xSpeed += t0; + obj64->animator.ySpeed += t1; + + trisStart = obj64->animator.xSpeed; + t0 = trisStart; + trisEnd = obj64->animator.ySpeed; + t1 = trisEnd; + + obj64->animator.xSpeed &= 0xF; + obj64->animator.ySpeed &= 0xF; + + t0 >>= 4; + t1 >>= 4; + + if (obj64->animator.segmentId == -1) { + return; + } + + levelModel = get_current_level_model(); + curBlock = &levelModel->segments[obj64->animator.segmentId]; + curBatch = &curBlock->batches[obj64->animator.batchId]; + textureIndex = curBatch->textureIndex; + trisStart = curBatch->facesOffset; + trisEnd = (curBatch + 1)->facesOffset; + + if (textureIndex != TEX_INDEX_NO_TEXTURE) { + if (!curBatch) {} // Fake + tex = levelModel->textures[textureIndex].texture; + shift2 = tex->width << 7; + shift = tex->width << 7; + for (tri = trisStart; tri < trisEnd; tri++) { + curTriangle = &curBlock->triangles[tri]; + if (!(curTriangle->flags & 0x80)) { + if ((shift << 1) < curTriangle->uv0.v) { + curTriangle->uv0.v -= shift; + curTriangle->uv1.v -= shift; + curTriangle->uv2.v -= shift; } + if (curTriangle->uv0.v < 0) { + curTriangle->uv0.v += shift; + curTriangle->uv1.v += shift; + curTriangle->uv2.v += shift; + } + if ((shift2 << 1) < curTriangle->uv0.u) { + curTriangle->uv0.u -= shift2; + curTriangle->uv1.u -= shift2; + curTriangle->uv2.u -= shift2; + } + if (curTriangle->uv0.u < 0) { + curTriangle->uv0.u += shift2; + curTriangle->uv1.u += shift2; + curTriangle->uv2.u += shift2; + } + curTriangle->uv0.v += t1; + curTriangle->uv1.v += t1; + curTriangle->uv2.v += t1; + curTriangle->uv0.u += t0; + curTriangle->uv1.u += t0; + curTriangle->uv2.u += t0; } } } } -#else -GLOBAL_ASM("asm/non_matchings/object_functions/obj_loop_animator.s") -#endif - void obj_init_animation(Object *obj, LevelObjectEntry_Animation *entry, s32 arg2) { Object_Animation *obj64; s8 tempOrderIndex; @@ -5443,13 +5449,13 @@ void obj_init_texscroll(Object *obj, LevelObjectEntry_TexScroll *entry, s32 arg2 obj64 = &obj->unk64->tex_scroll; levelModel = get_current_level_model(); - obj64->numTextures = entry->numTextures; - if (obj64->numTextures < 0) { - obj64->numTextures = 0; + obj64->textureIndex = entry->textureIndex; + if (obj64->textureIndex < 0) { + obj64->textureIndex = 0; } numberOfTexturesInLevel = levelModel->numberOfTextures; - if (obj64->numTextures >= numberOfTexturesInLevel) { - obj64->numTextures = numberOfTexturesInLevel - 1; + if (obj64->textureIndex >= numberOfTexturesInLevel) { + obj64->textureIndex = numberOfTexturesInLevel - 1; } obj64->unk4 = entry->unkA; obj64->unk6 = entry->unkB; @@ -5459,7 +5465,100 @@ void obj_init_texscroll(Object *obj, LevelObjectEntry_TexScroll *entry, s32 arg2 } } -GLOBAL_ASM("asm/non_matchings/object_functions/obj_loop_texscroll.s") +void obj_loop_texscroll(Object *obj, s32 updateRate) { + s32 pad[2]; + LevelModel *levelModel; + LevelModelSegment *curBlock; + Object_64 *obj64; + Triangle *curTriangle; + TriangleBatchInfo *curBatch; + s32 prevUnk8; + s32 prevUnkA; + s32 tri; + s32 uShift; + s32 vShift; + s32 block; + s32 batch; + TextureInfo *texture; + TextureHeader *tex; + s32 texIndex; + s32 temp; + s32 temp2; + u8 temp3; + s32 t0; + s32 t1; + s32 i; + s32 j; + + obj64 = obj->unk64; + levelModel = get_current_level_model(); + + t0 = obj64->tex_scroll.unk4; + t1 = obj64->tex_scroll.unk6; + + tex = levelModel->textures[obj64->tex_scroll.textureIndex].texture; + + uShift = tex->width; + vShift = tex->height; + uShift <<= 8; + vShift <<= 8; + + t0 *= updateRate; + t1 *= updateRate; + + obj64->tex_scroll.unk8 += t0; + obj64->tex_scroll.unkA += t1; + + t0 = obj64->tex_scroll.unk8; + t1 = obj64->tex_scroll.unkA; + + obj64->tex_scroll.unk8 &= 3; + obj64->tex_scroll.unkA &= 3; + + t0 = t0 >> 2; + t1 = ((t1 >> 2) & 0xFFFFFFFFFFFFFFFF); // fake + + curBlock = levelModel->segments; + for (i = 0; i < levelModel->numberOfSegments; i++) { + curBatch = curBlock[i].batches; + for (j = 0; j < curBlock[i].numberOfBatches; j++) { + if ((curBatch[j].textureIndex == obj64->tex_scroll.textureIndex)) { + for (tri = curBatch[j].facesOffset; tri < curBatch[j + 1].facesOffset; tri++) { + curTriangle = &curBlock[i].triangles[tri]; + if (!(curTriangle->flags & 0x80)) { + if (vShift < curTriangle->uv0.v) { + curTriangle->uv0.v -= vShift; + curTriangle->uv1.v -= vShift; + curTriangle->uv2.v -= vShift; + } + if (curTriangle->uv0.v < 0) { + curTriangle->uv0.v += vShift; + curTriangle->uv1.v += vShift; + curTriangle->uv2.v += vShift; + } + if (uShift < curTriangle->uv0.u) { + curTriangle->uv0.u -= uShift; + curTriangle->uv1.u -= uShift; + curTriangle->uv2.u -= uShift; + } + if (curTriangle->uv0.u < 0) { + curTriangle->uv0.u += uShift; + curTriangle->uv1.u += uShift; + curTriangle->uv2.u += uShift; + } + + curTriangle->uv0.v += t1; + curTriangle->uv1.v += t1; + curTriangle->uv2.v += t1; + curTriangle->uv0.u += t0; + curTriangle->uv1.u += t0; + curTriangle->uv2.u += t0; + } + } + } + } + } +} /* Official name: rgbalightInit */ void obj_init_rgbalight(Object *obj, LevelObjectEntry_RgbaLight *entry, UNUSED s32 arg2) { @@ -5714,10 +5813,421 @@ void obj_init_butterfly(Object *butterflyObj, LevelObjectEntry_Butterfly *butter } } -GLOBAL_ASM("asm/non_matchings/object_functions/obj_loop_butterfly.s") +void obj_loop_butterfly(Object *butterflyObj, s32 updateRate) { + f32 xDiff; + f32 yDiff; + f32 zDiff; + f32 radius; + f32 sp84; + f32 var_f0; + f32 sp7C; + f32 sp78; + s16 var_v1; + s16 shiftAmount; + s16 sp72; + s16 temp; + s32 xPos; + s32 yPos; + s32 sp64; + Object *sp44[8]; + Vertex *vertices; + Object_Butterfly *butterfly; + LevelObjectEntry_Butterfly *butterflyEntry; -// Scratch: https://decomp.me/scratch/h4CcJ -GLOBAL_ASM("asm/non_matchings/object_functions/obj_init_midifade.s") + butterflyEntry = &butterflyObj->segment.level_entry->butterfly; + butterfly = &butterflyObj->unk64->butterfly; + sp64 = butterflyEntry->unkA == 2; + sp72 = butterfly->unk106; + if (sp72 < 0) { + sp72 = -sp72; + } + sp7C = 0.1f; + sp72 *= updateRate; + if (sp64) { + sp7C *= 1.6f; + } + sp78 = 3.0f; + if (sp64) { + sp78 *= 1.6f; + } + switch (butterfly->unkFD) { + case 0: + butterfly->unk108 = 0.0f; + sp84 = butterflyEntry->unk8; + temp = obj_dist_racer(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1, sp44); + if (temp > 0) { + butterfly->unk100 = sp44[0]; + butterfly->unk104 = 0xF0; + butterfly->unkFD = 3; + } else { + butterfly->unk100 = + obj_butterfly_node(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1); + if (butterfly->unk100 != 0) { + butterfly->unk104 = 0xF0; + butterfly->unkFD = 3; + } + } + butterflyObj->segment.animFrame = (butterflyObj->segment.animFrame + updateRate) & 0xFF; + if (sp64) { + butterflyObj->segment.animFrame = 0x78; + } + break; + case 1: + case 2: + if (butterfly->unk106 < 0x480) { + butterfly->unk106 += (updateRate * 0x10); + if (butterfly->unk106 >= 0x481) { + butterfly->unk106 = 0x480; + } + } + xDiff = butterflyObj->segment.trans.x_position - butterflyEntry->common.x; + zDiff = butterflyObj->segment.trans.z_position - butterflyEntry->common.z; + temp = arctan2_f(xDiff, zDiff); + temp -= butterflyObj->segment.trans.y_rotation & 0xffff & 0xffff; + if (temp < 0) { + if (temp > -sp72) { + butterflyObj->segment.trans.y_rotation += temp; + } else { + butterflyObj->segment.trans.y_rotation -= sp72; + } + } else if ((temp > 0)) { + if (temp < sp72) { + butterflyObj->segment.trans.y_rotation += temp; + } else { + butterflyObj->segment.trans.y_rotation += sp72; + } + } + sp84 = butterflyEntry->common.y - butterflyObj->segment.trans.y_position; + if (sp84 < 0.0f) { + butterflyObj->segment.y_velocity -= sp7C * updateRate; + if (butterflyObj->segment.y_velocity < sp84) { + butterflyObj->segment.y_velocity = sp84; + } + } else if ((sp84 > 0.0f)) { + butterflyObj->segment.y_velocity += sp7C * updateRate; + if (sp84 < butterflyObj->segment.y_velocity) { + butterflyObj->segment.y_velocity = sp84; + } + } else { + butterflyObj->segment.y_velocity = 0.0f; + } + if (butterfly->unkFD == 1) { + sp84 = butterflyEntry->unk8; + temp = obj_dist_racer(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1, sp44); + if (temp > 0) { + butterfly->unk100 = sp44[0]; + butterfly->unk104 = 0x78; + butterfly->unkFD = 3; + } else { + butterfly->unk100 = + obj_butterfly_node(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1); + if (butterfly->unk100 != NULL) { + butterfly->unk104 = 0xF0; + butterfly->unkFD = 3; + } + } + } + if (butterfly->unkFD != 3) { + yDiff = butterflyObj->segment.trans.y_position - butterflyEntry->common.y; + if (sqrtf((xDiff * xDiff) + (yDiff * yDiff) + (zDiff * zDiff)) < 4.0f) { + ignore_bounds_check(); + move_object(butterflyObj, -xDiff, -yDiff, -zDiff); + butterflyObj->segment.y_velocity = 0.0f; + butterfly->unkFD = 0; + butterfly->unk108 = 0.0f; + } + } + butterflyObj->segment.animFrame = (butterflyObj->segment.animFrame + (updateRate * 0x10)) & 0xFF; + break; + case 3: + if (butterfly->unk106 < 0x480) { + butterfly->unk106 += (updateRate * 0x10); + if (butterfly->unk106 >= 0x481) { + butterfly->unk106 = 0x480; + } + } + xDiff = butterfly->unk100->segment.trans.x_position - butterflyEntry->common.x; + zDiff = butterfly->unk100->segment.trans.z_position - butterflyEntry->common.z; + radius = (butterflyEntry->unk8 * 2); + radius *= radius; + if (radius < ((xDiff * xDiff) + (zDiff * zDiff))) { + butterfly->unk100 = 0; + sp84 = butterflyEntry->unk8; + temp = obj_dist_racer(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1, sp44); + if (temp > 0) { + butterfly->unk100 = sp44[0]; + butterfly->unk104 = 0xF0; + } else { + butterfly->unk100 = + obj_butterfly_node(butterflyEntry->common.x, 0.0f, butterflyEntry->common.z, sp84, 1); + if (butterfly->unk100 != 0) { + butterfly->unk104 = 0xF0; + } + } + } + if (butterfly->unk100 != 0) { + xDiff = butterflyObj->segment.trans.x_position - butterfly->unk100->segment.trans.x_position; + zDiff = butterflyObj->segment.trans.z_position - butterfly->unk100->segment.trans.z_position; + temp = arctan2_f(xDiff, zDiff); + temp -= butterflyObj->segment.trans.y_rotation & 0xffff & 0xffff; + if (temp < 0) { + if (-sp72 < temp) { + butterflyObj->segment.trans.y_rotation += temp; + } else { + butterflyObj->segment.trans.y_rotation -= sp72; + } + } else if ((temp > 0)) { + if (temp < sp72) { + butterflyObj->segment.trans.y_rotation += temp; + } else { + butterflyObj->segment.trans.y_rotation += sp72; + } + } + sp84 = (butterfly->unk100->segment.trans.y_position + 16.0f) - butterflyObj->segment.trans.y_position; + if (sp84 < 0.0f) { + butterflyObj->segment.y_velocity -= sp7C * updateRate; + if (butterflyObj->segment.y_velocity < sp84) { + butterflyObj->segment.y_velocity = sp84; + } + } else if ((sp84 > 0.0f)) { + butterflyObj->segment.y_velocity += sp7C * updateRate; + if (sp84 < butterflyObj->segment.y_velocity) { + butterflyObj->segment.y_velocity = sp84; + } + } + if (((xDiff * xDiff) + (zDiff * zDiff)) < 256.0f) { + butterfly->unkFD = 4; + } + } else { + butterfly->unkFD = 1; + } + butterflyObj->segment.animFrame = (butterflyObj->segment.animFrame + (updateRate * 0x10)) & 0xFF; + break; + case 4: + if (butterfly->unk106 >= 0x181) { + butterfly->unk106 -= (updateRate * 0x10); + if (butterfly->unk106 < 0x180) { + butterfly->unk106 = 0x180; + } + } + xDiff = butterflyObj->segment.trans.x_position - butterflyEntry->common.x; + zDiff = butterflyObj->segment.trans.z_position - butterflyEntry->common.z; + radius = (butterflyEntry->unk8 * 2); + radius *= radius; + if (radius < ((xDiff * xDiff) + (zDiff * zDiff))) { + butterfly->unkFD = 2; + } else { + if (updateRate < butterfly->unk104) { + butterfly->unk104 -= updateRate; + } else { + butterfly->unk104 = 0; + var_v1 = obj_dist_racer(butterflyObj->segment.trans.x_position, 0.0f, + butterflyObj->segment.trans.z_position, 150.0f, 1, sp44); + if (var_v1 == 0) { + butterfly->unk100 = 0; + butterfly->unkFD = 1; + } else { + if (var_v1 >= 2) { + var_v1 = get_random_number_from_range(1, var_v1); + } + var_v1--; + butterfly->unk100 = sp44[var_v1]; + butterfly->unk104 = 0xF0; + } + } + if (butterfly->unkFD == 4) { + xDiff = butterflyObj->segment.trans.x_position - butterfly->unk100->segment.trans.x_position; + zDiff = butterflyObj->segment.trans.z_position - butterfly->unk100->segment.trans.z_position; + if (((xDiff * xDiff) + (zDiff * zDiff)) > 22500.0f) { + butterfly->unkFD = 3; + } else { + if (get_random_number_from_range(0, 0x64) >= 0x63) { + butterfly->unk106 = -butterfly->unk106; + } + butterflyObj->segment.trans.y_rotation += updateRate * butterfly->unk106; + if ((butterfly->unk100->segment.trans.y_position + 64.0f) < + butterflyObj->segment.trans.y_position) { + butterfly->unkFE = 0; + } else if (butterflyObj->segment.trans.y_position < + (butterfly->unk100->segment.trans.y_position + 8.0f)) { + butterfly->unkFE = 1; + } + if (butterfly->unkFE != 0) { + butterflyObj->segment.y_velocity += (sp7C * updateRate); + } else { + butterflyObj->segment.y_velocity -= (sp7C * updateRate); + } + butterflyObj->segment.trans.y_rotation += butterfly->unk106; + } + } + } + butterflyObj->segment.animFrame = (butterflyObj->segment.animFrame + (updateRate * 0x10)) & 0xFF; + break; + } + if (butterfly->unkFD != 0) { + if (butterfly->unk108 < sp78) { + butterfly->unk108 += (0.25f * updateRate); + if (sp78 < butterfly->unk108) { + butterfly->unk108 = sp78; + } + } + } + if (butterfly->unk108 != 0.0f) { + if (butterfly->unkFD != 4) { + var_f0 = 1.2f; + } else { + var_f0 = 1.6f; + } + if (sp64) { + var_f0 *= 1.6f; + } + if (butterflyObj->segment.y_velocity < -var_f0) { + butterflyObj->segment.y_velocity = -var_f0; + } + if (var_f0 < butterflyObj->segment.y_velocity) { + butterflyObj->segment.y_velocity = var_f0; + } + if (butterfly->unk108 != 0.0f) { + butterflyObj->segment.x_velocity = sins_f(butterflyObj->segment.trans.y_rotation) * -butterfly->unk108; + butterflyObj->segment.z_velocity = coss_f(butterflyObj->segment.trans.y_rotation) * -butterfly->unk108; + move_object(butterflyObj, butterflyObj->segment.x_velocity, butterflyObj->segment.y_velocity, + butterflyObj->segment.z_velocity); + } + } + butterfly->unkFC = 1 - butterfly->unkFC; + vertices = &butterfly->vertices[butterfly->unkFC * 6]; + var_v1 = sp64 == 0 ? 7 : 8; + xPos = sins((butterflyObj->segment.animFrame << var_v1)) >> 10; + yPos = coss((butterflyObj->segment.animFrame << var_v1)) >> 10; + if (xPos < 0) { + xPos = -xPos; + } + if ((!sp64) && (yPos < 0)) { + yPos = -yPos; + } + vertices[0].x = -xPos; + vertices[0].y = yPos; + vertices[1].x = -xPos; + vertices[1].y = yPos; + vertices[4].x = xPos; + vertices[4].y = yPos; + vertices[5].x = xPos; + vertices[5].y = yPos; +} + +void obj_init_midifade(Object *obj, LevelObjectEntry_MidiFade *entry) { + Object_64 *obj64; + s32 pad0; + ObjectTransform transform; + f32 ox; + f32 oy; + f32 oz; + s32 pad[10]; + Object_68 *obj68; + ObjectModel *objModel; + Vertex *vertices; + Vertex *vertex; + f32 mtx[4]; + f32 sinYRot; + f32 tempF3; + f32 minX; + f32 minZ; + f32 scaleF; + f32 minY; + f32 maxX; + f32 maxZ; + f32 cosYRot; + f32 tempF2; + f32 maxY; + s32 numOfVertices; + s32 i; + f32 scaleF2; + + obj->segment.trans.y_rotation = entry->angleY << 8 << 2; // Two shifts needed to skip a register. + obj64 = obj->unk64; + scaleF = (f32) (((s32) entry->scale) & 0xFFFF); + if (scaleF < 1.0f) { + scaleF = 1.0f; + } + scaleF /= 8; + obj->segment.trans.scale = obj->segment.header->scale * (scaleF); + transform.y_rotation = obj->segment.trans.y_rotation; + transform.x_rotation = obj->segment.trans.x_rotation; + transform.z_rotation = obj->segment.trans.z_rotation; + transform.scale = 1.0f; + transform.x_position = 0.0f; + transform.y_position = 0.0f; + transform.z_position = 0.0f; + object_transform_to_matrix(mtx, &transform); + guMtxXFMF(mtx, 0.0f, 0.0f, 1.0f, &ox, &oy, &oz); + obj64->midi_fade.unk8 = ox; + obj64->midi_fade.unkC = oy; + obj64->midi_fade.unk10 = oz; + obj64->midi_fade.unk14 = -((obj->segment.trans.x_position * ox) + (obj->segment.trans.y_position * oy) + + (obj->segment.trans.z_position * oz)); + obj64->midi_fade.unk2 = entry->unk1A; + obj64->midi_fade.unk40 = entry->unk1B; + + for (i = 0; i < 15; i++) { + obj64->midi_fade.unk2F[i] = entry->unkA[i]; + } + + obj68 = *obj->unk68; + objModel = obj68->objModel; + vertex = &objModel->vertices[1]; + maxX = vertex->x; + maxY = vertex->y; + maxZ = vertex->z; + minX = maxX; + minY = maxY; + minZ = maxZ; + for (i = 1; i < objModel->numberOfVertices; i++) { + vertex = &objModel->vertices[i]; + if (vertex->x < minX) { + minX = vertex->x; + } + if (maxX < vertex->x) { + maxX = vertex->x; + } + if (vertex->y < minY) { + minY = vertex->y; + } + if (maxY < vertex->y) { + maxY = vertex->y; + } + if (vertex->z < minZ) { + minZ = vertex->z; + } + if (maxZ < vertex->z) { + maxZ = vertex->z; + } + } + cosYRot = coss_f(obj->segment.trans.y_rotation); + sinYRot = sins_f(obj->segment.trans.y_rotation); + tempF3 = minX; + minX = (minX * cosYRot) + (minZ * sinYRot); + minZ = (minZ * cosYRot) - (tempF3 * sinYRot); + tempF3 = maxX; + maxX = (maxX * cosYRot) + (maxZ * sinYRot); + maxZ = (maxZ * cosYRot) - (tempF3 * sinYRot); + if (maxX < minX) { + tempF2 = maxX; + maxX = minX; + minX = tempF2; + } + if (maxZ < minZ) { + tempF2 = maxZ; + maxZ = minZ; + minZ = tempF2; + } + obj64->midi_fade.unk18 = (obj->segment.trans.scale * minX) + obj->segment.trans.x_position; + obj64->midi_fade.unk1C = (obj->segment.trans.scale * minY) + obj->segment.trans.y_position; + obj64->midi_fade.unk20 = (obj->segment.trans.scale * minZ) + obj->segment.trans.z_position; + obj64->midi_fade.unk24 = (obj->segment.trans.scale * maxX) + obj->segment.trans.x_position; + obj64->midi_fade.unk28 = (obj->segment.trans.scale * maxY) + obj->segment.trans.y_position; + obj64->midi_fade.unk2C = (obj->segment.trans.scale * maxZ) + obj->segment.trans.z_position; + obj64->midi_fade.unk1 = 0; +} void obj_init_midifadepoint(Object *obj, LevelObjectEntry_MidiFadePoint *entry) { Object_MidiFadePoint *obj64; diff --git a/src/object_functions.h b/src/object_functions.h index 41fa3b11..af294e0c 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -12,6 +12,7 @@ #define TIME_JIFFIES_PER_SECOND 60 #define TIME_SECONDS(sec) sec * TIME_JIFFIES_PER_SECOND #define U8_ANGLE_TO_U16(x) (x << 6 << 4) +#define TEX_INDEX_NO_TEXTURE 0xFF enum BananaBehaviour { BANANA_COLLECTED = -1, @@ -435,14 +436,12 @@ void obj_init_audio(Object *obj, LevelObjectEntry_Audio *entry); void obj_init_bombexplosion(Object *obj, LevelObjectEntry_BombExplosion *entry); void obj_init_scenery(Object *obj, LevelObjectEntry_Scenery *entry); void weapon_projectile(Object *obj, s32 updateRate); - -//Non Matching +void obj_loop_texscroll(Object *obj, s32 updateRate); +void obj_loop_animator(Object *obj, s32 updateRate); void calc_env_mapping_for_object(ObjectModel *, s16, s16, s16); void obj_init_fish(Object *fishObj, LevelObjectEntry_Fish *fishEntry, s32 param); void obj_init_midifade(Object *obj, LevelObjectEntry_MidiFade *entry); -void obj_loop_texscroll(Object *obj, s32 updateRate); -void obj_loop_butterfly(Object *obj, s32 updateRate); -void obj_loop_animator(Object *obj, s32 updateRate); +void obj_loop_butterfly(Object *butterflyObj, s32 updateRate); s32 ainode_find_nearest(f32 diffX, f32 diffY, f32 diffZ, s32 useElevation); s32 func_8001CC48(s32, s32, s32); f32 func_8001C6C4(Object_64 *, Object *, f32, f32, s32); diff --git a/tools/dkr_assets_tool_src/helpers/stringHelper.h b/tools/dkr_assets_tool_src/helpers/stringHelper.h index 0c3dc090..a4701d4a 100644 --- a/tools/dkr_assets_tool_src/helpers/stringHelper.h +++ b/tools/dkr_assets_tool_src/helpers/stringHelper.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include