1
0
mirror of https://github.com/blawar/ooot.git synced 2024-07-07 12:32:37 +00:00

EnJj and object_jj OK (#741)

* Shift to new branch

* object_jj decomped

* docs

* Documented blinking, various other things

* more naming

* Most stuff in the object named

* implement eye enums

* delete asm

* Changes from Fig's review

* Apply suggestions from code review

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:
EllipticEllipsis 2021-03-29 01:02:09 +01:00 committed by GitHub
parent 1639417327
commit ed4021a6fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 532 additions and 761 deletions

View File

@ -1,42 +0,0 @@
glabel EnJj_Destroy
/* 00294 80A87A94 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00298 80A87A98 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0029C 80A87A9C AFA40018 */ sw $a0, 0x0018($sp)
/* 002A0 80A87AA0 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 002A4 80A87AA4 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 002A8 80A87AA8 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 002AC 80A87AAC 10410007 */ beq $v0, $at, .L80A87ACC
/* 002B0 80A87AB0 8FAF0018 */ lw $t7, 0x0018($sp)
/* 002B4 80A87AB4 10400010 */ beq $v0, $zero, .L80A87AF8
/* 002B8 80A87AB8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 002BC 80A87ABC 5041000F */ beql $v0, $at, .L80A87AFC
/* 002C0 80A87AC0 8FB80018 */ lw $t8, 0x0018($sp)
/* 002C4 80A87AC4 10000012 */ beq $zero, $zero, .L80A87B10
/* 002C8 80A87AC8 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87ACC:
/* 002CC 80A87ACC 8DE6014C */ lw $a2, 0x014C($t7) ## 0000014C
/* 002D0 80A87AD0 AFA7001C */ sw $a3, 0x001C($sp)
/* 002D4 80A87AD4 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 002D8 80A87AD8 0C00FB56 */ jal DynaPoly_DeleteBgActor
## DynaPoly_DeleteBgActor
/* 002DC 80A87ADC 24E50810 */ addiu $a1, $a3, 0x0810 ## $a1 = 00000810
/* 002E0 80A87AE0 8FA50018 */ lw $a1, 0x0018($sp)
/* 002E4 80A87AE4 8FA4001C */ lw $a0, 0x001C($sp)
/* 002E8 80A87AE8 0C0170EB */ jal Collider_DestroyCylinder
/* 002EC 80A87AEC 24A502B0 */ addiu $a1, $a1, 0x02B0 ## $a1 = 000002B0
/* 002F0 80A87AF0 10000007 */ beq $zero, $zero, .L80A87B10
/* 002F4 80A87AF4 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87AF8:
/* 002F8 80A87AF8 8FB80018 */ lw $t8, 0x0018($sp)
.L80A87AFC:
/* 002FC 80A87AFC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00300 80A87B00 24E50810 */ addiu $a1, $a3, 0x0810 ## $a1 = 00000810
/* 00304 80A87B04 0C00FB56 */ jal DynaPoly_DeleteBgActor
## DynaPoly_DeleteBgActor
/* 00308 80A87B08 8F06014C */ lw $a2, 0x014C($t8) ## 0000014C
/* 0030C 80A87B0C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87B10:
/* 00310 80A87B10 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00314 80A87B14 03E00008 */ jr $ra
/* 00318 80A87B18 00000000 */ nop

View File

@ -1,96 +0,0 @@
.rdata
glabel D_80A88D10
.asciz "../z_en_jj.c"
.balign 4
glabel D_80A88D20
.asciz "../z_en_jj.c"
.balign 4
.late_rodata
glabel D_80A88D34
.float 0.076624215
.text
glabel EnJj_Draw
/* 00800 80A88000 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 00804 80A88004 AFBF002C */ sw $ra, 0x002C($sp)
/* 00808 80A88008 AFB00028 */ sw $s0, 0x0028($sp)
/* 0080C 80A8800C AFA5005C */ sw $a1, 0x005C($sp)
/* 00810 80A88010 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00814 80A88014 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00818 80A88018 3C0680A9 */ lui $a2, %hi(D_80A88D10) ## $a2 = 80A90000
/* 0081C 80A8801C 24C68D10 */ addiu $a2, $a2, %lo(D_80A88D10) ## $a2 = 80A88D10
/* 00820 80A88020 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
/* 00824 80A88024 2407036F */ addiu $a3, $zero, 0x036F ## $a3 = 0000036F
/* 00828 80A88028 0C031AB1 */ jal Graph_OpenDisps
/* 0082C 80A8802C AFA5004C */ sw $a1, 0x004C($sp)
/* 00830 80A88030 8FAF005C */ lw $t7, 0x005C($sp)
/* 00834 80A88034 0C0250F2 */ jal func_800943C8
/* 00838 80A88038 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 0083C 80A8803C 3C0180A9 */ lui $at, %hi(D_80A88D34) ## $at = 80A90000
/* 00840 80A88040 C4268D34 */ lwc1 $f6, %lo(D_80A88D34)($at)
/* 00844 80A88044 C604017C */ lwc1 $f4, 0x017C($s0) ## 0000017C
/* 00848 80A88048 46062302 */ mul.s $f12, $f4, $f6
/* 0084C 80A8804C 0C041184 */ jal cosf
/* 00850 80A88050 00000000 */ nop
/* 00854 80A88054 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00858 80A88058 44811000 */ mtc1 $at, $f2 ## $f2 = 10.00
/* 0085C 80A8805C 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00860 80A88060 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00864 80A88064 46020202 */ mul.s $f8, $f0, $f2
/* 00868 80A88068 44066000 */ mfc1 $a2, $f12
/* 0086C 80A8806C 0C034261 */ jal Matrix_Translate
/* 00870 80A88070 46024381 */ sub.s $f14, $f8, $f2
/* 00874 80A88074 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00878 80A88078 44816000 */ mtc1 $at, $f12 ## $f12 = 10.00
/* 0087C 80A8807C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00880 80A88080 44066000 */ mfc1 $a2, $f12
/* 00884 80A88084 0C0342A3 */ jal Matrix_Scale
/* 00888 80A88088 46006386 */ mov.s $f14, $f12
/* 0088C 80A8808C 8FA5004C */ lw $a1, 0x004C($sp)
/* 00890 80A88090 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 00894 80A88094 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 00898 80A88098 8CA302C0 */ lw $v1, 0x02C0($a1) ## 000002C0
/* 0089C 80A8809C 3C0480A9 */ lui $a0, %hi(D_80A88CFC) ## $a0 = 80A90000
/* 008A0 80A880A0 3C0E8016 */ lui $t6, %hi(gSegments)
/* 008A4 80A880A4 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 008A8 80A880A8 ACB802C0 */ sw $t8, 0x02C0($a1) ## 000002C0
/* 008AC 80A880AC AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 008B0 80A880B0 9208030E */ lbu $t0, 0x030E($s0) ## 0000030E
/* 008B4 80A880B4 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 008B8 80A880B8 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 008BC 80A880BC 00084880 */ sll $t1, $t0, 2
/* 008C0 80A880C0 00892021 */ addu $a0, $a0, $t1
/* 008C4 80A880C4 8C848CFC */ lw $a0, %lo(D_80A88CFC)($a0)
/* 008C8 80A880C8 00045900 */ sll $t3, $a0, 4
/* 008CC 80A880CC 000B6702 */ srl $t4, $t3, 28
/* 008D0 80A880D0 000C6880 */ sll $t5, $t4, 2
/* 008D4 80A880D4 01CD7021 */ addu $t6, $t6, $t5
/* 008D8 80A880D8 8DCE6FA8 */ lw $t6, %lo(gSegments)($t6)
/* 008DC 80A880DC 00815024 */ and $t2, $a0, $at
/* 008E0 80A880E0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 008E4 80A880E4 014E7821 */ addu $t7, $t2, $t6
/* 008E8 80A880E8 01E1C021 */ addu $t8, $t7, $at
/* 008EC 80A880EC AC780004 */ sw $t8, 0x0004($v1) ## 00000004
/* 008F0 80A880F0 92070166 */ lbu $a3, 0x0166($s0) ## 00000166
/* 008F4 80A880F4 8E060184 */ lw $a2, 0x0184($s0) ## 00000184
/* 008F8 80A880F8 8E050168 */ lw $a1, 0x0168($s0) ## 00000168
/* 008FC 80A880FC AFB00018 */ sw $s0, 0x0018($sp)
/* 00900 80A88100 AFA00014 */ sw $zero, 0x0014($sp)
/* 00904 80A88104 AFA00010 */ sw $zero, 0x0010($sp)
/* 00908 80A88108 0C0286B2 */ jal SkelAnime_DrawFlexOpa
/* 0090C 80A8810C 8FA4005C */ lw $a0, 0x005C($sp)
/* 00910 80A88110 8FB9005C */ lw $t9, 0x005C($sp)
/* 00914 80A88114 3C0680A9 */ lui $a2, %hi(D_80A88D20) ## $a2 = 80A90000
/* 00918 80A88118 24C68D20 */ addiu $a2, $a2, %lo(D_80A88D20) ## $a2 = 80A88D20
/* 0091C 80A8811C 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4
/* 00920 80A88120 24070382 */ addiu $a3, $zero, 0x0382 ## $a3 = 00000382
/* 00924 80A88124 0C031AD5 */ jal Graph_CloseDisps
/* 00928 80A88128 8F250000 */ lw $a1, 0x0000($t9) ## 00000000
/* 0092C 80A8812C 8FBF002C */ lw $ra, 0x002C($sp)
/* 00930 80A88130 8FB00028 */ lw $s0, 0x0028($sp)
/* 00934 80A88134 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 00938 80A88138 03E00008 */ jr $ra
/* 0093C 80A8813C 00000000 */ nop

View File

@ -1,187 +0,0 @@
glabel EnJj_Init
/* 00008 80A87808 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 0000C 80A8780C AFB10038 */ sw $s1, 0x0038($sp)
/* 00010 80A87810 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00014 80A87814 AFBF003C */ sw $ra, 0x003C($sp)
/* 00018 80A87818 AFB00034 */ sw $s0, 0x0034($sp)
/* 0001C 80A8781C 3C0580A9 */ lui $a1, %hi(D_80A88CE0) ## $a1 = 80A90000
/* 00020 80A87820 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00024 80A87824 AFA0004C */ sw $zero, 0x004C($sp)
/* 00028 80A87828 0C01E037 */ jal Actor_ProcessInitChain
/* 0002C 80A8782C 24A58CE0 */ addiu $a1, $a1, %lo(D_80A88CE0) ## $a1 = 80A88CE0
/* 00030 80A87830 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00034 80A87834 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 00038 80A87838 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0003C 80A8783C 44050000 */ mfc1 $a1, $f0
/* 00040 80A87840 44070000 */ mfc1 $a3, $f0
/* 00044 80A87844 0C00AC78 */ jal ActorShape_Init
/* 00048 80A87848 00000000 */ nop
/* 0004C 80A8784C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00050 80A87850 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
/* 00054 80A87854 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00058 80A87858 10410008 */ beq $v0, $at, .L80A8787C
/* 0005C 80A8785C 26050164 */ addiu $a1, $s0, 0x0164 ## $a1 = 00000164
/* 00060 80A87860 10400058 */ beq $v0, $zero, .L80A879C4
/* 00064 80A87864 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00068 80A87868 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0006C 80A8786C 10410070 */ beq $v0, $at, .L80A87A30
/* 00070 80A87870 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00074 80A87874 10000083 */ beq $zero, $zero, .L80A87A84
/* 00078 80A87878 8FBF003C */ lw $ra, 0x003C($sp)
.L80A8787C:
/* 0007C 80A8787C 3C060601 */ lui $a2, %hi(D_0600B9A8) ## $a2 = 06010000
/* 00080 80A87880 3C070600 */ lui $a3, %hi(D_06001F4C) ## $a3 = 06000000
/* 00084 80A87884 260E01A8 */ addiu $t6, $s0, 0x01A8 ## $t6 = 000001A8
/* 00088 80A87888 260F022C */ addiu $t7, $s0, 0x022C ## $t7 = 0000022C
/* 0008C 80A8788C 24180016 */ addiu $t8, $zero, 0x0016 ## $t8 = 00000016
/* 00090 80A87890 AFB80018 */ sw $t8, 0x0018($sp)
/* 00094 80A87894 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00098 80A87898 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0009C 80A8789C 24E71F4C */ addiu $a3, $a3, %lo(D_06001F4C) ## $a3 = 06001F4C
/* 000A0 80A878A0 24C6B9A8 */ addiu $a2, $a2, %lo(D_0600B9A8) ## $a2 = 0600B9A8
/* 000A4 80A878A4 0C0291BE */ jal SkelAnime_InitFlex
/* 000A8 80A878A8 AFA50044 */ sw $a1, 0x0044($sp)
/* 000AC 80A878AC 3C050600 */ lui $a1, %hi(D_06001F4C) ## $a1 = 06000000
/* 000B0 80A878B0 24A51F4C */ addiu $a1, $a1, %lo(D_06001F4C) ## $a1 = 06001F4C
/* 000B4 80A878B4 0C0294BE */ jal Animation_PlayLoop
/* 000B8 80A878B8 8FA40044 */ lw $a0, 0x0044($sp)
/* 000BC 80A878BC A600030A */ sh $zero, 0x030A($s0) ## 0000030A
/* 000C0 80A878C0 A200030E */ sb $zero, 0x030E($s0) ## 0000030E
/* 000C4 80A878C4 A200030F */ sb $zero, 0x030F($s0) ## 0000030F
/* 000C8 80A878C8 A2000310 */ sb $zero, 0x0310($s0) ## 00000310
/* 000CC 80A878CC A2000311 */ sb $zero, 0x0311($s0) ## 00000311
/* 000D0 80A878D0 3C198016 */ lui $t9, %hi(gSaveContext+0xeda)
/* 000D4 80A878D4 9739F53A */ lhu $t9, %lo(gSaveContext+0xeda)($t9)
/* 000D8 80A878D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000DC 80A878DC 3C0580A8 */ lui $a1, %hi(func_80A87C30) ## $a1 = 80A80000
/* 000E0 80A878E0 33280400 */ andi $t0, $t9, 0x0400 ## $t0 = 00000000
/* 000E4 80A878E4 11000007 */ beq $t0, $zero, .L80A87904
/* 000E8 80A878E8 00000000 */ nop
/* 000EC 80A878EC 3C0580A8 */ lui $a1, %hi(func_80A87BEC) ## $a1 = 80A80000
/* 000F0 80A878F0 24A57BEC */ addiu $a1, $a1, %lo(func_80A87BEC) ## $a1 = 80A87BEC
/* 000F4 80A878F4 0C2A1E00 */ jal func_80A87800
/* 000F8 80A878F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000FC 80A878FC 10000004 */ beq $zero, $zero, .L80A87910
/* 00100 80A87900 3C014120 */ lui $at, 0x4120 ## $at = 41200000
.L80A87904:
/* 00104 80A87904 0C2A1E00 */ jal func_80A87800
/* 00108 80A87908 24A57C30 */ addiu $a1, $a1, %lo(func_80A87C30) ## $a1 = 00007C30
/* 0010C 80A8790C 3C014120 */ lui $at, 0x4120 ## $at = 41200000
.L80A87910:
/* 00110 80A87910 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00114 80A87914 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00118 80A87918 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 0011C 80A8791C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00120 80A87920 46062201 */ sub.s $f8, $f4, $f6
/* 00124 80A87924 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 00128 80A87928 2407005A */ addiu $a3, $zero, 0x005A ## $a3 = 0000005A
/* 0012C 80A8792C E7A80010 */ swc1 $f8, 0x0010($sp)
/* 00130 80A87930 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
/* 00134 80A87934 E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 00138 80A87938 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 0013C 80A8793C AFA0001C */ sw $zero, 0x001C($sp)
/* 00140 80A87940 E7B00018 */ swc1 $f16, 0x0018($sp)
/* 00144 80A87944 86090032 */ lh $t1, 0x0032($s0) ## 00000032
/* 00148 80A87948 AFA00028 */ sw $zero, 0x0028($sp)
/* 0014C 80A8794C AFA00024 */ sw $zero, 0x0024($sp)
/* 00150 80A87950 0C00C916 */ jal Actor_SpawnAsChild
/* 00154 80A87954 AFA90020 */ sw $t1, 0x0020($sp)
/* 00158 80A87958 AE020300 */ sw $v0, 0x0300($s0) ## 00000300
/* 0015C 80A8795C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00160 80A87960 0C010D20 */ jal DynaPolyActor_Init
/* 00164 80A87964 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00168 80A87968 3C040600 */ lui $a0, %hi(D_06000A1C) ## $a0 = 06000000
/* 0016C 80A8796C 24840A1C */ addiu $a0, $a0, %lo(D_06000A1C) ## $a0 = 06000A1C
/* 00170 80A87970 0C010620 */ jal CollisionHeader_GetVirtual
/* 00174 80A87974 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFF4
/* 00178 80A87978 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0017C 80A8797C 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
/* 00180 80A87980 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00184 80A87984 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 00188 80A87988 8FA7004C */ lw $a3, 0x004C($sp)
/* 0018C 80A8798C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00190 80A87990 260502B0 */ addiu $a1, $s0, 0x02B0 ## $a1 = 000002B0
/* 00194 80A87994 AFA50044 */ sw $a1, 0x0044($sp)
/* 00198 80A87998 0C0170D9 */ jal Collider_InitCylinder
/* 0019C 80A8799C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001A0 80A879A0 3C0780A9 */ lui $a3, %hi(D_80A88CB4) ## $a3 = 80A90000
/* 001A4 80A879A4 8FA50044 */ lw $a1, 0x0044($sp)
/* 001A8 80A879A8 24E78CB4 */ addiu $a3, $a3, %lo(D_80A88CB4) ## $a3 = 80A88CB4
/* 001AC 80A879AC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001B0 80A879B0 0C01712B */ jal Collider_SetCylinder
/* 001B4 80A879B4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 001B8 80A879B8 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF
/* 001BC 80A879BC 10000030 */ beq $zero, $zero, .L80A87A80
/* 001C0 80A879C0 A20A00AE */ sb $t2, 0x00AE($s0) ## 000000AE
.L80A879C4:
/* 001C4 80A879C4 0C010D20 */ jal DynaPolyActor_Init
/* 001C8 80A879C8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 001CC 80A879CC 3C040600 */ lui $a0, %hi(D_06001830) ## $a0 = 06000000
/* 001D0 80A879D0 24841830 */ addiu $a0, $a0, %lo(D_06001830) ## $a0 = 06001830
/* 001D4 80A879D4 0C010620 */ jal CollisionHeader_GetVirtual
/* 001D8 80A879D8 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFF4
/* 001DC 80A879DC 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
/* 001E0 80A879E0 AFA50044 */ sw $a1, 0x0044($sp)
/* 001E4 80A879E4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001E8 80A879E8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 001EC 80A879EC 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 001F0 80A879F0 8FA7004C */ lw $a3, 0x004C($sp)
/* 001F4 80A879F4 8FA50044 */ lw $a1, 0x0044($sp)
/* 001F8 80A879F8 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 001FC 80A879FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00200 80A87A00 0C00FB2A */ jal func_8003ECA8
/* 00204 80A87A04 00403025 */ or $a2, $v0, $zero ## $a2 = 00000000
/* 00208 80A87A08 3C0B80A8 */ lui $t3, %hi(func_80A87F44) ## $t3 = 80A80000
/* 0020C 80A87A0C 256B7F44 */ addiu $t3, $t3, %lo(func_80A87F44) ## $t3 = 80A87F44
/* 00210 80A87A10 3C053DB2 */ lui $a1, 0x3DB2 ## $a1 = 3DB20000
/* 00214 80A87A14 AE0B0130 */ sw $t3, 0x0130($s0) ## 00000130
/* 00218 80A87A18 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 0021C 80A87A1C 34A52D0E */ ori $a1, $a1, 0x2D0E ## $a1 = 3DB22D0E
/* 00220 80A87A20 0C00B58B */ jal Actor_SetScale
/* 00224 80A87A24 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00228 80A87A28 10000016 */ beq $zero, $zero, .L80A87A84
/* 0022C 80A87A2C 8FBF003C */ lw $ra, 0x003C($sp)
.L80A87A30:
/* 00230 80A87A30 0C010D20 */ jal DynaPolyActor_Init
/* 00234 80A87A34 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00238 80A87A38 3C040601 */ lui $a0, %hi(D_0600BA8C) ## $a0 = 06010000
/* 0023C 80A87A3C 2484BA8C */ addiu $a0, $a0, %lo(D_0600BA8C) ## $a0 = 0600BA8C
/* 00240 80A87A40 0C010620 */ jal CollisionHeader_GetVirtual
/* 00244 80A87A44 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFF4
/* 00248 80A87A48 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0024C 80A87A4C 26250810 */ addiu $a1, $s1, 0x0810 ## $a1 = 00000810
/* 00250 80A87A50 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00254 80A87A54 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 00258 80A87A58 8FA7004C */ lw $a3, 0x004C($sp)
/* 0025C 80A87A5C 3C0C80A8 */ lui $t4, %hi(func_80A87F44) ## $t4 = 80A80000
/* 00260 80A87A60 258C7F44 */ addiu $t4, $t4, %lo(func_80A87F44) ## $t4 = 80A87F44
/* 00264 80A87A64 3C053DB2 */ lui $a1, 0x3DB2 ## $a1 = 3DB20000
/* 00268 80A87A68 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 0026C 80A87A6C AE0C0130 */ sw $t4, 0x0130($s0) ## 00000130
/* 00270 80A87A70 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 00274 80A87A74 34A52D0E */ ori $a1, $a1, 0x2D0E ## $a1 = 3DB22D0E
/* 00278 80A87A78 0C00B58B */ jal Actor_SetScale
/* 0027C 80A87A7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A87A80:
/* 00280 80A87A80 8FBF003C */ lw $ra, 0x003C($sp)
.L80A87A84:
/* 00284 80A87A84 8FB00034 */ lw $s0, 0x0034($sp)
/* 00288 80A87A88 8FB10038 */ lw $s1, 0x0038($sp)
/* 0028C 80A87A8C 03E00008 */ jr $ra
/* 00290 80A87A90 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000

View File

@ -1,50 +0,0 @@
glabel EnJj_Update
/* 00750 80A87F50 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00754 80A87F54 AFBF001C */ sw $ra, 0x001C($sp)
/* 00758 80A87F58 AFB00018 */ sw $s0, 0x0018($sp)
/* 0075C 80A87F5C 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 00760 80A87F60 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00764 80A87F64 51C00009 */ beql $t6, $zero, .L80A87F8C
/* 00768 80A87F68 8E1902FC */ lw $t9, 0x02FC($s0) ## 000002FC
/* 0076C 80A87F6C 8CAF1D94 */ lw $t7, 0x1D94($a1) ## 00001D94
/* 00770 80A87F70 51E00006 */ beql $t7, $zero, .L80A87F8C
/* 00774 80A87F74 8E1902FC */ lw $t9, 0x02FC($s0) ## 000002FC
/* 00778 80A87F78 0C2A1F65 */ jal func_80A87D94
/* 0077C 80A87F7C 00000000 */ nop
/* 00780 80A87F80 1000000F */ beq $zero, $zero, .L80A87FC0
/* 00784 80A87F84 00000000 */ nop
/* 00788 80A87F88 8E1902FC */ lw $t9, 0x02FC($s0) ## 000002FC
.L80A87F8C:
/* 0078C 80A87F8C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00790 80A87F90 0320F809 */ jalr $ra, $t9
/* 00794 80A87F94 00000000 */ nop
/* 00798 80A87F98 3C014224 */ lui $at, 0x4224 ## $at = 42240000
/* 0079C 80A87F9C 44812000 */ mtc1 $at, $f4 ## $f4 = 41.00
/* 007A0 80A87FA0 C606017C */ lwc1 $f6, 0x017C($s0) ## 0000017C
/* 007A4 80A87FA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007A8 80A87FA8 46062032 */ c.eq.s $f4, $f6
/* 007AC 80A87FAC 00000000 */ nop
/* 007B0 80A87FB0 45000003 */ bc1f .L80A87FC0
/* 007B4 80A87FB4 00000000 */ nop
/* 007B8 80A87FB8 0C00BE0A */ jal Audio_PlayActorSound2
/* 007BC 80A87FBC 240528B6 */ addiu $a1, $zero, 0x28B6 ## $a1 = 000028B6
.L80A87FC0:
/* 007C0 80A87FC0 0C2A1EC7 */ jal func_80A87B1C
/* 007C4 80A87FC4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007C8 80A87FC8 0C02927F */ jal SkelAnime_Update
/* 007CC 80A87FCC 26040164 */ addiu $a0, $s0, 0x0164 ## $a0 = 00000164
/* 007D0 80A87FD0 3C053DB2 */ lui $a1, 0x3DB2 ## $a1 = 3DB20000
/* 007D4 80A87FD4 34A52D0E */ ori $a1, $a1, 0x2D0E ## $a1 = 3DB22D0E
/* 007D8 80A87FD8 0C00B58B */ jal Actor_SetScale
/* 007DC 80A87FDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007E0 80A87FE0 86180308 */ lh $t8, 0x0308($s0) ## 00000308
/* 007E4 80A87FE4 8E080184 */ lw $t0, 0x0184($s0) ## 00000184
/* 007E8 80A87FE8 A5180040 */ sh $t8, 0x0040($t0) ## 00000040
/* 007EC 80A87FEC 8FBF001C */ lw $ra, 0x001C($sp)
/* 007F0 80A87FF0 8FB00018 */ lw $s0, 0x0018($sp)
/* 007F4 80A87FF4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 007F8 80A87FF8 03E00008 */ jr $ra
/* 007FC 80A87FFC 00000000 */ nop

View File

@ -1,3 +0,0 @@
glabel func_80A87800
/* 00000 80A87800 03E00008 */ jr $ra
/* 00004 80A87804 AC8502FC */ sw $a1, 0x02FC($a0) ## 000002FC

View File

@ -1,37 +0,0 @@
glabel func_80A87B1C
/* 0031C 80A87B1C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00320 80A87B20 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00324 80A87B24 9082030F */ lbu $v0, 0x030F($a0) ## 0000030F
/* 00328 80A87B28 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 0032C 80A87B2C 18400003 */ blez $v0, .L80A87B3C
/* 00330 80A87B30 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00334 80A87B34 10000015 */ beq $zero, $zero, .L80A87B8C
/* 00338 80A87B38 A08E030F */ sb $t6, 0x030F($a0) ## 0000030F
.L80A87B3C:
/* 0033C 80A87B3C 90CF030E */ lbu $t7, 0x030E($a2) ## 0000030E
/* 00340 80A87B40 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00344 80A87B44 331900FF */ andi $t9, $t8, 0x00FF ## $t9 = 00000001
/* 00348 80A87B48 2B210003 */ slti $at, $t9, 0x0003
/* 0034C 80A87B4C 1420000F */ bne $at, $zero, .L80A87B8C
/* 00350 80A87B50 A0D8030E */ sb $t8, 0x030E($a2) ## 0000030E
/* 00354 80A87B54 90C20310 */ lbu $v0, 0x0310($a2) ## 00000310
/* 00358 80A87B58 A0C0030E */ sb $zero, 0x030E($a2) ## 0000030E
/* 0035C 80A87B5C 24040014 */ addiu $a0, $zero, 0x0014 ## $a0 = 00000014
/* 00360 80A87B60 18400004 */ blez $v0, .L80A87B74
/* 00364 80A87B64 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 00368 80A87B68 2448FFFF */ addiu $t0, $v0, 0xFFFF ## $t0 = FFFFFFFF
/* 0036C 80A87B6C 10000007 */ beq $zero, $zero, .L80A87B8C
/* 00370 80A87B70 A0C80310 */ sb $t0, 0x0310($a2) ## 00000310
.L80A87B74:
/* 00374 80A87B74 0C01DF64 */ jal Rand_S16Offset
/* 00378 80A87B78 AFA60018 */ sw $a2, 0x0018($sp)
/* 0037C 80A87B7C 8FA60018 */ lw $a2, 0x0018($sp)
/* 00380 80A87B80 90C90311 */ lbu $t1, 0x0311($a2) ## 00000311
/* 00384 80A87B84 A0C2030F */ sb $v0, 0x030F($a2) ## 0000030F
/* 00388 80A87B88 A0C90310 */ sb $t1, 0x0310($a2) ## 00000310
.L80A87B8C:
/* 0038C 80A87B8C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00390 80A87B90 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00394 80A87B94 03E00008 */ jr $ra
/* 00398 80A87B98 00000000 */ nop

View File

@ -1,23 +0,0 @@
glabel func_80A87B9C
/* 0039C 80A87B9C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003A0 80A87BA0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003A4 80A87BA4 84820308 */ lh $v0, 0x0308($a0) ## 00000308
/* 003A8 80A87BA8 8C830300 */ lw $v1, 0x0300($a0) ## 00000300
/* 003AC 80A87BAC 2841EBB0 */ slti $at, $v0, 0xEBB0
/* 003B0 80A87BB0 1420000A */ bne $at, $zero, .L80A87BDC
/* 003B4 80A87BB4 244EFF9A */ addiu $t6, $v0, 0xFF9A ## $t6 = FFFFFF9A
/* 003B8 80A87BB8 A48E0308 */ sh $t6, 0x0308($a0) ## 00000308
/* 003BC 80A87BBC 848F0308 */ lh $t7, 0x0308($a0) ## 00000308
/* 003C0 80A87BC0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 003C4 80A87BC4 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 003C8 80A87BC8 29E1F5D8 */ slti $at, $t7, 0xF5D8
/* 003CC 80A87BCC 50200004 */ beql $at, $zero, .L80A87BE0
/* 003D0 80A87BD0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003D4 80A87BD4 0C00FAFE */ jal func_8003EBF8
/* 003D8 80A87BD8 8C66014C */ lw $a2, 0x014C($v1) ## 0000014C
.L80A87BDC:
/* 003DC 80A87BDC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87BE0:
/* 003E0 80A87BE0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003E4 80A87BE4 03E00008 */ jr $ra
/* 003E8 80A87BE8 00000000 */ nop

View File

@ -1,19 +0,0 @@
glabel func_80A87BEC
/* 003EC 80A87BEC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003F0 80A87BF0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003F4 80A87BF4 AFA5001C */ sw $a1, 0x001C($sp)
/* 003F8 80A87BF8 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 003FC 80A87BFC 44813000 */ mtc1 $at, $f6 ## $f6 = 300.00
/* 00400 80A87C00 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
/* 00404 80A87C04 3C0580A8 */ lui $a1, %hi(func_80A87B9C) ## $a1 = 80A80000
/* 00408 80A87C08 4606203C */ c.lt.s $f4, $f6
/* 0040C 80A87C0C 00000000 */ nop
/* 00410 80A87C10 45020004 */ bc1fl .L80A87C24
/* 00414 80A87C14 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00418 80A87C18 0C2A1E00 */ jal func_80A87800
/* 0041C 80A87C1C 24A57B9C */ addiu $a1, $a1, %lo(func_80A87B9C) ## $a1 = 80A87B9C
/* 00420 80A87C20 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87C24:
/* 00424 80A87C24 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00428 80A87C28 03E00008 */ jr $ra
/* 0042C 80A87C2C 00000000 */ nop

View File

@ -1,52 +0,0 @@
glabel func_80A87C30
/* 00430 80A87C30 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00434 80A87C34 AFB00014 */ sw $s0, 0x0014($sp)
/* 00438 80A87C38 AFBF001C */ sw $ra, 0x001C($sp)
/* 0043C 80A87C3C AFB10018 */ sw $s1, 0x0018($sp)
/* 00440 80A87C40 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00444 80A87C44 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00448 80A87C48 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0044C 80A87C4C 3C0480A9 */ lui $a0, %hi(D_80A88CF0) ## $a0 = 80A90000
/* 00450 80A87C50 24848CF0 */ addiu $a0, $a0, %lo(D_80A88CF0) ## $a0 = 80A88CF0
/* 00454 80A87C54 0C01E00A */ jal Math_Vec3f_DistXZ
/* 00458 80A87C58 24450024 */ addiu $a1, $v0, 0x0024 ## $a1 = 00000024
/* 0045C 80A87C5C 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 00460 80A87C60 44812000 */ mtc1 $at, $f4 ## $f4 = 300.00
/* 00464 80A87C64 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 00468 80A87C68 0331C821 */ addu $t9, $t9, $s1
/* 0046C 80A87C6C 4604003C */ c.lt.s $f0, $f4
/* 00470 80A87C70 00000000 */ nop
/* 00474 80A87C74 4502000D */ bc1fl .L80A87CAC
/* 00478 80A87C78 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0047C 80A87C7C 8F391D44 */ lw $t9, 0x1D44($t9) ## 00011D44
/* 00480 80A87C80 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00484 80A87C84 0320F809 */ jalr $ra, $t9
/* 00488 80A87C88 00000000 */ nop
/* 0048C 80A87C8C 10400006 */ beq $v0, $zero, .L80A87CA8
/* 00490 80A87C90 240E0064 */ addiu $t6, $zero, 0x0064 ## $t6 = 00000064
/* 00494 80A87C94 3C0580A8 */ lui $a1, %hi(func_80A87CEC) ## $a1 = 80A80000
/* 00498 80A87C98 A60E030C */ sh $t6, 0x030C($s0) ## 0000030C
/* 0049C 80A87C9C 24A57CEC */ addiu $a1, $a1, %lo(func_80A87CEC) ## $a1 = 80A87CEC
/* 004A0 80A87CA0 0C2A1E00 */ jal func_80A87800
/* 004A4 80A87CA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A87CA8:
/* 004A8 80A87CA8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
.L80A87CAC:
/* 004AC 80A87CAC 240FFB23 */ addiu $t7, $zero, 0xFB23 ## $t7 = FFFFFB23
/* 004B0 80A87CB0 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014
/* 004B4 80A87CB4 2408FFD0 */ addiu $t0, $zero, 0xFFD0 ## $t0 = FFFFFFD0
/* 004B8 80A87CB8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 004BC 80A87CBC A60F02F6 */ sh $t7, 0x02F6($s0) ## 000002F6
/* 004C0 80A87CC0 A61802F8 */ sh $t8, 0x02F8($s0) ## 000002F8
/* 004C4 80A87CC4 A60802FA */ sh $t0, 0x02FA($s0) ## 000002FA
/* 004C8 80A87CC8 02212821 */ addu $a1, $s1, $at
/* 004CC 80A87CCC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 004D0 80A87CD0 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOC
/* 004D4 80A87CD4 260602B0 */ addiu $a2, $s0, 0x02B0 ## $a2 = 000002B0
/* 004D8 80A87CD8 8FBF001C */ lw $ra, 0x001C($sp)
/* 004DC 80A87CDC 8FB00014 */ lw $s0, 0x0014($sp)
/* 004E0 80A87CE0 8FB10018 */ lw $s1, 0x0018($sp)
/* 004E4 80A87CE4 03E00008 */ jr $ra
/* 004E8 80A87CE8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000

View File

@ -1,45 +0,0 @@
glabel func_80A87CEC
/* 004EC 80A87CEC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 004F0 80A87CF0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 004F4 80A87CF4 8482030C */ lh $v0, 0x030C($a0) ## 0000030C
/* 004F8 80A87CF8 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 004FC 80A87CFC 8C830300 */ lw $v1, 0x0300($a0) ## 00000300
/* 00500 80A87D00 18400004 */ blez $v0, .L80A87D14
/* 00504 80A87D04 3C0580A8 */ lui $a1, %hi(func_80A87EF0) ## $a1 = 80A80000
/* 00508 80A87D08 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 0050C 80A87D0C 1000001D */ beq $zero, $zero, .L80A87D84
/* 00510 80A87D10 A48E030C */ sh $t6, 0x030C($a0) ## 0000030C
.L80A87D14:
/* 00514 80A87D14 24A57EF0 */ addiu $a1, $a1, %lo(func_80A87EF0) ## $a1 = 80A87EF0
/* 00518 80A87D18 AFA3001C */ sw $v1, 0x001C($sp)
/* 0051C 80A87D1C 0C2A1E00 */ jal func_80A87800
/* 00520 80A87D20 AFA70024 */ sw $a3, 0x0024($sp)
/* 00524 80A87D24 8FA40024 */ lw $a0, 0x0024($sp)
/* 00528 80A87D28 3C0F80A9 */ lui $t7, %hi(D_80A88164) ## $t7 = 80A90000
/* 0052C 80A87D2C 8FA3001C */ lw $v1, 0x001C($sp)
/* 00530 80A87D30 25EF8164 */ addiu $t7, $t7, %lo(D_80A88164) ## $t7 = 80A88164
/* 00534 80A87D34 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00538 80A87D38 3C018016 */ lui $at, %hi(gSaveContext+0x1414)
/* 0053C 80A87D3C AC8F1D68 */ sw $t7, 0x1D68($a0) ## 00001D68
/* 00540 80A87D40 A038FA74 */ sb $t8, %lo(gSaveContext+0x1414)($at)
/* 00544 80A87D44 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00548 80A87D48 0C00FAFE */ jal func_8003EBF8
/* 0054C 80A87D4C 8C66014C */ lw $a2, 0x014C($v1) ## 0000014C
/* 00550 80A87D50 8FA70024 */ lw $a3, 0x0024($sp)
/* 00554 80A87D54 84F907A0 */ lh $t9, 0x07A0($a3) ## 000007A0
/* 00558 80A87D58 00194080 */ sll $t0, $t9, 2
/* 0055C 80A87D5C 00E84821 */ addu $t1, $a3, $t0
/* 00560 80A87D60 0C016C69 */ jal func_8005B1A4
/* 00564 80A87D64 8D240790 */ lw $a0, 0x0790($t1) ## 00000790
/* 00568 80A87D68 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0056C 80A87D6C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00570 80A87D70 944A0EDA */ lhu $t2, 0x0EDA($v0) ## 8015F53A
/* 00574 80A87D74 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
/* 00578 80A87D78 354B0400 */ ori $t3, $t2, 0x0400 ## $t3 = 00000400
/* 0057C 80A87D7C 0C01E221 */ jal func_80078884
/* 00580 80A87D80 A44B0EDA */ sh $t3, 0x0EDA($v0) ## 8015F53A
.L80A87D84:
/* 00584 80A87D84 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00588 80A87D88 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0058C 80A87D8C 03E00008 */ jr $ra
/* 00590 80A87D90 00000000 */ nop

View File

@ -1,102 +0,0 @@
.late_rodata
glabel D_80A88D30
.float -1100.0
.text
glabel func_80A87D94
/* 00594 80A87D94 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00598 80A87D98 AFBF003C */ sw $ra, 0x003C($sp)
/* 0059C 80A87D9C AFB00038 */ sw $s0, 0x0038($sp)
/* 005A0 80A87DA0 8CAE1D94 */ lw $t6, 0x1D94($a1) ## 00001D94
/* 005A4 80A87DA4 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 005A8 80A87DA8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005AC 80A87DAC 95C20000 */ lhu $v0, 0x0000($t6) ## 00000000
/* 005B0 80A87DB0 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 005B4 80A87DB4 10410007 */ beq $v0, $at, .L80A87DD4
/* 005B8 80A87DB8 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 005BC 80A87DBC 10410015 */ beq $v0, $at, .L80A87E14
/* 005C0 80A87DC0 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 005C4 80A87DC4 50410031 */ beql $v0, $at, .L80A87E8C
/* 005C8 80A87DC8 9603030A */ lhu $v1, 0x030A($s0) ## 0000030A
/* 005CC 80A87DCC 10000039 */ beq $zero, $zero, .L80A87EB4
/* 005D0 80A87DD0 9483030A */ lhu $v1, 0x030A($a0) ## 0000030A
.L80A87DD4:
/* 005D4 80A87DD4 9603030A */ lhu $v1, 0x030A($s0) ## 0000030A
/* 005D8 80A87DD8 24040014 */ addiu $a0, $zero, 0x0014 ## $a0 = 00000014
/* 005DC 80A87DDC 24050014 */ addiu $a1, $zero, 0x0014 ## $a1 = 00000014
/* 005E0 80A87DE0 306F0002 */ andi $t7, $v1, 0x0002 ## $t7 = 00000000
/* 005E4 80A87DE4 51E00034 */ beql $t7, $zero, .L80A87EB8
/* 005E8 80A87DE8 30780001 */ andi $t8, $v1, 0x0001 ## $t8 = 00000000
/* 005EC 80A87DEC 0C01DF64 */ jal Rand_S16Offset
/* 005F0 80A87DF0 A200030E */ sb $zero, 0x030E($s0) ## 0000030E
/* 005F4 80A87DF4 9618030A */ lhu $t8, 0x030A($s0) ## 0000030A
/* 005F8 80A87DF8 A202030F */ sb $v0, 0x030F($s0) ## 0000030F
/* 005FC 80A87DFC A2000310 */ sb $zero, 0x0310($s0) ## 00000310
/* 00600 80A87E00 3B190002 */ xori $t9, $t8, 0x0002 ## $t9 = 00000002
/* 00604 80A87E04 A2000311 */ sb $zero, 0x0311($s0) ## 00000311
/* 00608 80A87E08 A619030A */ sh $t9, 0x030A($s0) ## 0000030A
/* 0060C 80A87E0C 10000029 */ beq $zero, $zero, .L80A87EB4
/* 00610 80A87E10 3323FFFF */ andi $v1, $t9, 0xFFFF ## $v1 = 00000002
.L80A87E14:
/* 00614 80A87E14 9608030A */ lhu $t0, 0x030A($s0) ## 0000030A
/* 00618 80A87E18 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
/* 0061C 80A87E1C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00620 80A87E20 35090001 */ ori $t1, $t0, 0x0001 ## $t1 = 00000001
/* 00624 80A87E24 3123FFFF */ andi $v1, $t1, 0xFFFF ## $v1 = 00000001
/* 00628 80A87E28 306A0008 */ andi $t2, $v1, 0x0008 ## $t2 = 00000000
/* 0062C 80A87E2C 15400021 */ bne $t2, $zero, .L80A87EB4
/* 00630 80A87E30 A609030A */ sh $t1, 0x030A($s0) ## 0000030A
/* 00634 80A87E34 3C0180A9 */ lui $at, %hi(D_80A88D30) ## $at = 80A90000
/* 00638 80A87E38 C4248D30 */ lwc1 $f4, %lo(D_80A88D30)($at)
/* 0063C 80A87E3C 3C0142D2 */ lui $at, 0x42D2 ## $at = 42D20000
/* 00640 80A87E40 44813000 */ mtc1 $at, $f6 ## $f6 = 105.00
/* 00644 80A87E44 3C01C1D8 */ lui $at, 0xC1D8 ## $at = C1D80000
/* 00648 80A87E48 44814000 */ mtc1 $at, $f8 ## $f8 = -27.00
/* 0064C 80A87E4C 24070101 */ addiu $a3, $zero, 0x0101 ## $a3 = 00000101
/* 00650 80A87E50 AFA0001C */ sw $zero, 0x001C($sp)
/* 00654 80A87E54 AFA00020 */ sw $zero, 0x0020($sp)
/* 00658 80A87E58 AFA00024 */ sw $zero, 0x0024($sp)
/* 0065C 80A87E5C AFA00028 */ sw $zero, 0x0028($sp)
/* 00660 80A87E60 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00664 80A87E64 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00668 80A87E68 0C00C916 */ jal Actor_SpawnAsChild
/* 0066C 80A87E6C E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00670 80A87E70 960B030A */ lhu $t3, 0x030A($s0) ## 0000030A
/* 00674 80A87E74 AE020304 */ sw $v0, 0x0304($s0) ## 00000304
/* 00678 80A87E78 356C0008 */ ori $t4, $t3, 0x0008 ## $t4 = 00000008
/* 0067C 80A87E7C A60C030A */ sh $t4, 0x030A($s0) ## 0000030A
/* 00680 80A87E80 1000000C */ beq $zero, $zero, .L80A87EB4
/* 00684 80A87E84 3183FFFF */ andi $v1, $t4, 0xFFFF ## $v1 = 00000008
/* 00688 80A87E88 9603030A */ lhu $v1, 0x030A($s0) ## 0000030A
.L80A87E8C:
/* 0068C 80A87E8C 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00690 80A87E90 306D0002 */ andi $t5, $v1, 0x0002 ## $t5 = 00000000
/* 00694 80A87E94 15A00007 */ bne $t5, $zero, .L80A87EB4
/* 00698 80A87E98 346F0002 */ ori $t7, $v1, 0x0002 ## $t7 = 0000000A
/* 0069C 80A87E9C A200030E */ sb $zero, 0x030E($s0) ## 0000030E
/* 006A0 80A87EA0 A200030F */ sb $zero, 0x030F($s0) ## 0000030F
/* 006A4 80A87EA4 A20E0310 */ sb $t6, 0x0310($s0) ## 00000310
/* 006A8 80A87EA8 A2000311 */ sb $zero, 0x0311($s0) ## 00000311
/* 006AC 80A87EAC A60F030A */ sh $t7, 0x030A($s0) ## 0000030A
/* 006B0 80A87EB0 31E3FFFF */ andi $v1, $t7, 0xFFFF ## $v1 = 0000000A
.L80A87EB4:
/* 006B4 80A87EB4 30780001 */ andi $t8, $v1, 0x0001 ## $t8 = 00000000
.L80A87EB8:
/* 006B8 80A87EB8 13000008 */ beq $t8, $zero, .L80A87EDC
/* 006BC 80A87EBC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 006C0 80A87EC0 0C00BE0A */ jal Audio_PlayActorSound2
/* 006C4 80A87EC4 2405206D */ addiu $a1, $zero, 0x206D ## $a1 = 0000206D
/* 006C8 80A87EC8 86020308 */ lh $v0, 0x0308($s0) ## 00000308
/* 006CC 80A87ECC 2841EBB0 */ slti $at, $v0, 0xEBB0
/* 006D0 80A87ED0 14200002 */ bne $at, $zero, .L80A87EDC
/* 006D4 80A87ED4 2459FF9A */ addiu $t9, $v0, 0xFF9A ## $t9 = FFFFFF9A
/* 006D8 80A87ED8 A6190308 */ sh $t9, 0x0308($s0) ## 00000308
.L80A87EDC:
/* 006DC 80A87EDC 8FBF003C */ lw $ra, 0x003C($sp)
/* 006E0 80A87EE0 8FB00038 */ lw $s0, 0x0038($sp)
/* 006E4 80A87EE4 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 006E8 80A87EE8 03E00008 */ jr $ra
/* 006EC 80A87EEC 00000000 */ nop

View File

@ -1,25 +0,0 @@
glabel func_80A87EF0
/* 006F0 80A87EF0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006F4 80A87EF4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 006F8 80A87EF8 AFA40018 */ sw $a0, 0x0018($sp)
/* 006FC 80A87EFC AFA5001C */ sw $a1, 0x001C($sp)
/* 00700 80A87F00 9482030A */ lhu $v0, 0x030A($a0) ## 0000030A
/* 00704 80A87F04 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 00708 80A87F08 304E0004 */ andi $t6, $v0, 0x0004 ## $t6 = 00000000
/* 0070C 80A87F0C 15C00009 */ bne $t6, $zero, .L80A87F34
/* 00710 80A87F10 344F0004 */ ori $t7, $v0, 0x0004 ## $t7 = 00000004
/* 00714 80A87F14 A48F030A */ sh $t7, 0x030A($a0) ## 0000030A
/* 00718 80A87F18 8C840304 */ lw $a0, 0x0304($a0) ## 00000304
/* 0071C 80A87F1C 50800006 */ beql $a0, $zero, .L80A87F38
/* 00720 80A87F20 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00724 80A87F24 0C00B55C */ jal Actor_Kill
/* 00728 80A87F28 AFA50018 */ sw $a1, 0x0018($sp)
/* 0072C 80A87F2C 8FA50018 */ lw $a1, 0x0018($sp)
/* 00730 80A87F30 ACA0011C */ sw $zero, 0x011C($a1) ## 0000011C
.L80A87F34:
/* 00734 80A87F34 8FBF0014 */ lw $ra, 0x0014($sp)
.L80A87F38:
/* 00738 80A87F38 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0073C 80A87F3C 03E00008 */ jr $ra
/* 00740 80A87F40 00000000 */ nop

View File

@ -1,4 +0,0 @@
glabel func_80A87F44
/* 00744 80A87F44 AFA40000 */ sw $a0, 0x0000($sp)
/* 00748 80A87F48 03E00008 */ jr $ra
/* 0074C 80A87F4C AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -0,0 +1,77 @@
<Root>
<File Name="object_jj" Segment="6">
<!-- Jabu Jabu animation (waggling fins etc.) -->
<Animation Name="gJabuJabuAnim" Offset="0x1F4C"/>
<!-- Jabu Jabu eye textures -->
<Texture Name="gJabuJabuEyeOpenTex" OutName="jabu_jabu_eye_open" Format="rgb5a1" Width="16" Height="32" Offset="0x7698"/>
<Texture Name="gJabuJabuEyeHalfTex" OutName="jabu_jabu_eye_half" Format="rgb5a1" Width="16" Height="32" Offset="0x7A98"/>
<Texture Name="gJabuJabuEyeClosedTex" OutName="jabu_jabu_eye_closed" Format="rgb5a1" Width="16" Height="32" Offset="0x7E98"/>
<!-- Jabu Jabu skeleton -->
<Skeleton Name="gJabuJabuSkel" Type="Flex" LimbType="Standard" Offset="0xB9A8"/>
<!-- Jabu Jabu limb displaylists -->
<DList Name="gJabuJabuBodyDL" Offset="0x5690"/>
<DList Name="gJabuJabuLeftUpperFlipperDL" Offset="0x55B0"/>
<DList Name="gJabuJabuLeftMidFlipperDL" Offset="0x54D0"/>
<DList Name="gJabuJabuLeftLowerFlipperDL" Offset="0x5400"/>
<DList Name="gJabuJabuHeadDL" Offset="0x4920"/>
<DList Name="gJabuJabuLeftFrillDL" Offset="0x4880"/>
<DList Name="gJabuJabuRightFrillDL" Offset="0x47E0"/>
<DList Name="gJabuJabuRightUpperFlipperDL" Offset="0x4700"/>
<DList Name="gJabuJabuRightMidFlipperDL" Offset="0x4648"/>
<DList Name="gJabuJabuRightLowerFlipperDL" Offset="0x4578"/>
<DList Name="gJabuJabuFlukeDL" Offset="0x44A0"/>
<!-- Jabu Jabu limbs -->
<!-- Only limbs with attached dLists are included for now; others are indicated by spaces -->
<Limb Name="gJabuJabuBodyLimb" LimbType="Standard" Offset="0xB87C"/><!-- Limb 4 -->
<Limb Name="gJabuJabuLeftUpperFlipperLimb" LimbType="Standard" Offset="0xB894"/><!-- Limb 6 -->
<Limb Name="gJabuJabuLeftMidFlipperLimb" LimbType="Standard" Offset="0xB8AC"/><!-- Limb 8 -->
<Limb Name="gJabuJabuLeftLowerFlipperLimb" LimbType="Standard" Offset="0xB8B8"/><!-- Limb 9 -->
<Limb Name="gJabuJabuHeadLimb" LimbType="Standard" Offset="0xB8C4"/><!-- Limb 10 -->
<Limb Name="gJabuJabuLeftFrillLimb" LimbType="Standard" Offset="0xB8DC"/><!-- Limb 12 -->
<Limb Name="gJabuJabuRightFrillLimb" LimbType="Standard" Offset="0xB8F4"/><!-- Limb 14 -->
<Limb Name="gJabuJabuRightUpperFlipperLimb" LimbType="Standard" Offset="0xB90C"/><!-- Limb 16 -->
<Limb Name="gJabuJabuRightMidFlipperLimb" LimbType="Standard" Offset="0xB924"/><!-- Limb 18 -->
<Limb Name="gJabuJabuRightLowerFlipperLimb" LimbType="Standard" Offset="0xB930"/><!-- Limb 19 -->
<Limb Name="gJabuJabuFlukeLimb" LimbType="Standard" Offset="0xB948"/><!-- Limb 21 -->
<!-- Jabu Jabu Limb textures -->
<Texture Name="gJabuJabuFrillTex" OutName="jabu_jabu_frill" Format="rgb5a1" Width="32" Height="32" Offset="0x5B58"/>
<Texture Name="gJabuJabuNostrilTex" OutName="jabu_jabu_nostril" Format="rgb5a1" Width="32" Height="16" Offset="0x6358"/>
<Texture Name="gJabuJabuNoseDecorationTex" OutName="jabu_jabu_nose_decoration" Format="rgb5a1" Width="8" Height="32" Offset="0x6758"/>
<Texture Name="gJabuJabuToothTex" OutName="jabu_jabu_tooth" Format="rgb5a1" Width="8" Height="16" Offset="0x6958"/>
<Texture Name="gJabuJabuLipTex" OutName="jabu_jabu_lip" Format="rgb5a1" Width="8" Height="16" Offset="0x6A58"/>
<Texture Name="gJabuJabuLipMouthCornerTex" OutName="jabu_jabu_lip_mouth_corner" Format="rgb5a1" Width="16" Height="16" Offset="0x6B58"/>
<Texture Name="gJabuJabuDiademSideTex" OutName="jabu_jabu_diadem_side" Format="rgb5a1" Width="8" Height="16" Offset="0x6D58"/>
<Texture Name="gJabuJabuLateralTex" OutName="jabu_jabu_lateral" Format="rgb5a1" Width="16" Height="64" Offset="0x6E58"/>
<Texture Name="gJabuJabuEyeOrbitTex" OutName="jabu_jabu_eye_orbit" Format="rgb5a1" Width="4" Height="8" Offset="0x7658"/>
<Texture Name="gJabuJabuDorsalTex" OutName="jabu_jabu_dorsal" Format="rgb5a1" Width="32" Height="64" Offset="0x8298"/>
<Texture Name="gJabuJabuCapOuterTex" OutName="jabu_jabu_cap_outer" Format="rgb5a1" Width="4" Height="8" Offset="0x9298"/>
<Texture Name="gJabuJabuCapInnerTex" OutName="jabu_jabu_cap_inner" Format="rgb5a1" Width="8" Height="8" Offset="0x92D8"/>
<Texture Name="gJabuJabuMouthRoofTex" OutName="jabu_jabu_mouth_roof" Format="rgb5a1" Width="32" Height="64" Offset="0x9358"/>
<Texture Name="gJabuJabuDiademCenterTex" OutName="jabu_jabu_diadem_center" Format="rgb5a1" Width="16" Height="32" Offset="0xA358"/>
<Texture Name="gJabuJabuFinTex" OutName="jabu_jabu_fin" Format="rgb5a1" Width="16" Height="8" Offset="0xA758"/>
<Texture Name="gJabuJabuMouthFloorTex" OutName="jabu_jabu_mouth_floor" Format="rgb5a1" Width="32" Height="64" Offset="0xA858"/>
<!-- Jabu Jabu collision -->
<Collision Name="gJabuJabuHeadCol" Offset="0x0A1C"/>
<Collision Name="gJabuJabuBodyCol" Offset="0x1830"/>
<Collision Name="gJabuJabuUnusedCol" Offset="0xBA8C"/>
</File>
</Root>

File diff suppressed because one or more lines are too long

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_80A88D40
.incbin "baserom/ovl_En_Jj", 0x1540, 0x000000D0

6
spec
View File

@ -2511,8 +2511,7 @@ endseg
beginseg
name "ovl_En_Jj"
include "build/src/overlays/actors/ovl_En_Jj/z_en_jj.o"
include "build/data/overlays/actors/z_en_jj.data.o"
include "build/data/overlays/actors/z_en_jj.reloc.o"
include "build/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o"
endseg
beginseg
@ -3845,7 +3844,8 @@ endseg
beginseg
name "object_jj"
romalign 0x1000
include "build/baserom/object_jj.o"
include "build/assets/objects/object_jj/object_jj.o"
number 6
endseg
beginseg

View File

@ -5,23 +5,31 @@
*/
#include "z_en_jj.h"
#include "objects/object_jj/object_jj.h"
#include "overlays/actors/ovl_Eff_Dust/z_eff_dust.h"
#define FLAGS 0x00000030
#define THIS ((EnJj*)thisx)
typedef enum {
/* 0 */ JABUJABU_EYE_OPEN,
/* 1 */ JABUJABU_EYE_HALF,
/* 2 */ JABUJABU_EYE_CLOSED,
/* 3 */ JABUJABU_EYE_MAX
} EnJjEyeState;
void EnJj_Init(Actor* thisx, GlobalContext* globalCtx);
void EnJj_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnJj_Update(Actor* thisx, GlobalContext* globalCtx);
void EnJj_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06000A1C;
extern UNK_TYPE D_06001830;
extern UNK_TYPE D_06001F4C;
extern UNK_TYPE D_0600B9A8;
extern UNK_TYPE D_0600BA8C;
void EnJj_UpdateStaticCollision(Actor* thisx, GlobalContext* globalCtx);
void EnJj_WaitToOpenMouth(EnJj* this, GlobalContext* globalCtx);
void EnJj_WaitForFish(EnJj* this, GlobalContext* globalCtx);
void EnJj_BeginCutscene(EnJj* this, GlobalContext* globalCtx);
void EnJj_RemoveDust(EnJj* this, GlobalContext* globalCtx);
/*
const ActorInit En_Jj_InitVars = {
ACTOR_EN_JJ,
ACTORCAT_ITEMACTION,
@ -34,7 +42,13 @@ const ActorInit En_Jj_InitVars = {
(ActorFunc)EnJj_Draw,
};
static ColliderCylinderInit D_80A88CB4 = {
static s32 sUnused = 0;
#include "z_en_jj_cutscene_data.c" EARLY
static s32 sUnused2[] = { 0, 0 };
static ColliderCylinderInit sCylinderInit = {
{
COLTYPE_NONE,
AT_NONE,
@ -53,29 +67,263 @@ static ColliderCylinderInit D_80A88CB4 = {
},
{ 170, 150, 0, { 0, 0, 0 } },
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87800.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/EnJj_Init.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 87, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 3300, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/EnJj_Destroy.s")
void EnJj_SetupAction(EnJj* this, EnJjActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87B1C.s")
void EnJj_Init(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
EnJj* this = THIS;
CollisionHeader* colHeader = NULL;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87B9C.s")
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87BEC.s")
switch (this->dyna.actor.params) {
case JABUJABU_MAIN:
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gJabuJabuSkel, &gJabuJabuAnim, this->jointTable,
this->morphTable, 22);
Animation_PlayLoop(&this->skelAnime, &gJabuJabuAnim);
this->unk_30A = 0;
this->eyeIndex = 0;
this->blinkTimer = 0;
this->extraBlinkCounter = 0;
this->extraBlinkTotal = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87C30.s")
if (gSaveContext.eventChkInf[3] & 0x400) { // Fish given
EnJj_SetupAction(this, EnJj_WaitToOpenMouth);
} else {
EnJj_SetupAction(this, EnJj_WaitForFish);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87CEC.s")
this->bodyCollisionActor = (DynaPolyActor*)Actor_SpawnAsChild(
&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_EN_JJ, this->dyna.actor.world.pos.x - 10.0f,
this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, this->dyna.actor.world.rot.y, 0,
JABUJABU_COLLISION);
DynaPolyActor_Init(&this->dyna, 0);
CollisionHeader_GetVirtual(&gJabuJabuHeadCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->dyna.actor, &sCylinderInit);
this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE;
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87D94.s")
case JABUJABU_COLLISION:
DynaPolyActor_Init(&this->dyna, 0);
CollisionHeader_GetVirtual(&gJabuJabuBodyCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
func_8003ECA8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
this->dyna.actor.update = EnJj_UpdateStaticCollision;
this->dyna.actor.draw = NULL;
Actor_SetScale(&this->dyna.actor, 0.087f);
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87EF0.s")
case JABUJABU_UNUSED_COLLISION:
DynaPolyActor_Init(&this->dyna, 0);
CollisionHeader_GetVirtual(&gJabuJabuUnusedCol, &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
this->dyna.actor.update = EnJj_UpdateStaticCollision;
this->dyna.actor.draw = NULL;
Actor_SetScale(&this->dyna.actor, 0.087f);
break;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/func_80A87F44.s")
void EnJj_Destroy(Actor* thisx, GlobalContext* globalCtx) {
EnJj* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/EnJj_Update.s")
switch (this->dyna.actor.params) {
case JABUJABU_MAIN:
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
Collider_DestroyCylinder(globalCtx, &this->collider);
break;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Jj/EnJj_Draw.s")
case JABUJABU_COLLISION:
case JABUJABU_UNUSED_COLLISION:
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
break;
}
}
/**
* Blink routine. Blinks at the end of each randomised blinkTimer cycle. If extraBlinkCounter is not zero, blink that
* many more times before resuming random blinkTimer cycles. extraBlinkTotal can be set to a positive number to blink
* that many extra times at the end of every blinkTimer cycle, but the actor always sets it to zero, so only one
* multiblink happens when extraBlinkCounter is nonzero.
*/
void EnJj_Blink(EnJj* this) {
if (this->blinkTimer > 0) {
this->blinkTimer--;
} else {
this->eyeIndex++;
if (this->eyeIndex >= JABUJABU_EYE_MAX) {
this->eyeIndex = JABUJABU_EYE_OPEN;
if (this->extraBlinkCounter > 0) {
this->extraBlinkCounter--;
} else {
this->blinkTimer = Rand_S16Offset(20, 20);
this->extraBlinkCounter = this->extraBlinkTotal;
}
}
}
}
void EnJj_OpenMouth(EnJj* this, GlobalContext* globalCtx) {
DynaPolyActor* bodyCollisionActor = this->bodyCollisionActor;
if (this->mouthOpenAngle >= -5200) {
this->mouthOpenAngle -= 102;
if (this->mouthOpenAngle < -2600) {
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, bodyCollisionActor->bgId);
}
}
}
void EnJj_WaitToOpenMouth(EnJj* this, GlobalContext* globalCtx) {
if (this->dyna.actor.xzDistToPlayer < 300.0f) {
EnJj_SetupAction(this, EnJj_OpenMouth);
}
}
void EnJj_WaitForFish(EnJj* this, GlobalContext* globalCtx) {
static Vec3f feedingSpot = { -1589.0f, 53.0f, -43.0f };
Player* player = PLAYER;
if ((Math_Vec3f_DistXZ(&feedingSpot, &player->actor.world.pos) < 300.0f) &&
globalCtx->isPlayerDroppingFish(globalCtx)) {
this->cutsceneCountdownTimer = 100;
EnJj_SetupAction(this, EnJj_BeginCutscene);
}
this->collider.dim.pos.x = -1245;
this->collider.dim.pos.y = 20;
this->collider.dim.pos.z = -48;
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
void EnJj_BeginCutscene(EnJj* this, GlobalContext* globalCtx) {
DynaPolyActor* bodyCollisionActor = this->bodyCollisionActor;
if (this->cutsceneCountdownTimer > 0) {
this->cutsceneCountdownTimer--;
} else {
EnJj_SetupAction(this, EnJj_RemoveDust);
globalCtx->csCtx.segment = &D_80A88164;
gSaveContext.cutsceneTrigger = 1;
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, bodyCollisionActor->bgId);
func_8005B1A4(ACTIVE_CAM);
gSaveContext.eventChkInf[3] |= 0x400;
func_80078884(NA_SE_SY_CORRECT_CHIME);
}
}
void EnJj_CutsceneUpdate(EnJj* this, GlobalContext* globalCtx) {
switch (globalCtx->csCtx.npcActions[2]->action) {
case 1:
if (this->unk_30A & 2) {
this->eyeIndex = 0;
this->blinkTimer = Rand_S16Offset(20, 20);
this->extraBlinkCounter = 0;
this->extraBlinkTotal = 0;
this->unk_30A ^= 2;
}
break;
case 2:
this->unk_30A |= 1;
if (!(this->unk_30A & 8)) {
this->dust = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_EFF_DUST,
-1100.0f, 105.0f, -27.0f, 0, 0, 0, EFF_DUST_TYPE_0);
this->unk_30A |= 8;
}
break;
case 3:
if (!(this->unk_30A & 2)) {
this->eyeIndex = 0;
this->blinkTimer = 0;
this->extraBlinkCounter = 1;
this->extraBlinkTotal = 0;
this->unk_30A |= 2;
}
break;
}
if (this->unk_30A & 1) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_JABJAB_BREATHE - SFX_FLAG);
if (this->mouthOpenAngle >= -5200) {
this->mouthOpenAngle -= 102;
}
}
}
void EnJj_RemoveDust(EnJj* this, GlobalContext* globalCtx) {
Actor* dust;
if (!(this->unk_30A & 4)) {
this->unk_30A |= 4;
dust = this->dust;
if (dust != NULL) {
Actor_Kill(dust);
this->dyna.actor.child = NULL;
}
}
}
void EnJj_UpdateStaticCollision(Actor* thisx, GlobalContext* globalCtx) {
}
void EnJj_Update(Actor* thisx, GlobalContext* globalCtx) {
EnJj* this = THIS;
if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.npcActions[2] != NULL)) {
EnJj_CutsceneUpdate(this, globalCtx);
} else {
this->actionFunc(this, globalCtx);
if (this->skelAnime.curFrame == 41.0f) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_JABJAB_GROAN);
}
}
EnJj_Blink(this);
SkelAnime_Update(&this->skelAnime);
Actor_SetScale(&this->dyna.actor, 0.087f);
// Head
this->skelAnime.jointTable[10].z = this->mouthOpenAngle;
}
static u64* sEyeTextures[] = {
gJabuJabuEyeOpenTex,
gJabuJabuEyeHalfTex,
gJabuJabuEyeClosedTex,
};
void EnJj_Draw(Actor* thisx, GlobalContext* globalCtx2) {
GlobalContext* globalCtx = globalCtx2;
EnJj* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_jj.c", 879);
func_800943C8(globalCtx->state.gfxCtx);
Matrix_Translate(0.0f, (cosf(this->skelAnime.curFrame * (M_PI / 41.0f)) * 10.0f) - 10.0f, 0.0f, MTXMODE_APPLY);
Matrix_Scale(10.0f, 10.0f, 10.0f, MTXMODE_APPLY);
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIndex]));
SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
0, 0, this);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_jj.c", 898);
}

