multiple texts improved, tabs elliminated

This commit is contained in:
2023-05-19 23:16:49 -04:00
parent 8486645bc8
commit d0e1dc6f18
23 changed files with 4918 additions and 4928 deletions
+48 -64
View File
@@ -58,7 +58,6 @@
jsr drawtanks ;finally draw tanks jsr drawtanks ;finally draw tanks
pla pla
sta NumberOfPlayers sta NumberOfPlayers
; --------
mva #0 OptionsY mva #0 OptionsY
@@ -122,6 +121,7 @@ OptionsNoReturn
OptionsNoTab OptionsNoTab
jmp OptionsMainLoop jmp OptionsMainLoop
.endp .endp
.proc SelectNextGradient .proc SelectNextGradient
lda OptionsY ; if "Wind" option selected lda OptionsY ; if "Wind" option selected
cmp #$03 cmp #$03
@@ -144,6 +144,7 @@ NoGradientLoop
sta GradientColors+1 sta GradientColors+1
rts rts
.endp .endp
;-------- ;--------
; inversing selected option (cursor) ; inversing selected option (cursor)
;-------- ;--------
@@ -154,7 +155,7 @@ optionWidth = 6
nameWidth = 10 nameWidth = 10
mwa #OptionsHere temp ; offset of the first option=11 mwa #OptionsHere temp ; offset of the first option=11
mva #0 YPos ;option number pointer mva #0 YPos ;option number pointer
mva #0 Xpos ;X position in the menu sta Xpos ;X position in the menu
tay ; Y is zero here... tay ; Y is zero here...
OptionsSetMainLoop OptionsSetMainLoop
ldx YPos ; Y position in the menu ldx YPos ; Y position in the menu
@@ -204,9 +205,10 @@ invertme
rts rts
.endp .endp
.proc CallPurchaseForEveryTank
;------------------------------------------- ;-------------------------------------------
; call of the purchase (and activate) screens for each tank ; call of the purchase (and activate) screens for each tank
.proc CallPurchaseForEveryTank ;-------------------------------------------
mva #0 TankNr mva #0 TankNr
sta isInventory sta isInventory
@@ -346,7 +348,7 @@ AfterPurchase
cmp IndexesOfWeaponsL1,y cmp IndexesOfWeaponsL1,y
beq ?weaponfound beq ?weaponfound
iny iny
cpy #(last_offensive_____ - first_offensive____)+1 ; maxOffensiveWeapons cpy #(last_offensive - first_offensive )+1 ; maxOffensiveWeapons
bne @- bne @-
; not found apparently? ; not found apparently?
; TODO: check border case (the last weapon) ; TODO: check border case (the last weapon)
@@ -481,7 +483,7 @@ DeffensiveSelected
jmp ChoosingItemForPurchase jmp ChoosingItemForPurchase
.endp .endp
;
;-------------------------------------------------- ;--------------------------------------------------
.proc CreateList .proc CreateList
;-------------------------------------------------- ;--------------------------------------------------
@@ -637,7 +639,7 @@ notInventory
NotTheSameAsLastTime NotTheSameAsLastTime
; increase appropriate counter ; increase appropriate counter
txa txa
cpx #last_offensive_____+1 cpx #last_offensive +1
bcs DefenceList bcs DefenceList
ldy HowManyOnTheListOff ldy HowManyOnTheListOff
sta IndexesOfWeaponsL1,y sta IndexesOfWeaponsL1,y
@@ -655,14 +657,14 @@ NoWeapon
; next weapon. If no more weapons then finish! ; next weapon. If no more weapons then finish!
inx inx
cpx #last_offensive_____+1 cpx #last_offensive +1
bne NoDefense bne NoDefense
; if we got to the defense weapons, ; if we got to the defense weapons,
; we switch address to the second table. ; we switch address to the second table.
mwa #ListOfDefensiveWeapons xbyte mwa #ListOfDefensiveWeapons xbyte
NoDefense NoDefense
cpx #last_defensive_____+1 cpx #last_defensive +1
jne CreateList jne CreateList
@@ -775,7 +777,7 @@ positiveMoney
; but if we purchasing "Buy me!" then we must draw the winning weapon. ; but if we purchasing "Buy me!" then we must draw the winning weapon.
cpy #ind_Buy_me_________ cpy #ind_Buy_me
bne NoSuprise bne NoSuprise
Suprise ; get a random weapon Suprise ; get a random weapon
@@ -783,13 +785,13 @@ Suprise ; get a random weapon
cmp #51 ; defensive weapons are less likely because they are more expensive - probability 255:51 (5:1) cmp #51 ; defensive weapons are less likely because they are more expensive - probability 255:51 (5:1)
bcc GetRandomDefensive bcc GetRandomDefensive
GetRandomOffensive GetRandomOffensive
randomize ind_Missile________ last_offensive_____ randomize ind_Missile last_offensive
;cmp #ind_Buy_me_________ ; buy me do not buy buy me :) ;cmp #ind_Buy_me ; buy me do not buy buy me :)
;beq GetRandomOffensive ;beq GetRandomOffensive
tay tay
bne NoSuprise ; Y always <> 0 bne NoSuprise ; Y always <> 0
GetRandomDefensive GetRandomDefensive
randomize ind_Battery________ last_defensive_____ randomize ind_Battery last_defensive
tay tay
; lda WeaponUnits,y ; check if weapon exist ; lda WeaponUnits,y ; check if weapon exist
; beq GetRandomDefensive ; beq GetRandomDefensive
@@ -828,7 +830,7 @@ invSelectDef
lda IndexesOfWeaponsL2,y lda IndexesOfWeaponsL2,y
tay tay
ldx tankNr ldx tankNr
cmp #ind_Battery________ cmp #ind_Battery
bne NotBattery bne NotBattery
; if activate battery, we do it differently ; if activate battery, we do it differently
mva #sfx_battery sfx_effect mva #sfx_battery sfx_effect
@@ -838,38 +840,38 @@ invSelectDef
ply ply
jmp DecreaseDefensive ; bypass activation jmp DecreaseDefensive ; bypass activation
NotBattery NotBattery
cmp #ind_Auto_Defense___ cmp #ind_Auto_Defense
bne NoAutoDefense bne NoAutoDefense
; Auto Defense - do it like battery ; Auto Defense - do it like battery
mva #sfx_auto_defense sfx_effect mva #sfx_auto_defense sfx_effect
mva #$A1 AutoDefenseFlag,x ; this is "A" in inverse - for status line :) mva #$A1 AutoDefenseFlag,x ; this is "A" in inverse - for status line :)
jmp DecreaseDefensive ; bypass activation jmp DecreaseDefensive ; bypass activation
NoAutoDefense NoAutoDefense
cmp #ind_Lazy_Boy_______ cmp #ind_Lazy_Boy
bne NoLazyBoy bne NoLazyBoy
; Lazy Boy - do it like battery ; Lazy Boy - do it like battery
mva #%01000000 LazyFlag mva #%01000000 LazyFlag
jmp DecreaseDefensive ; bypass activation jmp DecreaseDefensive ; bypass activation
NoLazyBoy NoLazyBoy
cmp #ind_Lazy_Darwin____ cmp #ind_Lazy_Darwin
bne NoLazyDarwin bne NoLazyDarwin
; Lazy Darwin - do it like battery ; Lazy Darwin - do it like battery
mva #%11000000 LazyFlag mva #%11000000 LazyFlag
jmp DecreaseDefensive ; bypass activation jmp DecreaseDefensive ; bypass activation
NoLazyDarwin NoLazyDarwin
cmp #ind_Spy_Hard_______ cmp #ind_Spy_Hard
bne NotSpy bne NotSpy
mva #$ff SpyHardFlag mva #$ff SpyHardFlag
jmp DecreaseDefensive ; bypass activation jmp DecreaseDefensive ; bypass activation
NotSpy NotSpy
cmp #ind_Long_Barrel____ cmp #ind_Long_Barrel
bne NotBarrel bne NotBarrel
; if activate long barrel, we do it differently too ; if activate long barrel, we do it differently too
mva #sfx_long_barrel sfx_effect mva #sfx_long_barrel sfx_effect
mva #LongBarrel BarrelLength,x mva #LongBarrel BarrelLength,x
bne DecreaseDefensive ; bypass activation bne DecreaseDefensive ; bypass activation
NotBarrel NotBarrel
cmp #ind_White_Flag_____ cmp #ind_White_Flag
bne NotWhiteFlag bne NotWhiteFlag
cmp ActiveDefenceWeapon,x cmp ActiveDefenceWeapon,x
bne NoDeactivateWhiteFlag bne NoDeactivateWhiteFlag
@@ -898,11 +900,12 @@ DecreaseDefensive
DefActivationEnd DefActivationEnd
jmp WaitForKeyRelease ; rts jmp WaitForKeyRelease ; rts
.endp .endp
; -----------------------------------------------------
;--------------------------------------------------
.proc calcPosDefensive .proc calcPosDefensive
; calculate positionOnTheList from the activeWeapon (defensives) ; calculate positionOnTheList from the activeWeapon (defensives)
;--------------------------------------------------
ldx tankNr ldx tankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
beq ?noWeaponActive beq ?noWeaponActive
@@ -911,7 +914,7 @@ DefActivationEnd
cmp IndexesOfWeaponsL2,y cmp IndexesOfWeaponsL2,y
beq ?weaponfound beq ?weaponfound
iny iny
cpy #(last_defensive_____ - first_defensive____)+1 ; maxDefensiveWeapon cpy #(last_defensive - first_defensive )+1 ; maxDefensiveWeapon
bne @- bne @-
; not found apparently? ; not found apparently?
; TODO: check border case (the last weapon) ; TODO: check border case (the last weapon)
@@ -934,7 +937,7 @@ DefActivationEnd
cmp IndexesOfWeaponsL1,y cmp IndexesOfWeaponsL1,y
beq ?weaponfound beq ?weaponfound
iny iny
cpy #(last_offensive_____ - first_offensive____) ; maxOffensiveWeapon cpy #(last_offensive - first_offensive ) ; maxOffensiveWeapon
bne @- bne @-
; not found apparently? ; not found apparently?
; TODO: check border case (the last weapon) ; TODO: check border case (the last weapon)
@@ -946,11 +949,13 @@ DefActivationEnd
sty positionOnTheList sty positionOnTheList
rts rts
.endp .endp
; -----------------------------------------------------
;--------------------------------------------------
.proc PutLitteChar .proc PutLitteChar
;--------------------------------------------------
; first let's clear both lists from little chars ; first let's clear both lists from little chars
mwa #ListOfWeapons xbyte mwa #ListOfWeapons xbyte
ldx #last_defensive_____ ; there are xx lines total ldx #last_defensive ; there are xx lines total
ldy #$00 ldy #$00
EraseLoop EraseLoop
tya ; lda #$00 tya ; lda #$00
@@ -967,10 +972,10 @@ EraseLoop
mwa #ListOfDefensiveWeapons xbyte mwa #ListOfDefensiveWeapons xbyte
ldx PositionOnTheList ldx PositionOnTheList
beq SelectList2 ; if there is 0 we add nothing beq SelectList2 ; if there is 0 we add nothing
AddLoop2 @
adw xbyte #32 ; narrow screen adw xbyte #32 ; narrow screen
dex dex
bne AddLoop2 bne @-
SelectList2 SelectList2
lda #$7f ; little char (tab) - this is the pointer lda #$7f ; little char (tab) - this is the pointer
sta (xbyte),y sta (xbyte),y
@@ -988,10 +993,10 @@ CharToList1
mwa #ListOfWeapons xbyte mwa #ListOfWeapons xbyte
ldx PositionOnTheList ldx PositionOnTheList
beq SelectList1 ; if there is 0 we add nothing beq SelectList1 ; if there is 0 we add nothing
AddLoop1 @
adw xbyte #32 ; narrow screen adw xbyte #32 ; narrow screen
dex dex
bne AddLoop1 bne @-
SelectList1 SelectList1
lda #$7f ; pointer = little char = (tab) lda #$7f ; pointer = little char = (tab)
sta (xbyte),y sta (xbyte),y
@@ -999,10 +1004,10 @@ SelectList1
mwa #ListOfWeapons xbyte mwa #ListOfWeapons xbyte
ldx OffsetDL1 ldx OffsetDL1
beq SetWindowList1 ; if zero then add nothing beq SetWindowList1 ; if zero then add nothing
LoopWindow1 @
adw xbyte #32 ; narrow screen adw xbyte #32 ; narrow screen
dex dex
bne LoopWindow1 bne @-
SetWindowList1 SetWindowList1
mwa xbyte WeaponsListDL ; and we change Display List mwa xbyte WeaponsListDL ; and we change Display List
@@ -1075,13 +1080,6 @@ NoArrowDown
lda digits+1,x lda digits+1,x
sta NameScreen2+7 sta NameScreen2+7
; clear tank name editor field - not necessary
; ldx #8
; lda #0
;@ sta NameAdr,x
; dex
; bpl @-
; copy existing name and place cursor at end ; copy existing name and place cursor at end
lda TankNr lda TankNr
:3 asl :3 asl
@@ -1089,7 +1087,6 @@ NoArrowDown
ldy #0 ldy #0
@ lda TanksNames,x @ lda TanksNames,x
; beq endOfTankName
sta NameAdr,y sta NameAdr,y
inx inx
iny iny
@@ -1104,9 +1101,8 @@ endOfTankName
bpl @- bpl @-
LastNameChar LastNameChar
cpy #7 cpy #7
beq @+ seq:iny
iny sty PositionInName
@ sty PositionInName
CheckKeys CheckKeys
jsr HighlightLevel ; setting choosen level of the opponent (Moron, etc) jsr HighlightLevel ; setting choosen level of the opponent (Moron, etc)
@@ -1140,9 +1136,8 @@ YesLetter
sta NameAdr,x sta NameAdr,x
inx inx
cpx #$08 ; is there 8 characters? cpx #$08 ; is there 8 characters?
bne @+ sne:dex
dex stx PositionInName ; if not, we store
@ stx PositionInName ; if not, we store
jmp CheckKeys jmp CheckKeys
.ENDIF .ENDIF
CheckFurtherX01 ; here we check Tab, Return and Del CheckFurtherX01 ; here we check Tab, Return and Del
@@ -1194,34 +1189,23 @@ ChangeOfJoyUp
ChangeOfLevelUp ; change difficulty level of computer opponent ChangeOfLevelUp ; change difficulty level of computer opponent
inc:lda DifficultyLevel inc:lda DifficultyLevel
cmp #9 ; 9 levels are possible cmp #9 ; 9 levels are possible
bne DoNotLoopLevelUp sne:mva #$0 DifficultyLevel ; DoNotLoopLevelUp
mva #$0 DifficultyLevel
DoNotLoopLevelUp
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevelDown ChangeOfLevelDown
dec:lda DifficultyLevel dec:lda DifficultyLevel
bpl DoNotLoopLevelDown spl:mva #$8 DifficultyLevel ; DoNotLoopLevelDown
mva #$8 DifficultyLevel
DoNotLoopLevelDown
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevel3Up ChangeOfLevel3Up
adb DifficultyLevel #3 adb DifficultyLevel #3
cmp #9 cmp #9
bcc DoNotLoopLevel3Up scc:sbb DifficultyLevel #9 ; DoNotLoopLevel3Up
sbb DifficultyLevel #9
DoNotLoopLevel3Up
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevel3Down ChangeOfLevel3Down
sbb DifficultyLevel #3 sbb DifficultyLevel #3
bpl @+ spl:adb DifficultyLevel #9
adb DifficultyLevel #9
@
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfShapeUp ChangeOfShapeUp
@@ -1280,23 +1264,23 @@ NotRobot
beq MakeDefaultName beq MakeDefaultName
ldy #0 ldy #0
nextchar04 @
lda NameAdr,y lda NameAdr,y
and #$7f ; remove inverse (Cursor) and #$7f ; remove inverse (Cursor)
sta tanksnames,x sta tanksnames,x
inx inx
iny iny
cpy #$08 cpy #$08
bne nextchar04 bne @-
rts rts
MakeDefaultName MakeDefaultName
nextchar05 @
lda tanksnamesDefault,x lda tanksnamesDefault,x
sta tanksnames,x sta tanksnames,x
inx inx
iny iny
cpy #$08 cpy #$08
bne nextchar05 bne @-
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
+19 -19
View File
@@ -83,7 +83,7 @@ AIRoutines
mwa #800 RandBoundaryHigh mwa #800 RandBoundaryHigh
jsr RandomizeForce jsr RandomizeForce
; choose the best weapon ; choose the best weapon
ldy #ind_Buy_me_________+1 ; if the cheat is active it will fire the BFG :) ldy #ind_Buy_me +1 ; if the cheat is active it will fire the BFG :)
jmp ChooseBestOffensive.NotFromAll jmp ChooseBestOffensive.NotFromAll
;rts ;rts
.endp .endp
@@ -220,7 +220,7 @@ AngleTable ; 16 bytes ;ba w $348b L$3350
bcs EnoughEnergy bcs EnoughEnergy
; lower than 5 units - white flag ; lower than 5 units - white flag
jsr ClearTankNr ; we must hide tank to erase shields (issue #138) jsr ClearTankNr ; we must hide tank to erase shields (issue #138)
lda #ind_White_Flag_____ lda #ind_White_Flag
sta ActiveDefenceWeapon,x sta ActiveDefenceWeapon,x
jsr PutTankNr ; and draw tank witch Flag jsr PutTankNr ; and draw tank witch Flag
EnoughEnergy EnoughEnergy
@@ -233,7 +233,7 @@ EnoughEnergy
cmp #30 cmp #30
bcs EnoughEnergy bcs EnoughEnergy
; lower than 30 units - check battery ; lower than 30 units - check battery
ldy #ind_Battery________ ldy #ind_Battery
lda (temp),y ; has address of TanksWeaponsTable lda (temp),y ; has address of TanksWeaponsTable
beq NoBatteries beq NoBatteries
; we have batteries - use one ; we have batteries - use one
@@ -260,7 +260,7 @@ NoBatteries
ldy #last_real_defensive+1 ;the last defensive weapon ldy #last_real_defensive+1 ;the last defensive weapon
@ @
dey dey
cpy #ind_Hovercraft_____ ;first defensive weapon (White Flag, Battery and Hovercraft - never use) cpy #ind_Hovercraft ;first defensive weapon (White Flag, Battery and Hovercraft - never use)
beq NoUseDefensive beq NoUseDefensive
lda (temp),y ; has address of TanksWeaponsTable lda (temp),y ; has address of TanksWeaponsTable
beq @- beq @-
@@ -295,7 +295,7 @@ DefensiveInUse
ldy #last_real_defensive+1 ;the last defensive weapon ldy #last_real_defensive+1 ;the last defensive weapon
@ @
dey dey
cpy #ind_Hovercraft_____ ;first defensive weapon (White Flag, Battery and Hovercraft - never use) cpy #ind_Hovercraft ;first defensive weapon (White Flag, Battery and Hovercraft - never use)
beq NoUseDefensive beq NoUseDefensive
lda (temp),y ; has address of TanksWeaponsTable lda (temp),y ; has address of TanksWeaponsTable
beq @- beq @-
@@ -339,7 +339,7 @@ NotNegativeEnergy
jsr GetDistance jsr GetDistance
cmp #6 ; 24/4 cmp #6 ; 24/4
bcs HighForce bcs HighForce
lda #ind_Baby_Missile___ lda #ind_Baby_Missile
sta ActiveWeapon,x sta ActiveWeapon,x
HighForce HighForce
rts rts
@@ -371,7 +371,7 @@ NotNegativeEnergy
jsr GetDistance jsr GetDistance
cmp #6 ; 24/4 cmp #6 ; 24/4
bcs HighForce bcs HighForce
lda #ind_Baby_Missile___ lda #ind_Baby_Missile
sta ActiveWeapon,x sta ActiveWeapon,x
HighForce HighForce
rts rts
@@ -389,7 +389,7 @@ HighForce
jsr TakeAim ; direction still in A (0 - left, >0 - right) jsr TakeAim ; direction still in A (0 - left, >0 - right)
; choose the best weapon ; choose the best weapon
ldy #ind_Nuke___________+1 ldy #ind_Nuke +1
jsr ChooseBestOffensive.NotFromAll jsr ChooseBestOffensive.NotFromAll
lda Force lda Force
@@ -400,7 +400,7 @@ HighForce
jsr GetDistance jsr GetDistance
cmp #8 ;32/4 cmp #8 ;32/4
bcs HighForce bcs HighForce
lda #ind_Baby_Missile___ lda #ind_Baby_Missile
sta ActiveWeapon,x sta ActiveWeapon,x
HighForce HighForce
rts rts
@@ -556,7 +556,7 @@ RepeatAim
adc temp2 adc temp2
sta NewAngle sta NewAngle
; set virtual weapon :) ; set virtual weapon :)
lda #ind_Baby_Missile___ lda #ind_Baby_Missile
sta ActiveWeapon,x sta ActiveWeapon,x
; now we have initial valuses ; now we have initial valuses
mva #%11000000 TestFlightFlag mva #%11000000 TestFlightFlag
@@ -873,7 +873,7 @@ SorryNoPurchase
; mva #2 tempXroller; number of offensive purchases to perform ; mva #2 tempXroller; number of offensive purchases to perform
ldx TankNr ldx TankNr
@ @
randomize ind_Battery________ ind_StrongParachute randomize ind_Battery ind_StrongParachute
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
; dec tempXroller ; dec tempXroller
; bne @- ; bne @-
@@ -882,7 +882,7 @@ SorryNoPurchase
mva #4 tempXroller; number of offensive purchases to perform mva #4 tempXroller; number of offensive purchases to perform
;ldx TankNr ;ldx TankNr
@ @
randomize ind_Missile________ ind_Heavy_Roller___ randomize ind_Missile ind_Heavy_Roller
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
dec tempXroller dec tempXroller
bne @- bne @-
@@ -895,7 +895,7 @@ SorryNoPurchase
; mva #2 tempXroller; number of offensive purchases to perform ; mva #2 tempXroller; number of offensive purchases to perform
ldx TankNr ldx TankNr
@ @
randomize ind_Battery________ ind_Bouncy_Castle__ randomize ind_Battery ind_Bouncy_Castle
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
dec tempXroller dec tempXroller
; bpl @- ; bpl @-
@@ -904,7 +904,7 @@ SorryNoPurchase
mva #6 tempXroller; number of purchases to perform mva #6 tempXroller; number of purchases to perform
;ldx TankNr ;ldx TankNr
@ @
randomize ind_Missile________ ind_Dirt_Charge____ randomize ind_Missile ind_Dirt_Charge
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
dec tempXroller dec tempXroller
bne @- bne @-
@@ -922,7 +922,7 @@ SorryNoPurchase
; first try to buy defensives ; first try to buy defensives
; mva #1 tempXroller; number of defensive purchases to perform ; mva #1 tempXroller; number of defensive purchases to perform
@ @
randomize ind_Battery________ ind_Bouncy_Castle__ randomize ind_Battery ind_Bouncy_Castle
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
dec tempXroller dec tempXroller
bpl @- bpl @-
@@ -932,7 +932,7 @@ SorryNoPurchase
asl ;*2 asl ;*2
sta tempXroller ; perform this many purchase attempts sta tempXroller ; perform this many purchase attempts
@ @
randomize ind_Missile________ ind_Dirt_Charge____ randomize ind_Missile ind_Dirt_Charge
jsr TryToPurchaseOnePiece jsr TryToPurchaseOnePiece
dec tempXroller dec tempXroller
bpl @- bpl @-
@@ -950,7 +950,7 @@ SorryNoPurchase
; first try to buy defensives ; first try to buy defensives
; mva #1 tempXroller; number of defensive purchases to perform ; mva #1 tempXroller; number of defensive purchases to perform
@ @
randomize ind_Battery________ ind_Bouncy_Castle__ randomize ind_Battery ind_Bouncy_Castle
jsr TryToPurchaseOnePiece2 jsr TryToPurchaseOnePiece2
dec tempXroller dec tempXroller
bpl @- bpl @-
@@ -960,7 +960,7 @@ SorryNoPurchase
:3 asl ;*8 :3 asl ;*8
sta tempXroller ; perform this many purchase attempts sta tempXroller ; perform this many purchase attempts
@ @
randomize first_offensive____ last_offensive_____ randomize first_offensive last_offensive
jsr TryToPurchaseOnePiece2 jsr TryToPurchaseOnePiece2
dec tempXroller dec tempXroller
bpl @- bpl @-
@@ -972,7 +972,7 @@ SorryNoPurchase
; choose the best weapon ; choose the best weapon
; X - TankNr ; X - TankNr
;---------------------------------------------- ;----------------------------------------------
ldy #ind_Dirt_Charge____+1 ;the last weapon to choose +1 (not BFG or Laser :) ) ldy #ind_Dirt_Charge +1 ;the last weapon to choose +1 (not BFG or Laser :) )
NotFromAll NotFromAll
; Y - the last offensive weapon to use + 1 ; Y - the last offensive weapon to use + 1
lda TanksWeaponsTableL,x lda TanksWeaponsTableL,x
+213 -209
View File
@@ -59,7 +59,12 @@ LineGameOver
seppukuText seppukuText
dta d"# SEPPUKU! #" dta d"# SEPPUKU! #"
areYouSureText areYouSureText
.IF target != 5200
dta d"# SURE? Y/N #" dta d"# SURE? Y/N #"
.ELSE
dta d"#END? Y-1/N-0#"
.ENDIF
lineClear lineClear
dta d" " dta d" "
@@ -222,113 +227,114 @@ SlideLeftTableLen = *-SlideLeftTable
TanksNamesDefault TanksNamesDefault
dta d"1st.Tank" dta d"1st.Tank"
dta d"2nd.Tank" dta d"2nd.Tank"
.REPT MaxPlayers-2, #+3 dta d"3rd.Tank"
dta d":1rd.Tank" .REPT MaxPlayers-3, #+4
dta d":1th.Tank"
.ENDR .ENDR
;------------------------------------------------- ;-------------------------------------------------
TankShapesTable .BYTE char_tank1___________ TankShapesTable .BYTE char_tank1
.BYTE char_tank2___________ .BYTE char_tank2
.BYTE char_tank3___________ .BYTE char_tank3
.BYTE char_tank4___________ .BYTE char_tank4
;------------------------------------------------- ;-------------------------------------------------
WeaponPriceH ; weapons prices (tables with prices of weapons) WeaponPriceH ; weapons prices (tables with prices of weapons)
.by >price_Baby_Missile___ .by >price_Baby_Missile
.by >price_Missile________ .by >price_Missile
.by >price_Baby_Nuke______ .by >price_Baby_Nuke
.by >price_Nuke___________ .by >price_Nuke
.by >price_LeapFrog_______ .by >price_LeapFrog
.by >price_Funky_Bomb_____ .by >price_Funky_Bomb
.by >price_MIRV___________ .by >price_MIRV
.by >price_Death_s_Head___ .by >price_Death_s_Head
.by >price_Napalm_________ .by >price_Napalm
.by >price_Hot_Napalm_____ .by >price_Hot_Napalm
.by >price_Tracer_________ .by >price_Tracer
.by >price_Smoke_Tracer___ .by >price_Smoke_Tracer
.by >price_Baby_Roller____ .by >price_Baby_Roller
.by >price_Roller_________ .by >price_Roller
.by >price_Heavy_Roller___ .by >price_Heavy_Roller
.by >price_Riot_Charge____ .by >price_Riot_Charge
.by >price_Riot_Blast_____ .by >price_Riot_Blast
.by >price_Riot_Bomb______ .by >price_Riot_Bomb
.by >price_Heavy_Riot_Bomb .by >price_Heavy_Riot_Bomb
.by >price_Baby_Digger____ .by >price_Baby_Digger
.by >price_Digger_________ .by >price_Digger
.by >price_Heavy_Digger___ .by >price_Heavy_Digger
.by >price_Baby_Sandhog___ .by >price_Baby_Sandhog
.by >price_Sandhog________ .by >price_Sandhog
.by >price_Heavy_Sandhog__ .by >price_Heavy_Sandhog
.by >price_Dirt_Clod______ .by >price_Dirt_Clod
.by >price_Dirt_Ball______ .by >price_Dirt_Ball
.by >price_Ton_of_Dirt____ .by >price_Ton_of_Dirt
.by >price_Liquid_Dirt____ .by >price_Liquid_Dirt
.by >price_Dirt_Charge____ .by >price_Dirt_Charge
.by >price_Buy_me_________ .by >price_Buy_me
.by >price_Laser__________ .by >price_Laser
.by >price_White_Flag_____ .by >price_White_Flag
.by >price_Battery________ .by >price_Battery
.by >price_Hovercraft_____ .by >price_Hovercraft
.by >price_Parachute______ .by >price_Parachute
.by >price_StrongParachute .by >price_StrongParachute
.by >price_Mag_Deflector__ .by >price_Mag_Deflector
.by >price_Shield_________ .by >price_Shield
.by >price_Heavy_Shield___ .by >price_Heavy_Shield
.by >price_Force_Shield___ .by >price_Force_Shield
.by >price_Bouncy_Castle__ .by >price_Bouncy_Castle
.by >price_Long_Barrel____ .by >price_Long_Barrel
.by >price_Nuclear_Winter_ .by >price_Nuclear_Winter_
.by >price_Lazy_Boy_______ .by >price_Lazy_Boy
.by >price_Lazy_Darwin____ .by >price_Lazy_Darwin
.by >price_Auto_Defense___ .by >price_Auto_Defense
.by >price_Spy_Hard_______ .by >price_Spy_Hard
WeaponPriceL WeaponPriceL
.by <price_Baby_Missile___ .by <price_Baby_Missile
.by <price_Missile________ .by <price_Missile
.by <price_Baby_Nuke______ .by <price_Baby_Nuke
.by <price_Nuke___________ .by <price_Nuke
.by <price_LeapFrog_______ .by <price_LeapFrog
.by <price_Funky_Bomb_____ .by <price_Funky_Bomb
.by <price_MIRV___________ .by <price_MIRV
.by <price_Death_s_Head___ .by <price_Death_s_Head
.by <price_Napalm_________ .by <price_Napalm
.by <price_Hot_Napalm_____ .by <price_Hot_Napalm
.by <price_Tracer_________ .by <price_Tracer
.by <price_Smoke_Tracer___ .by <price_Smoke_Tracer
.by <price_Baby_Roller____ .by <price_Baby_Roller
.by <price_Roller_________ .by <price_Roller
.by <price_Heavy_Roller___ .by <price_Heavy_Roller
.by <price_Riot_Charge____ .by <price_Riot_Charge
.by <price_Riot_Blast_____ .by <price_Riot_Blast
.by <price_Riot_Bomb______ .by <price_Riot_Bomb
.by <price_Heavy_Riot_Bomb .by <price_Heavy_Riot_Bomb
.by <price_Baby_Digger____ .by <price_Baby_Digger
.by <price_Digger_________ .by <price_Digger
.by <price_Heavy_Digger___ .by <price_Heavy_Digger
.by <price_Baby_Sandhog___ .by <price_Baby_Sandhog
.by <price_Sandhog________ .by <price_Sandhog
.by <price_Heavy_Sandhog__ .by <price_Heavy_Sandhog
.by <price_Dirt_Clod______ .by <price_Dirt_Clod
.by <price_Dirt_Ball______ .by <price_Dirt_Ball
.by <price_Ton_of_Dirt____ .by <price_Ton_of_Dirt
.by <price_Liquid_Dirt____ .by <price_Liquid_Dirt
.by <price_Dirt_Charge____ .by <price_Dirt_Charge
.by <price_Buy_me_________ .by <price_Buy_me
.by <price_Laser__________ .by <price_Laser
.by <price_White_Flag_____ .by <price_White_Flag
.by <price_Battery________ .by <price_Battery
.by <price_Hovercraft_____ .by <price_Hovercraft
.by <price_Parachute______ .by <price_Parachute
.by <price_StrongParachute .by <price_StrongParachute
.by <price_Mag_Deflector__ .by <price_Mag_Deflector
.by <price_Shield_________ .by <price_Shield
.by <price_Heavy_Shield___ .by <price_Heavy_Shield
.by <price_Force_Shield___ .by <price_Force_Shield
.by <price_Bouncy_Castle__ .by <price_Bouncy_Castle
.by <price_Long_Barrel____ .by <price_Long_Barrel
.by <price_Nuclear_Winter_ .by <price_Nuclear_Winter_
.by <price_Lazy_Boy_______ .by <price_Lazy_Boy
.by <price_Lazy_Darwin____ .by <price_Lazy_Darwin
.by <price_Auto_Defense___ .by <price_Auto_Defense
.by <price_Spy_Hard_______ .by <price_Spy_Hard
;------------------------------------------------- ;-------------------------------------------------
; how many units (bulletd) of a given weapon we get for a given price ; how many units (bulletd) of a given weapon we get for a given price
@@ -337,54 +343,54 @@ WeaponPriceL
; is not present in the game. ; is not present in the game.
; This is the slot for adding new weapons. ; This is the slot for adding new weapons.
WeaponUnits WeaponUnits
.by 10 ;Baby_Missile___;_00 .by 10 ;Baby_Missile ;_00
.by 5 ;Missile________;_01 .by 5 ;Missile ;_01
.by 2 ;Baby_Nuke______;_02 .by 2 ;Baby_Nuke ;_02
.by 1 ;Nuke___________;_03 .by 1 ;Nuke ;_03
.by 2 ;LeapFrog_______;_04 .by 2 ;LeapFrog ;_04
.by 3 ;Funky_Bomb_____;_05 .by 3 ;Funky_Bomb ;_05
.by 2 ;MIRV___________;_06 .by 2 ;MIRV ;_06
.by 1 ;Death_s_Head___;_07 .by 1 ;Death_s_Head ;_07
.by 4 ;Napalm_________;_08 .by 4 ;Napalm ;_08
.by 2 ;Hot_Napalm_____;_09 .by 2 ;Hot_Napalm ;_09
.by 20 ;Tracer_________;_10 .by 20 ;Tracer ;_10
.by 10 ;Smoke_Tracer___;_11 .by 10 ;Smoke_Tracer ;_11
.by 5 ;Baby_Roller____;_12 .by 5 ;Baby_Roller ;_12
.by 3 ;Roller_________;_13 .by 3 ;Roller ;_13
.by 2 ;Heavy_Roller___;_14 .by 2 ;Heavy_Roller ;_14
.by 5 ;Riot_Charge____;_15 .by 5 ;Riot_Charge ;_15
.by 2 ;Riot_Blast_____;_16 .by 2 ;Riot_Blast ;_16
.by 5 ;Riot_Bomb______;_17 .by 5 ;Riot_Bomb ;_17
.by 2 ;Heavy_Riot_Bomb;_18 .by 2 ;Heavy_Riot_Bomb;_18
.by 10 ;Baby_Digger____;_19 .by 10 ;Baby_Digger ;_19
.by 5 ;Digger_________;_20 .by 5 ;Digger ;_20
.by 2 ;Heavy_Digger___;_21 .by 2 ;Heavy_Digger ;_21
.by 10 ;Baby_Sandhog___;_22 .by 10 ;Baby_Sandhog ;_22
.by 5 ;Sandhog________;_23 .by 5 ;Sandhog ;_23
.by 2 ;Heavy_Sandhog__;_24 .by 2 ;Heavy_Sandhog ;_24
.by 5 ;Dirt_Clod______;_25 .by 5 ;Dirt_Clod ;_25
.by 3 ;Dirt_Ball______;_26 .by 3 ;Dirt_Ball ;_26
.by 1 ;Ton_of_Dirt____;_27 .by 1 ;Ton_of_Dirt ;_27
.by 4 ;Liquid_Dirt____;_28 .by 4 ;Liquid_Dirt ;_28
.by 2 ;Dirt_Charge____;_29 .by 2 ;Dirt_Charge ;_29
.by 1 ;Buy_me_________;_30 .by 1 ;Buy_me ;_30
.by 5 ;Laser__________;_31 .by 5 ;Laser ;_31
.by 1 ;White_Flag_____;_32 .by 1 ;White_Flag ;_32
.by 3 ;Battery________;_33 .by 3 ;Battery ;_33
.by 2 ;Floating_Tank__;_34 .by 2 ;Floating_Tank ;_34
.by 3 ;Parachute______;_35 .by 3 ;Parachute ;_35
.by 2 ;StrongParachute;_36 .by 2 ;StrongParachute;_36
.by 2 ;Mag_Deflector__;_37 .by 2 ;Mag_Deflector ;_37
.by 3 ;Shield_________;_38 .by 3 ;Shield ;_38
.by 2 ;Heavy_Shield___;_39 .by 2 ;Heavy_Shield ;_39
.by 3 ;Force_Shield___;_40 .by 3 ;Force_Shield ;_40
.by 1 ;Auto_Defense___;_41 .by 1 ;Auto_Defense ;_41
.by 2 ;Long_Barrel____;_42 .by 2 ;Long_Barrel ;_42
.by 1 ;Nuclear_Winter_;_43 .by 1 ;Nuclear_Winter_;_43
.by 2 ;Lazy_Boy_______;_44 .by 2 ;Lazy_Boy ;_44
.by 2 ;Lazy_Darwin____;_45 .by 2 ;Lazy_Darwin ;_45
.by 2 ;Auto_Defense___;_46 .by 2 ;Auto_Defense ;_46
.by 4 ;Spy_Hard_______;_47 .by 4 ;Spy_Hard ;_47
PurchaseMeTable ;weapons good to be purchased by the robot PurchaseMeTable ;weapons good to be purchased by the robot
;the comment is an index in the tables ;the comment is an index in the tables
@@ -431,54 +437,54 @@ PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
;------------------------------------------------- ;-------------------------------------------------
; Screen codes of icons (chars) representing a given weapon ; Screen codes of icons (chars) representing a given weapon
WeaponSymbols WeaponSymbols
.by $40 ;ind_Baby_Missile___ ;_00 .by $40 ;ind_Baby_Missile ;_00
.by $41 ;ind_Missile________ ;_01 .by $41 ;ind_Missile ;_01
.by $42 ;ind_Baby_Nuke______ ;_02 .by $42 ;ind_Baby_Nuke ;_02
.by $43 ;ind_Nuke___________ ;_03 .by $43 ;ind_Nuke ;_03
.by $44 ;ind_LeapFrog_______ ;_04 .by $44 ;ind_LeapFrog ;_04
.by $45 ;ind_Funky_Bomb_____ ;_05 .by $45 ;ind_Funky_Bomb ;_05
.by $46 ;ind_MIRV___________ ;_06 .by $46 ;ind_MIRV ;_06
.by $47 ;ind_Death_s_Head___ ;_07 .by $47 ;ind_Death_s_Head ;_07
.by $48 ;ind_Napalm_________ ;_08 .by $48 ;ind_Napalm ;_08
.by $49 ;ind_Hot_Napalm_____ ;_09 .by $49 ;ind_Hot_Napalm ;_09
.by $4a ;ind_Tracer_________ ;_10 .by $4a ;ind_Tracer ;_10
.by $4b ;ind_Smoke_Tracer___ ;_11 .by $4b ;ind_Smoke_Tracer ;_11
.by $4c ;ind_Baby_Roller____ ;_12 .by $4c ;ind_Baby_Roller ;_12
.by $4d ;ind_Roller_________ ;_13 .by $4d ;ind_Roller ;_13
.by $4e ;ind_Heavy_Roller___ ;_14 .by $4e ;ind_Heavy_Roller ;_14
.by $4f ;ind_Riot_Charge____ ;_15 .by $4f ;ind_Riot_Charge ;_15
.by $50 ;ind_Riot_Blast_____ ;_16 .by $50 ;ind_Riot_Blast ;_16
.by $51 ;ind_Riot_Bomb______ ;_17 .by $51 ;ind_Riot_Bomb ;_17
.by $52 ;ind_Heavy_Riot_Bomb ;_18 .by $52 ;ind_Heavy_Riot_Bomb ;_18
.by $53 ;ind_Baby_Digger____ ;_19 .by $53 ;ind_Baby_Digger ;_19
.by $54 ;ind_Digger_________ ;_20 .by $54 ;ind_Digger ;_20
.by $55 ;ind_Heavy_Digger___ ;_21 .by $55 ;ind_Heavy_Digger ;_21
.by $56 ;ind_Baby_Sandhog___ ;_22 .by $56 ;ind_Baby_Sandhog ;_22
.by $57 ;ind_Sandhog________ ;_23 .by $57 ;ind_Sandhog ;_23
.by $58 ;ind_Heavy_Sandhog__ ;_24 .by $58 ;ind_Heavy_Sandhog ;_24
.by $59 ;ind_Dirt_Clod______ ;_25 .by $59 ;ind_Dirt_Clod ;_25
.by $5a ;ind_Dirt_Ball______ ;_26 .by $5a ;ind_Dirt_Ball ;_26
.by $5b ;ind_Ton_of_Dirt____ ;_27 .by $5b ;ind_Ton_of_Dirt ;_27
.by $60 ;ind_Liquid_Dirt____ ;_28 .by $60 ;ind_Liquid_Dirt ;_28
.by $7b ;ind_Dirt_Charge____ ;_29 .by $7b ;ind_Dirt_Charge ;_29
.by $1f ;ind_Buy_me_________ ;_30 .by $1f ;ind_Buy_me ;_30
.by $20 ;ind_Laser__________ ;_31 .by $20 ;ind_Laser ;_31
.by $5f ;ind_White_Flag_____ ;_32 .by $5f ;ind_White_Flag ;_32
.by $1c ;ind_Battery________ ;_33 .by $1c ;ind_Battery ;_33
.by $06 ;ind_Floating_Tank__ ;_34 .by $06 ;ind_Floating_Tank ;_34
.by $1b ;ind_Parachute______ ;_35 .by $1b ;ind_Parachute ;_35
.by $1b ;ind_StrongParachute ;_36 .by $1b ;ind_StrongParachute ;_36
.by $1e ;ind_Mag_Deflector__ ;_37 .by $1e ;ind_Mag_Deflector ;_37
.by $3b ;ind_Shield_________ ;_38 .by $3b ;ind_Shield ;_38
.by $3d ;ind_Heavy_Shield___ ;_39 .by $3d ;ind_Heavy_Shield ;_39
.by $3c ;ind_Force_Shield___ ;_40 .by $3c ;ind_Force_Shield ;_40
.by $3f ;ind_Bouncy_Castle__ ;_41 .by $3f ;ind_Bouncy_Castle ;_41
.by $1d ;ind_Long_Barrel____ ;_42 .by $1d ;ind_Long_Barrel ;_42
.by $7d ;ind_Nuclear_Winter_ ;_43 .by $7d ;ind_Nuclear_Winter_ ;_43
.by $02 ;ind_Lazy_Boy_______ ;_44 .by $02 ;ind_Lazy_Boy ;_44
.by $03 ;ind_Lazy_Darwin____ ;_45 .by $03 ;ind_Lazy_Darwin ;_45
.by $5e ;ind_Auto_Defense___ ;_46 .by $5e ;ind_Auto_Defense ;_46
.by $7c ;ind_Spy_Hard_______ ;_47 .by $7c ;ind_Spy_Hard ;_47
; Names of weapons (16 chars long) ; Names of weapons (16 chars long)
NamesOfWeapons ;the comment is an index in the tables NamesOfWeapons ;the comment is an index in the tables
@@ -532,7 +538,7 @@ NamesOfWeapons ;the comment is an index in the tables
dta d"Auto Defense " ; 46 dta d"Auto Defense " ; 46
dta d"Spy Hard " ; 47 dta d"Spy Hard " ; 47
DefensiveEnergy = *-(last_offensive_____ - first_offensive____ +1) ; to fake the table for ALL weapons DefensiveEnergy = *-(last_offensive - first_offensive +1) ; to fake the table for ALL weapons
.by 00 ; White Flag .by 00 ; White Flag
.by 00 ; Heat Guidance .by 00 ; Heat Guidance
.by 98 ; Let's go! .by 98 ; Let's go!
@@ -550,22 +556,22 @@ DefensiveEnergy = *-(last_offensive_____ - first_offensive____ +1) ; to fake th
.by 00 ; Auto Defense .by 00 ; Auto Defense
.by 00 ; Spy Hard .by 00 ; Spy Hard
weaponsOfDeath ; weapons used in tank death animations weaponsOfDeath ; weapons used in tank death animations
dta ind_Missile________ dta ind_Missile
dta ind_Baby_Nuke______ dta ind_Baby_Nuke
dta ind_Nuke___________ dta ind_Nuke
dta ind_Death_s_Head___ dta ind_Death_s_Head
dta ind_Hot_Napalm_____ ; why not? dta ind_Hot_Napalm ; why not?
dta ind_Riot_Bomb______ dta ind_Riot_Bomb
dta ind_Heavy_Riot_Bomb dta ind_Heavy_Riot_Bomb
dta ind_Baby_Digger____ dta ind_Baby_Digger
dta ind_Digger_________ dta ind_Digger
dta ind_Heavy_Digger___ dta ind_Heavy_Digger
dta ind_Baby_Sandhog___ dta ind_Baby_Sandhog
dta ind_Sandhog________ dta ind_Sandhog
dta ind_Heavy_Sandhog__ dta ind_Heavy_Sandhog
dta ind_Dirt_Clod______ dta ind_Dirt_Clod
dta ind_Dirt_Ball______ dta ind_Dirt_Ball
dta ind_Ton_of_Dirt____ dta ind_Ton_of_Dirt
weaponsOfDeathEnd weaponsOfDeathEnd
joyToKeyTable joyToKeyTable
.by $ff ;00 .by $ff ;00
@@ -586,7 +592,7 @@ joyToKeyTable
.by $ff ;0f .by $ff ;0f
;----------------------------------- ;-----------------------------------
keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters) keycodes ;tables for converting KeyCode to Screen Code (38-1 characters)
.by $3f,$15,$12,$3a,$2a,$38,$3d,$39 .by $3f,$15,$12,$3a,$2a,$38,$3d,$39
.by $0d,$01,$05,$00,$25,$23,$08,$0a .by $0d,$01,$05,$00,$25,$23,$08,$0a
.by $2f,$28,$3e,$2d,$0b,$10,$2e,$16 .by $2f,$28,$3e,$2d,$0b,$10,$2e,$16
@@ -599,17 +605,15 @@ scrcodes
dta d"ijklmnop" dta d"ijklmnop"
dta d"qrstuvwx" dta d"qrstuvwx"
dta d"yz" dta d"yz"
;-------decimal constans + end of scrcodes
zero zero
digits ; decimal constans digits
dta d"0123456" dta d"0123456"
dta d"789. " ; "-" dta d"789. " ; "-"
;-------decimal constans
;zero
;digits dta d"0123456789"
;----------------------------------- ;-----------------------------------
gameOverSpritesTop gameOverSpritesTop
; end of the Gover sprites by number of players ; end of the GameOver sprites by number of players
; 1 2 3 4 5 6 ; 1 2 3 4 5 6
.by 130+7,130+7,136+7,142+7,148+7,154+7 .by 130+7,130+7,136+7,142+7,148+7,154+7
;------credits ;------credits
@@ -674,6 +678,6 @@ CreditsEnd
.IF target = 5200 .IF target = 5200
; Atari 5200 splash ; Atari 5200 splash
NewSplashText=* NewSplashText=*
dta d"copyright 2023 atari" dta d" 2023 atariage", $4e, "com " ; $4e - non blinking dot
.ENDIF .ENDIF
.endif .endif
+1 -1
View File
@@ -22,4 +22,4 @@ RoundsTable .by 10,20,30,40,50
AIForceTable .wo 375,470,630,720,820 ; starting shoot forces for different gravity AIForceTable .wo 375,470,630,720,820 ; starting shoot forces for different gravity
flyDelayTable .by 255,150,75,35,1 flyDelayTable .by 255,150,75,35,1
seppukuTable .by 255, 45,25,15,9 seppukuTable .by 255, 45,25,15,9
.endif .ENDIF
+108 -108
View File
@@ -28,123 +28,123 @@ space = 0 ; space in screencodes
KeyRepeatSpeed = 10 ; (max 127 !!!) KeyRepeatSpeed = 10 ; (max 127 !!!)
;character codes for symbols (tank, parachute, etc. ) ;character codes for symbols (tank, parachute, etc. )
char_parachute_______ = $02 char_parachute = $02
char_flag____________ = $1e char_flag = $1e
char_flame___________ = $14 char_flame = $14
char_clear_flame_____ = $1c char_clear_flame = $1c
char_digger__________ = $04 char_digger = $04
char_sandhog_________ = $0c char_sandhog = $0c
char_sandhog_offset = char_sandhog_________ - char_digger__________ char_sandhog_offset = char_sandhog - char_digger
char_tank1___________ = $20 char_tank1 = $20
char_tank2___________ = $24 char_tank2 = $24
char_tank3___________ = $2c char_tank3 = $2c
char_tank4___________ = $28 ; robotank shape char_tank4 = $28 ; robotank shape
;Weapon prices (*10 on screen) ;Weapon prices (*10 on screen)
price_Baby_Missile___ = 0 ;_00 price_Baby_Missile = 0 ;_00
price_Missile________ = 96 ;_01 price_Missile = 96 ;_01
price_Baby_Nuke______ = 111 ;_02 price_Baby_Nuke = 111 ;_02
price_Nuke___________ = 144 ;_03 price_Nuke = 144 ;_03
price_LeapFrog_______ = 192 ;_04 price_LeapFrog = 192 ;_04
price_Funky_Bomb_____ = 293 ;_05 price_Funky_Bomb = 293 ;_05
price_MIRV___________ = 456 ;_06 price_MIRV = 456 ;_06
price_Death_s_Head___ = 337 ;_07 price_Death_s_Head = 337 ;_07
price_Napalm_________ = 125 ;_08 price_Napalm = 125 ;_08
price_Hot_Napalm_____ = 162 ;_09 price_Hot_Napalm = 162 ;_09
price_Tracer_________ = 102 ;_10 price_Tracer = 102 ;_10
price_Smoke_Tracer___ = 291 ;_11 price_Smoke_Tracer = 291 ;_11
price_Baby_Roller____ = 211 ;_12 price_Baby_Roller = 211 ;_12
price_Roller_________ = 244 ;_13 price_Roller = 244 ;_13
price_Heavy_Roller___ = 326 ;_14 price_Heavy_Roller = 326 ;_14
price_Riot_Charge____ = 230 ;_15 price_Riot_Charge = 230 ;_15
price_Riot_Blast_____ = 241 ;_16 price_Riot_Blast = 241 ;_16
price_Riot_Bomb______ = 259 ;_17 price_Riot_Bomb = 259 ;_17
price_Heavy_Riot_Bomb = 272 ;_18 price_Heavy_Riot_Bomb = 272 ;_18
price_Baby_Digger____ = 136 ;_19 price_Baby_Digger = 136 ;_19
price_Digger_________ = 176 ;_20 price_Digger = 176 ;_20
price_Heavy_Digger___ = 207 ;_21 price_Heavy_Digger = 207 ;_21
price_Baby_Sandhog___ = 158 ;_22 price_Baby_Sandhog = 158 ;_22
price_Sandhog________ = 191 ;_23 price_Sandhog = 191 ;_23
price_Heavy_Sandhog__ = 223 ;_24 price_Heavy_Sandhog = 223 ;_24
price_Dirt_Clod______ = 104 ;_25 price_Dirt_Clod = 104 ;_25
price_Dirt_Ball______ = 130 ;_26 price_Dirt_Ball = 130 ;_26
price_Ton_of_Dirt____ = 171 ;_27 price_Ton_of_Dirt = 171 ;_27
price_Liquid_Dirt____ = 330 ;_28 price_Liquid_Dirt = 330 ;_28
price_Dirt_Charge____ = 343 ;_29 price_Dirt_Charge = 343 ;_29
price_Buy_me_________ = 170 ;_30 price_Buy_me = 170 ;_30
price_Laser__________ = 277 ;_31 price_Laser = 277 ;_31
price_White_Flag_____ = $0 ;_32 price_White_Flag = $0 ;_32
price_Battery________ = 300 ;_33 price_Battery = 300 ;_33
price_Hovercraft_____ = 352 ;_34 price_Hovercraft = 352 ;_34
price_Parachute______ = 234 ;_35 price_Parachute = 234 ;_35
price_StrongParachute = 1000 ;_36 price_StrongParachute = 1000 ;_36
price_Mag_Deflector__ = 745 ;_37 price_Mag_Deflector = 745 ;_37
price_Shield_________ = 224 ;_38 price_Shield = 224 ;_38
price_Heavy_Shield___ = 628 ;_39 price_Heavy_Shield = 628 ;_39
price_Force_Shield___ = 1100 ;_40 price_Force_Shield = 1100 ;_40
price_Bouncy_Castle__ = 512 ;_41 price_Bouncy_Castle = 512 ;_41
price_Long_Barrel____ = 2100 ;_42 price_Long_Barrel = 2100 ;_42
price_Nuclear_Winter_ = 1000 ;_43 price_Nuclear_Winter_ = 1000 ;_43
price_Lazy_Boy_______ = 500 ;_44 price_Lazy_Boy = 500 ;_44
price_Lazy_Darwin____ = 730 ;_45 price_Lazy_Darwin = 730 ;_45
price_Auto_Defense___ = 250 ;_46 price_Auto_Defense = 250 ;_46
price_Spy_Hard_______ = 83 ;_47 price_Spy_Hard = 83 ;_47
;Weapon indexes (numbers) ;Weapon indexes (numbers)
ind_Baby_Missile___ = 0 ind_Baby_Missile = 0
first_offensive____ = ind_Baby_Missile___ first_offensive = ind_Baby_Missile
ind_Missile________ = 1 ind_Missile = 1
ind_Baby_Nuke______ = 2 ind_Baby_Nuke = 2
ind_Nuke___________ = 3 ind_Nuke = 3
ind_LeapFrog_______ = 4 ind_LeapFrog = 4
ind_Funky_Bomb_____ = 5 ind_Funky_Bomb = 5
ind_MIRV___________ = 6 ind_MIRV = 6
ind_Death_s_Head___ = 7 ind_Death_s_Head = 7
ind_Napalm_________ = 8 ind_Napalm = 8
ind_Hot_Napalm_____ = 9 ind_Hot_Napalm = 9
ind_Tracer_________ = 10 ind_Tracer = 10
ind_Smoke_Tracer___ = 11 ind_Smoke_Tracer = 11
ind_Baby_Roller____ = 12 ind_Baby_Roller = 12
ind_Roller_________ = 13 ind_Roller = 13
ind_Heavy_Roller___ = 14 ind_Heavy_Roller = 14
ind_Riot_Charge____ = 15 ind_Riot_Charge = 15
ind_Riot_Blast_____ = 16 ind_Riot_Blast = 16
ind_Riot_Bomb______ = 17 ind_Riot_Bomb = 17
ind_Heavy_Riot_Bomb = 18 ind_Heavy_Riot_Bomb = 18
ind_Baby_Digger____ = 19 ind_Baby_Digger = 19
ind_Digger_________ = 20 ind_Digger = 20
ind_Heavy_Digger___ = 21 ind_Heavy_Digger = 21
ind_Baby_Sandhog___ = 22 ind_Baby_Sandhog = 22
ind_Sandhog________ = 23 ind_Sandhog = 23
ind_Heavy_Sandhog__ = 24 ind_Heavy_Sandhog = 24
ind_Dirt_Clod______ = 25 ind_Dirt_Clod = 25
ind_Dirt_Ball______ = 26 ind_Dirt_Ball = 26
ind_Ton_of_Dirt____ = 27 ind_Ton_of_Dirt = 27
ind_Liquid_Dirt____ = 28 ind_Liquid_Dirt = 28
ind_Dirt_Charge____ = 29 ind_Dirt_Charge = 29
ind_Buy_me_________ = 30 ind_Buy_me = 30
ind_Laser__________ = 31 ind_Laser = 31
last_offensive_____ = ind_Laser__________ last_offensive = ind_Laser
ind_White_Flag_____ = 32 ind_White_Flag = 32
first_defensive____ = ind_White_Flag_____ first_defensive = ind_White_Flag
ind_Battery________ = 33 ind_Battery = 33
ind_Hovercraft_____ = 34 ind_Hovercraft = 34
ind_Parachute______ = 35 ind_Parachute = 35
ind_StrongParachute = 36 ind_StrongParachute = 36
ind_Mag_Deflector__ = 37 ind_Mag_Deflector = 37
ind_Shield_________ = 38 ind_Shield = 38
ind_Heavy_Shield___ = 39 ind_Heavy_Shield = 39
ind_Force_Shield___ = 40 ind_Force_Shield = 40
ind_Bouncy_Castle__ = 41 ind_Bouncy_Castle = 41
ind_Long_Barrel____ = 42 ind_Long_Barrel = 42
ind_Nuclear_Winter_ = 43 ind_Nuclear_Winter_ = 43
ind_Lazy_Boy_______ = 44 ind_Lazy_Boy = 44
ind_Lazy_Darwin____ = 45 ind_Lazy_Darwin = 45
ind_Auto_Defense___ = 46 ind_Auto_Defense = 46
ind_Spy_Hard_______ = 47 ind_Spy_Hard = 47
last_defensive_____ = ind_Spy_Hard_______ last_defensive = ind_Spy_Hard
last_real_defensive = ind_Bouncy_Castle__ last_real_defensive = ind_Bouncy_Castle
number_of_offensives = last_offensive_____ - first_offensive____+1 number_of_offensives = last_offensive - first_offensive +1
number_of_defensives = (last_defensive_____ - first_defensive____+1) number_of_defensives = (last_defensive - first_defensive +1)
number_of_weapons = number_of_offensives + number_of_defensives number_of_weapons = number_of_offensives + number_of_defensives
;-------------------------------- ;--------------------------------
; names of RMT instruments (sfx) ; names of RMT instruments (sfx)
+3 -3
View File
@@ -391,9 +391,9 @@ AfterManualShooting
; defensive weapons without flight handling ; defensive weapons without flight handling
ldx TankNr ldx TankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Hovercraft_____ cmp #ind_Hovercraft
beq GoFloat beq GoFloat
cmp #ind_White_Flag_____ ; White Flag cmp #ind_White_Flag ; White Flag
beq ShootWhiteFlag beq ShootWhiteFlag
cmp #ind_Nuclear_Winter_ cmp #ind_Nuclear_Winter_
bne StandardShoot bne StandardShoot
@@ -784,7 +784,7 @@ B0 dey
;-------------------------------------------------- ;--------------------------------------------------
ldx #(number_of_weapons - 1) ldx #(number_of_weapons - 1)
@ lda #$0 @ lda #$0
cpx #ind_White_Flag_____ ; White Flag cpx #ind_White_Flag ; White Flag
bne no99 bne no99
set99 lda #99 set99 lda #99
no99 no99
+12 -12
View File
@@ -495,7 +495,7 @@ endcircleloop
mwa #0 temptankX mwa #0 temptankX
mva #0 temptankNr ;player number sta temptankNr ;player number
StillRandomize StillRandomize
ldx NumberOfPlayers ldx NumberOfPlayers
lda random lda random
@@ -756,17 +756,17 @@ noTankNoPM
; in xdraw, ydraw we have coordinates left LOWER corner of Tank char ; in xdraw, ydraw we have coordinates left LOWER corner of Tank char
ldx TankNr ldx TankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Shield_________ ; one shot shield cmp #ind_Shield ; one shot shield
beq DrawTankSh beq DrawTankSh
cmp #ind_Force_Shield___ ; shield with energy and parachute cmp #ind_Force_Shield ; shield with energy and parachute
beq DrawTankShieldBold beq DrawTankShieldBold
cmp #ind_Heavy_Shield___ ; shield with energy cmp #ind_Heavy_Shield ; shield with energy
beq DrawTankShieldBold beq DrawTankShieldBold
cmp #ind_Bouncy_Castle__ ; Auto Defence cmp #ind_Bouncy_Castle ; Auto Defence
beq DrawTankShieldWihHorns beq DrawTankShieldWihHorns
cmp #ind_Mag_Deflector__ ; Mag Deflector cmp #ind_Mag_Deflector ; Mag Deflector
beq DrawTankShieldWihHorns beq DrawTankShieldWihHorns
cmp #ind_White_Flag_____ ; White Flag cmp #ind_White_Flag ; White Flag
beq DrawTankFlag beq DrawTankFlag
bne NoShieldDraw bne NoShieldDraw
DrawTankSh DrawTankSh
@@ -781,7 +781,7 @@ DrawTankShieldBold
jsr DrawTankShieldBoldLine jsr DrawTankShieldBoldLine
jmp NoShieldDraw jmp NoShieldDraw
DrawTankFlag DrawTankFlag
lda #char_flag____________ ; flag symbol lda #char_flag ; flag symbol
sta CharCode sta CharCode
lda Ytankstable,x lda Ytankstable,x
sec sec
@@ -916,7 +916,7 @@ tankflash_loop
.proc DrawTankParachute .proc DrawTankParachute
;Tank number in X ;Tank number in X
;-------------------------------------------------- ;--------------------------------------------------
lda #char_parachute_______ ; parachute symbol lda #char_parachute ; parachute symbol
sta CharCode sta CharCode
lda Ytankstable,x lda Ytankstable,x
cmp #16 cmp #16
@@ -1028,11 +1028,11 @@ ToHighToParachute
; let's check if the given tank has got the parachute ; let's check if the given tank has got the parachute
ldx TankNr ldx TankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Parachute______ ; parachute cmp #ind_Parachute ; parachute
beq ParachuteActive beq ParachuteActive
cmp #ind_StrongParachute ; strong parachute cmp #ind_StrongParachute ; strong parachute
beq ParachuteActive beq ParachuteActive
cmp #ind_Force_Shield___ ; shield witch energy and parachute cmp #ind_Force_Shield ; shield witch energy and parachute
bne TankFallsX bne TankFallsX
ParachuteActive ParachuteActive
inc Parachute inc Parachute
@@ -1237,7 +1237,7 @@ EndOfFall
bne NoParachuteWeapon bne NoParachuteWeapon
; first we check type of parachute ; first we check type of parachute
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Parachute______ ; deactivate weapon only if parachute (54) cmp #ind_Parachute ; deactivate weapon only if parachute (54)
bne NoParachuteWeapon bne NoParachuteWeapon
mva #0 ActiveDefenceWeapon,x ; deactivate defence weapon (parachute) mva #0 ActiveDefenceWeapon,x ; deactivate defence weapon (parachute)
NoParachuteWeapon NoParachuteWeapon
+5 -3
View File
@@ -6,7 +6,9 @@
;Miami & Warsaw 2022, 2023 ;Miami & Warsaw 2022, 2023
;--------------------------------------------------- ;---------------------------------------------------
.def TARGET = 800 ; 5200 ; or 800 .IFNDEF TARGET
.def TARGET = 800 ; 5200 ; or 64
.ENDIF
;atari800 -5200 -cart ${outputFilePath} -cart-type 4 ;atari800 -5200 -cart ${outputFilePath} -cart-type 4
;atari800 -run ${outputFilePath} ;atari800 -run ${outputFilePath}
;--------------------------------------------------- ;---------------------------------------------------
@@ -17,7 +19,7 @@
; (direct writes to screen memory - atari only :) ) ; (direct writes to screen memory - atari only :) )
;--------------------------------------------------- ;---------------------------------------------------
;OPT r+ ; saves 12 bytes :O ; OPT r+ ; saves 12 bytes :O
;--------------------------------------------------- ;---------------------------------------------------
.macro build .macro build
@@ -194,7 +196,7 @@ FirstZpageVariable = $57
.ELSE .ELSE
icl 'Atari/lib/ATARISYS.ASM' icl 'Atari/lib/ATARISYS.ASM'
icl 'Atari/lib/MACRO.ASM' icl 'Atari/lib/MACRO.ASM'
icl 'artwork/splash_v2/splash.asm' ; splash screen and musix ; icl 'artwork/splash_v2/splash.asm' ; splash screen and musix
.ENDIF .ENDIF
;----------------------------------------------- ;-----------------------------------------------
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -287,9 +287,9 @@ AfterBFGflag .DS 1
; tables with indexes of weapons on the right lists ; tables with indexes of weapons on the right lists
; OK (2022) so, L1 is list of offensive weapons, L2 - defensive ; OK (2022) so, L1 is list of offensive weapons, L2 - defensive
IndexesOfWeaponsL1 IndexesOfWeaponsL1
.ds (last_offensive_____ - first_offensive____+1) .ds (last_offensive - first_offensive +1)
IndexesOfWeaponsL2 IndexesOfWeaponsL2
.ds (last_defensive_____ - first_defensive____+1) .ds (last_defensive - first_defensive +1)
;---------------------------------------------------- ;----------------------------------------------------
; variables storing amount of weapons on the first and second ; variables storing amount of weapons on the first and second
+58 -58
View File
@@ -22,38 +22,38 @@
pha pha
rts rts
ExplosionRoutines ExplosionRoutines
.word babymissile-1 ;Baby_Missile___;_00 .word babymissile-1 ;Baby_Missile ;_00
.word missile-1 ;Missile________;_01 .word missile-1 ;Missile ;_01
.word babynuke-1 ;Baby_Nuke______;_02 .word babynuke-1 ;Baby_Nuke ;_02
.word nuke-1 ;Nuke___________;_03 .word nuke-1 ;Nuke ;_03
.word leapfrog-1 ;LeapFrog_______;_04 .word leapfrog-1 ;LeapFrog ;_04
.word funkybomb-1 ;Funky_Bomb_____;_05 .word funkybomb-1 ;Funky_Bomb ;_05
.word mirv-1 ;MIRV___________;_06 .word mirv-1 ;MIRV ;_06
.word deathshead-1 ;Death_s_Head___;_07 .word deathshead-1 ;Death_s_Head ;_07
.word napalm-1 ;Napalm_________;_08 .word napalm-1 ;Napalm ;_08
.word hotnapalm-1 ;Hot_Napalm_____;_09 .word hotnapalm-1 ;Hot_Napalm ;_09
.word tracer-1 ;Tracer_________;_10 .word tracer-1 ;Tracer ;_10
.word tracer-1 ;Smoke_Tracer___;_11 .word tracer-1 ;Smoke_Tracer ;_11
.word babyroller-1 ;Baby_Roller____;_12 .word babyroller-1 ;Baby_Roller ;_12
.word roller-1 ;Roller_________;_13 .word roller-1 ;Roller ;_13
.word heavyroller-1 ;Heavy_Roller___;_14 .word heavyroller-1 ;Heavy_Roller ;_14
.word riotcharge-1 ;Riot_Charge____;_15 .word riotcharge-1 ;Riot_Charge ;_15
.word riotblast-1 ;Riot_Blast_____;_16 .word riotblast-1 ;Riot_Blast ;_16
.word riotbomb-1 ;Riot_Bomb______;_17 .word riotbomb-1 ;Riot_Bomb ;_17
.word heavyriotbomb-1 ;Heavy_Riot_Bomb;_18 .word heavyriotbomb-1 ;Heavy_Riot_Bomb;_18
.word babydigger-1 ;Baby_Digger____;_19 .word babydigger-1 ;Baby_Digger ;_19
.word digger-1 ;Digger_________;_20 .word digger-1 ;Digger ;_20
.word heavydigger-1 ;Heavy_Digger___;_21 .word heavydigger-1 ;Heavy_Digger ;_21
.word babysandhog-1 ;Baby_Sandhog___;_22 .word babysandhog-1 ;Baby_Sandhog ;_22
.word sandhog-1 ;Sandhog________;_23 .word sandhog-1 ;Sandhog ;_23
.word heavysandhog-1 ;Heavy_Sandhog__;_24 .word heavysandhog-1 ;Heavy_Sandhog ;_24
.word dirtclod-1 ;Dirt_Clod______;_25 .word dirtclod-1 ;Dirt_Clod ;_25
.word dirtball-1 ;Dirt_Ball______;_26 .word dirtball-1 ;Dirt_Ball ;_26
.word tonofdirt-1 ;Ton_of_Dirt____;_27 .word tonofdirt-1 ;Ton_of_Dirt ;_27
.word liquiddirt-1 ;Liquid_Dirt____;_28 .word liquiddirt-1 ;Liquid_Dirt ;_28
.word dirtcharge-1 ;Dirt_Charge____;_29 .word dirtcharge-1 ;Dirt_Charge ;_29
.word BFG-1 ;Buy_me_________;_30 .word BFG-1 ;Buy_me ;_30
.word laser-1 ;Laser__________;_31 .word laser-1 ;Laser ;_31
VOID VOID
tracer tracer
@@ -288,10 +288,10 @@ RepeatFlame ; internal loop (draw flames)
lda random lda random
and #%00000110 and #%00000110
clc clc
adc #char_flame___________ adc #char_flame
bne PutFlameChar bne PutFlameChar
LastNapalmRepeat LastNapalmRepeat
lda #char_clear_flame_____ ; clear flame symbol lda #char_clear_flame ; clear flame symbol
PutFlameChar PutFlameChar
sta CharCode sta CharCode
; check coordinates ; check coordinates
@@ -536,7 +536,7 @@ DiggerCharacter
lda random lda random
and #$06 and #$06
clc clc
adc #char_digger__________ adc #char_digger
adc sandhogflag adc sandhogflag
sta CharCode sta CharCode
cpw xdraw #(screenwidth-6) cpw xdraw #(screenwidth-6)
@@ -813,15 +813,15 @@ DistanceCheckLoop
tay tay
; check shields ; check shields
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Shield_________ ; one hit shield cmp #ind_Shield ; one hit shield
beq UseShield beq UseShield
cmp #ind_Force_Shield___ ; shield with energy and parachute cmp #ind_Force_Shield ; shield with energy and parachute
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #ind_Heavy_Shield___ ; shield with energy cmp #ind_Heavy_Shield ; shield with energy
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #ind_Bouncy_Castle__ ; Auto Defence (it works only if hit ground next to tank. Tank hit is handled in Flight proc) cmp #ind_Bouncy_Castle ; Auto Defence (it works only if hit ground next to tank. Tank hit is handled in Flight proc)
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #ind_Mag_Deflector__ ; Mag deflector (it works only if hit ground next to tank. Tank hit is handled in Flight proc) cmp #ind_Mag_Deflector ; Mag deflector (it works only if hit ground next to tank. Tank hit is handled in Flight proc)
beq UseShieldWithEnergy beq UseShieldWithEnergy
jsr DecreaseEnergyX jsr DecreaseEnergyX
jmp EndOfDistanceCheckLoop jmp EndOfDistanceCheckLoop
@@ -1364,9 +1364,9 @@ pressedTAB
mva #sfx_purchase sfx_effect mva #sfx_purchase sfx_effect
;ldx TankNr ; optimized ;ldx TankNr ; optimized
lda ActiveWeapon,x lda ActiveWeapon,x
cmp #last_offensive_____ ; the last possible offensive weapon cmp #last_offensive ; the last possible offensive weapon
bne ?notlasttofirst bne ?notlasttofirst
lda #first_offensive____ ; #0 lda #first_offensive ; #0
sta ActiveWeapon,x sta ActiveWeapon,x
beq @+ ; allways = 0 beq @+ ; allways = 0
?notlasttofirst ?notlasttofirst
@@ -1381,9 +1381,9 @@ CTRLpressedTAB
mva #sfx_purchase sfx_effect mva #sfx_purchase sfx_effect
;ldx TankNr ; optimized ;ldx TankNr ; optimized
lda ActiveWeapon,x lda ActiveWeapon,x
cmp #first_offensive____ ; #0 cmp #first_offensive ; #0
bne ?notfirsttolast bne ?notfirsttolast
lda #last_offensive_____ ; the last possible offensive weapon lda #last_offensive ; the last possible offensive weapon
sta ActiveWeapon,x sta ActiveWeapon,x
bne @+ ; allways <> 0 bne @+ ; allways <> 0
?notfirsttolast ?notfirsttolast
@@ -1452,7 +1452,7 @@ AfterOffensiveText
mva #0 LaserFlag ; $ff - Laser mva #0 LaserFlag ; $ff - Laser
ldx TankNr ldx TankNr
lda ActiveWeapon,x lda ActiveWeapon,x
cmp #ind_Laser__________ ; laser cmp #ind_Laser ; laser
bne NotStrongShoot bne NotStrongShoot
; Laser: (not)very strong - invisible - shot for laser beam end coordinates ; Laser: (not)very strong - invisible - shot for laser beam end coordinates
bit Vdebug bit Vdebug
@@ -1528,7 +1528,7 @@ ShotUnderGround
bmi noSmokeTracer ; no Smoke Tracer display bmi noSmokeTracer ; no Smoke Tracer display
ldx TankNr ldx TankNr
lda ActiveWeapon,x lda ActiveWeapon,x
cmp #ind_Smoke_Tracer___ ; Smoke tracer cmp #ind_Smoke_Tracer ; Smoke tracer
bne noSmokeTracer bne noSmokeTracer
iny iny
noSmokeTracer noSmokeTracer
@@ -1707,7 +1707,7 @@ Loopi
bmi NoTestForMIRV bmi NoTestForMIRV
ldx TankNr ldx TankNr
lda ActiveWeapon,x lda ActiveWeapon,x
cmp #ind_MIRV___________ ; MIRV cmp #ind_MIRV ; MIRV
jeq MIRVdownLoop jeq MIRVdownLoop
NoTestForMIRV NoTestForMIRV
NoGravity NoGravity
@@ -1859,16 +1859,16 @@ EndOfFlight2
dex ; index of hitted tank in X dex ; index of hitted tank in X
ldy TankNr ldy TankNr
lda ActiveWeapon,y lda ActiveWeapon,y
cmp #ind_Tracer_________ ; defence not fire by tracers cmp #ind_Tracer ; defence not fire by tracers
beq JNoDefence beq JNoDefence
cmp #ind_Smoke_Tracer___ cmp #ind_Smoke_Tracer
beq JNoDefence beq JNoDefence
cmp #ind_Laser__________ ; Bouncy and Mag not fire by Laser cmp #ind_Laser ; Bouncy and Mag not fire by Laser
beq JNoDefence beq JNoDefence
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Bouncy_Castle__ ; Auto Defence cmp #ind_Bouncy_Castle ; Auto Defence
jeq BouncyCastle jeq BouncyCastle
cmp #ind_Mag_Deflector__ ; Mag Deflector cmp #ind_Mag_Deflector ; Mag Deflector
beq MagDeflector beq MagDeflector
JNoDefence JNoDefence
jmp NoDefence jmp NoDefence
@@ -1919,7 +1919,7 @@ BouncyCastle
; now in Y we have number of of the attacking player (TankNr) ! ; now in Y we have number of of the attacking player (TankNr) !
lda ActiveWeapon,y lda ActiveWeapon,y
; if Bouncy Castle bounced Funky Bomb - whole screen in range of soil down ; if Bouncy Castle bounced Funky Bomb - whole screen in range of soil down
cmp #ind_Funky_Bomb_____ cmp #ind_Funky_Bomb
bne @+ bne @+
jsr SetFullScreenSoilRange jsr SetFullScreenSoilRange
@ @
@@ -2501,7 +2501,7 @@ StoreMaxAlt
mwa #hoverFull LineAddress4x4 mwa #hoverFull LineAddress4x4
mwa #((ScreenWidth/2)-((hoverFullEnd-hoverFull)*2)) LineXdraw ; centering mwa #((ScreenWidth/2)-((hoverFullEnd-hoverFull)*2)) LineXdraw ; centering
mva #hoverFullEnd-hoverFull-1 fx ; length mva #hoverFullEnd-hoverFull fx ; length
sec sec
lda FloatingAlt lda FloatingAlt
sbc #12 sbc #12
@@ -2548,7 +2548,7 @@ ReachSky
; display text 4x4 - fuel full (clear text) ; display text 4x4 - fuel full (clear text)
mwa #hoverFull LineAddress4x4 mwa #hoverFull LineAddress4x4
mwa #((ScreenWidth/2)-((hoverFullEnd-hoverFull)*2)) LineXdraw ; centering mwa #((ScreenWidth/2)-((hoverFullEnd-hoverFull)*2)) LineXdraw ; centering
mva #(hoverFullEnd-hoverFull-1) fx ; length mva #(hoverFullEnd-hoverFull) fx ; length
sec sec
lda FloatingAlt lda FloatingAlt
sbc #12 sbc #12
@@ -2593,7 +2593,7 @@ KeyboardAndJoyCheck
; display text 4x4 - low fuel ; display text 4x4 - low fuel
mwa #hoverEmpty LineAddress4x4 mwa #hoverEmpty LineAddress4x4
mwa #((ScreenWidth/2)-((hoverEmptyEnd-hoverEmpty)*2)) LineXdraw ; centering mwa #((ScreenWidth/2)-((hoverEmptyEnd-hoverEmpty)*2)) LineXdraw ; centering
mva #hoverEmptyEnd-hoverEmpty-1 fx ; length mva #hoverEmptyEnd-hoverEmpty fx ; length
sec sec
lda FloatingAlt lda FloatingAlt
sbc #12 sbc #12
@@ -2702,7 +2702,7 @@ pressedSpace
; display text 4x4 - low fuel (clear text) ; display text 4x4 - low fuel (clear text)
mwa #hoverEmpty LineAddress4x4 mwa #hoverEmpty LineAddress4x4
mwa #((ScreenWidth/2)-((hoverEmptyEnd-hoverEmpty)*2)) LineXdraw ; centering mwa #((ScreenWidth/2)-((hoverEmptyEnd-hoverEmpty)*2)) LineXdraw ; centering
mva #hoverEmptyEnd-hoverEmpty-1 fx ; length mva #hoverEmptyEnd-hoverEmpty fx ; length
sec sec
lda FloatingAlt lda FloatingAlt
sbc #12 sbc #12
@@ -2893,9 +2893,9 @@ CheckCollisionWithTankLoop
; with or without shield ? ; with or without shield ?
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #ind_Mag_Deflector__ ; first shielded weapon cmp #ind_Mag_Deflector ; first shielded weapon
bcc CheckCollisionWithNotShieldedTank bcc CheckCollisionWithNotShieldedTank
cmp #ind_Bouncy_Castle__+1 ; last shielded weapon cmp #ind_Bouncy_Castle +1 ; last shielded weapon
bcc CheckCollisionWithShieldedTank ; tank with shield is bigger :) bcc CheckCollisionWithShieldedTank ; tank with shield is bigger :)
;lda ShieldEnergy,x ; there is wrong method to check shield :) ;lda ShieldEnergy,x ; there is wrong method to check shield :)