1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-25 22:26:12 +00:00

Decomp EnNiwGirl (#306)

* Fix Repo

* Update z_en_niw.h

* PR fixes

* Update z_en_niw_girl.c

Add all masks to switch at 142

* Added currentMask enum

* Small fixes

* Cleaned up a lot of little things

* PR fixes
This commit is contained in:
louist103 2020-08-15 19:37:26 -04:00 committed by GitHub
parent 117b1f6a5c
commit da58af403b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 257 additions and 822 deletions

View file

@ -1,4 +0,0 @@
glabel EnNiwGirl_Destroy
/* 00200 80AB9180 AFA40000 */ sw $a0, 0x0000($sp)
/* 00204 80AB9184 03E00008 */ jr $ra
/* 00208 80AB9188 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,89 +0,0 @@
.rdata
glabel D_80AB9AEC
.asciz "../z_en_niw_girl.c"
.balign 4
glabel D_80AB9B00
.asciz "../z_en_niw_girl.c"
.balign 4
.text
glabel EnNiwGirl_Draw
/* 008C8 80AB9848 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 008CC 80AB984C 3C0F80AC */ lui $t7, %hi(D_80AB99CC) ## $t7 = 80AC0000
/* 008D0 80AB9850 AFBF002C */ sw $ra, 0x002C($sp)
/* 008D4 80AB9854 AFB10028 */ sw $s1, 0x0028($sp)
/* 008D8 80AB9858 AFB00024 */ sw $s0, 0x0024($sp)
/* 008DC 80AB985C 25EF99CC */ addiu $t7, $t7, %lo(D_80AB99CC) ## $t7 = 80AB99CC
/* 008E0 80AB9860 8DF90000 */ lw $t9, 0x0000($t7) ## 80AB99CC
/* 008E4 80AB9864 27AE004C */ addiu $t6, $sp, 0x004C ## $t6 = FFFFFFEC
/* 008E8 80AB9868 8DF80004 */ lw $t8, 0x0004($t7) ## 80AB99D0
/* 008EC 80AB986C ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFEC
/* 008F0 80AB9870 8DF90008 */ lw $t9, 0x0008($t7) ## 80AB99D4
/* 008F4 80AB9874 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 008F8 80AB9878 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF0
/* 008FC 80AB987C ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFF4
/* 00900 80AB9880 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00904 80AB9884 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00908 80AB9888 3C0680AC */ lui $a2, %hi(D_80AB9AEC) ## $a2 = 80AC0000
/* 0090C 80AB988C 24C69AEC */ addiu $a2, $a2, %lo(D_80AB9AEC) ## $a2 = 80AB9AEC
/* 00910 80AB9890 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFD8
/* 00914 80AB9894 2407023D */ addiu $a3, $zero, 0x023D ## $a3 = 0000023D
/* 00918 80AB9898 0C031AB1 */ jal Graph_OpenDisps
/* 0091C 80AB989C AFA50048 */ sw $a1, 0x0048($sp)
/* 00920 80AB98A0 0C024F46 */ jal func_80093D18
/* 00924 80AB98A4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00928 80AB98A8 8FA50048 */ lw $a1, 0x0048($sp)
/* 0092C 80AB98AC 3C09DB06 */ lui $t1, 0xDB06 ## $t1 = DB060000
/* 00930 80AB98B0 35290020 */ ori $t1, $t1, 0x0020 ## $t1 = DB060020
/* 00934 80AB98B4 8CA302C0 */ lw $v1, 0x02C0($a1) ## 000002C0
/* 00938 80AB98B8 3C0480AC */ lui $a0, %hi(D_80AB99D8) ## $a0 = 80AC0000
/* 0093C 80AB98BC 3C188016 */ lui $t8, %hi(gSegments)
/* 00940 80AB98C0 24680008 */ addiu $t0, $v1, 0x0008 ## $t0 = 00000008
/* 00944 80AB98C4 ACA802C0 */ sw $t0, 0x02C0($a1) ## 000002C0
/* 00948 80AB98C8 AC690000 */ sw $t1, 0x0000($v1) ## 00000000
/* 0094C 80AB98CC 860A0272 */ lh $t2, 0x0272($s0) ## 00000272
/* 00950 80AB98D0 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00954 80AB98D4 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00958 80AB98D8 000A5880 */ sll $t3, $t2, 2
/* 0095C 80AB98DC 008B2021 */ addu $a0, $a0, $t3
/* 00960 80AB98E0 8C8499D8 */ lw $a0, %lo(D_80AB99D8)($a0)
/* 00964 80AB98E4 3C0980AC */ lui $t1, %hi(func_80AB97E4) ## $t1 = 80AC0000
/* 00968 80AB98E8 252997E4 */ addiu $t1, $t1, %lo(func_80AB97E4) ## $t1 = 80AB97E4
/* 0096C 80AB98EC 00046900 */ sll $t5, $a0, 4
/* 00970 80AB98F0 000D7702 */ srl $t6, $t5, 28
/* 00974 80AB98F4 000E7880 */ sll $t7, $t6, 2
/* 00978 80AB98F8 030FC021 */ addu $t8, $t8, $t7
/* 0097C 80AB98FC 8F186FA8 */ lw $t8, %lo(gSegments)($t8)
/* 00980 80AB9900 00816024 */ and $t4, $a0, $at
/* 00984 80AB9904 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00988 80AB9908 0198C821 */ addu $t9, $t4, $t8
/* 0098C 80AB990C 03214021 */ addu $t0, $t9, $at
/* 00990 80AB9910 AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 00994 80AB9914 9207014E */ lbu $a3, 0x014E($s0) ## 0000014E
/* 00998 80AB9918 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 0099C 80AB991C 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 009A0 80AB9920 AFB00018 */ sw $s0, 0x0018($sp)
/* 009A4 80AB9924 AFA00014 */ sw $zero, 0x0014($sp)
/* 009A8 80AB9928 AFA90010 */ sw $t1, 0x0010($sp)
/* 009AC 80AB992C 0C0286B2 */ jal SkelAnime_DrawSV
/* 009B0 80AB9930 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 009B4 80AB9934 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 009B8 80AB9938 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFEC
/* 009BC 80AB993C 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
/* 009C0 80AB9940 0C00CF0C */ jal func_80033C30
/* 009C4 80AB9944 02203825 */ or $a3, $s1, $zero ## $a3 = 00000000
/* 009C8 80AB9948 3C0680AC */ lui $a2, %hi(D_80AB9B00) ## $a2 = 80AC0000
/* 009CC 80AB994C 24C69B00 */ addiu $a2, $a2, %lo(D_80AB9B00) ## $a2 = 80AB9B00
/* 009D0 80AB9950 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFD8
/* 009D4 80AB9954 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 009D8 80AB9958 0C031AD5 */ jal Graph_CloseDisps
/* 009DC 80AB995C 24070250 */ addiu $a3, $zero, 0x0250 ## $a3 = 00000250
/* 009E0 80AB9960 8FBF002C */ lw $ra, 0x002C($sp)
/* 009E4 80AB9964 8FB00024 */ lw $s0, 0x0024($sp)
/* 009E8 80AB9968 8FB10028 */ lw $s1, 0x0028($sp)
/* 009EC 80AB996C 03E00008 */ jr $ra
/* 009F0 80AB9970 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
/* 009F4 80AB9974 00000000 */ nop
/* 009F8 80AB9978 00000000 */ nop
/* 009FC 80AB997C 00000000 */ nop

View file

@ -1,177 +0,0 @@
.rdata
glabel D_80AB99F0
.asciz "\x1b[32m %d\n\x1b[m"
.balign 4
glabel D_80AB9A34
.asciz "\x1b[33m %d\n\x1b[m"
.balign 4
glabel D_80AB9A70
.asciz "\n\n"
.balign 4
glabel D_80AB9A74
.asciz "\n\n"
.balign 4
glabel D_80AB9A78
.asciz "\x1b[32m %d\n\x1b[m"
.balign 4
glabel D_80AB9AB8
.asciz "\x1b[33m %d\n\x1b[m"
.balign 4
glabel D_80AB9AE8
.asciz "\n\n"
.balign 4
.late_rodata
glabel D_80AB9B14
.float 3.14159274101
.text
glabel EnNiwGirl_Init
/* 00000 80AB8F80 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 00004 80AB8F84 AFB00038 */ sw $s0, 0x0038($sp)
/* 00008 80AB8F88 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0000C 80AB8F8C AFBF003C */ sw $ra, 0x003C($sp)
/* 00010 80AB8F90 AFA5006C */ sw $a1, 0x006C($sp)
/* 00014 80AB8F94 260E0190 */ addiu $t6, $s0, 0x0190 ## $t6 = 00000190
/* 00018 80AB8F98 260F01F6 */ addiu $t7, $s0, 0x01F6 ## $t7 = 000001F6
/* 0001C 80AB8F9C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00020 80AB8FA0 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000
/* 00024 80AB8FA4 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
/* 00028 80AB8FA8 24180011 */ addiu $t8, $zero, 0x0011 ## $t8 = 00000011
/* 0002C 80AB8FAC AFB80018 */ sw $t8, 0x0018($sp)
/* 00030 80AB8FB0 24E70378 */ addiu $a3, $a3, 0x0378 ## $a3 = 06000378
/* 00034 80AB8FB4 24C69948 */ addiu $a2, $a2, 0x9948 ## $a2 = 06009948
/* 00038 80AB8FB8 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 0003C 80AB8FBC AFAF0014 */ sw $t7, 0x0014($sp)
/* 00040 80AB8FC0 0C0291BE */ jal SkelAnime_InitSV
/* 00044 80AB8FC4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 00048 80AB8FC8 26050288 */ addiu $a1, $s0, 0x0288 ## $a1 = 00000288
/* 0004C 80AB8FCC AFA50040 */ sw $a1, 0x0040($sp)
/* 00050 80AB8FD0 0C0170D9 */ jal Collider_InitCylinder
/* 00054 80AB8FD4 8FA4006C */ lw $a0, 0x006C($sp)
/* 00058 80AB8FD8 3C0780AC */ lui $a3, %hi(D_80AB99A0) ## $a3 = 80AC0000
/* 0005C 80AB8FDC 8FA50040 */ lw $a1, 0x0040($sp)
/* 00060 80AB8FE0 24E799A0 */ addiu $a3, $a3, %lo(D_80AB99A0) ## $a3 = 80AB99A0
/* 00064 80AB8FE4 8FA4006C */ lw $a0, 0x006C($sp)
/* 00068 80AB8FE8 0C01712B */ jal Collider_SetCylinder
/* 0006C 80AB8FEC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00070 80AB8FF0 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 00074 80AB8FF4 24190006 */ addiu $t9, $zero, 0x0006 ## $t9 = 00000006
/* 00078 80AB8FF8 A219001F */ sb $t9, 0x001F($s0) ## 0000001F
/* 0007C 80AB8FFC 04630004 */ bgezl $v1, .L80AB9010
/* 00080 80AB9000 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
/* 00084 80AB9004 A600001C */ sh $zero, 0x001C($s0) ## 0000001C
/* 00088 80AB9008 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 0008C 80AB900C 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
.L80AB9010:
/* 00090 80AB9010 3C01C040 */ lui $at, 0xC040 ## $at = C0400000
/* 00094 80AB9014 44812000 */ mtc1 $at, $f4 ## $f4 = -3.00
/* 00098 80AB9018 448A3000 */ mtc1 $t2, $f6 ## $f6 = 0.00
/* 0009C 80AB901C 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 000A0 80AB9020 44815000 */ mtc1 $at, $f10 ## $f10 = 32768.00
/* 000A4 80AB9024 46803220 */ cvt.s.w $f8, $f6
/* 000A8 80AB9028 00034203 */ sra $t0, $v1, 8
/* 000AC 80AB902C 310900FF */ andi $t1, $t0, 0x00FF ## $t1 = 00000000
/* 000B0 80AB9030 A6090276 */ sh $t1, 0x0276($s0) ## 00000276
/* 000B4 80AB9034 3C0180AC */ lui $at, %hi(D_80AB9B14) ## $at = 80AC0000
/* 000B8 80AB9038 E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C
/* 000BC 80AB903C 460A4403 */ div.s $f16, $f8, $f10
/* 000C0 80AB9040 C4329B14 */ lwc1 $f18, %lo(D_80AB9B14)($at)
/* 000C4 80AB9044 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 000C8 80AB9048 46128302 */ mul.s $f12, $f16, $f18
/* 000CC 80AB904C 0C034348 */ jal Matrix_RotateY
/* 000D0 80AB9050 00000000 */ nop
/* 000D4 80AB9054 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 000D8 80AB9058 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 000DC 80AB905C 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00
/* 000E0 80AB9060 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFEC
/* 000E4 80AB9064 27A50048 */ addiu $a1, $sp, 0x0048 ## $a1 = FFFFFFE0
/* 000E8 80AB9068 E7A00050 */ swc1 $f0, 0x0050($sp)
/* 000EC 80AB906C E7A0004C */ swc1 $f0, 0x004C($sp)
/* 000F0 80AB9070 E7A00048 */ swc1 $f0, 0x0048($sp)
/* 000F4 80AB9074 E7A00058 */ swc1 $f0, 0x0058($sp)
/* 000F8 80AB9078 E7A00054 */ swc1 $f0, 0x0054($sp)
/* 000FC 80AB907C 0C0346BD */ jal Matrix_MultVec3f
/* 00100 80AB9080 E7A4005C */ swc1 $f4, 0x005C($sp)
/* 00104 80AB9084 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 00108 80AB9088 C7A80048 */ lwc1 $f8, 0x0048($sp)
/* 0010C 80AB908C C7B2004C */ lwc1 $f18, 0x004C($sp)
/* 00110 80AB9090 8FA6006C */ lw $a2, 0x006C($sp)
/* 00114 80AB9094 46083280 */ add.s $f10, $f6, $f8
/* 00118 80AB9098 C7A80050 */ lwc1 $f8, 0x0050($sp)
/* 0011C 80AB909C 240C000A */ addiu $t4, $zero, 0x000A ## $t4 = 0000000A
/* 00120 80AB90A0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00124 80AB90A4 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00128 80AB90A8 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 0012C 80AB90AC 24070019 */ addiu $a3, $zero, 0x0019 ## $a3 = 00000019
/* 00130 80AB90B0 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
/* 00134 80AB90B4 46128100 */ add.s $f4, $f16, $f18
/* 00138 80AB90B8 E7A40014 */ swc1 $f4, 0x0014($sp)
/* 0013C 80AB90BC C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 00140 80AB90C0 AFA0001C */ sw $zero, 0x001C($sp)
/* 00144 80AB90C4 46083280 */ add.s $f10, $f6, $f8
/* 00148 80AB90C8 E7AA0018 */ swc1 $f10, 0x0018($sp)
/* 0014C 80AB90CC 860B0032 */ lh $t3, 0x0032($s0) ## 00000032
/* 00150 80AB90D0 AFAC0028 */ sw $t4, 0x0028($sp)
/* 00154 80AB90D4 AFA00024 */ sw $zero, 0x0024($sp)
/* 00158 80AB90D8 0C00C916 */ jal Actor_SpawnAttached
/* 0015C 80AB90DC AFAB0020 */ sw $t3, 0x0020($sp)
/* 00160 80AB90E0 10400012 */ beq $v0, $zero, .L80AB912C
/* 00164 80AB90E4 AE020284 */ sw $v0, 0x0284($s0) ## 00000284
/* 00168 80AB90E8 3C0480AC */ lui $a0, %hi(D_80AB99F0) ## $a0 = 80AC0000
/* 0016C 80AB90EC 248499F0 */ addiu $a0, $a0, %lo(D_80AB99F0) ## $a0 = 80AB99F0
/* 00170 80AB90F0 0C00084C */ jal osSyncPrintf
/* 00174 80AB90F4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00178 80AB90F8 3C0480AC */ lui $a0, %hi(D_80AB9A34) ## $a0 = 80AC0000
/* 0017C 80AB90FC 24849A34 */ addiu $a0, $a0, %lo(D_80AB9A34) ## $a0 = 80AB9A34
/* 00180 80AB9100 0C00084C */ jal osSyncPrintf
/* 00184 80AB9104 86050276 */ lh $a1, 0x0276($s0) ## 00000276
/* 00188 80AB9108 3C0480AC */ lui $a0, %hi(D_80AB9A70) ## $a0 = 80AC0000
/* 0018C 80AB910C 0C00084C */ jal osSyncPrintf
/* 00190 80AB9110 24849A70 */ addiu $a0, $a0, %lo(D_80AB9A70) ## $a0 = 80AB9A70
/* 00194 80AB9114 3C0E80AC */ lui $t6, %hi(func_80AB93C0) ## $t6 = 80AC0000
/* 00198 80AB9118 240D00FF */ addiu $t5, $zero, 0x00FF ## $t5 = 000000FF
/* 0019C 80AB911C 25CE93C0 */ addiu $t6, $t6, %lo(func_80AB93C0) ## $t6 = 80AB93C0
/* 001A0 80AB9120 A20D00AE */ sb $t5, 0x00AE($s0) ## 000000AE
/* 001A4 80AB9124 10000011 */ beq $zero, $zero, .L80AB916C
/* 001A8 80AB9128 AE0E025C */ sw $t6, 0x025C($s0) ## 0000025C
.L80AB912C:
/* 001AC 80AB912C 3C0480AC */ lui $a0, %hi(D_80AB9A74) ## $a0 = 80AC0000
/* 001B0 80AB9130 0C00084C */ jal osSyncPrintf
/* 001B4 80AB9134 24849A74 */ addiu $a0, $a0, %lo(D_80AB9A74) ## $a0 = 80AB9A74
/* 001B8 80AB9138 3C0480AC */ lui $a0, %hi(D_80AB9A78) ## $a0 = 80AC0000
/* 001BC 80AB913C 24849A78 */ addiu $a0, $a0, %lo(D_80AB9A78) ## $a0 = 80AB9A78
/* 001C0 80AB9140 0C00084C */ jal osSyncPrintf
/* 001C4 80AB9144 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 001C8 80AB9148 3C0480AC */ lui $a0, %hi(D_80AB9AB8) ## $a0 = 80AC0000
/* 001CC 80AB914C 24849AB8 */ addiu $a0, $a0, %lo(D_80AB9AB8) ## $a0 = 80AB9AB8
/* 001D0 80AB9150 0C00084C */ jal osSyncPrintf
/* 001D4 80AB9154 86050276 */ lh $a1, 0x0276($s0) ## 00000276
/* 001D8 80AB9158 3C0480AC */ lui $a0, %hi(D_80AB9AE8) ## $a0 = 80AC0000
/* 001DC 80AB915C 0C00084C */ jal osSyncPrintf
/* 001E0 80AB9160 24849AE8 */ addiu $a0, $a0, %lo(D_80AB9AE8) ## $a0 = 80AB9AE8
/* 001E4 80AB9164 0C00B55C */ jal Actor_Kill
/* 001E8 80AB9168 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AB916C:
/* 001EC 80AB916C 8FBF003C */ lw $ra, 0x003C($sp)
/* 001F0 80AB9170 8FB00038 */ lw $s0, 0x0038($sp)
/* 001F4 80AB9174 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
/* 001F8 80AB9178 03E00008 */ jr $ra
/* 001FC 80AB917C 00000000 */ nop

View file

@ -1,152 +0,0 @@
glabel EnNiwGirl_Update
/* 00644 80AB95C4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00648 80AB95C8 AFBF0024 */ sw $ra, 0x0024($sp)
/* 0064C 80AB95CC AFB00020 */ sw $s0, 0x0020($sp)
/* 00650 80AB95D0 AFA5003C */ sw $a1, 0x003C($sp)
/* 00654 80AB95D4 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00658 80AB95D8 3C053C54 */ lui $a1, 0x3C54 ## $a1 = 3C540000
/* 0065C 80AB95DC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00660 80AB95E0 34A5FDF4 */ ori $a1, $a1, 0xFDF4 ## $a1 = 3C54FDF4
/* 00664 80AB95E4 0C00B58B */ jal Actor_SetScale
/* 00668 80AB95E8 AFAF002C */ sw $t7, 0x002C($sp)
/* 0066C 80AB95EC 8618026E */ lh $t8, 0x026E($s0) ## 0000026E
/* 00670 80AB95F0 86080274 */ lh $t0, 0x0274($s0) ## 00000274
/* 00674 80AB95F4 27190001 */ addiu $t9, $t8, 0x0001 ## $t9 = 00000001
/* 00678 80AB95F8 15000010 */ bne $t0, $zero, .L80AB963C
/* 0067C 80AB95FC A619026E */ sh $t9, 0x026E($s0) ## 0000026E
/* 00680 80AB9600 86090272 */ lh $t1, 0x0272($s0) ## 00000272
/* 00684 80AB9604 252A0001 */ addiu $t2, $t1, 0x0001 ## $t2 = 00000001
/* 00688 80AB9608 A60A0272 */ sh $t2, 0x0272($s0) ## 00000272
/* 0068C 80AB960C 860B0272 */ lh $t3, 0x0272($s0) ## 00000272
/* 00690 80AB9610 29610003 */ slti $at, $t3, 0x0003
/* 00694 80AB9614 14200009 */ bne $at, $zero, .L80AB963C
/* 00698 80AB9618 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 0069C 80AB961C 44816000 */ mtc1 $at, $f12 ## $f12 = 60.00
/* 006A0 80AB9620 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 006A4 80AB9624 A6000272 */ sh $zero, 0x0272($s0) ## 00000272
/* 006A8 80AB9628 4600010D */ trunc.w.s $f4, $f0
/* 006AC 80AB962C 440F2000 */ mfc1 $t7, $f4
/* 006B0 80AB9630 00000000 */ nop
/* 006B4 80AB9634 25F80014 */ addiu $t8, $t7, 0x0014 ## $t8 = 00000014
/* 006B8 80AB9638 A6180274 */ sh $t8, 0x0274($s0) ## 00000274
.L80AB963C:
/* 006BC 80AB963C 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 006C0 80AB9640 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 006C4 80AB9644 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006C8 80AB9648 44050000 */ mfc1 $a1, $f0
/* 006CC 80AB964C 0C00B56E */ jal Actor_SetHeight
/* 006D0 80AB9650 E6000280 */ swc1 $f0, 0x0280($s0) ## 00000280
/* 006D4 80AB9654 8E08025C */ lw $t0, 0x025C($s0) ## 0000025C
/* 006D8 80AB9658 3C1980AC */ lui $t9, %hi(func_80AB94D0) ## $t9 = 80AC0000
/* 006DC 80AB965C 273994D0 */ addiu $t9, $t9, %lo(func_80AB94D0) ## $t9 = 80AB94D0
/* 006E0 80AB9660 17280024 */ bne $t9, $t0, .L80AB96F4
/* 006E4 80AB9664 26040268 */ addiu $a0, $s0, 0x0268 ## $a0 = 00000268
/* 006E8 80AB9668 8FA2002C */ lw $v0, 0x002C($sp)
/* 006EC 80AB966C 3C0B8016 */ lui $t3, %hi(gSaveContext+4)
/* 006F0 80AB9670 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 006F4 80AB9674 8C4A0024 */ lw $t2, 0x0024($v0) ## 00000024
/* 006F8 80AB9678 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006FC 80AB967C 260502D4 */ addiu $a1, $s0, 0x02D4 ## $a1 = 000002D4
/* 00700 80AB9680 AE0A02EC */ sw $t2, 0x02EC($s0) ## 000002EC
/* 00704 80AB9684 8C490028 */ lw $t1, 0x0028($v0) ## 00000028
/* 00708 80AB9688 24060002 */ addiu $a2, $zero, 0x0002 ## $a2 = 00000002
/* 0070C 80AB968C AE0902F0 */ sw $t1, 0x02F0($s0) ## 000002F0
/* 00710 80AB9690 8C4A002C */ lw $t2, 0x002C($v0) ## 0000002C
/* 00714 80AB9694 AE0A02F4 */ sw $t2, 0x02F4($s0) ## 000002F4
/* 00718 80AB9698 8D6BE664 */ lw $t3, %lo(gSaveContext+4)($t3)
/* 0071C 80AB969C 11600006 */ beq $t3, $zero, .L80AB96B8
/* 00720 80AB96A0 00000000 */ nop
/* 00724 80AB96A4 C4460028 */ lwc1 $f6, 0x0028($v0) ## 00000028
/* 00728 80AB96A8 44814000 */ mtc1 $at, $f8 ## $f8 = 10.00
/* 0072C 80AB96AC 00000000 */ nop
/* 00730 80AB96B0 46083281 */ sub.s $f10, $f6, $f8
/* 00734 80AB96B4 E60A02F0 */ swc1 $f10, 0x02F0($s0) ## 000002F0
.L80AB96B8:
/* 00738 80AB96B8 0C00D285 */ jal func_80034A14
/* 0073C 80AB96BC 24070004 */ addiu $a3, $zero, 0x0004 ## $a3 = 00000004
/* 00740 80AB96C0 8A0D02DC */ lwl $t5, 0x02DC($s0) ## 000002DC
/* 00744 80AB96C4 8A0F02E2 */ lwl $t7, 0x02E2($s0) ## 000002E2
/* 00748 80AB96C8 9A0D02DF */ lwr $t5, 0x02DF($s0) ## 000002DF
/* 0074C 80AB96CC 9A0F02E5 */ lwr $t7, 0x02E5($s0) ## 000002E5
/* 00750 80AB96D0 AA0D0260 */ swl $t5, 0x0260($s0) ## 00000260
/* 00754 80AB96D4 AA0F0266 */ swl $t7, 0x0266($s0) ## 00000266
/* 00758 80AB96D8 BA0D0263 */ swr $t5, 0x0263($s0) ## 00000263
/* 0075C 80AB96DC BA0F0269 */ swr $t7, 0x0269($s0) ## 00000269
/* 00760 80AB96E0 960D02E0 */ lhu $t5, 0x02E0($s0) ## 000002E0
/* 00764 80AB96E4 960F02E6 */ lhu $t7, 0x02E6($s0) ## 000002E6
/* 00768 80AB96E8 A60D0264 */ sh $t5, 0x0264($s0) ## 00000264
/* 0076C 80AB96EC 10000012 */ beq $zero, $zero, .L80AB9738
/* 00770 80AB96F0 A60F026A */ sh $t7, 0x026A($s0) ## 0000026A
.L80AB96F4:
/* 00774 80AB96F4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00778 80AB96F8 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 0077C 80AB96FC 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
/* 00780 80AB9700 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 00784 80AB9704 AFA00010 */ sw $zero, 0x0010($sp)
/* 00788 80AB9708 26040262 */ addiu $a0, $s0, 0x0262 ## $a0 = 00000262
/* 0078C 80AB970C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00790 80AB9710 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 00794 80AB9714 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
/* 00798 80AB9718 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 0079C 80AB971C AFA00010 */ sw $zero, 0x0010($sp)
/* 007A0 80AB9720 26040264 */ addiu $a0, $s0, 0x0264 ## $a0 = 00000264
/* 007A4 80AB9724 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 007A8 80AB9728 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005
/* 007AC 80AB972C 24070BB8 */ addiu $a3, $zero, 0x0BB8 ## $a3 = 00000BB8
/* 007B0 80AB9730 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 007B4 80AB9734 AFA00010 */ sw $zero, 0x0010($sp)
.L80AB9738:
/* 007B8 80AB9738 86020274 */ lh $v0, 0x0274($s0) ## 00000274
/* 007BC 80AB973C 10400002 */ beq $v0, $zero, .L80AB9748
/* 007C0 80AB9740 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 007C4 80AB9744 A6180274 */ sh $t8, 0x0274($s0) ## 00000274
.L80AB9748:
/* 007C8 80AB9748 8602026C */ lh $v0, 0x026C($s0) ## 0000026C
/* 007CC 80AB974C 10400002 */ beq $v0, $zero, .L80AB9758
/* 007D0 80AB9750 2459FFFF */ addiu $t9, $v0, 0xFFFF ## $t9 = FFFFFFFF
/* 007D4 80AB9754 A619026C */ sh $t9, 0x026C($s0) ## 0000026C
.L80AB9758:
/* 007D8 80AB9758 8E19025C */ lw $t9, 0x025C($s0) ## 0000025C
/* 007DC 80AB975C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007E0 80AB9760 8FA5003C */ lw $a1, 0x003C($sp)
/* 007E4 80AB9764 0320F809 */ jalr $ra, $t9
/* 007E8 80AB9768 00000000 */ nop
/* 007EC 80AB976C 0C00B638 */ jal Actor_MoveForward
/* 007F0 80AB9770 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007F4 80AB9774 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 007F8 80AB9778 44810000 */ mtc1 $at, $f0 ## $f0 = 100.00
/* 007FC 80AB977C 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 00800 80AB9780 44818000 */ mtc1 $at, $f16 ## $f16 = 200.00
/* 00804 80AB9784 2408001C */ addiu $t0, $zero, 0x001C ## $t0 = 0000001C
/* 00808 80AB9788 44060000 */ mfc1 $a2, $f0
/* 0080C 80AB978C 44070000 */ mfc1 $a3, $f0
/* 00810 80AB9790 AFA80014 */ sw $t0, 0x0014($sp)
/* 00814 80AB9794 8FA4003C */ lw $a0, 0x003C($sp)
/* 00818 80AB9798 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0081C 80AB979C 0C00B92D */ jal func_8002E4B4
/* 00820 80AB97A0 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 00824 80AB97A4 26060288 */ addiu $a2, $s0, 0x0288 ## $a2 = 00000288
/* 00828 80AB97A8 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000288
/* 0082C 80AB97AC AFA60028 */ sw $a2, 0x0028($sp)
/* 00830 80AB97B0 0C0189B7 */ jal Collider_CylinderUpdate
/* 00834 80AB97B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00838 80AB97B8 8FA4003C */ lw $a0, 0x003C($sp)
/* 0083C 80AB97BC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00840 80AB97C0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00844 80AB97C4 8FA60028 */ lw $a2, 0x0028($sp)
/* 00848 80AB97C8 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 0084C 80AB97CC 00812821 */ addu $a1, $a0, $at
/* 00850 80AB97D0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00854 80AB97D4 8FB00020 */ lw $s0, 0x0020($sp)
/* 00858 80AB97D8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 0085C 80AB97DC 03E00008 */ jr $ra
/* 00860 80AB97E0 00000000 */ nop

View file

@ -1,36 +0,0 @@
glabel func_80AB918C
/* 0020C 80AB918C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00210 80AB9190 AFA40028 */ sw $a0, 0x0028($sp)
/* 00214 80AB9194 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00218 80AB9198 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 0021C 80AB919C AFA5002C */ sw $a1, 0x002C($sp)
/* 00220 80AB91A0 0C028800 */ jal SkelAnime_GetFrameCount
/* 00224 80AB91A4 24840378 */ addiu $a0, $a0, 0x0378 ## $a0 = 06000378
/* 00228 80AB91A8 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 0022C 80AB91AC 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00230 80AB91B0 8FA30028 */ lw $v1, 0x0028($sp)
/* 00234 80AB91B4 468021A0 */ cvt.s.w $f6, $f4
/* 00238 80AB91B8 44814000 */ mtc1 $at, $f8 ## $f8 = -10.00
/* 0023C 80AB91BC 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 00240 80AB91C0 24A50378 */ addiu $a1, $a1, 0x0378 ## $a1 = 06000378
/* 00244 80AB91C4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00248 80AB91C8 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0024C 80AB91CC E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00250 80AB91D0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00254 80AB91D4 2464014C */ addiu $a0, $v1, 0x014C ## $a0 = 0000014C
/* 00258 80AB91D8 0C029468 */ jal SkelAnime_ChangeAnim
/* 0025C 80AB91DC E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00260 80AB91E0 8FA30028 */ lw $v1, 0x0028($sp)
/* 00264 80AB91E4 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
/* 00268 80AB91E8 3C1880AC */ lui $t8, %hi(func_80AB9210) ## $t8 = 80AC0000
/* 0026C 80AB91EC 8C6E0004 */ lw $t6, 0x0004($v1) ## 00000004
/* 00270 80AB91F0 27189210 */ addiu $t8, $t8, %lo(func_80AB9210) ## $t8 = 80AB9210
/* 00274 80AB91F4 AC78025C */ sw $t8, 0x025C($v1) ## 0000025C
/* 00278 80AB91F8 01C17824 */ and $t7, $t6, $at
/* 0027C 80AB91FC AC6F0004 */ sw $t7, 0x0004($v1) ## 00000004
/* 00280 80AB9200 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00284 80AB9204 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00288 80AB9208 03E00008 */ jr $ra
/* 0028C 80AB920C 00000000 */ nop

View file

@ -1,123 +0,0 @@
.late_rodata
glabel D_80AB9B18
.word 0x4622F983
.text
glabel func_80AB9210
/* 00290 80AB9210 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00294 80AB9214 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00298 80AB9218 AFB00020 */ sw $s0, 0x0020($sp)
/* 0029C 80AB921C AFA5003C */ sw $a1, 0x003C($sp)
/* 002A0 80AB9220 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 002A4 80AB9224 84980276 */ lh $t8, 0x0276($a0) ## 00000276
/* 002A8 80AB9228 01E57821 */ addu $t7, $t7, $a1
/* 002AC 80AB922C 8DEF1E08 */ lw $t7, 0x1E08($t7) ## 00011E08
/* 002B0 80AB9230 0018C8C0 */ sll $t9, $t8, 3
/* 002B4 80AB9234 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 002B8 80AB9238 01F94021 */ addu $t0, $t7, $t9
/* 002BC 80AB923C AFA80034 */ sw $t0, 0x0034($sp)
/* 002C0 80AB9240 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 002C4 80AB9244 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 002C8 80AB9248 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
/* 002CC 80AB924C 3C073ECC */ lui $a3, 0x3ECC ## $a3 = 3ECC0000
/* 002D0 80AB9250 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3ECCCCCD
/* 002D4 80AB9254 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3E4CCCCD
/* 002D8 80AB9258 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 002DC 80AB925C 0C01E107 */ jal Math_SmoothScaleMaxF
/* 002E0 80AB9260 3C054040 */ lui $a1, 0x4040 ## $a1 = 40400000
/* 002E4 80AB9264 8E020284 */ lw $v0, 0x0284($s0) ## 00000284
/* 002E8 80AB9268 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 002EC 80AB926C C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 002F0 80AB9270 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024
/* 002F4 80AB9274 C448002C */ lwc1 $f8, 0x002C($v0) ## 0000002C
/* 002F8 80AB9278 8FA4003C */ lw $a0, 0x003C($sp)
/* 002FC 80AB927C 46062301 */ sub.s $f12, $f4, $f6
/* 00300 80AB9280 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8
/* 00304 80AB9284 460A4381 */ sub.s $f14, $f8, $f10
/* 00308 80AB9288 E7AC0030 */ swc1 $f12, 0x0030($sp)
/* 0030C 80AB928C 0C042F6F */ jal func_8010BDBC
/* 00310 80AB9290 E7AE002C */ swc1 $f14, 0x002C($sp)
/* 00314 80AB9294 C7AC0030 */ lwc1 $f12, 0x0030($sp)
/* 00318 80AB9298 10400003 */ beq $v0, $zero, .L80AB92A8
/* 0031C 80AB929C C7AE002C */ lwc1 $f14, 0x002C($sp)
/* 00320 80AB92A0 8E090284 */ lw $t1, 0x0284($s0) ## 00000284
/* 00324 80AB92A4 A52002E8 */ sh $zero, 0x02E8($t1) ## 000002E8
.L80AB92A8:
/* 00328 80AB92A8 460C6402 */ mul.s $f16, $f12, $f12
/* 0032C 80AB92AC 3C01428C */ lui $at, 0x428C ## $at = 428C0000
/* 00330 80AB92B0 44812000 */ mtc1 $at, $f4 ## $f4 = 70.00
/* 00334 80AB92B4 460E7482 */ mul.s $f18, $f14, $f14
/* 00338 80AB92B8 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 0033C 80AB92BC 46128080 */ add.s $f2, $f16, $f18
/* 00340 80AB92C0 46001084 */ sqrt.s $f2, $f2
/* 00344 80AB92C4 4604103C */ c.lt.s $f2, $f4
/* 00348 80AB92C8 00000000 */ nop
/* 0034C 80AB92CC 4502000B */ bc1fl .L80AB92FC
/* 00350 80AB92D0 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00
/* 00354 80AB92D4 860A0276 */ lh $t2, 0x0276($s0) ## 00000276
/* 00358 80AB92D8 8E0C0284 */ lw $t4, 0x0284($s0) ## 00000284
/* 0035C 80AB92DC 254B0001 */ addiu $t3, $t2, 0x0001 ## $t3 = 00000001
/* 00360 80AB92E0 A58B02E8 */ sh $t3, 0x02E8($t4) ## 000002E8
/* 00364 80AB92E4 8FAD0034 */ lw $t5, 0x0034($sp)
/* 00368 80AB92E8 8E180284 */ lw $t8, 0x0284($s0) ## 00000284
/* 0036C 80AB92EC 91AE0000 */ lbu $t6, 0x0000($t5) ## 00000000
/* 00370 80AB92F0 10000009 */ beq $zero, $zero, .L80AB9318
/* 00374 80AB92F4 A70E02EC */ sh $t6, 0x02EC($t8) ## 000002EC
/* 00378 80AB92F8 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00
.L80AB92FC:
/* 0037C 80AB92FC 00000000 */ nop
/* 00380 80AB9300 4602303C */ c.lt.s $f6, $f2
/* 00384 80AB9304 00000000 */ nop
/* 00388 80AB9308 45000003 */ bc1f .L80AB9318
/* 0038C 80AB930C 00000000 */ nop
/* 00390 80AB9310 8E0F0284 */ lw $t7, 0x0284($s0) ## 00000284
/* 00394 80AB9314 A5E002E8 */ sh $zero, 0x02E8($t7) ## 000002E8
.L80AB9318:
/* 00398 80AB9318 0C03F494 */ jal Math_atan2f
/* 0039C 80AB931C 00000000 */ nop
/* 003A0 80AB9320 3C0180AC */ lui $at, %hi(D_80AB9B18) ## $at = 80AC0000
/* 003A4 80AB9324 C4289B18 */ lwc1 $f8, %lo(D_80AB9B18)($at)
/* 003A8 80AB9328 C612027C */ lwc1 $f18, 0x027C($s0) ## 0000027C
/* 003AC 80AB932C AFA00010 */ sw $zero, 0x0010($sp)
/* 003B0 80AB9330 46080282 */ mul.s $f10, $f0, $f8
/* 003B4 80AB9334 4600910D */ trunc.w.s $f4, $f18
/* 003B8 80AB9338 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6
/* 003BC 80AB933C 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 003C0 80AB9340 44072000 */ mfc1 $a3, $f4
/* 003C4 80AB9344 4600540D */ trunc.w.s $f16, $f10
/* 003C8 80AB9348 00073C00 */ sll $a3, $a3, 16
/* 003CC 80AB934C 00073C03 */ sra $a3, $a3, 16
/* 003D0 80AB9350 44058000 */ mfc1 $a1, $f16
/* 003D4 80AB9354 00000000 */ nop
/* 003D8 80AB9358 00052C00 */ sll $a1, $a1, 16
/* 003DC 80AB935C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
/* 003E0 80AB9360 00052C03 */ sra $a1, $a1, 16
/* 003E4 80AB9364 3C05459C */ lui $a1, 0x459C ## $a1 = 459C0000
/* 003E8 80AB9368 34A54000 */ ori $a1, $a1, 0x4000 ## $a1 = 459C4000
/* 003EC 80AB936C 2604027C */ addiu $a0, $s0, 0x027C ## $a0 = 0000027C
/* 003F0 80AB9370 3C0641F0 */ lui $a2, 0x41F0 ## $a2 = 41F00000
/* 003F4 80AB9374 0C01E107 */ jal Math_SmoothScaleMaxF
/* 003F8 80AB9378 3C074316 */ lui $a3, 0x4316 ## $a3 = 43160000
/* 003FC 80AB937C 860A026C */ lh $t2, 0x026C($s0) ## 0000026C
/* 00400 80AB9380 860900B6 */ lh $t1, 0x00B6($s0) ## 000000B6
/* 00404 80AB9384 11400004 */ beq $t2, $zero, .L80AB9398
/* 00408 80AB9388 A6090032 */ sh $t1, 0x0032($s0) ## 00000032
/* 0040C 80AB938C 0C023C20 */ jal func_8008F080
/* 00410 80AB9390 8FA4003C */ lw $a0, 0x003C($sp)
/* 00414 80AB9394 10400005 */ beq $v0, $zero, .L80AB93AC
.L80AB9398:
/* 00418 80AB9398 3C0C80AC */ lui $t4, %hi(func_80AB93C0) ## $t4 = 80AC0000
/* 0041C 80AB939C 240B003C */ addiu $t3, $zero, 0x003C ## $t3 = 0000003C
/* 00420 80AB93A0 258C93C0 */ addiu $t4, $t4, %lo(func_80AB93C0) ## $t4 = 80AB93C0
/* 00424 80AB93A4 A60B026C */ sh $t3, 0x026C($s0) ## 0000026C
/* 00428 80AB93A8 AE0C025C */ sw $t4, 0x025C($s0) ## 0000025C
.L80AB93AC:
/* 0042C 80AB93AC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00430 80AB93B0 8FB00020 */ lw $s0, 0x0020($sp)
/* 00434 80AB93B4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00438 80AB93B8 03E00008 */ jr $ra
/* 0043C 80AB93BC 00000000 */ nop

View file

@ -1,90 +0,0 @@
.late_rodata
glabel jtbl_80AB9B1C
.word L80AB947C
.word L80AB94A0
.word L80AB9488
.word L80AB9494
.word L80AB94A0
.word L80AB9494
.word L80AB9494
.word L80AB94A0
.word 0x00000000
.text
glabel func_80AB93C0
/* 00440 80AB93C0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00444 80AB93C4 AFB00028 */ sw $s0, 0x0028($sp)
/* 00448 80AB93C8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0044C 80AB93CC AFBF002C */ sw $ra, 0x002C($sp)
/* 00450 80AB93D0 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 00454 80AB93D4 AFA50034 */ sw $a1, 0x0034($sp)
/* 00458 80AB93D8 0C028800 */ jal SkelAnime_GetFrameCount
/* 0045C 80AB93DC 24849C78 */ addiu $a0, $a0, 0x9C78 ## $a0 = 06009C78
/* 00460 80AB93E0 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00464 80AB93E4 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00468 80AB93E8 44814000 */ mtc1 $at, $f8 ## $f8 = -10.00
/* 0046C 80AB93EC 468021A0 */ cvt.s.w $f6, $f4
/* 00470 80AB93F0 3C050601 */ lui $a1, 0x0601 ## $a1 = 06010000
/* 00474 80AB93F4 24A59C78 */ addiu $a1, $a1, 0x9C78 ## $a1 = 06009C78
/* 00478 80AB93F8 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 0047C 80AB93FC 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00480 80AB9400 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 00484 80AB9404 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00488 80AB9408 AFA00014 */ sw $zero, 0x0014($sp)
/* 0048C 80AB940C 0C029468 */ jal SkelAnime_ChangeAnim
/* 00490 80AB9410 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00494 80AB9414 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
/* 00498 80AB9418 24187000 */ addiu $t8, $zero, 0x7000 ## $t8 = 00007000
/* 0049C 80AB941C A618010E */ sh $t8, 0x010E($s0) ## 0000010E
/* 004A0 80AB9420 35CF0001 */ ori $t7, $t6, 0x0001 ## $t7 = 00000001
/* 004A4 80AB9424 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
/* 004A8 80AB9428 3C198016 */ lui $t9, %hi(gSaveContext+0xee4)
/* 004AC 80AB942C 9739F544 */ lhu $t9, %lo(gSaveContext+0xee4)($t9)
/* 004B0 80AB9430 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 004B4 80AB9434 11000006 */ beq $t0, $zero, .L80AB9450
/* 004B8 80AB9438 00000000 */ nop
/* 004BC 80AB943C 8609027A */ lh $t1, 0x027A($s0) ## 0000027A
/* 004C0 80AB9440 240A70EA */ addiu $t2, $zero, 0x70EA ## $t2 = 000070EA
/* 004C4 80AB9444 15200002 */ bne $t1, $zero, .L80AB9450
/* 004C8 80AB9448 00000000 */ nop
/* 004CC 80AB944C A60A010E */ sh $t2, 0x010E($s0) ## 0000010E
.L80AB9450:
/* 004D0 80AB9450 0C023C20 */ jal func_8008F080
/* 004D4 80AB9454 8FA40034 */ lw $a0, 0x0034($sp)
/* 004D8 80AB9458 244BFFFF */ addiu $t3, $v0, 0xFFFF ## $t3 = FFFFFFFF
/* 004DC 80AB945C 2D610008 */ sltiu $at, $t3, 0x0008
/* 004E0 80AB9460 10200011 */ beq $at, $zero, .L80AB94A8
/* 004E4 80AB9464 000B5880 */ sll $t3, $t3, 2
/* 004E8 80AB9468 3C0180AC */ lui $at, %hi(jtbl_80AB9B1C) ## $at = 80AC0000
/* 004EC 80AB946C 002B0821 */ addu $at, $at, $t3
/* 004F0 80AB9470 8C2B9B1C */ lw $t3, %lo(jtbl_80AB9B1C)($at)
/* 004F4 80AB9474 01600008 */ jr $t3
/* 004F8 80AB9478 00000000 */ nop
glabel L80AB947C
/* 004FC 80AB947C 240C7118 */ addiu $t4, $zero, 0x7118 ## $t4 = 00007118
/* 00500 80AB9480 10000009 */ beq $zero, $zero, .L80AB94A8
/* 00504 80AB9484 A60C010E */ sh $t4, 0x010E($s0) ## 0000010E
glabel L80AB9488
/* 00508 80AB9488 240D7119 */ addiu $t5, $zero, 0x7119 ## $t5 = 00007119
/* 0050C 80AB948C 10000006 */ beq $zero, $zero, .L80AB94A8
/* 00510 80AB9490 A60D010E */ sh $t5, 0x010E($s0) ## 0000010E
glabel L80AB9494
/* 00514 80AB9494 240E711A */ addiu $t6, $zero, 0x711A ## $t6 = 0000711A
/* 00518 80AB9498 10000003 */ beq $zero, $zero, .L80AB94A8
/* 0051C 80AB949C A60E010E */ sh $t6, 0x010E($s0) ## 0000010E
glabel L80AB94A0
/* 00520 80AB94A0 240F711B */ addiu $t7, $zero, 0x711B ## $t7 = 0000711B
/* 00524 80AB94A4 A60F010E */ sh $t7, 0x010E($s0) ## 0000010E
.L80AB94A8:
/* 00528 80AB94A8 3C1980AC */ lui $t9, %hi(func_80AB94D0) ## $t9 = 80AC0000
/* 0052C 80AB94AC 24180006 */ addiu $t8, $zero, 0x0006 ## $t8 = 00000006
/* 00530 80AB94B0 273994D0 */ addiu $t9, $t9, %lo(func_80AB94D0) ## $t9 = 80AB94D0
/* 00534 80AB94B4 A6180270 */ sh $t8, 0x0270($s0) ## 00000270
/* 00538 80AB94B8 AE19025C */ sw $t9, 0x025C($s0) ## 0000025C
/* 0053C 80AB94BC 8FBF002C */ lw $ra, 0x002C($sp)
/* 00540 80AB94C0 8FB00028 */ lw $s0, 0x0028($sp)
/* 00544 80AB94C4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00548 80AB94C8 03E00008 */ jr $ra
/* 0054C 80AB94CC 00000000 */ nop

View file

@ -1,71 +0,0 @@
glabel func_80AB94D0
/* 00550 80AB94D0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00554 80AB94D4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00558 80AB94D8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0055C 80AB94DC AFBF001C */ sw $ra, 0x001C($sp)
/* 00560 80AB94E0 AFA5002C */ sw $a1, 0x002C($sp)
/* 00564 80AB94E4 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00568 80AB94E8 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 0056C 80AB94EC 8FA4002C */ lw $a0, 0x002C($sp)
/* 00570 80AB94F0 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8
/* 00574 80AB94F4 0C042F6F */ jal func_8010BDBC
/* 00578 80AB94F8 AFA40024 */ sw $a0, 0x0024($sp)
/* 0057C 80AB94FC 10400003 */ beq $v0, $zero, .L80AB950C
/* 00580 80AB9500 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 00584 80AB9504 8E0E0284 */ lw $t6, 0x0284($s0) ## 00000284
/* 00588 80AB9508 A5C002E8 */ sh $zero, 0x02E8($t6) ## 000002E8
.L80AB950C:
/* 0058C 80AB950C 3C053F4C */ lui $a1, 0x3F4C ## $a1 = 3F4C0000
/* 00590 80AB9510 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
/* 00594 80AB9514 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3E4CCCCD
/* 00598 80AB9518 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 0059C 80AB951C 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3F4CCCCD
/* 005A0 80AB9520 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005A4 80AB9524 0C00BC65 */ jal func_8002F194
/* 005A8 80AB9528 8FA5002C */ lw $a1, 0x002C($sp)
/* 005AC 80AB952C 50400009 */ beql $v0, $zero, .L80AB9554
/* 005B0 80AB9530 8619026C */ lh $t9, 0x026C($s0) ## 0000026C
/* 005B4 80AB9534 960F010E */ lhu $t7, 0x010E($s0) ## 0000010E
/* 005B8 80AB9538 240170EA */ addiu $at, $zero, 0x70EA ## $at = 000070EA
/* 005BC 80AB953C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 005C0 80AB9540 55E1001C */ bnel $t7, $at, .L80AB95B4
/* 005C4 80AB9544 8FBF001C */ lw $ra, 0x001C($sp)
/* 005C8 80AB9548 10000019 */ beq $zero, $zero, .L80AB95B0
/* 005CC 80AB954C A618027A */ sh $t8, 0x027A($s0) ## 0000027A
/* 005D0 80AB9550 8619026C */ lh $t9, 0x026C($s0) ## 0000026C
.L80AB9554:
/* 005D4 80AB9554 57200013 */ bnel $t9, $zero, .L80AB95A4
/* 005D8 80AB9558 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005DC 80AB955C 0C042F6F */ jal func_8010BDBC
/* 005E0 80AB9560 8FA40024 */ lw $a0, 0x0024($sp)
/* 005E4 80AB9564 1440000E */ bne $v0, $zero, .L80AB95A0
/* 005E8 80AB9568 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 005EC 80AB956C 44816000 */ mtc1 $at, $f12 ## $f12 = 100.00
/* 005F0 80AB9570 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 005F4 80AB9574 00000000 */ nop
/* 005F8 80AB9578 3C01437A */ lui $at, 0x437A ## $at = 437A0000
/* 005FC 80AB957C 44812000 */ mtc1 $at, $f4 ## $f4 = 250.00
/* 00600 80AB9580 3C0A80AC */ lui $t2, %hi(func_80AB918C) ## $t2 = 80AC0000
/* 00604 80AB9584 254A918C */ addiu $t2, $t2, %lo(func_80AB918C) ## $t2 = 80AB918C
/* 00608 80AB9588 46040180 */ add.s $f6, $f0, $f4
/* 0060C 80AB958C AE0A025C */ sw $t2, 0x025C($s0) ## 0000025C
/* 00610 80AB9590 4600320D */ trunc.w.s $f8, $f6
/* 00614 80AB9594 44094000 */ mfc1 $t1, $f8
/* 00618 80AB9598 10000005 */ beq $zero, $zero, .L80AB95B0
/* 0061C 80AB959C A609026C */ sh $t1, 0x026C($s0) ## 0000026C
.L80AB95A0:
/* 00620 80AB95A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AB95A4:
/* 00624 80AB95A4 8FA5002C */ lw $a1, 0x002C($sp)
/* 00628 80AB95A8 0C00BCB3 */ jal func_8002F2CC
/* 0062C 80AB95AC 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000
.L80AB95B0:
/* 00630 80AB95B0 8FBF001C */ lw $ra, 0x001C($sp)
.L80AB95B4:
/* 00634 80AB95B4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00638 80AB95B8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 0063C 80AB95BC 03E00008 */ jr $ra
/* 00640 80AB95C0 00000000 */ nop

View file

@ -1,28 +0,0 @@
glabel func_80AB97E4
/* 00864 80AB97E4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00868 80AB97E8 AFA40000 */ sw $a0, 0x0000($sp)
/* 0086C 80AB97EC AFA60008 */ sw $a2, 0x0008($sp)
/* 00870 80AB97F0 14A10007 */ bne $a1, $at, .L80AB9810
/* 00874 80AB97F4 AFA7000C */ sw $a3, 0x000C($sp)
/* 00878 80AB97F8 8FA20014 */ lw $v0, 0x0014($sp)
/* 0087C 80AB97FC 8FA30010 */ lw $v1, 0x0010($sp)
/* 00880 80AB9800 844F0268 */ lh $t7, 0x0268($v0) ## 00000268
/* 00884 80AB9804 846E0000 */ lh $t6, 0x0000($v1) ## 00000000
/* 00888 80AB9808 01CFC021 */ addu $t8, $t6, $t7
/* 0088C 80AB980C A4780000 */ sh $t8, 0x0000($v1) ## 00000000
.L80AB9810:
/* 00890 80AB9810 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00894 80AB9814 8FA20014 */ lw $v0, 0x0014($sp)
/* 00898 80AB9818 14A10009 */ bne $a1, $at, .L80AB9840
/* 0089C 80AB981C 8FA30010 */ lw $v1, 0x0010($sp)
/* 008A0 80AB9820 84790000 */ lh $t9, 0x0000($v1) ## 00000000
/* 008A4 80AB9824 84480262 */ lh $t0, 0x0262($v0) ## 00000262
/* 008A8 80AB9828 846A0004 */ lh $t2, 0x0004($v1) ## 00000004
/* 008AC 80AB982C 03284821 */ addu $t1, $t9, $t0
/* 008B0 80AB9830 A4690000 */ sh $t1, 0x0000($v1) ## 00000000
/* 008B4 80AB9834 844B0264 */ lh $t3, 0x0264($v0) ## 00000264
/* 008B8 80AB9838 014B6021 */ addu $t4, $t2, $t3
/* 008BC 80AB983C A46C0004 */ sh $t4, 0x0004($v1) ## 00000004
.L80AB9840:
/* 008C0 80AB9840 03E00008 */ jr $ra
/* 008C4 80AB9844 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000

View file

@ -1,24 +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 purpose registers
.section .data
.balign 16
glabel En_Niw_Girl_InitVars
.word 0x019A0400, 0x00000019, 0x016A0000, 0x000002FC
.word EnNiwGirl_Init
.word EnNiwGirl_Destroy
.word EnNiwGirl_Update
.word EnNiwGirl_Draw
glabel D_80AB99A0
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x000A001E, 0x00000000, 0x00000000
glabel D_80AB99CC
.word 0x3E4CCCCD, 0x3E4CCCCD, 0x3E4CCCCD
glabel D_80AB99D8
.word 0x06004178, 0x06004978, 0x06005178, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,13 +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 purpose registers
.section .rodata
.balign 16
glabel D_80AB9B40
.incbin "baserom/ovl_En_Niw_Girl", 0xBC0, 0x00000100

3
spec
View file

@ -2892,8 +2892,7 @@ endseg
beginseg
name "ovl_En_Niw_Girl"
include "build/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o"
include "build/data/overlays/actors/z_en_niw_girl.data.o"
include "build/data/overlays/actors/z_en_niw_girl.reloc.o"
include "build/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o"
endseg
beginseg

View file

@ -8,7 +8,11 @@ struct EnNiw;
typedef struct EnNiw {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x66C];
/* 0x014C */ char unk_14C[0x19C];
/* 0x02E8 */ s16 unk_2E8;
/* 0x02EA */ char unk_2EA[0x2];
/* 0x02EC */ s16 unk_2EC;
/* 0x02EE */ char unk_2EE[0x4CA];
} EnNiw; // size = 0x07B8
extern const ActorInit En_Niw_InitVars;

