Merge pull request #350 from octorock/enemy64

This commit is contained in:
notyourav 2022-02-06 02:05:29 -08:00 committed by GitHub
commit f4d86a61f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 1001 additions and 2158 deletions

View File

@ -1,272 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Enemy62
Enemy62: @ 0x08048D98
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r6, [r5, #0x50]
ldr r0, [r6, #4]
cmp r0, #0
bne _08048DA8
bl DeleteThisEntity
_08048DA8:
ldr r4, _08048E00 @ =gUnk_080D22D8
adds r0, r5, #0
bl GetNextFunction
lsls r0, r0, #2
adds r0, r0, r4
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
ldrb r2, [r6, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r6, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x19]
adds r0, r6, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, r5, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4, r5, r6, pc}
.align 2, 0
_08048E00: .4byte gUnk_080D22D8
thumb_func_start sub_08048E04
sub_08048E04: @ 0x08048E04
push {lr}
ldr r2, _08048E18 @ =gUnk_080D22F0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08048E18: .4byte gUnk_080D22F0
thumb_func_start sub_08048E1C
sub_08048E1C: @ 0x08048E1C
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x45
ldrb r1, [r0]
movs r0, #0xff
subs r0, r0, r1
cmp r0, #0
beq _08048E96
ldr r4, [r5, #0x50]
adds r1, r4, #0
adds r1, #0x45
ldrb r2, [r1]
cmp r2, r0
bls _08048E48
subs r0, r2, r0
strb r0, [r1]
ldr r0, _08048E44 @ =0x00000127
bl SoundReq
b _08048E5C
.align 2, 0
_08048E44: .4byte 0x00000127
_08048E48:
movs r0, #0
strb r0, [r1]
movs r0, #0x94
lsls r0, r0, #1
bl SoundReq
movs r0, #0x28
movs r1, #0
bl InitScreenShake
_08048E5C:
adds r2, r5, #0
adds r2, #0x3d
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
ble _08048E8E
adds r0, r4, #0
adds r0, #0x3d
strb r1, [r0]
ldr r4, [r4, #0x54]
ldrb r0, [r2]
adds r1, r4, #0
adds r1, #0x3d
strb r0, [r1]
ldr r4, [r4, #0x54]
ldrb r0, [r2]
adds r1, r4, #0
adds r1, #0x3d
strb r0, [r1]
ldr r4, [r4, #0x54]
ldrb r1, [r2]
adds r0, r4, #0
adds r0, #0x3d
strb r1, [r0]
_08048E8E:
adds r1, r5, #0
adds r1, #0x45
movs r0, #0xff
strb r0, [r1]
_08048E96:
ldr r1, _08048EA0 @ =gUnk_080D22D8
adds r0, r5, #0
bl sub_0804AA30
pop {r4, r5, pc}
.align 2, 0
_08048EA0: .4byte gUnk_080D22D8
thumb_func_start sub_08048EA4
sub_08048EA4: @ 0x08048EA4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, [r4, #0x50]
ldrb r1, [r0, #0x14]
movs r0, #0xe0
ands r0, r1
lsrs r0, r0, #3
ldrb r1, [r4, #0xa]
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x78
strb r0, [r1]
adds r0, r4, #0
bl sub_08048F50
adds r0, r4, #0
bl sub_08048F74
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08048ED0
sub_08048ED0: @ 0x08048ED0
push {r4, lr}
adds r4, r0, #0
bl sub_08048F50
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08048EFC
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x2d
strb r0, [r4, #0xe]
_08048EFC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08048F00
sub_08048F00: @ 0x08048F00
push {r4, lr}
adds r4, r0, #0
bl sub_08048F50
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08048F2E
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #4
adds r0, r4, #0
bl InitializeAnimation
_08048F2E:
pop {r4, pc}
thumb_func_start sub_08048F30
sub_08048F30: @ 0x08048F30
push {r4, lr}
adds r4, r0, #0
bl sub_08048F50
adds r0, r4, #0
bl GetNextFrame
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08048F4E
bl DeleteThisEntity
_08048F4E:
pop {r4, pc}
thumb_func_start sub_08048F50
sub_08048F50: @ 0x08048F50
push {lr}
adds r1, r0, #0
adds r0, #0x78
ldrb r3, [r0]
lsls r3, r3, #1
ldr r0, _08048F70 @ =gUnk_080D2300
adds r3, r3, r0
ldr r0, [r1, #0x50]
movs r2, #0
ldrsb r2, [r3, r2]
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
bl sub_0806FA90
pop {pc}
.align 2, 0
_08048F70: .4byte gUnk_080D2300
thumb_func_start sub_08048F74
sub_08048F74: @ 0x08048F74
push {lr}
ldr r2, _08048F88 @ =gUnk_080D2348
adds r1, r0, #0
adds r1, #0x78
ldrb r1, [r1]
adds r1, r1, r2
ldrb r1, [r1]
bl InitializeAnimation
pop {pc}
.align 2, 0
_08048F88: .4byte gUnk_080D2348

File diff suppressed because it is too large Load Diff

View File

@ -28580,399 +28580,389 @@
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_0.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_0.bin",
"start": 861032,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_1.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_1.bin",
"start": 861049,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_2.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_2.bin",
"start": 861066,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_3.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_3.bin",
"start": 861083,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_4.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_4.bin",
"start": 861100,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_5.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_5.bin",
"start": 861117,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_6.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_6.bin",
"start": 861134,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_7.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_7.bin",
"start": 861151,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_8.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_8.bin",
"start": 861168,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_9.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_9.bin",
"start": 861185,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_10.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_10.bin",
"start": 861202,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_11.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_11.bin",
"start": 861219,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_12.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_12.bin",
"start": 861236,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_13.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_13.bin",
"start": 861253,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_14.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_14.bin",
"start": 861270,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_15.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_15.bin",
"start": 861287,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_16.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_16.bin",
"start": 861304,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_17.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_17.bin",
"start": 861321,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_18.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_18.bin",
"start": 861338,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_19.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_19.bin",
"start": 861355,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_20.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_20.bin",
"start": 861372,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_21.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_21.bin",
"start": 861389,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_22.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_22.bin",
"start": 861406,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_23.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_23.bin",
"start": 861423,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_24.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_24.bin",
"start": 861440,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_25.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_25.bin",
"start": 861457,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_26.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_26.bin",
"start": 861474,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_27.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_27.bin",
"start": 861491,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_28.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_28.bin",
"start": 861508,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_29.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_29.bin",
"start": 861525,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_30.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_30.bin",
"start": 861542,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_31.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_31.bin",
"start": 861559,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_32.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_32.bin",
"start": 861576,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_33.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_33.bin",
"start": 861593,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_34.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_34.bin",
"start": 861610,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_35.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_35.bin",
"start": 861627,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_36.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_36.bin",
"start": 861644,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_37.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_37.bin",
"start": 861661,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_38.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_38.bin",
"start": 861678,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_39.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_39.bin",
"start": 861695,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_40.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_40.bin",
"start": 861712,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_41.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_41.bin",
"start": 861729,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_42.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_42.bin",
"start": 861746,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_43.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_43.bin",
"start": 861763,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_44.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_44.bin",
"start": 861780,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_45.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_45.bin",
"start": 861797,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_46.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_46.bin",
"start": 861814,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_47.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_47.bin",
"start": 861831,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_48.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_48.bin",
"start": 861848,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_49.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_49.bin",
"start": 861865,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_50.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_50.bin",
"start": 861882,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_51.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_51.bin",
"start": 861899,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_52.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_52.bin",
"start": 861916,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_53.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_53.bin",
"start": 861933,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_54.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_54.bin",
"start": 861950,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_55.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_55.bin",
"start": 861967,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_56.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_56.bin",
"start": 861984,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_57.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_57.bin",
"start": 862001,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_58.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_58.bin",
"start": 862018,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_59.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_59.bin",
"start": 862035,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_60.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_60.bin",
"start": 862052,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_61.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_61.bin",
"start": 862069,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_62.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_62.bin",
"start": 862086,
"size": 17,
"type": "animation"
},
{
"path": "animations/gSpriteAnimations_Enemy62_63.bin",
"path": "animations/gSpriteAnimations_GyorgMaleEye_63.bin",
"start": 862103,
"size": 17,
"type": "animation"
},
{
"path": "enemy62/gUnk_080D2300.bin",
"start": 860928,
"size": 72
},
{
"path": "enemy62/gUnk_080D2348.bin",
"start": 861000,
"size": 32
},
{
"path": "animations/gSpriteAnimations_GyorgFemaleMouth_0.bin",
"start": 862492,
@ -28997,11 +28987,6 @@
"size": 17,
"type": "animation"
},
{
"path": "enemy64/gUnk_080D29B8.bin",
"start": 862648,
"size": 8
},
{
"path": "data_080D3D94/gUnk_080D3D94.bin",
"start": 867732,

View File

@ -1,264 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gSpriteAnimations_Enemy62_0:: @ 080D2368
.include "animations/gSpriteAnimations_Enemy62_0.s"
gSpriteAnimations_Enemy62_1:: @ 080D2379
.include "animations/gSpriteAnimations_Enemy62_1.s"
gSpriteAnimations_Enemy62_2:: @ 080D238A
.include "animations/gSpriteAnimations_Enemy62_2.s"
gSpriteAnimations_Enemy62_3:: @ 080D239B
.include "animations/gSpriteAnimations_Enemy62_3.s"
gSpriteAnimations_Enemy62_4:: @ 080D23AC
.include "animations/gSpriteAnimations_Enemy62_4.s"
gSpriteAnimations_Enemy62_5:: @ 080D23BD
.include "animations/gSpriteAnimations_Enemy62_5.s"
gSpriteAnimations_Enemy62_6:: @ 080D23CE
.include "animations/gSpriteAnimations_Enemy62_6.s"
gSpriteAnimations_Enemy62_7:: @ 080D23DF
.include "animations/gSpriteAnimations_Enemy62_7.s"
gSpriteAnimations_Enemy62_8:: @ 080D23F0
.include "animations/gSpriteAnimations_Enemy62_8.s"
gSpriteAnimations_Enemy62_9:: @ 080D2401
.include "animations/gSpriteAnimations_Enemy62_9.s"
gSpriteAnimations_Enemy62_10:: @ 080D2412
.include "animations/gSpriteAnimations_Enemy62_10.s"
gSpriteAnimations_Enemy62_11:: @ 080D2423
.include "animations/gSpriteAnimations_Enemy62_11.s"
gSpriteAnimations_Enemy62_12:: @ 080D2434
.include "animations/gSpriteAnimations_Enemy62_12.s"
gSpriteAnimations_Enemy62_13:: @ 080D2445
.include "animations/gSpriteAnimations_Enemy62_13.s"
gSpriteAnimations_Enemy62_14:: @ 080D2456
.include "animations/gSpriteAnimations_Enemy62_14.s"
gSpriteAnimations_Enemy62_15:: @ 080D2467
.include "animations/gSpriteAnimations_Enemy62_15.s"
gSpriteAnimations_Enemy62_16:: @ 080D2478
.include "animations/gSpriteAnimations_Enemy62_16.s"
gSpriteAnimations_Enemy62_17:: @ 080D2489
.include "animations/gSpriteAnimations_Enemy62_17.s"
gSpriteAnimations_Enemy62_18:: @ 080D249A
.include "animations/gSpriteAnimations_Enemy62_18.s"
gSpriteAnimations_Enemy62_19:: @ 080D24AB
.include "animations/gSpriteAnimations_Enemy62_19.s"
gSpriteAnimations_Enemy62_20:: @ 080D24BC
.include "animations/gSpriteAnimations_Enemy62_20.s"
gSpriteAnimations_Enemy62_21:: @ 080D24CD
.include "animations/gSpriteAnimations_Enemy62_21.s"
gSpriteAnimations_Enemy62_22:: @ 080D24DE
.include "animations/gSpriteAnimations_Enemy62_22.s"
gSpriteAnimations_Enemy62_23:: @ 080D24EF
.include "animations/gSpriteAnimations_Enemy62_23.s"
gSpriteAnimations_Enemy62_24:: @ 080D2500
.include "animations/gSpriteAnimations_Enemy62_24.s"
gSpriteAnimations_Enemy62_25:: @ 080D2511
.include "animations/gSpriteAnimations_Enemy62_25.s"
gSpriteAnimations_Enemy62_26:: @ 080D2522
.include "animations/gSpriteAnimations_Enemy62_26.s"
gSpriteAnimations_Enemy62_27:: @ 080D2533
.include "animations/gSpriteAnimations_Enemy62_27.s"
gSpriteAnimations_Enemy62_28:: @ 080D2544
.include "animations/gSpriteAnimations_Enemy62_28.s"
gSpriteAnimations_Enemy62_29:: @ 080D2555
.include "animations/gSpriteAnimations_Enemy62_29.s"
gSpriteAnimations_Enemy62_30:: @ 080D2566
.include "animations/gSpriteAnimations_Enemy62_30.s"
gSpriteAnimations_Enemy62_31:: @ 080D2577
.include "animations/gSpriteAnimations_Enemy62_31.s"
gSpriteAnimations_Enemy62_32:: @ 080D2588
.include "animations/gSpriteAnimations_Enemy62_32.s"
gSpriteAnimations_Enemy62_33:: @ 080D2599
.include "animations/gSpriteAnimations_Enemy62_33.s"
gSpriteAnimations_Enemy62_34:: @ 080D25AA
.include "animations/gSpriteAnimations_Enemy62_34.s"
gSpriteAnimations_Enemy62_35:: @ 080D25BB
.include "animations/gSpriteAnimations_Enemy62_35.s"
gSpriteAnimations_Enemy62_36:: @ 080D25CC
.include "animations/gSpriteAnimations_Enemy62_36.s"
gSpriteAnimations_Enemy62_37:: @ 080D25DD
.include "animations/gSpriteAnimations_Enemy62_37.s"
gSpriteAnimations_Enemy62_38:: @ 080D25EE
.include "animations/gSpriteAnimations_Enemy62_38.s"
gSpriteAnimations_Enemy62_39:: @ 080D25FF
.include "animations/gSpriteAnimations_Enemy62_39.s"
gSpriteAnimations_Enemy62_40:: @ 080D2610
.include "animations/gSpriteAnimations_Enemy62_40.s"
gSpriteAnimations_Enemy62_41:: @ 080D2621
.include "animations/gSpriteAnimations_Enemy62_41.s"
gSpriteAnimations_Enemy62_42:: @ 080D2632
.include "animations/gSpriteAnimations_Enemy62_42.s"
gSpriteAnimations_Enemy62_43:: @ 080D2643
.include "animations/gSpriteAnimations_Enemy62_43.s"
gSpriteAnimations_Enemy62_44:: @ 080D2654
.include "animations/gSpriteAnimations_Enemy62_44.s"
gSpriteAnimations_Enemy62_45:: @ 080D2665
.include "animations/gSpriteAnimations_Enemy62_45.s"
gSpriteAnimations_Enemy62_46:: @ 080D2676
.include "animations/gSpriteAnimations_Enemy62_46.s"
gSpriteAnimations_Enemy62_47:: @ 080D2687
.include "animations/gSpriteAnimations_Enemy62_47.s"
gSpriteAnimations_Enemy62_48:: @ 080D2698
.include "animations/gSpriteAnimations_Enemy62_48.s"
gSpriteAnimations_Enemy62_49:: @ 080D26A9
.include "animations/gSpriteAnimations_Enemy62_49.s"
gSpriteAnimations_Enemy62_50:: @ 080D26BA
.include "animations/gSpriteAnimations_Enemy62_50.s"
gSpriteAnimations_Enemy62_51:: @ 080D26CB
.include "animations/gSpriteAnimations_Enemy62_51.s"
gSpriteAnimations_Enemy62_52:: @ 080D26DC
.include "animations/gSpriteAnimations_Enemy62_52.s"
gSpriteAnimations_Enemy62_53:: @ 080D26ED
.include "animations/gSpriteAnimations_Enemy62_53.s"
gSpriteAnimations_Enemy62_54:: @ 080D26FE
.include "animations/gSpriteAnimations_Enemy62_54.s"
gSpriteAnimations_Enemy62_55:: @ 080D270F
.include "animations/gSpriteAnimations_Enemy62_55.s"
gSpriteAnimations_Enemy62_56:: @ 080D2720
.include "animations/gSpriteAnimations_Enemy62_56.s"
gSpriteAnimations_Enemy62_57:: @ 080D2731
.include "animations/gSpriteAnimations_Enemy62_57.s"
gSpriteAnimations_Enemy62_58:: @ 080D2742
.include "animations/gSpriteAnimations_Enemy62_58.s"
gSpriteAnimations_Enemy62_59:: @ 080D2753
.include "animations/gSpriteAnimations_Enemy62_59.s"
gSpriteAnimations_Enemy62_60:: @ 080D2764
.include "animations/gSpriteAnimations_Enemy62_60.s"
gSpriteAnimations_Enemy62_61:: @ 080D2775
.include "animations/gSpriteAnimations_Enemy62_61.s"
gSpriteAnimations_Enemy62_62:: @ 080D2786
.include "animations/gSpriteAnimations_Enemy62_62.s"
gSpriteAnimations_Enemy62_63:: @ 080D2797
.include "animations/gSpriteAnimations_Enemy62_63.s"
gSpriteAnimations_Enemy62:: @ 080D27A8
.4byte gSpriteAnimations_Enemy62_0
.4byte gSpriteAnimations_Enemy62_1
.4byte gSpriteAnimations_Enemy62_2
.4byte gSpriteAnimations_Enemy62_3
.4byte gSpriteAnimations_Enemy62_4
.4byte gSpriteAnimations_Enemy62_5
.4byte gSpriteAnimations_Enemy62_6
.4byte gSpriteAnimations_Enemy62_7
.4byte gSpriteAnimations_Enemy62_8
.4byte gSpriteAnimations_Enemy62_9
.4byte gSpriteAnimations_Enemy62_10
.4byte gSpriteAnimations_Enemy62_11
.4byte gSpriteAnimations_Enemy62_12
.4byte gSpriteAnimations_Enemy62_13
.4byte gSpriteAnimations_Enemy62_14
.4byte gSpriteAnimations_Enemy62_15
.4byte gSpriteAnimations_Enemy62_16
.4byte gSpriteAnimations_Enemy62_17
.4byte gSpriteAnimations_Enemy62_18
.4byte gSpriteAnimations_Enemy62_19
.4byte gSpriteAnimations_Enemy62_20
.4byte gSpriteAnimations_Enemy62_21
.4byte gSpriteAnimations_Enemy62_22
.4byte gSpriteAnimations_Enemy62_23
.4byte gSpriteAnimations_Enemy62_24
.4byte gSpriteAnimations_Enemy62_25
.4byte gSpriteAnimations_Enemy62_26
.4byte gSpriteAnimations_Enemy62_27
.4byte gSpriteAnimations_Enemy62_28
.4byte gSpriteAnimations_Enemy62_29
.4byte gSpriteAnimations_Enemy62_30
.4byte gSpriteAnimations_Enemy62_31
.4byte gSpriteAnimations_Enemy62_32
.4byte gSpriteAnimations_Enemy62_33
.4byte gSpriteAnimations_Enemy62_34
.4byte gSpriteAnimations_Enemy62_35
.4byte gSpriteAnimations_Enemy62_36
.4byte gSpriteAnimations_Enemy62_37
.4byte gSpriteAnimations_Enemy62_38
.4byte gSpriteAnimations_Enemy62_39
.4byte gSpriteAnimations_Enemy62_40
.4byte gSpriteAnimations_Enemy62_41
.4byte gSpriteAnimations_Enemy62_42
.4byte gSpriteAnimations_Enemy62_43
.4byte gSpriteAnimations_Enemy62_44
.4byte gSpriteAnimations_Enemy62_45
.4byte gSpriteAnimations_Enemy62_46
.4byte gSpriteAnimations_Enemy62_47
.4byte gSpriteAnimations_Enemy62_48
.4byte gSpriteAnimations_Enemy62_49
.4byte gSpriteAnimations_Enemy62_50
.4byte gSpriteAnimations_Enemy62_51
.4byte gSpriteAnimations_Enemy62_52
.4byte gSpriteAnimations_Enemy62_53
.4byte gSpriteAnimations_Enemy62_54
.4byte gSpriteAnimations_Enemy62_55
.4byte gSpriteAnimations_Enemy62_56
.4byte gSpriteAnimations_Enemy62_57
.4byte gSpriteAnimations_Enemy62_58
.4byte gSpriteAnimations_Enemy62_59
.4byte gSpriteAnimations_Enemy62_60
.4byte gSpriteAnimations_Enemy62_61
.4byte gSpriteAnimations_Enemy62_62
.4byte gSpriteAnimations_Enemy62_63
.4byte 00000000

View File

@ -0,0 +1,264 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gSpriteAnimations_GyorgMaleEye_0:: @ 080D2368
.include "animations/gSpriteAnimations_GyorgMaleEye_0.s"
gSpriteAnimations_GyorgMaleEye_1:: @ 080D2379
.include "animations/gSpriteAnimations_GyorgMaleEye_1.s"
gSpriteAnimations_GyorgMaleEye_2:: @ 080D238A
.include "animations/gSpriteAnimations_GyorgMaleEye_2.s"
gSpriteAnimations_GyorgMaleEye_3:: @ 080D239B
.include "animations/gSpriteAnimations_GyorgMaleEye_3.s"
gSpriteAnimations_GyorgMaleEye_4:: @ 080D23AC
.include "animations/gSpriteAnimations_GyorgMaleEye_4.s"
gSpriteAnimations_GyorgMaleEye_5:: @ 080D23BD
.include "animations/gSpriteAnimations_GyorgMaleEye_5.s"
gSpriteAnimations_GyorgMaleEye_6:: @ 080D23CE
.include "animations/gSpriteAnimations_GyorgMaleEye_6.s"
gSpriteAnimations_GyorgMaleEye_7:: @ 080D23DF
.include "animations/gSpriteAnimations_GyorgMaleEye_7.s"
gSpriteAnimations_GyorgMaleEye_8:: @ 080D23F0
.include "animations/gSpriteAnimations_GyorgMaleEye_8.s"
gSpriteAnimations_GyorgMaleEye_9:: @ 080D2401
.include "animations/gSpriteAnimations_GyorgMaleEye_9.s"
gSpriteAnimations_GyorgMaleEye_10:: @ 080D2412
.include "animations/gSpriteAnimations_GyorgMaleEye_10.s"
gSpriteAnimations_GyorgMaleEye_11:: @ 080D2423
.include "animations/gSpriteAnimations_GyorgMaleEye_11.s"
gSpriteAnimations_GyorgMaleEye_12:: @ 080D2434
.include "animations/gSpriteAnimations_GyorgMaleEye_12.s"
gSpriteAnimations_GyorgMaleEye_13:: @ 080D2445
.include "animations/gSpriteAnimations_GyorgMaleEye_13.s"
gSpriteAnimations_GyorgMaleEye_14:: @ 080D2456
.include "animations/gSpriteAnimations_GyorgMaleEye_14.s"
gSpriteAnimations_GyorgMaleEye_15:: @ 080D2467
.include "animations/gSpriteAnimations_GyorgMaleEye_15.s"
gSpriteAnimations_GyorgMaleEye_16:: @ 080D2478
.include "animations/gSpriteAnimations_GyorgMaleEye_16.s"
gSpriteAnimations_GyorgMaleEye_17:: @ 080D2489
.include "animations/gSpriteAnimations_GyorgMaleEye_17.s"
gSpriteAnimations_GyorgMaleEye_18:: @ 080D249A
.include "animations/gSpriteAnimations_GyorgMaleEye_18.s"
gSpriteAnimations_GyorgMaleEye_19:: @ 080D24AB
.include "animations/gSpriteAnimations_GyorgMaleEye_19.s"
gSpriteAnimations_GyorgMaleEye_20:: @ 080D24BC
.include "animations/gSpriteAnimations_GyorgMaleEye_20.s"
gSpriteAnimations_GyorgMaleEye_21:: @ 080D24CD
.include "animations/gSpriteAnimations_GyorgMaleEye_21.s"
gSpriteAnimations_GyorgMaleEye_22:: @ 080D24DE
.include "animations/gSpriteAnimations_GyorgMaleEye_22.s"
gSpriteAnimations_GyorgMaleEye_23:: @ 080D24EF
.include "animations/gSpriteAnimations_GyorgMaleEye_23.s"
gSpriteAnimations_GyorgMaleEye_24:: @ 080D2500
.include "animations/gSpriteAnimations_GyorgMaleEye_24.s"
gSpriteAnimations_GyorgMaleEye_25:: @ 080D2511
.include "animations/gSpriteAnimations_GyorgMaleEye_25.s"
gSpriteAnimations_GyorgMaleEye_26:: @ 080D2522
.include "animations/gSpriteAnimations_GyorgMaleEye_26.s"
gSpriteAnimations_GyorgMaleEye_27:: @ 080D2533
.include "animations/gSpriteAnimations_GyorgMaleEye_27.s"
gSpriteAnimations_GyorgMaleEye_28:: @ 080D2544
.include "animations/gSpriteAnimations_GyorgMaleEye_28.s"
gSpriteAnimations_GyorgMaleEye_29:: @ 080D2555
.include "animations/gSpriteAnimations_GyorgMaleEye_29.s"
gSpriteAnimations_GyorgMaleEye_30:: @ 080D2566
.include "animations/gSpriteAnimations_GyorgMaleEye_30.s"
gSpriteAnimations_GyorgMaleEye_31:: @ 080D2577
.include "animations/gSpriteAnimations_GyorgMaleEye_31.s"
gSpriteAnimations_GyorgMaleEye_32:: @ 080D2588
.include "animations/gSpriteAnimations_GyorgMaleEye_32.s"
gSpriteAnimations_GyorgMaleEye_33:: @ 080D2599
.include "animations/gSpriteAnimations_GyorgMaleEye_33.s"
gSpriteAnimations_GyorgMaleEye_34:: @ 080D25AA
.include "animations/gSpriteAnimations_GyorgMaleEye_34.s"
gSpriteAnimations_GyorgMaleEye_35:: @ 080D25BB
.include "animations/gSpriteAnimations_GyorgMaleEye_35.s"
gSpriteAnimations_GyorgMaleEye_36:: @ 080D25CC
.include "animations/gSpriteAnimations_GyorgMaleEye_36.s"
gSpriteAnimations_GyorgMaleEye_37:: @ 080D25DD
.include "animations/gSpriteAnimations_GyorgMaleEye_37.s"
gSpriteAnimations_GyorgMaleEye_38:: @ 080D25EE
.include "animations/gSpriteAnimations_GyorgMaleEye_38.s"
gSpriteAnimations_GyorgMaleEye_39:: @ 080D25FF
.include "animations/gSpriteAnimations_GyorgMaleEye_39.s"
gSpriteAnimations_GyorgMaleEye_40:: @ 080D2610
.include "animations/gSpriteAnimations_GyorgMaleEye_40.s"
gSpriteAnimations_GyorgMaleEye_41:: @ 080D2621
.include "animations/gSpriteAnimations_GyorgMaleEye_41.s"
gSpriteAnimations_GyorgMaleEye_42:: @ 080D2632
.include "animations/gSpriteAnimations_GyorgMaleEye_42.s"
gSpriteAnimations_GyorgMaleEye_43:: @ 080D2643
.include "animations/gSpriteAnimations_GyorgMaleEye_43.s"
gSpriteAnimations_GyorgMaleEye_44:: @ 080D2654
.include "animations/gSpriteAnimations_GyorgMaleEye_44.s"
gSpriteAnimations_GyorgMaleEye_45:: @ 080D2665
.include "animations/gSpriteAnimations_GyorgMaleEye_45.s"
gSpriteAnimations_GyorgMaleEye_46:: @ 080D2676
.include "animations/gSpriteAnimations_GyorgMaleEye_46.s"
gSpriteAnimations_GyorgMaleEye_47:: @ 080D2687
.include "animations/gSpriteAnimations_GyorgMaleEye_47.s"
gSpriteAnimations_GyorgMaleEye_48:: @ 080D2698
.include "animations/gSpriteAnimations_GyorgMaleEye_48.s"
gSpriteAnimations_GyorgMaleEye_49:: @ 080D26A9
.include "animations/gSpriteAnimations_GyorgMaleEye_49.s"
gSpriteAnimations_GyorgMaleEye_50:: @ 080D26BA
.include "animations/gSpriteAnimations_GyorgMaleEye_50.s"
gSpriteAnimations_GyorgMaleEye_51:: @ 080D26CB
.include "animations/gSpriteAnimations_GyorgMaleEye_51.s"
gSpriteAnimations_GyorgMaleEye_52:: @ 080D26DC
.include "animations/gSpriteAnimations_GyorgMaleEye_52.s"
gSpriteAnimations_GyorgMaleEye_53:: @ 080D26ED
.include "animations/gSpriteAnimations_GyorgMaleEye_53.s"
gSpriteAnimations_GyorgMaleEye_54:: @ 080D26FE
.include "animations/gSpriteAnimations_GyorgMaleEye_54.s"
gSpriteAnimations_GyorgMaleEye_55:: @ 080D270F
.include "animations/gSpriteAnimations_GyorgMaleEye_55.s"
gSpriteAnimations_GyorgMaleEye_56:: @ 080D2720
.include "animations/gSpriteAnimations_GyorgMaleEye_56.s"
gSpriteAnimations_GyorgMaleEye_57:: @ 080D2731
.include "animations/gSpriteAnimations_GyorgMaleEye_57.s"
gSpriteAnimations_GyorgMaleEye_58:: @ 080D2742
.include "animations/gSpriteAnimations_GyorgMaleEye_58.s"
gSpriteAnimations_GyorgMaleEye_59:: @ 080D2753
.include "animations/gSpriteAnimations_GyorgMaleEye_59.s"
gSpriteAnimations_GyorgMaleEye_60:: @ 080D2764
.include "animations/gSpriteAnimations_GyorgMaleEye_60.s"
gSpriteAnimations_GyorgMaleEye_61:: @ 080D2775
.include "animations/gSpriteAnimations_GyorgMaleEye_61.s"
gSpriteAnimations_GyorgMaleEye_62:: @ 080D2786
.include "animations/gSpriteAnimations_GyorgMaleEye_62.s"
gSpriteAnimations_GyorgMaleEye_63:: @ 080D2797
.include "animations/gSpriteAnimations_GyorgMaleEye_63.s"
gSpriteAnimations_GyorgMaleEye:: @ 080D27A8
.4byte gSpriteAnimations_GyorgMaleEye_0
.4byte gSpriteAnimations_GyorgMaleEye_1
.4byte gSpriteAnimations_GyorgMaleEye_2
.4byte gSpriteAnimations_GyorgMaleEye_3
.4byte gSpriteAnimations_GyorgMaleEye_4
.4byte gSpriteAnimations_GyorgMaleEye_5
.4byte gSpriteAnimations_GyorgMaleEye_6
.4byte gSpriteAnimations_GyorgMaleEye_7
.4byte gSpriteAnimations_GyorgMaleEye_8
.4byte gSpriteAnimations_GyorgMaleEye_9
.4byte gSpriteAnimations_GyorgMaleEye_10
.4byte gSpriteAnimations_GyorgMaleEye_11
.4byte gSpriteAnimations_GyorgMaleEye_12
.4byte gSpriteAnimations_GyorgMaleEye_13
.4byte gSpriteAnimations_GyorgMaleEye_14
.4byte gSpriteAnimations_GyorgMaleEye_15
.4byte gSpriteAnimations_GyorgMaleEye_16
.4byte gSpriteAnimations_GyorgMaleEye_17
.4byte gSpriteAnimations_GyorgMaleEye_18
.4byte gSpriteAnimations_GyorgMaleEye_19
.4byte gSpriteAnimations_GyorgMaleEye_20
.4byte gSpriteAnimations_GyorgMaleEye_21
.4byte gSpriteAnimations_GyorgMaleEye_22
.4byte gSpriteAnimations_GyorgMaleEye_23
.4byte gSpriteAnimations_GyorgMaleEye_24
.4byte gSpriteAnimations_GyorgMaleEye_25
.4byte gSpriteAnimations_GyorgMaleEye_26
.4byte gSpriteAnimations_GyorgMaleEye_27
.4byte gSpriteAnimations_GyorgMaleEye_28
.4byte gSpriteAnimations_GyorgMaleEye_29
.4byte gSpriteAnimations_GyorgMaleEye_30
.4byte gSpriteAnimations_GyorgMaleEye_31
.4byte gSpriteAnimations_GyorgMaleEye_32
.4byte gSpriteAnimations_GyorgMaleEye_33
.4byte gSpriteAnimations_GyorgMaleEye_34
.4byte gSpriteAnimations_GyorgMaleEye_35
.4byte gSpriteAnimations_GyorgMaleEye_36
.4byte gSpriteAnimations_GyorgMaleEye_37
.4byte gSpriteAnimations_GyorgMaleEye_38
.4byte gSpriteAnimations_GyorgMaleEye_39
.4byte gSpriteAnimations_GyorgMaleEye_40
.4byte gSpriteAnimations_GyorgMaleEye_41
.4byte gSpriteAnimations_GyorgMaleEye_42
.4byte gSpriteAnimations_GyorgMaleEye_43
.4byte gSpriteAnimations_GyorgMaleEye_44
.4byte gSpriteAnimations_GyorgMaleEye_45
.4byte gSpriteAnimations_GyorgMaleEye_46
.4byte gSpriteAnimations_GyorgMaleEye_47
.4byte gSpriteAnimations_GyorgMaleEye_48
.4byte gSpriteAnimations_GyorgMaleEye_49
.4byte gSpriteAnimations_GyorgMaleEye_50
.4byte gSpriteAnimations_GyorgMaleEye_51
.4byte gSpriteAnimations_GyorgMaleEye_52
.4byte gSpriteAnimations_GyorgMaleEye_53
.4byte gSpriteAnimations_GyorgMaleEye_54
.4byte gSpriteAnimations_GyorgMaleEye_55
.4byte gSpriteAnimations_GyorgMaleEye_56
.4byte gSpriteAnimations_GyorgMaleEye_57
.4byte gSpriteAnimations_GyorgMaleEye_58
.4byte gSpriteAnimations_GyorgMaleEye_59
.4byte gSpriteAnimations_GyorgMaleEye_60
.4byte gSpriteAnimations_GyorgMaleEye_61
.4byte gSpriteAnimations_GyorgMaleEye_62
.4byte gSpriteAnimations_GyorgMaleEye_63
.4byte 00000000

View File

@ -1,25 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D22D8:: @ 080D22D8
.4byte sub_08048E04
.4byte sub_08048E1C
.4byte sub_08001324
.4byte sub_0804A7D4
.4byte sub_08001242
.4byte sub_08048E04
gUnk_080D22F0:: @ 080D22F0
.4byte sub_08048EA4
.4byte sub_08048ED0
.4byte sub_08048F00
.4byte sub_08048F30
gUnk_080D2300:: @ 080D2300
.incbin "enemy62/gUnk_080D2300.bin"
gUnk_080D2348:: @ 080D2348
.incbin "enemy62/gUnk_080D2348.bin"

View File

@ -1,44 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_080D2974:: @ 080D2974
.4byte sub_08049100
.4byte sub_080491EC
.4byte sub_080492A8
.4byte sub_08049574
.4byte sub_080496CC
gUnk_080D2988:: @ 080D2988
.4byte sub_0804920C
.4byte sub_08049274
gUnk_080D2990:: @ 080D2990
.4byte sub_080492C8
.4byte sub_08049358
.4byte sub_080493E4
.4byte sub_0804945C
.4byte sub_080494D0
.4byte sub_08049538
gUnk_080D29A8:: @ 080D29A8
.4byte sub_08049594
.4byte sub_080495F8
.4byte sub_0804965C
.4byte sub_0804969C
gUnk_080D29B8:: @ 080D29B8
.incbin "enemy64/gUnk_080D29B8.bin"
gUnk_080D29C0:: @ 080D29C0
.4byte sub_080496EC
.4byte sub_0804972C
.4byte sub_0804975C
.4byte sub_08049788
.4byte sub_080497D0
.4byte sub_08049804
.4byte sub_08049888
.4byte sub_080498B4

View File

@ -1562,7 +1562,7 @@ gSpritePtrs:: @ 080029B4
.4byte 00000000
.4byte 00000000
.4byte gSpriteAnimations_Enemy62
.4byte gSpriteAnimations_GyorgMaleEye
.4byte 00000000
.4byte 00000000
.4byte 00000000

View File

@ -126,7 +126,7 @@ typedef enum {
/*0x5f*/ VAATI_WRATH_EYE,
/*0x60*/ GYORG_CHILD,
/*0x61*/ GYORG_FEMALE_EYE,
/*0x62*/ ENEMY_62,
/*0x62*/ GYORG_MALE_EYE,
/*0x63*/ GYORG_FEMALE_MOUTH,
/*0x64*/ ENEMY_64,
/*0x65*/ TREE_ITEM,
@ -230,9 +230,9 @@ void Curtain(Entity*);
void VaatiWrathEye(Entity*);
void GyorgChild();
void GyorgFemaleEye();
void Enemy62(Entity*);
void GyorgMaleEye();
void GyorgFemaleMouth();
void Enemy64(Entity*);
void Enemy64();
void TreeItem(Entity*);
void Enemy66(Entity*);

View File

@ -424,9 +424,9 @@ SECTIONS {
src/enemy/vaatiWrathEye.o(.text);
src/enemy/gyorgChild.o(.text);
src/enemy/gyorgFemaleEye.o(.text);
asm/enemy/enemy62.o(.text);
src/enemy/gyorgMaleEye.o(.text);
src/enemy/gyorgFemaleMouth.o(.text);
asm/enemy/enemy64.o(.text);
src/enemy/enemy64.o(.text);
src/enemy/treeItem.o(.text);
src/enemy/enemy66.o(.text);
/* END enemies */
@ -1113,11 +1113,11 @@ SECTIONS {
data/animations/enemy/gyorgChild.o(.rodata);
src/enemy/gyorgFemaleEye.o(.rodata);
data/animations/enemy/gyorgFemaleEye.o(.rodata);
data/const/enemy/enemy62.o(.rodata);
data/animations/enemy/enemy62.o(.rodata);
src/enemy/gyorgMaleEye.o(.rodata);
data/animations/enemy/gyorgMaleEye.o(.rodata);
src/enemy/gyorgFemaleMouth.o(.rodata);
data/animations/enemy/gyorgFemaleMouth.o(.rodata);
data/const/enemy/enemy64.o(.rodata);
src/enemy/enemy64.o(.rodata);
src/enemy/treeItem.o(.rodata);
src/enemy/enemy66.o(.rodata);
src/enemy.o(.rodata);

View File

@ -530,7 +530,7 @@ void (*const gEnemyFunctions[])(Entity* ent) = {
[VAATI_WRATH_EYE] = VaatiWrathEye,
[GYORG_CHILD] = GyorgChild,
[GYORG_FEMALE_EYE] = GyorgFemaleEye,
[ENEMY_62] = Enemy62,
[GYORG_MALE_EYE] = GyorgMaleEye,
[GYORG_FEMALE_MOUTH] = GyorgFemaleMouth,
[ENEMY_64] = Enemy64,
[TREE_ITEM] = TreeItem,

523
src/enemy/enemy64.c Normal file
View File

@ -0,0 +1,523 @@
/**
* @file enemy64.c
* @ingroup Enemies
*
* @brief Enemy64 enemy
*/
#define NENT_DEPRECATED
#include "global.h"
#include "enemy.h"
#include "functions.h"
#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x6];
/*0x6e*/ u8 unk_6e;
/*0x6f*/ u8 unk_6f[0x5];
/*0x74*/ s16 unk_74;
/*0x76*/ u16 unk_76;
/*0x78*/ u16 unk_78;
/*0x7a*/ u16 unk_7a;
/*0x7c*/ u8 unk_7c;
/*0x7d*/ u8 unk_7d;
/*0x7e*/ u16 unk_7e;
/*0x80*/ u16 unk_80;
/*0x82*/ u16 unk_82;
} Enemy64Entity;
extern void sub_08047EA4(Entity*, u32); // gyorgMale
extern void (*const Enemy64_Actions[])(Enemy64Entity*);
extern void (*const Enemy64_Action1_SubActions[])(Enemy64Entity*);
extern void (*const Enemy64_Action2_SubActions[])(Enemy64Entity*);
extern void (*const Enemy64_Action3_SubActions[])(Enemy64Entity*);
extern const u8 gUnk_080D29B8[];
extern void (*const Enemy64_Action4_SubActions[])(Enemy64Entity*);
void sub_080499F0(Enemy64Entity*);
void sub_08049998(Enemy64Entity*, u32);
void Enemy64_Action2_SubAction1(Enemy64Entity*);
void sub_08049944(Enemy64Entity*);
bool32 sub_08049A8C(Enemy64Entity*);
void sub_08049AB0(Enemy64Entity*);
void sub_08049B20(Enemy64Entity*);
void Enemy64(Enemy64Entity* this) {
if (super->action != 0) {
super->spriteSettings.draw = this->unk_7d;
}
if (super->health == 0) {
super->health = 0xff;
super->action = 4;
super->subAction = 0;
}
Enemy64_Actions[super->action](this);
sub_0805EC9C(super, 0xaa, 0xaa, this->unk_78);
super->animationState = -(this->unk_78 >> 8);
sub_080499F0(this);
this->unk_7d = super->spriteSettings.draw;
if (((super->spriteSettings.draw == 1) && (0x100 < (super->y.HALF.HI - gRoomControls.scroll_y) + 0x30U))) {
super->spriteSettings.draw = 0;
}
}
void Enemy64_Init(Enemy64Entity* this) {
Entity* tail;
if (CheckFlags(0x7c)) {
SetTile(0x4081, 10, 2);
SetTile(0x4081, 0x4a, 2);
SetTile(0x4081, 0x8a, 2);
SetTile(0x4081, 0xca, 2);
DeleteThisEntity();
} else {
sub_0807B7D8(0x323, 10, 1);
sub_0807B7D8(0x323, 0x4a, 1);
sub_0807B7D8(0x323, 0x8a, 1);
sub_0807B7D8(0x323, 0xca, 1);
}
tail = CreateProjectile(GYORG_TAIL);
if (tail != NULL) {
tail->type = 1;
tail->parent = super;
super->child = tail;
super->action = 1;
super->subAction = 0;
super->actionDelay = 0x3c;
super->direction = 0xc0;
super->animationState = 0xc0;
super->speed = 0x300;
super->spriteRendering.b0 = 3;
super->spriteSettings.draw = 1;
super->spriteOrientation.flipY = 2;
super->spriteRendering.b3 = 2;
super->collisionLayer = 2;
this->unk_7c = 0;
this->unk_78 = 0x4000;
this->unk_7a = 0x4000;
InitAnimationForceUpdate(super, 0);
}
}
void Enemy64_Action1(Enemy64Entity* this) {
Enemy64_Action1_SubActions[super->subAction](this);
UpdateAnimationSingleFrame(super);
}
void Enemy64_Action1_SubAction0(Enemy64Entity* this) {
if (super->actionDelay != 0) {
super->actionDelay--;
} else {
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if ((gRoomControls.origin_x - 0x100) > super->x.HALF.HI) {
super->subAction = 1;
super->direction = 0x80;
super->animationState = 0x80;
super->speed = 0xc0;
super->x.HALF.HI = gRoomControls.origin_x + 0xa8;
super->y.HALF.HI = gRoomControls.origin_y - 0x40;
this->unk_78 = 0x8000;
this->unk_7a = 0x8000;
}
}
}
void Enemy64_Action1_SubAction1(Enemy64Entity* this) {
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if ((gRoomControls.origin_y + 0x40) < super->y.HALF.HI) {
super->action = 2;
super->subAction = 0;
}
}
void Enemy64_Action2(Enemy64Entity* this) {
Enemy64_Action2_SubActions[super->subAction](this);
UpdateAnimationSingleFrame(super);
}
void Enemy64_Action2_SubAction0(Enemy64Entity* this) {
u16 uVar1;
u16* puVar2;
super->subAction = 1;
super->speed = 0x120;
this->unk_6e = 0;
if ((s32)(super->x.HALF.HI - (u32)gRoomControls.origin_x) < 0xa8) {
this->unk_80 = 0xd8;
this->unk_74 = 0x100;
} else {
this->unk_80 = 0x78;
this->unk_74 = 0xff00;
}
this->unk_80 += gRoomControls.origin_x;
if ((s32)(super->y.HALF.HI - (u32)gRoomControls.origin_y) < 0x80) {
this->unk_82 = 0xb0;
} else {
this->unk_82 = 0x50;
this->unk_74 *= -1;
}
this->unk_82 += gRoomControls.origin_y;
Enemy64_Action2_SubAction1(this);
}
void Enemy64_Action2_SubAction1(Enemy64Entity* this) {
u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI);
if (4 < (((super->direction - tmp) + 2) & 0xff)) {
if (((tmp - super->direction) & 0x80) != 0) {
super->direction--;
} else {
super->direction++;
}
}
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (EntityWithinDistance(super, this->unk_80, this->unk_82, (super->speed >> 0x10) + 0x10)) {
super->subAction = 2;
super->speed = 0xc0;
this->unk_7e = 0x100;
this->unk_76 = (u16)super->direction << 8;
}
}
void Enemy64_Action2_SubAction2(Enemy64Entity* this) {
u32 iVar1;
u32 uVar2;
u32 uVar3;
iVar1 = this->unk_76 += this->unk_74;
uVar2 = iVar1 * 0x10000;
super->direction = (u8)(uVar2 >> 0x18);
if (((uVar2 >> 0x18 & 0x1f) == 0) &&
(uVar3 = CalculateDirectionTo(super->x.HALF.HI, super->y.HALF.HI, gRoomControls.origin_x + 0xa8,
gRoomControls.origin_y + 0x80),
((((uVar3 + 2) & 0x1c) - (super->direction >> 3)) & 0xf) == 8)) {
super->subAction = 4;
super->actionDelay = 0x3c;
super->field_0xf = 7;
}
sub_08049944(this);
sub_08047EA4(super, ((0x100 - super->direction) & 0xff) << 8);
}
void Enemy64_Action2_SubAction3(Enemy64Entity* this) {
s32 iVar1;
u32 uVar2;
iVar1 = this->unk_76 += this->unk_74;
uVar2 = iVar1 * 0x10000;
super->direction = (uVar2 >> 0x18);
if (super->actionDelay == 0) {
if ((uVar2 >> 0x18 & 0x1f) == 0) {
super->subAction = 4;
super->actionDelay = 0x5a;
}
} else {
if (sub_08049A8C(this)) {
Entity* projectile = CreateProjectile(GYORG_MALE_ENERGY_PROJECTILE);
if (projectile != NULL) {
projectile->collisionLayer = 2;
projectile->parent = super;
UpdateSpriteForCollisionLayer(projectile);
}
}
}
sub_08049944(this);
sub_08047EA4(super, ((0x100 - super->direction) & 0xff) << 8);
}
void Enemy64_Action2_SubAction4(Enemy64Entity* this) {
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (--super->actionDelay == 0) {
if (--super->field_0xf == 0) {
super->subAction = 5;
super->speed += 0x40;
} else {
super->subAction = 3;
super->actionDelay = 0xa;
}
} else if (super->actionDelay == 0x50) {
Entity* enemy = CreateEnemy(GYORG_MALE_EYE, Random() & 3);
if (enemy != NULL) {
enemy->parent = super;
}
}
}
void Enemy64_Action2_SubAction5(Enemy64Entity* this) {
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (EntityWithinDistance(super, gRoomControls.origin_x + 0xa8, gRoomControls.origin_y + 0x80, 0x70) == FALSE) {
super->action = 3;
super->subAction = 0;
}
}
void Enemy64_Action3(Enemy64Entity* this) {
Enemy64_Action3_SubActions[super->subAction](this);
UpdateAnimationSingleFrame(super);
}
void Enemy64_Action3_SubAction0(Enemy64Entity* this) {
u32 tmp = sub_080045DA(gRoomControls.origin_x + 0xa8 - super->x.HALF.HI,
gRoomControls.origin_y + 0x80 - super->y.HALF.HI);
if (tmp != super->direction) {
if (((tmp - super->direction) & 0x80) != 0) {
super->direction--;
} else {
super->direction++;
}
} else {
super->subAction = 1;
super->speed = 0x180;
}
sub_08049944(this);
sub_08047EA4(super, ((0x100 - super->direction) & 0xff) << 8);
}
void Enemy64_Action3_SubAction1(Enemy64Entity* this) {
if (EntityWithinDistance(super, gRoomControls.origin_x + 0xa8, gRoomControls.origin_y + 0x80, 0x28)) {
super->subAction = 2;
super->actionDelay = 0x2d;
this->unk_74 = gUnk_080D29B8[Random() & 7] << 0x18 >> 0x18;
this->unk_76 = super->direction << 8;
}
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
}
void Enemy64_Action3_SubAction2(Enemy64Entity* this) {
this->unk_76 += this->unk_74;
super->direction = this->unk_76 >> 8;
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (--super->actionDelay == 0) {
super->subAction = 3;
super->actionDelay = 0x1e;
}
}
void Enemy64_Action3_SubAction3(Enemy64Entity* this) {
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (--super->actionDelay == 0) {
super->action = 2;
super->subAction = 0;
}
}
void Enemy64_Action4(Enemy64Entity* this) {
Enemy64_Action4_SubActions[super->subAction](this);
UpdateAnimationSingleFrame(super);
}
void Enemy64_Action4_SubAction0(Enemy64Entity* this) {
SoundReq(SFX_BOSS_DIE);
if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) {
SetPlayerControl(CONTROL_2);
super->subAction = 2;
super->actionDelay = 0x1e;
} else {
super->subAction = 1;
}
sub_08049944(this);
}
void Enemy64_Action4_SubAction1(Enemy64Entity* this) {
if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) {
SetPlayerControl(CONTROL_2);
super->subAction = 2;
super->actionDelay = 1;
}
sub_08049944(this);
}
void Enemy64_Action4_SubAction2(Enemy64Entity* this) {
if (--super->actionDelay == 0) {
super->subAction = 3;
super->actionDelay = 0xb4;
super->speed = 0x100;
super->direction -= 0x40;
}
sub_08049944(this);
}
void Enemy64_Action4_SubAction3(Enemy64Entity* this) {
sub_08049AB0(this);
if (--super->actionDelay == 0) {
super->actionDelay = 0x1e;
super->subAction = 4;
super->speed = 0x400;
super->direction = super->animationState;
SoundReq(SFX_BOSS_DIE);
} else {
super->direction ^= 0x80;
sub_08049B20(this);
}
sub_08049944(this);
}
void Enemy64_Action4_SubAction4(Enemy64Entity* this) {
sub_08049AB0(this);
sub_08049998(this, ((0x100 - super->direction) & 0xff) << 8);
if (--super->actionDelay == 0) {
super->subAction = 5;
SetFade(5, 0x10);
}
}
void Enemy64_Action4_SubAction5(Enemy64Entity* this) {
Entity* entity;
sub_08049944(this);
if (gFadeControl.active == 0) {
super->subAction = 6;
super->spriteSettings.draw = 0;
entity = super->child;
entity->flags &= 0x7f;
entity->spriteSettings.draw = 0;
entity = entity->child;
entity->flags &= 0x7f;
entity->spriteSettings.draw = 0;
entity = entity->child;
entity->flags &= 0x7f;
entity->spriteSettings.draw = 0;
entity = &gPlayerEntity;
entity->x.HALF.HI = gRoomControls.origin_x + 0xa8;
entity->y.HALF.HI = gRoomControls.origin_y + 0x80;
entity->animationState = 0;
sub_080809D4();
SetFade(4, 4);
}
}
void Enemy64_Action4_SubAction6(Enemy64Entity* this) {
if (gFadeControl.active == 0) {
super->subAction = 7;
super->actionDelay = 0xa0;
SoundReq(SFX_SECRET);
SetFlag(0x7c);
SetPlayerControl(CONTROL_1);
}
}
void Enemy64_Action4_SubAction7(Enemy64Entity* this) {
if (--super->actionDelay == 0) {
DeleteThisEntity();
} else if (super->actionDelay == 0x10) {
sub_0807B7D8(0x36, 0xca, 1);
SetTile(0x4081, 0xca, 2);
SoundReq(SFX_HEART_GET);
} else if (super->actionDelay == 0x18) {
sub_0807B7D8(0x36, 0x8a, 1);
SetTile(0x4081, 0x8a, 2);
SoundReq(SFX_HEART_GET);
} else if (super->actionDelay == 0x20) {
sub_0807B7D8(0x36, 0x4a, 1);
SetTile(0x4081, 0x4a, 2);
SoundReq(SFX_HEART_GET);
} else if (super->actionDelay == 0x28) {
sub_0807B7D8(0x36, 10, 1);
SetTile(0x4081, 10, 2);
SoundReq(SFX_HEART_GET);
}
}
void sub_08049944(Enemy64Entity* this) {
this->unk_7c = (this->unk_7c << 1 & 0x7f) | (this->unk_7c & 0x80);
if (EntityWithinDistance(super, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x20)) {
gPlayerState.field_0x14 = 1;
if (gPlayerEntity.z.HALF.HI == 0) {
gPlayerState.flags |= 2;
this->unk_7c |= 1;
}
}
}
void sub_08049998(Enemy64Entity* this, u32 param_2) {
s32 tmpX;
s32 tmpY;
sub_08049944(this);
sub_08047EA4(super, param_2);
tmpX = super->x.HALF.HI;
tmpY = super->y.HALF.HI;
LinearMoveAngle(super, super->speed, super->direction);
if (((this->unk_7c & 1) != 0) && sub_08079F8C()) {
gPlayerEntity.x.HALF.HI = (super->x.HALF.HI - tmpX) + gPlayerEntity.x.HALF.HI;
gPlayerEntity.y.HALF.HI = (super->y.HALF.HI - tmpY) + gPlayerEntity.y.HALF.HI;
}
}
void sub_080499F0(Enemy64Entity* this) {
u32 tmp;
if ((((super->action != 0) && (gPlayerEntity.z.HALF.HI == 0)) && (sub_08079F8C())) && ((this->unk_7c & 1) == 0)) {
if (EntityWithinDistance(&gPlayerEntity, super->x.HALF.HI, super->y.HALF.HI, 0x24) &&
((this->unk_7c & 2) == 0)) {
tmp = sub_080045DA((s32)gPlayerEntity.x.HALF.HI - super->x.HALF.HI,
(s32)gPlayerEntity.y.HALF.HI - super->y.HALF.HI);
gPlayerEntity.x.WORD = super->x.WORD + gSineTable[tmp] * 0x2400;
gPlayerEntity.y.WORD = super->y.WORD + gSineTable[tmp + 0x40] * -0x2400;
}
this->unk_7c = 0;
}
}
bool32 sub_08049A8C(Enemy64Entity* this) {
if (--super->actionDelay == 0 && (Random() & 0xf) != 0) {
return TRUE;
} else {
return FALSE;
}
}
void sub_08049AB0(Enemy64Entity* this) {
u32 rand;
if ((++super->field_0xf & 0xf) == 0) {
Entity* effect = CreateFx(super, FX_GIANT_EXPLOSION3, 0);
if (effect != NULL) {
rand = Random();
effect->x.HALF.HI += ((rand & 0x30) - 0x18);
effect->y.HALF.HI += (((rand >> 8) & 0x30) - 0x18);
effect->spritePriority.b0 = 3;
effect->collisionLayer = 2;
UpdateSpriteForCollisionLayer(effect);
}
}
}
void sub_08049B20(Enemy64Entity* this) {
s32 tmpX;
s32 tmpY;
sub_08049944(this);
tmpX = super->x.HALF.HI;
tmpY = super->y.HALF.HI;
LinearMoveAngle(super, super->speed, super->direction);
if (((this->unk_7c & 1) != 0) && sub_08079F8C()) {
gPlayerEntity.x.HALF.HI = (super->x.HALF.HI - tmpX) + gPlayerEntity.x.HALF.HI;
gPlayerEntity.y.HALF.HI = (super->y.HALF.HI - tmpY) + gPlayerEntity.y.HALF.HI;
}
}
void (*const Enemy64_Actions[])(Enemy64Entity*) = {
Enemy64_Init, Enemy64_Action1, Enemy64_Action2, Enemy64_Action3, Enemy64_Action4,
};
void (*const Enemy64_Action1_SubActions[])(Enemy64Entity*) = {
Enemy64_Action1_SubAction0,
Enemy64_Action1_SubAction1,
};
void (*const Enemy64_Action2_SubActions[])(Enemy64Entity*) = {
Enemy64_Action2_SubAction0, Enemy64_Action2_SubAction1, Enemy64_Action2_SubAction2,
Enemy64_Action2_SubAction3, Enemy64_Action2_SubAction4, Enemy64_Action2_SubAction5,
};
void (*const Enemy64_Action3_SubActions[])(Enemy64Entity*) = {
Enemy64_Action3_SubAction0,
Enemy64_Action3_SubAction1,
Enemy64_Action3_SubAction2,
Enemy64_Action3_SubAction3,
};
const u8 gUnk_080D29B8[] = {
144, 112, 56, 200, 0, 0, 0, 0,
};
void (*const Enemy64_Action4_SubActions[])(Enemy64Entity*) = {
Enemy64_Action4_SubAction0, Enemy64_Action4_SubAction1, Enemy64_Action4_SubAction2, Enemy64_Action4_SubAction3,
Enemy64_Action4_SubAction4, Enemy64_Action4_SubAction5, Enemy64_Action4_SubAction6, Enemy64_Action4_SubAction7,
};

View File

@ -693,7 +693,7 @@ void sub_08047508(GyorgMaleEntity* this) {
this->unk_76 = super->direction << 8;
}
if (--this->unk_7e == 0) {
Entity* tmp = CreateEnemy(ENEMY_62, Random() & 3);
Entity* tmp = CreateEnemy(GYORG_MALE_EYE, Random() & 3);
if (tmp) {
tmp->parent = super;
}
@ -748,7 +748,7 @@ void sub_0804763C(GyorgMaleEntity* this) {
this->unk_76 = super->direction << 8;
}
if (--this->unk_7e == 0) {
Entity* tmp = CreateEnemy(ENEMY_62, Random() & 3);
Entity* tmp = CreateEnemy(GYORG_MALE_EYE, Random() & 3);
if (tmp) {
tmp->parent = super;
}
@ -856,7 +856,7 @@ void sub_08047978(GyorgMaleEntity* this) {
if (--this->unk_7e == 0) {
Entity* tmp;
this->unk_7e = 0xF0;
tmp = CreateEnemy(ENEMY_62, Random() & 3);
tmp = CreateEnemy(GYORG_MALE_EYE, Random() & 3);
if (tmp) {
tmp->parent = super;
}

137
src/enemy/gyorgMaleEye.c Normal file
View File

@ -0,0 +1,137 @@
/**
* @file gyorgMaleEye.c
* @ingroup Enemies
*
* @brief GyorgMaleEye enemy
*/
#define NENT_DEPRECATED
#include "global.h"
#include "enemy.h"
#include "functions.h"
#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x10];
/*0x78*/ u8 unk_78;
} GyorgMaleEyeEntity;
extern void (*const GyorgMaleEye_Functions[])(GyorgMaleEyeEntity*);
extern void (*const GyorgMaleEye_Actions[])(GyorgMaleEyeEntity*);
extern const u8 gUnk_080D2300[];
extern const u8 gUnk_080D2348[];
void sub_08048F50(GyorgMaleEyeEntity*);
void sub_08048F74(GyorgMaleEyeEntity*);
void GyorgMaleEye(GyorgMaleEyeEntity* this) {
Entity* parent = super->parent;
if (parent->next == NULL) {
DeleteThisEntity();
}
GyorgMaleEye_Functions[GetNextFunction(super)](this);
super->spriteOrientation.flipY = parent->spriteOrientation.flipY;
super->spriteRendering.b3 = parent->spriteRendering.b3;
super->spritePriority.b0 = parent->spritePriority.b0 - 1;
}
void GyorgMaleEye_OnTick(GyorgMaleEyeEntity* this) {
GyorgMaleEye_Actions[super->action](this);
}
void sub_08048E1C(GyorgMaleEyeEntity* this) {
u32 tmp;
Entity* entity;
tmp = 0xff - super->health;
if (tmp != 0) {
entity = super->parent;
if (entity->health > tmp) {
entity->health -= tmp;
SoundReq(SFX_BOSS_HIT);
} else {
entity->health = 0;
SoundReq(SFX_BOSS_DIE);
InitScreenShake(0x28, 0);
}
if (super->iframes > 0) {
entity->iframes = super->iframes;
entity = entity->child;
entity->iframes = super->iframes;
entity = entity->child;
entity->iframes = super->iframes;
entity = entity->child;
entity->iframes = super->iframes;
}
super->health = 0xff;
}
sub_0804AA30(super, GyorgMaleEye_Functions);
}
void GyorgMaleEye_Init(GyorgMaleEyeEntity* this) {
super->action = 1;
this->unk_78 = (((super->parent)->animationState & 0xe0) >> 3) + super->type;
sub_08048F50(this);
sub_08048F74(this);
}
void GyorgMaleEye_Action1(GyorgMaleEyeEntity* this) {
sub_08048F50(this);
GetNextFrame(super);
if ((super->frame & 0x80) != 0) {
super->action = 2;
super->flags |= 0x80;
super->actionDelay = 0x2d;
}
}
void GyorgMaleEye_Action2(GyorgMaleEyeEntity* this) {
sub_08048F50(this);
if (--super->actionDelay == 0) {
super->action = 3;
super->flags &= 0x7f;
InitializeAnimation(super, super->animIndex + 4);
}
}
void GyorgMaleEye_Action3(GyorgMaleEyeEntity* this) {
sub_08048F50(this);
GetNextFrame(super);
if ((super->frame & 0x80) != 0) {
DeleteThisEntity();
}
}
void sub_08048F50(GyorgMaleEyeEntity* this) {
const s8* ptr = &gUnk_080D2300[this->unk_78 * 2];
sub_0806FA90(super->parent, super, ptr[0], ptr[1]);
}
void sub_08048F74(GyorgMaleEyeEntity* this) {
InitializeAnimation(super, gUnk_080D2348[this->unk_78]);
}
void (*const GyorgMaleEye_Functions[])(GyorgMaleEyeEntity*) = {
GyorgMaleEye_OnTick,
sub_08048E1C,
(void (*)(GyorgMaleEyeEntity*))sub_08001324,
(void (*)(GyorgMaleEyeEntity*))sub_0804A7D4,
(void (*)(GyorgMaleEyeEntity*))sub_08001242,
GyorgMaleEye_OnTick,
};
void (*const GyorgMaleEye_Actions[])(GyorgMaleEyeEntity*) = {
GyorgMaleEye_Init,
GyorgMaleEye_Action1,
GyorgMaleEye_Action2,
GyorgMaleEye_Action3,
};
const u8 gUnk_080D2300[] = {
240, 240, 17, 240, 17, 16, 240, 16, 0, 232, 24, 0, 0, 24, 232, 0, 16, 240, 16, 17, 240, 17, 240, 240, 24,
0, 0, 24, 232, 0, 0, 232, 16, 16, 239, 16, 239, 240, 16, 240, 0, 24, 232, 0, 0, 232, 24, 0, 240, 16,
240, 239, 16, 239, 16, 16, 232, 0, 0, 232, 24, 0, 0, 24, 240, 240, 17, 240, 17, 16, 240, 16,
};
const u8 gUnk_080D2348[] = {
0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19, 24, 25, 26, 27,
32, 33, 34, 35, 40, 41, 42, 43, 48, 49, 50, 51, 56, 57, 58, 59,
};