Merge EonScrub into BusinessScrub sprite ID

This commit is contained in:
scawful
2024-10-08 15:59:36 -04:00
parent 46e4bc4dc0
commit b740a4fba9
2 changed files with 16 additions and 75 deletions

View File

@@ -35,18 +35,24 @@ Sprite_BusinessScrub_Long:
{
PHB : PHK : PLB
JSR Sprite_BusinessScrub_Draw ; Call the draw code
LDA.w WORLDFLAG : BNE .draw_eon
JSR Sprite_BusinessScrub_Draw
JMP +
.draw_eon
JSR Sprite_EonScrub_Draw
+
LDA.w SprSubtype, X : CMP #$01 : BNE .normal_scrub
JSL Sprite_DrawShadow
.normal_scrub
JSL Sprite_CheckActive ; Check if game is not paused
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
JSR Sprite_BusinessScrub_Main ; Call the main sprite code
JSL Sprite_CheckActive : BCC .SpriteIsNotActive
LDA.w WORLDFLAG : BNE .eon
JSR Sprite_BusinessScrub_Main
.eon
JSR Sprite_EonScrub_Main
.SpriteIsNotActive
PLB ; Get back the databank we stored previously
RTL ; Go back to original code
PLB
RTL
}
; =========================================================

View File

@@ -1,70 +1,5 @@
; =========================================================
; Sprite Properties
; =========================================================
!SPRID = Sprite_EonScrub
!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 = 00 ; Number of Health the sprite have
!Damage = 00 ; (08 is a whole heart), 04 is half heart
!DeathAnimation = 00 ; 00 = normal death, 01 = no death animation
!ImperviousAll = 00 ; 00 = Can be attack, 01 = attack will clink on it
!SmallShadow = 00 ; 01 = small shadow, 00 = no shadow
!Shadow = 00 ; 00 = don't draw shadow, 01 = draw a shadow
!Palette = 00 ; Unused in this template (can be 0 to 7)
!Hitbox = 00 ; 00 to 31, can be viewed in sprite draw tool
!Persist = 00 ; 01 = your sprite continue to live offscreen
!Statis = 00 ; 00 = is sprite is alive?, (kill all enemies room)
!CollisionLayer = 00 ; 01 = will check both layer for collision
!CanFall = 00 ; 01 sprite can fall in hole, 01 = can't fall
!DeflectArrow = 00 ; 01 = deflect arrows
!WaterSprite = 00 ; 01 = can only walk shallow water
!Blockable = 00 ; 01 = can be blocked by link's shield?
!Prize = 00 ; 00-15 = the prize pack the sprite will drop from
!Sound = 00 ; 01 = Play different sound when taking damage
!Interaction = 00 ; ?? No documentation
!Statue = 00 ; 01 = Sprite is statue
!DeflectProjectiles = 00 ; 01 = Sprite will deflect ALL projectiles
!ImperviousArrow = 00 ; 01 = Impervious to arrows
!ImpervSwordHammer = 00 ; 01 = Impervious to sword and hammer attacks
!Boss = 00 ; 00 = normal sprite, 01 = sprite is a boss
%Set_Sprite_Properties(Sprite_EonScrub_Prep, Sprite_EonScrub_Long)
; =========================================================
Sprite_EonScrub_Long:
{
PHB : PHK : PLB
JSR Sprite_EonScrub_Draw ; Call the draw code
LDA.w SprSubtype, X : CMP #$01 : BNE .normal_scrub
JSL Sprite_DrawShadow
.normal_scrub
JSL Sprite_CheckActive ; Check if game is not paused
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
JSR Sprite_EonScrub_Main ; Call the main sprite code
.SpriteIsNotActive
PLB ; Get back the databank we stored previously
RTL ; Go back to original code
}
; =========================================================
Sprite_EonScrub_Prep:
{
PHB : PHK : PLB
LDA.w SprSubtype, X : CMP #$01 : BNE .normal_scrub
LDA.b #$06 : STA.w SprAction, X ; Pea Shot State
LDA.b #$20 : STA.b SprPrize, X
.normal_scrub
PLB
RTL
}
; =========================================================
; Eon Abyss Business Scrub
; Frame Data
; 0 - Looking left
@@ -223,7 +158,7 @@ Sprite_EonScrub_Main:
EonScrub_SpawnPeaShot:
{
LDA.b #Sprite_EonScrub
LDA.b #Sprite_BusinessScrub
JSL Sprite_SpawnDynamically : BMI .return ;89
JSR SpawnPeaShot_AltEntry
.return