1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00
* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* chicks, man

* slight change

* formatted everything

* Update src/overlays/actors/ovl_En_Nwc/z_en_nwc.h

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
petrie911 2020-12-01 20:29:51 -06:00 committed by GitHub
parent 932174b6ee
commit 1bb13b8c70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 267 additions and 746 deletions

View File

@ -1,11 +0,0 @@
glabel EnNwc_Destroy
/* 008C8 80ABC9A8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008CC 80ABC9AC 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 008D0 80ABC9B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 008D4 80ABC9B4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 008D8 80ABC9B8 0C016F0A */ jal Collider_FreeJntSph
/* 008DC 80ABC9BC 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
/* 008E0 80ABC9C0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008E4 80ABC9C4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008E8 80ABC9C8 03E00008 */ jr $ra
/* 008EC 80ABC9CC 00000000 */ nop

View File

@ -1,11 +0,0 @@
glabel EnNwc_Draw
/* 00958 80ABCA38 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0095C 80ABCA3C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00960 80ABCA40 0C2AF118 */ jal func_80ABC460
/* 00964 80ABCA44 00000000 */ nop
/* 00968 80ABCA48 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0096C 80ABCA4C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00970 80ABCA50 03E00008 */ jr $ra
/* 00974 80ABCA54 00000000 */ nop
/* 00978 80ABCA58 00000000 */ nop
/* 0097C 80ABCA5C 00000000 */ nop

View File

@ -1,106 +0,0 @@
glabel EnNwc_Init
/* 0073C 80ABC81C 27BDFD60 */ addiu $sp, $sp, 0xFD60 ## $sp = FFFFFD60
/* 00740 80ABC820 AFB4003C */ sw $s4, 0x003C($sp)
/* 00744 80ABC824 3C1480AC */ lui $s4, %hi(D_80ABCAA4) ## $s4 = 80AC0000
/* 00748 80ABC828 2694CAA4 */ addiu $s4, $s4, %lo(D_80ABCAA4) ## $s4 = 80ABCAA4
/* 0074C 80ABC82C AFB50040 */ sw $s5, 0x0040($sp)
/* 00750 80ABC830 AFB30038 */ sw $s3, 0x0038($sp)
/* 00754 80ABC834 AFB20034 */ sw $s2, 0x0034($sp)
/* 00758 80ABC838 AFB10030 */ sw $s1, 0x0030($sp)
/* 0075C 80ABC83C 27A20058 */ addiu $v0, $sp, 0x0058 ## $v0 = FFFFFDB8
/* 00760 80ABC840 3C0380AC */ lui $v1, %hi(D_80ABCA80) ## $v1 = 80AC0000
/* 00764 80ABC844 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000
/* 00768 80ABC848 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 0076C 80ABC84C AFBF0044 */ sw $ra, 0x0044($sp)
/* 00770 80ABC850 AFB0002C */ sw $s0, 0x002C($sp)
/* 00774 80ABC854 F7B80020 */ sdc1 $f24, 0x0020($sp)
/* 00778 80ABC858 F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 0077C 80ABC85C F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 00780 80ABC860 0080A825 */ or $s5, $a0, $zero ## $s5 = 00000000
/* 00784 80ABC864 AE82000C */ sw $v0, 0x000C($s4) ## 80ABCAB0
/* 00788 80ABC868 2463CA80 */ addiu $v1, $v1, %lo(D_80ABCA80) ## $v1 = 80ABCA80
/* 0078C 80ABC86C 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
.L80ABC870:
/* 00790 80ABC870 0060C825 */ or $t9, $v1, $zero ## $t9 = 80ABCA80
/* 00794 80ABC874 00404025 */ or $t0, $v0, $zero ## $t0 = FFFFFDB8
/* 00798 80ABC878 24690024 */ addiu $t1, $v1, 0x0024 ## $t1 = 80ABCAA4
.L80ABC87C:
/* 0079C 80ABC87C 8F380000 */ lw $t8, 0x0000($t9) ## 80ABCA80
/* 007A0 80ABC880 2739000C */ addiu $t9, $t9, 0x000C ## $t9 = 80ABCA8C
/* 007A4 80ABC884 2508000C */ addiu $t0, $t0, 0x000C ## $t0 = FFFFFDC4
/* 007A8 80ABC888 AD18FFF4 */ sw $t8, -0x000C($t0) ## FFFFFDB8
/* 007AC 80ABC88C 8F2FFFF8 */ lw $t7, -0x0008($t9) ## 80ABCA84
/* 007B0 80ABC890 AD0FFFF8 */ sw $t7, -0x0008($t0) ## FFFFFDBC
/* 007B4 80ABC894 8F38FFFC */ lw $t8, -0x0004($t9) ## 80ABCA88
/* 007B8 80ABC898 1729FFF8 */ bne $t9, $t1, .L80ABC87C
/* 007BC 80ABC89C AD18FFFC */ sw $t8, -0x0004($t0) ## FFFFFDC0
/* 007C0 80ABC8A0 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 007C4 80ABC8A4 2A210010 */ slti $at, $s1, 0x0010
/* 007C8 80ABC8A8 1420FFF1 */ bne $at, $zero, .L80ABC870
/* 007CC 80ABC8AC 24420024 */ addiu $v0, $v0, 0x0024 ## $v0 = FFFFFDDC
/* 007D0 80ABC8B0 2650014C */ addiu $s0, $s2, 0x014C ## $s0 = 0000014C
/* 007D4 80ABC8B4 02002825 */ or $a1, $s0, $zero ## $a1 = 0000014C
/* 007D8 80ABC8B8 0C016EFE */ jal Collider_InitJntSph
/* 007DC 80ABC8BC 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 007E0 80ABC8C0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 007E4 80ABC8C4 02002825 */ or $a1, $s0, $zero ## $a1 = 0000014C
/* 007E8 80ABC8C8 02403025 */ or $a2, $s2, $zero ## $a2 = 00000000
/* 007EC 80ABC8CC 0C016F94 */ jal Collider_SetJntSph_Set3 ## ClObjJntSph_set3
/* 007F0 80ABC8D0 02803825 */ or $a3, $s4, $zero ## $a3 = 80ABCAA4
/* 007F4 80ABC8D4 240A0010 */ addiu $t2, $zero, 0x0010 ## $t2 = 00000010
/* 007F8 80ABC8D8 314B00FF */ andi $t3, $t2, 0x00FF ## $t3 = 00000010
/* 007FC 80ABC8DC A24A016C */ sb $t2, 0x016C($s2) ## 0000016C
/* 00800 80ABC8E0 26500170 */ addiu $s0, $s2, 0x0170 ## $s0 = 00000170
/* 00804 80ABC8E4 19600020 */ blez $t3, .L80ABC968
/* 00808 80ABC8E8 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 0080C 80ABC8EC 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00810 80ABC8F0 4481C000 */ mtc1 $at, $f24 ## $f24 = 20.00
/* 00814 80ABC8F4 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00818 80ABC8F8 4481B000 */ mtc1 $at, $f22 ## $f22 = 50.00
/* 0081C 80ABC8FC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00820 80ABC900 4481A000 */ mtc1 $at, $f20 ## $f20 = 100.00
/* 00824 80ABC904 24140005 */ addiu $s4, $zero, 0x0005 ## $s4 = 00000005
/* 00828 80ABC908 24130001 */ addiu $s3, $zero, 0x0001 ## $s3 = 00000001
.L80ABC90C:
/* 0082C 80ABC90C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00830 80ABC910 A2130000 */ sb $s3, 0x0000($s0) ## 00000170
/* 00834 80ABC914 46140102 */ mul.s $f4, $f0, $f20
/* 00838 80ABC918 C6480024 */ lwc1 $f8, 0x0024($s2) ## 00000024
/* 0083C 80ABC91C 46162181 */ sub.s $f6, $f4, $f22
/* 00840 80ABC920 46083280 */ add.s $f10, $f6, $f8
/* 00844 80ABC924 E60A0008 */ swc1 $f10, 0x0008($s0) ## 00000178
/* 00848 80ABC928 C6500028 */ lwc1 $f16, 0x0028($s2) ## 00000028
/* 0084C 80ABC92C 46188480 */ add.s $f18, $f16, $f24
/* 00850 80ABC930 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00854 80ABC934 E612000C */ swc1 $f18, 0x000C($s0) ## 0000017C
/* 00858 80ABC938 46140102 */ mul.s $f4, $f0, $f20
/* 0085C 80ABC93C C648002C */ lwc1 $f8, 0x002C($s2) ## 0000002C
/* 00860 80ABC940 A6140036 */ sh $s4, 0x0036($s0) ## 000001A6
/* 00864 80ABC944 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 00868 80ABC948 2610005C */ addiu $s0, $s0, 0x005C ## $s0 = 000001CC
/* 0086C 80ABC94C 46162181 */ sub.s $f6, $f4, $f22
/* 00870 80ABC950 46083280 */ add.s $f10, $f6, $f8
/* 00874 80ABC954 E60AFFB4 */ swc1 $f10, -0x004C($s0) ## 00000180
/* 00878 80ABC958 92AC016C */ lbu $t4, 0x016C($s5) ## 0000016C
/* 0087C 80ABC95C 022C082A */ slt $at, $s1, $t4
/* 00880 80ABC960 1420FFEA */ bne $at, $zero, .L80ABC90C
/* 00884 80ABC964 00000000 */ nop
.L80ABC968:
/* 00888 80ABC968 3C0580AC */ lui $a1, %hi(func_80ABC9D0) ## $a1 = 80AC0000
/* 0088C 80ABC96C 24A5C9D0 */ addiu $a1, $a1, %lo(func_80ABC9D0) ## $a1 = 80ABC9D0
/* 00890 80ABC970 0C2AF038 */ jal func_80ABC0E0
/* 00894 80ABC974 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 00898 80ABC978 8FBF0044 */ lw $ra, 0x0044($sp)
/* 0089C 80ABC97C D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 008A0 80ABC980 D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 008A4 80ABC984 D7B80020 */ ldc1 $f24, 0x0020($sp)
/* 008A8 80ABC988 8FB0002C */ lw $s0, 0x002C($sp)
/* 008AC 80ABC98C 8FB10030 */ lw $s1, 0x0030($sp)
/* 008B0 80ABC990 8FB20034 */ lw $s2, 0x0034($sp)
/* 008B4 80ABC994 8FB30038 */ lw $s3, 0x0038($sp)
/* 008B8 80ABC998 8FB4003C */ lw $s4, 0x003C($sp)
/* 008BC 80ABC99C 8FB50040 */ lw $s5, 0x0040($sp)
/* 008C0 80ABC9A0 03E00008 */ jr $ra
/* 008C4 80ABC9A4 27BD02A0 */ addiu $sp, $sp, 0x02A0 ## $sp = 00000000

