From 2e1e2e1f24ac5ffa351840d6572cc8119ba279fb Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 26 Jun 2024 23:43:16 -0400 Subject: [PATCH] cleanup pols voice, alloc more oam for shadow --- Sprites/Enemies/pols_voice.asm | 71 ++++++++++++++++------------------ 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/Sprites/Enemies/pols_voice.asm b/Sprites/Enemies/pols_voice.asm index 813b48c..9f0f890 100644 --- a/Sprites/Enemies/pols_voice.asm +++ b/Sprites/Enemies/pols_voice.asm @@ -1,6 +1,6 @@ !SPRID = $A4 ; The sprite ID you are overwriting (HEX) -!NbrTiles = 02 ; Number of tiles used in a frame +!NbrTiles = 03 ; Number of tiles used in a frame !Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless !HVelocity = 00 ; Is your sprite going super fast? put 01 if it is !Health = 10 ; Number of Health the sprite have @@ -51,9 +51,9 @@ Sprite_PolsVoice_Prep: { PHB : PHK : PLB - LDA #$80 : STA SprTimerA, X - LDA #$00 : STA $0CAA, X - LDA #$00 : STA $0B6B, X + LDA.b #$80 : STA.w SprTimerA, X + LDA.b #$00 : STA.w SprDefl, X + LDA.b #$00 : STA.w SprTileDie, X PLB RTL @@ -62,12 +62,12 @@ Sprite_PolsVoice_Prep: ; ========================================================= Sprite_PolsVoice_Main: { - LDA.w SprAction, X; Load the SprAction - JSL UseImplicitRegIndexedLocalJumpTable; Goto the SprAction we are currently in + LDA.w SprAction, X + JSL UseImplicitRegIndexedLocalJumpTable + dw PolsVoice_MoveAround dw PolsVoice_HopAround - PolsVoice_MoveAround: { %StartOnFrame(0) @@ -83,32 +83,29 @@ Sprite_PolsVoice_Main: %DoDamageToPlayerSameLayerOnContact() - JSL GetRandomInt : AND #$3F : BNE .not_done - LDA #$04 : STA SprTimerA, X - %GotoAction(1) - .not_done + LDA #$04 : STA SprTimerA, X + %GotoAction(1) + .not_done - JSL Sprite_CheckDamageFromPlayerLong - BCC .no_damage - ; Get the direction to recoil from the player - ;Sprite_DirectionToFacePlayer LONG - ; \return $0E is low byte of player_y_pos - sprite_y_pos - ; \return $0F is low byte of player_x_pos - sprite_x_pos - JSL Sprite_DirectionToFacePlayer - ; Apply the speed positive or negative speed - LDA $0E : BPL .not_up - LDA #$20 : STA.w SprYSpeed, X : BRA .not_down - .not_up - LDA #$E0 : STA.w SprYSpeed, X - .not_down - LDA $0F : BPL .not_right - LDA #$20 : STA.w SprXSpeed, X : BRA .not_left - .not_right - LDA #$E0 : STA SprXSpeed, X - .not_left - LDA #$04 : STA SprTimerA, X - %GotoAction(1) + JSL Sprite_CheckDamageFromPlayerLong : BCC .no_damage + JSL Sprite_DirectionToFacePlayer + + ; Apply the speed positive or negative speed + LDA $0E : BPL .not_up + LDA #$20 : STA.w SprYSpeed, X + BRA .not_down + .not_up + LDA #$E0 : STA.w SprYSpeed, X + .not_down + LDA $0F : BPL .not_right + LDA #$20 : STA.w SprXSpeed, X + BRA .not_left + .not_right + LDA #$E0 : STA SprXSpeed, X + .not_left + LDA #$04 : STA SprTimerA, X + %GotoAction(1) .no_damage RTS } @@ -125,12 +122,10 @@ Sprite_PolsVoice_Main: %DoDamageToPlayerSameLayerOnContact() LDA SprTimerA, X : BNE .not_done - - %GotoAction(0) - .not_done - JSL Sprite_CheckDamageFromPlayerLong - BCC .no_damage - + %GotoAction(0) + .not_done + JSL Sprite_CheckDamageFromPlayerLong : BCC .no_damage + .no_damage RTS } @@ -198,7 +193,7 @@ Sprite_PolsVoice_Draw: RTS - ; ========================================================= + ; ======================================================= .start_index db $00, $01, $02, $03, $04