diff --git a/Sprites/Objects/mineswitch.asm b/Sprites/Objects/mineswitch.asm index bd9a6e6..d7beda1 100644 --- a/Sprites/Objects/mineswitch.asm +++ b/Sprites/Objects/mineswitch.asm @@ -55,8 +55,10 @@ Sprite_LeverSwitch_Prep: { PHB : PHK : PLB - LDA.b #$80 : STA $0CAA, X + LDA.b #$80 : STA.w SprDefl, X LDA SprSubtype, X : STA SprAction, X + LDA.b #$00 : STA.w SprTileDie, X + STZ.w SprBulletproof, X PLB RTL @@ -78,26 +80,32 @@ Sprite_LeverSwitch_Main: { %PlayAnimation(0,0,4) + JSL Sprite_PlayerCantPassThrough LDA SprTimerA, X : BNE .NoDamage - - JSL Sprite_CheckDamageFromPlayerLong - BCC .NoDamage - - LDA #$25 : STA $012F - STZ.w $37 - LDA #$10 : STA SprTimerA, X - %GotoAction(1) - + JSL Sprite_CheckDamageFromPlayerLong : BCC .NoDamage + .BoomHit + LDA #$25 : STA $012F + + STZ.w $37 + LDA #$10 : STA SprTimerA, X + JSL $1EA007 ; GarnishSpawn_Sparkle + %GotoAction(1) .NoDamage + ; Check for boomerang intersection + LDA.w SprX, X : CMP.w $0399 : BNE .NoBoomHit + LDA.w SprY, X : CMP.w $039B : BNE .NoBoomHit + JMP .BoomHit + .NoBoomHit + RTS } SwitchOn: { %PlayAnimation(1,1,4) - + JSL Sprite_PlayerCantPassThrough LDA SprTimerA, X : BNE .NoDamage JSL Sprite_CheckDamageFromPlayerLong diff --git a/Sprites/Objects/switch_track.asm b/Sprites/Objects/switch_track.asm index a005e4f..073473a 100644 --- a/Sprites/Objects/switch_track.asm +++ b/Sprites/Objects/switch_track.asm @@ -57,9 +57,6 @@ Sprite_RotatingTrack_Prep: LDA.b #$80 : STA $0CAA, X LDA SprSubtype, X : STA SprAction,X - LDA SprSubtype, X : CMP.b #$02 : BNE .notTrack - LDA SprX, X : SEC : SBC.b #$08 : STA SprX, X - .notTrack PLB RTL