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