View File

@ -1,20 +0,0 @@
glabel EnNwc_Update
/* 00910 80ABC9F0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00914 80ABC9F4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00918 80ABC9F8 AFA5001C */ sw $a1, 0x001C($sp)
/* 0091C 80ABC9FC AFA40018 */ sw $a0, 0x0018($sp)
/* 00920 80ABCA00 8C990730 */ lw $t9, 0x0730($a0) ## 00000730
/* 00924 80ABCA04 0320F809 */ jalr $ra, $t9
/* 00928 80ABCA08 00000000 */ nop
/* 0092C 80ABCA0C 8FA4001C */ lw $a0, 0x001C($sp)
/* 00930 80ABCA10 8FA70018 */ lw $a3, 0x0018($sp)
/* 00934 80ABCA14 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00938 80ABCA18 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 0093C 80ABCA1C 00812821 */ addu $a1, $a0, $at
/* 00940 80ABCA20 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00944 80ABCA24 24E6014C */ addiu $a2, $a3, 0x014C ## $a2 = 0000014C
/* 00948 80ABCA28 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0094C 80ABCA2C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00950 80ABCA30 03E00008 */ jr $ra
/* 00954 80ABCA34 00000000 */ nop

View File

@ -1,3 +0,0 @@
glabel func_80ABC0E0
/* 00000 80ABC0E0 03E00008 */ jr $ra
/* 00004 80ABC0E4 AC850730 */ sw $a1, 0x0730($a0) ## 00000730

View File

@ -1,5 +0,0 @@
glabel func_80ABC0E8
/* 00008 80ABC0E8 AFA40000 */ sw $a0, 0x0000($sp)
/* 0000C 80ABC0EC AFA50004 */ sw $a1, 0x0004($sp)
/* 00010 80ABC0F0 03E00008 */ jr $ra
/* 00014 80ABC0F4 AFA60008 */ sw $a2, 0x0008($sp)

View File

@ -1,66 +0,0 @@
glabel func_80ABC0F8
/* 00018 80ABC0F8 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 0001C 80ABC0FC AFBF002C */ sw $ra, 0x002C($sp)
/* 00020 80ABC100 AFB00028 */ sw $s0, 0x0028($sp)
/* 00024 80ABC104 AFA50054 */ sw $a1, 0x0054($sp)
/* 00028 80ABC108 908E0001 */ lbu $t6, 0x0001($a0) ## 00000001
/* 0002C 80ABC10C C4840008 */ lwc1 $f4, 0x0008($a0) ## 00000008
/* 00030 80ABC110 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00034 80ABC114 31CFFFFC */ andi $t7, $t6, 0xFFFC ## $t7 = 00000000
/* 00038 80ABC118 A08F0001 */ sb $t7, 0x0001($a0) ## 00000001
/* 0003C 80ABC11C E7A4003C */ swc1 $f4, 0x003C($sp)
/* 00040 80ABC120 C486000C */ lwc1 $f6, 0x000C($a0) ## 0000000C
/* 00044 80ABC124 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00048 80ABC128 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00
/* 0004C 80ABC12C E7A60040 */ swc1 $f6, 0x0040($sp)
/* 00050 80ABC130 C4880010 */ lwc1 $f8, 0x0010($a0) ## 00000010
/* 00054 80ABC134 8FA40054 */ lw $a0, 0x0054($sp)
/* 00058 80ABC138 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 0005C 80ABC13C 44818000 */ mtc1 $at, $f16 ## $f16 = 20.00
/* 00060 80ABC140 26180038 */ addiu $t8, $s0, 0x0038 ## $t8 = 00000038
/* 00064 80ABC144 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
/* 00068 80ABC148 AFA40034 */ sw $a0, 0x0034($sp)
/* 0006C 80ABC14C AFB80014 */ sw $t8, 0x0014($sp)
/* 00070 80ABC150 26060008 */ addiu $a2, $s0, 0x0008 ## $a2 = 00000008
/* 00074 80ABC154 2607001C */ addiu $a3, $s0, 0x001C ## $a3 = 0000001C
/* 00078 80ABC158 27A5003C */ addiu $a1, $sp, 0x003C ## $a1 = FFFFFFEC
/* 0007C 80ABC15C E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00080 80ABC160 E7A80044 */ swc1 $f8, 0x0044($sp)
/* 00084 80ABC164 0C00F519 */ jal func_8003D464
/* 00088 80ABC168 E7B00018 */ swc1 $f16, 0x0018($sp)
/* 0008C 80ABC16C 10400004 */ beq $v0, $zero, .L80ABC180
/* 00090 80ABC170 8FA40034 */ lw $a0, 0x0034($sp)
/* 00094 80ABC174 92190001 */ lbu $t9, 0x0001($s0) ## 00000001
/* 00098 80ABC178 37280002 */ ori $t0, $t9, 0x0002 ## $t0 = 00000002
/* 0009C 80ABC17C A2080001 */ sb $t0, 0x0001($s0) ## 00000001
.L80ABC180:
/* 000A0 80ABC180 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFFC
/* 000A4 80ABC184 27A60048 */ addiu $a2, $sp, 0x0048 ## $a2 = FFFFFFF8
/* 000A8 80ABC188 0C00F250 */ jal func_8003C940
/* 000AC 80ABC18C 27A7003C */ addiu $a3, $sp, 0x003C ## $a3 = FFFFFFEC
/* 000B0 80ABC190 C612000C */ lwc1 $f18, 0x000C($s0) ## 0000000C
/* 000B4 80ABC194 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 000B8 80ABC198 E6000004 */ swc1 $f0, 0x0004($s0) ## 00000004
/* 000BC 80ABC19C 46120081 */ sub.s $f2, $f0, $f18
/* 000C0 80ABC1A0 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 000C4 80ABC1A4 4602203E */ c.le.s $f4, $f2
/* 000C8 80ABC1A8 00000000 */ nop
/* 000CC 80ABC1AC 4502000D */ bc1fl .L80ABC1E4
/* 000D0 80ABC1B0 8FBF002C */ lw $ra, 0x002C($sp)
/* 000D4 80ABC1B4 44813000 */ mtc1 $at, $f6 ## $f6 = 40.00
/* 000D8 80ABC1B8 00000000 */ nop
/* 000DC 80ABC1BC 4606103C */ c.lt.s $f2, $f6
/* 000E0 80ABC1C0 00000000 */ nop
/* 000E4 80ABC1C4 45020007 */ bc1fl .L80ABC1E4
/* 000E8 80ABC1C8 8FBF002C */ lw $ra, 0x002C($sp)
/* 000EC 80ABC1CC 92090001 */ lbu $t1, 0x0001($s0) ## 00000001
/* 000F0 80ABC1D0 C6080004 */ lwc1 $f8, 0x0004($s0) ## 00000004
/* 000F4 80ABC1D4 352A0001 */ ori $t2, $t1, 0x0001 ## $t2 = 00000001
/* 000F8 80ABC1D8 A20A0001 */ sb $t2, 0x0001($s0) ## 00000001
/* 000FC 80ABC1DC E608000C */ swc1 $f8, 0x000C($s0) ## 0000000C
/* 00100 80ABC1E0 8FBF002C */ lw $ra, 0x002C($sp)
.L80ABC1E4:
/* 00104 80ABC1E4 8FB00028 */ lw $s0, 0x0028($sp)
/* 00108 80ABC1E8 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 0010C 80ABC1EC 03E00008 */ jr $ra
/* 00110 80ABC1F0 00000000 */ nop