View file

@ -1,4 +1,11 @@
/*
* File: z_en_niw_girl.c
* Overlay: ovl_En_Niw_Girl
* Description: Girl that chases a cuckoo around in Hyrule Market and Kakariko Village
*/
#include "z_en_niw_girl.h"
#include <vt.h>
#define FLAGS 0x00000019
@ -9,7 +16,10 @@ void EnNiwGirl_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnNiwGirl_Update(Actor* thisx, GlobalContext* globalCtx);
void EnNiwGirl_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnNiwGirl_Talk(EnNiwGirl* this, GlobalContext* globalCtx);
void func_80AB94D0(EnNiwGirl* this, GlobalContext* globalCtx);
void func_80AB9210(EnNiwGirl* this, GlobalContext* globalCtx);
const ActorInit En_Niw_Girl_InitVars = {
ACTOR_EN_NIW_GIRL,
ACTORTYPE_NPC,
@ -21,21 +31,224 @@ const ActorInit En_Niw_Girl_InitVars = {
(ActorFunc)EnNiwGirl_Update,
(ActorFunc)EnNiwGirl_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/EnNiwGirl_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/EnNiwGirl_Destroy.s")
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
{ 10, 30, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/func_80AB918C.s")
static Vec3f sConstVec3f = { 0.2f, 0.2f, 0.2f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/func_80AB9210.s")
Gfx* D_80AB99D8[] = { 0x06004178, 0x06004978, 0x06005178 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/func_80AB93C0.s")
extern SkeletonHeader D_06009948;
extern AnimationHeader D_06000378;
extern AnimationHeader D_06009C78;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/func_80AB94D0.s")
void EnNiwGirl_Init(Actor* thisx, GlobalContext* globalCtx) {
EnNiwGirl* this = THIS;
s32 pad;
Vec3f vec1;
Vec3f vec2;
s32 pad2;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/EnNiwGirl_Update.s")
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06009948, &D_06000378, &this->limbDrawTable,
&this->transitionDrawTable, 17);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actor.unk_1F = 6;
if (this->actor.params < 0) {
this->actor.params = 0;
}
this->path = ((this->actor.params >> 8) & 0xFF);
this->actor.gravity = -3.0f;
Matrix_RotateY((this->actor.shape.rot.y / 32768.0f) * M_PI, MTXMODE_NEW);
vec2.x = vec2.y = vec2.z = 0.0f;
vec1.x = vec1.y = 0.0f;
vec1.z = 50.0;
Matrix_MultVec3f(&vec1, &vec2);
this->chasedEnNiw = (EnNiw*)Actor_SpawnAttached(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_NIW,
this->actor.posRot.pos.x + vec2.x, this->actor.posRot.pos.y + vec2.y,
this->actor.posRot.pos.z + vec2.z, 0, this->actor.posRot.rot.y, 0, 0xA);
if (this->chasedEnNiw != NULL) {
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ シツレイしちゃうわね!プンプン ☆☆☆☆☆ %d\n" VT_RST, this->actor.params);
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ きゃははははは、まてー ☆☆☆☆☆ %d\n" VT_RST, this->path);
osSyncPrintf("\n\n");
this->actor.colChkInfo.mass = 0xFF;
this->actionFunc = EnNiwGirl_Talk;
} else {
osSyncPrintf("\n\n");
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ なぜか、セットできむぅあせん ☆☆☆☆☆ %d\n" VT_RST, this->actor.params);
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ んんがくく ☆☆☆☆☆ %d\n" VT_RST, this->path);
osSyncPrintf("\n\n");
Actor_Kill(&this->actor);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/func_80AB97E4.s")
void EnNiwGirl_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Niw_Girl/EnNiwGirl_Draw.s")
void EnNiwGirl_Jump(EnNiwGirl* this, GlobalContext* globalCtx) {
f32 frameCount = SkelAnime_GetFrameCount(&D_06000378);
SkelAnime_ChangeAnim(&this->skelAnime, &D_06000378, 1.0f, 0.0f, frameCount, 0, -10.0f);
this->actor.flags &= ~1;
this->actionFunc = func_80AB9210;
}
void func_80AB9210(EnNiwGirl* this, GlobalContext* globalCtx) {
Path* path = &globalCtx->setupPathList[this->path];
f32 xDistBetween;
f32 zDistBetween;
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
Math_SmoothScaleMaxF(&this->actor.speedXZ, 3.0f, 0.2f, 0.4f);
// Find the X and Z distance between the girl and the cuckoo she is chasing
xDistBetween = this->chasedEnNiw->actor.posRot.pos.x - this->actor.posRot.pos.x;
zDistBetween = this->chasedEnNiw->actor.posRot.pos.z - this->actor.posRot.pos.z;
if (func_8010BDBC(&globalCtx->msgCtx) != 0) {
this->chasedEnNiw->unk_2E8 = 0;
}
if (sqrtf(SQ(xDistBetween) + SQ(zDistBetween)) < 70.0f) {
this->chasedEnNiw->unk_2E8 = (this->path + 1);
this->chasedEnNiw->unk_2EC = path->count;
} else if (sqrtf(SQ(xDistBetween) + SQ(zDistBetween)) > 150.0f) {
this->chasedEnNiw->unk_2E8 = 0;
}
// Change her angle so that she is always facing the cuckoo
Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, Math_atan2f(xDistBetween, zDistBetween) * 10430.378f, 3,
this->unk_27C, 0);
Math_SmoothScaleMaxF(&this->unk_27C, 5000.0f, 30.0f, 150.0f);
this->actor.posRot.rot.y = this->actor.shape.rot.y;
// Only allow Link to talk to her when she is playing the jumping animation
if ((this->jumpTimer == 0) || (func_8008F080(globalCtx) != 0)) {
this->jumpTimer = 60;
this->actionFunc = EnNiwGirl_Talk;
}
}
void EnNiwGirl_Talk(EnNiwGirl* this, GlobalContext* globalCtx) {
SkelAnime_ChangeAnim(&this->skelAnime, &D_06009C78, 1.0f, 0.0f, SkelAnime_GetFrameCount(&D_06009C78), 0, -10.0f);
this->actor.flags |= 1;
this->actor.textId = 0x7000;
if ((gSaveContext.eventChkInf[8] & 1) && (this->unk_27A == 0)) {
this->actor.textId = 0x70EA;
}
switch (func_8008F080(globalCtx)) {
case 1:
this->actor.textId = 0x7118;
break;
case 3:
this->actor.textId =
0x7119;
break;
case 4:
case 6:
case 7:
this->actor.textId = 0x711A;
break;
case 2:
case 5:
case 8:
this->actor.textId = 0x711B;
break;
}
this->unk_270 = 6;
this->actionFunc = func_80AB94D0;
}
void func_80AB94D0(EnNiwGirl* this, GlobalContext* globalCtx) {
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
if (func_8010BDBC(&globalCtx->msgCtx)) {
this->chasedEnNiw->unk_2E8 = 0;
}
Math_SmoothDownscaleMaxF(&this->actor.speedXZ, 0.8f, 0.2f);
if (func_8002F194(&this->actor, globalCtx)) {
if (this->actor.textId == 0x70EA) {
this->unk_27A = 1;
}
} else {
if ((this->jumpTimer == 0) && !func_8010BDBC(&globalCtx->msgCtx)) {
this->jumpTimer = Math_Rand_ZeroFloat(100.0f) + 250.0f;
this->actionFunc = EnNiwGirl_Jump;
} else {
func_8002F2CC(&this->actor, globalCtx, 100.0f);
}
}
}
void EnNiwGirl_Update(Actor* thisx, GlobalContext* globalCtx) {
EnNiwGirl* this = THIS;
EnNiwGirlActionFunc tempActionFunc;
Player* player = PLAYER;
Actor_SetScale(&this->actor, 0.013f);
this->unkUpTimer++;
tempActionFunc = func_80AB94D0;
if (this->unk_274 == 0) {
this->unk_272++;
if (this->unk_272 >= 3) {
this->unk_272 = 0;
this->unk_274 = (s16)Math_Rand_ZeroFloat(60.0f) + 20;
}
}
this->unk_280 = 30.0f;
Actor_SetHeight(&this->actor, 30.0f);
if (tempActionFunc == this->actionFunc) {
this->unk_2D4.unk_18 = player->actor.posRot.pos;
if (LINK_IS_CHILD) {
this->unk_2D4.unk_18.y = player->actor.posRot.pos.y - 10.0f;
}
func_80034A14(&this->actor, &this->unk_2D4, 2, 4);
this->unk_260 = this->unk_2D4.unk_08;
this->unk_266 = this->unk_2D4.unk_0E;
} else {
Math_SmoothScaleMaxMinS(&this->unk_266.y, 0, 5, 3000, 0);
Math_SmoothScaleMaxMinS(&this->unk_260.y, 0, 5, 3000, 0);
Math_SmoothScaleMaxMinS(&this->unk_260.z, 0, 5, 3000, 0);
}
if (this->unk_274 != 0) {
this->unk_274--;
}
if (this->jumpTimer != 0) {
this->jumpTimer--;
}
this->actionFunc(this, globalCtx);
Actor_MoveForward(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 100.0f, 100.0f, 200.0f, 0x1C);
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider);
}
s32 EnNiwGirlOverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot,
Actor* thisx) {
EnNiwGirl* this = THIS;
if (limbIndex == 3) {
rot->x += this->unk_266.y;
}
if (limbIndex == 4) {
rot->x += this->unk_260.y;
rot->z += this->unk_260.z;
}
return 0;
}
void EnNiwGirl_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnNiwGirl* this = THIS;
s32 pad;
Vec3f sp4C = sConstVec3f;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[4];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_niw_girl.c", 573);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(D_80AB99D8[this->unk_272]));
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
EnNiwGirlOverrideLimbDraw, 0, &this->actor);
func_80033C30(&this->actor.posRot.pos, &sp4C, 255, globalCtx);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_niw_girl.c", 592);
}

View file

@ -3,12 +3,33 @@
#include <ultra64.h>
#include <global.h>
#include "../ovl_En_Niw/z_en_niw.h"
struct EnNiwGirl;
typedef void (*EnNiwGirlActionFunc)(struct EnNiwGirl*, GlobalContext*);
typedef struct EnNiwGirl {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1B0];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ Vec3s limbDrawTable[17];
/* 0x01F6 */ Vec3s transitionDrawTable[17];
/* 0x025C */ EnNiwGirlActionFunc actionFunc;
/* 0x0260 */ Vec3s unk_260;
/* 0x0266 */ Vec3s unk_266;
/* 0x026C */ s16 jumpTimer; // Controls how many frames she jumps for and how long until she jumps again
/* 0x026E */ s16 unkUpTimer;
/* 0x0270 */ s16 unk_270;
/* 0x0272 */ s16 unk_272;
/* 0x0274 */ s16 unk_274;
/* 0x0276 */ s16 path;
/* 0x0278 */ s16 unk_278;
/* 0x027A */ s16 unk_27A;
/* 0x027C */ f32 unk_27C;
/* 0x0280 */ f32 unk_280;
/* 0x0284 */ EnNiw* chasedEnNiw;
/* 0x0288 */ ColliderCylinder collider;
/* 0x02D4 */ struct_80034A14_arg1 unk_2D4;
} EnNiwGirl; // size = 0x02FC
extern const ActorInit En_Niw_Girl_InitVars;

View file

@ -363,6 +363,11 @@ D_06000100 = 0x06000100;
D_040254B0 = 0x040254B0;
D_040244B0 = 0x040244B0;
// z_en_niw_girl
D_06009948 = 0x06009948;
D_06000378 = 0x06000378;
D_06009C78 = 0x06009C78;
// z_title
D_01002720 = 0x01002720;
D_01001800 = 0x01001800;