mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-07 02:23:20 +00:00
Part of dessgeega and baristute AI
This commit is contained in:
parent
7636f0dfbc
commit
c986808b28
@ -35320,8 +35320,8 @@ lbl_08023c6c: .4byte 0x0000ffc0
|
|||||||
lbl_08023c70: .4byte 0x082d82dc
|
lbl_08023c70: .4byte 0x082d82dc
|
||||||
lbl_08023c74: .4byte 0x082b0d68
|
lbl_08023c74: .4byte 0x082b0d68
|
||||||
|
|
||||||
thumb_func_start DessgeegaJumpingGFXInit
|
thumb_func_start DessgeegaJumpWarningInit
|
||||||
DessgeegaJumpingGFXInit: @ 0x08023c78
|
DessgeegaJumpWarningInit: @ 0x08023c78
|
||||||
ldr r1, lbl_08023c90 @ =0x03000738
|
ldr r1, lbl_08023c90 @ =0x03000738
|
||||||
adds r3, r1, #0
|
adds r3, r1, #0
|
||||||
adds r3, #0x24
|
adds r3, #0x24
|
||||||
@ -35337,8 +35337,8 @@ DessgeegaJumpingGFXInit: @ 0x08023c78
|
|||||||
lbl_08023c90: .4byte 0x03000738
|
lbl_08023c90: .4byte 0x03000738
|
||||||
lbl_08023c94: .4byte 0x082d8364
|
lbl_08023c94: .4byte 0x082d8364
|
||||||
|
|
||||||
thumb_func_start DessgeegaBeforeJumping
|
thumb_func_start DessgeegaJumpingInit
|
||||||
DessgeegaBeforeJumping: @ 0x08023c98
|
DessgeegaJumpingInit: @ 0x08023c98
|
||||||
push {r4, lr}
|
push {r4, lr}
|
||||||
ldr r3, lbl_08023cd0 @ =0x03000738
|
ldr r3, lbl_08023cd0 @ =0x03000738
|
||||||
adds r1, r3, #0
|
adds r1, r3, #0
|
||||||
@ -35389,8 +35389,8 @@ lbl_08023cf4:
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start DessgeegaBeforeLanding
|
thumb_func_start DessgeegaLandingInit
|
||||||
DessgeegaBeforeLanding: @ 0x08023cfc
|
DessgeegaLandingInit: @ 0x08023cfc
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r1, lbl_08023d28 @ =0x03000738
|
ldr r1, lbl_08023d28 @ =0x03000738
|
||||||
adds r3, r1, #0
|
adds r3, r1, #0
|
||||||
@ -35417,15 +35417,15 @@ lbl_08023d28: .4byte 0x03000738
|
|||||||
lbl_08023d2c: .4byte 0x082d839c
|
lbl_08023d2c: .4byte 0x082d839c
|
||||||
lbl_08023d30: .4byte 0x0000015b
|
lbl_08023d30: .4byte 0x0000015b
|
||||||
|
|
||||||
thumb_func_start DessgeegaCheckSamusInRange
|
thumb_func_start DessgeegaIdleInit
|
||||||
DessgeegaCheckSamusInRange: @ 0x08023d34
|
DessgeegaIdleInit: @ 0x08023d34
|
||||||
push {lr}
|
push {lr}
|
||||||
bl DessgeegaCheckSamusNearLeftRight
|
bl DessgeegaCheckSamusNearLeftRight
|
||||||
lsls r0, r0, #0x18
|
lsls r0, r0, #0x18
|
||||||
lsrs r3, r0, #0x18
|
lsrs r3, r0, #0x18
|
||||||
cmp r3, #0
|
cmp r3, #0
|
||||||
beq lbl_08023d48
|
beq lbl_08023d48
|
||||||
bl DessgeegaJumpingGFXInit
|
bl DessgeegaJumpWarningInit
|
||||||
b lbl_08023d9e
|
b lbl_08023d9e
|
||||||
lbl_08023d48:
|
lbl_08023d48:
|
||||||
ldr r2, lbl_08023d7c @ =0x03000738
|
ldr r2, lbl_08023d7c @ =0x03000738
|
||||||
@ -35474,8 +35474,8 @@ lbl_08023d9e:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08023da4: .4byte 0x082d8304
|
lbl_08023da4: .4byte 0x082d8304
|
||||||
|
|
||||||
thumb_func_start DessgeegaBouncingGFXInit
|
thumb_func_start DessgeegaFallingInit
|
||||||
DessgeegaBouncingGFXInit: @ 0x08023da8
|
DessgeegaFallingInit: @ 0x08023da8
|
||||||
ldr r3, lbl_08023dc4 @ =0x03000738
|
ldr r3, lbl_08023dc4 @ =0x03000738
|
||||||
adds r1, r3, #0
|
adds r1, r3, #0
|
||||||
adds r1, #0x24
|
adds r1, #0x24
|
||||||
@ -35494,8 +35494,8 @@ DessgeegaBouncingGFXInit: @ 0x08023da8
|
|||||||
lbl_08023dc4: .4byte 0x03000738
|
lbl_08023dc4: .4byte 0x03000738
|
||||||
lbl_08023dc8: .4byte 0x082d8384
|
lbl_08023dc8: .4byte 0x082d8384
|
||||||
|
|
||||||
thumb_func_start DessgeegaCheckBouncing
|
thumb_func_start DessgeegaJumpWarningGround
|
||||||
DessgeegaCheckBouncing: @ 0x08023dcc
|
DessgeegaJumpWarningGround: @ 0x08023dcc
|
||||||
push {r4, r5, lr}
|
push {r4, r5, lr}
|
||||||
ldr r4, lbl_08023e0c @ =0x03000738
|
ldr r4, lbl_08023e0c @ =0x03000738
|
||||||
ldrh r0, [r4, #2]
|
ldrh r0, [r4, #2]
|
||||||
@ -35522,7 +35522,7 @@ DessgeegaCheckBouncing: @ 0x08023dcc
|
|||||||
ldrb r0, [r5]
|
ldrb r0, [r5]
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne lbl_08023e14
|
bne lbl_08023e14
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
b lbl_08023e20
|
b lbl_08023e20
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08023e0c: .4byte 0x03000738
|
lbl_08023e0c: .4byte 0x03000738
|
||||||
@ -35531,27 +35531,27 @@ lbl_08023e14:
|
|||||||
bl check_end_of_current_sprite_anim
|
bl check_end_of_current_sprite_anim
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_08023e20
|
beq lbl_08023e20
|
||||||
bl DessgeegaBeforeJumping
|
bl DessgeegaJumpingInit
|
||||||
lbl_08023e20:
|
lbl_08023e20:
|
||||||
pop {r4, r5}
|
pop {r4, r5}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start DessgeegaCheckBeforeJumpingCeilingAnimEnded
|
thumb_func_start DessgeegaJumpWarningCeiling
|
||||||
DessgeegaCheckBeforeJumpingCeilingAnimEnded: @ 0x08023e28
|
DessgeegaJumpWarningCeiling: @ 0x08023e28
|
||||||
push {lr}
|
push {lr}
|
||||||
bl check_end_of_current_sprite_anim
|
bl check_end_of_current_sprite_anim
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_08023e36
|
beq lbl_08023e36
|
||||||
bl DessgeegaBeforeJumping
|
bl DessgeegaJumpingInit
|
||||||
lbl_08023e36:
|
lbl_08023e36:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start DessgeegaMoveGround
|
thumb_func_start DessgeegaJumpingGround
|
||||||
DessgeegaMoveGround: @ 0x08023e3c
|
DessgeegaJumpingGround: @ 0x08023e3c
|
||||||
push {r4, r5, r6, lr}
|
push {r4, r5, r6, lr}
|
||||||
movs r6, #0
|
movs r6, #0
|
||||||
ldr r2, lbl_08023e60 @ =0x03000738
|
ldr r2, lbl_08023e60 @ =0x03000738
|
||||||
@ -35687,7 +35687,7 @@ lbl_08023f32:
|
|||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_08023f54
|
beq lbl_08023f54
|
||||||
strh r1, [r4, #2]
|
strh r1, [r4, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_08024016
|
b lbl_08024016
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08023f4c: .4byte 0x03000738
|
lbl_08023f4c: .4byte 0x03000738
|
||||||
@ -35722,7 +35722,7 @@ lbl_08023f86:
|
|||||||
lbl_08023f8a:
|
lbl_08023f8a:
|
||||||
ldr r0, lbl_08023f94 @ =0x03000738
|
ldr r0, lbl_08023f94 @ =0x03000738
|
||||||
strh r1, [r0, #2]
|
strh r1, [r0, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_08024016
|
b lbl_08024016
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08023f94: .4byte 0x03000738
|
lbl_08023f94: .4byte 0x03000738
|
||||||
@ -35752,7 +35752,7 @@ lbl_08023f98:
|
|||||||
ldrh r0, [r4, #4]
|
ldrh r0, [r4, #4]
|
||||||
subs r0, #6
|
subs r0, #6
|
||||||
strh r0, [r4, #4]
|
strh r0, [r4, #4]
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
b lbl_08024004
|
b lbl_08024004
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08023fd4: .4byte 0x030007f1
|
lbl_08023fd4: .4byte 0x030007f1
|
||||||
@ -35776,7 +35776,7 @@ lbl_08023fd8:
|
|||||||
ldrh r0, [r4, #4]
|
ldrh r0, [r4, #4]
|
||||||
adds r0, #6
|
adds r0, #6
|
||||||
strh r0, [r4, #4]
|
strh r0, [r4, #4]
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
lbl_08024004:
|
lbl_08024004:
|
||||||
cmp r6, #0
|
cmp r6, #0
|
||||||
beq lbl_08024016
|
beq lbl_08024016
|
||||||
@ -35795,8 +35795,8 @@ lbl_08024016:
|
|||||||
lbl_0802401c: .4byte 0x030007f1
|
lbl_0802401c: .4byte 0x030007f1
|
||||||
lbl_08024020: .4byte 0x03000738
|
lbl_08024020: .4byte 0x03000738
|
||||||
|
|
||||||
thumb_func_start DessgeegaMoveCeiling
|
thumb_func_start DessgeegaJumpingCeiling
|
||||||
DessgeegaMoveCeiling: @ 0x08024024
|
DessgeegaJumpingCeiling: @ 0x08024024
|
||||||
push {r4, r5, r6, r7, lr}
|
push {r4, r5, r6, r7, lr}
|
||||||
movs r7, #0
|
movs r7, #0
|
||||||
ldr r2, lbl_08024048 @ =0x03000738
|
ldr r2, lbl_08024048 @ =0x03000738
|
||||||
@ -35939,7 +35939,7 @@ lbl_08024106:
|
|||||||
ldrh r0, [r4, #4]
|
ldrh r0, [r4, #4]
|
||||||
subs r0, #6
|
subs r0, #6
|
||||||
strh r0, [r4, #4]
|
strh r0, [r4, #4]
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
b lbl_08024178
|
b lbl_08024178
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024144: .4byte 0x03000738
|
lbl_08024144: .4byte 0x03000738
|
||||||
@ -35964,7 +35964,7 @@ lbl_0802414c:
|
|||||||
ldrh r0, [r4, #4]
|
ldrh r0, [r4, #4]
|
||||||
adds r0, #6
|
adds r0, #6
|
||||||
strh r0, [r4, #4]
|
strh r0, [r4, #4]
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
lbl_08024178:
|
lbl_08024178:
|
||||||
cmp r7, #0
|
cmp r7, #0
|
||||||
beq lbl_08024216
|
beq lbl_08024216
|
||||||
@ -36003,7 +36003,7 @@ lbl_080241a4:
|
|||||||
adds r0, r2, #0
|
adds r0, r2, #0
|
||||||
adds r0, #0x40
|
adds r0, #0x40
|
||||||
strh r0, [r4, #2]
|
strh r0, [r4, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_08024216
|
b lbl_08024216
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_080241c8: .4byte 0x030007f0
|
lbl_080241c8: .4byte 0x030007f0
|
||||||
@ -36043,7 +36043,7 @@ lbl_0802420a:
|
|||||||
adds r0, r2, #0
|
adds r0, r2, #0
|
||||||
adds r0, #0x40
|
adds r0, #0x40
|
||||||
strh r0, [r1, #2]
|
strh r0, [r1, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
lbl_08024216:
|
lbl_08024216:
|
||||||
pop {r4, r5, r6, r7}
|
pop {r4, r5, r6, r7}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
@ -36057,14 +36057,14 @@ DessgeegaCheckLandingAnimEnded: @ 0x08024220
|
|||||||
bl check_end_of_current_sprite_anim
|
bl check_end_of_current_sprite_anim
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_0802422e
|
beq lbl_0802422e
|
||||||
bl DessgeegaCheckSamusInRange
|
bl DessgeegaIdleInit
|
||||||
lbl_0802422e:
|
lbl_0802422e:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start DessgeegaJumpingGroundIntoBlock
|
thumb_func_start DessgeegaFallingGround
|
||||||
DessgeegaJumpingGroundIntoBlock: @ 0x08024234
|
DessgeegaFallingGround: @ 0x08024234
|
||||||
push {r4, r5, r6, lr}
|
push {r4, r5, r6, lr}
|
||||||
movs r6, #0
|
movs r6, #0
|
||||||
ldr r4, lbl_08024288 @ =0x03000738
|
ldr r4, lbl_08024288 @ =0x03000738
|
||||||
@ -36103,7 +36103,7 @@ lbl_0802427a:
|
|||||||
lbl_0802427e:
|
lbl_0802427e:
|
||||||
ldr r0, lbl_08024288 @ =0x03000738
|
ldr r0, lbl_08024288 @ =0x03000738
|
||||||
strh r1, [r0, #2]
|
strh r1, [r0, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_080242d0
|
b lbl_080242d0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024288: .4byte 0x03000738
|
lbl_08024288: .4byte 0x03000738
|
||||||
@ -36147,8 +36147,8 @@ lbl_080242d0:
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start DessgeegaJumpingCeilingIntoBlock
|
thumb_func_start DessgeegaFallingCeiling
|
||||||
DessgeegaJumpingCeilingIntoBlock: @ 0x080242d8
|
DessgeegaFallingCeiling: @ 0x080242d8
|
||||||
push {r4, r5, r6, lr}
|
push {r4, r5, r6, lr}
|
||||||
movs r6, #0
|
movs r6, #0
|
||||||
ldr r4, lbl_08024330 @ =0x03000738
|
ldr r4, lbl_08024330 @ =0x03000738
|
||||||
@ -36189,7 +36189,7 @@ lbl_08024322:
|
|||||||
adds r0, r2, #0
|
adds r0, r2, #0
|
||||||
adds r0, #0x40
|
adds r0, #0x40
|
||||||
strh r0, [r1, #2]
|
strh r0, [r1, #2]
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_08024378
|
b lbl_08024378
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024330: .4byte 0x03000738
|
lbl_08024330: .4byte 0x03000738
|
||||||
@ -36233,8 +36233,8 @@ lbl_08024378:
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start dessgeega_screaming_anim
|
thumb_func_start DessgeegaIdleGround
|
||||||
dessgeega_screaming_anim: @ 0x08024380
|
DessgeegaIdleGround: @ 0x08024380
|
||||||
push {r4, r5, lr}
|
push {r4, r5, lr}
|
||||||
bl DessgeegaCheckSamusNearLeftRight
|
bl DessgeegaCheckSamusNearLeftRight
|
||||||
lsls r0, r0, #0x18
|
lsls r0, r0, #0x18
|
||||||
@ -36260,7 +36260,7 @@ dessgeega_screaming_anim: @ 0x08024380
|
|||||||
ldrb r0, [r5]
|
ldrb r0, [r5]
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
bne lbl_080243c8
|
bne lbl_080243c8
|
||||||
bl DessgeegaBouncingGFXInit
|
bl DessgeegaFallingInit
|
||||||
b lbl_0802440e
|
b lbl_0802440e
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_080243c0: .4byte 0x03000738
|
lbl_080243c0: .4byte 0x03000738
|
||||||
@ -36282,7 +36282,7 @@ lbl_080243c8:
|
|||||||
cmp r1, r0
|
cmp r1, r0
|
||||||
bne lbl_080243f4
|
bne lbl_080243f4
|
||||||
lbl_080243e8:
|
lbl_080243e8:
|
||||||
bl DessgeegaJumpingGFXInit
|
bl DessgeegaJumpWarningInit
|
||||||
b lbl_0802440e
|
b lbl_0802440e
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_080243f0: .4byte 0x03000738
|
lbl_080243f0: .4byte 0x03000738
|
||||||
@ -36306,8 +36306,8 @@ lbl_0802440e:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024414: .4byte 0x082d8304
|
lbl_08024414: .4byte 0x082d8304
|
||||||
|
|
||||||
thumb_func_start DessgeegaCeilingdleAnim
|
thumb_func_start DessgeegaIdleCeiling
|
||||||
DessgeegaCeilingdleAnim: @ 0x08024418
|
DessgeegaIdleCeiling: @ 0x08024418
|
||||||
push {lr}
|
push {lr}
|
||||||
bl DessgeegaCheckSamusNearLeftRight
|
bl DessgeegaCheckSamusNearLeftRight
|
||||||
lsls r0, r0, #0x18
|
lsls r0, r0, #0x18
|
||||||
@ -36329,7 +36329,7 @@ DessgeegaCeilingdleAnim: @ 0x08024418
|
|||||||
cmp r1, r0
|
cmp r1, r0
|
||||||
bne lbl_08024450
|
bne lbl_08024450
|
||||||
lbl_08024444:
|
lbl_08024444:
|
||||||
bl DessgeegaJumpingGFXInit
|
bl DessgeegaJumpWarningInit
|
||||||
b lbl_0802446a
|
b lbl_0802446a
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_0802444c: .4byte 0x03000738
|
lbl_0802444c: .4byte 0x03000738
|
||||||
@ -36352,8 +36352,8 @@ lbl_0802446a:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024470: .4byte 0x082d8304
|
lbl_08024470: .4byte 0x082d8304
|
||||||
|
|
||||||
thumb_func_start sub_08024474
|
thumb_func_start DessgeegaDeath
|
||||||
sub_08024474: @ 0x08024474
|
DessgeegaDeath: @ 0x08024474
|
||||||
push {r4, lr}
|
push {r4, lr}
|
||||||
sub sp, #4
|
sub sp, #4
|
||||||
ldr r4, lbl_0802448c @ =0x03000738
|
ldr r4, lbl_0802448c @ =0x03000738
|
||||||
@ -36572,7 +36572,7 @@ lbl_08024644:
|
|||||||
movs r0, #0xa
|
movs r0, #0xa
|
||||||
movs r1, #0x81
|
movs r1, #0x81
|
||||||
bl start_vertical_screen_shake
|
bl start_vertical_screen_shake
|
||||||
bl DessgeegaBeforeLanding
|
bl DessgeegaLandingInit
|
||||||
b lbl_0802465a
|
b lbl_0802465a
|
||||||
lbl_08024654:
|
lbl_08024654:
|
||||||
ldrh r0, [r4, #2]
|
ldrh r0, [r4, #2]
|
||||||
@ -36700,7 +36700,7 @@ lbl_080247a4:
|
|||||||
bl DessgeegaLongBeamSpawning
|
bl DessgeegaLongBeamSpawning
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
lbl_080247aa:
|
lbl_080247aa:
|
||||||
bl DessgeegaJumpingGFXInit
|
bl DessgeegaJumpWarningInit
|
||||||
lbl_080247ae:
|
lbl_080247ae:
|
||||||
ldr r0, lbl_080247c4 @ =0x03000738
|
ldr r0, lbl_080247c4 @ =0x03000738
|
||||||
ldrh r1, [r0]
|
ldrh r1, [r0]
|
||||||
@ -36709,12 +36709,12 @@ lbl_080247ae:
|
|||||||
ands r0, r1
|
ands r0, r1
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_080247c8
|
beq lbl_080247c8
|
||||||
bl DessgeegaCheckBeforeJumpingCeilingAnimEnded
|
bl DessgeegaJumpWarningCeiling
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_080247c4: .4byte 0x03000738
|
lbl_080247c4: .4byte 0x03000738
|
||||||
lbl_080247c8:
|
lbl_080247c8:
|
||||||
bl DessgeegaCheckBouncing
|
bl DessgeegaJumpWarningGround
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
lbl_080247ce:
|
lbl_080247ce:
|
||||||
ldr r0, lbl_080247e4 @ =0x03000738
|
ldr r0, lbl_080247e4 @ =0x03000738
|
||||||
@ -36724,12 +36724,12 @@ lbl_080247ce:
|
|||||||
ands r0, r1
|
ands r0, r1
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_080247e8
|
beq lbl_080247e8
|
||||||
bl DessgeegaMoveCeiling
|
bl DessgeegaJumpingCeiling
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_080247e4: .4byte 0x03000738
|
lbl_080247e4: .4byte 0x03000738
|
||||||
lbl_080247e8:
|
lbl_080247e8:
|
||||||
bl DessgeegaMoveGround
|
bl DessgeegaJumpingGround
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
lbl_080247ee:
|
lbl_080247ee:
|
||||||
bl DessgeegaCheckLandingAnimEnded
|
bl DessgeegaCheckLandingAnimEnded
|
||||||
@ -36742,12 +36742,12 @@ lbl_080247f4:
|
|||||||
ands r0, r1
|
ands r0, r1
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_0802480c
|
beq lbl_0802480c
|
||||||
bl DessgeegaCeilingdleAnim
|
bl DessgeegaIdleCeiling
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024808: .4byte 0x03000738
|
lbl_08024808: .4byte 0x03000738
|
||||||
lbl_0802480c:
|
lbl_0802480c:
|
||||||
bl dessgeega_screaming_anim
|
bl DessgeegaIdleGround
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
lbl_08024812:
|
lbl_08024812:
|
||||||
ldr r0, lbl_08024828 @ =0x03000738
|
ldr r0, lbl_08024828 @ =0x03000738
|
||||||
@ -36757,15 +36757,15 @@ lbl_08024812:
|
|||||||
ands r0, r1
|
ands r0, r1
|
||||||
cmp r0, #0
|
cmp r0, #0
|
||||||
beq lbl_0802482c
|
beq lbl_0802482c
|
||||||
bl DessgeegaJumpingCeilingIntoBlock
|
bl DessgeegaFallingCeiling
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08024828: .4byte 0x03000738
|
lbl_08024828: .4byte 0x03000738
|
||||||
lbl_0802482c:
|
lbl_0802482c:
|
||||||
bl DessgeegaJumpingGroundIntoBlock
|
bl DessgeegaFallingGround
|
||||||
b lbl_08024836
|
b lbl_08024836
|
||||||
lbl_08024832:
|
lbl_08024832:
|
||||||
bl sub_08024474
|
bl DessgeegaDeath
|
||||||
lbl_08024836:
|
lbl_08024836:
|
||||||
pop {r4}
|
pop {r4}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
@ -106308,8 +106308,8 @@ lbl_080476a4: .4byte 0x0831043c
|
|||||||
lbl_080476a8: .4byte 0x0000ff60
|
lbl_080476a8: .4byte 0x0000ff60
|
||||||
lbl_080476ac: .4byte 0x082b0d68
|
lbl_080476ac: .4byte 0x082b0d68
|
||||||
|
|
||||||
thumb_func_start BaristuteJumpingGFXInit
|
thumb_func_start BaristuteJumpWarningInit
|
||||||
BaristuteJumpingGFXInit: @ 0x080476b0
|
BaristuteJumpWarningInit: @ 0x080476b0
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r1, lbl_080476dc @ =0x03000738
|
ldr r1, lbl_080476dc @ =0x03000738
|
||||||
adds r3, r1, #0
|
adds r3, r1, #0
|
||||||
@ -106527,8 +106527,8 @@ lbl_08047856:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_0804785c: .4byte 0x030007f1
|
lbl_0804785c: .4byte 0x030007f1
|
||||||
|
|
||||||
thumb_func_start BaristuteLandingGFXInit
|
thumb_func_start BaristuteLandingInit
|
||||||
BaristuteLandingGFXInit: @ 0x08047860
|
BaristuteLandingInit: @ 0x08047860
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r1, lbl_08047894 @ =0x03000738
|
ldr r1, lbl_08047894 @ =0x03000738
|
||||||
adds r3, r1, #0
|
adds r3, r1, #0
|
||||||
@ -106704,8 +106704,8 @@ lbl_080479ae:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
|
|
||||||
thumb_func_start BaristuteWalkingGFXInit
|
thumb_func_start BaristuteWalkingInit
|
||||||
BaristuteWalkingGFXInit: @ 0x080479b4
|
BaristuteWalkingInit: @ 0x080479b4
|
||||||
push {lr}
|
push {lr}
|
||||||
ldr r3, lbl_080479e4 @ =0x03000738
|
ldr r3, lbl_080479e4 @ =0x03000738
|
||||||
adds r2, r3, #0
|
adds r2, r3, #0
|
||||||
@ -106923,8 +106923,8 @@ lbl_08047b42:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
lbl_08047b48: .4byte 0x03000738
|
lbl_08047b48: .4byte 0x03000738
|
||||||
|
|
||||||
thumb_func_start BaristuteBouncingGFXInit
|
thumb_func_start BaristuteFallingInit
|
||||||
BaristuteBouncingGFXInit: @ 0x08047b4c
|
BaristuteFallingInit: @ 0x08047b4c
|
||||||
ldr r3, lbl_08047b68 @ =0x03000738
|
ldr r3, lbl_08047b68 @ =0x03000738
|
||||||
adds r1, r3, #0
|
adds r1, r3, #0
|
||||||
adds r1, #0x24
|
adds r1, #0x24
|
||||||
@ -106943,8 +106943,8 @@ BaristuteBouncingGFXInit: @ 0x08047b4c
|
|||||||
lbl_08047b68: .4byte 0x03000738
|
lbl_08047b68: .4byte 0x03000738
|
||||||
lbl_08047b6c: .4byte 0x08310484
|
lbl_08047b6c: .4byte 0x08310484
|
||||||
|
|
||||||
thumb_func_start BaristuteBouncing
|
thumb_func_start BaristuteFalling
|
||||||
BaristuteBouncing: @ 0x08047b70
|
BaristuteFalling: @ 0x08047b70
|
||||||
push {r4, r5, lr}
|
push {r4, r5, lr}
|
||||||
ldr r4, lbl_08047b94 @ =0x03000738
|
ldr r4, lbl_08047b94 @ =0x03000738
|
||||||
ldrh r0, [r4, #2]
|
ldrh r0, [r4, #2]
|
||||||
@ -107303,7 +107303,7 @@ lbl_08047e74:
|
|||||||
bl BaristuteInit
|
bl BaristuteInit
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
lbl_08047e7a:
|
lbl_08047e7a:
|
||||||
bl BaristuteJumpingGFXInit
|
bl BaristuteJumpWarningInit
|
||||||
lbl_08047e7e:
|
lbl_08047e7e:
|
||||||
bl BaristuteCheckBeforeJumpingAnimEnded
|
bl BaristuteCheckBeforeJumpingAnimEnded
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
@ -107311,12 +107311,12 @@ lbl_08047e84:
|
|||||||
bl BaristuteJumping
|
bl BaristuteJumping
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
lbl_08047e8a:
|
lbl_08047e8a:
|
||||||
bl BaristuteLandingGFXInit
|
bl BaristuteLandingInit
|
||||||
lbl_08047e8e:
|
lbl_08047e8e:
|
||||||
bl BaristuteCheckLandingAnimNearEnded
|
bl BaristuteCheckLandingAnimNearEnded
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
lbl_08047e94:
|
lbl_08047e94:
|
||||||
bl BaristuteWalkingGFXInit
|
bl BaristuteWalkingInit
|
||||||
lbl_08047e98:
|
lbl_08047e98:
|
||||||
bl BaristuteWalking
|
bl BaristuteWalking
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
@ -107326,9 +107326,9 @@ lbl_08047ea2:
|
|||||||
bl BaristuteIdle
|
bl BaristuteIdle
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
lbl_08047ea8:
|
lbl_08047ea8:
|
||||||
bl BaristuteBouncingGFXInit
|
bl BaristuteFallingInit
|
||||||
lbl_08047eac:
|
lbl_08047eac:
|
||||||
bl BaristuteBouncing
|
bl BaristuteFalling
|
||||||
b lbl_08047eb6
|
b lbl_08047eb6
|
||||||
lbl_08047eb2:
|
lbl_08047eb2:
|
||||||
bl BaristuteDeath
|
bl BaristuteDeath
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
/* generic_data.c */
|
/* generic_data.c */
|
||||||
|
|
||||||
i16 sSineYValues[320];
|
i16 sSineYValues[320];
|
||||||
u8 random_number_table[256];
|
u8 sRandomNumberTable[256];
|
||||||
|
|
||||||
/* blob_0x808ca9c_0x8239463.c */
|
/* blob_0x808ca9c_0x8239463.c */
|
||||||
|
|
||||||
|
2394
database.json
2394
database.json
File diff suppressed because it is too large
Load Diff
@ -56,7 +56,7 @@
|
|||||||
#define EVENT_CROCOMIRE_KILLED 0x28
|
#define EVENT_CROCOMIRE_KILLED 0x28
|
||||||
#define EVENT_REPEL_MACHINE_KILLED 0x29
|
#define EVENT_REPEL_MACHINE_KILLED 0x29
|
||||||
#define EVENT_VIEWED_STATUE_ROOM 0x2A
|
#define EVENT_VIEWED_STATUE_ROOM 0x2A
|
||||||
#define EVENT_DESSGEEGA_KILLED 0x2B
|
#define EVENT_LONG_BEAM_DESSGEEGA_KILLED 0x2B
|
||||||
#define EVENT_THREE_HIVES_DESTROYED 0x2C
|
#define EVENT_THREE_HIVES_DESTROYED 0x2C
|
||||||
#define EVENT_BUGS_KILLED 0x2D
|
#define EVENT_BUGS_KILLED 0x2D
|
||||||
#define EVENT_ZIPLINES_ACTIVATED 0x2E
|
#define EVENT_ZIPLINES_ACTIVATED 0x2E
|
||||||
|
@ -2,82 +2,969 @@
|
|||||||
#include "../../data/data.h"
|
#include "../../data/data.h"
|
||||||
#include "../globals.h"
|
#include "../globals.h"
|
||||||
|
|
||||||
|
const i16 sBaristuteFallingYVelocity[8] = {
|
||||||
|
0x4, 0x8, 0xC, 0x10, 0x14, 0x18, 0x1C, SPRITE_ARRAY_TERMINATOR
|
||||||
|
};
|
||||||
|
|
||||||
|
const i16 sBaristuteJumpingYVelocity[10] = {
|
||||||
|
-0xC, -0x10, -0x10, -0x8, -0x4, 0x0, 0xC, 0x12, 0x18, 0x20
|
||||||
|
};
|
||||||
|
|
||||||
|
const u8 sBaristuteGFX[2384];
|
||||||
|
const u16 sBaristutePAL[80];
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Idle_Frame0[49] = {
|
||||||
|
0x10,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd8, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xb, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xd9, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdd, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf7, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x13, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x7, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_SIZE_16x32 | 0x1e5, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xd9, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdd, OBJ_SIZE_16x16 | 0x1ef, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf7, OBJ_SIZE_16x16 | 0x1e0, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1dd, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1e9, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Walking_Frame1[52] = {
|
||||||
|
0x11,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe0, OBJ_SIZE_16x32 | 0x1e2, OBJ_SPRITE_OAM | 0x20c,
|
||||||
|
0xd7, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd7, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd7, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xee, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
0xed, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xed, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x13, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x7, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xda, OBJ_SIZE_16x16 | 0x1ef, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe6, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xb, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdc, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf2, OBJ_SIZE_16x16 | 0x1dd, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1da, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x21
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Walking_Frame2[52] = {
|
||||||
|
0x11,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd6, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd6, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xec, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
0xec, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xec, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe6, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xc, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xdb, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf2, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x14, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf3, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x7, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xd3, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xdb, OBJ_SIZE_16x32 | 0x1e1, OBJ_SPRITE_OAM | 0x20a,
|
||||||
|
0xd8, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xec, OBJ_SIZE_16x16 | 0x1db, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xea, OBJ_SIZE_16x16 | 0x1d7, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xeb, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Walking_Frame3[52] = {
|
||||||
|
0x11,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd9, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd9, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf3, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xf1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe4, OBJ_SIZE_16x32 | 0x1e3, OBJ_SPRITE_OAM | 0x20c,
|
||||||
|
0xda, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdf, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe3, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xf, OBJ_SPRITE_OAM | 0x20c,
|
||||||
|
0xda, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xc, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdf, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf7, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x12, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x15, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x9, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xf8, OBJ_SIZE_16x16 | 0x1df, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1db, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1e8, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Walking_Frame4[52] = {
|
||||||
|
0x11,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd7, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd7, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf0, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xd7, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xc, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdc, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe3, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xd, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xf2, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x11, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x15, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf0, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x8, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe3, OBJ_SIZE_16x32 | 0x1e3, OBJ_SPRITE_OAM | 0x20c,
|
||||||
|
0xd9, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdd, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1e0, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf3, OBJ_SIZE_16x16 | 0x1dc, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_SIZE_16x16 | 0x1e8, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Walking_Frame5[49] = {
|
||||||
|
0x10,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd6, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd6, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xee, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xee, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xd4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xd, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xdc, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xd, OBJ_SPRITE_OAM | 0x204,
|
||||||
|
0xda, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xec, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x14, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xed, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x8, OBJ_SPRITE_OAM | 0x25e,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe1, OBJ_SIZE_16x32 | 0x1e5, OBJ_SPRITE_OAM | 0x204,
|
||||||
|
0xd7, OBJ_SIZE_16x16 | 0x1e4, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdc, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1e2, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf3, OBJ_SIZE_16x16 | 0x1df, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf3, OBJ_SIZE_16x16 | 0x1eb, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Warning_Frame1[55] = {
|
||||||
|
0x12,
|
||||||
|
0xe6, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd8, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd8, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf0, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
0xee, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xee, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xc, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xda, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdd, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x14, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xf3, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x7, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_SIZE_16x32 | 0x1e4, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xda, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xdd, OBJ_SIZE_16x16 | 0x1ef, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1e0, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1dc, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xf3, OBJ_SIZE_16x16 | 0x1e9, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Warning_Frame2[55] = {
|
||||||
|
0x12,
|
||||||
|
0xe9, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xdd, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xdd, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf3, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xf1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x212,
|
||||||
|
0xdd, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xa, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe4, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xc, OBJ_SPRITE_OAM | 0x204,
|
||||||
|
0xe1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf7, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x15, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x6, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xde, OBJ_SIZE_16x16 | 0x1e6, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe5, OBJ_SIZE_16x32 | 0x1e3, OBJ_SPRITE_OAM | 0x204,
|
||||||
|
0xe1, OBJ_SIZE_16x16 | 0x1ef, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf7, OBJ_SIZE_16x16 | 0x1e0, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf7, OBJ_SIZE_16x16 | 0x1db, OBJ_SPRITE_OAM | 0x21a,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1ea, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Jumping_Frame0[49] = {
|
||||||
|
0x10,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd2, OBJ_SIZE_16x32 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd2, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd0, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf2, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xc, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xf1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x11, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xf1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x14, OBJ_SPRITE_OAM | 0x29c,
|
||||||
|
0xf0, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x8, OBJ_SPRITE_OAM | 0x25e,
|
||||||
|
0xf2, OBJ_SIZE_16x16 | 0x1e4, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1df, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xf1, OBJ_SIZE_16x16 | 0x1dc, OBJ_SPRITE_OAM | 0x29c,
|
||||||
|
0xf0, OBJ_SIZE_16x16 | 0x1e8, OBJ_SPRITE_OAM | 0x25e,
|
||||||
|
0xda, OBJ_SIZE_16x16 | 0x1f1, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xda, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x1ff, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xe4, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xe4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x292
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Jumping_Frame1[49] = {
|
||||||
|
0x10,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd0, OBJ_SIZE_16x32 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd0, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xce, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xce, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf0, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xc, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x11, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x14, OBJ_SPRITE_OAM | 0x29c,
|
||||||
|
0xee, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x8, OBJ_SPRITE_OAM | 0x25e,
|
||||||
|
0xf0, OBJ_SIZE_16x16 | 0x1e4, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1df, OBJ_SPRITE_OAM | 0x25c,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1dc, OBJ_SPRITE_OAM | 0x29c,
|
||||||
|
0xee, OBJ_SIZE_16x16 | 0x1e8, OBJ_SPRITE_OAM | 0x25e,
|
||||||
|
0xd8, OBJ_SIZE_16x16 | 0x1f1, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xd8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x1ff, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xe3, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xe3, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x292
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Idle_Frame2[61] = {
|
||||||
|
0x14,
|
||||||
|
0xe8, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xda, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xda, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xef, 0x1fc, OBJ_SPRITE_OAM | 0x25b,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x292,
|
||||||
|
0xda, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xe8, OBJ_SIZE_16x16 | 0x1e6, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xf8, OBJ_SIZE_16x16 | 0x1e6, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xf8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xa, OBJ_SPRITE_OAM | 0x287,
|
||||||
|
0xe1, OBJ_SIZE_16x16 | 0x1f2, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xf, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x12, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x6, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xda, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
0xe8, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xa, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xe1, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x1fe, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1e1, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1de, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1ea, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const u16 sBaristuteOAM_Idle_Frame1[55] = {
|
||||||
|
0x12,
|
||||||
|
0xe7, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd9, OBJ_SIZE_16x32 | 0x1f0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xd9, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0x0, OBJ_SPRITE_OAM | 0x200,
|
||||||
|
0xf0, 0x1fc, OBJ_SPRITE_OAM | 0x25a,
|
||||||
|
0xef, OBJ_SIZE_16x16 | 0x1f0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xef, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x0, OBJ_SPRITE_OAM | 0x252,
|
||||||
|
0xd9, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0xb, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_X_FLIP | OBJ_SIZE_16x32 | 0xb, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xdf, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x1ff, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf6, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x10, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x13, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_X_FLIP | OBJ_SIZE_16x16 | 0x7, OBJ_SPRITE_OAM | 0x21e,
|
||||||
|
0xd9, OBJ_SIZE_16x16 | 0x1e5, OBJ_SPRITE_OAM | 0x207,
|
||||||
|
OBJ_SHAPE_VERTICAL | 0xe7, OBJ_SIZE_16x32 | 0x1e5, OBJ_SPRITE_OAM | 0x247,
|
||||||
|
0xdf, OBJ_SIZE_16x16 | 0x1f1, OBJ_SPRITE_OAM | 0x202,
|
||||||
|
0xf6, OBJ_SIZE_16x16 | 0x1e0, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf5, OBJ_SIZE_16x16 | 0x1dd, OBJ_SPRITE_OAM | 0x21c,
|
||||||
|
0xf4, OBJ_SIZE_16x16 | 0x1e9, OBJ_SPRITE_OAM | 0x21e
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_Idle[5] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x10,
|
||||||
|
sBaristuteOAM_Idle_Frame1,
|
||||||
|
0x6,
|
||||||
|
sBaristuteOAM_Idle_Frame2,
|
||||||
|
0x10,
|
||||||
|
sBaristuteOAM_Idle_Frame1,
|
||||||
|
0x6,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_Warning[4] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x6,
|
||||||
|
sBaristuteOAM_Warning_Frame1,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Warning_Frame2,
|
||||||
|
0x10,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_Jumping[3] = {
|
||||||
|
sBaristuteOAM_Jumping_Frame0,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Jumping_Frame1,
|
||||||
|
0x2,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_Landing[4] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x6,
|
||||||
|
sBaristuteOAM_Warning_Frame2,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Warning_Frame1,
|
||||||
|
0xC,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_WalkingSlow[7] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Walking_Frame1,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Walking_Frame2,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Walking_Frame3,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Walking_Frame4,
|
||||||
|
0x8,
|
||||||
|
sBaristuteOAM_Walking_Frame5,
|
||||||
|
0x8,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_WalkingFast[7] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x5,
|
||||||
|
sBaristuteOAM_Walking_Frame1,
|
||||||
|
0x5,
|
||||||
|
sBaristuteOAM_Walking_Frame2,
|
||||||
|
0x5,
|
||||||
|
sBaristuteOAM_Walking_Frame3,
|
||||||
|
0x5,
|
||||||
|
sBaristuteOAM_Walking_Frame4,
|
||||||
|
0x5,
|
||||||
|
sBaristuteOAM_Walking_Frame5,
|
||||||
|
0x5,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_WalkingVeryFast[7] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x3,
|
||||||
|
sBaristuteOAM_Walking_Frame1,
|
||||||
|
0x3,
|
||||||
|
sBaristuteOAM_Walking_Frame2,
|
||||||
|
0x3,
|
||||||
|
sBaristuteOAM_Walking_Frame3,
|
||||||
|
0x3,
|
||||||
|
sBaristuteOAM_Walking_Frame4,
|
||||||
|
0x3,
|
||||||
|
sBaristuteOAM_Walking_Frame5,
|
||||||
|
0x3,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct FrameData sBaristuteOAM_WalkingExtremelyFast[7] = {
|
||||||
|
sBaristuteOAM_Idle_Frame0,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Walking_Frame1,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Walking_Frame2,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Walking_Frame3,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Walking_Frame4,
|
||||||
|
0x2,
|
||||||
|
sBaristuteOAM_Walking_Frame5,
|
||||||
|
0x2,
|
||||||
|
NULL,
|
||||||
|
0x0
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47600 | 20 | Checks if samus is near the baristute (8 blocks range on each side)
|
||||||
|
*
|
||||||
|
* @return u8 1 if near, 0 otherwise
|
||||||
|
*/
|
||||||
u8 BaristuteCheckSamusInRange(void)
|
u8 BaristuteCheckSamusInRange(void)
|
||||||
{
|
{
|
||||||
|
if (SpriteUtilCheckSamusNearSpriteLeftRight(BLOCK_SIZE * 8, BLOCK_SIZE * 8) != NSLR_OUT_OF_RANGE)
|
||||||
|
{
|
||||||
|
SpriteUtilMakeSpriteFaceSamusDirection();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47620 | 90 | Initializes a baristute sprite
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteInit(void)
|
void BaristuteInit(void)
|
||||||
{
|
{
|
||||||
|
// Check for kraid baristutes
|
||||||
|
if (gCurrentSprite.spriteID == PSPRITE_BARISTUTE_KRAID_UPPER || gCurrentSprite.spriteID == PSPRITE_BARISTUTE_KRAID_LOWER)
|
||||||
|
{
|
||||||
|
if (EventFunction(EVENT_ACTION_CHECKING, EVENT_KRAID_BARISTUTES_KILLED))
|
||||||
|
{
|
||||||
|
// Kill if already dead
|
||||||
|
gCurrentSprite.status = 0x0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gDoorUnlockTimer = 0x1; // Lock doors
|
||||||
|
}
|
||||||
|
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT;
|
||||||
|
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Idle;
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
|
||||||
|
gCurrentSprite.drawDistanceTopOffset = 0x30;
|
||||||
|
gCurrentSprite.drawDistanceBottomOffset = 0x8;
|
||||||
|
gCurrentSprite.drawDistanceHorizontalOffset = 0x28;
|
||||||
|
|
||||||
|
gCurrentSprite.hitboxTopOffset = -0xA0;
|
||||||
|
gCurrentSprite.hitboxBottomOffset = 0x0;
|
||||||
|
gCurrentSprite.hitboxLeftOffset = -0x54;
|
||||||
|
gCurrentSprite.hitboxRightOffset = 0x54;
|
||||||
|
|
||||||
|
gCurrentSprite.samusCollision = SSC_HURTS_SAMUS;
|
||||||
|
gCurrentSprite.health = sSecondarySpriteStats[gCurrentSprite.spriteID][0x0];
|
||||||
|
SpriteUtilMakeSpriteFaceSamusDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteJumpingGFXInit(void)
|
/**
|
||||||
|
* @brief 476b0 | 34 | Initializes a baristute to do the warning before a jump
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteJumpWarningInit(void)
|
||||||
{
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_CHECK_WARNING_ENDED;
|
||||||
|
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Warning;
|
||||||
|
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
SoundPlayNotAlreadyPlaying(0x18C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 476e4 | 7c | Checks if the animation before jumping has ended
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteCheckBeforeJumpingAnimEnded(void)
|
void BaristuteCheckBeforeJumpingAnimEnded(void)
|
||||||
{
|
{
|
||||||
|
u16 yPosition;
|
||||||
|
u16 xPosition;
|
||||||
|
|
||||||
|
yPosition = gCurrentSprite.yPosition;
|
||||||
|
xPosition = gCurrentSprite.xPosition;
|
||||||
|
|
||||||
|
// Check if there's still ground under the baristute
|
||||||
|
if (SpriteUtilGetCollisionAtPosition(yPosition, xPosition + gCurrentSprite.hitboxRightOffset) == COLLISION_AIR
|
||||||
|
&& SpriteUtilGetCollisionAtPosition(yPosition, xPosition + gCurrentSprite.hitboxLeftOffset) == COLLISION_AIR)
|
||||||
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING_INIT; // Set falling
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SpriteUtilCheckEndCurrentSpriteAnim())
|
||||||
|
{
|
||||||
|
// Set jumping behavior
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_JUMPING;
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
gCurrentSprite.arrayOffset = 0x0;
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Jumping;
|
||||||
|
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
SoundPlayNotAlreadyPlaying(0x18D);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47760 | 100 | Handles the baristute jumping
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteJumping(void)
|
void BaristuteJumping(void)
|
||||||
{
|
{
|
||||||
|
i32 movement;
|
||||||
|
u32 topEdge;
|
||||||
|
|
||||||
|
movement = sBaristuteJumpingYVelocity[gCurrentSprite.arrayOffset / 4];
|
||||||
|
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_FACING_RIGHT)
|
||||||
|
{
|
||||||
|
// Check wall on right
|
||||||
|
SpriteUtilCheckCollisionAtPosition(gCurrentSprite.yPosition - 0x10, gCurrentSprite.xPosition + gCurrentSprite.hitboxRightOffset + 0x4);
|
||||||
|
if (gPreviousCollisionCheck == COLLISION_SOLID)
|
||||||
|
{
|
||||||
|
gCurrentSprite.xPosition -= 0xA;
|
||||||
|
gCurrentSprite.status &= ~SPRITE_STATUS_FACING_RIGHT;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING_INIT;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gCurrentSprite.xPosition += 0xA;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Check wall on left
|
||||||
|
SpriteUtilCheckCollisionAtPosition(gCurrentSprite.yPosition - 0x10, gCurrentSprite.xPosition + gCurrentSprite.hitboxLeftOffset - 0x4);
|
||||||
|
if (gPreviousCollisionCheck == COLLISION_SOLID)
|
||||||
|
{
|
||||||
|
gCurrentSprite.xPosition += 0xA;
|
||||||
|
gCurrentSprite.status |= SPRITE_STATUS_FACING_RIGHT;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING_INIT;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gCurrentSprite.xPosition -= 0xA;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply y movement
|
||||||
|
gCurrentSprite.yPosition += movement;
|
||||||
|
|
||||||
|
// Check update array offset
|
||||||
|
if (gCurrentSprite.arrayOffset < 0x27)
|
||||||
|
gCurrentSprite.arrayOffset++;
|
||||||
|
|
||||||
|
if (movement >= 0x1)
|
||||||
|
{
|
||||||
|
// Check landing if velocity is positive
|
||||||
|
topEdge = SpriteUtilCheckVerticalCollisionAtPositionSlopes(gCurrentSprite.yPosition, gCurrentSprite.xPosition);
|
||||||
|
if (gPreviousVerticalCollisionCheck != COLLISION_AIR)
|
||||||
|
{
|
||||||
|
gCurrentSprite.yPosition = topEdge;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_LANDING_INIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Check for ceiling if velocity is negative
|
||||||
|
SpriteUtilCheckCollisionAtPosition(gCurrentSprite.yPosition + gCurrentSprite.hitboxTopOffset, gCurrentSprite.xPosition);
|
||||||
|
if (gPreviousCollisionCheck == COLLISION_SOLID)
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING_INIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteLandingGFXInit(void)
|
/**
|
||||||
|
* @brief 47860 | 3c | Initializes a baristute to be landing
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteLandingInit(void)
|
||||||
{
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_LANDING;
|
||||||
|
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Landing;
|
||||||
|
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
{
|
||||||
|
ScreenShakeStartVertical(0xA, 0x81);
|
||||||
|
SoundPlayNotAlreadyPlaying(0x18E);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 4789c | 1c | Checks if the landing animation has nearly ended
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteCheckLandingAnimNearEnded(void)
|
void BaristuteCheckLandingAnimNearEnded(void)
|
||||||
{
|
{
|
||||||
|
if (SpriteUtilCheckNearEndCurrentSpriteAnim())
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT; // Set idle
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteGFXInit(void)
|
/**
|
||||||
|
* @brief 478b8 | 30 | Initializes a baristute to be idle
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteIdleInit(void)
|
||||||
{
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE;
|
||||||
|
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Idle;
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
|
||||||
|
gCurrentSprite.workVariable = gSpriteRNG & 0x3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 478e8 | cc | Handles a baristute being idle
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteIdle(void)
|
void BaristuteIdle(void)
|
||||||
{
|
{
|
||||||
|
// https://decomp.me/scratch/bFiH7
|
||||||
|
|
||||||
|
u16 yPosition;
|
||||||
|
u32 xPosition;
|
||||||
|
u32 collision;
|
||||||
|
|
||||||
|
yPosition = gCurrentSprite.yPosition;
|
||||||
|
xPosition = gCurrentSprite.xPosition;
|
||||||
|
|
||||||
|
if (SpriteUtilGetCollisionAtPosition(yPosition, xPosition + gCurrentSprite.hitboxRightOffset) == COLLISION_AIR
|
||||||
|
&& SpriteUtilGetCollisionAtPosition(yPosition, xPosition + gCurrentSprite.hitboxLeftOffset) == COLLISION_AIR)
|
||||||
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING_INIT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (SpriteUtilCheckNearEndCurrentSpriteAnim())
|
||||||
|
{
|
||||||
|
SpriteUtilMakeSpriteFaceSamusDirection();
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_FACING_RIGHT)
|
||||||
|
gCurrentSprite.status |= SPRITE_STATUS_XFLIP;
|
||||||
|
else
|
||||||
|
gCurrentSprite.status &= ~SPRITE_STATUS_XFLIP;
|
||||||
|
|
||||||
|
// /!\ Not fully merged calls
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_FACING_RIGHT)
|
||||||
|
collision = SpriteUtilGetCollisionAtPosition(yPosition - 0x10, xPosition + gCurrentSprite.hitboxRightOffset + 0x10);
|
||||||
|
else
|
||||||
|
collision = SpriteUtilGetCollisionAtPosition(yPosition - 0x10, xPosition + gCurrentSprite.hitboxLeftOffset - 0x10);
|
||||||
|
|
||||||
|
if (collision == COLLISION_AIR)
|
||||||
|
{
|
||||||
|
if (gCurrentSprite.spriteID == PSPRITE_BARISTUTE_KRAID_UPPER)
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_WALKING_INIT;
|
||||||
|
else if (gCurrentSprite.spriteID != PSPRITE_BARISTUTE_KRAID_LOWER)
|
||||||
|
{
|
||||||
|
if (gCurrentSprite.workVariable > 0x1)
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_WALKING_INIT;
|
||||||
|
else
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_JUMP_WARNING_INIT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_JUMP_WARNING_INIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteWalkingGFXInit(void)
|
/**
|
||||||
|
* @brief 479b4 | 74 | Initializes a baristute to be walking
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteWalkingInit(void)
|
||||||
{
|
{
|
||||||
|
u8 paletteRow;
|
||||||
|
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_WALKING;
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
gCurrentSprite.xPositionSpawn = gCurrentSprite.xPosition;
|
||||||
|
|
||||||
|
paletteRow = gCurrentSprite.absolutePaletteRow;
|
||||||
|
// Set OAM and walking speed based on palette row (affected by health)
|
||||||
|
if (paletteRow == 0x1)
|
||||||
|
{
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_WalkingFast;
|
||||||
|
gCurrentSprite.workVariable2 = 0x6;
|
||||||
|
}
|
||||||
|
else if (paletteRow == 0x2)
|
||||||
|
{
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_WalkingVeryFast;
|
||||||
|
gCurrentSprite.workVariable2 = 0x8;
|
||||||
|
}
|
||||||
|
else if (paletteRow == 0x3)
|
||||||
|
{
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_WalkingExtremelyFast;
|
||||||
|
gCurrentSprite.workVariable2 = 0xA;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_WalkingSlow;
|
||||||
|
gCurrentSprite.workVariable2 = 0x3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47a28 | 50 | Checks if the walking sound should play, if yes plays it
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristutePlayWalkingSound(void)
|
void BaristutePlayWalkingSound(void)
|
||||||
{
|
{
|
||||||
|
if (gCurrentSprite.animationDurationCounter == 0x1 &&
|
||||||
|
(gCurrentSprite.currentAnimationFrame == 0x1 || gCurrentSprite.currentAnimationFrame == 0x4))
|
||||||
|
{
|
||||||
|
if (gCurrentSprite.workVariable2 < 0x7) // Slow or fast
|
||||||
|
{
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
SoundPlayNotAlreadyPlaying(0x18F);
|
||||||
|
}
|
||||||
|
else // Very fast or extremely fast
|
||||||
|
{
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
SoundPlayNotAlreadyPlaying(0x258);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47a78 | d4 | Handles a baristute walking
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteWalking(void)
|
void BaristuteWalking(void)
|
||||||
{
|
{
|
||||||
|
u8 velocity;
|
||||||
|
u16 walkingDistance;
|
||||||
|
|
||||||
|
velocity = gCurrentSprite.workVariable2;
|
||||||
|
|
||||||
|
// Determined by RNG
|
||||||
|
walkingDistance = BLOCK_SIZE * 6;
|
||||||
|
if (gCurrentSprite.workVariable == 0x3)
|
||||||
|
walkingDistance *= 2;
|
||||||
|
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_FACING_RIGHT)
|
||||||
|
{
|
||||||
|
// Check collision
|
||||||
|
if (SpriteUtilGetCollisionAtPosition(gCurrentSprite.yPosition - 0x10, gCurrentSprite.xPosition + gCurrentSprite.hitboxRightOffset + 0x4) == COLLISION_AIR
|
||||||
|
&& SpriteUtilGetCollisionAtPosition(gCurrentSprite.yPosition, gCurrentSprite.xPosition + gCurrentSprite.hitboxRightOffset + 0x4) == COLLISION_SOLID)
|
||||||
|
{
|
||||||
|
if ((u16)(gCurrentSprite.xPosition - gCurrentSprite.xPositionSpawn) > walkingDistance)
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT; // Walking distance reached, set idle
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Walk
|
||||||
|
gCurrentSprite.xPosition += velocity;
|
||||||
|
BaristutePlayWalkingSound();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Encountered wall, go back and set idle
|
||||||
|
gCurrentSprite.xPosition -= velocity;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Check collision
|
||||||
|
if (SpriteUtilGetCollisionAtPosition(gCurrentSprite.yPosition - 0x10, gCurrentSprite.xPosition + gCurrentSprite.hitboxLeftOffset - 0x4) == COLLISION_AIR
|
||||||
|
&& SpriteUtilGetCollisionAtPosition(gCurrentSprite.yPosition, gCurrentSprite.xPosition + gCurrentSprite.hitboxLeftOffset - 0x4) == COLLISION_SOLID)
|
||||||
|
{
|
||||||
|
if ((u16)(gCurrentSprite.xPositionSpawn - gCurrentSprite.xPosition) > walkingDistance)
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT; // Walking distance reached, set idle
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Walk
|
||||||
|
gCurrentSprite.xPosition -= velocity;
|
||||||
|
BaristutePlayWalkingSound();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Encountered wall, go back and set idle
|
||||||
|
gCurrentSprite.xPosition += velocity;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_IDLE_INIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteBouncingGFXInit(void)
|
/**
|
||||||
|
* @brief 47b4c | 24 | Initializes a baristute to bve falling
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteFallingInit(void)
|
||||||
{
|
{
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_FALLING;
|
||||||
|
|
||||||
|
gCurrentSprite.animationDurationCounter = 0x0;
|
||||||
|
gCurrentSprite.currentAnimationFrame = 0x0;
|
||||||
|
gCurrentSprite.arrayOffset = 0x0;
|
||||||
|
gCurrentSprite.pOam = sBaristuteOAM_Jumping;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaristuteBouncing(void)
|
/**
|
||||||
|
* @brief 47b70 | 70 | Handles a baristute falling
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BaristuteFalling(void)
|
||||||
{
|
{
|
||||||
|
u32 topEdge;
|
||||||
|
i32 velocity;
|
||||||
|
u8 offset;
|
||||||
|
|
||||||
|
topEdge = SpriteUtilCheckVerticalCollisionAtPositionSlopes(gCurrentSprite.yPosition, gCurrentSprite.xPosition);
|
||||||
|
|
||||||
|
if (gPreviousVerticalCollisionCheck != COLLISION_AIR)
|
||||||
|
{
|
||||||
|
// Touching ground
|
||||||
|
gCurrentSprite.yPosition = topEdge;
|
||||||
|
gCurrentSprite.pose = BARISTUTE_POSE_LANDING_INIT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Update Y position
|
||||||
|
offset = gCurrentSprite.arrayOffset;
|
||||||
|
velocity = sBaristuteFallingYVelocity[offset];
|
||||||
|
if (velocity == SPRITE_ARRAY_TERMINATOR)
|
||||||
|
{
|
||||||
|
// Reached end of array, use last velocity
|
||||||
|
velocity = sBaristuteFallingYVelocity[offset - 1];
|
||||||
|
gCurrentSprite.yPosition += velocity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gCurrentSprite.arrayOffset = offset + 1;
|
||||||
|
gCurrentSprite.yPosition += velocity;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47be0 | 150 | Handles a baristute death
|
||||||
|
*
|
||||||
|
*/
|
||||||
void BaristuteDeath(void)
|
void BaristuteDeath(void)
|
||||||
{
|
{
|
||||||
|
u8 spriteID;
|
||||||
|
struct SpriteData* pSprite;
|
||||||
|
u8 count;
|
||||||
|
u16 yPosition;
|
||||||
|
u16 xPosition;
|
||||||
|
u8 rng;
|
||||||
|
|
||||||
|
// Check for the second baristute in Kraid
|
||||||
|
|
||||||
|
// Get sprite ID
|
||||||
|
spriteID = 0x0;
|
||||||
|
if (gCurrentSprite.spriteID == PSPRITE_BARISTUTE_KRAID_UPPER)
|
||||||
|
spriteID = PSPRITE_BARISTUTE_KRAID_LOWER;
|
||||||
|
else if (gCurrentSprite.spriteID == PSPRITE_BARISTUTE_KRAID_LOWER)
|
||||||
|
spriteID = PSPRITE_BARISTUTE_KRAID_UPPER;
|
||||||
|
|
||||||
|
if (spriteID != 0x0)
|
||||||
|
{
|
||||||
|
// Check if dead
|
||||||
|
count = 0x0;
|
||||||
|
for (pSprite = gSpriteData; pSprite < gSpriteData + 24; pSprite++)
|
||||||
|
{
|
||||||
|
if (pSprite->status & SPRITE_STATUS_EXISTS && !(pSprite->properties & SP_SECONDARY_SPRITE)
|
||||||
|
&& pSprite->spriteID == spriteID && pSprite->health != 0x0)
|
||||||
|
count++; // Baristute found
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count == 0x0)
|
||||||
|
{
|
||||||
|
// Both baristutes dead
|
||||||
|
// Set event
|
||||||
|
EventFunction(EVENT_ACTION_SETTING, EVENT_KRAID_BARISTUTES_KILLED);
|
||||||
|
// Unlock doors
|
||||||
|
gDoorUnlockTimer = -0x14;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
yPosition = gCurrentSprite.yPosition - 0x60;
|
||||||
|
xPosition = gCurrentSprite.xPosition;
|
||||||
|
rng = (u8)(gSpriteRNG * 2);
|
||||||
|
|
||||||
|
// Kill sprite
|
||||||
|
SpriteUtilSpriteDeath(DEATH_NORMAL, yPosition, xPosition, TRUE, PE_SPRITE_EXPLOSION_SINGLE_THEN_BIG);
|
||||||
|
if (gCurrentSprite.status)
|
||||||
|
{
|
||||||
|
// Has drop, spawn 2 other drops
|
||||||
|
if (gSpriteRNG & 0x1)
|
||||||
|
spriteID = PSPRITE_LARGE_ENERGY_DROP;
|
||||||
|
else
|
||||||
|
spriteID = PSPRITE_MISSILE_DROP;
|
||||||
|
|
||||||
|
SpriteSpawnDropFollowers(spriteID, gCurrentSprite.roomSlot, 0x0, gCurrentSprite.primarySpriteRAMSlot, yPosition - 0x18 + rng, xPosition + 0x4C - rng, 0x0);
|
||||||
|
|
||||||
|
if (sRandomNumberTable[gSpriteRNG] & 0x1)
|
||||||
|
spriteID = PSPRITE_LARGE_ENERGY_DROP;
|
||||||
|
else
|
||||||
|
spriteID = PSPRITE_MISSILE_DROP;
|
||||||
|
|
||||||
|
SpriteSpawnDropFollowers(spriteID, gCurrentSprite.roomSlot, 0x0, gCurrentSprite.primarySpriteRAMSlot, yPosition + 0x14 - rng, xPosition - 0x48 + rng, 0x0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 47d30 | 18c | Baristute AI
|
||||||
|
*
|
||||||
|
*/
|
||||||
void Baristute(void)
|
void Baristute(void)
|
||||||
{
|
{
|
||||||
|
u16 spawnHealth;
|
||||||
|
u16 health;
|
||||||
|
|
||||||
|
// Check play damaged sound
|
||||||
|
if (gCurrentSprite.properties & SP_DAMAGED)
|
||||||
|
{
|
||||||
|
gCurrentSprite.properties &= ~SP_DAMAGED;
|
||||||
|
if (gCurrentSprite.status & SPRITE_STATUS_ONSCREEN)
|
||||||
|
SoundPlayNotAlreadyPlaying(0x259);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check update palette
|
||||||
|
if (gCurrentSprite.invicibilityStunFlashTimer & 0x7F)
|
||||||
|
{
|
||||||
|
// Damaged
|
||||||
|
spawnHealth = sPrimarySpriteStats[gCurrentSprite.spriteID][0x0];
|
||||||
|
health = gCurrentSprite.health;
|
||||||
|
|
||||||
|
if (health <= spawnHealth / 4)
|
||||||
|
gCurrentSprite.absolutePaletteRow = 0x3;
|
||||||
|
else if (health <= spawnHealth / 2)
|
||||||
|
gCurrentSprite.absolutePaletteRow = 0x2;
|
||||||
|
else if (health <= (spawnHealth * 3) / 4)
|
||||||
|
gCurrentSprite.absolutePaletteRow = 0x1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (gCurrentSprite.pose)
|
||||||
|
{
|
||||||
|
case 0x0:
|
||||||
|
BaristuteInit();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_JUMP_WARNING_INIT:
|
||||||
|
BaristuteJumpWarningInit();
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_CHECK_WARNING_ENDED:
|
||||||
|
BaristuteCheckBeforeJumpingAnimEnded();;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_JUMPING:
|
||||||
|
BaristuteJumping();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_LANDING_INIT:
|
||||||
|
BaristuteLandingInit();
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_LANDING:
|
||||||
|
BaristuteCheckLandingAnimNearEnded();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_WALKING_INIT:
|
||||||
|
BaristuteWalkingInit();
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_WALKING:
|
||||||
|
BaristuteWalking();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_IDLE_INIT:
|
||||||
|
BaristuteIdleInit();
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_IDLE:
|
||||||
|
BaristuteIdle();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_FALLING_INIT:
|
||||||
|
BaristuteFallingInit();
|
||||||
|
|
||||||
|
case BARISTUTE_POSE_FALLING:
|
||||||
|
BaristuteFalling();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
BaristuteDeath();
|
||||||
|
}
|
||||||
}
|
}
|
@ -3,20 +3,32 @@
|
|||||||
|
|
||||||
#include "../types.h"
|
#include "../types.h"
|
||||||
|
|
||||||
|
#define BARISTUTE_POSE_JUMP_WARNING_INIT 0x8
|
||||||
|
#define BARISTUTE_POSE_CHECK_WARNING_ENDED 0x9
|
||||||
|
#define BARISTUTE_POSE_IDLE_INIT 0xE
|
||||||
|
#define BARISTUTE_POSE_IDLE 0xF
|
||||||
|
#define BARISTUTE_POSE_FALLING_INIT 0x1E
|
||||||
|
#define BARISTUTE_POSE_FALLING 0x1F
|
||||||
|
#define BARISTUTE_POSE_JUMPING 0x23
|
||||||
|
#define BARISTUTE_POSE_LANDING_INIT 0x24
|
||||||
|
#define BARISTUTE_POSE_LANDING 0x25
|
||||||
|
#define BARISTUTE_POSE_WALKING_INIT 0x26
|
||||||
|
#define BARISTUTE_POSE_WALKING 0x27
|
||||||
|
|
||||||
u8 BaristuteCheckSamusInRange(void);
|
u8 BaristuteCheckSamusInRange(void);
|
||||||
void BaristuteInit(void);
|
void BaristuteInit(void);
|
||||||
void BaristuteJumpingGFXInit(void);
|
void BaristuteJumpWarningInit(void);
|
||||||
void BaristuteCheckBeforeJumpingAnimEnded(void);
|
void BaristuteCheckBeforeJumpingAnimEnded(void);
|
||||||
void BaristuteJumping(void);
|
void BaristuteJumping(void);
|
||||||
void BaristuteLandingGFXInit(void);
|
void BaristuteLandingInit(void);
|
||||||
void BaristuteCheckLandingAnimNearEnded(void);
|
void BaristuteCheckLandingAnimNearEnded(void);
|
||||||
void BaristuteGFXInit(void);
|
void BaristuteIdleInit(void);
|
||||||
void BaristuteIdle(void);
|
void BaristuteIdle(void);
|
||||||
void BaristuteWalkingGFXInit(void);
|
void BaristuteWalkingInit(void);
|
||||||
void BaristutePlayWalkingSound(void);
|
void BaristutePlayWalkingSound(void);
|
||||||
void BaristuteWalking(void);
|
void BaristuteWalking(void);
|
||||||
void BaristuteBouncingGFXInit(void);
|
void BaristuteFallingInit(void);
|
||||||
void BaristuteBouncing(void);
|
void BaristuteFalling(void);
|
||||||
void BaristuteDeath(void);
|
void BaristuteDeath(void);
|
||||||
void Baristute(void);
|
void Baristute(void);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -3,22 +3,31 @@
|
|||||||
|
|
||||||
#include "../types.h"
|
#include "../types.h"
|
||||||
|
|
||||||
|
#define DESSGEEGA_POSE_JUMP_WARNING_INIT 0x8
|
||||||
|
#define DESSGEEGA_POSE_JUMP_WARNING 0x9
|
||||||
|
#define DESSGEEGA_POSE_IDLE 0xF
|
||||||
|
#define DESSGEEGA_POSE_LONG_BEAM_DETECT 0x11
|
||||||
|
#define DESSGEEGA_POSE_FALLING 0x1F
|
||||||
|
#define DESSGEEGA_POSE_JUMPING 0x23
|
||||||
|
#define DESSGEEGA_POSE_LANDING 0x25
|
||||||
|
#define DESSGEEGA_POSE_LONG_BEAM_SPAWNING 0x33
|
||||||
|
|
||||||
u8 DessgeegaCheckSamusNearLeftRight(void);
|
u8 DessgeegaCheckSamusNearLeftRight(void);
|
||||||
void DessgeegaInit(void);
|
void DessgeegaInit(void);
|
||||||
void DessgeegaJumpingGFXInit(void);
|
void DessgeegaJumpWarningInit(void);
|
||||||
void DessgeegaBeforeJumping(void);
|
void DessgeegaJumpingInit(void);
|
||||||
void DessgeegaBeforeLanding(void);
|
void DessgeegaLandingInit(void);
|
||||||
void DessgeegaCheckSamusInRange(void);
|
void DessgeegaIdleInit(void);
|
||||||
void DessgeegaBouncingGFXInit(void);
|
void DessgeegaFallingInit(void);
|
||||||
void DessgeegaCheckBouncing(void);
|
void DessgeegaJumpWarningGround(void);
|
||||||
void DessgeegaCheckBeforeJumpingCeilingAnimEnded(void);
|
void DessgeegaJumpWarningCeiling(void);
|
||||||
void DessgeegaMoveGround(void);
|
void DessgeegaJumpingGround(void);
|
||||||
void DessgeegaMoveCeiling(void);
|
void DessgeegaJumpingCeiling(void);
|
||||||
void DessgeegaCheckLandingAnimEnded(void);
|
void DessgeegaCheckLandingAnimEnded(void);
|
||||||
void DessgeegaJumpingGroundIntoBlock(void);
|
void DessgeegaFallingGround(void);
|
||||||
void DessgeegaJumpingCeilingIntoBlock(void);
|
void DessgeegaFallingCeiling(void);
|
||||||
void DessgeegaGroundIdleAnim(void);
|
void DessgeegaIdleGround(void);
|
||||||
void DessgeegaCeilingdleAnim(void);
|
void DessgeegaIdleCeiling(void);
|
||||||
void DessgeegaDeath(void);
|
void DessgeegaDeath(void);
|
||||||
void DessgeegaLongBeamDetectSamus(void);
|
void DessgeegaLongBeamDetectSamus(void);
|
||||||
void DessgeegaLongBeamSpawning(void);
|
void DessgeegaLongBeamSpawning(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user