View File

@ -1,34 +0,0 @@
.late_rodata
glabel D_80ABCB00
.float 0.1
.text
glabel func_80ABC1F4
/* 00114 80ABC1F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00118 80ABC1F8 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 0011C 80ABC1FC 44811000 */ mtc1 $at, $f2 ## $f2 = -10.00
/* 00120 80ABC200 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00124 80ABC204 AFA5001C */ sw $a1, 0x001C($sp)
/* 00128 80ABC208 3C0180AC */ lui $at, %hi(D_80ABCB00) ## $at = 80AC0000
/* 0012C 80ABC20C C426CB00 */ lwc1 $f6, %lo(D_80ABCB00)($at)
/* 00130 80ABC210 C484002C */ lwc1 $f4, 0x002C($a0) ## 0000002C
/* 00134 80ABC214 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
/* 00138 80ABC218 46062201 */ sub.s $f8, $f4, $f6
/* 0013C 80ABC21C E488002C */ swc1 $f8, 0x002C($a0) ## 0000002C
/* 00140 80ABC220 C480002C */ lwc1 $f0, 0x002C($a0) ## 0000002C
/* 00144 80ABC224 4602003C */ c.lt.s $f0, $f2
/* 00148 80ABC228 00000000 */ nop
/* 0014C 80ABC22C 45020004 */ bc1fl .L80ABC240
/* 00150 80ABC230 C48A000C */ lwc1 $f10, 0x000C($a0) ## 0000000C
/* 00154 80ABC234 E482002C */ swc1 $f2, 0x002C($a0) ## 0000002C
/* 00158 80ABC238 C480002C */ lwc1 $f0, 0x002C($a0) ## 0000002C
/* 0015C 80ABC23C C48A000C */ lwc1 $f10, 0x000C($a0) ## 0000000C
.L80ABC240:
/* 00160 80ABC240 46005400 */ add.s $f16, $f10, $f0
/* 00164 80ABC244 E490000C */ swc1 $f16, 0x000C($a0) ## 0000000C
/* 00168 80ABC248 0C2AF03E */ jal func_80ABC0F8
/* 0016C 80ABC24C AFA40018 */ sw $a0, 0x0018($sp)
/* 00170 80ABC250 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00174 80ABC254 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00178 80ABC258 03E00008 */ jr $ra
/* 0017C 80ABC25C 00000000 */ nop

View File