View File

@ -6,11 +6,33 @@
struct EnJj;
typedef void (*EnJjActionFunc)(struct EnJj*, GlobalContext*);
typedef struct EnJj {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1C8];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ SkelAnime skelAnime;
/* 0x01A8 */ Vec3s jointTable[22];
/* 0x022C */ Vec3s morphTable[22];
/* 0x02B0 */ ColliderCylinder collider;
/* 0x02FC */ EnJjActionFunc actionFunc;
/* 0x0300 */ DynaPolyActor* bodyCollisionActor;
/* 0x0304 */ Actor* dust;
/* 0x0308 */ s16 mouthOpenAngle;
/* 0x030A */ u16 unk_30A;
/* 0x030C */ s16 cutsceneCountdownTimer;
/* 0x030E */ u8 eyeIndex;
/* 0x030F */ u8 blinkTimer;
/* 0x0310 */ u8 extraBlinkCounter;
/* 0x0311 */ u8 extraBlinkTotal;
} EnJj; // size = 0x0314
typedef enum {
/* -1 */ JABUJABU_MAIN = -1, // Head, drawn body, handles updating
/* 0 */ JABUJABU_COLLISION, // Static collision for body
/* 1 */ JABUJABU_UNUSED_COLLISION // Shaped like a screen
} EnJjType;
extern const ActorInit En_Jj_InitVars;
#endif

