1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00

Decompiled ovl_En_Cow (#113)

* Beginning the Cow

* Decompiled ovl_En_Cow

* Giving the cow milk
This commit is contained in:
Ethan Roseman 2020-05-04 12:11:37 -04:00 committed by GitHub
parent ca20f56c09
commit 713de9b942
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 366 additions and 1225 deletions

View file

@ -6,12 +6,13 @@ RUN apt-get update && \
build-essential \ build-essential \
pkg-config \ pkg-config \
python3 \ python3 \
python3-pip \ python3-pip \
wget \ wget \
git \ git \
unzip \ unzip \
vbindiff \ clang-tidy \
nano clang-format
nano
RUN wget \ RUN wget \
https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb \ 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 rm qemu.deb
RUN python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein RUN python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein
RUN python3 -m pip install --upgrade attrs pycparser
RUN mkdir /oot RUN mkdir /oot
WORKDIR /oot WORKDIR /oot

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1114,6 +1114,7 @@ void func_80094044(GraphicsContext* gfxCtx);
void func_800940B0(GraphicsContext* gfxCtx); void func_800940B0(GraphicsContext* gfxCtx);
void func_800942F0(GraphicsContext* gfxCtx); void func_800942F0(GraphicsContext* gfxCtx);
void func_8009435C(GraphicsContext* gfxCtx); void func_8009435C(GraphicsContext* gfxCtx);
void func_800943C8(GraphicsContext* gfxCtx);
Gfx* func_800944A0(Gfx* gfx); Gfx* func_800944A0(Gfx* gfx);
void func_80094520(GraphicsContext* gfxCtx); void func_80094520(GraphicsContext* gfxCtx);
void func_8009457C(Gfx** gfxp); void func_8009457C(Gfx** gfxp);

3
spec
View file

@ -2253,8 +2253,7 @@ endseg
beginseg beginseg
name "ovl_En_Cow" name "ovl_En_Cow"
include "build/src/overlays/actors/ovl_En_Cow/z_en_cow.o" include "build/src/overlays/actors/ovl_En_Cow/z_en_cow.o"
include "build/data/overlays/actors/z_en_cow.data.o" include "build/src/overlays/actors/ovl_En_Cow/z_en_cow_reloc.o"
include "build/data/overlays/actors/z_en_cow.reloc.o"
endseg endseg
beginseg beginseg

View file

@ -13,7 +13,17 @@ void EnCow_Destroy(EnCow* this, GlobalContext* globalCtx);
void EnCow_Update(EnCow* this, GlobalContext* globalCtx); void EnCow_Update(EnCow* this, GlobalContext* globalCtx);
void EnCow_Draw(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 = { const ActorInit En_Cow_InitVars = {
ACTOR_EN_COW, ACTOR_EN_COW,
ACTORTYPE_NPC, ACTORTYPE_NPC,
@ -25,43 +35,351 @@ const ActorInit En_Cow_InitVars = {
(ActorFunc)EnCow_Update, (ActorFunc)EnCow_Update,
(ActorFunc)EnCow_Draw, (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);
}

View file

@ -6,7 +6,15 @@
typedef struct { typedef struct {
/* 0x0000 */ Actor actor; /* 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 } EnCow; // size = 0x0280
extern const ActorInit En_Cow_InitVars; extern const ActorInit En_Cow_InitVars;

0
tools/regconvert.py Normal file → Executable file
View file

View file

@ -143,6 +143,14 @@ D_080895C0 = 0x080895C0;
// z_skelanime // z_skelanime
link_animetion_segment = 0x07000000; 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 // z_en_tubo_trap
D_05017870 = 0x05017870; D_05017870 = 0x05017870;
D_05017A60 = 0x05017A60; D_05017A60 = 0x05017A60;