@ -1,140 +0,0 @@
.late_rodata
glabel D_80ABCB04
.word 0x47C34FF3
.text
glabel func_80ABC260
/* 00180 80ABC260 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 00184 80ABC264 3C0180AC */ lui $at, %hi(D_80ABCB04) ## $at = 80AC0000
/* 00188 80ABC268 C424CB04 */ lwc1 $f4, %lo(D_80ABCB04)($at)
/* 0018C 80ABC26C AFBF0054 */ sw $ra, 0x0054($sp)
/* 00190 80ABC270 AFB70050 */ sw $s7, 0x0050($sp)
/* 00194 80ABC274 AFB6004C */ sw $s6, 0x004C($sp)
/* 00198 80ABC278 AFB50048 */ sw $s5, 0x0048($sp)
/* 0019C 80ABC27C AFB40044 */ sw $s4, 0x0044($sp)
/* 001A0 80ABC280 AFB30040 */ sw $s3, 0x0040($sp)
/* 001A4 80ABC284 AFB2003C */ sw $s2, 0x003C($sp)
/* 001A8 80ABC288 AFB10038 */ sw $s1, 0x0038($sp)
/* 001AC 80ABC28C AFB00034 */ sw $s0, 0x0034($sp)
/* 001B0 80ABC290 F7BA0028 */ sdc1 $f26, 0x0028($sp)
/* 001B4 80ABC294 F7B80020 */ sdc1 $f24, 0x0020($sp)
/* 001B8 80ABC298 F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 001BC 80ABC29C F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 001C0 80ABC2A0 8C910168 */ lw $s1, 0x0168($a0) ## 00000168
/* 001C4 80ABC2A4 E7A40080 */ swc1 $f4, 0x0080($sp)
/* 001C8 80ABC2A8 908E016C */ lbu $t6, 0x016C($a0) ## 0000016C
/* 001CC 80ABC2AC 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000
/* 001D0 80ABC2B0 00A0B825 */ or $s7, $a1, $zero ## $s7 = 00000000
/* 001D4 80ABC2B4 24900170 */ addiu $s0, $a0, 0x0170 ## $s0 = 00000170
/* 001D8 80ABC2B8 19C0005A */ blez $t6, .L80ABC424
/* 001DC 80ABC2BC 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 001E0 80ABC2C0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 001E4 80ABC2C4 4481C000 */ mtc1 $at, $f24 ## $f24 = 100.00
/* 001E8 80ABC2C8 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 001EC 80ABC2CC 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 001F0 80ABC2D0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 001F4 80ABC2D4 3C1580AC */ lui $s5, %hi(D_80ABCAB4) ## $s5 = 80AC0000
/* 001F8 80ABC2D8 4481A000 */ mtc1 $at, $f20 ## $f20 = 1.00
/* 001FC 80ABC2DC 4480D000 */ mtc1 $zero, $f26 ## $f26 = 0.00
/* 00200 80ABC2E0 26B5CAB4 */ addiu $s5, $s5, %lo(D_80ABCAB4) ## $s5 = 80ABCAB4
/* 00204 80ABC2E4 27B6007C */ addiu $s6, $sp, 0x007C ## $s6 = FFFFFFEC
/* 00208 80ABC2E8 26120008 */ addiu $s2, $s0, 0x0008 ## $s2 = 00000178
.L80ABC2EC:
/* 0020C 80ABC2EC 02402825 */ or $a1, $s2, $zero ## $a1 = 00000178
/* 00210 80ABC2F0 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00214 80ABC2F4 2604001C */ addiu $a0, $s0, 0x001C ## $a0 = 0000018C
/* 00218 80ABC2F8 820F0000 */ lb $t7, 0x0000($s0) ## 00000170
/* 0021C 80ABC2FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000170
/* 00220 80ABC300 02802825 */ or $a1, $s4, $zero ## $a1 = 00000000
/* 00224 80ABC304 000FC080 */ sll $t8, $t7, 2
/* 00228 80ABC308 02B8C821 */ addu $t9, $s5, $t8
/* 0022C 80ABC30C 8F390000 */ lw $t9, 0x0000($t9) ## 00000000
/* 00230 80ABC310 02E03025 */ or $a2, $s7, $zero ## $a2 = 00000000
/* 00234 80ABC314 0320F809 */ jalr $ra, $t9
/* 00238 80ABC318 00000000 */ nop
/* 0023C 80ABC31C C6060008 */ lwc1 $f6, 0x0008($s0) ## 00000178
/* 00240 80ABC320 4600320D */ trunc.w.s $f8, $f6
/* 00244 80ABC324 44094000 */ mfc1 $t1, $f8
/* 00248 80ABC328 00000000 */ nop
/* 0024C 80ABC32C A6290030 */ sh $t1, 0x0030($s1) ## 00000030
/* 00250 80ABC330 C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000017C
/* 00254 80ABC334 4600510D */ trunc.w.s $f4, $f10
/* 00258 80ABC338 440B2000 */ mfc1 $t3, $f4
/* 0025C 80ABC33C 00000000 */ nop
/* 00260 80ABC340 A62B0032 */ sh $t3, 0x0032($s1) ## 00000032
/* 00264 80ABC344 C6060010 */ lwc1 $f6, 0x0010($s0) ## 00000180
/* 00268 80ABC348 4600320D */ trunc.w.s $f8, $f6
/* 0026C 80ABC34C 440D4000 */ mfc1 $t5, $f8
/* 00270 80ABC350 00000000 */ nop
/* 00274 80ABC354 A62D0034 */ sh $t5, 0x0034($s1) ## 00000034
/* 00278 80ABC358 C7A40080 */ lwc1 $f4, 0x0080($sp)
/* 0027C 80ABC35C C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000017C
/* 00280 80ABC360 C7A6007C */ lwc1 $f6, 0x007C($sp)
/* 00284 80ABC364 46045081 */ sub.s $f2, $f10, $f4
/* 00288 80ABC368 46001005 */ abs.s $f0, $f2
/* 0028C 80ABC36C 4616003C */ c.lt.s $f0, $f22
/* 00290 80ABC370 00000000 */ nop
/* 00294 80ABC374 4502001F */ bc1fl .L80ABC3F4
/* 00298 80ABC378 8E4F0000 */ lw $t7, 0x0000($s2) ## 00000178
/* 0029C 80ABC37C C6020008 */ lwc1 $f2, 0x0008($s0) ## 00000178
/* 002A0 80ABC380 C60C0010 */ lwc1 $f12, 0x0010($s0) ## 00000180
/* 002A4 80ABC384 C7A80084 */ lwc1 $f8, 0x0084($sp)
/* 002A8 80ABC388 46061381 */ sub.s $f14, $f2, $f6
/* 002AC 80ABC38C 46086401 */ sub.s $f16, $f12, $f8
/* 002B0 80ABC390 460E7282 */ mul.s $f10, $f14, $f14
/* 002B4 80ABC394 00000000 */ nop
/* 002B8 80ABC398 46108102 */ mul.s $f4, $f16, $f16
/* 002BC 80ABC39C 46045480 */ add.s $f18, $f10, $f4
/* 002C0 80ABC3A0 4618903C */ c.lt.s $f18, $f24
/* 002C4 80ABC3A4 00000000 */ nop
/* 002C8 80ABC3A8 45000011 */ bc1f .L80ABC3F0
/* 002CC 80ABC3AC 00000000 */ nop
/* 002D0 80ABC3B0 461A9032 */ c.eq.s $f18, $f26
/* 002D4 80ABC3B4 00000000 */ nop
/* 002D8 80ABC3B8 4503000A */ bc1tl .L80ABC3E4
/* 002DC 80ABC3BC 46141180 */ add.s $f6, $f2, $f20
/* 002E0 80ABC3C0 46009004 */ sqrt.s $f0, $f18
/* 002E4 80ABC3C4 46007183 */ div.s $f6, $f14, $f0
/* 002E8 80ABC3C8 46008283 */ div.s $f10, $f16, $f0
/* 002EC 80ABC3CC 46061200 */ add.s $f8, $f2, $f6
/* 002F0 80ABC3D0 E6080008 */ swc1 $f8, 0x0008($s0) ## 00000178
/* 002F4 80ABC3D4 460A6100 */ add.s $f4, $f12, $f10
/* 002F8 80ABC3D8 10000005 */ beq $zero, $zero, .L80ABC3F0
/* 002FC 80ABC3DC E6040010 */ swc1 $f4, 0x0010($s0) ## 00000180
/* 00300 80ABC3E0 46141180 */ add.s $f6, $f2, $f20
.L80ABC3E4:
/* 00304 80ABC3E4 46146200 */ add.s $f8, $f12, $f20
/* 00308 80ABC3E8 E6060008 */ swc1 $f6, 0x0008($s0) ## 00000178
/* 0030C 80ABC3EC E6080010 */ swc1 $f8, 0x0010($s0) ## 00000180
.L80ABC3F0:
/* 00310 80ABC3F0 8E4F0000 */ lw $t7, 0x0000($s2) ## 00000178
.L80ABC3F4:
/* 00314 80ABC3F4 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 00318 80ABC3F8 2610005C */ addiu $s0, $s0, 0x005C ## $s0 = 000001CC
/* 0031C 80ABC3FC AECF0000 */ sw $t7, 0x0000($s6) ## FFFFFFEC
/* 00320 80ABC400 8E4E0004 */ lw $t6, 0x0004($s2) ## 0000017C
/* 00324 80ABC404 26310040 */ addiu $s1, $s1, 0x0040 ## $s1 = 00000040
/* 00328 80ABC408 AECE0004 */ sw $t6, 0x0004($s6) ## FFFFFFF0
/* 0032C 80ABC40C 8E4F0008 */ lw $t7, 0x0008($s2) ## 00000180
/* 00330 80ABC410 AECF0008 */ sw $t7, 0x0008($s6) ## FFFFFFF4
/* 00334 80ABC414 9298016C */ lbu $t8, 0x016C($s4) ## 0000016C
/* 00338 80ABC418 0278082A */ slt $at, $s3, $t8
/* 0033C 80ABC41C 5420FFB3 */ bnel $at, $zero, .L80ABC2EC
/* 00340 80ABC420 26120008 */ addiu $s2, $s0, 0x0008 ## $s2 = 000001D4
.L80ABC424:
/* 00344 80ABC424 8FBF0054 */ lw $ra, 0x0054($sp)
/* 00348 80ABC428 D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 0034C 80ABC42C D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 00350 80ABC430 D7B80020 */ ldc1 $f24, 0x0020($sp)
/* 00354 80ABC434 D7BA0028 */ ldc1 $f26, 0x0028($sp)
/* 00358 80ABC438 8FB00034 */ lw $s0, 0x0034($sp)
/* 0035C 80ABC43C 8FB10038 */ lw $s1, 0x0038($sp)
/* 00360 80ABC440 8FB2003C */ lw $s2, 0x003C($sp)
/* 00364 80ABC444 8FB30040 */ lw $s3, 0x0040($sp)
/* 00368 80ABC448 8FB40044 */ lw $s4, 0x0044($sp)
/* 0036C 80ABC44C 8FB50048 */ lw $s5, 0x0048($sp)
/* 00370 80ABC450 8FB6004C */ lw $s6, 0x004C($sp)
/* 00374 80ABC454 8FB70050 */ lw $s7, 0x0050($sp)
/* 00378 80ABC458 03E00008 */ jr $ra
/* 0037C 80ABC45C 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View File

@ -1,272 +0,0 @@
.rdata
glabel D_80ABCAC0
.asciz "../z_en_nwc.c"
.balign 4
glabel D_80ABCAD0
.asciz "../z_en_nwc.c"
.balign 4
glabel D_80ABCAE0
.asciz "../z_en_nwc.c"
.balign 4
glabel D_80ABCAF0
.asciz "../z_en_nwc.c"
.balign 4
.late_rodata
glabel D_80ABCB08
.float 0.01
glabel D_80ABCB0C
.float 9.58738019108e-05
.text
glabel func_80ABC460
/* 00380 80ABC460 27BDFF00 */ addiu $sp, $sp, 0xFF00 ## $sp = FFFFFF00
/* 00384 80ABC464 AFBF004C */ sw $ra, 0x004C($sp)
/* 00388 80ABC468 AFBE0048 */ sw $s8, 0x0048($sp)
/* 0038C 80ABC46C AFB70044 */ sw $s7, 0x0044($sp)
/* 00390 80ABC470 AFB60040 */ sw $s6, 0x0040($sp)
/* 00394 80ABC474 AFB5003C */ sw $s5, 0x003C($sp)
/* 00398 80ABC478 AFB40038 */ sw $s4, 0x0038($sp)
/* 0039C 80ABC47C AFB30034 */ sw $s3, 0x0034($sp)
/* 003A0 80ABC480 AFB20030 */ sw $s2, 0x0030($sp)
/* 003A4 80ABC484 AFB1002C */ sw $s1, 0x002C($sp)
/* 003A8 80ABC488 AFB00028 */ sw $s0, 0x0028($sp)
/* 003AC 80ABC48C F7B40020 */ sdc1 $f20, 0x0020($sp)
/* 003B0 80ABC490 AFA40100 */ sw $a0, 0x0100($sp)
/* 003B4 80ABC494 AFA50104 */ sw $a1, 0x0104($sp)
/* 003B8 80ABC498 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 003BC 80ABC49C 3C0680AC */ lui $a2, %hi(D_80ABCAC0) ## $a2 = 80AC0000
/* 003C0 80ABC4A0 24C6CAC0 */ addiu $a2, $a2, %lo(D_80ABCAC0) ## $a2 = 80ABCAC0
/* 003C4 80ABC4A4 27A40098 */ addiu $a0, $sp, 0x0098 ## $a0 = FFFFFF98
/* 003C8 80ABC4A8 2407013C */ addiu $a3, $zero, 0x013C ## $a3 = 0000013C
/* 003CC 80ABC4AC 0C031AB1 */ jal Graph_OpenDisps
/* 003D0 80ABC4B0 AFA500A8 */ sw $a1, 0x00A8($sp)
/* 003D4 80ABC4B4 0C024F20 */ jal func_80093C80
/* 003D8 80ABC4B8 8FA40104 */ lw $a0, 0x0104($sp)
/* 003DC 80ABC4BC 8FB80100 */ lw $t8, 0x0100($sp)
/* 003E0 80ABC4C0 8FAF00A8 */ lw $t7, 0x00A8($sp)
/* 003E4 80ABC4C4 3C0A0600 */ lui $t2, 0x0600 ## $t2 = 06000000
/* 003E8 80ABC4C8 9305016C */ lbu $a1, 0x016C($t8) ## 0000016C
/* 003EC 80ABC4CC 8DF002D0 */ lw $s0, 0x02D0($t7) ## 000002D0
/* 003F0 80ABC4D0 254A0840 */ addiu $t2, $t2, 0x0840 ## $t2 = 06000840
/* 003F4 80ABC4D4 0005C880 */ sll $t9, $a1, 2
/* 003F8 80ABC4D8 0325C823 */ subu $t9, $t9, $a1
/* 003FC 80ABC4DC 0019C8C0 */ sll $t9, $t9, 3
/* 00400 80ABC4E0 02001025 */ or $v0, $s0, $zero ## $v0 = 00000000
/* 00404 80ABC4E4 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 00408 80ABC4E8 03309021 */ addu $s2, $t9, $s0
/* 0040C 80ABC4EC 26520008 */ addiu $s2, $s2, 0x0008 ## $s2 = 00000008
/* 00410 80ABC4F0 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00414 80ABC4F4 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 00418 80ABC4F8 02401025 */ or $v0, $s2, $zero ## $v0 = 00000008
/* 0041C 80ABC4FC 3C0C0600 */ lui $t4, 0x0600 ## $t4 = 06000000
/* 00420 80ABC500 00054100 */ sll $t0, $a1, 4
/* 00424 80ABC504 01129821 */ addu $s3, $t0, $s2
/* 00428 80ABC508 258C0BF0 */ addiu $t4, $t4, 0x0BF0 ## $t4 = 06000BF0
/* 0042C 80ABC50C 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 00430 80ABC510 26730008 */ addiu $s3, $s3, 0x0008 ## $s3 = 00000008
/* 00434 80ABC514 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000008
/* 00438 80ABC518 AC4C0004 */ sw $t4, 0x0004($v0) ## 0000000C
/* 0043C 80ABC51C 02601025 */ or $v0, $s3, $zero ## $v0 = 00000008
/* 00440 80ABC520 3C0E0600 */ lui $t6, 0x0600 ## $t6 = 06000000
/* 00444 80ABC524 25CE0C88 */ addiu $t6, $t6, 0x0C88 ## $t6 = 06000C88
/* 00448 80ABC528 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 0044C 80ABC52C AC4D0000 */ sw $t5, 0x0000($v0) ## 00000008
/* 00450 80ABC530 AC4E0004 */ sw $t6, 0x0004($v0) ## 0000000C
/* 00454 80ABC534 8FAF0100 */ lw $t7, 0x0100($sp)
/* 00458 80ABC538 26520008 */ addiu $s2, $s2, 0x0008 ## $s2 = 00000010
/* 0045C 80ABC53C 26730008 */ addiu $s3, $s3, 0x0008 ## $s3 = 00000010
/* 00460 80ABC540 25F10170 */ addiu $s1, $t7, 0x0170 ## $s1 = 00000170
/* 00464 80ABC544 AFB10058 */ sw $s1, 0x0058($sp)
/* 00468 80ABC548 91E5016C */ lbu $a1, 0x016C($t7) ## 0000016C
/* 0046C 80ABC54C 0000A825 */ or $s5, $zero, $zero ## $s5 = 00000000
/* 00470 80ABC550 3C0180AC */ lui $at, %hi(D_80ABCB08) ## $at = 80AC0000
/* 00474 80ABC554 18A0004E */ blez $a1, .L80ABC690
/* 00478 80ABC558 26100008 */ addiu $s0, $s0, 0x0008 ## $s0 = 00000008
/* 0047C 80ABC55C 3C1EDA38 */ lui $s8, 0xDA38 ## $s8 = DA380000
/* 00480 80ABC560 37DE0003 */ ori $s8, $s8, 0x0003 ## $s8 = DA380003
/* 00484 80ABC564 C434CB08 */ lwc1 $f20, %lo(D_80ABCB08)($at)
.L80ABC568:
/* 00488 80ABC568 82390000 */ lb $t9, 0x0000($s1) ## 00000170
/* 0048C 80ABC56C 3C140600 */ lui $s4, 0x0600 ## $s4 = 06000000
/* 00490 80ABC570 269408B0 */ addiu $s4, $s4, 0x08B0 ## $s4 = 060008B0
/* 00494 80ABC574 13200040 */ beq $t9, $zero, .L80ABC678
/* 00498 80ABC578 26270030 */ addiu $a3, $s1, 0x0030 ## $a3 = 000001A0
/* 0049C 80ABC57C 96280036 */ lhu $t0, 0x0036($s1) ## 000001A6
/* 004A0 80ABC580 C62C0008 */ lwc1 $f12, 0x0008($s1) ## 00000178
/* 004A4 80ABC584 C624000C */ lwc1 $f4, 0x000C($s1) ## 0000017C
/* 004A8 80ABC588 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00
/* 004AC 80ABC58C 3C160600 */ lui $s6, 0x0600 ## $s6 = 06000000
/* 004B0 80ABC590 05010005 */ bgez $t0, .L80ABC5A8
/* 004B4 80ABC594 46803220 */ cvt.s.w $f8, $f6
/* 004B8 80ABC598 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 004BC 80ABC59C 44815000 */ mtc1 $at, $f10 ## $f10 = 4294967296.00
/* 004C0 80ABC5A0 00000000 */ nop
/* 004C4 80ABC5A4 460A4200 */ add.s $f8, $f8, $f10
.L80ABC5A8:
/* 004C8 80ABC5A8 3C170600 */ lui $s7, 0x0600 ## $s7 = 06000000
/* 004CC 80ABC5AC 26F70CE0 */ addiu $s7, $s7, 0x0CE0 ## $s7 = 06000CE0
/* 004D0 80ABC5B0 46082380 */ add.s $f14, $f4, $f8
/* 004D4 80ABC5B4 8E260010 */ lw $a2, 0x0010($s1) ## 00000180
/* 004D8 80ABC5B8 0C0345A5 */ jal func_800D1694
/* 004DC 80ABC5BC 26D60C68 */ addiu $s6, $s6, 0x0C68 ## $s6 = 06000C68
/* 004E0 80ABC5C0 4406A000 */ mfc1 $a2, $f20
/* 004E4 80ABC5C4 4600A306 */ mov.s $f12, $f20
/* 004E8 80ABC5C8 4600A386 */ mov.s $f14, $f20
/* 004EC 80ABC5CC 0C0342A3 */ jal Matrix_Scale
/* 004F0 80ABC5D0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 004F4 80ABC5D4 8FA90104 */ lw $t1, 0x0104($sp)
/* 004F8 80ABC5D8 3C0580AC */ lui $a1, %hi(D_80ABCAD0) ## $a1 = 80AC0000
/* 004FC 80ABC5DC 24A5CAD0 */ addiu $a1, $a1, %lo(D_80ABCAD0) ## $a1 = 80ABCAD0
/* 00500 80ABC5E0 2406015A */ addiu $a2, $zero, 0x015A ## $a2 = 0000015A
/* 00504 80ABC5E4 0C0346A2 */ jal Matrix_NewMtx
/* 00508 80ABC5E8 8D240000 */ lw $a0, 0x0000($t1) ## 00000000
/* 0050C 80ABC5EC 02001825 */ or $v1, $s0, $zero ## $v1 = 00000008
/* 00510 80ABC5F0 3C0B0064 */ lui $t3, 0x0064 ## $t3 = 00640000
/* 00514 80ABC5F4 356BFFFF */ ori $t3, $t3, 0xFFFF ## $t3 = 0064FFFF
/* 00518 80ABC5F8 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
/* 0051C 80ABC5FC AC6A0000 */ sw $t2, 0x0000($v1) ## 00000008
/* 00520 80ABC600 AC6B0004 */ sw $t3, 0x0004($v1) ## 0000000C
/* 00524 80ABC604 26100008 */ addiu $s0, $s0, 0x0008 ## $s0 = 00000010
/* 00528 80ABC608 02001825 */ or $v1, $s0, $zero ## $v1 = 00000010
/* 0052C 80ABC60C AC7E0000 */ sw $s8, 0x0000($v1) ## 00000010
/* 00530 80ABC610 AC620004 */ sw $v0, 0x0004($v1) ## 00000014
/* 00534 80ABC614 26100008 */ addiu $s0, $s0, 0x0008 ## $s0 = 00000018
/* 00538 80ABC618 02001825 */ or $v1, $s0, $zero ## $v1 = 00000018
/* 0053C 80ABC61C 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000
/* 00540 80ABC620 AC640000 */ sw $a0, 0x0000($v1) ## 00000018
/* 00544 80ABC624 AC740004 */ sw $s4, 0x0004($v1) ## 0000001C
/* 00548 80ABC628 02401825 */ or $v1, $s2, $zero ## $v1 = 00000010
/* 0054C 80ABC62C AC7E0000 */ sw $s8, 0x0000($v1) ## 00000010
/* 00550 80ABC630 AC620004 */ sw $v0, 0x0004($v1) ## 00000014
/* 00554 80ABC634 26520008 */ addiu $s2, $s2, 0x0008 ## $s2 = 00000018
/* 00558 80ABC638 02401825 */ or $v1, $s2, $zero ## $v1 = 00000018
/* 0055C 80ABC63C AC640000 */ sw $a0, 0x0000($v1) ## 00000018
/* 00560 80ABC640 AC760004 */ sw $s6, 0x0004($v1) ## 0000001C
/* 00564 80ABC644 02601825 */ or $v1, $s3, $zero ## $v1 = 00000010
/* 00568 80ABC648 AC620004 */ sw $v0, 0x0004($v1) ## 00000014
/* 0056C 80ABC64C 26730008 */ addiu $s3, $s3, 0x0008 ## $s3 = 00000018
/* 00570 80ABC650 AC7E0000 */ sw $s8, 0x0000($v1) ## 00000010
/* 00574 80ABC654 02601025 */ or $v0, $s3, $zero ## $v0 = 00000018
/* 00578 80ABC658 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 0057C 80ABC65C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000018
/* 00580 80ABC660 AC570004 */ sw $s7, 0x0004($v0) ## 0000001C
/* 00584 80ABC664 8FAD0100 */ lw $t5, 0x0100($sp)
/* 00588 80ABC668 26100008 */ addiu $s0, $s0, 0x0008 ## $s0 = 00000020
/* 0058C 80ABC66C 26520008 */ addiu $s2, $s2, 0x0008 ## $s2 = 00000020
/* 00590 80ABC670 26730008 */ addiu $s3, $s3, 0x0008 ## $s3 = 00000020
/* 00594 80ABC674 91A5016C */ lbu $a1, 0x016C($t5) ## 0000016C
.L80ABC678:
/* 00598 80ABC678 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000001
/* 0059C 80ABC67C 02A5082A */ slt $at, $s5, $a1
/* 005A0 80ABC680 1420FFB9 */ bne $at, $zero, .L80ABC568
/* 005A4 80ABC684 2631005C */ addiu $s1, $s1, 0x005C ## $s1 = 000001CC
/* 005A8 80ABC688 8FB10058 */ lw $s1, 0x0058($sp)
/* 005AC 80ABC68C 0000A825 */ or $s5, $zero, $zero ## $s5 = 00000000
.L80ABC690:
/* 005B0 80ABC690 8FAE00A8 */ lw $t6, 0x00A8($sp)
/* 005B4 80ABC694 3C1EDA38 */ lui $s8, 0xDA38 ## $s8 = DA380000
/* 005B8 80ABC698 37DE0003 */ ori $s8, $s8, 0x0003 ## $s8 = DA380003
/* 005BC 80ABC69C ADD302D0 */ sw $s3, 0x02D0($t6) ## 000002D0
/* 005C0 80ABC6A0 8FB80104 */ lw $t8, 0x0104($sp)
/* 005C4 80ABC6A4 0C025011 */ jal func_80094044
/* 005C8 80ABC6A8 8F040000 */ lw $a0, 0x0000($t8) ## 00000000
/* 005CC 80ABC6AC 8FAF00A8 */ lw $t7, 0x00A8($sp)
/* 005D0 80ABC6B0 3C090600 */ lui $t1, 0x0600 ## $t1 = 06000000
/* 005D4 80ABC6B4 25290D10 */ addiu $t1, $t1, 0x0D10 ## $t1 = 06000D10
/* 005D8 80ABC6B8 8DE202D0 */ lw $v0, 0x02D0($t7) ## 000002D0
/* 005DC 80ABC6BC 3C08DE00 */ lui $t0, 0xDE00 ## $t0 = DE000000
/* 005E0 80ABC6C0 3C1480AC */ lui $s4, %hi(D_80ABCAE0) ## $s4 = 80AC0000
/* 005E4 80ABC6C4 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 005E8 80ABC6C8 ADF902D0 */ sw $t9, 0x02D0($t7) ## 000002D0
/* 005EC 80ABC6CC AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 005F0 80ABC6D0 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 005F4 80ABC6D4 8FAA0100 */ lw $t2, 0x0100($sp)
/* 005F8 80ABC6D8 2694CAE0 */ addiu $s4, $s4, %lo(D_80ABCAE0) ## $s4 = 80ABCAE0
/* 005FC 80ABC6DC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00600 80ABC6E0 9145016C */ lbu $a1, 0x016C($t2) ## 0000016C
/* 00604 80ABC6E4 58A0003A */ blezl $a1, .L80ABC7D0
/* 00608 80ABC6E8 8FA90104 */ lw $t1, 0x0104($sp)
/* 0060C 80ABC6EC 4481A000 */ mtc1 $at, $f20 ## $f20 = 1.00
/* 00610 80ABC6F0 27B300B0 */ addiu $s3, $sp, 0x00B0 ## $s3 = FFFFFFB0
.L80ABC6F4:
/* 00614 80ABC6F4 822B0000 */ lb $t3, 0x0000($s1) ## 000001CC
/* 00618 80ABC6F8 51600031 */ beql $t3, $zero, .L80ABC7C0
/* 0061C 80ABC6FC 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000001
/* 00620 80ABC700 8E240038 */ lw $a0, 0x0038($s1) ## 00000204
/* 00624 80ABC704 3C120600 */ lui $s2, 0x0600 ## $s2 = 06000000
/* 00628 80ABC708 26520D50 */ addiu $s2, $s2, 0x0D50 ## $s2 = 06000D50
/* 0062C 80ABC70C 5080002C */ beql $a0, $zero, .L80ABC7C0
/* 00630 80ABC710 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000002
/* 00634 80ABC714 8E250008 */ lw $a1, 0x0008($s1) ## 000001D4
/* 00638 80ABC718 8E260004 */ lw $a2, 0x0004($s1) ## 000001D0
/* 0063C 80ABC71C 8E270010 */ lw $a3, 0x0010($s1) ## 000001DC
/* 00640 80ABC720 0C00E28A */ jal func_80038A28
/* 00644 80ABC724 AFB30010 */ sw $s3, 0x0010($sp)
/* 00648 80ABC728 0C03423F */ jal Matrix_Put
/* 0064C 80ABC72C 02602025 */ or $a0, $s3, $zero ## $a0 = FFFFFFB0
/* 00650 80ABC730 862C0032 */ lh $t4, 0x0032($s1) ## 000001FE
/* 00654 80ABC734 3C0180AC */ lui $at, %hi(D_80ABCB0C) ## $at = 80AC0000
/* 00658 80ABC738 C426CB0C */ lwc1 $f6, %lo(D_80ABCB0C)($at)
/* 0065C 80ABC73C 448C8000 */ mtc1 $t4, $f16 ## $f16 = 0.00
/* 00660 80ABC740 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00664 80ABC744 468084A0 */ cvt.s.w $f18, $f16
/* 00668 80ABC748 46069302 */ mul.s $f12, $f18, $f6
/* 0066C 80ABC74C 0C034348 */ jal Matrix_RotateY
/* 00670 80ABC750 00000000 */ nop
/* 00674 80ABC754 4406A000 */ mfc1 $a2, $f20
/* 00678 80ABC758 4600A306 */ mov.s $f12, $f20
/* 0067C 80ABC75C 4600A386 */ mov.s $f14, $f20
/* 00680 80ABC760 0C0342A3 */ jal Matrix_Scale
/* 00684 80ABC764 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00688 80ABC768 8FA300A8 */ lw $v1, 0x00A8($sp)
/* 0068C 80ABC76C 02802825 */ or $a1, $s4, $zero ## $a1 = 80ABCAE0
/* 00690 80ABC770 24060184 */ addiu $a2, $zero, 0x0184 ## $a2 = 00000184
/* 00694 80ABC774 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 00698 80ABC778 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 0069C 80ABC77C AC6D02D0 */ sw $t5, 0x02D0($v1) ## 000002D0
/* 006A0 80ABC780 AC5E0000 */ sw $s8, 0x0000($v0) ## 00000000
/* 006A4 80ABC784 8FAE0104 */ lw $t6, 0x0104($sp)
/* 006A8 80ABC788 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 006AC 80ABC78C 0C0346A2 */ jal Matrix_NewMtx
/* 006B0 80ABC790 8DC40000 */ lw $a0, 0x0000($t6) ## 00000000
/* 006B4 80ABC794 AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 006B8 80ABC798 8FB800A8 */ lw $t8, 0x00A8($sp)
/* 006BC 80ABC79C 3C0FDE00 */ lui $t7, 0xDE00 ## $t7 = DE000000
/* 006C0 80ABC7A0 8F0202D0 */ lw $v0, 0x02D0($t8) ## 000002D0
/* 006C4 80ABC7A4 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 006C8 80ABC7A8 AF1902D0 */ sw $t9, 0x02D0($t8) ## 000002D0
/* 006CC 80ABC7AC AC520004 */ sw $s2, 0x0004($v0) ## 00000004
/* 006D0 80ABC7B0 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 006D4 80ABC7B4 8FA80100 */ lw $t0, 0x0100($sp)
/* 006D8 80ABC7B8 9105016C */ lbu $a1, 0x016C($t0) ## 0000016C
/* 006DC 80ABC7BC 26B50001 */ addiu $s5, $s5, 0x0001 ## $s5 = 00000003
.L80ABC7C0:
/* 006E0 80ABC7C0 02A5082A */ slt $at, $s5, $a1
/* 006E4 80ABC7C4 1420FFCB */ bne $at, $zero, .L80ABC6F4
/* 006E8 80ABC7C8 2631005C */ addiu $s1, $s1, 0x005C ## $s1 = 00000228
/* 006EC 80ABC7CC 8FA90104 */ lw $t1, 0x0104($sp)
.L80ABC7D0:
/* 006F0 80ABC7D0 3C0680AC */ lui $a2, %hi(D_80ABCAF0) ## $a2 = 80AC0000
/* 006F4 80ABC7D4 24C6CAF0 */ addiu $a2, $a2, %lo(D_80ABCAF0) ## $a2 = 80ABCAF0
/* 006F8 80ABC7D8 27A40098 */ addiu $a0, $sp, 0x0098 ## $a0 = FFFFFF98
/* 006FC 80ABC7DC 2407018B */ addiu $a3, $zero, 0x018B ## $a3 = 0000018B
/* 00700 80ABC7E0 0C031AD5 */ jal Graph_CloseDisps
/* 00704 80ABC7E4 8D250000 */ lw $a1, 0x0000($t1) ## 00000000
/* 00708 80ABC7E8 8FBF004C */ lw $ra, 0x004C($sp)
/* 0070C 80ABC7EC D7B40020 */ ldc1 $f20, 0x0020($sp)
/* 00710 80ABC7F0 8FB00028 */ lw $s0, 0x0028($sp)
/* 00714 80ABC7F4 8FB1002C */ lw $s1, 0x002C($sp)
/* 00718 80ABC7F8 8FB20030 */ lw $s2, 0x0030($sp)
/* 0071C 80ABC7FC 8FB30034 */ lw $s3, 0x0034($sp)
/* 00720 80ABC800 8FB40038 */ lw $s4, 0x0038($sp)
/* 00724 80ABC804 8FB5003C */ lw $s5, 0x003C($sp)
/* 00728 80ABC808 8FB60040 */ lw $s6, 0x0040($sp)
/* 0072C 80ABC80C 8FB70044 */ lw $s7, 0x0044($sp)
/* 00730 80ABC810 8FBE0048 */ lw $s8, 0x0048($sp)
/* 00734 80ABC814 03E00008 */ jr $ra
/* 00738 80ABC818 27BD0100 */ addiu $sp, $sp, 0x0100 ## $sp = 00000000

