From 713de9b9422aacc46a4adfaae7510e376cbcd236 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Mon, 4 May 2020 12:11:37 -0400 Subject: [PATCH] Decompiled ovl_En_Cow (#113) * Beginning the Cow * Decompiled ovl_En_Cow * Giving the cow milk --- Dockerfile | 12 +- .../actors/ovl_En_Cow/EnCow_Destroy.s | 22 -- .../overlays/actors/ovl_En_Cow/EnCow_Draw.s | 24 -- .../overlays/actors/ovl_En_Cow/EnCow_Init.s | 300 --------------- .../actors/ovl_En_Cow/func_809DEE00.s | 44 --- .../actors/ovl_En_Cow/func_809DEE9C.s | 63 --- .../actors/ovl_En_Cow/func_809DEF94.s | 33 -- .../actors/ovl_En_Cow/func_809DF494.s | 169 -------- .../actors/ovl_En_Cow/func_809DF6BC.s | 31 -- .../actors/ovl_En_Cow/func_809DF730.s | 20 - .../actors/ovl_En_Cow/func_809DF778.s | 27 -- .../actors/ovl_En_Cow/func_809DF7D8.s | 40 -- .../actors/ovl_En_Cow/func_809DF870.s | 39 -- .../actors/ovl_En_Cow/func_809DF8FC.s | 31 -- .../actors/ovl_En_Cow/func_809DF96C.s | 78 ---- .../actors/ovl_En_Cow/func_809DFA84.s | 114 ------ .../actors/ovl_En_Cow/func_809DFE98.s | 67 ---- .../actors/ovl_En_Cow/func_809DFF84.s | 23 -- .../actors/ovl_En_Cow/func_809DFFD4.s | 18 - .../actors/ovl_En_Cow/func_809E0070.s | 21 - data/overlays/actors/z_en_cow.data.s | 20 - data/overlays/actors/z_en_cow.reloc.s | 11 - include/functions.h | 1 + spec | 3 +- src/overlays/actors/ovl_En_Cow/z_en_cow.c | 362 ++++++++++++++++-- src/overlays/actors/ovl_En_Cow/z_en_cow.h | 10 +- tools/regconvert.py | 0 undefined_syms.txt | 8 + 28 files changed, 366 insertions(+), 1225 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE00.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE9C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEF94.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF494.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF6BC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF730.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF778.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF7D8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF870.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF8FC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF96C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFA84.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFE98.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFF84.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFFD4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Cow/func_809E0070.s delete mode 100644 data/overlays/actors/z_en_cow.data.s delete mode 100644 data/overlays/actors/z_en_cow.reloc.s mode change 100644 => 100755 tools/regconvert.py diff --git a/Dockerfile b/Dockerfile index d5ee7ee4a7..5acd2801bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,12 +6,13 @@ RUN apt-get update && \ build-essential \ pkg-config \ python3 \ - python3-pip \ + python3-pip \ wget \ - git \ - unzip \ - vbindiff \ - nano + git \ + unzip \ + clang-tidy \ + clang-format + nano RUN wget \ https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb \ @@ -21,6 +22,7 @@ RUN wget \ rm qemu.deb RUN python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein +RUN python3 -m pip install --upgrade attrs pycparser RUN mkdir /oot WORKDIR /oot diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Destroy.s deleted file mode 100644 index 3b73391527..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Destroy.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel EnCow_Destroy -/* 0064C 809DF44C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00650 809DF450 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00654 809DF454 AFA5001C */ sw $a1, 0x001C($sp) -/* 00658 809DF458 848E001C */ lh $t6, 0x001C($a0) ## 0000001C -/* 0065C 809DF45C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00660 809DF460 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00664 809DF464 15C00007 */ bne $t6, $zero, .L809DF484 -/* 00668 809DF468 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C -/* 0066C 809DF46C 0C0170EB */ jal Collider_DestroyCylinder - -/* 00670 809DF470 AFA60018 */ sw $a2, 0x0018($sp) -/* 00674 809DF474 8FA60018 */ lw $a2, 0x0018($sp) -/* 00678 809DF478 8FA4001C */ lw $a0, 0x001C($sp) -/* 0067C 809DF47C 0C0170EB */ jal Collider_DestroyCylinder - -/* 00680 809DF480 24C50198 */ addiu $a1, $a2, 0x0198 ## $a1 = 00000198 -.L809DF484: -/* 00684 809DF484 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00688 809DF488 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0068C 809DF48C 03E00008 */ jr $ra -/* 00690 809DF490 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Draw.s deleted file mode 100644 index 6f58920c3c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Draw.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel EnCow_Draw -/* 01214 809E0014 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 01218 809E0018 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0121C 809E001C AFA40028 */ sw $a0, 0x0028($sp) -/* 01220 809E0020 AFA5002C */ sw $a1, 0x002C($sp) -/* 01224 809E0024 0C0250F2 */ jal func_800943C8 -/* 01228 809E0028 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000 -/* 0122C 809E002C 8FA20028 */ lw $v0, 0x0028($sp) -/* 01230 809E0030 3C0F809E */ lui $t7, %hi(func_809DFF84) ## $t7 = 809E0000 -/* 01234 809E0034 3C18809E */ lui $t8, %hi(func_809DFFD4) ## $t8 = 809E0000 -/* 01238 809E0038 8C4501E8 */ lw $a1, 0x01E8($v0) ## 000001E8 -/* 0123C 809E003C 8C460204 */ lw $a2, 0x0204($v0) ## 00000204 -/* 01240 809E0040 904701E6 */ lbu $a3, 0x01E6($v0) ## 000001E6 -/* 01244 809E0044 2718FFD4 */ addiu $t8, $t8, %lo(func_809DFFD4) ## $t8 = 809DFFD4 -/* 01248 809E0048 25EFFF84 */ addiu $t7, $t7, %lo(func_809DFF84) ## $t7 = 809DFF84 -/* 0124C 809E004C AFAF0010 */ sw $t7, 0x0010($sp) -/* 01250 809E0050 AFB80014 */ sw $t8, 0x0014($sp) -/* 01254 809E0054 8FA4002C */ lw $a0, 0x002C($sp) -/* 01258 809E0058 0C0286B2 */ jal SkelAnime_DrawSV -/* 0125C 809E005C AFA20018 */ sw $v0, 0x0018($sp) -/* 01260 809E0060 8FBF0024 */ lw $ra, 0x0024($sp) -/* 01264 809E0064 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 01268 809E0068 03E00008 */ jr $ra -/* 0126C 809E006C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Init.s deleted file mode 100644 index abf0a6e81a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Init.s +++ /dev/null @@ -1,300 +0,0 @@ -glabel EnCow_Init -/* 00214 809DF014 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 00218 809DF018 AFB10038 */ sw $s1, 0x0038($sp) -/* 0021C 809DF01C AFB00034 */ sw $s0, 0x0034($sp) -/* 00220 809DF020 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00224 809DF024 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00228 809DF028 AFBF003C */ sw $ra, 0x003C($sp) -/* 0022C 809DF02C 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle) -/* 00230 809DF030 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle) -/* 00234 809DF034 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 00238 809DF038 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4 -/* 0023C 809DF03C 0C00AC78 */ jal ActorShape_Init - -/* 00240 809DF040 3C074290 */ lui $a3, 0x4290 ## $a3 = 42900000 -/* 00244 809DF044 8602001C */ lh $v0, 0x001C($s0) ## 0000001C -/* 00248 809DF048 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 0024C 809DF04C 260501E4 */ addiu $a1, $s0, 0x01E4 ## $a1 = 000001E4 -/* 00250 809DF050 10400006 */ beq $v0, $zero, .L809DF06C -/* 00254 809DF054 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 00258 809DF058 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 0025C 809DF05C 1041007F */ beq $v0, $at, .L809DF25C -/* 00260 809DF060 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00264 809DF064 100000EE */ beq $zero, $zero, .L809DF420 -/* 00268 809DF068 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF -.L809DF06C: -/* 0026C 809DF06C 260E0228 */ addiu $t6, $s0, 0x0228 ## $t6 = 00000228 -/* 00270 809DF070 260F024C */ addiu $t7, $s0, 0x024C ## $t7 = 0000024C -/* 00274 809DF074 24180006 */ addiu $t8, $zero, 0x0006 ## $t8 = 00000006 -/* 00278 809DF078 AFB80018 */ sw $t8, 0x0018($sp) -/* 0027C 809DF07C AFAF0014 */ sw $t7, 0x0014($sp) -/* 00280 809DF080 AFAE0010 */ sw $t6, 0x0010($sp) -/* 00284 809DF084 24C64010 */ addiu $a2, $a2, 0x4010 ## $a2 = 06004010 -/* 00288 809DF088 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 0028C 809DF08C 0C0291BE */ jal SkelAnime_InitSV -/* 00290 809DF090 AFA50040 */ sw $a1, 0x0040($sp) -/* 00294 809DF094 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00298 809DF098 24A501CC */ addiu $a1, $a1, 0x01CC ## $a1 = 060001CC -/* 0029C 809DF09C 0C0294BE */ jal SkelAnime_ChangeAnimDefaultRepeat -/* 002A0 809DF0A0 8FA40040 */ lw $a0, 0x0040($sp) -/* 002A4 809DF0A4 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 002A8 809DF0A8 AFA50040 */ sw $a1, 0x0040($sp) -/* 002AC 809DF0AC 0C0170D9 */ jal Collider_InitCylinder - -/* 002B0 809DF0B0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 002B4 809DF0B4 3C07809E */ lui $a3, %hi(D_809E00E0) ## $a3 = 809E0000 -/* 002B8 809DF0B8 8FA50040 */ lw $a1, 0x0040($sp) -/* 002BC 809DF0BC 24E700E0 */ addiu $a3, $a3, %lo(D_809E00E0) ## $a3 = 809E00E0 -/* 002C0 809DF0C0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 002C4 809DF0C4 0C01712B */ jal Collider_SetCylinder - -/* 002C8 809DF0C8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 002CC 809DF0CC 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198 -/* 002D0 809DF0D0 AFA50040 */ sw $a1, 0x0040($sp) -/* 002D4 809DF0D4 0C0170D9 */ jal Collider_InitCylinder - -/* 002D8 809DF0D8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 002DC 809DF0DC 3C07809E */ lui $a3, %hi(D_809E00E0) ## $a3 = 809E0000 -/* 002E0 809DF0E0 8FA50040 */ lw $a1, 0x0040($sp) -/* 002E4 809DF0E4 24E700E0 */ addiu $a3, $a3, %lo(D_809E00E0) ## $a3 = 809E00E0 -/* 002E8 809DF0E8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 002EC 809DF0EC 0C01712B */ jal Collider_SetCylinder - -/* 002F0 809DF0F0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 002F4 809DF0F4 0C277BA7 */ jal func_809DEE9C -/* 002F8 809DF0F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002FC 809DF0FC 3C19809E */ lui $t9, %hi(func_809DF96C) ## $t9 = 809E0000 -/* 00300 809DF100 2739F96C */ addiu $t9, $t9, %lo(func_809DF96C) ## $t9 = 809DF96C -/* 00304 809DF104 AE19027C */ sw $t9, 0x027C($s0) ## 0000027C -/* 00308 809DF108 862800A4 */ lh $t0, 0x00A4($s1) ## 000000A4 -/* 0030C 809DF10C 24010034 */ addiu $at, $zero, 0x0034 ## $at = 00000034 -/* 00310 809DF110 3C028016 */ lui $v0, %hi(gSaveContext) -/* 00314 809DF114 15010010 */ bne $t0, $at, .L809DF158 -/* 00318 809DF118 2442E660 */ addiu $v0, %lo(gSaveContext) -/* 0031C 809DF11C 8C490004 */ lw $t1, 0x0004($v0) ## 8015E664 -/* 00320 809DF120 51200006 */ beql $t1, $zero, .L809DF13C -/* 00324 809DF124 944A0ED6 */ lhu $t2, 0x0ED6($v0) ## 8015F536 -/* 00328 809DF128 0C00B55C */ jal Actor_Kill - -/* 0032C 809DF12C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00330 809DF130 100000C2 */ beq $zero, $zero, .L809DF43C -/* 00334 809DF134 8FBF003C */ lw $ra, 0x003C($sp) -/* 00338 809DF138 944A0ED6 */ lhu $t2, 0x0ED6($v0) ## 00000ED6 -.L809DF13C: -/* 0033C 809DF13C 314B4000 */ andi $t3, $t2, 0x4000 ## $t3 = 00000000 -/* 00340 809DF140 55600006 */ bnel $t3, $zero, .L809DF15C -/* 00344 809DF144 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -/* 00348 809DF148 0C00B55C */ jal Actor_Kill - -/* 0034C 809DF14C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00350 809DF150 100000BA */ beq $zero, $zero, .L809DF43C -/* 00354 809DF154 8FBF003C */ lw $ra, 0x003C($sp) -.L809DF158: -/* 00358 809DF158 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -.L809DF15C: -/* 0035C 809DF15C 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 00360 809DF160 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24 -/* 00364 809DF164 E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00368 809DF168 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028 -/* 0036C 809DF16C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00370 809DF170 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000 -/* 00374 809DF174 E7A60014 */ swc1 $f6, 0x0014($sp) -/* 00378 809DF178 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C -/* 0037C 809DF17C AFA0001C */ sw $zero, 0x001C($sp) -/* 00380 809DF180 240701C6 */ addiu $a3, $zero, 0x01C6 ## $a3 = 000001C6 -/* 00384 809DF184 E7A80018 */ swc1 $f8, 0x0018($sp) -/* 00388 809DF188 860C00B6 */ lh $t4, 0x00B6($s0) ## 000000B6 -/* 0038C 809DF18C AFAD0028 */ sw $t5, 0x0028($sp) -/* 00390 809DF190 AFA00024 */ sw $zero, 0x0024($sp) -/* 00394 809DF194 0C00C916 */ jal Actor_SpawnAttached - -/* 00398 809DF198 AFAC0020 */ sw $t4, 0x0020($sp) -/* 0039C 809DF19C 3C01447A */ lui $at, 0x447A ## $at = 447A0000 -/* 003A0 809DF1A0 44816000 */ mtc1 $at, $f12 ## $f12 = 1000.00 -/* 003A4 809DF1A4 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 003A8 809DF1A8 00000000 */ nop -/* 003AC 809DF1AC 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 003B0 809DF1B0 44815000 */ mtc1 $at, $f10 ## $f10 = 40.00 -/* 003B4 809DF1B4 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 003B8 809DF1B8 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 003BC 809DF1BC 460A0400 */ add.s $f16, $f0, $f10 -/* 003C0 809DF1C0 24180006 */ addiu $t8, $zero, 0x0006 ## $t8 = 00000006 -/* 003C4 809DF1C4 3C198016 */ lui $t9, %hi(gGameInfo) -/* 003C8 809DF1C8 444EF800 */ cfc1 $t6, $31 -/* 003CC 809DF1CC 44CFF800 */ ctc1 $t7, $31 -/* 003D0 809DF1D0 00000000 */ nop -/* 003D4 809DF1D4 460084A4 */ cvt.w.s $f18, $f16 -/* 003D8 809DF1D8 444FF800 */ cfc1 $t7, $31 -/* 003DC 809DF1DC 00000000 */ nop -/* 003E0 809DF1E0 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000 -/* 003E4 809DF1E4 51E00013 */ beql $t7, $zero, .L809DF234 -/* 003E8 809DF1E8 440F9000 */ mfc1 $t7, $f18 -/* 003EC 809DF1EC 44819000 */ mtc1 $at, $f18 ## $f18 = 2147483648.00 -/* 003F0 809DF1F0 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001 -/* 003F4 809DF1F4 46128481 */ sub.s $f18, $f16, $f18 -/* 003F8 809DF1F8 44CFF800 */ ctc1 $t7, $31 -/* 003FC 809DF1FC 00000000 */ nop -/* 00400 809DF200 460094A4 */ cvt.w.s $f18, $f18 -/* 00404 809DF204 444FF800 */ cfc1 $t7, $31 -/* 00408 809DF208 00000000 */ nop -/* 0040C 809DF20C 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000 -/* 00410 809DF210 15E00005 */ bne $t7, $zero, .L809DF228 -/* 00414 809DF214 00000000 */ nop -/* 00418 809DF218 440F9000 */ mfc1 $t7, $f18 -/* 0041C 809DF21C 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00420 809DF220 10000007 */ beq $zero, $zero, .L809DF240 -/* 00424 809DF224 01E17825 */ or $t7, $t7, $at ## $t7 = 80000000 -.L809DF228: -/* 00428 809DF228 10000005 */ beq $zero, $zero, .L809DF240 -/* 0042C 809DF22C 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF -/* 00430 809DF230 440F9000 */ mfc1 $t7, $f18 -.L809DF234: -/* 00434 809DF234 00000000 */ nop -/* 00438 809DF238 05E0FFFB */ bltz $t7, .L809DF228 -/* 0043C 809DF23C 00000000 */ nop -.L809DF240: -/* 00440 809DF240 A60F0278 */ sh $t7, 0x0278($s0) ## 00000278 -/* 00444 809DF244 A600027A */ sh $zero, 0x027A($s0) ## 0000027A -/* 00448 809DF248 A218001F */ sb $t8, 0x001F($s0) ## 0000001F -/* 0044C 809DF24C 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9) -/* 00450 809DF250 44CEF800 */ ctc1 $t6, $31 -/* 00454 809DF254 10000071 */ beq $zero, $zero, .L809DF41C -/* 00458 809DF258 A72005BE */ sh $zero, 0x05BE($t9) ## 801605BE -.L809DF25C: -/* 0045C 809DF25C 260501E4 */ addiu $a1, $s0, 0x01E4 ## $a1 = 000001E4 -/* 00460 809DF260 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 00464 809DF264 26080228 */ addiu $t0, $s0, 0x0228 ## $t0 = 00000228 -/* 00468 809DF268 2609024C */ addiu $t1, $s0, 0x024C ## $t1 = 0000024C -/* 0046C 809DF26C 240A0006 */ addiu $t2, $zero, 0x0006 ## $t2 = 00000006 -/* 00470 809DF270 AFAA0018 */ sw $t2, 0x0018($sp) -/* 00474 809DF274 AFA90014 */ sw $t1, 0x0014($sp) -/* 00478 809DF278 AFA80010 */ sw $t0, 0x0010($sp) -/* 0047C 809DF27C 24C64C30 */ addiu $a2, $a2, 0x4C30 ## $a2 = 06004C30 -/* 00480 809DF280 AFA50040 */ sw $a1, 0x0040($sp) -/* 00484 809DF284 0C0291BE */ jal SkelAnime_InitSV -/* 00488 809DF288 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 0048C 809DF28C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00490 809DF290 24A54348 */ addiu $a1, $a1, 0x4348 ## $a1 = 06004348 -/* 00494 809DF294 0C0294BE */ jal SkelAnime_ChangeAnimDefaultRepeat -/* 00498 809DF298 8FA40040 */ lw $a0, 0x0040($sp) -/* 0049C 809DF29C 3C0B809E */ lui $t3, %hi(func_809DFE98) ## $t3 = 809E0000 -/* 004A0 809DF2A0 3C0C809E */ lui $t4, %hi(func_809E0070) ## $t4 = 809E0000 -/* 004A4 809DF2A4 3C0D809E */ lui $t5, %hi(func_809DFA84) ## $t5 = 809E0000 -/* 004A8 809DF2A8 256BFE98 */ addiu $t3, $t3, %lo(func_809DFE98) ## $t3 = 809DFE98 -/* 004AC 809DF2AC 258C0070 */ addiu $t4, $t4, %lo(func_809E0070) ## $t4 = 809E0070 -/* 004B0 809DF2B0 25ADFA84 */ addiu $t5, $t5, %lo(func_809DFA84) ## $t5 = 809DFA84 -/* 004B4 809DF2B4 AE0B0130 */ sw $t3, 0x0130($s0) ## 00000130 -/* 004B8 809DF2B8 AE0C0134 */ sw $t4, 0x0134($s0) ## 00000134 -/* 004BC 809DF2BC AE0D027C */ sw $t5, 0x027C($s0) ## 0000027C -/* 004C0 809DF2C0 0C277BE5 */ jal func_809DEF94 -/* 004C4 809DF2C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 004C8 809DF2C8 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004 -/* 004CC 809DF2CC 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 004D0 809DF2D0 01C17824 */ and $t7, $t6, $at -/* 004D4 809DF2D4 3C01447A */ lui $at, 0x447A ## $at = 447A0000 -/* 004D8 809DF2D8 44816000 */ mtc1 $at, $f12 ## $f12 = 1000.00 -/* 004DC 809DF2DC 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 004E0 809DF2E0 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004 -/* 004E4 809DF2E4 4458F800 */ cfc1 $t8, $31 -/* 004E8 809DF2E8 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 004EC 809DF2EC 44D9F800 */ ctc1 $t9, $31 -/* 004F0 809DF2F0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 004F4 809DF2F4 46000124 */ cvt.w.s $f4, $f0 -/* 004F8 809DF2F8 4459F800 */ cfc1 $t9, $31 -/* 004FC 809DF2FC 00000000 */ nop -/* 00500 809DF300 33390078 */ andi $t9, $t9, 0x0078 ## $t9 = 00000000 -/* 00504 809DF304 53200013 */ beql $t9, $zero, .L809DF354 -/* 00508 809DF308 44192000 */ mfc1 $t9, $f4 -/* 0050C 809DF30C 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00 -/* 00510 809DF310 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 00514 809DF314 46040101 */ sub.s $f4, $f0, $f4 -/* 00518 809DF318 44D9F800 */ ctc1 $t9, $31 -/* 0051C 809DF31C 00000000 */ nop -/* 00520 809DF320 46002124 */ cvt.w.s $f4, $f4 -/* 00524 809DF324 4459F800 */ cfc1 $t9, $31 -/* 00528 809DF328 00000000 */ nop -/* 0052C 809DF32C 33390078 */ andi $t9, $t9, 0x0078 ## $t9 = 00000000 -/* 00530 809DF330 17200005 */ bne $t9, $zero, .L809DF348 -/* 00534 809DF334 00000000 */ nop -/* 00538 809DF338 44192000 */ mfc1 $t9, $f4 -/* 0053C 809DF33C 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00540 809DF340 10000007 */ beq $zero, $zero, .L809DF360 -/* 00544 809DF344 0321C825 */ or $t9, $t9, $at ## $t9 = 80000000 -.L809DF348: -/* 00548 809DF348 10000005 */ beq $zero, $zero, .L809DF360 -/* 0054C 809DF34C 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF -/* 00550 809DF350 44192000 */ mfc1 $t9, $f4 -.L809DF354: -/* 00554 809DF354 00000000 */ nop -/* 00558 809DF358 0720FFFB */ bltz $t9, .L809DF348 -/* 0055C 809DF35C 00000000 */ nop -.L809DF360: -/* 00560 809DF360 3328FFFF */ andi $t0, $t9, 0xFFFF ## $t0 = 0000FFFF -/* 00564 809DF364 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00 -/* 00568 809DF368 44D8F800 */ ctc1 $t8, $31 -/* 0056C 809DF36C 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000 -/* 00570 809DF370 05010004 */ bgez $t0, .L809DF384 -/* 00574 809DF374 46803220 */ cvt.s.w $f8, $f6 -/* 00578 809DF378 44815000 */ mtc1 $at, $f10 ## $f10 = 4294967296.00 -/* 0057C 809DF37C 00000000 */ nop -/* 00580 809DF380 460A4200 */ add.s $f8, $f8, $f10 -.L809DF384: -/* 00584 809DF384 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 00588 809DF388 44818000 */ mtc1 $at, $f16 ## $f16 = 40.00 -/* 0058C 809DF38C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 00590 809DF390 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 00594 809DF394 46104480 */ add.s $f18, $f8, $f16 -/* 00598 809DF398 4449F800 */ cfc1 $t1, $31 -/* 0059C 809DF39C 44CAF800 */ ctc1 $t2, $31 -/* 005A0 809DF3A0 00000000 */ nop -/* 005A4 809DF3A4 46009124 */ cvt.w.s $f4, $f18 -/* 005A8 809DF3A8 444AF800 */ cfc1 $t2, $31 -/* 005AC 809DF3AC 00000000 */ nop -/* 005B0 809DF3B0 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 005B4 809DF3B4 51400013 */ beql $t2, $zero, .L809DF404 -/* 005B8 809DF3B8 440A2000 */ mfc1 $t2, $f4 -/* 005BC 809DF3BC 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00 -/* 005C0 809DF3C0 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001 -/* 005C4 809DF3C4 46049101 */ sub.s $f4, $f18, $f4 -/* 005C8 809DF3C8 44CAF800 */ ctc1 $t2, $31 -/* 005CC 809DF3CC 00000000 */ nop -/* 005D0 809DF3D0 46002124 */ cvt.w.s $f4, $f4 -/* 005D4 809DF3D4 444AF800 */ cfc1 $t2, $31 -/* 005D8 809DF3D8 00000000 */ nop -/* 005DC 809DF3DC 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000 -/* 005E0 809DF3E0 15400005 */ bne $t2, $zero, .L809DF3F8 -/* 005E4 809DF3E4 00000000 */ nop -/* 005E8 809DF3E8 440A2000 */ mfc1 $t2, $f4 -/* 005EC 809DF3EC 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 005F0 809DF3F0 10000007 */ beq $zero, $zero, .L809DF410 -/* 005F4 809DF3F4 01415025 */ or $t2, $t2, $at ## $t2 = 80000000 -.L809DF3F8: -/* 005F8 809DF3F8 10000005 */ beq $zero, $zero, .L809DF410 -/* 005FC 809DF3FC 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF -/* 00600 809DF400 440A2000 */ mfc1 $t2, $f4 -.L809DF404: -/* 00604 809DF404 00000000 */ nop -/* 00608 809DF408 0540FFFB */ bltz $t2, .L809DF3F8 -/* 0060C 809DF40C 00000000 */ nop -.L809DF410: -/* 00610 809DF410 44C9F800 */ ctc1 $t1, $31 -/* 00614 809DF414 A60A0278 */ sh $t2, 0x0278($s0) ## 00000278 -/* 00618 809DF418 00000000 */ nop -.L809DF41C: -/* 0061C 809DF41C 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF -.L809DF420: -/* 00620 809DF420 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -/* 00624 809DF424 A20B00AE */ sb $t3, 0x00AE($s0) ## 000000AE -/* 00628 809DF428 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A -/* 0062C 809DF42C 0C00B58B */ jal Actor_SetScale - -/* 00630 809DF430 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00634 809DF434 A6000276 */ sh $zero, 0x0276($s0) ## 00000276 -/* 00638 809DF438 8FBF003C */ lw $ra, 0x003C($sp) -.L809DF43C: -/* 0063C 809DF43C 8FB00034 */ lw $s0, 0x0034($sp) -/* 00640 809DF440 8FB10038 */ lw $s1, 0x0038($sp) -/* 00644 809DF444 03E00008 */ jr $ra -/* 00648 809DF448 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE00.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE00.s deleted file mode 100644 index e2743d31a5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE00.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_809DEE00 -/* 00000 809DEE00 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00004 809DEE04 AFB00018 */ sw $s0, 0x0018($sp) -/* 00008 809DEE08 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0000C 809DEE0C AFBF001C */ sw $ra, 0x001C($sp) -/* 00010 809DEE10 AFA5002C */ sw $a1, 0x002C($sp) -/* 00014 809DEE14 0C01DE0D */ jal Math_Coss - ## coss? -/* 00018 809DEE18 87A4002E */ lh $a0, 0x002E($sp) -/* 0001C 809DEE1C E7A00020 */ swc1 $f0, 0x0020($sp) -/* 00020 809DEE20 0C01DE1C */ jal Math_Sins - ## sins? -/* 00024 809DEE24 87A4002E */ lh $a0, 0x002E($sp) -/* 00028 809DEE28 C7A40020 */ lwc1 $f4, 0x0020($sp) -/* 0002C 809DEE2C C6060000 */ lwc1 $f6, 0x0000($s0) ## 00000000 -/* 00030 809DEE30 C60A0008 */ lwc1 $f10, 0x0008($s0) ## 00000008 -/* 00034 809DEE34 87A4002E */ lh $a0, 0x002E($sp) -/* 00038 809DEE38 46062202 */ mul.s $f8, $f4, $f6 -/* 0003C 809DEE3C 00000000 */ nop -/* 00040 809DEE40 460A0402 */ mul.s $f16, $f0, $f10 -/* 00044 809DEE44 46088480 */ add.s $f18, $f16, $f8 -/* 00048 809DEE48 0C01DE1C */ jal Math_Sins - ## sins? -/* 0004C 809DEE4C E7B20024 */ swc1 $f18, 0x0024($sp) -/* 00050 809DEE50 E7A00020 */ swc1 $f0, 0x0020($sp) -/* 00054 809DEE54 0C01DE0D */ jal Math_Coss - ## coss? -/* 00058 809DEE58 87A4002E */ lh $a0, 0x002E($sp) -/* 0005C 809DEE5C C7A40020 */ lwc1 $f4, 0x0020($sp) -/* 00060 809DEE60 C60A0000 */ lwc1 $f10, 0x0000($s0) ## 00000000 -/* 00064 809DEE64 C6080008 */ lwc1 $f8, 0x0008($s0) ## 00000008 -/* 00068 809DEE68 46002187 */ neg.s $f6, $f4 -/* 0006C 809DEE6C 460A3402 */ mul.s $f16, $f6, $f10 -/* 00070 809DEE70 00000000 */ nop -/* 00074 809DEE74 46080482 */ mul.s $f18, $f0, $f8 -/* 00078 809DEE78 46109100 */ add.s $f4, $f18, $f16 -/* 0007C 809DEE7C E6040008 */ swc1 $f4, 0x0008($s0) ## 00000008 -/* 00080 809DEE80 C7A60024 */ lwc1 $f6, 0x0024($sp) -/* 00084 809DEE84 E6060000 */ swc1 $f6, 0x0000($s0) ## 00000000 -/* 00088 809DEE88 8FBF001C */ lw $ra, 0x001C($sp) -/* 0008C 809DEE8C 8FB00018 */ lw $s0, 0x0018($sp) -/* 00090 809DEE90 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00094 809DEE94 03E00008 */ jr $ra -/* 00098 809DEE98 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE9C.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE9C.s deleted file mode 100644 index f66f5a68e5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE9C.s +++ /dev/null @@ -1,63 +0,0 @@ -glabel func_809DEE9C -/* 0009C 809DEE9C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 000A0 809DEEA0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 000A4 809DEEA4 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 000A8 809DEEA8 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00 -/* 000AC 809DEEAC AFBF0014 */ sw $ra, 0x0014($sp) -/* 000B0 809DEEB0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 000B4 809DEEB4 E7A00020 */ swc1 $f0, 0x0020($sp) -/* 000B8 809DEEB8 E7A0001C */ swc1 $f0, 0x001C($sp) -/* 000BC 809DEEBC E7A40024 */ swc1 $f4, 0x0024($sp) -/* 000C0 809DEEC0 84C500B6 */ lh $a1, 0x00B6($a2) ## 000000B6 -/* 000C4 809DEEC4 AFA60028 */ sw $a2, 0x0028($sp) -/* 000C8 809DEEC8 0C277B80 */ jal func_809DEE00 -/* 000CC 809DEECC 27A4001C */ addiu $a0, $sp, 0x001C ## $a0 = FFFFFFF4 -/* 000D0 809DEED0 8FA60028 */ lw $a2, 0x0028($sp) -/* 000D4 809DEED4 C7A8001C */ lwc1 $f8, 0x001C($sp) -/* 000D8 809DEED8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 000DC 809DEEDC C4C60024 */ lwc1 $f6, 0x0024($a2) ## 00000024 -/* 000E0 809DEEE0 C4D20028 */ lwc1 $f18, 0x0028($a2) ## 00000028 -/* 000E4 809DEEE4 3C01C1A0 */ lui $at, 0xC1A0 ## $at = C1A00000 -/* 000E8 809DEEE8 46083280 */ add.s $f10, $f6, $f8 -/* 000EC 809DEEEC C4C6002C */ lwc1 $f6, 0x002C($a2) ## 0000002C -/* 000F0 809DEEF0 27A4001C */ addiu $a0, $sp, 0x001C ## $a0 = FFFFFFF4 -/* 000F4 809DEEF4 4600910D */ trunc.w.s $f4, $f18 -/* 000F8 809DEEF8 44819000 */ mtc1 $at, $f18 ## $f18 = -20.00 -/* 000FC 809DEEFC 4600540D */ trunc.w.s $f16, $f10 -/* 00100 809DEF00 44192000 */ mfc1 $t9, $f4 -/* 00104 809DEF04 440F8000 */ mfc1 $t7, $f16 -/* 00108 809DEF08 A4D90194 */ sh $t9, 0x0194($a2) ## 00000194 -/* 0010C 809DEF0C A4CF0192 */ sh $t7, 0x0192($a2) ## 00000192 -/* 00110 809DEF10 C7A80024 */ lwc1 $f8, 0x0024($sp) -/* 00114 809DEF14 46083280 */ add.s $f10, $f6, $f8 -/* 00118 809DEF18 4600540D */ trunc.w.s $f16, $f10 -/* 0011C 809DEF1C 44098000 */ mfc1 $t1, $f16 -/* 00120 809DEF20 00000000 */ nop -/* 00124 809DEF24 A4C90196 */ sh $t1, 0x0196($a2) ## 00000196 -/* 00128 809DEF28 E7A0001C */ swc1 $f0, 0x001C($sp) -/* 0012C 809DEF2C E7A00020 */ swc1 $f0, 0x0020($sp) -/* 00130 809DEF30 E7B20024 */ swc1 $f18, 0x0024($sp) -/* 00134 809DEF34 0C277B80 */ jal func_809DEE00 -/* 00138 809DEF38 84C500B6 */ lh $a1, 0x00B6($a2) ## 000000B6 -/* 0013C 809DEF3C 8FA60028 */ lw $a2, 0x0028($sp) -/* 00140 809DEF40 C7A6001C */ lwc1 $f6, 0x001C($sp) -/* 00144 809DEF44 C4C40024 */ lwc1 $f4, 0x0024($a2) ## 00000024 -/* 00148 809DEF48 C4D00028 */ lwc1 $f16, 0x0028($a2) ## 00000028 -/* 0014C 809DEF4C 46062200 */ add.s $f8, $f4, $f6 -/* 00150 809DEF50 C4C4002C */ lwc1 $f4, 0x002C($a2) ## 0000002C -/* 00154 809DEF54 4600848D */ trunc.w.s $f18, $f16 -/* 00158 809DEF58 4600428D */ trunc.w.s $f10, $f8 -/* 0015C 809DEF5C 440D9000 */ mfc1 $t5, $f18 -/* 00160 809DEF60 440B5000 */ mfc1 $t3, $f10 -/* 00164 809DEF64 A4CD01E0 */ sh $t5, 0x01E0($a2) ## 000001E0 -/* 00168 809DEF68 A4CB01DE */ sh $t3, 0x01DE($a2) ## 000001DE -/* 0016C 809DEF6C C7A60024 */ lwc1 $f6, 0x0024($sp) -/* 00170 809DEF70 46062200 */ add.s $f8, $f4, $f6 -/* 00174 809DEF74 4600428D */ trunc.w.s $f10, $f8 -/* 00178 809DEF78 440F5000 */ mfc1 $t7, $f10 -/* 0017C 809DEF7C 00000000 */ nop -/* 00180 809DEF80 A4CF01E2 */ sh $t7, 0x01E2($a2) ## 000001E2 -/* 00184 809DEF84 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00188 809DEF88 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 0018C 809DEF8C 03E00008 */ jr $ra -/* 00190 809DEF90 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEF94.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEF94.s deleted file mode 100644 index d3eaad4382..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEF94.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_809DEF94 -/* 00194 809DEF94 3C014264 */ lui $at, 0x4264 ## $at = 42640000 -/* 00198 809DEF98 44813000 */ mtc1 $at, $f6 ## $f6 = 57.00 -/* 0019C 809DEF9C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 001A0 809DEFA0 3C01C210 */ lui $at, 0xC210 ## $at = C2100000 -/* 001A4 809DEFA4 44814000 */ mtc1 $at, $f8 ## $f8 = -36.00 -/* 001A8 809DEFA8 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 001AC 809DEFAC AFBF0014 */ sw $ra, 0x0014($sp) -/* 001B0 809DEFB0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 001B4 809DEFB4 E7A60020 */ swc1 $f6, 0x0020($sp) -/* 001B8 809DEFB8 E7A80024 */ swc1 $f8, 0x0024($sp) -/* 001BC 809DEFBC E7A4001C */ swc1 $f4, 0x001C($sp) -/* 001C0 809DEFC0 84C500B6 */ lh $a1, 0x00B6($a2) ## 000000B6 -/* 001C4 809DEFC4 AFA60028 */ sw $a2, 0x0028($sp) -/* 001C8 809DEFC8 0C277B80 */ jal func_809DEE00 -/* 001CC 809DEFCC 27A4001C */ addiu $a0, $sp, 0x001C ## $a0 = FFFFFFF4 -/* 001D0 809DEFD0 8FA60028 */ lw $a2, 0x0028($sp) -/* 001D4 809DEFD4 C7B0001C */ lwc1 $f16, 0x001C($sp) -/* 001D8 809DEFD8 C4CA0024 */ lwc1 $f10, 0x0024($a2) ## 00000024 -/* 001DC 809DEFDC C4C40028 */ lwc1 $f4, 0x0028($a2) ## 00000028 -/* 001E0 809DEFE0 46105480 */ add.s $f18, $f10, $f16 -/* 001E4 809DEFE4 C4CA002C */ lwc1 $f10, 0x002C($a2) ## 0000002C -/* 001E8 809DEFE8 E4D20024 */ swc1 $f18, 0x0024($a2) ## 00000024 -/* 001EC 809DEFEC C7A60020 */ lwc1 $f6, 0x0020($sp) -/* 001F0 809DEFF0 46062200 */ add.s $f8, $f4, $f6 -/* 001F4 809DEFF4 E4C80028 */ swc1 $f8, 0x0028($a2) ## 00000028 -/* 001F8 809DEFF8 C7B00024 */ lwc1 $f16, 0x0024($sp) -/* 001FC 809DEFFC 46105480 */ add.s $f18, $f10, $f16 -/* 00200 809DF000 E4D2002C */ swc1 $f18, 0x002C($a2) ## 0000002C -/* 00204 809DF004 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00208 809DF008 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 0020C 809DF00C 03E00008 */ jr $ra -/* 00210 809DF010 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF494.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF494.s deleted file mode 100644 index e28fa597f0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF494.s +++ /dev/null @@ -1,169 +0,0 @@ -.late_rodata -glabel D_809E0120 - .float 0.01 -glabel D_809E0124 - .float 0.01 -glabel D_809E0128 - .float 0.01 -glabel D_809E012C - .float 0.01 -glabel D_809E0130 - .float 0.01 - -.text -glabel func_809DF494 -/* 00694 809DF494 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00698 809DF498 AFBF002C */ sw $ra, 0x002C($sp) -/* 0069C 809DF49C AFB00028 */ sw $s0, 0x0028($sp) -/* 006A0 809DF4A0 AFA50034 */ sw $a1, 0x0034($sp) -/* 006A4 809DF4A4 94820278 */ lhu $v0, 0x0278($a0) ## 00000278 -/* 006A8 809DF4A8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 006AC 809DF4AC 3C0143FA */ lui $at, 0x43FA ## $at = 43FA0000 -/* 006B0 809DF4B0 18400003 */ blez $v0, .L809DF4C0 -/* 006B4 809DF4B4 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 006B8 809DF4B8 1000003A */ beq $zero, $zero, .L809DF5A4 -/* 006BC 809DF4BC A48E0278 */ sh $t6, 0x0278($a0) ## 00000278 -.L809DF4C0: -/* 006C0 809DF4C0 44816000 */ mtc1 $at, $f12 ## $f12 = 500.00 -/* 006C4 809DF4C4 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 006C8 809DF4C8 00000000 */ nop -/* 006CC 809DF4CC 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 006D0 809DF4D0 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00 -/* 006D4 809DF4D4 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 006D8 809DF4D8 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 006DC 809DF4DC 46040180 */ add.s $f6, $f0, $f4 -/* 006E0 809DF4E0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 006E4 809DF4E4 248401CC */ addiu $a0, $a0, 0x01CC ## $a0 = 060001CC -/* 006E8 809DF4E8 444FF800 */ cfc1 $t7, $31 -/* 006EC 809DF4EC 44D8F800 */ ctc1 $t8, $31 -/* 006F0 809DF4F0 00000000 */ nop -/* 006F4 809DF4F4 46003224 */ cvt.w.s $f8, $f6 -/* 006F8 809DF4F8 4458F800 */ cfc1 $t8, $31 -/* 006FC 809DF4FC 00000000 */ nop -/* 00700 809DF500 33180078 */ andi $t8, $t8, 0x0078 ## $t8 = 00000000 -/* 00704 809DF504 53000013 */ beql $t8, $zero, .L809DF554 -/* 00708 809DF508 44184000 */ mfc1 $t8, $f8 -/* 0070C 809DF50C 44814000 */ mtc1 $at, $f8 ## $f8 = 2147483648.00 -/* 00710 809DF510 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00714 809DF514 46083201 */ sub.s $f8, $f6, $f8 -/* 00718 809DF518 44D8F800 */ ctc1 $t8, $31 -/* 0071C 809DF51C 00000000 */ nop -/* 00720 809DF520 46004224 */ cvt.w.s $f8, $f8 -/* 00724 809DF524 4458F800 */ cfc1 $t8, $31 -/* 00728 809DF528 00000000 */ nop -/* 0072C 809DF52C 33180078 */ andi $t8, $t8, 0x0078 ## $t8 = 00000000 -/* 00730 809DF530 17000005 */ bne $t8, $zero, .L809DF548 -/* 00734 809DF534 00000000 */ nop -/* 00738 809DF538 44184000 */ mfc1 $t8, $f8 -/* 0073C 809DF53C 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00740 809DF540 10000007 */ beq $zero, $zero, .L809DF560 -/* 00744 809DF544 0301C025 */ or $t8, $t8, $at ## $t8 = 80000000 -.L809DF548: -/* 00748 809DF548 10000005 */ beq $zero, $zero, .L809DF560 -/* 0074C 809DF54C 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 00750 809DF550 44184000 */ mfc1 $t8, $f8 -.L809DF554: -/* 00754 809DF554 00000000 */ nop -/* 00758 809DF558 0700FFFB */ bltz $t8, .L809DF548 -/* 0075C 809DF55C 00000000 */ nop -.L809DF560: -/* 00760 809DF560 44CFF800 */ ctc1 $t7, $31 -/* 00764 809DF564 0C028800 */ jal SkelAnime_GetFrameCount - -/* 00768 809DF568 A6180278 */ sh $t8, 0x0278($s0) ## 00000278 -/* 0076C 809DF56C 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00 -/* 00770 809DF570 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00774 809DF574 44819000 */ mtc1 $at, $f18 ## $f18 = 1.00 -/* 00778 809DF578 46805420 */ cvt.s.w $f16, $f10 -/* 0077C 809DF57C 8E0701FC */ lw $a3, 0x01FC($s0) ## 000001FC -/* 00780 809DF580 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00784 809DF584 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002 -/* 00788 809DF588 AFB90014 */ sw $t9, 0x0014($sp) -/* 0078C 809DF58C 24A501CC */ addiu $a1, $a1, 0x01CC ## $a1 = 060001CC -/* 00790 809DF590 E7B00010 */ swc1 $f16, 0x0010($sp) -/* 00794 809DF594 260401E4 */ addiu $a0, $s0, 0x01E4 ## $a0 = 000001E4 -/* 00798 809DF598 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 0079C 809DF59C 0C029468 */ jal SkelAnime_ChangeAnim - -/* 007A0 809DF5A0 E7B20018 */ swc1 $f18, 0x0018($sp) -.L809DF5A4: -/* 007A4 809DF5A4 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 007A8 809DF5A8 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00 -/* 007AC 809DF5AC C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 007B0 809DF5B0 4606203C */ c.lt.s $f4, $f6 -/* 007B4 809DF5B4 00000000 */ nop -/* 007B8 809DF5B8 4502000C */ bc1fl .L809DF5EC -/* 007BC 809DF5BC 960C027A */ lhu $t4, 0x027A($s0) ## 0000027A -/* 007C0 809DF5C0 96020276 */ lhu $v0, 0x0276($s0) ## 00000276 -/* 007C4 809DF5C4 30480002 */ andi $t0, $v0, 0x0002 ## $t0 = 00000000 -/* 007C8 809DF5C8 15000007 */ bne $t0, $zero, .L809DF5E8 -/* 007CC 809DF5CC 34490002 */ ori $t1, $v0, 0x0002 ## $t1 = 00000002 -/* 007D0 809DF5D0 8E0B01EC */ lw $t3, 0x01EC($s0) ## 000001EC -/* 007D4 809DF5D4 3C0A0600 */ lui $t2, 0x0600 ## $t2 = 06000000 -/* 007D8 809DF5D8 254A01CC */ addiu $t2, $t2, 0x01CC ## $t2 = 060001CC -/* 007DC 809DF5DC 154B0002 */ bne $t2, $t3, .L809DF5E8 -/* 007E0 809DF5E0 A6090276 */ sh $t1, 0x0276($s0) ## 00000276 -/* 007E4 809DF5E4 A6000278 */ sh $zero, 0x0278($s0) ## 00000278 -.L809DF5E8: -/* 007E8 809DF5E8 960C027A */ lhu $t4, 0x027A($s0) ## 0000027A -.L809DF5EC: -/* 007EC 809DF5EC 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 007F0 809DF5F0 31A2FFFF */ andi $v0, $t5, 0xFFFF ## $v0 = 00000001 -/* 007F4 809DF5F4 28410031 */ slti $at, $v0, 0x0031 -/* 007F8 809DF5F8 14200003 */ bne $at, $zero, .L809DF608 -/* 007FC 809DF5FC A60D027A */ sh $t5, 0x027A($s0) ## 0000027A -/* 00800 809DF600 A600027A */ sh $zero, 0x027A($s0) ## 0000027A -/* 00804 809DF604 3002FFFF */ andi $v0, $zero, 0xFFFF ## $v0 = 00000000 -.L809DF608: -/* 00808 809DF608 28410020 */ slti $at, $v0, 0x0020 -/* 0080C 809DF60C 1020000F */ beq $at, $zero, .L809DF64C -/* 00810 809DF610 00402025 */ or $a0, $v0, $zero ## $a0 = 00000000 -/* 00814 809DF614 00042680 */ sll $a0, $a0, 26 -/* 00818 809DF618 0C01DE1C */ jal Math_Sins - ## sins? -/* 0081C 809DF61C 00042403 */ sra $a0, $a0, 16 -/* 00820 809DF620 3C01809E */ lui $at, %hi(D_809E0120) ## $at = 809E0000 -/* 00824 809DF624 C4220120 */ lwc1 $f2, %lo(D_809E0120)($at) -/* 00828 809DF628 3C01809E */ lui $at, %hi(D_809E0124) ## $at = 809E0000 -/* 0082C 809DF62C C4280124 */ lwc1 $f8, %lo(D_809E0124)($at) -/* 00830 809DF630 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00834 809DF634 44818000 */ mtc1 $at, $f16 ## $f16 = 1.00 -/* 00838 809DF638 46080282 */ mul.s $f10, $f0, $f8 -/* 0083C 809DF63C 46105480 */ add.s $f18, $f10, $f16 -/* 00840 809DF640 46029102 */ mul.s $f4, $f18, $f2 -/* 00844 809DF644 10000004 */ beq $zero, $zero, .L809DF658 -/* 00848 809DF648 E6040050 */ swc1 $f4, 0x0050($s0) ## 00000050 -.L809DF64C: -/* 0084C 809DF64C 3C01809E */ lui $at, %hi(D_809E0128) ## $at = 809E0000 -/* 00850 809DF650 C4220128 */ lwc1 $f2, %lo(D_809E0128)($at) -/* 00854 809DF654 E6020050 */ swc1 $f2, 0x0050($s0) ## 00000050 -.L809DF658: -/* 00858 809DF658 9602027A */ lhu $v0, 0x027A($s0) ## 0000027A -/* 0085C 809DF65C 28410011 */ slti $at, $v0, 0x0011 -/* 00860 809DF660 14200010 */ bne $at, $zero, .L809DF6A4 -/* 00864 809DF664 00022280 */ sll $a0, $v0, 10 -/* 00868 809DF668 2484C000 */ addiu $a0, $a0, 0xC000 ## $a0 = FFFFC000 -/* 0086C 809DF66C 00042400 */ sll $a0, $a0, 16 -/* 00870 809DF670 0C01DE1C */ jal Math_Sins - ## sins? -/* 00874 809DF674 00042403 */ sra $a0, $a0, 16 -/* 00878 809DF678 3C01809E */ lui $at, %hi(D_809E012C) ## $at = 809E0000 -/* 0087C 809DF67C C422012C */ lwc1 $f2, %lo(D_809E012C)($at) -/* 00880 809DF680 3C01809E */ lui $at, %hi(D_809E0130) ## $at = 809E0000 -/* 00884 809DF684 C4260130 */ lwc1 $f6, %lo(D_809E0130)($at) -/* 00888 809DF688 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 0088C 809DF68C 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00 -/* 00890 809DF690 46060202 */ mul.s $f8, $f0, $f6 -/* 00894 809DF694 460A4400 */ add.s $f16, $f8, $f10 -/* 00898 809DF698 46028482 */ mul.s $f18, $f16, $f2 -/* 0089C 809DF69C 10000002 */ beq $zero, $zero, .L809DF6A8 -/* 008A0 809DF6A0 E6120054 */ swc1 $f18, 0x0054($s0) ## 00000054 -.L809DF6A4: -/* 008A4 809DF6A4 E6020054 */ swc1 $f2, 0x0054($s0) ## 00000054 -.L809DF6A8: -/* 008A8 809DF6A8 8FBF002C */ lw $ra, 0x002C($sp) -/* 008AC 809DF6AC 8FB00028 */ lw $s0, 0x0028($sp) -/* 008B0 809DF6B0 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 008B4 809DF6B4 03E00008 */ jr $ra -/* 008B8 809DF6B8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF6BC.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF6BC.s deleted file mode 100644 index 82666585bd..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF6BC.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_809DF6BC -/* 008BC 809DF6BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 008C0 809DF6C0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 008C4 809DF6C4 AFA40018 */ sw $a0, 0x0018($sp) -/* 008C8 809DF6C8 AFA5001C */ sw $a1, 0x001C($sp) -/* 008CC 809DF6CC 0C042F6F */ jal func_8010BDBC -/* 008D0 809DF6D0 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8 -/* 008D4 809DF6D4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 008D8 809DF6D8 54410012 */ bnel $v0, $at, .L809DF724 -/* 008DC 809DF6DC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 008E0 809DF6E0 0C041AF2 */ jal func_80106BC8 -/* 008E4 809DF6E4 8FA4001C */ lw $a0, 0x001C($sp) -/* 008E8 809DF6E8 5040000E */ beql $v0, $zero, .L809DF724 -/* 008EC 809DF6EC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 008F0 809DF6F0 8FA20018 */ lw $v0, 0x0018($sp) -/* 008F4 809DF6F4 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000 -/* 008F8 809DF6F8 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF -/* 008FC 809DF6FC 8C4E0004 */ lw $t6, 0x0004($v0) ## 00000004 -/* 00900 809DF700 01C17824 */ and $t7, $t6, $at -/* 00904 809DF704 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 00908 809DF708 0C041B33 */ jal func_80106CCC -/* 0090C 809DF70C 8FA4001C */ lw $a0, 0x001C($sp) -/* 00910 809DF710 8FB90018 */ lw $t9, 0x0018($sp) -/* 00914 809DF714 3C18809E */ lui $t8, %hi(func_809DF96C) ## $t8 = 809E0000 -/* 00918 809DF718 2718F96C */ addiu $t8, $t8, %lo(func_809DF96C) ## $t8 = 809DF96C -/* 0091C 809DF71C AF38027C */ sw $t8, 0x027C($t9) ## 0000027C -/* 00920 809DF720 8FBF0014 */ lw $ra, 0x0014($sp) -.L809DF724: -/* 00924 809DF724 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00928 809DF728 03E00008 */ jr $ra -/* 0092C 809DF72C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF730.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF730.s deleted file mode 100644 index 6602e3cb04..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF730.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_809DF730 -/* 00930 809DF730 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00934 809DF734 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00938 809DF738 0C00BCCD */ jal func_8002F334 -/* 0093C 809DF73C AFA40018 */ sw $a0, 0x0018($sp) -/* 00940 809DF740 10400009 */ beq $v0, $zero, .L809DF768 -/* 00944 809DF744 8FA40018 */ lw $a0, 0x0018($sp) -/* 00948 809DF748 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 0094C 809DF74C 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000 -/* 00950 809DF750 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF -/* 00954 809DF754 3C18809E */ lui $t8, %hi(func_809DF96C) ## $t8 = 809E0000 -/* 00958 809DF758 2718F96C */ addiu $t8, $t8, %lo(func_809DF96C) ## $t8 = 809DF96C -/* 0095C 809DF75C 01C17824 */ and $t7, $t6, $at -/* 00960 809DF760 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004 -/* 00964 809DF764 AC98027C */ sw $t8, 0x027C($a0) ## 0000027C -.L809DF768: -/* 00968 809DF768 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0096C 809DF76C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00970 809DF770 03E00008 */ jr $ra -/* 00974 809DF774 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF778.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF778.s deleted file mode 100644 index d46339f909..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF778.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_809DF778 -/* 00978 809DF778 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0097C 809DF77C AFBF001C */ sw $ra, 0x001C($sp) -/* 00980 809DF780 AFA50024 */ sw $a1, 0x0024($sp) -/* 00984 809DF784 0C00BD04 */ jal func_8002F410 -/* 00988 809DF788 AFA40020 */ sw $a0, 0x0020($sp) -/* 0098C 809DF78C 10400006 */ beq $v0, $zero, .L809DF7A8 -/* 00990 809DF790 8FA40020 */ lw $a0, 0x0020($sp) -/* 00994 809DF794 3C0E809E */ lui $t6, %hi(func_809DF730) ## $t6 = 809E0000 -/* 00998 809DF798 25CEF730 */ addiu $t6, $t6, %lo(func_809DF730) ## $t6 = 809DF730 -/* 0099C 809DF79C AC800118 */ sw $zero, 0x0118($a0) ## 00000118 -/* 009A0 809DF7A0 10000009 */ beq $zero, $zero, .L809DF7C8 -/* 009A4 809DF7A4 AC8E027C */ sw $t6, 0x027C($a0) ## 0000027C -.L809DF7A8: -/* 009A8 809DF7A8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 009AC 809DF7AC 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00 -/* 009B0 809DF7B0 3C07461C */ lui $a3, 0x461C ## $a3 = 461C0000 -/* 009B4 809DF7B4 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = 461C4000 -/* 009B8 809DF7B8 8FA50024 */ lw $a1, 0x0024($sp) -/* 009BC 809DF7BC 24060050 */ addiu $a2, $zero, 0x0050 ## $a2 = 00000050 -/* 009C0 809DF7C0 0C00BD0D */ jal func_8002F434 -/* 009C4 809DF7C4 E7A40010 */ swc1 $f4, 0x0010($sp) -.L809DF7C8: -/* 009C8 809DF7C8 8FBF001C */ lw $ra, 0x001C($sp) -/* 009CC 809DF7CC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 009D0 809DF7D0 03E00008 */ jr $ra -/* 009D4 809DF7D4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF7D8.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF7D8.s deleted file mode 100644 index 1eea5ac988..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF7D8.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_809DF7D8 -/* 009D8 809DF7D8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 009DC 809DF7DC AFBF001C */ sw $ra, 0x001C($sp) -/* 009E0 809DF7E0 AFA40020 */ sw $a0, 0x0020($sp) -/* 009E4 809DF7E4 AFA50024 */ sw $a1, 0x0024($sp) -/* 009E8 809DF7E8 0C042F6F */ jal func_8010BDBC -/* 009EC 809DF7EC 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8 -/* 009F0 809DF7F0 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 009F4 809DF7F4 5441001B */ bnel $v0, $at, .L809DF864 -/* 009F8 809DF7F8 8FBF001C */ lw $ra, 0x001C($sp) -/* 009FC 809DF7FC 0C041AF2 */ jal func_80106BC8 -/* 00A00 809DF800 8FA40024 */ lw $a0, 0x0024($sp) -/* 00A04 809DF804 50400017 */ beql $v0, $zero, .L809DF864 -/* 00A08 809DF808 8FBF001C */ lw $ra, 0x001C($sp) -/* 00A0C 809DF80C 8FA20020 */ lw $v0, 0x0020($sp) -/* 00A10 809DF810 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000 -/* 00A14 809DF814 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF -/* 00A18 809DF818 8C4E0004 */ lw $t6, 0x0004($v0) ## 00000004 -/* 00A1C 809DF81C 01C17824 */ and $t7, $t6, $at -/* 00A20 809DF820 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -/* 00A24 809DF824 0C041B33 */ jal func_80106CCC -/* 00A28 809DF828 8FA40024 */ lw $a0, 0x0024($sp) -/* 00A2C 809DF82C 8FB90020 */ lw $t9, 0x0020($sp) -/* 00A30 809DF830 3C18809E */ lui $t8, %hi(func_809DF778) ## $t8 = 809E0000 -/* 00A34 809DF834 2718F778 */ addiu $t8, $t8, %lo(func_809DF778) ## $t8 = 809DF778 -/* 00A38 809DF838 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 00A3C 809DF83C 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00 -/* 00A40 809DF840 AF38027C */ sw $t8, 0x027C($t9) ## 0000027C -/* 00A44 809DF844 3C07461C */ lui $a3, 0x461C ## $a3 = 461C0000 -/* 00A48 809DF848 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = 461C4000 -/* 00A4C 809DF84C 8FA50024 */ lw $a1, 0x0024($sp) -/* 00A50 809DF850 8FA40020 */ lw $a0, 0x0020($sp) -/* 00A54 809DF854 24060050 */ addiu $a2, $zero, 0x0050 ## $a2 = 00000050 -/* 00A58 809DF858 0C00BD0D */ jal func_8002F434 -/* 00A5C 809DF85C E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00A60 809DF860 8FBF001C */ lw $ra, 0x001C($sp) -.L809DF864: -/* 00A64 809DF864 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00A68 809DF868 03E00008 */ jr $ra -/* 00A6C 809DF86C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF870.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF870.s deleted file mode 100644 index 27eca70c71..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF870.s +++ /dev/null @@ -1,39 +0,0 @@ -glabel func_809DF870 -/* 00A70 809DF870 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00A74 809DF874 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00A78 809DF878 AFA40018 */ sw $a0, 0x0018($sp) -/* 00A7C 809DF87C AFA5001C */ sw $a1, 0x001C($sp) -/* 00A80 809DF880 0C042F6F */ jal func_8010BDBC -/* 00A84 809DF884 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8 -/* 00A88 809DF888 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00A8C 809DF88C 54410018 */ bnel $v0, $at, .L809DF8F0 -/* 00A90 809DF890 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00A94 809DF894 0C041AF2 */ jal func_80106BC8 -/* 00A98 809DF898 8FA4001C */ lw $a0, 0x001C($sp) -/* 00A9C 809DF89C 50400014 */ beql $v0, $zero, .L809DF8F0 -/* 00AA0 809DF8A0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00AA4 809DF8A4 0C021AAF */ jal Inventory_HasEmptyBottle -/* 00AA8 809DF8A8 00000000 */ nop -/* 00AAC 809DF8AC 10400009 */ beq $v0, $zero, .L809DF8D4 -/* 00AB0 809DF8B0 8FA4001C */ lw $a0, 0x001C($sp) -/* 00AB4 809DF8B4 8FA4001C */ lw $a0, 0x001C($sp) -/* 00AB8 809DF8B8 0C042DC8 */ jal func_8010B720 -/* 00ABC 809DF8BC 24052007 */ addiu $a1, $zero, 0x2007 ## $a1 = 00002007 -/* 00AC0 809DF8C0 8FAF0018 */ lw $t7, 0x0018($sp) -/* 00AC4 809DF8C4 3C0E809E */ lui $t6, %hi(func_809DF7D8) ## $t6 = 809E0000 -/* 00AC8 809DF8C8 25CEF7D8 */ addiu $t6, $t6, %lo(func_809DF7D8) ## $t6 = 809DF7D8 -/* 00ACC 809DF8CC 10000007 */ beq $zero, $zero, .L809DF8EC -/* 00AD0 809DF8D0 ADEE027C */ sw $t6, 0x027C($t7) ## 0000027C -.L809DF8D4: -/* 00AD4 809DF8D4 0C042DC8 */ jal func_8010B720 -/* 00AD8 809DF8D8 24052013 */ addiu $a1, $zero, 0x2013 ## $a1 = 00002013 -/* 00ADC 809DF8DC 8FB90018 */ lw $t9, 0x0018($sp) -/* 00AE0 809DF8E0 3C18809E */ lui $t8, %hi(func_809DF6BC) ## $t8 = 809E0000 -/* 00AE4 809DF8E4 2718F6BC */ addiu $t8, $t8, %lo(func_809DF6BC) ## $t8 = 809DF6BC -/* 00AE8 809DF8E8 AF38027C */ sw $t8, 0x027C($t9) ## 0000027C -.L809DF8EC: -/* 00AEC 809DF8EC 8FBF0014 */ lw $ra, 0x0014($sp) -.L809DF8F0: -/* 00AF0 809DF8F0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00AF4 809DF8F4 03E00008 */ jr $ra -/* 00AF8 809DF8F8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF8FC.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF8FC.s deleted file mode 100644 index 253cc1dca8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF8FC.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_809DF8FC -/* 00AFC 809DF8FC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00B00 809DF900 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00B04 809DF904 AFA5001C */ sw $a1, 0x001C($sp) -/* 00B08 809DF908 0C00BC65 */ jal func_8002F194 -/* 00B0C 809DF90C AFA40018 */ sw $a0, 0x0018($sp) -/* 00B10 809DF910 10400005 */ beq $v0, $zero, .L809DF928 -/* 00B14 809DF914 8FA40018 */ lw $a0, 0x0018($sp) -/* 00B18 809DF918 3C0E809E */ lui $t6, %hi(func_809DF870) ## $t6 = 809E0000 -/* 00B1C 809DF91C 25CEF870 */ addiu $t6, $t6, %lo(func_809DF870) ## $t6 = 809DF870 -/* 00B20 809DF920 1000000C */ beq $zero, $zero, .L809DF954 -/* 00B24 809DF924 AC8E027C */ sw $t6, 0x027C($a0) ## 0000027C -.L809DF928: -/* 00B28 809DF928 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004 -/* 00B2C 809DF92C 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00B30 809DF930 3C06432A */ lui $a2, 0x432A ## $a2 = 432A0000 -/* 00B34 809DF934 01E1C025 */ or $t8, $t7, $at ## $t8 = 00010000 -/* 00B38 809DF938 AC980004 */ sw $t8, 0x0004($a0) ## 00000004 -/* 00B3C 809DF93C AFA40018 */ sw $a0, 0x0018($sp) -/* 00B40 809DF940 0C00BCB3 */ jal func_8002F2CC -/* 00B44 809DF944 8FA5001C */ lw $a1, 0x001C($sp) -/* 00B48 809DF948 8FA40018 */ lw $a0, 0x0018($sp) -/* 00B4C 809DF94C 24192006 */ addiu $t9, $zero, 0x2006 ## $t9 = 00002006 -/* 00B50 809DF950 A499010E */ sh $t9, 0x010E($a0) ## 0000010E -.L809DF954: -/* 00B54 809DF954 0C277D25 */ jal func_809DF494 -/* 00B58 809DF958 8FA5001C */ lw $a1, 0x001C($sp) -/* 00B5C 809DF95C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00B60 809DF960 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00B64 809DF964 03E00008 */ jr $ra -/* 00B68 809DF968 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF96C.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF96C.s deleted file mode 100644 index 062c9e5f36..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF96C.s +++ /dev/null @@ -1,78 +0,0 @@ -glabel func_809DF96C -/* 00B6C 809DF96C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00B70 809DF970 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000 -/* 00B74 809DF974 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00B78 809DF978 AFA5001C */ sw $a1, 0x001C($sp) -/* 00B7C 809DF97C 00451021 */ addu $v0, $v0, $a1 -/* 00B80 809DF980 944204C6 */ lhu $v0, 0x04C6($v0) ## 000104C6 -/* 00B84 809DF984 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 00B88 809DF988 10400002 */ beq $v0, $zero, .L809DF994 -/* 00B8C 809DF98C 00000000 */ nop -/* 00B90 809DF990 14410036 */ bne $v0, $at, .L809DFA6C -.L809DF994: -/* 00B94 809DF994 3C028016 */ lui $v0, %hi(gGameInfo) -/* 00B98 809DF998 2442FA90 */ addiu $v0, %lo(gGameInfo) -/* 00B9C 809DF99C 8C470000 */ lw $a3, 0x0000($v0) ## 8015FA90 -/* 00BA0 809DF9A0 84EF05BE */ lh $t7, 0x05BE($a3) ## 000005BE -/* 00BA4 809DF9A4 51E0002F */ beql $t7, $zero, .L809DFA64 -/* 00BA8 809DF9A8 94980276 */ lhu $t8, 0x0276($a0) ## 00000276 -/* 00BAC 809DF9AC 94850276 */ lhu $a1, 0x0276($a0) ## 00000276 -/* 00BB0 809DF9B0 30B80004 */ andi $t8, $a1, 0x0004 ## $t8 = 00000000 -/* 00BB4 809DF9B4 13000005 */ beq $t8, $zero, .L809DF9CC -/* 00BB8 809DF9B8 30B9FFFB */ andi $t9, $a1, 0xFFFB ## $t9 = 00000000 -/* 00BBC 809DF9BC A4990276 */ sh $t9, 0x0276($a0) ## 00000276 -/* 00BC0 809DF9C0 8C480000 */ lw $t0, 0x0000($v0) ## 8015FA90 -/* 00BC4 809DF9C4 10000029 */ beq $zero, $zero, .L809DFA6C -/* 00BC8 809DF9C8 A50005BE */ sh $zero, 0x05BE($t0) ## 000005BE -.L809DF9CC: -/* 00BCC 809DF9CC 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 00BD0 809DF9D0 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00 -/* 00BD4 809DF9D4 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090 -/* 00BD8 809DF9D8 4606203C */ c.lt.s $f4, $f6 -/* 00BDC 809DF9DC 00000000 */ nop -/* 00BE0 809DF9E0 4502001D */ bc1fl .L809DFA58 -/* 00BE4 809DF9E4 34AF0004 */ ori $t7, $a1, 0x0004 ## $t7 = 00000004 -/* 00BE8 809DF9E8 8489008A */ lh $t1, 0x008A($a0) ## 0000008A -/* 00BEC 809DF9EC 848A00B6 */ lh $t2, 0x00B6($a0) ## 000000B6 -/* 00BF0 809DF9F0 3C0B809E */ lui $t3, %hi(func_809DF8FC) ## $t3 = 809E0000 -/* 00BF4 809DF9F4 256BF8FC */ addiu $t3, $t3, %lo(func_809DF8FC) ## $t3 = 809DF8FC -/* 00BF8 809DF9F8 012A1023 */ subu $v0, $t1, $t2 -/* 00BFC 809DF9FC 00021400 */ sll $v0, $v0, 16 -/* 00C00 809DFA00 00021403 */ sra $v0, $v0, 16 -/* 00C04 809DFA04 04400003 */ bltz $v0, .L809DFA14 -/* 00C08 809DFA08 00021823 */ subu $v1, $zero, $v0 -/* 00C0C 809DFA0C 10000001 */ beq $zero, $zero, .L809DFA14 -/* 00C10 809DFA10 00401825 */ or $v1, $v0, $zero ## $v1 = 8015FA90 -.L809DFA14: -/* 00C14 809DFA14 286161A8 */ slti $at, $v1, 0x61A8 -/* 00C18 809DFA18 1020000E */ beq $at, $zero, .L809DFA54 -/* 00C1C 809DFA1C 3C06432A */ lui $a2, 0x432A ## $a2 = 432A0000 -/* 00C20 809DFA20 A4E005BE */ sh $zero, 0x05BE($a3) ## 000005BE -/* 00C24 809DFA24 8C8C0004 */ lw $t4, 0x0004($a0) ## 00000004 -/* 00C28 809DFA28 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00C2C 809DFA2C AC8B027C */ sw $t3, 0x027C($a0) ## 0000027C -/* 00C30 809DFA30 01816825 */ or $t5, $t4, $at ## $t5 = 00010000 -/* 00C34 809DFA34 AC8D0004 */ sw $t5, 0x0004($a0) ## 00000004 -/* 00C38 809DFA38 AFA40018 */ sw $a0, 0x0018($sp) -/* 00C3C 809DFA3C 0C00BCB3 */ jal func_8002F2CC -/* 00C40 809DFA40 8FA5001C */ lw $a1, 0x001C($sp) -/* 00C44 809DFA44 8FA40018 */ lw $a0, 0x0018($sp) -/* 00C48 809DFA48 240E2006 */ addiu $t6, $zero, 0x2006 ## $t6 = 00002006 -/* 00C4C 809DFA4C 10000007 */ beq $zero, $zero, .L809DFA6C -/* 00C50 809DFA50 A48E010E */ sh $t6, 0x010E($a0) ## 0000010E -.L809DFA54: -/* 00C54 809DFA54 34AF0004 */ ori $t7, $a1, 0x0004 ## $t7 = 00000004 -.L809DFA58: -/* 00C58 809DFA58 10000004 */ beq $zero, $zero, .L809DFA6C -/* 00C5C 809DFA5C A48F0276 */ sh $t7, 0x0276($a0) ## 00000276 -/* 00C60 809DFA60 94980276 */ lhu $t8, 0x0276($a0) ## 00000276 -.L809DFA64: -/* 00C64 809DFA64 3319FFFB */ andi $t9, $t8, 0xFFFB ## $t9 = 00000000 -/* 00C68 809DFA68 A4990276 */ sh $t9, 0x0276($a0) ## 00000276 -.L809DFA6C: -/* 00C6C 809DFA6C 0C277D25 */ jal func_809DF494 -/* 00C70 809DFA70 8FA5001C */ lw $a1, 0x001C($sp) -/* 00C74 809DFA74 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00C78 809DFA78 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00C7C 809DFA7C 03E00008 */ jr $ra -/* 00C80 809DFA80 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFA84.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFA84.s deleted file mode 100644 index 9765e9719d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFA84.s +++ /dev/null @@ -1,114 +0,0 @@ -glabel func_809DFA84 -/* 00C84 809DFA84 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00C88 809DFA88 AFBF002C */ sw $ra, 0x002C($sp) -/* 00C8C 809DFA8C AFB00028 */ sw $s0, 0x0028($sp) -/* 00C90 809DFA90 AFA50034 */ sw $a1, 0x0034($sp) -/* 00C94 809DFA94 94820278 */ lhu $v0, 0x0278($a0) ## 00000278 -/* 00C98 809DFA98 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00C9C 809DFA9C 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 00CA0 809DFAA0 18400003 */ blez $v0, .L809DFAB0 -/* 00CA4 809DFAA4 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 00CA8 809DFAA8 1000003A */ beq $zero, $zero, .L809DFB94 -/* 00CAC 809DFAAC A48E0278 */ sh $t6, 0x0278($a0) ## 00000278 -.L809DFAB0: -/* 00CB0 809DFAB0 44816000 */ mtc1 $at, $f12 ## $f12 = 200.00 -/* 00CB4 809DFAB4 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 00CB8 809DFAB8 00000000 */ nop -/* 00CBC 809DFABC 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 00CC0 809DFAC0 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00 -/* 00CC4 809DFAC4 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00CC8 809DFAC8 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 00CCC 809DFACC 46040180 */ add.s $f6, $f0, $f4 -/* 00CD0 809DFAD0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000 -/* 00CD4 809DFAD4 24844348 */ addiu $a0, $a0, 0x4348 ## $a0 = 06004348 -/* 00CD8 809DFAD8 444FF800 */ cfc1 $t7, $31 -/* 00CDC 809DFADC 44D8F800 */ ctc1 $t8, $31 -/* 00CE0 809DFAE0 00000000 */ nop -/* 00CE4 809DFAE4 46003224 */ cvt.w.s $f8, $f6 -/* 00CE8 809DFAE8 4458F800 */ cfc1 $t8, $31 -/* 00CEC 809DFAEC 00000000 */ nop -/* 00CF0 809DFAF0 33180078 */ andi $t8, $t8, 0x0078 ## $t8 = 00000000 -/* 00CF4 809DFAF4 53000013 */ beql $t8, $zero, .L809DFB44 -/* 00CF8 809DFAF8 44184000 */ mfc1 $t8, $f8 -/* 00CFC 809DFAFC 44814000 */ mtc1 $at, $f8 ## $f8 = 2147483648.00 -/* 00D00 809DFB00 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001 -/* 00D04 809DFB04 46083201 */ sub.s $f8, $f6, $f8 -/* 00D08 809DFB08 44D8F800 */ ctc1 $t8, $31 -/* 00D0C 809DFB0C 00000000 */ nop -/* 00D10 809DFB10 46004224 */ cvt.w.s $f8, $f8 -/* 00D14 809DFB14 4458F800 */ cfc1 $t8, $31 -/* 00D18 809DFB18 00000000 */ nop -/* 00D1C 809DFB1C 33180078 */ andi $t8, $t8, 0x0078 ## $t8 = 00000000 -/* 00D20 809DFB20 17000005 */ bne $t8, $zero, .L809DFB38 -/* 00D24 809DFB24 00000000 */ nop -/* 00D28 809DFB28 44184000 */ mfc1 $t8, $f8 -/* 00D2C 809DFB2C 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00D30 809DFB30 10000007 */ beq $zero, $zero, .L809DFB50 -/* 00D34 809DFB34 0301C025 */ or $t8, $t8, $at ## $t8 = 80000000 -.L809DFB38: -/* 00D38 809DFB38 10000005 */ beq $zero, $zero, .L809DFB50 -/* 00D3C 809DFB3C 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 00D40 809DFB40 44184000 */ mfc1 $t8, $f8 -.L809DFB44: -/* 00D44 809DFB44 00000000 */ nop -/* 00D48 809DFB48 0700FFFB */ bltz $t8, .L809DFB38 -/* 00D4C 809DFB4C 00000000 */ nop -.L809DFB50: -/* 00D50 809DFB50 44CFF800 */ ctc1 $t7, $31 -/* 00D54 809DFB54 0C028800 */ jal SkelAnime_GetFrameCount - -/* 00D58 809DFB58 A6180278 */ sh $t8, 0x0278($s0) ## 00000278 -/* 00D5C 809DFB5C 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00 -/* 00D60 809DFB60 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00D64 809DFB64 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 00D68 809DFB68 46805420 */ cvt.s.w $f16, $f10 -/* 00D6C 809DFB6C 8E0701FC */ lw $a3, 0x01FC($s0) ## 000001FC -/* 00D70 809DFB70 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00D74 809DFB74 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002 -/* 00D78 809DFB78 44060000 */ mfc1 $a2, $f0 -/* 00D7C 809DFB7C AFB90014 */ sw $t9, 0x0014($sp) -/* 00D80 809DFB80 24A54348 */ addiu $a1, $a1, 0x4348 ## $a1 = 06004348 -/* 00D84 809DFB84 E7B00010 */ swc1 $f16, 0x0010($sp) -/* 00D88 809DFB88 260401E4 */ addiu $a0, $s0, 0x01E4 ## $a0 = 000001E4 -/* 00D8C 809DFB8C 0C029468 */ jal SkelAnime_ChangeAnim - -/* 00D90 809DFB90 E7A00018 */ swc1 $f0, 0x0018($sp) -.L809DFB94: -/* 00D94 809DFB94 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 00D98 809DFB98 44812000 */ mtc1 $at, $f4 ## $f4 = 150.00 -/* 00D9C 809DFB9C C6120090 */ lwc1 $f18, 0x0090($s0) ## 00000090 -/* 00DA0 809DFBA0 4604903C */ c.lt.s $f18, $f4 -/* 00DA4 809DFBA4 00000000 */ nop -/* 00DA8 809DFBA8 45020018 */ bc1fl .L809DFC0C -/* 00DAC 809DFBAC 8FBF002C */ lw $ra, 0x002C($sp) -/* 00DB0 809DFBB0 8608008A */ lh $t0, 0x008A($s0) ## 0000008A -/* 00DB4 809DFBB4 860900B6 */ lh $t1, 0x00B6($s0) ## 000000B6 -/* 00DB8 809DFBB8 01091023 */ subu $v0, $t0, $t1 -/* 00DBC 809DFBBC 00021400 */ sll $v0, $v0, 16 -/* 00DC0 809DFBC0 00021403 */ sra $v0, $v0, 16 -/* 00DC4 809DFBC4 04400003 */ bltz $v0, .L809DFBD4 -/* 00DC8 809DFBC8 00021823 */ subu $v1, $zero, $v0 -/* 00DCC 809DFBCC 10000001 */ beq $zero, $zero, .L809DFBD4 -/* 00DD0 809DFBD0 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -.L809DFBD4: -/* 00DD4 809DFBD4 286161A9 */ slti $at, $v1, 0x61A9 -/* 00DD8 809DFBD8 5420000C */ bnel $at, $zero, .L809DFC0C -/* 00DDC 809DFBDC 8FBF002C */ lw $ra, 0x002C($sp) -/* 00DE0 809DFBE0 96020276 */ lhu $v0, 0x0276($s0) ## 00000276 -/* 00DE4 809DFBE4 304A0002 */ andi $t2, $v0, 0x0002 ## $t2 = 00000000 -/* 00DE8 809DFBE8 15400007 */ bne $t2, $zero, .L809DFC08 -/* 00DEC 809DFBEC 344B0002 */ ori $t3, $v0, 0x0002 ## $t3 = 00000002 -/* 00DF0 809DFBF0 8E0D01EC */ lw $t5, 0x01EC($s0) ## 000001EC -/* 00DF4 809DFBF4 3C0C0600 */ lui $t4, 0x0600 ## $t4 = 06000000 -/* 00DF8 809DFBF8 258C4348 */ addiu $t4, $t4, 0x4348 ## $t4 = 06004348 -/* 00DFC 809DFBFC 158D0002 */ bne $t4, $t5, .L809DFC08 -/* 00E00 809DFC00 A60B0276 */ sh $t3, 0x0276($s0) ## 00000276 -/* 00E04 809DFC04 A6000278 */ sh $zero, 0x0278($s0) ## 00000278 -.L809DFC08: -/* 00E08 809DFC08 8FBF002C */ lw $ra, 0x002C($sp) -.L809DFC0C: -/* 00E0C 809DFC0C 8FB00028 */ lw $s0, 0x0028($sp) -/* 00E10 809DFC10 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 00E14 809DFC14 03E00008 */ jr $ra -/* 00E18 809DFC18 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFE98.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFE98.s deleted file mode 100644 index d93c16339d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFE98.s +++ /dev/null @@ -1,67 +0,0 @@ -glabel func_809DFE98 -/* 01098 809DFE98 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 0109C 809DFE9C AFB00028 */ sw $s0, 0x0028($sp) -/* 010A0 809DFEA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 010A4 809DFEA4 AFBF002C */ sw $ra, 0x002C($sp) -/* 010A8 809DFEA8 248401E4 */ addiu $a0, $a0, 0x01E4 ## $a0 = 000001E4 -/* 010AC 809DFEAC AFA50044 */ sw $a1, 0x0044($sp) -/* 010B0 809DFEB0 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 010B4 809DFEB4 AFA40030 */ sw $a0, 0x0030($sp) -/* 010B8 809DFEB8 50400029 */ beql $v0, $zero, .L809DFF60 -/* 010BC 809DFEBC 8E19027C */ lw $t9, 0x027C($s0) ## 0000027C -/* 010C0 809DFEC0 8E0E01EC */ lw $t6, 0x01EC($s0) ## 000001EC -/* 010C4 809DFEC4 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 010C8 809DFEC8 24844348 */ addiu $a0, $a0, 0x4348 ## $a0 = 06004348 -/* 010CC 809DFECC 148E0014 */ bne $a0, $t6, .L809DFF20 -/* 010D0 809DFED0 00000000 */ nop -/* 010D4 809DFED4 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 010D8 809DFED8 0C028800 */ jal SkelAnime_GetFrameCount - -/* 010DC 809DFEDC 24844E98 */ addiu $a0, $a0, 0x4E98 ## $a0 = 06004E98 -/* 010E0 809DFEE0 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 010E4 809DFEE4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 010E8 809DFEE8 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 010EC 809DFEEC 468021A0 */ cvt.s.w $f6, $f4 -/* 010F0 809DFEF0 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 010F4 809DFEF4 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002 -/* 010F8 809DFEF8 44060000 */ mfc1 $a2, $f0 -/* 010FC 809DFEFC AFAF0014 */ sw $t7, 0x0014($sp) -/* 01100 809DFF00 24A54E98 */ addiu $a1, $a1, 0x4E98 ## $a1 = 06004E98 -/* 01104 809DFF04 E7A60010 */ swc1 $f6, 0x0010($sp) -/* 01108 809DFF08 8FA40030 */ lw $a0, 0x0030($sp) -/* 0110C 809DFF0C 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000 -/* 01110 809DFF10 0C029468 */ jal SkelAnime_ChangeAnim - -/* 01114 809DFF14 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 01118 809DFF18 10000011 */ beq $zero, $zero, .L809DFF60 -/* 0111C 809DFF1C 8E19027C */ lw $t9, 0x027C($s0) ## 0000027C -.L809DFF20: -/* 01120 809DFF20 0C028800 */ jal SkelAnime_GetFrameCount - -/* 01124 809DFF24 00000000 */ nop -/* 01128 809DFF28 44824000 */ mtc1 $v0, $f8 ## $f8 = 0.00 -/* 0112C 809DFF2C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 01130 809DFF30 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00 -/* 01134 809DFF34 468042A0 */ cvt.s.w $f10, $f8 -/* 01138 809DFF38 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 0113C 809DFF3C 44060000 */ mfc1 $a2, $f0 -/* 01140 809DFF40 24A54348 */ addiu $a1, $a1, 0x4348 ## $a1 = 06004348 -/* 01144 809DFF44 8FA40030 */ lw $a0, 0x0030($sp) -/* 01148 809DFF48 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000 -/* 0114C 809DFF4C E7AA0010 */ swc1 $f10, 0x0010($sp) -/* 01150 809DFF50 AFA00014 */ sw $zero, 0x0014($sp) -/* 01154 809DFF54 0C029468 */ jal SkelAnime_ChangeAnim - -/* 01158 809DFF58 E7A00018 */ swc1 $f0, 0x0018($sp) -/* 0115C 809DFF5C 8E19027C */ lw $t9, 0x027C($s0) ## 0000027C -.L809DFF60: -/* 01160 809DFF60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 01164 809DFF64 8FA50044 */ lw $a1, 0x0044($sp) -/* 01168 809DFF68 0320F809 */ jalr $ra, $t9 -/* 0116C 809DFF6C 00000000 */ nop -/* 01170 809DFF70 8FBF002C */ lw $ra, 0x002C($sp) -/* 01174 809DFF74 8FB00028 */ lw $s0, 0x0028($sp) -/* 01178 809DFF78 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 -/* 0117C 809DFF7C 03E00008 */ jr $ra -/* 01180 809DFF80 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFF84.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFF84.s deleted file mode 100644 index 5aaf143c44..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFF84.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_809DFF84 -/* 01184 809DFF84 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 01188 809DFF88 AFA40000 */ sw $a0, 0x0000($sp) -/* 0118C 809DFF8C 14A1000B */ bne $a1, $at, .L809DFFBC -/* 01190 809DFF90 AFA7000C */ sw $a3, 0x000C($sp) -/* 01194 809DFF94 8FA20014 */ lw $v0, 0x0014($sp) -/* 01198 809DFF98 8FA30010 */ lw $v1, 0x0010($sp) -/* 0119C 809DFF9C 844F0272 */ lh $t7, 0x0272($v0) ## 00000272 -/* 011A0 809DFFA0 846E0002 */ lh $t6, 0x0002($v1) ## 00000002 -/* 011A4 809DFFA4 84790000 */ lh $t9, 0x0000($v1) ## 00000000 -/* 011A8 809DFFA8 01CFC021 */ addu $t8, $t6, $t7 -/* 011AC 809DFFAC A4780002 */ sh $t8, 0x0002($v1) ## 00000002 -/* 011B0 809DFFB0 84480270 */ lh $t0, 0x0270($v0) ## 00000270 -/* 011B4 809DFFB4 03284821 */ addu $t1, $t9, $t0 -/* 011B8 809DFFB8 A4690000 */ sh $t1, 0x0000($v1) ## 00000000 -.L809DFFBC: -/* 011BC 809DFFBC 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 011C0 809DFFC0 14A10002 */ bne $a1, $at, .L809DFFCC -/* 011C4 809DFFC4 00000000 */ nop -/* 011C8 809DFFC8 ACC00000 */ sw $zero, 0x0000($a2) ## 00000000 -.L809DFFCC: -/* 011CC 809DFFCC 03E00008 */ jr $ra -/* 011D0 809DFFD0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFFD4.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFFD4.s deleted file mode 100644 index 20617953a3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFFD4.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_809DFFD4 -/* 011D4 809DFFD4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 011D8 809DFFD8 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 011DC 809DFFDC AFBF0014 */ sw $ra, 0x0014($sp) -/* 011E0 809DFFE0 AFA40018 */ sw $a0, 0x0018($sp) -/* 011E4 809DFFE4 AFA60020 */ sw $a2, 0x0020($sp) -/* 011E8 809DFFE8 14A10006 */ bne $a1, $at, .L809E0004 -/* 011EC 809DFFEC AFA70024 */ sw $a3, 0x0024($sp) -/* 011F0 809DFFF0 8FA50028 */ lw $a1, 0x0028($sp) -/* 011F4 809DFFF4 3C04809E */ lui $a0, %hi(D_809E010C) ## $a0 = 809E0000 -/* 011F8 809DFFF8 2484010C */ addiu $a0, $a0, %lo(D_809E010C) ## $a0 = 809E010C -/* 011FC 809DFFFC 0C0346BD */ jal Matrix_MultVec3f -/* 01200 809E0000 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038 -.L809E0004: -/* 01204 809E0004 8FBF0014 */ lw $ra, 0x0014($sp) -/* 01208 809E0008 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0120C 809E000C 03E00008 */ jr $ra -/* 01210 809E0010 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809E0070.s b/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809E0070.s deleted file mode 100644 index e116661483..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Cow/func_809E0070.s +++ /dev/null @@ -1,21 +0,0 @@ -glabel func_809E0070 -/* 01270 809E0070 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 01274 809E0074 AFBF0024 */ sw $ra, 0x0024($sp) -/* 01278 809E0078 AFA40028 */ sw $a0, 0x0028($sp) -/* 0127C 809E007C AFA5002C */ sw $a1, 0x002C($sp) -/* 01280 809E0080 0C0250F2 */ jal func_800943C8 -/* 01284 809E0084 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000 -/* 01288 809E0088 8FA20028 */ lw $v0, 0x0028($sp) -/* 0128C 809E008C 8FA4002C */ lw $a0, 0x002C($sp) -/* 01290 809E0090 8C4501E8 */ lw $a1, 0x01E8($v0) ## 000001E8 -/* 01294 809E0094 8C460204 */ lw $a2, 0x0204($v0) ## 00000204 -/* 01298 809E0098 904701E6 */ lbu $a3, 0x01E6($v0) ## 000001E6 -/* 0129C 809E009C AFA00014 */ sw $zero, 0x0014($sp) -/* 012A0 809E00A0 AFA00010 */ sw $zero, 0x0010($sp) -/* 012A4 809E00A4 0C0286B2 */ jal SkelAnime_DrawSV -/* 012A8 809E00A8 AFA20018 */ sw $v0, 0x0018($sp) -/* 012AC 809E00AC 8FBF0024 */ lw $ra, 0x0024($sp) -/* 012B0 809E00B0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 012B4 809E00B4 03E00008 */ jr $ra -/* 012B8 809E00B8 00000000 */ nop -/* 012BC 809E00BC 00000000 */ nop diff --git a/data/overlays/actors/z_en_cow.data.s b/data/overlays/actors/z_en_cow.data.s deleted file mode 100644 index f2da8ea7a4..0000000000 --- a/data/overlays/actors/z_en_cow.data.s +++ /dev/null @@ -1,20 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .data - -glabel En_Cow_InitVars - .word 0x01C60400, 0x00000009, 0x018B0000, 0x00000280 -.word EnCow_Init -.word EnCow_Destroy -.word EnCow_Update -.word EnCow_Draw -glabel D_809E00E0 - .word 0x0A001139, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x001E0028, 0x00000000, 0x00000000 -glabel D_809E010C - .word 0x00000000, 0xC4A28000, 0x44898000, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_en_cow.reloc.s b/data/overlays/actors/z_en_cow.reloc.s deleted file mode 100644 index 89166057b0..0000000000 --- a/data/overlays/actors/z_en_cow.reloc.s +++ /dev/null @@ -1,11 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .rodata -glabel D_809E0140 - -.incbin "baserom/ovl_En_Cow", 0x1340, 0x00000100 diff --git a/include/functions.h b/include/functions.h index 4340e7a93a..7da15df209 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1114,6 +1114,7 @@ void func_80094044(GraphicsContext* gfxCtx); void func_800940B0(GraphicsContext* gfxCtx); void func_800942F0(GraphicsContext* gfxCtx); void func_8009435C(GraphicsContext* gfxCtx); +void func_800943C8(GraphicsContext* gfxCtx); Gfx* func_800944A0(Gfx* gfx); void func_80094520(GraphicsContext* gfxCtx); void func_8009457C(Gfx** gfxp); diff --git a/spec b/spec index 4b68585cec..89469810b5 100644 --- a/spec +++ b/spec @@ -2253,8 +2253,7 @@ endseg beginseg name "ovl_En_Cow" include "build/src/overlays/actors/ovl_En_Cow/z_en_cow.o" - include "build/data/overlays/actors/z_en_cow.data.o" - include "build/data/overlays/actors/z_en_cow.reloc.o" + include "build/src/overlays/actors/ovl_En_Cow/z_en_cow_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c index cff3d6f4c8..92af2de836 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c @@ -13,7 +13,17 @@ void EnCow_Destroy(EnCow* this, GlobalContext* globalCtx); void EnCow_Update(EnCow* this, GlobalContext* globalCtx); void EnCow_Draw(EnCow* this, GlobalContext* globalCtx); -/* +void func_809DF494(EnCow* this, GlobalContext* globalCtx); +void func_809DF6BC(EnCow* this, GlobalContext* globalCtx); +void func_809DF778(EnCow* this, GlobalContext* globalCtx); +void func_809DF7D8(EnCow* this, GlobalContext* globalCtx); +void func_809DF870(EnCow* this, GlobalContext* globalCtx); +void func_809DF8FC(EnCow* this, GlobalContext* globalCtx); +void func_809DF96C(EnCow* this, GlobalContext* globalCtx); +void func_809DFA84(EnCow* this, GlobalContext* globalCtx); +void func_809DFE98(EnCow* this, GlobalContext* globalCtx); +void func_809E0070(EnCow* this, GlobalContext* globalCtx); + const ActorInit En_Cow_InitVars = { ACTOR_EN_COW, ACTORTYPE_NPC, @@ -25,43 +35,351 @@ const ActorInit En_Cow_InitVars = { (ActorFunc)EnCow_Update, (ActorFunc)EnCow_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE00.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEE9C.s") +static ColliderCylinderInit cylinderInit = { + { COLTYPE_UNK10, 0x00, 0x11, 0x39, 0x10, COLSHAPE_CYLINDER }, + { 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 }, + { 30, 40, 0, { 0, 0, 0 } }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DEF94.s") +Vec3f D_809E010C = { + 0.0f, + -1300.0f, + 1100.0f, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Init.s") +extern AnimationHeader D_060001CC; +extern SkeletonHeader D_06004010; +extern AnimationHeader D_06004264; +extern AnimationHeader D_06004348; +extern SkeletonHeader D_06004C30; +extern AnimationHeader D_06004E98; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Destroy.s") +void func_809DEE00(Vec3f* vec, s16 rotY) { + f32 xCalc; + f32 rotCalcTemp; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF494.s") + rotCalcTemp = Math_Coss(rotY); + xCalc = (Math_Sins(rotY) * vec->z) + (rotCalcTemp * vec->x); + rotCalcTemp = Math_Sins(rotY); + vec->z = (Math_Coss(rotY) * vec->z) + (-rotCalcTemp * vec->x); + vec->x = xCalc; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF6BC.s") +void func_809DEE9C(EnCow* this) { + Vec3f vec; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF730.s") + vec.y = 0.0f; + vec.x = 0.0f; + vec.z = 30.0f; + func_809DEE00(&vec, this->actor.shape.rot.y); + this->colliders[0].dim.pos.x = this->actor.posRot.pos.x + vec.x; + this->colliders[0].dim.pos.y = this->actor.posRot.pos.y; + this->colliders[0].dim.pos.z = this->actor.posRot.pos.z + vec.z; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF778.s") + vec.x = 0.0f; + vec.y = 0.0f; + vec.z = -20.0f; + func_809DEE00(&vec, this->actor.shape.rot.y); + this->colliders[1].dim.pos.x = this->actor.posRot.pos.x + vec.x; + this->colliders[1].dim.pos.y = this->actor.posRot.pos.y; + this->colliders[1].dim.pos.z = this->actor.posRot.pos.z + vec.z; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF7D8.s") +void func_809DEF94(EnCow* this) { + Vec3f vec; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF870.s") + // clang-format off + vec.x = 0.0f; vec.y = 57.0f; vec.z = -36.0f; + // clang-format on -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF8FC.s") + func_809DEE00(&vec, this->actor.shape.rot.y); + this->actor.posRot.pos.x += vec.x; + this->actor.posRot.pos.y += vec.y; + this->actor.posRot.pos.z += vec.z; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DF96C.s") +void EnCow_Init(EnCow* this, GlobalContext* globalCtx) { + s32 pad[2]; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFA84.s") + ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 72.0f); + switch (this->actor.params) { + case 0: + SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06004010, NULL, this->limbDrawTable, + this->transitionDrawTable, 6); + SkelAnime_ChangeAnimDefaultRepeat(&this->skelAnime, &D_060001CC); + Collider_InitCylinder(globalCtx, &this->colliders[0]); + Collider_SetCylinder(globalCtx, &this->colliders[0], &this->actor, &cylinderInit); + Collider_InitCylinder(globalCtx, &this->colliders[1]); + Collider_SetCylinder(globalCtx, &this->colliders[1], &this->actor, &cylinderInit); + func_809DEE9C(this); + this->actionFunc = (ActorFunc)func_809DF96C; + if (globalCtx->sceneNum == SCENE_LINK_HOME) { + if (gSaveContext.linkAge != 0) { + Actor_Kill(&this->actor); + return; + } + if (!(gSaveContext.eventChkInf[1] & 0x4000)) { + Actor_Kill(&this->actor); + return; + } + } + Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_COW, this->actor.posRot.pos.x, + this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, this->actor.shape.rot.y, 0, 1); + this->unk_278 = Math_Rand_ZeroFloat(1000.0f) + 40.0f; + this->unk_27A = 0; + this->actor.unk_1F = 6; + DREG(53) = 0; + break; + case 1: + SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06004C30, NULL, this->limbDrawTable, + this->transitionDrawTable, 6); + SkelAnime_ChangeAnimDefaultRepeat(&this->skelAnime, &D_06004348); + this->actor.update = (ActorFunc)func_809DFE98; + this->actor.draw = (ActorFunc)func_809E0070; + this->actionFunc = (ActorFunc)func_809DFA84; + func_809DEF94(this); + this->actor.flags &= ~0x1; + this->unk_278 = ((u32)(Math_Rand_ZeroFloat(1000.0f)) & 0xFFFF) + 40.0f; + break; + } + this->actor.colChkInfo.mass = 0xFF; + Actor_SetScale(&this->actor, 0.01f); + this->unk_276 = 0; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Update.s") +void EnCow_Destroy(EnCow* this, GlobalContext* globalCtx) { + if (this->actor.params == 0) { + Collider_DestroyCylinder(globalCtx, &this->colliders[0]); + Collider_DestroyCylinder(globalCtx, &this->colliders[1]); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFE98.s") +void func_809DF494(EnCow* this, GlobalContext* globalCtx) { + if (this->unk_278 > 0) { + this->unk_278 -= 1; + } else { + this->unk_278 = Math_Rand_ZeroFloat(500.0f) + 40.0f; + SkelAnime_ChangeAnim(&this->skelAnime, &D_060001CC, 1.0f, this->skelAnime.animCurrentFrame, + SkelAnime_GetFrameCount(&D_060001CC.genericHeader), 2, 1.0f); + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFF84.s") + if ((this->actor.xzDistanceFromLink < 150.0f) && (!(this->unk_276 & 2))) { + this->unk_276 |= 2; + if (this->skelAnime.animCurrentSeg == &D_060001CC) { + this->unk_278 = 0; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809DFFD4.s") + this->unk_27A += 1; + if (this->unk_27A >= 0x31) { + this->unk_27A = 0; + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/EnCow_Draw.s") + // (1.0f / 100.0f) instead of 0.01f below is necessary so 0.01f doesn't get reused mistakenly + if (this->unk_27A < 0x20) { + this->actor.scale.x = ((Math_Sins(this->unk_27A << 0xA) * (1.0f / 100.0f)) + 1.0f) * 0.01f; + } else { + this->actor.scale.x = 0.01f; + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Cow/func_809E0070.s") + if (this->unk_27A >= 0x11) { + this->actor.scale.y = ((Math_Sins((this->unk_27A << 0xA) - 0x4000) * (1.0f / 100.0f)) + 1.0f) * 0.01f; + } else { + this->actor.scale.y = 0.01f; + } +} + +void func_809DF6BC(EnCow* this, GlobalContext* globalCtx) { + if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + this->actor.flags &= ~0x10000; + func_80106CCC(globalCtx); + this->actionFunc = (ActorFunc)func_809DF96C; + } +} + +void func_809DF730(EnCow* this, GlobalContext* globalCtx) { + if (func_8002F334(&this->actor, globalCtx)) { + this->actor.flags &= ~0x10000; + this->actionFunc = (ActorFunc)func_809DF96C; + } +} + +void func_809DF778(EnCow* this, GlobalContext* globalCtx) { + if (func_8002F410(&this->actor, globalCtx)) { + this->actor.attachedA = NULL; + this->actionFunc = (ActorFunc)func_809DF730; + } else { + func_8002F434(&this->actor, globalCtx, GI_MILK, 10000.0f, 100.0f); + } +} + +void func_809DF7D8(EnCow* this, GlobalContext* globalCtx) { + if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + this->actor.flags &= ~0x10000; + func_80106CCC(globalCtx); + this->actionFunc = (ActorFunc)func_809DF778; + func_8002F434(&this->actor, globalCtx, GI_MILK, 10000.0f, 100.0f); + } +} + +void func_809DF870(EnCow* this, GlobalContext* globalCtx) { + if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + if (Inventory_HasEmptyBottle()) { + func_8010B720(globalCtx, 0x2007); + this->actionFunc = (ActorFunc)func_809DF7D8; + } else { + func_8010B720(globalCtx, 0x2013); + this->actionFunc = (ActorFunc)func_809DF6BC; + } + } +} + +void func_809DF8FC(EnCow* this, GlobalContext* globalCtx) { + if (func_8002F194(&this->actor, globalCtx)) { + this->actionFunc = (ActorFunc)func_809DF870; + } else { + this->actor.flags |= 0x10000; + func_8002F2CC(&this->actor, globalCtx, 170.0f); + this->actor.textId = 0x2006; + } + func_809DF494(this, globalCtx); +} + +void func_809DF96C(EnCow* this, GlobalContext* globalCtx) { + if ((globalCtx->msgCtx.unk_E3EE == 0) || (globalCtx->msgCtx.unk_E3EE == 4)) { + if (DREG(53) != 0) { + if (this->unk_276 & 4) { + this->unk_276 &= ~0x4; + DREG(53) = 0; + } else { + if ((this->actor.xzDistanceFromLink < 150.0f) && + (ABS((s16)(this->actor.rotTowardsLinkY - this->actor.shape.rot.y)) < 0x61A8)) { + DREG(53) = 0; + this->actionFunc = (ActorFunc)func_809DF8FC; + this->actor.flags |= 0x10000; + func_8002F2CC(&this->actor, globalCtx, 170.0f); + this->actor.textId = 0x2006; + } else { + this->unk_276 |= 4; + } + } + } else { + this->unk_276 &= ~0x4; + } + } + func_809DF494(this, globalCtx); +} + +void func_809DFA84(EnCow* this, GlobalContext* globalCtx) { + if (this->unk_278 > 0) { + this->unk_278--; + } else { + this->unk_278 = Math_Rand_ZeroFloat(200.0f) + 40.0f; + SkelAnime_ChangeAnim(&this->skelAnime, &D_06004348, 1.0f, this->skelAnime.animCurrentFrame, + SkelAnime_GetFrameCount(&D_06004348.genericHeader), 2, 1.0f); + } + + if ((this->actor.xzDistanceFromLink < 150.0f) && + (ABS((s16)(this->actor.rotTowardsLinkY - this->actor.shape.rot.y)) >= 0x61A9) && (!(this->unk_276 & 2))) { + this->unk_276 |= 2; + if (this->skelAnime.animCurrentSeg == &D_06004348) { + this->unk_278 = 0; + } + } +} + +void EnCow_Update(EnCow* this, GlobalContext* globalCtx) { + s32 pad; + CollisionCheckContext* colChckCtx = &globalCtx->colChkCtx; + s16 targetX; + s16 targetY; + Player* player = PLAYER; + + CollisionCheck_SetOC(globalCtx, colChckCtx, &this->colliders[0].base); + if (globalCtx) {} // necessary to match + CollisionCheck_SetOC(globalCtx, colChckCtx, &this->colliders[1].base); + Actor_MoveForward(&this->actor); + func_8002E4B4(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4); + if (SkelAnime_FrameUpdateMatrix(&this->skelAnime) != 0) { + if (this->skelAnime.animCurrentSeg == &D_060001CC) { + Audio_PlayActorSound2(&this->actor, NA_SE_EV_COW_CRY); + SkelAnime_ChangeAnim(&this->skelAnime, &D_06004264, 1.0f, 0.0f, + SkelAnime_GetFrameCount(&D_06004264.genericHeader), 2, 1.0f); + } else { + SkelAnime_ChangeAnim(&this->skelAnime, &D_060001CC, 1.0f, 0.0f, + SkelAnime_GetFrameCount(&D_060001CC.genericHeader), 0, 1.0f); + } + } + this->actionFunc(this, globalCtx); + if ((this->actor.xzDistanceFromLink < 150.0f) && + (ABS(Math_Vec3f_Yaw(&this->actor.posRot.pos, &player->actor.posRot.pos)) < 0xC000)) { + targetX = Math_Vec3f_Pitch(&this->actor.posRot2.pos, &player->actor.posRot2.pos); + targetY = Math_Vec3f_Yaw(&this->actor.posRot2.pos, &player->actor.posRot2.pos) - this->actor.shape.rot.y; + + if (targetX > 0x1000) { + targetX = 0x1000; + } else if (targetX < -0x1000) { + targetX = -0x1000; + } + + if (targetY > 0x2500) { + targetY = 0x2500; + } else if (targetY < -0x2500) { + targetY = -0x2500; + } + + } else { + targetY = 0; + targetX = 0; + } + Math_SmoothScaleMaxMinS(&this->someRot.x, targetX, 0xA, 0xC8, 0xA); + Math_SmoothScaleMaxMinS(&this->someRot.y, targetY, 0xA, 0xC8, 0xA); +} + +void func_809DFE98(EnCow* this, GlobalContext* globalCtx) { + SkelAnime* skelAnime = &this->skelAnime; + AnimationHeader* temp_a0 = &D_06004348; + if (this->skelAnime.animCurrentSeg) {} // necessary to match + + if (SkelAnime_FrameUpdateMatrix(skelAnime) != 0) { + if (this->skelAnime.animCurrentSeg == temp_a0) { + SkelAnime_ChangeAnim(skelAnime, &D_06004E98, 1.0f, 0.0f, + (f32)SkelAnime_GetFrameCount(&D_06004E98.genericHeader), 2, 1.0f); + } else { + SkelAnime_ChangeAnim(skelAnime, temp_a0, 1.0f, 0.0f, (f32)SkelAnime_GetFrameCount(&temp_a0->genericHeader), + 0, 1.0f); + } + } + this->actionFunc(this, globalCtx); +} + +s32 EnCow_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* this) { + EnCow* thisx = (EnCow*)this; + if (limbIndex == 2) { + rot->y += thisx->someRot.y; + rot->x += thisx->someRot.x; + } + if (limbIndex == 5) { + *dList = NULL; + } + return 0; +} + +void EnCow_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* this) { + if (limbIndex == 2) { + Matrix_MultVec3f(&D_809E010C, &this->posRot2.pos); + } +} + +void EnCow_Draw(EnCow* this, GlobalContext* globalCtx) { + func_800943C8(globalCtx->state.gfxCtx); + SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount, + EnCow_OverrideLimbDraw, EnCow_PostLimbDraw, &this->actor); +} + +void func_809E0070(EnCow* this, GlobalContext* globalCtx) { + func_800943C8(globalCtx->state.gfxCtx); + SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount, NULL, + NULL, &this->actor); +} diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.h b/src/overlays/actors/ovl_En_Cow/z_en_cow.h index 7b44f77718..73c9ff175e 100644 --- a/src/overlays/actors/ovl_En_Cow/z_en_cow.h +++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.h @@ -6,7 +6,15 @@ typedef struct { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x134]; + /* 0x014C */ ColliderCylinder colliders[2]; + /* 0x01E4 */ SkelAnime skelAnime; + /* 0x0228 */ Vec3s limbDrawTable[6]; + /* 0x024C */ Vec3s transitionDrawTable[6]; + /* 0x0270 */ Vec3s someRot; + /* 0x0276 */ u16 unk_276; + /* 0x0278 */ u16 unk_278; + /* 0x027A */ u16 unk_27A; + /* 0x027C */ ActorFunc actionFunc; } EnCow; // size = 0x0280 extern const ActorInit En_Cow_InitVars; diff --git a/tools/regconvert.py b/tools/regconvert.py old mode 100644 new mode 100755 diff --git a/undefined_syms.txt b/undefined_syms.txt index 3d56efa364..75dec1427b 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -143,6 +143,14 @@ D_080895C0 = 0x080895C0; // z_skelanime link_animetion_segment = 0x07000000; +// z_en_cow +D_060001CC = 0x060001CC; +D_06004010 = 0x06004010; +D_06004264 = 0x06004264; +D_06004348 = 0x06004348; +D_06004C30 = 0x06004C30; +D_06004E98 = 0x06004E98; + // z_en_tubo_trap D_05017870 = 0x05017870; D_05017A60 = 0x05017A60;