MagDeflector disappears properly

This commit is contained in:
Pecusx
2022-07-31 21:29:03 +02:00
parent edbfddf090
commit 025afbce91
3 changed files with 19 additions and 8 deletions
+1 -2
View File
@@ -736,7 +736,6 @@ NotShooter
lda Energy,x lda Energy,x
cmp EnergyDecrease cmp EnergyDecrease
bcc ldahashzero bcc ldahashzero
beq ldahashzero
;sec ;sec
sbc EnergyDecrease sbc EnergyDecrease
bpl NotNegativeEnergy bpl NotNegativeEnergy
@@ -942,7 +941,7 @@ SetunPlots
;let the tanks be visible! ;let the tanks be visible!
ldx #(maxPlayers-1) ldx #(maxPlayers-1)
lda #1 ; tank is visible lda #99 ; tank is visible
MakeTanksVisible MakeTanksVisible
sta eXistenZ,x sta eXistenZ,x
dex dex
BIN
View File
Binary file not shown.
+18 -6
View File
@@ -1862,7 +1862,8 @@ EndOfFlight2
cmp #ind_Auto_Defense___ ; Auto Defence cmp #ind_Auto_Defense___ ; Auto Defence
jeq AutoDefence jeq AutoDefence
cmp #ind_Mag_Deflector__ ; Mag Deflector cmp #ind_Mag_Deflector__ ; Mag Deflector
bne NoDefence beq MagDeflector
jmp NoDefence
MagDeflector MagDeflector
; now run defensive-aggressive weapon - Mag Deflector! ; now run defensive-aggressive weapon - Mag Deflector!
; get tank position ; get tank position
@@ -1889,9 +1890,19 @@ RightDeflection
bcs EndOfMagDeflector ; hit of course but we need RTS bcs EndOfMagDeflector ; hit of course but we need RTS
sbw XHit #36 ; change to left sbw XHit #36 ; change to left
EndOfMagDeflector EndOfMagDeflector
mva #1 Erase
lda TankNr
pha ; store TankNr
stx TankNr ; store X in TankNr :)
jsr DrawTankNr ; now erase tank with shield (to erase shield)
lda #0 lda #0
sta ActiveDefenceWeapon,x ; deactivate used mag deflector weapon sta ActiveDefenceWeapon,x ; deactivate used mag deflector weapon
sta ShieldEnergy,x sta ShieldEnergy,x
sta Erase
jsr DrawTankNr ; draw tank without shield
ldx TankNr ; restore X value :)
pla
sta TankNr ; restore TankNr value :)
mwa XHit xdraw ; why? !!! mwa XHit xdraw ; why? !!!
NoTankHitAtEndOfFight NoTankHitAtEndOfFight
NoHitAtEndOfFight NoHitAtEndOfFight
@@ -2305,7 +2316,8 @@ MIRValreadyAll
jsr FlashTank ; first we flash tank jsr FlashTank ; first we flash tank
mva #1 Erase mva #1 Erase
jsr DrawTankNr ; and erase tank jsr DrawTankNr ; and erase tank
mva #0 Erase lda #0
sta Erase
ldx TankNr ldx TankNr
sta Energy,x ; clear tank energy sta Energy,x ; clear tank energy
sta eXistenZ,x ; erase from existence sta eXistenZ,x ; erase from existence
@@ -2394,7 +2406,8 @@ InverseScreenByte
; XHit , YHit - coordinates of hit ; XHit , YHit - coordinates of hit
; X - index of the hit tank ; X - index of the hit tank
ldx #0 ldx NumberOfPlayers
dex
CheckCollisionWithTankLoop CheckCollisionWithTankLoop
lda eXistenZ,x lda eXistenZ,x
beq DeadTank beq DeadTank
@@ -2440,9 +2453,8 @@ LeftFromTheTank
OverTheTank OverTheTank
BelowTheTank BelowTheTank
DeadTank DeadTank
inx dex
cpx NumberOfPlayers bpl CheckCollisionWithTankLoop
bne CheckCollisionWithTankLoop
rts rts
CheckCollisionWithShieldedTank CheckCollisionWithShieldedTank
; now we use Y as low byte and A as high byte of checked position (left right edgs of shield) ; now we use Y as low byte and A as high byte of checked position (left right edgs of shield)