View File

@ -1,9 +0,0 @@
glabel func_80ABC9D0
/* 008F0 80ABC9D0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 008F4 80ABC9D4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 008F8 80ABC9D8 0C2AF098 */ jal func_80ABC260
/* 008FC 80ABC9DC 00000000 */ nop
/* 00900 80ABC9E0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00904 80ABC9E4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00908 80ABC9E8 03E00008 */ jr $ra
/* 0090C 80ABC9EC 00000000 */ nop

View File

@ -1,26 +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_Nwc_InitVars
.word 0x01350600, 0x00000030, 0x01240000, 0x00000734
.word EnNwc_Init
.word EnNwc_Destroy
.word EnNwc_Update
.word EnNwc_Draw
glabel D_80ABCA80
.word 0x01000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x000A0064
glabel D_80ABCAA4
.word 0x03000939, 0x00000000, 0x00000010, 0x00000000
glabel D_80ABCAB4
.word func_80ABC0E8
.word func_80ABC1F4
.word 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_80ABCB10
.incbin "baserom/ovl_En_Nwc", 0xA30, 0x000000A0

3
spec
View File

@ -2792,8 +2792,7 @@ endseg
beginseg
name "ovl_En_Nwc"
include "build/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o"
include "build/data/overlays/actors/z_en_nwc.data.o"
include "build/data/overlays/actors/z_en_nwc.reloc.o"
include "build/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o"
endseg
beginseg