View File

@ -0,0 +1,158 @@
#include "z_en_jj.h"
#include "z64cutscene_commands.h"
// clang-format off
static CutsceneData D_80A88164[] = {
CS_BEGIN_CUTSCENE(26, 1629),
CS_PLAYER_ACTION_LIST(4),
CS_PLAYER_ACTION(0x0005, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f),
CS_PLAYER_ACTION(0x0003, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f),
CS_PLAYER_ACTION(0x0006, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f),
CS_PLAYER_ACTION(0x0020, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037e-29f, 0.0f, 1.4e-45f),
CS_NPC_ACTION_LIST(68, 4),
CS_NPC_ACTION(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f),
CS_NPC_ACTION(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142448425293f, 11.142857551574707f, -8.857142448425293f),
CS_NPC_ACTION(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.0256404876709f, 0.0f, -27.0256404876709f),
CS_NPC_ACTION(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION_LIST(67, 5),
CS_NPC_ACTION(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION_LIST(69, 3),
CS_NPC_ACTION(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f),
CS_NPC_ACTION(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083332985639572f, 0.0f),
CS_NPC_ACTION(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f),
CS_MISC_LIST(1),
CS_MISC(0x000C, 1095, 1161, 0x0000, 0x00000000, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000000, 0x00000000),
CS_SCENE_TRANS_FX(0x0009, 0, 10),
CS_PLAYER_ACTION_LIST(1),
CS_PLAYER_ACTION(0x0035, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f),
CS_CAM_POS_LIST(0, 1091),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x015C),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x016D),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x017E),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0223),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x7065),
CS_CAM_POS_LIST(60, 1151),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x015C),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x016D),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x017E),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x0223),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.399944f, -1532, 251, 222, 0x7065),
CS_CAM_POS_LIST(90, 351),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1694, 380, 451, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAC10),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0164),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAD78),
CS_CAM_POS_LIST(220, 392),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC10),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000),
CS_CAM_POS_LIST(240, 1331),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC10),
CS_CAM_POS_LIST(280, 1371),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC10),
CS_CAM_POS_LIST(310, 1421),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1649, 177, -59, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1533, 224, -59, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1243, 180, -59, 0xAC10),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0164),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 45.399944f, -953, 71, -55, 0xAD78),
CS_CAM_POS_LIST(355, 1466),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC34),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x4428),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC10),
CS_CAM_POS(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000),
CS_CAM_POS(CS_CMD_STOP, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000),
CS_CAM_FOCUS_POINT_LIST(0, 1120),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -1724, -5, -45, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC10),
CS_CAM_FOCUS_POINT_LIST(60, 1180),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -1440, 241, 134, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC10),
CS_CAM_FOCUS_POINT_LIST(90, 380),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, -1610, 348, 373, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 35.399906158447266f, -1614, 338, 367, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAC10),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0164),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAD78),
CS_CAM_FOCUS_POINT_LIST(220, 421),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 70, 45.399944f, -1724, -5, -45, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 5, 45.399944f, -1724, -5, -45, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 6, 45.79994583129883f, -1593, 150, -146, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0xAC10),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000),
CS_CAM_FOCUS_POINT_LIST(240, 1360),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945068359375f, -1712, 74, -37, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC10),
CS_CAM_FOCUS_POINT_LIST(280, 1400),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945068359375f, -1619, 99, -50, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC10),
CS_CAM_FOCUS_POINT_LIST(310, 1450),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x0B, 30, 90.99960327148438f, -1610, 141, -59, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x09, 10, 90.79960632324219f, -1599, 114, -57, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0xFC, 10, 90.39961242675781f, -1528, 192, -54, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 90.599609375f, -1427, 164, -54, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0xCB, 10, 90.39961242675781f, -1138, 119, -37, 0xAC10),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x20, 10, 90.39961242675781f, -832, 50, -51, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -836, 35, -51, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -836, 35, -51, 0x0164),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 45.399944f, -836, 35, -51, 0xAD78),
CS_CAM_FOCUS_POINT_LIST(355, 1495),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0xAC34),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.60000228881836f, -1706, 111, -6, 0x4428),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 10, 60.60000228881836f, -1721, 82, -42, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 1000, 60.60000228881836f, -1721, 82, -42, 0xAC10),
CS_CAM_FOCUS_POINT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000),
CS_CAM_FOCUS_POINT(CS_CMD_STOP, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000),
CS_SCENE_TRANS_FX(0x000B, 335, 342),
CS_TERMINATOR(JABU_JABU_INTRO, 345, 395),
CS_NPC_ACTION_LIST(62, 1),
CS_NPC_ACTION(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f),
CS_END(),
};
// clang-format on

View File

@ -350,7 +350,7 @@ void MagicFire_UpdateBeforeCast(Actor* thisx, GlobalContext* globalCtx) {
if (this->actionTimer > 0) {
this->actionTimer--;
} else {
this->actor.update = &MagicFire_Update;
this->actor.update = MagicFire_Update;
func_8002F7DC(&player->actor, NA_SE_PL_MAGIC_FIRE);
}
this->actor.world.pos = player->actor.world.pos;

View File

@ -2009,13 +2009,6 @@ D_06015814 = 0x06015814;
D_0601646C = 0x0601646C;
D_06018C38 = 0x06018C38;
// z_en_jj
D_06000A1C = 0x06000A1C;
D_06001830 = 0x06001830;
D_06001F4C = 0x06001F4C;
D_0600B9A8 = 0x0600B9A8;
D_0600BA8C = 0x0600BA8C;
// z_en_kanban
D_06000C30 = 0x06000C30;
D_06001630 = 0x06001630;