From 1fbc0f1943ae6083d38ea53208c5fa988cedd72f Mon Sep 17 00:00:00 2001 From: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> Date: Sun, 31 Jan 2021 23:39:41 +0000 Subject: [PATCH] Gerudo3 OK and documented (#593) * Ge3: OK and data migrated * Functions and most variables named * finished enums for limbs, inlined data * spec updated, asm deleted * fix dists * changes * changes Co-authored-by: Fig02 --- .../actors/ovl_En_Ge3/EnGe3_Destroy.s | 12 - .../overlays/actors/ovl_En_Ge3/EnGe3_Draw.s | 79 ------ .../overlays/actors/ovl_En_Ge3/EnGe3_Init.s | 71 ----- .../overlays/actors/ovl_En_Ge3/EnGe3_Update.s | 18 -- .../actors/ovl_En_Ge3/func_80A34620.s | 44 --- .../actors/ovl_En_Ge3/func_80A347F4.s | 80 ------ .../actors/ovl_En_Ge3/func_80A3490C.s | 78 ------ .../actors/ovl_En_Ge3/func_80A34A20.s | 26 -- .../actors/ovl_En_Ge3/func_80A34A80.s | 9 - .../actors/ovl_En_Ge3/func_80A34AA0.s | 27 -- .../actors/ovl_En_Ge3/func_80A34B00.s | 38 --- .../actors/ovl_En_Ge3/func_80A34B90.s | 48 ---- .../actors/ovl_En_Ge3/func_80A34C40.s | 46 ---- .../actors/ovl_En_Ge3/func_80A34CE4.s | 40 --- .../actors/ovl_En_Ge3/func_80A34D68.s | 47 ---- .../actors/ovl_En_Ge3/func_80A34E58.s | 127 --------- .../actors/ovl_En_Ge3/func_80A35004.s | 25 -- data/overlays/actors/z_en_ge3.data.s | 30 -- data/overlays/actors/z_en_ge3.reloc.s | 13 - spec | 3 +- src/overlays/actors/ovl_En_Ge3/z_en_ge3.c | 256 ++++++++++++++++-- src/overlays/actors/ovl_En_Ge3/z_en_ge3.h | 14 +- src/overlays/actors/ovl_En_GeldB/z_en_geldb.c | 47 ++-- src/overlays/actors/ovl_En_GeldB/z_en_geldb.h | 36 ++- 24 files changed, 305 insertions(+), 909 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34620.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A347F4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A3490C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A20.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A80.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34AA0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B00.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B90.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34C40.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34CE4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34D68.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34E58.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A35004.s delete mode 100644 data/overlays/actors/z_en_ge3.data.s delete mode 100644 data/overlays/actors/z_en_ge3.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Destroy.s deleted file mode 100644 index 264ec99b1c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Destroy.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel EnGe3_Destroy -/* 001AC 80A347CC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 001B0 80A347D0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 001B4 80A347D4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 001B8 80A347D8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 001BC 80A347DC 0C0170EB */ jal Collider_DestroyCylinder - -/* 001C0 80A347E0 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C -/* 001C4 80A347E4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001C8 80A347E8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 001CC 80A347EC 03E00008 */ jr $ra -/* 001D0 80A347F0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Draw.s deleted file mode 100644 index 03c21ad7e0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Draw.s +++ /dev/null @@ -1,79 +0,0 @@ -.rdata -glabel D_80A35200 - .asciz "../z_en_ge3.c" - .balign 4 - -glabel D_80A35210 - .asciz "../z_en_ge3.c" - .balign 4 - -.text -glabel EnGe3_Draw -/* 00A40 80A35060 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8 -/* 00A44 80A35064 AFB10028 */ sw $s1, 0x0028($sp) -/* 00A48 80A35068 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00A4C 80A3506C AFBF002C */ sw $ra, 0x002C($sp) -/* 00A50 80A35070 AFB00024 */ sw $s0, 0x0024($sp) -/* 00A54 80A35074 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 00A58 80A35078 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00A5C 80A3507C 3C0680A3 */ lui $a2, %hi(D_80A35200) ## $a2 = 80A30000 -/* 00A60 80A35080 24C65200 */ addiu $a2, $a2, %lo(D_80A35200) ## $a2 = 80A35200 -/* 00A64 80A35084 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4 -/* 00A68 80A35088 24070266 */ addiu $a3, $zero, 0x0266 ## $a3 = 00000266 -/* 00A6C 80A3508C 0C031AB1 */ jal Graph_OpenDisps -/* 00A70 80A35090 AFA5004C */ sw $a1, 0x004C($sp) -/* 00A74 80A35094 0C0250F2 */ jal func_800943C8 -/* 00A78 80A35098 8E240000 */ lw $a0, 0x0000($s1) ## 00000000 -/* 00A7C 80A3509C 8FA5004C */ lw $a1, 0x004C($sp) -/* 00A80 80A350A0 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000 -/* 00A84 80A350A4 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020 -/* 00A88 80A350A8 8CA302C0 */ lw $v1, 0x02C0($a1) ## 000002C0 -/* 00A8C 80A350AC 3C0480A3 */ lui $a0, %hi(D_80A351D4) ## $a0 = 80A30000 -/* 00A90 80A350B0 3C0C8016 */ lui $t4, %hi(gSegments) -/* 00A94 80A350B4 246E0008 */ addiu $t6, $v1, 0x0008 ## $t6 = 00000008 -/* 00A98 80A350B8 ACAE02C0 */ sw $t6, 0x02C0($a1) ## 000002C0 -/* 00A9C 80A350BC AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000 -/* 00AA0 80A350C0 861802FC */ lh $t8, 0x02FC($s0) ## 000002FC -/* 00AA4 80A350C4 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 00AA8 80A350C8 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 00AAC 80A350CC 0018C880 */ sll $t9, $t8, 2 -/* 00AB0 80A350D0 00992021 */ addu $a0, $a0, $t9 -/* 00AB4 80A350D4 8C8451D4 */ lw $a0, %lo(D_80A351D4)($a0) -/* 00AB8 80A350D8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00ABC 80A350DC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00AC0 80A350E0 00044900 */ sll $t1, $a0, 4 -/* 00AC4 80A350E4 00095702 */ srl $t2, $t1, 28 -/* 00AC8 80A350E8 000A5880 */ sll $t3, $t2, 2 -/* 00ACC 80A350EC 018B6021 */ addu $t4, $t4, $t3 -/* 00AD0 80A350F0 8D8C6FA8 */ lw $t4, %lo(gSegments)($t4) -/* 00AD4 80A350F4 00814024 */ and $t0, $a0, $at -/* 00AD8 80A350F8 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00ADC 80A350FC 010C6821 */ addu $t5, $t0, $t4 -/* 00AE0 80A35100 01A17021 */ addu $t6, $t5, $at -/* 00AE4 80A35104 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AE8 80A35108 0C00BAF3 */ jal func_8002EBCC -/* 00AEC 80A3510C AC6E0004 */ sw $t6, 0x0004($v1) ## 00000004 -/* 00AF0 80A35110 8E05019C */ lw $a1, 0x019C($s0) ## 0000019C -/* 00AF4 80A35114 8E0601B8 */ lw $a2, 0x01B8($s0) ## 000001B8 -/* 00AF8 80A35118 9207019A */ lbu $a3, 0x019A($s0) ## 0000019A -/* 00AFC 80A3511C 3C0F80A3 */ lui $t7, %hi(func_80A34E58) ## $t7 = 80A30000 -/* 00B00 80A35120 3C1880A3 */ lui $t8, %hi(func_80A35004) ## $t8 = 80A30000 -/* 00B04 80A35124 27185004 */ addiu $t8, $t8, %lo(func_80A35004) ## $t8 = 80A35004 -/* 00B08 80A35128 25EF4E58 */ addiu $t7, $t7, %lo(func_80A34E58) ## $t7 = 80A34E58 -/* 00B0C 80A3512C AFAF0010 */ sw $t7, 0x0010($sp) -/* 00B10 80A35130 AFB80014 */ sw $t8, 0x0014($sp) -/* 00B14 80A35134 AFB00018 */ sw $s0, 0x0018($sp) -/* 00B18 80A35138 0C0286B2 */ jal SkelAnime_DrawFlexOpa -/* 00B1C 80A3513C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00B20 80A35140 3C0680A3 */ lui $a2, %hi(D_80A35210) ## $a2 = 80A30000 -/* 00B24 80A35144 24C65210 */ addiu $a2, $a2, %lo(D_80A35210) ## $a2 = 80A35210 -/* 00B28 80A35148 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFE4 -/* 00B2C 80A3514C 8E250000 */ lw $a1, 0x0000($s1) ## 00000000 -/* 00B30 80A35150 0C031AD5 */ jal Graph_CloseDisps -/* 00B34 80A35154 24070277 */ addiu $a3, $zero, 0x0277 ## $a3 = 00000277 -/* 00B38 80A35158 8FBF002C */ lw $ra, 0x002C($sp) -/* 00B3C 80A3515C 8FB00024 */ lw $s0, 0x0024($sp) -/* 00B40 80A35160 8FB10028 */ lw $s1, 0x0028($sp) -/* 00B44 80A35164 03E00008 */ jr $ra -/* 00B48 80A35168 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000 -/* 00B4C 80A3516C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Init.s deleted file mode 100644 index 552b102ed8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Init.s +++ /dev/null @@ -1,71 +0,0 @@ -glabel EnGe3_Init -/* 000A4 80A346C4 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 000A8 80A346C8 AFB00028 */ sw $s0, 0x0028($sp) -/* 000AC 80A346CC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 000B0 80A346D0 AFBF002C */ sw $ra, 0x002C($sp) -/* 000B4 80A346D4 AFA50044 */ sw $a1, 0x0044($sp) -/* 000B8 80A346D8 3C068003 */ lui $a2, %hi(ActorShadow_DrawCircle) -/* 000BC 80A346DC 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawCircle) -/* 000C0 80A346E0 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000 -/* 000C4 80A346E4 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4 -/* 000C8 80A346E8 0C00AC78 */ jal ActorShape_Init - -/* 000CC 80A346EC 3C074210 */ lui $a3, 0x4210 ## $a3 = 42100000 -/* 000D0 80A346F0 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198 -/* 000D4 80A346F4 3C060601 */ lui $a2, %hi(D_0600A458) ## $a2 = 06010000 -/* 000D8 80A346F8 260E01DC */ addiu $t6, $s0, 0x01DC ## $t6 = 000001DC -/* 000DC 80A346FC 260F026C */ addiu $t7, $s0, 0x026C ## $t7 = 0000026C -/* 000E0 80A34700 24180018 */ addiu $t8, $zero, 0x0018 ## $t8 = 00000018 -/* 000E4 80A34704 AFB80018 */ sw $t8, 0x0018($sp) -/* 000E8 80A34708 AFAF0014 */ sw $t7, 0x0014($sp) -/* 000EC 80A3470C AFAE0010 */ sw $t6, 0x0010($sp) -/* 000F0 80A34710 24C6A458 */ addiu $a2, $a2, %lo(D_0600A458) ## $a2 = 0600A458 -/* 000F4 80A34714 AFA50034 */ sw $a1, 0x0034($sp) -/* 000F8 80A34718 8FA40044 */ lw $a0, 0x0044($sp) -/* 000FC 80A3471C 0C0291BE */ jal SkelAnime_InitFlex -/* 00100 80A34720 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00104 80A34724 3C050601 */ lui $a1, %hi(D_0600B07C) ## $a1 = 06010000 -/* 00108 80A34728 24A5B07C */ addiu $a1, $a1, %lo(D_0600B07C) ## $a1 = 0600B07C -/* 0010C 80A3472C 0C0294BE */ jal Animation_PlayLoop -/* 00110 80A34730 8FA40034 */ lw $a0, 0x0034($sp) -/* 00114 80A34734 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C -/* 00118 80A34738 AFA50034 */ sw $a1, 0x0034($sp) -/* 0011C 80A3473C 0C0170D9 */ jal Collider_InitCylinder - -/* 00120 80A34740 8FA40044 */ lw $a0, 0x0044($sp) -/* 00124 80A34744 3C0780A3 */ lui $a3, %hi(D_80A35190) ## $a3 = 80A30000 -/* 00128 80A34748 8FA50034 */ lw $a1, 0x0034($sp) -/* 0012C 80A3474C 24E75190 */ addiu $a3, $a3, %lo(D_80A35190) ## $a3 = 80A35190 -/* 00130 80A34750 8FA40044 */ lw $a0, 0x0044($sp) -/* 00134 80A34754 0C01712B */ jal Collider_SetCylinder - -/* 00138 80A34758 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 0013C 80A3475C 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF -/* 00140 80A34760 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -/* 00144 80A34764 A21900AE */ sb $t9, 0x00AE($s0) ## 000000AE -/* 00148 80A34768 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A -/* 0014C 80A3476C 0C00B58B */ jal Actor_SetScale - -/* 00150 80A34770 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00154 80A34774 A6000034 */ sh $zero, 0x0034($s0) ## 00000034 -/* 00158 80A34778 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8 -/* 0015C 80A3477C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00160 80A34780 0C28D188 */ jal func_80A34620 -/* 00164 80A34784 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00168 80A34788 3C01C080 */ lui $at, 0xC080 ## $at = C0800000 -/* 0016C 80A3478C 44812000 */ mtc1 $at, $f4 ## $f4 = -4.00 -/* 00170 80A34790 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00174 80A34794 44813000 */ mtc1 $at, $f6 ## $f6 = -1.00 -/* 00178 80A34798 3C0880A3 */ lui $t0, %hi(func_80A34B90) ## $t0 = 80A30000 -/* 0017C 80A3479C 25084B90 */ addiu $t0, $t0, %lo(func_80A34B90) ## $t0 = 80A34B90 -/* 00180 80A347A0 24090006 */ addiu $t1, $zero, 0x0006 ## $t1 = 00000006 -/* 00184 80A347A4 AE080310 */ sw $t0, 0x0310($s0) ## 00000310 -/* 00188 80A347A8 A600030C */ sh $zero, 0x030C($s0) ## 0000030C -/* 0018C 80A347AC A209001F */ sb $t1, 0x001F($s0) ## 0000001F -/* 00190 80A347B0 E6040070 */ swc1 $f4, 0x0070($s0) ## 00000070 -/* 00194 80A347B4 E606006C */ swc1 $f6, 0x006C($s0) ## 0000006C -/* 00198 80A347B8 8FBF002C */ lw $ra, 0x002C($sp) -/* 0019C 80A347BC 8FB00028 */ lw $s0, 0x0028($sp) -/* 001A0 80A347C0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 -/* 001A4 80A347C4 03E00008 */ jr $ra -/* 001A8 80A347C8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Update.s deleted file mode 100644 index 11ad1cad8e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Update.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel EnGe3_Update -/* 007F4 80A34E14 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 007F8 80A34E18 AFBF0014 */ sw $ra, 0x0014($sp) -/* 007FC 80A34E1C AFA40018 */ sw $a0, 0x0018($sp) -/* 00800 80A34E20 0C28D310 */ jal func_80A34C40 -/* 00804 80A34E24 AFA5001C */ sw $a1, 0x001C($sp) -/* 00808 80A34E28 8FA40018 */ lw $a0, 0x0018($sp) -/* 0080C 80A34E2C 8FA5001C */ lw $a1, 0x001C($sp) -/* 00810 80A34E30 8C990310 */ lw $t9, 0x0310($a0) ## 00000310 -/* 00814 80A34E34 0320F809 */ jalr $ra, $t9 -/* 00818 80A34E38 00000000 */ nop -/* 0081C 80A34E3C 8FA40018 */ lw $a0, 0x0018($sp) -/* 00820 80A34E40 0C28D339 */ jal func_80A34CE4 -/* 00824 80A34E44 8FA5001C */ lw $a1, 0x001C($sp) -/* 00828 80A34E48 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0082C 80A34E4C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00830 80A34E50 03E00008 */ jr $ra -/* 00834 80A34E54 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34620.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34620.s deleted file mode 100644 index 1ef02f2cb7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34620.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_80A34620 -/* 00000 80A34620 00051080 */ sll $v0, $a1, 2 -/* 00004 80A34624 3C0E80A3 */ lui $t6, %hi(D_80A351BC) ## $t6 = 80A30000 -/* 00008 80A34628 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 0000C 80A3462C 01C27021 */ addu $t6, $t6, $v0 -/* 00010 80A34630 8DCE51BC */ lw $t6, %lo(D_80A351BC)($t6) -/* 00014 80A34634 3C1880A3 */ lui $t8, %hi(D_80A351C0) ## $t8 = 80A30000 -/* 00018 80A34638 AFBF0024 */ sw $ra, 0x0024($sp) -/* 0001C 80A3463C AFA40030 */ sw $a0, 0x0030($sp) -/* 00020 80A34640 AFA50034 */ sw $a1, 0x0034($sp) -/* 00024 80A34644 271851C0 */ addiu $t8, $t8, %lo(D_80A351C0) ## $t8 = 80A351C0 -/* 00028 80A34648 00581821 */ addu $v1, $v0, $t8 -/* 0002C 80A3464C AC8E0310 */ sw $t6, 0x0310($a0) ## 00000310 -/* 00030 80A34650 AFA30028 */ sw $v1, 0x0028($sp) -/* 00034 80A34654 0C028800 */ jal Animation_GetLastFrame - -/* 00038 80A34658 8C640000 */ lw $a0, 0x0000($v1) ## 00000000 -/* 0003C 80A3465C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 00040 80A34660 8FB90034 */ lw $t9, 0x0034($sp) -/* 00044 80A34664 3C0880A3 */ lui $t0, %hi(D_80A351C4) ## $t0 = 80A30000 -/* 00048 80A34668 468021A0 */ cvt.s.w $f6, $f4 -/* 0004C 80A3466C 3C01C100 */ lui $at, 0xC100 ## $at = C1000000 -/* 00050 80A34670 01194021 */ addu $t0, $t0, $t9 -/* 00054 80A34674 910851C4 */ lbu $t0, %lo(D_80A351C4)($t0) -/* 00058 80A34678 44814000 */ mtc1 $at, $f8 ## $f8 = -8.00 -/* 0005C 80A3467C 8FA30028 */ lw $v1, 0x0028($sp) -/* 00060 80A34680 8FA40030 */ lw $a0, 0x0030($sp) -/* 00064 80A34684 E7A60010 */ swc1 $f6, 0x0010($sp) -/* 00068 80A34688 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 0006C 80A3468C 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000 -/* 00070 80A34690 AFA80014 */ sw $t0, 0x0014($sp) -/* 00074 80A34694 8C650000 */ lw $a1, 0x0000($v1) ## 00000000 -/* 00078 80A34698 E7A80018 */ swc1 $f8, 0x0018($sp) -/* 0007C 80A3469C 0C029468 */ jal Animation_Change - -/* 00080 80A346A0 24840198 */ addiu $a0, $a0, 0x0198 ## $a0 = 00000198 -/* 00084 80A346A4 8FA20030 */ lw $v0, 0x0030($sp) -/* 00088 80A346A8 9449030C */ lhu $t1, 0x030C($v0) ## 0000030C -/* 0008C 80A346AC 312AFFFD */ andi $t2, $t1, 0xFFFD ## $t2 = 00000000 -/* 00090 80A346B0 A44A030C */ sh $t2, 0x030C($v0) ## 0000030C -/* 00094 80A346B4 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00098 80A346B8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 0009C 80A346BC 03E00008 */ jr $ra -/* 000A0 80A346C0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A347F4.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A347F4.s deleted file mode 100644 index 50af4ab9e1..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A347F4.s +++ /dev/null @@ -1,80 +0,0 @@ -glabel func_80A347F4 -/* 001D4 80A347F4 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 001D8 80A347F8 AFBF002C */ sw $ra, 0x002C($sp) -/* 001DC 80A347FC AFB00028 */ sw $s0, 0x0028($sp) -/* 001E0 80A34800 AFA50044 */ sw $a1, 0x0044($sp) -/* 001E4 80A34804 848E008A */ lh $t6, 0x008A($a0) ## 0000008A -/* 001E8 80A34808 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 001EC 80A3480C 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 001F0 80A34810 AFAE0030 */ sw $t6, 0x0030($sp) -/* 001F4 80A34814 849800B6 */ lh $t8, 0x00B6($a0) ## 000000B6 -/* 001F8 80A34818 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6 -/* 001FC 80A3481C 87A50032 */ lh $a1, 0x0032($sp) -/* 00200 80A34820 01D81023 */ subu $v0, $t6, $t8 -/* 00204 80A34824 00021400 */ sll $v0, $v0, 16 -/* 00208 80A34828 00021403 */ sra $v0, $v0, 16 -/* 0020C 80A3482C 04400003 */ bltz $v0, .L80A3483C -/* 00210 80A34830 00021823 */ subu $v1, $zero, $v0 -/* 00214 80A34834 10000001 */ beq $zero, $zero, .L80A3483C -/* 00218 80A34838 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -.L80A3483C: -/* 0021C 80A3483C 28614001 */ slti $at, $v1, 0x4001 -/* 00220 80A34840 10200013 */ beq $at, $zero, .L80A34890 -/* 00224 80A34844 24070FA0 */ addiu $a3, $zero, 0x0FA0 ## $a3 = 00000FA0 -/* 00228 80A34848 24190064 */ addiu $t9, $zero, 0x0064 ## $t9 = 00000064 -/* 0022C 80A3484C 0C01E1A7 */ jal Math_SmoothStepToS - -/* 00230 80A34850 AFB90010 */ sw $t9, 0x0010($sp) -/* 00234 80A34854 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6 -/* 00238 80A34858 8E0A0038 */ lw $t2, 0x0038($s0) ## 00000038 -/* 0023C 80A3485C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00240 80A34860 A6080032 */ sh $t0, 0x0032($s0) ## 00000032 -/* 00244 80A34864 AFAA0010 */ sw $t2, 0x0010($sp) -/* 00248 80A34868 8E09003C */ lw $t1, 0x003C($s0) ## 0000003C -/* 0024C 80A3486C 8FA40044 */ lw $a0, 0x0044($sp) -/* 00250 80A34870 26060300 */ addiu $a2, $s0, 0x0300 ## $a2 = 00000300 -/* 00254 80A34874 AFA90014 */ sw $t1, 0x0014($sp) -/* 00258 80A34878 8E0A0040 */ lw $t2, 0x0040($s0) ## 00000040 -/* 0025C 80A3487C 26070306 */ addiu $a3, $s0, 0x0306 ## $a3 = 00000306 -/* 00260 80A34880 0C00E0A4 */ jal func_80038290 -/* 00264 80A34884 AFAA0018 */ sw $t2, 0x0018($sp) -/* 00268 80A34888 1000001C */ beq $zero, $zero, .L80A348FC -/* 0026C 80A3488C 8FBF002C */ lw $ra, 0x002C($sp) -.L80A34890: -/* 00270 80A34890 0441000A */ bgez $v0, .L80A348BC -/* 00274 80A34894 26040302 */ addiu $a0, $s0, 0x0302 ## $a0 = 00000302 -/* 00278 80A34898 240B0100 */ addiu $t3, $zero, 0x0100 ## $t3 = 00000100 -/* 0027C 80A3489C AFAB0010 */ sw $t3, 0x0010($sp) -/* 00280 80A348A0 26040302 */ addiu $a0, $s0, 0x0302 ## $a0 = 00000302 -/* 00284 80A348A4 2405E000 */ addiu $a1, $zero, 0xE000 ## $a1 = FFFFE000 -/* 00288 80A348A8 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 0028C 80A348AC 0C01E1A7 */ jal Math_SmoothStepToS - -/* 00290 80A348B0 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 00294 80A348B4 10000008 */ beq $zero, $zero, .L80A348D8 -/* 00298 80A348B8 8605008A */ lh $a1, 0x008A($s0) ## 0000008A -.L80A348BC: -/* 0029C 80A348BC 240C0100 */ addiu $t4, $zero, 0x0100 ## $t4 = 00000100 -/* 002A0 80A348C0 AFAC0010 */ sw $t4, 0x0010($sp) -/* 002A4 80A348C4 24052000 */ addiu $a1, $zero, 0x2000 ## $a1 = 00002000 -/* 002A8 80A348C8 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 002AC 80A348CC 0C01E1A7 */ jal Math_SmoothStepToS - -/* 002B0 80A348D0 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 002B4 80A348D4 8605008A */ lh $a1, 0x008A($s0) ## 0000008A -.L80A348D8: -/* 002B8 80A348D8 240D0064 */ addiu $t5, $zero, 0x0064 ## $t5 = 00000064 -/* 002BC 80A348DC AFAD0010 */ sw $t5, 0x0010($sp) -/* 002C0 80A348E0 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6 -/* 002C4 80A348E4 2406000C */ addiu $a2, $zero, 0x000C ## $a2 = 0000000C -/* 002C8 80A348E8 0C01E1A7 */ jal Math_SmoothStepToS - -/* 002CC 80A348EC 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8 -/* 002D0 80A348F0 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6 -/* 002D4 80A348F4 A60E0032 */ sh $t6, 0x0032($s0) ## 00000032 -/* 002D8 80A348F8 8FBF002C */ lw $ra, 0x002C($sp) -.L80A348FC: -/* 002DC 80A348FC 8FB00028 */ lw $s0, 0x0028($sp) -/* 002E0 80A34900 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 -/* 002E4 80A34904 03E00008 */ jr $ra -/* 002E8 80A34908 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A3490C.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A3490C.s deleted file mode 100644 index 32a43d7572..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A3490C.s +++ /dev/null @@ -1,78 +0,0 @@ -glabel func_80A3490C -/* 002EC 80A3490C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 002F0 80A34910 AFBF002C */ sw $ra, 0x002C($sp) -/* 002F4 80A34914 AFB00028 */ sw $s0, 0x0028($sp) -/* 002F8 80A34918 AFA50034 */ sw $a1, 0x0034($sp) -/* 002FC 80A3491C 848F00B6 */ lh $t7, 0x00B6($a0) ## 000000B6 -/* 00300 80A34920 848E008A */ lh $t6, 0x008A($a0) ## 0000008A -/* 00304 80A34924 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00308 80A34928 26040300 */ addiu $a0, $s0, 0x0300 ## $a0 = 00000300 -/* 0030C 80A3492C 01CF1023 */ subu $v0, $t6, $t7 -/* 00310 80A34930 00021400 */ sll $v0, $v0, 16 -/* 00314 80A34934 00021403 */ sra $v0, $v0, 16 -/* 00318 80A34938 04400003 */ bltz $v0, .L80A34948 -/* 0031C 80A3493C 00021823 */ subu $v1, $zero, $v0 -/* 00320 80A34940 10000001 */ beq $zero, $zero, .L80A34948 -/* 00324 80A34944 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000 -.L80A34948: -/* 00328 80A34948 28612301 */ slti $at, $v1, 0x2301 -/* 0032C 80A3494C 10200015 */ beq $at, $zero, .L80A349A4 -/* 00330 80A34950 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00334 80A34954 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 00338 80A34958 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00 -/* 0033C 80A3495C C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 00340 80A34960 4606203C */ c.lt.s $f4, $f6 -/* 00344 80A34964 00000000 */ nop -/* 00348 80A34968 4502000F */ bc1fl .L80A349A8 -/* 0034C 80A3496C 24080064 */ addiu $t0, $zero, 0x0064 ## $t0 = 00000064 -/* 00350 80A34970 8E190038 */ lw $t9, 0x0038($s0) ## 00000038 -/* 00354 80A34974 8FA40034 */ lw $a0, 0x0034($sp) -/* 00358 80A34978 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 0035C 80A3497C AFB90010 */ sw $t9, 0x0010($sp) -/* 00360 80A34980 8E18003C */ lw $t8, 0x003C($s0) ## 0000003C -/* 00364 80A34984 26060300 */ addiu $a2, $s0, 0x0300 ## $a2 = 00000300 -/* 00368 80A34988 26070306 */ addiu $a3, $s0, 0x0306 ## $a3 = 00000306 -/* 0036C 80A3498C AFB80014 */ sw $t8, 0x0014($sp) -/* 00370 80A34990 8E190040 */ lw $t9, 0x0040($s0) ## 00000040 -/* 00374 80A34994 0C00E0A4 */ jal func_80038290 -/* 00378 80A34998 AFB90018 */ sw $t9, 0x0018($sp) -/* 0037C 80A3499C 1000001C */ beq $zero, $zero, .L80A34A10 -/* 00380 80A349A0 8FBF002C */ lw $ra, 0x002C($sp) -.L80A349A4: -/* 00384 80A349A4 24080064 */ addiu $t0, $zero, 0x0064 ## $t0 = 00000064 -.L80A349A8: -/* 00388 80A349A8 AFA80010 */ sw $t0, 0x0010($sp) -/* 0038C 80A349AC 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 00390 80A349B0 0C01E1A7 */ jal Math_SmoothStepToS - -/* 00394 80A349B4 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 00398 80A349B8 24090064 */ addiu $t1, $zero, 0x0064 ## $t1 = 00000064 -/* 0039C 80A349BC AFA90010 */ sw $t1, 0x0010($sp) -/* 003A0 80A349C0 26040302 */ addiu $a0, $s0, 0x0302 ## $a0 = 00000302 -/* 003A4 80A349C4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 003A8 80A349C8 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 003AC 80A349CC 0C01E1A7 */ jal Math_SmoothStepToS - -/* 003B0 80A349D0 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 003B4 80A349D4 240A0064 */ addiu $t2, $zero, 0x0064 ## $t2 = 00000064 -/* 003B8 80A349D8 AFAA0010 */ sw $t2, 0x0010($sp) -/* 003BC 80A349DC 26040306 */ addiu $a0, $s0, 0x0306 ## $a0 = 00000306 -/* 003C0 80A349E0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 003C4 80A349E4 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 003C8 80A349E8 0C01E1A7 */ jal Math_SmoothStepToS - -/* 003CC 80A349EC 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 003D0 80A349F0 240B0064 */ addiu $t3, $zero, 0x0064 ## $t3 = 00000064 -/* 003D4 80A349F4 AFAB0010 */ sw $t3, 0x0010($sp) -/* 003D8 80A349F8 26040308 */ addiu $a0, $s0, 0x0308 ## $a0 = 00000308 -/* 003DC 80A349FC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 003E0 80A34A00 24060006 */ addiu $a2, $zero, 0x0006 ## $a2 = 00000006 -/* 003E4 80A34A04 0C01E1A7 */ jal Math_SmoothStepToS - -/* 003E8 80A34A08 24071838 */ addiu $a3, $zero, 0x1838 ## $a3 = 00001838 -/* 003EC 80A34A0C 8FBF002C */ lw $ra, 0x002C($sp) -.L80A34A10: -/* 003F0 80A34A10 8FB00028 */ lw $s0, 0x0028($sp) -/* 003F4 80A34A14 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 003F8 80A34A18 03E00008 */ jr $ra -/* 003FC 80A34A1C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A20.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A20.s deleted file mode 100644 index f0c3535e05..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A20.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80A34A20 -/* 00400 80A34A20 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00404 80A34A24 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00408 80A34A28 AFA5001C */ sw $a1, 0x001C($sp) -/* 0040C 80A34A2C 0C00BCCD */ jal func_8002F334 -/* 00410 80A34A30 AFA40018 */ sw $a0, 0x0018($sp) -/* 00414 80A34A34 1040000C */ beq $v0, $zero, .L80A34A68 -/* 00418 80A34A38 8FA40018 */ lw $a0, 0x0018($sp) -/* 0041C 80A34A3C 8C980004 */ lw $t8, 0x0004($a0) ## 00000004 -/* 00420 80A34A40 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000 -/* 00424 80A34A44 3C0E80A3 */ lui $t6, %hi(func_80A34A80) ## $t6 = 80A30000 -/* 00428 80A34A48 3C0F80A3 */ lui $t7, %hi(func_80A34D68) ## $t7 = 80A30000 -/* 0042C 80A34A4C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF -/* 00430 80A34A50 25CE4A80 */ addiu $t6, $t6, %lo(func_80A34A80) ## $t6 = 80A34A80 -/* 00434 80A34A54 25EF4D68 */ addiu $t7, $t7, %lo(func_80A34D68) ## $t7 = 80A34D68 -/* 00438 80A34A58 0301C824 */ and $t9, $t8, $at -/* 0043C 80A34A5C AC8E0310 */ sw $t6, 0x0310($a0) ## 00000310 -/* 00440 80A34A60 AC8F0130 */ sw $t7, 0x0130($a0) ## 00000130 -/* 00444 80A34A64 AC990004 */ sw $t9, 0x0004($a0) ## 00000004 -.L80A34A68: -/* 00448 80A34A68 0C28D1FD */ jal func_80A347F4 -/* 0044C 80A34A6C 8FA5001C */ lw $a1, 0x001C($sp) -/* 00450 80A34A70 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00454 80A34A74 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00458 80A34A78 03E00008 */ jr $ra -/* 0045C 80A34A7C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A80.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A80.s deleted file mode 100644 index 964e0cd5a0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A80.s +++ /dev/null @@ -1,9 +0,0 @@ -glabel func_80A34A80 -/* 00460 80A34A80 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00464 80A34A84 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00468 80A34A88 0C28D243 */ jal func_80A3490C -/* 0046C 80A34A8C 00000000 */ nop -/* 00470 80A34A90 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00474 80A34A94 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00478 80A34A98 03E00008 */ jr $ra -/* 0047C 80A34A9C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34AA0.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34AA0.s deleted file mode 100644 index 3f129b841a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34AA0.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_80A34AA0 -/* 00480 80A34AA0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00484 80A34AA4 AFBF001C */ sw $ra, 0x001C($sp) -/* 00488 80A34AA8 AFA50024 */ sw $a1, 0x0024($sp) -/* 0048C 80A34AAC 0C00BD04 */ jal Actor_HasParent -/* 00490 80A34AB0 AFA40020 */ sw $a0, 0x0020($sp) -/* 00494 80A34AB4 10400006 */ beq $v0, $zero, .L80A34AD0 -/* 00498 80A34AB8 8FA40020 */ lw $a0, 0x0020($sp) -/* 0049C 80A34ABC 3C0E80A3 */ lui $t6, %hi(func_80A34A20) ## $t6 = 80A30000 -/* 004A0 80A34AC0 25CE4A20 */ addiu $t6, $t6, %lo(func_80A34A20) ## $t6 = 80A34A20 -/* 004A4 80A34AC4 AC800118 */ sw $zero, 0x0118($a0) ## 00000118 -/* 004A8 80A34AC8 10000009 */ beq $zero, $zero, .L80A34AF0 -/* 004AC 80A34ACC AC8E0310 */ sw $t6, 0x0310($a0) ## 00000310 -.L80A34AD0: -/* 004B0 80A34AD0 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 004B4 80A34AD4 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00 -/* 004B8 80A34AD8 3C07461C */ lui $a3, 0x461C ## $a3 = 461C0000 -/* 004BC 80A34ADC 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = 461C4000 -/* 004C0 80A34AE0 8FA50024 */ lw $a1, 0x0024($sp) -/* 004C4 80A34AE4 2406003A */ addiu $a2, $zero, 0x003A ## $a2 = 0000003A -/* 004C8 80A34AE8 0C00BD0D */ jal func_8002F434 -/* 004CC 80A34AEC E7A40010 */ swc1 $f4, 0x0010($sp) -.L80A34AF0: -/* 004D0 80A34AF0 8FBF001C */ lw $ra, 0x001C($sp) -/* 004D4 80A34AF4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 004D8 80A34AF8 03E00008 */ jr $ra -/* 004DC 80A34AFC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B00.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B00.s deleted file mode 100644 index bfd38f7d58..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B00.s +++ /dev/null @@ -1,38 +0,0 @@ -glabel func_80A34B00 -/* 004E0 80A34B00 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 004E4 80A34B04 AFBF001C */ sw $ra, 0x001C($sp) -/* 004E8 80A34B08 AFA40020 */ sw $a0, 0x0020($sp) -/* 004EC 80A34B0C AFA50024 */ sw $a1, 0x0024($sp) -/* 004F0 80A34B10 0C042F6F */ jal func_8010BDBC -/* 004F4 80A34B14 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8 -/* 004F8 80A34B18 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 004FC 80A34B1C 54410019 */ bnel $v0, $at, .L80A34B84 -/* 00500 80A34B20 8FBF001C */ lw $ra, 0x001C($sp) -/* 00504 80A34B24 0C041AF2 */ jal func_80106BC8 -/* 00508 80A34B28 8FA40024 */ lw $a0, 0x0024($sp) -/* 0050C 80A34B2C 50400015 */ beql $v0, $zero, .L80A34B84 -/* 00510 80A34B30 8FBF001C */ lw $ra, 0x001C($sp) -/* 00514 80A34B34 0C041B33 */ jal func_80106CCC -/* 00518 80A34B38 8FA40024 */ lw $a0, 0x0024($sp) -/* 0051C 80A34B3C 8FA40020 */ lw $a0, 0x0020($sp) -/* 00520 80A34B40 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000 -/* 00524 80A34B44 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF -/* 00528 80A34B48 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 0052C 80A34B4C 3C1880A3 */ lui $t8, %hi(func_80A34AA0) ## $t8 = 80A30000 -/* 00530 80A34B50 27184AA0 */ addiu $t8, $t8, %lo(func_80A34AA0) ## $t8 = 80A34AA0 -/* 00534 80A34B54 01C17824 */ and $t7, $t6, $at -/* 00538 80A34B58 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 0053C 80A34B5C 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00 -/* 00540 80A34B60 3C07461C */ lui $a3, 0x461C ## $a3 = 461C0000 -/* 00544 80A34B64 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004 -/* 00548 80A34B68 AC980310 */ sw $t8, 0x0310($a0) ## 00000310 -/* 0054C 80A34B6C 8FA50024 */ lw $a1, 0x0024($sp) -/* 00550 80A34B70 34E74000 */ ori $a3, $a3, 0x4000 ## $a3 = 461C4000 -/* 00554 80A34B74 2406003A */ addiu $a2, $zero, 0x003A ## $a2 = 0000003A -/* 00558 80A34B78 0C00BD0D */ jal func_8002F434 -/* 0055C 80A34B7C E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00560 80A34B80 8FBF001C */ lw $ra, 0x001C($sp) -.L80A34B84: -/* 00564 80A34B84 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00568 80A34B88 03E00008 */ jr $ra -/* 0056C 80A34B8C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B90.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B90.s deleted file mode 100644 index 708a6bc6d2..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B90.s +++ /dev/null @@ -1,48 +0,0 @@ -glabel func_80A34B90 -/* 00570 80A34B90 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00574 80A34B94 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00578 80A34B98 AFB00020 */ sw $s0, 0x0020($sp) -/* 0057C 80A34B9C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00580 80A34BA0 0C00BC65 */ jal func_8002F194 -/* 00584 80A34BA4 AFA5002C */ sw $a1, 0x002C($sp) -/* 00588 80A34BA8 10400004 */ beq $v0, $zero, .L80A34BBC -/* 0058C 80A34BAC 3C0E80A3 */ lui $t6, %hi(func_80A34B00) ## $t6 = 80A30000 -/* 00590 80A34BB0 25CE4B00 */ addiu $t6, $t6, %lo(func_80A34B00) ## $t6 = 80A34B00 -/* 00594 80A34BB4 1000001A */ beq $zero, $zero, .L80A34C20 -/* 00598 80A34BB8 AE0E0310 */ sw $t6, 0x0310($s0) ## 00000310 -.L80A34BBC: -/* 0059C 80A34BBC 960F030C */ lhu $t7, 0x030C($s0) ## 0000030C -/* 005A0 80A34BC0 8FA4002C */ lw $a0, 0x002C($sp) -/* 005A4 80A34BC4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 005A8 80A34BC8 31F80004 */ andi $t8, $t7, 0x0004 ## $t8 = 00000000 -/* 005AC 80A34BCC 57000007 */ bnel $t8, $zero, .L80A34BEC -/* 005B0 80A34BD0 3C014396 */ lui $at, 0x4396 ## $at = 43960000 -/* 005B4 80A34BD4 0C00B7D5 */ jal func_8002DF54 -/* 005B8 80A34BD8 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007 -/* 005BC 80A34BDC 9619030C */ lhu $t9, 0x030C($s0) ## 0000030C -/* 005C0 80A34BE0 37280004 */ ori $t0, $t9, 0x0004 ## $t0 = 00000004 -/* 005C4 80A34BE4 A608030C */ sh $t0, 0x030C($s0) ## 0000030C -/* 005C8 80A34BE8 3C014396 */ lui $at, 0x4396 ## $at = 43960000 -.L80A34BEC: -/* 005CC 80A34BEC 44810000 */ mtc1 $at, $f0 ## $f0 = 300.00 -/* 005D0 80A34BF0 8E0A0004 */ lw $t2, 0x0004($s0) ## 00000004 -/* 005D4 80A34BF4 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 005D8 80A34BF8 24096004 */ addiu $t1, $zero, 0x6004 ## $t1 = 00006004 -/* 005DC 80A34BFC 01415825 */ or $t3, $t2, $at ## $t3 = 00010000 -/* 005E0 80A34C00 A609010E */ sh $t1, 0x010E($s0) ## 0000010E -/* 005E4 80A34C04 AE0B0004 */ sw $t3, 0x0004($s0) ## 00000004 -/* 005E8 80A34C08 44060000 */ mfc1 $a2, $f0 -/* 005EC 80A34C0C 44070000 */ mfc1 $a3, $f0 -/* 005F0 80A34C10 AFA00010 */ sw $zero, 0x0010($sp) -/* 005F4 80A34C14 8FA5002C */ lw $a1, 0x002C($sp) -/* 005F8 80A34C18 0C00BC71 */ jal func_8002F1C4 -/* 005FC 80A34C1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80A34C20: -/* 00600 80A34C20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00604 80A34C24 0C28D243 */ jal func_80A3490C -/* 00608 80A34C28 8FA5002C */ lw $a1, 0x002C($sp) -/* 0060C 80A34C2C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00610 80A34C30 8FB00020 */ lw $s0, 0x0020($sp) -/* 00614 80A34C34 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00618 80A34C38 03E00008 */ jr $ra -/* 0061C 80A34C3C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34C40.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34C40.s deleted file mode 100644 index 8fc719d967..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34C40.s +++ /dev/null @@ -1,46 +0,0 @@ -glabel func_80A34C40 -/* 00620 80A34C40 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00624 80A34C44 AFB00020 */ sw $s0, 0x0020($sp) -/* 00628 80A34C48 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0062C 80A34C4C AFBF0024 */ sw $ra, 0x0024($sp) -/* 00630 80A34C50 AFA5003C */ sw $a1, 0x003C($sp) -/* 00634 80A34C54 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C -/* 00638 80A34C58 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000014C -/* 0063C 80A34C5C 0C0189B7 */ jal Collider_UpdateCylinder - -/* 00640 80A34C60 AFA6002C */ sw $a2, 0x002C($sp) -/* 00644 80A34C64 8FA4003C */ lw $a0, 0x003C($sp) -/* 00648 80A34C68 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0064C 80A34C6C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00650 80A34C70 8FA6002C */ lw $a2, 0x002C($sp) -/* 00654 80A34C74 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOC -/* 00658 80A34C78 00812821 */ addu $a1, $a0, $at -/* 0065C 80A34C7C 3C014220 */ lui $at, 0x4220 ## $at = 42200000 -/* 00660 80A34C80 44810000 */ mtc1 $at, $f0 ## $f0 = 40.00 -/* 00664 80A34C84 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005 -/* 00668 80A34C88 AFAE0014 */ sw $t6, 0x0014($sp) -/* 0066C 80A34C8C 44060000 */ mfc1 $a2, $f0 -/* 00670 80A34C90 8FA4003C */ lw $a0, 0x003C($sp) -/* 00674 80A34C94 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00678 80A34C98 3C0741C8 */ lui $a3, 0x41C8 ## $a3 = 41C80000 -/* 0067C 80A34C9C 0C00B92D */ jal Actor_UpdateBgCheckInfo -/* 00680 80A34CA0 E7A00010 */ swc1 $f0, 0x0010($sp) -/* 00684 80A34CA4 960F030C */ lhu $t7, 0x030C($s0) ## 0000030C -/* 00688 80A34CA8 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000 -/* 0068C 80A34CAC 57000009 */ bnel $t8, $zero, .L80A34CD4 -/* 00690 80A34CB0 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00694 80A34CB4 0C02927F */ jal SkelAnime_Update - -/* 00698 80A34CB8 26040198 */ addiu $a0, $s0, 0x0198 ## $a0 = 00000198 -/* 0069C 80A34CBC 50400005 */ beql $v0, $zero, .L80A34CD4 -/* 006A0 80A34CC0 8FBF0024 */ lw $ra, 0x0024($sp) -/* 006A4 80A34CC4 9619030C */ lhu $t9, 0x030C($s0) ## 0000030C -/* 006A8 80A34CC8 37280002 */ ori $t0, $t9, 0x0002 ## $t0 = 00000002 -/* 006AC 80A34CCC A608030C */ sh $t0, 0x030C($s0) ## 0000030C -/* 006B0 80A34CD0 8FBF0024 */ lw $ra, 0x0024($sp) -.L80A34CD4: -/* 006B4 80A34CD4 8FB00020 */ lw $s0, 0x0020($sp) -/* 006B8 80A34CD8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 006BC 80A34CDC 03E00008 */ jr $ra -/* 006C0 80A34CE0 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34CE4.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34CE4.s deleted file mode 100644 index 16483912a4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34CE4.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_80A34CE4 -/* 006C4 80A34CE4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 006C8 80A34CE8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 006CC 80A34CEC AFA5001C */ sw $a1, 0x001C($sp) -/* 006D0 80A34CF0 0C00B638 */ jal Actor_MoveForward - -/* 006D4 80A34CF4 AFA40018 */ sw $a0, 0x0018($sp) -/* 006D8 80A34CF8 8FA60018 */ lw $a2, 0x0018($sp) -/* 006DC 80A34CFC 2404003C */ addiu $a0, $zero, 0x003C ## $a0 = 0000003C -/* 006E0 80A34D00 2405003C */ addiu $a1, $zero, 0x003C ## $a1 = 0000003C -/* 006E4 80A34D04 84C302FE */ lh $v1, 0x02FE($a2) ## 000002FE -/* 006E8 80A34D08 14600003 */ bne $v1, $zero, .L80A34D18 -/* 006EC 80A34D0C 246EFFFF */ addiu $t6, $v1, 0xFFFF ## $t6 = FFFFFFFF -/* 006F0 80A34D10 10000004 */ beq $zero, $zero, .L80A34D24 -/* 006F4 80A34D14 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L80A34D18: -/* 006F8 80A34D18 A4CE02FE */ sh $t6, 0x02FE($a2) ## 000002FE -/* 006FC 80A34D1C 84C302FE */ lh $v1, 0x02FE($a2) ## 000002FE -/* 00700 80A34D20 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000 -.L80A34D24: -/* 00704 80A34D24 54400007 */ bnel $v0, $zero, .L80A34D44 -/* 00708 80A34D28 A4C302FC */ sh $v1, 0x02FC($a2) ## 000002FC -/* 0070C 80A34D2C 0C01DF64 */ jal Rand_S16Offset - -/* 00710 80A34D30 AFA60018 */ sw $a2, 0x0018($sp) -/* 00714 80A34D34 8FA60018 */ lw $a2, 0x0018($sp) -/* 00718 80A34D38 A4C202FE */ sh $v0, 0x02FE($a2) ## 000002FE -/* 0071C 80A34D3C 84C302FE */ lh $v1, 0x02FE($a2) ## 000002FE -/* 00720 80A34D40 A4C302FC */ sh $v1, 0x02FC($a2) ## 000002FC -.L80A34D44: -/* 00724 80A34D44 84CF02FC */ lh $t7, 0x02FC($a2) ## 000002FC -/* 00728 80A34D48 29E10003 */ slti $at, $t7, 0x0003 -/* 0072C 80A34D4C 54200003 */ bnel $at, $zero, .L80A34D5C -/* 00730 80A34D50 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00734 80A34D54 A4C002FC */ sh $zero, 0x02FC($a2) ## 000002FC -/* 00738 80A34D58 8FBF0014 */ lw $ra, 0x0014($sp) -.L80A34D5C: -/* 0073C 80A34D5C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00740 80A34D60 03E00008 */ jr $ra -/* 00744 80A34D64 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34D68.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34D68.s deleted file mode 100644 index bc63fa7274..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34D68.s +++ /dev/null @@ -1,47 +0,0 @@ -glabel func_80A34D68 -/* 00748 80A34D68 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0074C 80A34D6C AFBF001C */ sw $ra, 0x001C($sp) -/* 00750 80A34D70 AFB10018 */ sw $s1, 0x0018($sp) -/* 00754 80A34D74 AFB00014 */ sw $s0, 0x0014($sp) -/* 00758 80A34D78 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0075C 80A34D7C 0C28D310 */ jal func_80A34C40 -/* 00760 80A34D80 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00764 80A34D84 8E190310 */ lw $t9, 0x0310($s0) ## 00000310 -/* 00768 80A34D88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0076C 80A34D8C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00770 80A34D90 0320F809 */ jalr $ra, $t9 -/* 00774 80A34D94 00000000 */ nop -/* 00778 80A34D98 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0077C 80A34D9C 0C00BC65 */ jal func_8002F194 -/* 00780 80A34DA0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 00784 80A34DA4 10400008 */ beq $v0, $zero, .L80A34DC8 -/* 00788 80A34DA8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 0078C 80A34DAC 3C0E80A3 */ lui $t6, %hi(func_80A34A20) ## $t6 = 80A30000 -/* 00790 80A34DB0 3C0F80A3 */ lui $t7, %hi(EnGe3_Update) ## $t7 = 80A30000 -/* 00794 80A34DB4 25CE4A20 */ addiu $t6, $t6, %lo(func_80A34A20) ## $t6 = 80A34A20 -/* 00798 80A34DB8 25EF4E14 */ addiu $t7, $t7, %lo(EnGe3_Update) ## $t7 = 80A34E14 -/* 0079C 80A34DBC AE0E0310 */ sw $t6, 0x0310($s0) ## 00000310 -/* 007A0 80A34DC0 1000000C */ beq $zero, $zero, .L80A34DF4 -/* 007A4 80A34DC4 AE0F0130 */ sw $t7, 0x0130($s0) ## 00000130 -.L80A34DC8: -/* 007A8 80A34DC8 44810000 */ mtc1 $at, $f0 ## $f0 = 100.00 -/* 007AC 80A34DCC C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 007B0 80A34DD0 24186005 */ addiu $t8, $zero, 0x6005 ## $t8 = 00006005 -/* 007B4 80A34DD4 A618010E */ sh $t8, 0x010E($s0) ## 0000010E -/* 007B8 80A34DD8 4600203C */ c.lt.s $f4, $f0 -/* 007BC 80A34DDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 007C0 80A34DE0 45020005 */ bc1fl .L80A34DF8 -/* 007C4 80A34DE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 007C8 80A34DE8 44060000 */ mfc1 $a2, $f0 -/* 007CC 80A34DEC 0C00BCB3 */ jal func_8002F2CC -/* 007D0 80A34DF0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -.L80A34DF4: -/* 007D4 80A34DF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -.L80A34DF8: -/* 007D8 80A34DF8 0C28D339 */ jal func_80A34CE4 -/* 007DC 80A34DFC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 007E0 80A34E00 8FBF001C */ lw $ra, 0x001C($sp) -/* 007E4 80A34E04 8FB00014 */ lw $s0, 0x0014($sp) -/* 007E8 80A34E08 8FB10018 */ lw $s1, 0x0018($sp) -/* 007EC 80A34E0C 03E00008 */ jr $ra -/* 007F0 80A34E10 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34E58.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34E58.s deleted file mode 100644 index b029ad02ed..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34E58.s +++ /dev/null @@ -1,127 +0,0 @@ -.rdata -glabel D_80A351E0 - .asciz "../z_en_ge3.c" - .balign 4 - -glabel D_80A351F0 - .asciz "../z_en_ge3.c" - .balign 4 - -.text -glabel func_80A34E58 -/* 00838 80A34E58 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8 -/* 0083C 80A34E5C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00840 80A34E60 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00844 80A34E64 AFA40058 */ sw $a0, 0x0058($sp) -/* 00848 80A34E68 AFA5005C */ sw $a1, 0x005C($sp) -/* 0084C 80A34E6C 10A10009 */ beq $a1, $at, .L80A34E94 -/* 00850 80A34E70 AFA70064 */ sw $a3, 0x0064($sp) -/* 00854 80A34E74 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 00858 80A34E78 10A10009 */ beq $a1, $at, .L80A34EA0 -/* 0085C 80A34E7C 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8 -/* 00860 80A34E80 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B -/* 00864 80A34E84 10A10003 */ beq $a1, $at, .L80A34E94 -/* 00868 80A34E88 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010 -/* 0086C 80A34E8C 54A1000B */ bnel $a1, $at, .L80A34EBC -/* 00870 80A34E90 8FAA0058 */ lw $t2, 0x0058($sp) -.L80A34E94: -/* 00874 80A34E94 ACC00000 */ sw $zero, 0x0000($a2) ## 00000000 -/* 00878 80A34E98 10000056 */ beq $zero, $zero, .L80A34FF4 -/* 0087C 80A34E9C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L80A34EA0: -/* 00880 80A34EA0 8FA20068 */ lw $v0, 0x0068($sp) -/* 00884 80A34EA4 8FB8006C */ lw $t8, 0x006C($sp) -/* 00888 80A34EA8 844F0000 */ lh $t7, 0x0000($v0) ## 00000000 -/* 0088C 80A34EAC 87190302 */ lh $t9, 0x0302($t8) ## 00000302 -/* 00890 80A34EB0 01F94821 */ addu $t1, $t7, $t9 -/* 00894 80A34EB4 A4490000 */ sh $t1, 0x0000($v0) ## 00000000 -/* 00898 80A34EB8 8FAA0058 */ lw $t2, 0x0058($sp) -.L80A34EBC: -/* 0089C 80A34EBC 3C0680A3 */ lui $a2, %hi(D_80A351E0) ## $a2 = 80A30000 -/* 008A0 80A34EC0 24C651E0 */ addiu $a2, $a2, %lo(D_80A351E0) ## $a2 = 80A351E0 -/* 008A4 80A34EC4 8D450000 */ lw $a1, 0x0000($t2) ## 00000000 -/* 008A8 80A34EC8 24070223 */ addiu $a3, $zero, 0x0223 ## $a3 = 00000223 -/* 008AC 80A34ECC 0C031AB1 */ jal Graph_OpenDisps -/* 008B0 80A34ED0 AFA50050 */ sw $a1, 0x0050($sp) -/* 008B4 80A34ED4 8FA2005C */ lw $v0, 0x005C($sp) -/* 008B8 80A34ED8 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003 -/* 008BC 80A34EDC 8FA80050 */ lw $t0, 0x0050($sp) -/* 008C0 80A34EE0 1041003D */ beq $v0, $at, .L80A34FD8 -/* 008C4 80A34EE4 27A40040 */ addiu $a0, $sp, 0x0040 ## $a0 = FFFFFFE8 -/* 008C8 80A34EE8 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 008CC 80A34EEC 10410007 */ beq $v0, $at, .L80A34F0C -/* 008D0 80A34EF0 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B -/* 008D4 80A34EF4 10410014 */ beq $v0, $at, .L80A34F48 -/* 008D8 80A34EF8 24010010 */ addiu $at, $zero, 0x0010 ## $at = 00000010 -/* 008DC 80A34EFC 50410013 */ beql $v0, $at, .L80A34F4C -/* 008E0 80A34F00 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 008E4 80A34F04 10000027 */ beq $zero, $zero, .L80A34FA4 -/* 008E8 80A34F08 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -.L80A34F0C: -/* 008EC 80A34F0C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 008F0 80A34F10 3C0CE700 */ lui $t4, 0xE700 ## $t4 = E7000000 -/* 008F4 80A34F14 3C18503C */ lui $t8, 0x503C ## $t8 = 503C0000 -/* 008F8 80A34F18 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 008FC 80A34F1C AD0B02C0 */ sw $t3, 0x02C0($t0) ## 000002C0 -/* 00900 80A34F20 AC400004 */ sw $zero, 0x0004($v0) ## 00000004 -/* 00904 80A34F24 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 00908 80A34F28 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 0090C 80A34F2C 37180AFF */ ori $t8, $t8, 0x0AFF ## $t8 = 503C0AFF -/* 00910 80A34F30 3C0EFB00 */ lui $t6, 0xFB00 ## $t6 = FB000000 -/* 00914 80A34F34 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00918 80A34F38 AD0D02C0 */ sw $t5, 0x02C0($t0) ## 000002C0 -/* 0091C 80A34F3C AC580004 */ sw $t8, 0x0004($v0) ## 00000004 -/* 00920 80A34F40 10000025 */ beq $zero, $zero, .L80A34FD8 -/* 00924 80A34F44 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -.L80A34F48: -/* 00928 80A34F48 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -.L80A34F4C: -/* 0092C 80A34F4C 3C19E700 */ lui $t9, 0xE700 ## $t9 = E7000000 -/* 00930 80A34F50 3C0B8CAA */ lui $t3, 0x8CAA ## $t3 = 8CAA0000 -/* 00934 80A34F54 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 00938 80A34F58 AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0 -/* 0093C 80A34F5C AC400004 */ sw $zero, 0x0004($v0) ## 00000004 -/* 00940 80A34F60 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 00944 80A34F64 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 00948 80A34F68 356BE6FF */ ori $t3, $t3, 0xE6FF ## $t3 = 8CAAE6FF -/* 0094C 80A34F6C 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000 -/* 00950 80A34F70 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 00954 80A34F74 AD0902C0 */ sw $t1, 0x02C0($t0) ## 000002C0 -/* 00958 80A34F78 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 0095C 80A34F7C AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 00960 80A34F80 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 00964 80A34F84 3C0DFA00 */ lui $t5, 0xFA00 ## $t5 = FA000000 -/* 00968 80A34F88 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF -/* 0096C 80A34F8C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008 -/* 00970 80A34F90 AD0C02C0 */ sw $t4, 0x02C0($t0) ## 000002C0 -/* 00974 80A34F94 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004 -/* 00978 80A34F98 1000000F */ beq $zero, $zero, .L80A34FD8 -/* 0097C 80A34F9C AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000 -/* 00980 80A34FA0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -.L80A34FA4: -/* 00984 80A34FA4 3C0FE700 */ lui $t7, 0xE700 ## $t7 = E7000000 -/* 00988 80A34FA8 3C0A8C00 */ lui $t2, 0x8C00 ## $t2 = 8C000000 -/* 0098C 80A34FAC 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 00990 80A34FB0 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0 -/* 00994 80A34FB4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004 -/* 00998 80A34FB8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000 -/* 0099C 80A34FBC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0 -/* 009A0 80A34FC0 354A00FF */ ori $t2, $t2, 0x00FF ## $t2 = 8C0000FF -/* 009A4 80A34FC4 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000 -/* 009A8 80A34FC8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 009AC 80A34FCC AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0 -/* 009B0 80A34FD0 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004 -/* 009B4 80A34FD4 AC490000 */ sw $t1, 0x0000($v0) ## 00000000 -.L80A34FD8: -/* 009B8 80A34FD8 8FAB0058 */ lw $t3, 0x0058($sp) -/* 009BC 80A34FDC 3C0680A3 */ lui $a2, %hi(D_80A351F0) ## $a2 = 80A30000 -/* 009C0 80A34FE0 24C651F0 */ addiu $a2, $a2, %lo(D_80A351F0) ## $a2 = 80A351F0 -/* 009C4 80A34FE4 24070236 */ addiu $a3, $zero, 0x0236 ## $a3 = 00000236 -/* 009C8 80A34FE8 0C031AD5 */ jal Graph_CloseDisps -/* 009CC 80A34FEC 8D650000 */ lw $a1, 0x0000($t3) ## 8CAAE6FF -/* 009D0 80A34FF0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000 -.L80A34FF4: -/* 009D4 80A34FF4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 009D8 80A34FF8 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000 -/* 009DC 80A34FFC 03E00008 */ jr $ra -/* 009E0 80A35000 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A35004.s b/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A35004.s deleted file mode 100644 index b5655d1b57..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A35004.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel func_80A35004 -/* 009E4 80A35004 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 009E8 80A35008 3C0E80A3 */ lui $t6, %hi(D_80A351C8) ## $t6 = 80A30000 -/* 009EC 80A3500C AFBF0014 */ sw $ra, 0x0014($sp) -/* 009F0 80A35010 AFA40028 */ sw $a0, 0x0028($sp) -/* 009F4 80A35014 AFA60030 */ sw $a2, 0x0030($sp) -/* 009F8 80A35018 AFA70034 */ sw $a3, 0x0034($sp) -/* 009FC 80A3501C 25CE51C8 */ addiu $t6, $t6, %lo(D_80A351C8) ## $t6 = 80A351C8 -/* 00A00 80A35020 8DD80000 */ lw $t8, 0x0000($t6) ## 80A351C8 -/* 00A04 80A35024 27A40018 */ addiu $a0, $sp, 0x0018 ## $a0 = FFFFFFF0 -/* 00A08 80A35028 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 00A0C 80A3502C AC980000 */ sw $t8, 0x0000($a0) ## FFFFFFF0 -/* 00A10 80A35030 8DCF0004 */ lw $t7, 0x0004($t6) ## 80A351CC -/* 00A14 80A35034 AC8F0004 */ sw $t7, 0x0004($a0) ## FFFFFFF4 -/* 00A18 80A35038 8DD80008 */ lw $t8, 0x0008($t6) ## 80A351D0 -/* 00A1C 80A3503C 14A10004 */ bne $a1, $at, .L80A35050 -/* 00A20 80A35040 AC980008 */ sw $t8, 0x0008($a0) ## FFFFFFF8 -/* 00A24 80A35044 8FA50038 */ lw $a1, 0x0038($sp) -/* 00A28 80A35048 0C0346BD */ jal Matrix_MultVec3f -/* 00A2C 80A3504C 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038 -.L80A35050: -/* 00A30 80A35050 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00A34 80A35054 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00A38 80A35058 03E00008 */ jr $ra -/* 00A3C 80A3505C 00000000 */ nop diff --git a/data/overlays/actors/z_en_ge3.data.s b/data/overlays/actors/z_en_ge3.data.s deleted file mode 100644 index 4cdd41abd3..0000000000 --- a/data/overlays/actors/z_en_ge3.data.s +++ /dev/null @@ -1,30 +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_Ge3_InitVars - .word 0x01D00400, 0x00000019, 0x01690000, 0x00000314 -.word EnGe3_Init -.word EnGe3_Destroy -.word EnGe3_Update -.word EnGe3_Draw -glabel D_80A35190 - .word 0x0A000939, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0x00000722, 0x00000000, 0x00010100, 0x00140032, 0x00000000, 0x00000000 -glabel D_80A351BC - .word func_80A34A80 -glabel D_80A351C0 - .word 0x0600B07C -glabel D_80A351C4 - .word 0x00000000 -glabel D_80A351C8 - .word 0x44160000, 0x442F0000, 0x00000000 -glabel D_80A351D4 - .word 0x06005FE8, 0x060065A8, 0x06006D28 - diff --git a/data/overlays/actors/z_en_ge3.reloc.s b/data/overlays/actors/z_en_ge3.reloc.s deleted file mode 100644 index 70a8f96e37..0000000000 --- a/data/overlays/actors/z_en_ge3.reloc.s +++ /dev/null @@ -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_80A35220 - .incbin "baserom/ovl_En_Ge3", 0xC00, 0x000000F0 diff --git a/spec b/spec index 0f3fbc745c..85a8602b8d 100644 --- a/spec +++ b/spec @@ -2330,8 +2330,7 @@ endseg beginseg name "ovl_En_Ge3" include "build/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" - include "build/data/overlays/actors/z_en_ge3.data.o" - include "build/data/overlays/actors/z_en_ge3.reloc.o" + include "build/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c index b321627579..34930335ad 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c @@ -5,6 +5,7 @@ */ #include "z_en_ge3.h" +#include "objects/object_geldb/object_geldb.h" #define FLAGS 0x00000019 @@ -15,10 +16,10 @@ void EnGe3_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnGe3_Update(Actor* thisx, GlobalContext* globalCtx); void EnGe3_Draw(Actor* thisx, GlobalContext* globalCtx); -extern UNK_TYPE D_0600A458; -extern UNK_TYPE D_0600B07C; +void EnGe3_WaitLookAtPlayer(EnGe3* this, GlobalContext* globalCtx); +void EnGe3_ForceTalk(EnGe3* this, GlobalContext* globalCtx); +void EnGe3_UpdateWhenNotTalking(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit En_Ge3_InitVars = { ACTOR_EN_GE3, ACTORCAT_NPC, @@ -31,7 +32,7 @@ const ActorInit En_Ge3_InitVars = { (ActorFunc)EnGe3_Draw, }; -static ColliderCylinderInit D_80A35190 = { +static ColliderCylinderInit sCylinderInit = { { COLTYPE_NONE, AT_NONE, @@ -50,37 +51,248 @@ static ColliderCylinderInit D_80A35190 = { }, { 20, 50, 0, { 0, 0, 0 } }, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34620.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Init.s") +static EnGe3ActionFunc sActionFuncs[] = { EnGe3_WaitLookAtPlayer }; +static AnimationHeader* sAnimations[] = { &gGerudoRedStandAnim }; // Idle with right hand on hip and left over mouth +static u8 sAnimationModes[] = { ANIMMODE_LOOP }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Destroy.s") +void EnGe3_ChangeAction(EnGe3* this, s32 i) { + this->actionFunc = sActionFuncs[i]; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A347F4.s") + Animation_Change(&this->skelAnime, sAnimations[i], 1.0f, 0.0f, (f32)Animation_GetLastFrame(sAnimations[i]), + sAnimationModes[i], -8.0f); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A3490C.s") + this->unk_30C &= ~2; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A20.s") +void EnGe3_Init(Actor* thisx, GlobalContext* globalCtx2) { + EnGe3* this = THIS; + GlobalContext* globalCtx = globalCtx2; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34A80.s") + ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f); + SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGerudoRedSkel, NULL, this->jointTable, this->morphTable, + GELDB_LIMB_MAX); + Animation_PlayLoop(&this->skelAnime, &gGerudoRedStandAnim); + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + this->actor.colChkInfo.mass = MASS_IMMOVABLE; + Actor_SetScale(&this->actor, 0.01f); + this->actor.world.rot.z = 0; + this->actor.shape.rot.z = 0; + EnGe3_ChangeAction(this, 0); + this->actionFunc = EnGe3_ForceTalk; + this->unk_30C = 0; + this->actor.targetMode = 6; + this->actor.minVelocityY = -4.0f; + this->actor.gravity = -1.0f; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34AA0.s") +void EnGe3_Destroy(Actor* thisx, GlobalContext* globalCtx) { + EnGe3* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B00.s") + Collider_DestroyCylinder(globalCtx, &this->collider); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34B90.s") +void EnGe3_TurnToFacePlayer(EnGe3* this, GlobalContext* globalCtx) { + s32 pad; + s16 angleDiff = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34C40.s") + if (ABS(angleDiff) <= 0x4000) { + Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 6, 4000, 100); + this->actor.world.rot.y = this->actor.shape.rot.y; + func_80038290(globalCtx, &this->actor, &this->headRot, &this->unk_306, this->actor.focus.pos); + } else { + if (angleDiff < 0) { + Math_SmoothStepToS(&this->headRot.y, -0x2000, 6, 6200, 0x100); + } else { + Math_SmoothStepToS(&this->headRot.y, 0x2000, 6, 6200, 0x100); + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34CE4.s") + Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 12, 1000, 100); + this->actor.world.rot.y = this->actor.shape.rot.y; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34D68.s") +void EnGe3_LookAtPlayer(EnGe3* this, GlobalContext* globalCtx) { + if ((ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) <= 0x2300) && + (this->actor.xzDistToPlayer < 100.0f)) { + func_80038290(globalCtx, &this->actor, &this->headRot, &this->unk_306, this->actor.focus.pos); + } else { + Math_SmoothStepToS(&this->headRot.x, 0, 6, 6200, 100); + Math_SmoothStepToS(&this->headRot.y, 0, 6, 6200, 100); + Math_SmoothStepToS(&this->unk_306.x, 0, 6, 6200, 100); + Math_SmoothStepToS(&this->unk_306.y, 0, 6, 6200, 100); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Update.s") +void EnGe3_Wait(EnGe3* this, GlobalContext* globalCtx) { + if (func_8002F334(&this->actor, globalCtx)) { + this->actionFunc = EnGe3_WaitLookAtPlayer; + this->actor.update = EnGe3_UpdateWhenNotTalking; + this->actor.flags &= ~0x10000; + } + EnGe3_TurnToFacePlayer(this, globalCtx); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A34E58.s") +void EnGe3_WaitLookAtPlayer(EnGe3* this, GlobalContext* globalCtx) { + EnGe3_LookAtPlayer(this, globalCtx); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/func_80A35004.s") +void EnGe3_WaitTillCardGiven(EnGe3* this, GlobalContext* globalCtx) { + if (Actor_HasParent(&this->actor, globalCtx)) { + this->actor.parent = NULL; + this->actionFunc = EnGe3_Wait; + } else { + func_8002F434(&this->actor, globalCtx, GI_GERUDO_CARD, 10000.0f, 50.0f); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ge3/EnGe3_Draw.s") +void EnGe3_GiveCard(EnGe3* this, GlobalContext* globalCtx) { + if ((func_8010BDBC(&globalCtx->msgCtx) == 5) && (func_80106BC8(globalCtx) != 0)) { + func_80106CCC(globalCtx); + this->actor.flags &= ~0x10000; + this->actionFunc = EnGe3_WaitTillCardGiven; + func_8002F434(&this->actor, globalCtx, GI_GERUDO_CARD, 10000.0f, 50.0f); + } +} + +void EnGe3_ForceTalk(EnGe3* this, GlobalContext* globalCtx) { + if (func_8002F194(&this->actor, globalCtx)) { + this->actionFunc = EnGe3_GiveCard; + } else { + if (!(this->unk_30C & 4)) { + func_8002DF54(globalCtx, &this->actor, 7); + this->unk_30C |= 4; + } + this->actor.textId = 0x6004; + this->actor.flags |= 0x10000; + func_8002F1C4(&this->actor, globalCtx, 300.0f, 300.0f, 0); + } + EnGe3_LookAtPlayer(this, globalCtx); +} + +void EnGe3_UpdateCollision(EnGe3* this, GlobalContext* globalCtx) { + s32 pad; + s32 pad2; + + Collider_UpdateCylinder(&this->actor, &this->collider); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); + Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 40.0f, 25.0f, 40.0f, 5); + + if (!(this->unk_30C & 2) && SkelAnime_Update(&this->skelAnime)) { + this->unk_30C |= 2; + } +} + +void EnGe3_MoveAndBlink(EnGe3* this, GlobalContext* globalCtx) { + + Actor_MoveForward(&this->actor); + + if (DECR(this->blinkTimer) == 0) { + this->blinkTimer = Rand_S16Offset(60, 60); + } + + this->eyeIndex = this->blinkTimer; + + if (this->eyeIndex >= 3) { + this->eyeIndex = 0; + } +} + +void EnGe3_UpdateWhenNotTalking(Actor* thisx, GlobalContext* globalCtx) { + EnGe3* this = THIS; + + EnGe3_UpdateCollision(this, globalCtx); + this->actionFunc(this, globalCtx); + + if (func_8002F194(&this->actor, globalCtx)) { + this->actionFunc = EnGe3_Wait; + this->actor.update = EnGe3_Update; + } else { + this->actor.textId = 0x6005; + if (this->actor.xzDistToPlayer < 100.0f) { + func_8002F2CC(&this->actor, globalCtx, 100.0f); + } + } + + EnGe3_MoveAndBlink(this, globalCtx); +} + +void EnGe3_Update(Actor* thisx, GlobalContext* globalCtx) { + EnGe3* this = THIS; + + EnGe3_UpdateCollision(this, globalCtx); + this->actionFunc(this, globalCtx); + EnGe3_MoveAndBlink(this, globalCtx); +} + +s32 EnGe3_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) { + EnGe3* this = THIS; + + switch (limbIndex) { + // Hide swords and veil from object_geldb + case GELDB_LIMB_VEIL: + case GELDB_LIMB_R_SWORD: + case GELDB_LIMB_L_SWORD: + *dList = NULL; + return false; + // Turn head + case GELDB_LIMB_HEAD: + rot->x += this->headRot.y; + + // This is a hack to fix the color-changing clothes this Gerudo has on N64 versions + default: + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ge3.c", 547); + switch (limbIndex) { + case GELDB_LIMB_NECK: + break; + case GELDB_LIMB_HEAD: + gDPPipeSync(POLY_OPA_DISP++); + gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255); + break; + case GELDB_LIMB_R_SWORD: + case GELDB_LIMB_L_SWORD: + gDPPipeSync(POLY_OPA_DISP++); + gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255); + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); + break; + default: + gDPPipeSync(POLY_OPA_DISP++); + gDPSetEnvColor(POLY_OPA_DISP++, 140, 0, 0, 255); + break; + } + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ge3.c", 566); + break; + } + return false; +} + +void EnGe3_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { + EnGe3* this = THIS; + Vec3f D_80A351C8 = { 600.0f, 700.0f, 0.0f }; + + if (limbIndex == GELDB_LIMB_HEAD) { + Matrix_MultVec3f(&D_80A351C8, &this->actor.focus.pos); + } +} + +static u64* sEyeTextures[] = { + 0x06005FE8, // Half-open + 0x060065A8, // Quarter-open + 0x06006D28, // Closed +}; + +void EnGe3_Draw(Actor* thisx, GlobalContext* globalCtx2) { + EnGe3* this = THIS; + GlobalContext* globalCtx = globalCtx2; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ge3.c", 614); + + func_800943C8(globalCtx->state.gfxCtx); + gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sEyeTextures[this->eyeIndex])); + func_8002EBCC(&this->actor, globalCtx, 0); + SkelAnime_DrawFlexOpa(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, + EnGe3_OverrideLimbDraw, EnGe3_PostLimbDraw, this); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ge3.c", 631); +} diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h index c35bb41ccf..caf8e6bd5e 100644 --- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h +++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h @@ -3,12 +3,24 @@ #include "ultra64.h" #include "global.h" +#include "overlays/actors/ovl_En_GeldB/z_en_geldb.h" struct EnGe3; +typedef void (*EnGe3ActionFunc)(struct EnGe3*, GlobalContext*); + typedef struct EnGe3 { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x1C8]; + /* 0x014C */ ColliderCylinder collider; + /* 0x0198 */ SkelAnime skelAnime; + /* 0x01DC */ Vec3s jointTable[GELDB_LIMB_MAX]; + /* 0x026C */ Vec3s morphTable[GELDB_LIMB_MAX]; + /* 0x02FC */ s16 eyeIndex; + /* 0x02FE */ s16 blinkTimer; + /* 0x0300 */ Vec3s headRot; + /* 0x0306 */ Vec3s unk_306; + /* 0x030C */ u16 unk_30C; + /* 0x0310 */ EnGe3ActionFunc actionFunc; } EnGe3; // size = 0x0314 extern const ActorInit En_Ge3_InitVars; diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 5636969159..b2c0a88dc0 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -229,7 +229,7 @@ void EnGeldB_Init(Actor* thisx, GlobalContext* globalCtx) { this->blinkState = 0; this->unkFloat = 10.0f; SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gGerudoRedSkel, &gGerudoRedNeutralAnim, this->jointTable, - this->morphTable, 24); + this->morphTable, GELDB_LIMB_MAX); Collider_InitCylinder(globalCtx, &this->bodyCollider); Collider_SetCylinder(globalCtx, &this->bodyCollider, thisx, &sBodyCylInit); Collider_InitTris(globalCtx, &this->blockCollider); @@ -366,8 +366,8 @@ void EnGeldB_Wait(EnGeldB* this, GlobalContext* globalCtx) { this->actor.focus.pos = this->actor.world.pos; this->actor.bgCheckFlags &= ~2; this->actor.velocity.y = 0.0f; - func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); func_80033260(globalCtx, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, 0); + func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); } if (SkelAnime_Update(&this->skelAnime)) { EnGeldB_SetupReady(this); @@ -391,8 +391,8 @@ void EnGeldB_Flee(EnGeldB* this, GlobalContext* globalCtx) { } if (this->skelAnime.curFrame == 2.0f) { this->actor.gravity = 0.0f; - func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); func_80033260(globalCtx, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, 0); + func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); } if (SkelAnime_Update(&this->skelAnime)) { Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.floorHeight + 300.0f, 1.0f, 20.5f, 0.0f); @@ -923,8 +923,8 @@ void EnGeldB_SpinAttack(EnGeldB* this, GlobalContext* globalCtx) { if ((s32)this->skelAnime.curFrame < 9) { this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; } else if ((s32)this->skelAnime.curFrame == 13) { - func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); func_80033260(globalCtx, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, 0); + func_80033260(globalCtx, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, 0); this->swordState = 1; this->actor.speedXZ = 10.0f; Audio_PlayActorSound2(&this->actor, NA_SE_EN_GERUDOFT_ATTACK); @@ -1089,8 +1089,8 @@ void EnGeldB_SetupJump(EnGeldB* this) { void EnGeldB_Jump(EnGeldB* this, GlobalContext* globalCtx) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xFA0, 1); if (this->actor.velocity.y >= 5.0f) { - func_800355B8(globalCtx, &this->rightFootPos); func_800355B8(globalCtx, &this->leftFootPos); + func_800355B8(globalCtx, &this->rightFootPos); } if (SkelAnime_Update(&this->skelAnime) && (this->actor.bgCheckFlags & 3)) { this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; @@ -1428,14 +1428,14 @@ s32 EnGeldB_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLis EnGeldB* this = THIS; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_geldB.c", 2507); - if (limbIndex == 3) { + if (limbIndex == GELDB_LIMB_NECK) { rot->z += this->headRot.x; rot->x += this->headRot.y; rot->y += this->headRot.z; - } else if (limbIndex == 6) { + } else if (limbIndex == GELDB_LIMB_HEAD) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255); - } else if ((limbIndex == 11) || (limbIndex == 16)) { + } else if ((limbIndex == GELDB_LIMB_R_SWORD) || (limbIndex == GELDB_LIMB_L_SWORD)) { gDPPipeSync(POLY_OPA_DISP++); gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255); @@ -1461,7 +1461,7 @@ void EnGeldB_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, EnGeldB* this = THIS; s32 bodyPart = -1; - if (limbIndex == 11) { + if (limbIndex == GELDB_LIMB_R_SWORD) { Matrix_MultVec3f(&swordQuadOffset1, &this->swordCollider.dim.quad[1]); Matrix_MultVec3f(&swordQuadOffset0, &this->swordCollider.dim.quad[0]); Matrix_MultVec3f(&swordQuadOffset3, &this->swordCollider.dim.quad[3]); @@ -1479,45 +1479,48 @@ void EnGeldB_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, EffectBlure_AddVertex(Effect_GetByIndex(this->blureIndex), &swordTip, &swordHilt); } } else { - Actor_SetFeetPos(&this->actor, limbIndex, 19, &footOffset, 22, &footOffset); + Actor_SetFeetPos(&this->actor, limbIndex, GELDB_LIMB_L_FOOT, &footOffset, GELDB_LIMB_R_FOOT, &footOffset); } - if (limbIndex == 19) { - Matrix_MultVec3f(&footOffset, &this->rightFootPos); - } else if (limbIndex == 22) { + + if (limbIndex == GELDB_LIMB_L_FOOT) { Matrix_MultVec3f(&footOffset, &this->leftFootPos); + } else if (limbIndex == GELDB_LIMB_R_FOOT) { + Matrix_MultVec3f(&footOffset, &this->rightFootPos); } + if (this->iceTimer != 0) { switch (limbIndex) { - case 3: + case GELDB_LIMB_NECK: bodyPart = 0; break; - case 16: + case GELDB_LIMB_L_SWORD: bodyPart = 1; break; - case 11: + case GELDB_LIMB_R_SWORD: bodyPart = 2; break; - case 12: + case GELDB_LIMB_L_UPPER_ARM: bodyPart = 3; break; - case 7: + case GELDB_LIMB_R_UPPER_ARM: bodyPart = 4; break; - case 2: + case GELDB_LIMB_TORSO: bodyPart = 5; break; - case 23: + case GELDB_LIMB_WAIST: bodyPart = 6; break; - case 19: + case GELDB_LIMB_L_FOOT: bodyPart = 7; break; - case 22: + case GELDB_LIMB_R_FOOT: bodyPart = 8; break; default: break; } + if (bodyPart >= 0) { Vec3f limbPos; diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h index 2e875d1c2e..e5fc25d8e8 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h @@ -6,14 +6,42 @@ struct EnGeldB; +typedef enum { + /* 00 */ GELDB_LIMB_NONE, + /* 01 */ GELDB_LIMB_ROOT, + /* 02 */ GELDB_LIMB_TORSO, + /* 03 */ GELDB_LIMB_NECK, + /* 04 */ GELDB_LIMB_PONYTAIL, + /* 05 */ GELDB_LIMB_VEIL, + /* 06 */ GELDB_LIMB_HEAD, + /* 07 */ GELDB_LIMB_R_UPPER_ARM, + /* 08 */ GELDB_LIMB_R_FOREARM, + /* 09 */ GELDB_LIMB_R_WRIST, + /* 10 */ GELDB_LIMB_R_HAND, + /* 11 */ GELDB_LIMB_R_SWORD, + /* 12 */ GELDB_LIMB_L_UPPER_ARM, + /* 13 */ GELDB_LIMB_L_FOREARM, + /* 14 */ GELDB_LIMB_L_WRIST, + /* 15 */ GELDB_LIMB_L_HAND, + /* 16 */ GELDB_LIMB_L_SWORD, + /* 17 */ GELDB_LIMB_L_THIGH, + /* 18 */ GELDB_LIMB_L_SHIN, + /* 19 */ GELDB_LIMB_L_FOOT, + /* 20 */ GELDB_LIMB_R_THIGH, + /* 21 */ GELDB_LIMB_R_SHIN, + /* 22 */ GELDB_LIMB_R_FOOT, + /* 23 */ GELDB_LIMB_WAIST, + /* 24 */ GELDB_LIMB_MAX +} EnGeldBLimb; + typedef void (*EnGeldBActionFunc)(struct EnGeldB*, GlobalContext*); typedef struct EnGeldB { /* 0x0000 */ Actor actor; /* 0x014C */ Vec3s bodyPartsPos[10]; /* 0x0188 */ SkelAnime skelAnime; - /* 0x01CC */ Vec3s jointTable[24]; - /* 0x025C */ Vec3s morphTable[24]; + /* 0x01CC */ Vec3s jointTable[GELDB_LIMB_MAX]; + /* 0x025C */ Vec3s morphTable[GELDB_LIMB_MAX]; /* 0x02EC */ s32 action; /* 0x02F0 */ char unk_2F0[4]; /* 0x02F4 */ EnGeldBActionFunc actionFunc; @@ -36,8 +64,8 @@ typedef struct EnGeldB { /* 0x036C */ ColliderQuad swordCollider; /* 0x03EC */ ColliderTris blockCollider; /* 0x040C */ ColliderTrisElement blockElements[2]; - /* 0x04C4 */ Vec3f leftFootPos; - /* 0x04D0 */ Vec3f rightFootPos; + /* 0x04C4 */ Vec3f rightFootPos; + /* 0x04D0 */ Vec3f leftFootPos; /* 0x04DC */ Vec3s headRot; } EnGeldB; // size = 0x04E4