diff --git a/grafproc.asm b/grafproc.asm index c21a1bc..fdae632 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -722,6 +722,14 @@ ZeroesToGo6 bne ClearPM6 NoPlayerMissile +BarrelChange + ldy #$01 + lda Erase + beq @+ + dey +@ sty color + jsr DrawBarrel + ; draw defensive weapons like shield ( tank number in X ) ; in xdraw, ydraw we have coordinates left LOWER corner of Tank char ldx TankNr @@ -757,7 +765,6 @@ DrawTankFlag jsr SetupXYdraw.X jsr TypeChar NoShieldDraw - DrawBarrel DoNotDrawTankNr rts .endp @@ -1912,12 +1919,12 @@ X lda XtanksTableL,x ; erase previous barrel ;cos(Angle) (but we use sin table only so some shenanigans happen) - mva #0 color - lda previousBarrelAngle,x - sta Angle - jsr DrawBarrelTech - - mva #1 color + ; mva #0 color + ; lda previousBarrelAngle,x + ; sta Angle + ; jsr DrawBarrelTech + ; + ; mva #1 color ldx TankNr jsr SetupXYdraw lda angleTable,x diff --git a/scorch.asm b/scorch.asm index 53afad3..2e584d7 100644 --- a/scorch.asm +++ b/scorch.asm @@ -325,11 +325,11 @@ SettingEnergies sta colpf2s ; status line "off" sta colpf1s - lda #90 ; barrel fully erect - ldx #MaxPlayers-1 -@ sta previousBarrelAngle,x - dex - bpl @- +; lda #90 ; barrel fully erect +; ldx #MaxPlayers-1 +;@ sta previousBarrelAngle,x +; dex +; bpl @- jsr drawmountains ;draw them @@ -1213,20 +1213,29 @@ LimitForce .endp ;---------------------------------------------- .proc MoveBarrelToNewPosition + mva #sfx_set_power_2 sfx_effect + mva #1 Erase + jsr DrawTankNr.BarrelChange + mva #0 Erase +MoveBarrel jsr DrawTankNr jsr DisplayStatus.displayAngle ldx TankNr + mva #1 Erase + jsr DrawTankNr.BarrelChange + mva #0 Erase lda NewAngle cmp AngleTable,x beq BarrelPositionIsFine bcc rotateLeft ; older is bigger rotateRight;older is lower inc angleTable,x - jmp MoveBarrelToNewPosition + jmp MoveBarrel rotateLeft dec angleTable,x - jmp MoveBarrelToNewPosition + jmp MoveBarrel BarrelPositionIsFine + jsr DrawTankNr rts .endp diff --git a/scorch.xex b/scorch.xex index 10c8686..f399cec 100644 Binary files a/scorch.xex and b/scorch.xex differ diff --git a/textproc.asm b/textproc.asm index d697adb..bc1358c 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1837,6 +1837,8 @@ FinishResultDisplay mva #0 colpf1s mva #TextForegroundColor colpf2s VDLI DLIinterruptGameOver ; jsr SetDLI for Game Over screen + lda #song_game_over + jsr RmtSongSelect ; initial tank positions randomization ldx #(MaxPlayers-1) ;maxNumberOfPlayers-1 @ @@ -1848,6 +1850,10 @@ MainTanksFloatingLoop ldx #(MaxPlayers-1) ;maxNumberOfPlayers-1 AllTanksFloatingDown stx TankNr + mva #1 Erase + jsr DrawTankNr + mva #0 Erase + ldx TankNr inc Ytankstable,x lda Ytankstable,x ; cmp #32 ; tank over screen - not visible diff --git a/variables.asm b/variables.asm index 9a16f35..7d09ef4 100644 --- a/variables.asm +++ b/variables.asm @@ -348,8 +348,8 @@ AngleTable ;Angle of the barrel of each tank during the round .DS [MaxPlayers] NewAngle ; used in AI .DS 1 -previousBarrelAngle - .DS [MaxPlayers] +;previousBarrelAngle +; .DS [MaxPlayers] EndOfTheBarrelX .ds 2 EndOfTheBarrelY diff --git a/weapons.asm b/weapons.asm index 9a06391..9abbf98 100644 --- a/weapons.asm +++ b/weapons.asm @@ -1139,6 +1139,7 @@ ToHighFill ;first, get current parameters (angle+force) ;for an active tank and display them ;(these values are taken from the previous round) + mva #0 Erase ldx TankNr @@ -1331,15 +1332,14 @@ CTRLPressedDown pressedRight ldx TankNr - lda AngleTable,x - sta previousBarrelAngle,x lda pressTimer spl:mva #0 pressTimer ; if >128 then reset to 0 cmp #25 ; 1/2s bcs CTRLPressedRight mva #sfx_set_power_2 sfx_effect - + mva #1 Erase + jsr DrawTankNr.BarrelChange dec AngleTable,x lda AngleTable,x cmp #255 ; -1 @@ -1350,9 +1350,9 @@ pressedRight CTRLPressedRight ldx TankNr - lda AngleTable,x - sta previousBarrelAngle,x mva #sfx_set_power_2 sfx_effect + mva #1 Erase + jsr DrawTankNr.BarrelChange lda AngleTable,x sec sbc #4 @@ -1366,14 +1366,14 @@ CTRLPressedRight pressedLeft ldx TankNr - lda AngleTable,x - sta previousBarrelAngle,x lda pressTimer spl:mva #0 pressTimer ; if >128 then reset to 0 cmp #25 ; 1/2s bcs CTRLPressedLeft mva #sfx_set_power_2 sfx_effect + mva #1 Erase + jsr DrawTankNr.BarrelChange INC AngleTable,x lda AngleTable,x cmp #180 @@ -1384,9 +1384,9 @@ pressedLeft CTRLPressedLeft ldx TankNr - lda AngleTable,x - sta previousBarrelAngle,x mva #sfx_set_power_2 sfx_effect + mva #1 Erase + jsr DrawTankNr.BarrelChange lda AngleTable,x clc adc #4