add kydreeok left head anim and handle death
This commit is contained in:
@@ -89,9 +89,16 @@ Sprite_Kydreeok_CheckIfDead:
|
|||||||
LDA.w SprState, Y : BEQ .offspring2_dead
|
LDA.w SprState, Y : BEQ .offspring2_dead
|
||||||
JMP .not_dead
|
JMP .not_dead
|
||||||
.offspring2_dead
|
.offspring2_dead
|
||||||
LDY #$01 : JSR ApplyKydreeokGraphics
|
LDA.w SprMiscD, X : CMP.b #$02 : BEQ .dead
|
||||||
JSR SpawnLeftHead
|
LDA.b #$02 : STA.w SprMiscD, X
|
||||||
JSR SpawnRightHead
|
LDY.b #$01 : JSR ApplyKydreeokGraphics
|
||||||
|
JSR SpawnLeftHead
|
||||||
|
JSR SpawnRightHead
|
||||||
|
RTS
|
||||||
|
.dead
|
||||||
|
LDA.b #$60 : STA.w SprTimerA, X
|
||||||
|
LDA.b #$05 : STA SprAction, X
|
||||||
|
|
||||||
.not_dead
|
.not_dead
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
@@ -108,6 +115,7 @@ Sprite_Kydreeok_Main:
|
|||||||
dw Kydreeok_MoveXandY ; 02
|
dw Kydreeok_MoveXandY ; 02
|
||||||
dw Kydreeok_MoveXorY ; 03
|
dw Kydreeok_MoveXorY ; 03
|
||||||
dw Kydreeok_KeepWalking ; 04
|
dw Kydreeok_KeepWalking ; 04
|
||||||
|
dw Kydreeok_Dead ; 05
|
||||||
|
|
||||||
; -------------------------------------------------------
|
; -------------------------------------------------------
|
||||||
; 0x00
|
; 0x00
|
||||||
@@ -234,6 +242,52 @@ Sprite_Kydreeok_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Kydreeok_Dead:
|
||||||
|
{
|
||||||
|
#_1DDC30: LDA.b #$00 ; SPRITE 00
|
||||||
|
#_1DDC32: JSL Sprite_SpawnDynamically
|
||||||
|
#_1DDC36: BMI .no_space
|
||||||
|
|
||||||
|
#_1DDC38: LDA.b #$0B
|
||||||
|
#_1DDC3A: STA.w $0AAA
|
||||||
|
|
||||||
|
#_1DDC3D: LDA.b #$04
|
||||||
|
#_1DDC3F: STA.w $0DD0,Y
|
||||||
|
|
||||||
|
#_1DDC42: LDA.b #$03
|
||||||
|
#_1DDC44: STA.w $0E40,Y
|
||||||
|
|
||||||
|
#_1DDC47: LDA.b #$0C
|
||||||
|
#_1DDC49: STA.w $0F50,Y
|
||||||
|
|
||||||
|
#_1DDC4C: LDA.w $0FD8
|
||||||
|
#_1DDC4F: STA.w $0D10,Y
|
||||||
|
|
||||||
|
#_1DDC52: LDA.w $0FD9
|
||||||
|
#_1DDC55: STA.w $0D30,Y
|
||||||
|
|
||||||
|
#_1DDC58: LDA.w $0FDA
|
||||||
|
#_1DDC5B: STA.w $0D00,Y
|
||||||
|
|
||||||
|
#_1DDC5E: LDA.w $0FDB
|
||||||
|
#_1DDC61: STA.w $0D20,Y
|
||||||
|
|
||||||
|
#_1DDC64: LDA.b #$1F
|
||||||
|
#_1DDC66: STA.w $0DF0,Y
|
||||||
|
#_1DDC69: STA.w $0D90,Y
|
||||||
|
|
||||||
|
#_1DDC6C: LDA.b #$02
|
||||||
|
#_1DDC6E: STA.w $0F20,Y
|
||||||
|
.no_space
|
||||||
|
|
||||||
|
LDA SprTimerA, X : BNE .continue
|
||||||
|
STZ.w $0422
|
||||||
|
STZ.w $0424
|
||||||
|
STZ.w $0DD0, X ; GG
|
||||||
|
.continue
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -274,7 +328,7 @@ SpawnLeftHead:
|
|||||||
PHX
|
PHX
|
||||||
; code that controls where to spawn the offspring.
|
; code that controls where to spawn the offspring.
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA SprCachedX : SEC : SBC.w #$000F
|
LDA SprCachedX : SEC : SBC.w #$0010
|
||||||
SEP #$20
|
SEP #$20
|
||||||
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
||||||
|
|
||||||
@@ -300,42 +354,42 @@ SpawnLeftHead:
|
|||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
SpawnCenterHead:
|
; SpawnCenterHead:
|
||||||
{
|
; {
|
||||||
LDA #$CF
|
; LDA #$CF
|
||||||
|
|
||||||
JSL Sprite_SpawnDynamically : BMI .return
|
; JSL Sprite_SpawnDynamically : BMI .return
|
||||||
TYA : STA Offspring3_Id
|
; TYA : STA Offspring3_Id
|
||||||
|
|
||||||
;store the sub-type
|
; ;store the sub-type
|
||||||
LDA.b #$02 : STA $0E30, Y
|
; LDA.b #$02 : STA $0E30, Y
|
||||||
|
|
||||||
PHX
|
; PHX
|
||||||
; code that controls where to spawn the offspring.
|
; ; code that controls where to spawn the offspring.
|
||||||
REP #$20
|
; REP #$20
|
||||||
LDA SprCachedX : CLC : ADC.w #$0004
|
; LDA SprCachedX : CLC : ADC.w #$0004
|
||||||
SEP #$20
|
; SEP #$20
|
||||||
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
; STA.w SprX, Y : XBA : STA.w SprXH, Y
|
||||||
|
|
||||||
REP #$20
|
; REP #$20
|
||||||
LDA SprCachedY : SEC : SBC.w #$000F
|
; LDA SprCachedY : SEC : SBC.w #$000F
|
||||||
SEP #$20
|
; SEP #$20
|
||||||
STA.w SprY, Y : XBA : STA.w SprYH, Y
|
; STA.w SprY, Y : XBA : STA.w SprYH, Y
|
||||||
|
|
||||||
LDA.w SprX, Y : STA.w SprX, Y
|
; LDA.w SprX, Y : STA.w SprX, Y
|
||||||
STA.w SprMiscA, Y : STA.w $1A78 : STA.w $1A7A : STA.w $1A7C
|
; STA.w SprMiscA, Y : STA.w $1A78 : STA.w $1A7A : STA.w $1A7C
|
||||||
LDA.w SprY, Y : STA.w $1A79 : STA.w $1A7B : STA.w $1A7D : STA.w SprY, Y
|
; LDA.w SprY, Y : STA.w $1A79 : STA.w $1A7B : STA.w $1A7D : STA.w SprY, Y
|
||||||
STA.w SprMiscB, Y
|
; STA.w SprMiscB, Y
|
||||||
|
|
||||||
TYX
|
; TYX
|
||||||
|
|
||||||
STZ.w SprYRound, X
|
; STZ.w SprYRound, X
|
||||||
STZ.w SprXRound, X
|
; STZ.w SprXRound, X
|
||||||
PLX
|
; PLX
|
||||||
|
|
||||||
.return
|
; .return
|
||||||
RTS
|
; RTS
|
||||||
}
|
; }
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
@@ -350,7 +404,7 @@ SpawnRightHead:
|
|||||||
PHX
|
PHX
|
||||||
; code that controls where to spawn the offspring.
|
; code that controls where to spawn the offspring.
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA SprCachedX : CLC : ADC.w #$000C
|
LDA SprCachedX : CLC : ADC.w #$000D
|
||||||
SEP #$20
|
SEP #$20
|
||||||
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
STA.w SprX, Y : XBA : STA.w SprXH, Y
|
||||||
|
|
||||||
@@ -527,50 +581,50 @@ StopIfOutOfBounds:
|
|||||||
Sprite_ApplySpeedTowardsPlayerXOrY:
|
Sprite_ApplySpeedTowardsPlayerXOrY:
|
||||||
{
|
{
|
||||||
JSL Sprite_IsBelowPlayer : BEQ .playerBelow
|
JSL Sprite_IsBelowPlayer : BEQ .playerBelow
|
||||||
;playerAbove
|
;playerAbove
|
||||||
|
|
||||||
|
REP #$20
|
||||||
|
LDA SprCachedY : SEC : SBC $20 : CLC : ADC.w #$0006 : STA $01 ;delta Y
|
||||||
|
;added an extra 6 pixels because aparently if link.y is 6 above sprite.y it is concidered below ¯\_(ツ)_/¯
|
||||||
|
SEP #$20
|
||||||
|
|
||||||
|
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight1
|
||||||
|
;playerToTheLeft
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA SprCachedY : SEC : SBC $20 : CLC : ADC.w #$0006 : STA $01 ;delta Y
|
LDA SprCachedX : SEC : SBC $22 ;delta X
|
||||||
;added an extra 6 pixels because aparently if link.y is 6 above sprite.y it is concidered below ¯\_(ツ)_/¯
|
|
||||||
SEP #$20
|
|
||||||
|
|
||||||
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight1
|
|
||||||
;playerToTheLeft
|
|
||||||
|
|
||||||
REP #$20
|
|
||||||
LDA SprCachedX : SEC : SBC $22 ;delta X
|
|
||||||
|
|
||||||
|
|
||||||
CMP $01 : BCS .XGreaterThanY1
|
CMP $01 : BCS .XGreaterThanY1
|
||||||
;YGreaterThanX
|
;YGreaterThanX
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : SEC : SBC $00 : STA.w SprYSpeed
|
LDA.b #$00 : SEC : SBC $00 : STA.w SprYSpeed
|
||||||
STZ.w SprXSpeed
|
STZ.w SprXSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.XGreaterThanY1
|
.XGreaterThanY1
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : SEC : SBC $00 : STA.w SprXSpeed
|
LDA.b #$00 : SEC : SBC $00 : STA.w SprXSpeed
|
||||||
STZ.w SprYSpeed
|
STZ.w SprYSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
.playerToTheRight1
|
.playerToTheRight1
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA $22 : SEC : SBC SprCachedX ;delta X
|
LDA $22 : SEC : SBC SprCachedX ;delta X
|
||||||
|
|
||||||
CMP $01 : BCS .XGreaterThanY2
|
CMP $01 : BCS .XGreaterThanY2
|
||||||
;YGreaterThanX
|
;YGreaterThanX
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : SEC : SBC $00 : STA.w SprYSpeed
|
LDA.b #$00 : SEC : SBC $00 : STA.w SprYSpeed
|
||||||
STZ.w SprXSpeed
|
STZ.w SprXSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.XGreaterThanY2
|
.XGreaterThanY2
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : CLC : ADC $00 : STA.w SprXSpeed
|
LDA.b #$00 : CLC : ADC $00 : STA.w SprXSpeed
|
||||||
STZ.w SprYSpeed
|
STZ.w SprYSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
.playerBelow
|
.playerBelow
|
||||||
@@ -586,17 +640,17 @@ Sprite_ApplySpeedTowardsPlayerXOrY:
|
|||||||
LDA SprCachedX : SEC : SBC $22 ;delta X
|
LDA SprCachedX : SEC : SBC $22 ;delta X
|
||||||
|
|
||||||
CMP $01 : BCS .XGreaterThanY3
|
CMP $01 : BCS .XGreaterThanY3
|
||||||
;YGreaterThanX
|
;YGreaterThanX
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : CLC : ADC $00 : STA.w SprYSpeed
|
LDA.b #$00 : CLC : ADC $00 : STA.w SprYSpeed
|
||||||
STZ.w SprXSpeed
|
STZ.w SprXSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.XGreaterThanY3
|
.XGreaterThanY3
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : SEC : SBC $00 : STA.w SprXSpeed
|
LDA.b #$00 : SEC : SBC $00 : STA.w SprXSpeed
|
||||||
STZ.w SprYSpeed
|
STZ.w SprYSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
.playerToTheRight2
|
.playerToTheRight2
|
||||||
@@ -604,17 +658,17 @@ Sprite_ApplySpeedTowardsPlayerXOrY:
|
|||||||
LDA $22 : SEC : SBC SprCachedX ;delta X
|
LDA $22 : SEC : SBC SprCachedX ;delta X
|
||||||
|
|
||||||
CMP $01 : BCS .XGreaterThanY4
|
CMP $01 : BCS .XGreaterThanY4
|
||||||
;YGreaterThanX
|
;YGreaterThanX
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : CLC : ADC $00 : STA.w SprYSpeed
|
LDA.b #$00 : CLC : ADC $00 : STA.w SprYSpeed
|
||||||
STZ.w SprXSpeed
|
STZ.w SprXSpeed
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.XGreaterThanY4
|
.XGreaterThanY4
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #$00 : CLC : ADC $00 : STA.w SprXSpeed
|
LDA.b #$00 : CLC : ADC $00 : STA.w SprXSpeed
|
||||||
STZ.w SprYSpeed
|
STZ.w SprYSpeed
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -629,7 +683,7 @@ ApplyPalette:
|
|||||||
LDA #$7FFF : STA $7EC5E2 ;BG2
|
LDA #$7FFF : STA $7EC5E2 ;BG2
|
||||||
LDA #$319B : STA $7EC5E4
|
LDA #$319B : STA $7EC5E4
|
||||||
LDA #$15B6 : STA $7EC5E6
|
LDA #$15B6 : STA $7EC5E6
|
||||||
LDA #$0C79 : STA $7EC5E8
|
LDA #$369E : STA $7EC5E8
|
||||||
LDA #$14A5 : STA $7EC5EA
|
LDA #$14A5 : STA $7EC5EA
|
||||||
LDA #$7E56 : STA $7EC5EC
|
LDA #$7E56 : STA $7EC5EC
|
||||||
LDA #$65CA : STA $7EC5EE
|
LDA #$65CA : STA $7EC5EE
|
||||||
@@ -703,31 +757,30 @@ Sprite_Kydreeok_Draw:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
.start_index
|
||||||
.start_index
|
db $00, $08, $10
|
||||||
db $00, $0A, $14
|
.nbr_of_tiles
|
||||||
.nbr_of_tiles
|
db 7, 7, 7
|
||||||
db 9, 9, 9
|
.x_offsets
|
||||||
.x_offsets
|
dw -16, -16, 16, 16, -16, -16, 16, 16
|
||||||
dw -8, -16, -16, -16, -32, 8, 16, 16, 16, 32
|
dw -12, -28, 12, 28, -16, -16, 16, 16
|
||||||
dw -8, -16, -16, -16, -32, 8, 16, 16, 16, 32
|
dw -16, -16, 16, 16, -16, -16, 16, 16
|
||||||
dw -8, -16, -16, -16, -32, 8, 16, 16, 16, 32
|
.y_offsets
|
||||||
.y_offsets
|
dw -52, -36, -52, -36, -8, 8, -8, 8
|
||||||
dw 8, -8, 8, -36, -36, 8, -8, 8, -36, -36
|
dw -36, -36, -36, -36, -6, 10, -8, 8
|
||||||
dw 8, -5, 11, -38, -38, 8, -8, 8, -39, -38
|
dw -36, -20, -36, -20, -8, 8, -6, 10
|
||||||
dw 8, -8, 8, -36, -36, 8, -5, 11, -36, -36
|
.chr
|
||||||
.chr
|
db $CE, $EE, $CE, $EE, $00, $20, $00, $20
|
||||||
db $23, $00, $20, $0E, $0C, $23, $00, $20, $0E, $0C
|
db $0E, $0C, $0E, $0C, $00, $20, $00, $20
|
||||||
db $23, $00, $20, $0E, $0C, $23, $00, $20, $0E, $0C
|
db $CC, $EC, $CC, $EC, $00, $20, $00, $20
|
||||||
db $23, $00, $20, $0E, $0C, $23, $00, $20, $0E, $0C
|
.properties
|
||||||
.properties
|
db $39, $39, $79, $79, $39, $39, $79, $79
|
||||||
db $39, $39, $39, $39, $39, $79, $79, $79, $79, $79
|
db $39, $39, $79, $79, $39, $39, $79, $79
|
||||||
db $39, $39, $39, $39, $39, $79, $79, $79, $79, $79
|
db $39, $39, $79, $79, $39, $39, $79, $79
|
||||||
db $39, $39, $39, $39, $39, $79, $79, $79, $79, $79
|
.sizes
|
||||||
.sizes
|
db $02, $02, $02, $02, $02, $02, $02, $02
|
||||||
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02
|
db $02, $02, $02, $02, $02, $02, $02, $02
|
||||||
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02
|
db $02, $02, $02, $02, $02, $02, $02, $02
|
||||||
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplyKydreeokGraphics:
|
ApplyKydreeokGraphics:
|
||||||
|
|||||||
Reference in New Issue
Block a user