View File

@ -221,20 +221,23 @@ ItemEquips sDebugSaveEquips = {
0x1122, // equipment
};
Inventory sDebugSaveInventory = {
{ ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_ARROW_FIRE, ITEM_DINS_FIRE,
ITEM_SLINGSHOT, ITEM_OCARINA_FAIRY, ITEM_BOMBCHU, ITEM_HOOKSHOT, ITEM_ARROW_ICE, ITEM_FARORES_WIND,
ITEM_BOOMERANG, ITEM_LENS, ITEM_BEAN, ITEM_HAMMER, ITEM_ARROW_LIGHT, ITEM_NAYRUS_LOVE,
ITEM_BOTTLE, ITEM_POTION_RED, ITEM_POTION_GREEN, ITEM_POTION_BLUE, ITEM_POCKET_EGG, ITEM_WEIRD_EGG }, // items
{ 50, 50, 10, 30, 1, 1, 30, 1, 50, 1, 1, 1, 1, 1, 1, 1 }, // ammo
0x7777, // equipment
0x125249, // upgrades
0x1E3FFFF, // questItems
{ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // dungeonItems
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, // dungeonKeys
0, // defenseHearts
0, // gsTokens
};
Inventory
sDebugSaveInventory =
{
{ ITEM_STICK, ITEM_NUT, ITEM_BOMB, ITEM_BOW, ITEM_ARROW_FIRE,
ITEM_DINS_FIRE, ITEM_SLINGSHOT, ITEM_OCARINA_FAIRY, ITEM_BOMBCHU, ITEM_HOOKSHOT,
ITEM_ARROW_ICE, ITEM_FARORES_WIND, ITEM_BOOMERANG, ITEM_LENS, ITEM_BEAN,
ITEM_HAMMER, ITEM_ARROW_LIGHT, ITEM_NAYRUS_LOVE, ITEM_BOTTLE, ITEM_POTION_RED,
ITEM_POTION_GREEN, ITEM_POTION_BLUE, ITEM_POCKET_EGG, ITEM_WEIRD_EGG }, // items
{ 50, 50, 10, 30, 1, 1, 30, 1, 50, 1, 1, 1, 1, 1, 1, 1 }, // ammo
0x7777, // equipment
0x125249, // upgrades
0x1E3FFFF, // questItems
{ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // dungeonItems
{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, // dungeonKeys
0, // defenseHearts
0, // gsTokens
};
u16 sDebugSaveChecksum = 0;

View File

@ -1,3 +1,9 @@
/*
* File: z_en_nwc.c
* Overlay: ovl_En_Nwc
* Description: Cluster of cucco chicks. Unfinished.
*/
#include "z_en_nwc.h"
#define FLAGS 0x00000030
@ -9,7 +15,28 @@ void EnNwc_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnNwc_Update(Actor* thisx, GlobalContext* globalCtx);
void EnNwc_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnNwc_SetUpdate(EnNwc* this, EnNwcUpdateFunc updateFunc);
void EnNwc_ChickNoop(EnNwcChick* chick, EnNwc* this, GlobalContext* globalCtx);
void EnNwc_ChickBgCheck(EnNwcChick* chick, GlobalContext* globalCtx);
void EnNwc_ChickFall(EnNwcChick* chick, EnNwc* this, GlobalContext* globalCtx);
void EnNwc_UpdateChicks(EnNwc* this, GlobalContext* globalCtx);
void EnNwc_DrawChicks(EnNwc* this, GlobalContext* globalCtx);
void EnNwc_Idle(EnNwc* this, GlobalContext* globalCtx);
#define CHICK_BG_FLOOR (1 << 0)
#define CHICK_BG_WALL (1 << 1)
typedef enum { CHICK_NONE, CHICK_NORMAL } ChickTypes;
extern Gfx D_06000840[];
extern Gfx D_060008B0[];
extern Gfx D_06000BF0[];
extern Gfx D_06000C68[];
extern Gfx D_06000C88[];
extern Gfx D_06000CE0[];
extern Gfx D_06000D10[];
extern Gfx D_06000D50[];
const ActorInit En_Nwc_InitVars = {
ACTOR_EN_NWC,
ACTORTYPE_PROP,
@ -21,25 +48,201 @@ const ActorInit En_Nwc_InitVars = {
(ActorFunc)EnNwc_Update,
(ActorFunc)EnNwc_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC0E0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC0E8.s")
static ColliderJntSphItemInit sJntSphElementInit = {
{ 0x01, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
{ 0, { { 0, 0, 0 }, 10 }, 100 },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC0F8.s")
static ColliderJntSphInit_Set3 sJntSphInit = {
{ COLTYPE_UNK3, 0x00, 0x09, 0x39, COLSHAPE_JNTSPH },
16,
NULL,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC1F4.s")
void EnNwc_SetUpdate(EnNwc* this, EnNwcUpdateFunc updateFunc) {
this->updateFunc = updateFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC260.s")
void EnNwc_ChickNoop(EnNwcChick* chick, EnNwc* this, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC460.s")
void EnNwc_ChickBgCheck(EnNwcChick* chick, GlobalContext* globalCtx) {
CollisionPoly* outPoly;
s32 bgId;
Vec3f outPos;
f32 dy;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/EnNwc_Init.s")
chick->bgFlags &= ~CHICK_BG_WALL & ~CHICK_BG_FLOOR;
outPos.x = chick->pos.x;
outPos.y = chick->pos.y;
outPos.z = chick->pos.z;
if (func_8003D464(&globalCtx->colCtx, &outPos, &chick->pos, &chick->lastPos, 10.0f, &chick->floorPoly, 20.0f)) {
chick->bgFlags |= CHICK_BG_WALL;
}
//! @bug The use of outPos here is totally wrong. Even if it didn't get overwritten
// by the wall check, it should add an offset to the y-value so the raycast
// doesn't go through the floor and cause the chicks to ignore all floors.
chick->floorY = func_8003C940(&globalCtx->colCtx, &outPoly, &bgId, &outPos);
dy = chick->floorY - chick->pos.y;
if ((0.0f <= dy) && (dy < 40.0f)) {
chick->pos.y = chick->floorY;
chick->bgFlags |= CHICK_BG_FLOOR;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/EnNwc_Destroy.s")
void EnNwc_ChickFall(EnNwcChick* chick, EnNwc* this, GlobalContext* globalCtx) {
chick->velY -= 0.1f;
if (chick->velY < -10.0f) {
chick->velY = -10.0f;
}
chick->pos.y += chick->velY;
EnNwc_ChickBgCheck(chick, globalCtx);
if (chick) {} // Needed for matching. Possibly from remnant of unfinished code?
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/func_80ABC9D0.s")
void EnNwc_UpdateChicks(EnNwc* this, GlobalContext* globalCtx) {
static EnNwcChickFunc chickActionFuncs[] = { EnNwc_ChickNoop, EnNwc_ChickFall };
EnNwcChick* chick = this->chicks;
ColliderJntSphItem* element = this->collider.list;
Vec3f prevChickPos;
s32 i;
f32 test;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/EnNwc_Update.s")
prevChickPos.y = 99999.9f;
for (i = 0; i < this->count; i++, prevChickPos = chick->pos, chick++, element++) {
Math_Vec3f_Copy(&chick->lastPos, &chick->pos);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Nwc/EnNwc_Draw.s")
chickActionFuncs[chick->type](chick, this, globalCtx);
element->dim.worldSphere.center.x = chick->pos.x;
element->dim.worldSphere.center.y = chick->pos.y;
element->dim.worldSphere.center.z = chick->pos.z;
test = chick->pos.y - prevChickPos.y;
if (fabsf(test) < 10.0f) {
f32 dx = chick->pos.x - prevChickPos.x;
f32 dz = chick->pos.z - prevChickPos.z;
test = SQ(dx) + SQ(dz);
if (test < SQ(10.0f)) {
if (test != 0.0f) {
chick->pos.x += dx / sqrtf(test);
chick->pos.z += dz / sqrtf(test);
} else {
chick->pos.x += 1.0f;
chick->pos.z += 1.0f;
}
}
}
}
}
void EnNwc_DrawChicks(EnNwc* this, GlobalContext* globalCtx) {
s32 i;
Gfx* dList1;
Gfx* dList2;
Gfx* dList3;
MtxF floorMat;
EnNwcChick* chick;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_nwc.c", 316);
func_80093C80(globalCtx);
dList1 = POLY_XLU_DISP;
dList2 = dList1 + 3 * this->count + 1;
dList3 = dList2 + 2 * this->count + 1;
gSPDisplayList(dList1++, D_06000840);
gSPDisplayList(dList2++, D_06000BF0);
gSPDisplayList(dList3++, D_06000C88);
chick = this->chicks;
for (i = 0; i < this->count; i++, chick++) {
if (chick->type != CHICK_NONE) {
Mtx* mtx;
func_800D1694(chick->pos.x, chick->pos.y + chick->height, chick->pos.z, &chick->rot);
Matrix_Scale(0.01f, 0.01f, 0.01f, MTXMODE_APPLY);
mtx = Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_nwc.c", 346);
gDPSetEnvColor(dList1++, 0, 100, 255, 255);
gSPMatrix(dList1++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(dList1++, D_060008B0);
gSPMatrix(dList2++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(dList2++, D_06000C68);
gSPMatrix(dList3++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(dList3++, D_06000CE0);
}
}
chick = this->chicks;
POLY_XLU_DISP = dList3;
func_80094044(globalCtx->state.gfxCtx);
gSPDisplayList(POLY_XLU_DISP++, D_06000D10);
for (i = 0; i < this->count; i++, chick++) {
if ((chick->type != CHICK_NONE) && (chick->floorPoly != NULL)) {
func_80038A28(chick->floorPoly, chick->pos.x, chick->floorY, chick->pos.z, &floorMat);
Matrix_Put(&floorMat);
Matrix_RotateY(chick->rot.y * (M_PI / 0x8000), MTXMODE_APPLY);
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_nwc.c", 388),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_06000D50);
}
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_nwc.c", 395);
}
void EnNwc_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnNwc* this = THIS;
ColliderJntSphItemInit elementInits[16];
ColliderJntSphItemInit* element;
EnNwcChick* chick;
s32 i;
element = sJntSphInit.list = elementInits;
for (i = 0; i < 16; i++, element++) {
*element = sJntSphElementInit;
}
Collider_InitJntSph(globalCtx, &this->collider);
Collider_SetJntSph_Set3(globalCtx, &this->collider, &this->actor, &sJntSphInit);
this->count = 16;
chick = this->chicks;
for (i = 0; i < this->count; i++, chick++) {
chick->type = CHICK_NORMAL;
chick->pos.x = thisx->posRot.pos.x + ((Math_Rand_ZeroOne() * 100.0f) - 50.0f);
chick->pos.y = thisx->posRot.pos.y + 20.0f;
chick->pos.z = thisx->posRot.pos.z + ((Math_Rand_ZeroOne() * 100.0f) - 50.0f);
chick->height = 5;
}
EnNwc_SetUpdate(this, EnNwc_Idle);
}
void EnNwc_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnNwc* this = THIS;
Collider_FreeJntSph(globalCtx, &this->collider);
}
void EnNwc_Idle(EnNwc* this, GlobalContext* globalCtx) {
EnNwc_UpdateChicks(this, globalCtx);
}
void EnNwc_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnNwc* this = THIS;
this->updateFunc(this, globalCtx);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
void EnNwc_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
EnNwc* this = THIS;
EnNwc_DrawChicks(this, globalCtx);
}

View File

@ -5,10 +5,32 @@
#include "global.h"
struct EnNwc;
struct EnNwcChick;
typedef void (*EnNwcUpdateFunc)(struct EnNwc*, GlobalContext*);
typedef void (*EnNwcChickFunc)(struct EnNwcChick*, struct EnNwc*, GlobalContext*);
typedef struct EnNwcChick {
/* 0x00 */ s8 type;
/* 0x01 */ u8 bgFlags;
/* 0x04 */ f32 floorY;
/* 0x08 */ Vec3f pos;
/* 0x14 */ char unk_14[8];
/* 0x1C */ Vec3f lastPos;
/* 0x28 */ char unk_28[4];
/* 0x2C */ f32 velY;
/* 0x30 */ Vec3s rot;
/* 0x36 */ u16 height;
/* 0x38 */ CollisionPoly* floorPoly;
/* 0x44 */ char unk_3C[0x20];
} EnNwcChick; // size = 0x5C
typedef struct EnNwc {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x5E8];
/* 0x014C */ ColliderJntSph collider;
/* 0x016C */ u8 count;
/* 0x0170 */ EnNwcChick chicks[16];
/* 0x0730 */ EnNwcUpdateFunc updateFunc;
} EnNwc; // size = 0x0734
extern const ActorInit En_Nwc_InitVars;

View File

@ -1127,6 +1127,16 @@ D_060023B0 = 0x060023B0;
D_06002428 = 0x06002428;
D_06002530 = 0x06002530;
// z_en_nwc
D_06000840 = 0x06000840;
D_060008B0 = 0x060008B0;
D_06000BF0 = 0x06000BF0;
D_06000C68 = 0x06000C68;
D_06000C88 = 0x06000C88;
D_06000CE0 = 0x06000CE0;
D_06000D10 = 0x06000D10;
D_06000D50 = 0x06000D50;
// z_eff_ss_blast
D_0401A0B0 = 0x0401A0B0;