diff --git a/Sprites/ZSpriteLib/sprite_hooks.asm b/Sprites/ZSpriteLib/sprite_hooks.asm index 131d0d6..0028d9c 100644 --- a/Sprites/ZSpriteLib/sprite_hooks.asm +++ b/Sprites/ZSpriteLib/sprite_hooks.asm @@ -44,6 +44,15 @@ SprState = $0DD0 ; This tells if the sprite is alive, dead, frozen, etc... SprNbrOAM = $0E40 SprHealth = $0E50 + +; Mostly controls graphics +; nios pppt +; n - if set, don't draw extra death anim +; i - impervious to attacks and collision? TODO +; o - shadow size (0: normal | 1: small) +; s - shadow (0: no shadow | 1: shadow) +; p - palette used for OAM props +; t - name table used for OAM props SprGfxProps = $0E60 ; Direction of sprite collision with wall diff --git a/Sprites/ZSpriteLib/sprite_new_functions.asm b/Sprites/ZSpriteLib/sprite_new_functions.asm index 6b563ab..9721928 100644 --- a/Sprites/ZSpriteLib/sprite_new_functions.asm +++ b/Sprites/ZSpriteLib/sprite_new_functions.asm @@ -1,6 +1,5 @@ -;========================================================== +; ========================================================= ;Long function, return Carry Set if Active -;========================================================== Sprite_CheckActive: { @@ -24,9 +23,9 @@ Sprite_CheckActive: RTL } - +; ========================================================= ; make the sprite move X axis -;========================================================== + Sprite_MoveHoriz: { LDA.w $0D50, X : BEQ .no_velocity @@ -48,10 +47,8 @@ Sprite_MoveHoriz: RTL } -;========================================================== - +; ========================================================= ; make the sprite move both directions (also height) -;========================================================== Sprite_MoveXyz: JSL Sprite_MoveAltitude @@ -59,9 +56,8 @@ Sprite_Move: JSL Sprite_MoveHoriz ; no RTL, just continue into Sprite_MoveVert -;========================================================== +; ========================================================= ; make the sprite move Y axis -;========================================================== Sprite_MoveVert: { @@ -84,9 +80,8 @@ Sprite_MoveVert: RTL } -;========================================================== +; ========================================================= ; make the sprite move Z axis (height) -;========================================================== Sprite_MoveZ: Sprite_MoveAltitude: @@ -107,11 +102,11 @@ Sprite_MoveAltitude: } -;========================================================== +; ========================================================= ; make the sprite bounce toward player (like vitreous) ; Movement, Collision are handled by this function (height:20 = vitreous) ; $09 = speed, $08 = max height -;========================================================== + Sprite_BounceTowardPlayer: { @@ -130,7 +125,7 @@ Sprite_BounceTowardPlayer: JSL Sprite_ApplySpeedTowardsPlayer - LDA.b #$21 : JSL Sound_SetSfx2PanLong + ; LDA.b #$21 : JSL Sound_SetSfx2PanLong .aloft LDA.w $0F70, X : BEQ .dontmove @@ -163,6 +158,16 @@ Sprite_FloatTowardPlayer: RTL } +Sprite_FloatAwayFromPlayer: +{ + LDA $0D50, X : EOR.b #$FF : INC : STA $0D50, X + LDA $0D40, X : EOR.b #$FF : INC : STA $0D40, X + + JSL Sprite_MoveAltitude + + RTL +} + Sprite_BounceFromTileCollision: { JSL Sprite_CheckTileCollision : AND.b #$03 : BEQ ++