Add offspring 3 neck control and formatting to kydreeok
This commit is contained in:
@@ -121,8 +121,6 @@ Sprite_Kydreeok_Main:
|
|||||||
|
|
||||||
STZ.w SprYSpeed : STZ.w SprXSpeed ;set velocitys to 0
|
STZ.w SprYSpeed : STZ.w SprXSpeed ;set velocitys to 0
|
||||||
JSR MoveBody
|
JSR MoveBody
|
||||||
|
|
||||||
JSL Sprite_BounceFromTileCollision ;
|
|
||||||
JSR StopIfOutOfBounds
|
JSR StopIfOutOfBounds
|
||||||
|
|
||||||
LDA SprTimerA, X : BNE .continue
|
LDA SprTimerA, X : BNE .continue
|
||||||
@@ -145,7 +143,6 @@ Sprite_Kydreeok_Main:
|
|||||||
|
|
||||||
LDA $36
|
LDA $36
|
||||||
JSL Sprite_ApplySpeedTowardsPlayer
|
JSL Sprite_ApplySpeedTowardsPlayer
|
||||||
JSL Sprite_BounceFromTileCollision ; JSR StopIfOutOfBounds
|
|
||||||
JSR StopIfOutOfBounds
|
JSR StopIfOutOfBounds
|
||||||
JSR MoveBody
|
JSR MoveBody
|
||||||
|
|
||||||
@@ -169,7 +166,6 @@ Sprite_Kydreeok_Main:
|
|||||||
PHX
|
PHX
|
||||||
LDA $36 : STA $00
|
LDA $36 : STA $00
|
||||||
JSR Sprite_ApplySpeedTowardsPlayerXOrY
|
JSR Sprite_ApplySpeedTowardsPlayerXOrY
|
||||||
JSL Sprite_BounceFromTileCollision ; JSR StopIfOutOfBounds
|
|
||||||
JSR StopIfOutOfBounds
|
JSR StopIfOutOfBounds
|
||||||
JSR MoveBody
|
JSR MoveBody
|
||||||
|
|
||||||
@@ -207,7 +203,7 @@ Sprite_Kydreeok_Main:
|
|||||||
|
|
||||||
.notEqualX
|
.notEqualX
|
||||||
SEP #$20
|
SEP #$20
|
||||||
JSL Sprite_BounceFromTileCollision ; JSR StopIfOutOfBounds
|
JSR StopIfOutOfBounds
|
||||||
|
|
||||||
;if both velocities are 0 go back to the Stalk_Player_XORY to re-set the course
|
;if both velocities are 0 go back to the Stalk_Player_XORY to re-set the course
|
||||||
LDA.w SprYSpeed : BNE .notZero
|
LDA.w SprYSpeed : BNE .notZero
|
||||||
@@ -230,6 +226,30 @@ Sprite_Kydreeok_Main:
|
|||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
|
Offspring1_Neck1_X = $19EA
|
||||||
|
Offspring1_Neck2_X = $19EC
|
||||||
|
Offspring1_Neck3_X = $19EE
|
||||||
|
|
||||||
|
Offspring1_Neck1_Y = $19EB
|
||||||
|
Offspring1_Neck2_Y = $19ED
|
||||||
|
Offspring1_Neck3_Y = $19EF
|
||||||
|
|
||||||
|
Offspring2_Neck1_X = $19F0
|
||||||
|
Offspring2_Neck2_X = $19F2
|
||||||
|
Offspring2_Neck3_X = $19F4
|
||||||
|
|
||||||
|
Offspring2_Neck1_Y = $19F1
|
||||||
|
Offspring2_Neck2_Y = $19F3
|
||||||
|
Offspring2_Neck3_Y = $19F5
|
||||||
|
|
||||||
|
Offspring3_Neck1_X = $1A78
|
||||||
|
Offspring3_Neck2_X = $1A7A
|
||||||
|
Offspring3_Neck3_X = $1A7C
|
||||||
|
|
||||||
|
Offspring3_Neck1_Y = $1A79
|
||||||
|
Offspring3_Neck2_Y = $1A7B
|
||||||
|
Offspring3_Neck3_Y = $1A7D
|
||||||
|
|
||||||
SpawnLeftHead:
|
SpawnLeftHead:
|
||||||
{
|
{
|
||||||
LDA #$CF
|
LDA #$CF
|
||||||
@@ -281,7 +301,7 @@ SpawnCenterHead:
|
|||||||
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 #$0006
|
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
|
||||||
|
|
||||||
@@ -423,6 +443,10 @@ StopIfOutOfBounds:
|
|||||||
LDA $19F2 : SEC : SBC #$04 : STA $19F2
|
LDA $19F2 : SEC : SBC #$04 : STA $19F2
|
||||||
LDA $19F4 : SEC : SBC #$04 : STA $19F4
|
LDA $19F4 : SEC : SBC #$04 : STA $19F4
|
||||||
|
|
||||||
|
LDA Offspring3_Neck1_X : SEC : SBC #$04 : STA Offspring3_Neck1_X
|
||||||
|
LDA Offspring3_Neck2_X : SEC : SBC #$04 : STA Offspring3_Neck2_X
|
||||||
|
LDA Offspring3_Neck3_X : SEC : SBC #$04 : STA Offspring3_Neck3_X
|
||||||
|
|
||||||
.not_out_of_bounds_Left
|
.not_out_of_bounds_Left
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
@@ -439,6 +463,10 @@ StopIfOutOfBounds:
|
|||||||
LDA $19F2 : CLC : ADC #$04 : STA $19F2
|
LDA $19F2 : CLC : ADC #$04 : STA $19F2
|
||||||
LDA $19F4 : CLC : ADC #$04 : STA $19F4
|
LDA $19F4 : CLC : ADC #$04 : STA $19F4
|
||||||
|
|
||||||
|
LDA Offspring3_Neck1_X : CLC : ADC #$04 : STA Offspring3_Neck1_X
|
||||||
|
LDA Offspring3_Neck2_X : CLC : ADC #$04 : STA Offspring3_Neck2_X
|
||||||
|
LDA Offspring3_Neck3_X : CLC : ADC #$04 : STA Offspring3_Neck3_X
|
||||||
|
|
||||||
.not_out_of_bounds_Right
|
.not_out_of_bounds_Right
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
@@ -452,6 +480,10 @@ StopIfOutOfBounds:
|
|||||||
LDA $19EC : SEC : SBC #$04 : STA $19EC
|
LDA $19EC : SEC : SBC #$04 : STA $19EC
|
||||||
LDA $19EE : SEC : SBC #$04 : STA $19EE
|
LDA $19EE : SEC : SBC #$04 : STA $19EE
|
||||||
|
|
||||||
|
LDA Offspring3_Neck1_Y : SEC : SBC #$04 : STA Offspring3_Neck1_Y
|
||||||
|
LDA Offspring3_Neck2_Y : SEC : SBC #$04 : STA Offspring3_Neck2_Y
|
||||||
|
LDA Offspring3_Neck3_Y : SEC : SBC #$04 : STA Offspring3_Neck3_Y
|
||||||
|
|
||||||
.not_out_of_bounds_Up
|
.not_out_of_bounds_Up
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
@@ -471,6 +503,10 @@ StopIfOutOfBounds:
|
|||||||
LDA $19F2 : CLC : ADC #$04 : STA $19F2
|
LDA $19F2 : CLC : ADC #$04 : STA $19F2
|
||||||
LDA $19F4 : CLC : ADC #$04 : STA $19F4
|
LDA $19F4 : CLC : ADC #$04 : STA $19F4
|
||||||
|
|
||||||
|
LDA Offspring3_Neck1_Y : CLC : ADC #$04 : STA Offspring3_Neck1_Y
|
||||||
|
LDA Offspring3_Neck2_Y : CLC : ADC #$04 : STA Offspring3_Neck2_Y
|
||||||
|
LDA Offspring3_Neck3_Y : CLC : ADC #$04 : STA Offspring3_Neck3_Y
|
||||||
|
|
||||||
|
|
||||||
.not_out_of_bounds_Down
|
.not_out_of_bounds_Down
|
||||||
SEP #$20
|
SEP #$20
|
||||||
@@ -482,95 +518,95 @@ StopIfOutOfBounds:
|
|||||||
|
|
||||||
Sprite_ApplySpeedTowardsPlayerXOrY:
|
Sprite_ApplySpeedTowardsPlayerXOrY:
|
||||||
{
|
{
|
||||||
JSL Sprite_IsBelowPlayer : BEQ .playerBelow
|
JSL Sprite_IsBelowPlayer : BEQ .playerBelow
|
||||||
;playerAbove
|
;playerAbove
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA SprCachedY : SEC : SBC $20 : CLC : ADC.w #$0006 : STA $01 ;delta Y
|
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 ¯\_(ツ)_/¯
|
;added an extra 6 pixels because aparently if link.y is 6 above sprite.y it is concidered below ¯\_(ツ)_/¯
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight1
|
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight1
|
||||||
;playerToTheLeft
|
;playerToTheLeft
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA SprCachedX : SEC : SBC $22 ;delta X
|
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
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA $20 : SEC : SBC SprCachedY : CLC : ADC.w #$0006 : STA $01 ;delta Y
|
LDA $20 : SEC : SBC SprCachedY : 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 ¯\_(ツ)_/¯
|
;added an extra 6 pixels because aparently if link.y is 6 above sprite.y it is concidered below ¯\_(ツ)_/¯
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight2
|
JSL Sprite_IsToRightOfPlayer : BEQ .playerToTheRight2
|
||||||
;playerToTheLeft
|
;playerToTheLeft
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
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
|
||||||
REP #$20
|
REP #$20
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -605,7 +641,9 @@ ApplyPalette:
|
|||||||
Sprite_Kydreeok_Draw:
|
Sprite_Kydreeok_Draw:
|
||||||
{
|
{
|
||||||
JSL Sprite_PrepOamCoord
|
JSL Sprite_PrepOamCoord
|
||||||
JSL Sprite_OAM_AllocateDeferToPlayer
|
; JSL Sprite_OAM_AllocateDeferToPlayer
|
||||||
|
LDA.b #$08
|
||||||
|
JSL OAM_AllocateFromRegionE
|
||||||
|
|
||||||
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
|
||||||
LDA .start_index, Y : STA $06
|
LDA .start_index, Y : STA $06
|
||||||
|
|||||||
Reference in New Issue
Block a user