diff --git a/ai.asm b/ai.asm index 6c01bb6..7a206e0 100644 --- a/ai.asm +++ b/ai.asm @@ -193,6 +193,7 @@ EnoughEnergy sta ShieldEnergy,x ; decrease in inventory clc + lda (temp),y sbc #1 sta (temp),y ; has address of TanksWeaponsTable NoUseDefensive @@ -306,6 +307,7 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 sta ShieldEnergy,x ; decrease in inventory clc + lda (temp),y sbc #1 sta (temp),y DefensiveInUse diff --git a/scorch.asm b/scorch.asm index 2f854c2..9bb383b 100644 --- a/scorch.asm +++ b/scorch.asm @@ -446,8 +446,8 @@ AfterManualShooting cmp #ind_Nuclear_Winter_ bne StandardShoot ShootAtomicWinter - ; --- nuclear winter --- - jsr NuclearWinter + ; --- atomic winter --- + jsr AtomicWinter jmp NextPlayerShoots ; and we skip shoot ShootWhiteFlag ; --- white flag --- @@ -681,6 +681,20 @@ MetodOfDeath jsr ExplosionDirect mva #sfx_silencer sfx_effect + ; Clear current Shooter settings. After that, Shooter will "search" for the target again + ldx NumberOfPlayers + dex +@ lda skillTable,x + cmp #2 ; clear variables only if Shooter + bne NotShooter + lda #0 + sta PreviousAngle,x + sta PreviousEnergyL,x + sta PreviousEnergyH,x +NotShooter + dex + bpl @- + ; jump to after explosion routines (soil fallout, etc.) ; After going through these routines we are back ; to checking if a tank exploded and maybe we have diff --git a/scorch.xex b/scorch.xex index ef8801a..ad690a5 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/weapons.asm b/weapons.asm index eff3dd7..3981863 100644 --- a/weapons.asm +++ b/weapons.asm @@ -2514,7 +2514,7 @@ MIRValreadyAll .endp ; ------------------------------------------------- -.proc NuclearWinter +.proc AtomicWinter ; ------------------------------------------------- ; This routine is run from inside of the main loop ; and replaces Shoot and Flight routines