WIP: unfinished weapons optimization

This commit is contained in:
2022-08-29 00:31:24 -04:00
parent ef361d044e
commit 39835d5f50
9 changed files with 282 additions and 406 deletions
+2 -2
View File
@@ -155,7 +155,7 @@ endo
; choose the best weapon
ldy #32 ;the last weapon
ldy #last_offensive_____ ;the last weapon
loop
dey
lda (temp),y ; this is set up before calling the routine, has address of TanksWeaponsTable
@@ -1043,7 +1043,7 @@ SorryNoPurchase
:4 asl ;*16
sta tempXroller ; perform this many purchase attempts
@
randomize ind_Missile________ ind_Plasma_Blast___
randomize first_offensive____ last_offensive_____
jsr TryToPurchaseOnePiece2
dec tempXroller
bne @-
+152 -212
View File
@@ -261,36 +261,16 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
.by >price_Liquid_Dirt____
.by >price_Dirt_Charge____
.by >price_Buy_me_________
.by >price_Plasma_Blast___
.by >price_Laser__________
; .by >price______________33
; .by >price______________34
; .by >price______________35
; .by >price______________36
; .by >price______________37
; .by >price______________38
; .by >price______________39
; .by >price______________40
; .by >price______________41
; .by >price______________42
; .by >price______________43
; .by >price______________44
; .by >price______________45
; .by >price______________46
; .by >price______________47
.by >price_White_Flag_____
.by >price_Battery________
.by >price_Bal_Guidance___
.by >price_Horz_Guidance__
.by >price_Floating_Tank__
.by >price_Lazy_Boy_______
.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_Super_Mag______
.by >price_Bouncy_Castle__
.by >price_Long_Barrel____
.by >price_Nuclear_Winter_
@@ -327,36 +307,16 @@ WeaponPriceL
.by <price_Liquid_Dirt____
.by <price_Dirt_Charge____
.by <price_Buy_me_________
.by <price_Plasma_Blast___
.by <price_Laser__________
; .by <price______________33
; .by <price______________34
; .by <price______________35
; .by <price______________36
; .by <price______________37
; .by <price______________38
; .by <price______________39
; .by <price______________40
; .by <price______________41
; .by <price______________42
; .by <price______________43
; .by <price______________44
; .by <price______________45
; .by <price______________46
; .by <price______________47
.by <price_White_Flag_____
.by <price_Battery________
.by <price_Bal_Guidance___
.by <price_Horz_Guidance__
.by <price_Floating_Tank__
.by <price_Lazy_Boy_______
.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_Super_Mag______
.by <price_Bouncy_Castle__
.by <price_Long_Barrel____
.by <price_Nuclear_Winter_
@@ -368,70 +328,50 @@ WeaponPriceL
; is not present in the game.
; This is the slot for adding new weapons.
WeaponUnits
.by 10 ;Baby_Missile___
.by 5 ;Missile________
.by 2 ;Baby_Nuke______
.by 1 ;Nuke___________
.by 2 ;LeapFrog_______
.by 3 ;Funky_Bomb_____
.by 2 ;MIRV___________
.by 1 ;Death_s_Head___
.by 4 ;Napalm_________
.by 2 ;Hot_Napalm_____
.by 20 ;Tracer_________
.by 10 ;Smoke_Tracer___
.by 5 ;Baby_Roller____
.by 3 ;Roller_________
.by 2 ;Heavy_Roller___
.by 5 ;Riot_Charge____
.by 2 ;Riot_Blast_____
.by 5 ;Riot_Bomb______
.by 2 ;Heavy_Riot_Bomb
.by 10 ;Baby_Digger____
.by 5 ;Digger_________
.by 2 ;Heavy_Digger___
.by 10 ;Baby_Sandhog___
.by 5 ;Sandhog________
.by 2 ;Heavy_Sandhog__
.by 5 ;Dirt_Clod______
.by 3 ;Dirt_Ball______
.by 1 ;Ton_of_Dirt____
.by 4 ;Liquid_Dirt____
.by 2 ;Dirt_Charge____
.by 1 ;Buy_me_________
.by 0 ;Plasma_Blast___
.by 5 ;Laser__________
; .by 0 ;_____________33
; .by 0 ;_____________34
; .by 0 ;_____________35
; .by 0 ;_____________36
; .by 0 ;_____________37
; .by 0 ;_____________38
; .by 0 ;_____________39
; .by 0 ;_____________40
; .by 0 ;_____________41
; .by 0 ;_____________42
; .by 0 ;_____________43
; .by 0 ;_____________44
; .by 0 ;_____________45
; .by 0 ;_____________46
; .by 0 ;_____________47
.by 1 ;White_Flag___48
.by 3 ;Battery________
.by 0 ;Bal_Guidance___
.by 0 ;Horz_Guidance__
.by 2 ;Floating_Tank__
.by 0 ;Lazy_Boy_______
.by 3 ;Parachute______
.by 2 ;StrongParachute
.by 2 ;Mag_Deflector__
.by 3 ;Shield_________
.by 2 ;Heavy_Shield___
.by 3 ;Force_Shield___
.by 0 ;Super_Mag______
.by 1 ;Auto_Defense___
.by 2 ;Long_Barrel____
.by 1 ;Nuclear_Winter_
.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 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 1 ;Nuclear_Winter_;_43
PurchaseMeTable ;weapons good to be purchased by the robot
;the comment is an index in the tables
@@ -445,49 +385,81 @@ PurchaseMeTable ;weapons good to be purchased by the robot
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
.by %00000000
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast "
; "Liquid Dirt ","Dirt Charge ","Buy me! ","Laser "
.by %00000000
; "Laser ","White Flag ","Battery ","Bal Guidance "
; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute "
.by %00100001
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
; "Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel "
.by %11111010
; "Nuclear Winter "
.by %00000000
; "White Flag ","Battery ","Hovercraft ","Parachute "
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
.by %01011111
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
.by %11000000
PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
;the comment is an index in the tables
; "Baby Missile ","Missile ","Baby Nuke ","Nuke "
; "LeapFrog ","Funky Bomb ","MIRV ","Death's Head "
.by %00110001
; "Napalm ","Hot Napalm ","Tracer ","Smoke Tracer "
; "Baby Roller ","Roller ","Heavy Roller ","Riot Charge "
.by %01000000
; "Riot Blast ","Riot Bomb ","Heavy Riot Bomb ","Baby Digger "
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
.by %00000000
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast "
.by %00000000
; "Laser ","White Flag ","Battery ","Bal Guidance "
; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute "
.by %00100000
;,"Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
;,"Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel "
.by %11011010
;"Nuclear Winter "
; "Baby Missile ","Missile ","Baby Nuke ","Nuke "
; "LeapFrog ","Funky Bomb ","MIRV ","Death's Head "
.by %00110001
; "Napalm ","Hot Napalm ","Tracer ","Smoke Tracer "
; "Baby Roller ","Roller ","Heavy Roller ","Riot Charge "
.by %01000000
; "Riot Blast ","Riot Bomb ","Heavy Riot Bomb ","Baby Digger "
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
.by %00000000
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
; "Liquid Dirt ","Dirt Charge ","Buy me! ","Laser "
.by %00000000
; "White Flag ","Battery ","Hovercraft ","Parachute "
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
.by %01001101
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
.by %11000000
;-------------------------------------------------
; Screen codes of icons (chars) representing a given weapon
WeaponSymbols
.by $40,$41,$42,$43,$44,$45,$46,$47
.by $48,$49,$4a,$4b,$4c,$4d,$4e,$4f
.by $50,$51,$52,$53,$54,$55,$56,$57
.by $58,$59,$5a,$5b,$60,$7b,$1f,$7d
.by $20 ;,$00,$00,$00,$00,$00,$00,$00
;.by $00,$00,$00,$00,$00,$00,$00,$00
.by $5f,$1c,$03,$06,$06,$0a,$1b,$1b ; defensives
.by $1e,$3b,$3d,$3c,$3e,$3f,$1d,$7d
.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 $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 $7d ;ind_Nuclear_Winter_ ;_43
; Names of weapons (16 chars long)
NamesOfWeapons ;the comment is an index in the tables
@@ -522,79 +494,39 @@ NamesOfWeapons ;the comment is an index in the tables
dta d"Liquid Dirt " ; 28
dta d"Dirt Charge " ; 29
dta d"Buy me! " ; 30
dta d"Plasma Blast " ; 31
dta d"Laser " ; 32
; dta d"----------------" ; 33
; dta d"----------------" ; 34
; dta d"----------------" ; 35
; dta d"----------------" ; 36
; dta d"----------------" ; 37
; dta d"----------------" ; 38
; dta d"----------------" ; 39
; dta d"----------------" ; 40
; dta d"----------------" ; 41
; dta d"----------------" ; 42
; dta d"----------------" ; 43
; dta d"----------------" ; 44
; dta d"----------------" ; 45
; dta d"----------------" ; 46
; dta d" " ; 47 ; special (no weapon) name to simplify display
dta d"White Flag " ; 33
dta d"Battery " ; 34
;dta d"Bal Guidance " ; 35
;-----------------------------------
DefensiveEnergy ; OPTIMIZATION - unused name of the weapon
.by 00 ; White Flag
.by 00 ; Heat Guidance
.by 00 ; Bal Guidance
.by 00 ; Horz Guidance
.by 98 ; Let's go!
.by 00 ; Lazy Boy
.by 00 ; Parachute
.by 99 ; Strong Parachute
.by 99 ; Mag Deflector
.by 00 ; Shield
.by 99 ; Heavy Shield
.by 99 ; Force Shield
.by 00 ; Super Mag
.by 99 ; Bouncy Castle
.by 00 ; Long Barrel
.by 00 ; Nuclear Winter
;-----------------------------------
;dta d"Horz Guidance " ; 36
;-----------------------------------
dta d"Laser " ; 31
;------defensives
dta d"White Flag " ; 32
dta d"Battery " ; 33
dta d"Hovercraft " ; 34
dta d"Parachute " ; 35 - no energy
dta d"Strong Parachute" ; 36 - with energy (earlier Battery)
dta d"Mag Deflector " ; 37 - with shield and energy
dta d"Shield " ; 38 - shield for one shot - no energy
dta d"Heavy Shield " ; 39 - shield with energy
dta d"Force Shield " ; 40 - shield with energy and parachute
dta d"Bouncy Castle " ; 41 - with shield and energy
dta d"Long Schlong " ; 42
dta d"Nuclear Winter " ; 43
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!
.by 00 ; Parachute
.by 99 ; Strong Parachute
.by 99 ; Mag Deflector
.by 00 ; Shield
.by 99 ; Heavy Shield
.by 99 ; Force Shield
.by 99 ; Bouncy Castle
.by 00 ; Long Barrel
.by 00 ; Nuclear Winter
weaponsOfDeath ; weapons used in tank death animations
dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27 ; OPTIMIZATION - unused name of the weapon
weaponsOfDeathEnd dta d"Hovercraft " ; 37
;-----------------------------------
dta 0 ; ALIGN to 16
; dta d"Lazy Boy " ; 38
;-----------------------------------
joyToKeyTable; OPTIMIZATION - unused name of the weapon
dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27
weaponsOfDeathEnd
joyToKeyTable
; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15
.by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff
;-----------------------------------
dta d"Parachute " ; 39 - no energy
dta d"Strong Parachute" ; 40 - with energy (earlier Battery)
dta d"Mag Deflector " ; 41 - with shield and energy
dta d"Shield " ; 42 - shield for one shot - no energy
dta d"Heavy Shield " ; 43 - shield with energy
dta d"Force Shield " ; 44 - shield with energy and parachute
;dta d"Super Mag " ; 45
;-----------------------------------
gameOverSpritesTop ; OPTIMIZATION - unused name of the weapon
; end of the Gover sprites by number of players
; 1 2 3 4 5 6
.by 130,130,136,142,148,154
;-------decimal constans
zero
digits dta d"0123456789"
;-----------------------------------
dta d"Bouncy Castle " ; 46 - with shield and energy
dta d"Long Schlong " ; 47
dta d"Nuclear Winter " ; 48
;-----------------------------------
keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters)
@@ -610,6 +542,14 @@ scrcodes
dta d"qrstuvwx"
dta d"yz123456"
dta d"7890. " ; "-"
;-----------------------------------
gameOverSpritesTop
; end of the Gover sprites by number of players
; 1 2 3 4 5 6
.by 130,130,136,142,148,154
;-------decimal constans
zero
digits dta d"0123456789"
;------credits
CreditsStart
+59 -97
View File
@@ -41,70 +41,50 @@ char_tank2___________ = $24
char_tank3___________ = $28
;Weapon prices (*10 on screen)
price_Baby_Missile___ = 0 ;_0
price_Missile________ = 96 ;_1
price_Baby_Nuke______ = 111 ;_2
price_Nuke___________ = 144 ;_3
price_LeapFrog_______ = 192 ;_4
price_Funky_Bomb_____ = 293 ;_5
price_MIRV___________ = 456 ;_6
price_Death_s_Head___ = 337 ;_7
price_Napalm_________ = 125 ;_8
price_Hot_Napalm_____ = 162 ;_9
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 ;430 ;_30
price_Plasma_Blast___ = $ffff ;274 ;_31
price_Laser__________ = 277 ;_32
;price______________33 = 0
;price______________34 = 0
;price______________35 = 0
;price______________36 = 0
;price______________37 = 0
;price______________38 = 0
;price______________39 = 0
;price______________40 = 0
;price______________41 = 0
;price______________42 = 0
;price______________43 = 0
;price______________44 = 0
;price______________45 = 0
;price______________46 = 0
;price______________47 = 0
price_White_Flag_____ = $0 ;_33
price_Battery________ = 300 ;_34
price_Bal_Guidance___ = $ffff ;_35
price_Horz_Guidance__ = $ffff ;_36
price_Floating_Tank__ = 352 ;_37
price_Lazy_Boy_______ = $ffff ;_38
price_Parachute______ = 234 ;_39
price_StrongParachute = 1000 ;_40
price_Mag_Deflector__ = 745 ;_41
price_Shield_________ = 224 ;_42
price_Heavy_Shield___ = 628 ;_43
price_Force_Shield___ = 1100 ;_44
price_Super_Mag______ = $ffff ;_45
price_Bouncy_Castle__ = 512 ;_46
price_Long_Barrel____ = 2100 ;_47
price_Nuclear_Winter_ = 1000 ;_48
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_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_Nuclear_Winter_ = 1000 ;_43
;Weapon indexes (numbers)
ind_Baby_Missile___ = 0
first_offensive____ = ind_Baby_Missile___
@@ -138,42 +118,24 @@ ind_Ton_of_Dirt____ = 27
ind_Liquid_Dirt____ = 28
ind_Dirt_Charge____ = 29
ind_Buy_me_________ = 30
ind_Plasma_Blast___ = 31
ind_Laser__________ = 32
ind_Laser__________ = 31
last_offensive_____ = ind_Laser__________
;ind______________33 = 0
;ind______________34 = 0
;ind______________35 = 0
;ind______________36 = 0
;ind______________37 = 0
;ind______________38 = 0
;ind______________39 = 0
;ind______________40 = 0
;ind______________41 = 0
;ind______________42 = 0
;ind______________43 = 0
;ind______________44 = 0
;ind______________45 = 0
;ind______________46 = 0
;ind______________47 = 0
ind_White_Flag_____ = 33
ind_White_Flag_____ = 32
first_defensive____ = ind_White_Flag_____
ind_Battery________ = 34
ind_Bal_Guidance___ = 35
ind_Horz_Guidance__ = 36
ind_Floating_Tank__ = 37
ind_Lazy_Boy_______ = 38
ind_Parachute______ = 39
ind_StrongParachute = 40
ind_Mag_Deflector__ = 41
ind_Shield_________ = 42
ind_Heavy_Shield___ = 43
ind_Force_Shield___ = 44
ind_Super_Mag______ = 45
ind_Bouncy_Castle__ = 46
ind_Long_Barrel____ = 47
ind_Nuclear_Winter_ = 48
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_Nuclear_Winter_ = 43
last_defensive_____ = ind_Nuclear_Winter_
number_of_offensives = last_offensive_____ - first_offensive____+1
number_of_defensives = (last_defensive_____ - first_defensive____+1)
;--------------------------------
; names of RMT instruments (sfx)
;--------------------------------
+16 -3
View File
@@ -18,14 +18,27 @@ OptionsHere
dta d"Seppuku : nevr rare norm oftn alws "
dta d"Mountains: NL BE CZ CH NP "
dta d"Walls : none wrap bump boxy rand "
;; 01234567890123456789012345678901
; dta d"Players: 2 3 4 5 6 "
; dta d"Cash :none 2K 8K 12K 20K"
; dta d"Gravity:0.2G 0.5G 1G 2G 4G "
; dta d"Wind : 1B 3B 5B 7B 9B "
; dta d"Rounds : 10 20 30 40 50 "
; dta d"Missile:slug slow norm fast hare"
; dta d"Seppuku:nevr rare norm oftn alws"
; dta d"Hills : NL BE CZ CH NP "
; dta d"Walls :none wrap bump boxy rand"
OptionsScreenEnd
;-----------------------------------------------
ListOfWeapons
; 0123456789012345678901234567890123456789
:36 dta d" "
; 0123456789012345678901234567890123456789
; :number_of_offensives dta d" "
:33 dta d" "
ListOfWeapons1End
ListOfDefensiveWeapons
:16 dta d" "
; :number_of_defensives dta d" "
:16 dta d" "
ListOfDefensiveWeaponsEnd ;constant useful when clearing
NameScreen
dta d" Enter names of players "
+3 -3
View File
@@ -601,7 +601,7 @@ AfterManualShooting
; defensive weapons without flight handling
ldx TankNr
lda ActiveDefenceWeapon,x
cmp #ind_Floating_Tank__ ; Floating Tank
cmp #ind_Hovercraft_____
beq GoFloat
cmp #ind_White_Flag_____ ; White Flag
beq ShootWhiteFlag
@@ -1192,9 +1192,9 @@ CreditsScroll
sta COLPF2
inc CreditsVScrol
lda CreditsVScrol
cmp #32 ;not to fast
cmp #32 ;not too fast
beq nextlinedisplay
:2 lsr ;not to fast
:2 lsr ;not too fast
sta VSCROL
jmp EndOfDLI_GO
nextlinedisplay
BIN
View File
Binary file not shown.
+8 -21
View File
@@ -699,25 +699,13 @@ WeHaveOffset
bne @-
; add to the address of the list
clc
lda xbyte
adc #<ListOfWeapons
tay
lda xbyte+1
adc #>ListOfWeapons
sta xbyte+1
stx xbyte
txa ; now there is zero here
adw xbyte #ListOfWeapons
ldy #0
ClearList1
tya
sta (xbyte),y
iny
bne DoNotIncHigher1
inc xbyte+1
DoNotIncHigher1
cpy #<ListOfWeapons1End
bne ClearList1
ldx xbyte+1
cpx #>ListOfWeapons1End
inw xbyte
cpw xbyte #ListOfWeapons1End
bne ClearList1
; And the same we do with the second list
@@ -955,14 +943,14 @@ DefActivationEnd
.proc PutLitteChar
; first let's clear both lists from little chars
mwa #ListOfWeapons xbyte
ldx #last_defensive_____ ; there are 52 lines total
ldx #last_defensive_____ ; there are xx lines total
ldy #$00
EraseLoop
tya ; lda #$00
sta (xbyte),y
adw xbyte #32 ; narrow screen
dex
bpl EraseLoop
bne EraseLoop
; now let's check which list is active now
bit WhichList
@@ -979,8 +967,7 @@ AddLoop2
SelectList2
lda #$7f ; little char (tab) - this is the pointer
sta (xbyte),y
; now we clear flags of presence of list "out of screen"
; unfortunately I am now sure what it means... :(
; now we clear up and down arrows indicating more content below or above screen
ldx #<EmptyLine
ldy #>EmptyLine
stx MoreUpdl
+8 -8
View File
@@ -273,9 +273,9 @@ temptankNr .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____)
.ds (last_offensive_____ - first_offensive____+1)
IndexesOfWeaponsL2
.ds (last_defensive_____ - first_defensive____)
.ds (last_defensive_____ - first_defensive____+1)
;----------------------------------------------------
; variables storing amount of weapons on the first and second
@@ -329,17 +329,17 @@ LaserCoordinate .DS 8 ; 2,2,2,2
; from $30 the defensive weapons begin
TanksWeapons
TanksWeapon1
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
TanksWeapon2
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
TanksWeapon3
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
TanksWeapon4
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
TanksWeapon5
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
TanksWeapon6
.DS [64]
.DS [last_defensive_____ - first_offensive____ +1]
mountaintable ;table of mountains (size=screenwidth)
.DS [screenwidth]
+34 -60
View File
@@ -19,39 +19,38 @@
pha
rts
ExplosionRoutines
.word babymissile-1
.word missile-1
.word babynuke-1
.word nuke-1
.word leapfrog-1
.word funkybomb-1
.word mirv-1
.word deathshead-1
.word napalm-1 ;napalm
.word hotnapalm-1 ;hotnapalm
.word tracer-1
.word tracer-1 ;smoketracer
.word babyroller-1
.word roller-1
.word heavyroller-1
.word riotcharge-1
.word riotblast-1
.word riotbomb-1
.word heavyriotbomb-1
.word babydigger-1
.word digger-1
.word heavydigger-1
.word babysandhog-1
.word sandhog-1
.word heavysandhog-1
.word dirtclod-1
.word dirtball-1
.word tonofdirt-1
.word liquiddirt-1
.word dirtcharge-1
.word VOID-1 ;earthdisrupter
.word VOID-1 ;plasmablast
.word laser-1
.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 VOID-1 ;Buy_me_________;_30
.word laser-1 ;Laser__________;_31
VOID
tracer
@@ -670,21 +669,6 @@ DiggerCharacter
mva EndOfTheBarrelY ybyte
mva #0 ybyte+1
;clc
;lda xtankstableL,x
;adc EndOfTheBarrelX,y ; correction of the end of the barrel point (X)
;sta xbyte
;lda xtankstableH,x
;adc #0
;sta xbyte+1
;sec
;lda ytankstable,x
;sbc EndOfTheBarrelY,y ; correction of the end of the barrel point (Y)
;sta ybyte
;lda #$00
;sbc #$00
;sta ybyte+1
mwa xdraw LaserCoordinate
mwa ydraw LaserCoordinate+2
mwa xbyte LaserCoordinate+4
@@ -3028,7 +3012,8 @@ RangesChecked
.endp
;--------------------------------------------------
.proc ClearScreenSoilRange
; cleanup of the soil fall down ranges (left and right) ;--------------------------------------------------
; cleanup of the soil fall down ranges (left and right)
;--------------------------------------------------
mwa #screenwidth RangeLeft
lda #0
sta RangeRight
@@ -3043,17 +3028,6 @@ RangesChecked
jsr DecreaseWeapon
; and here we have amount of possessed ammo for given weapon
sta WeaponDepleted
; ;cmp #0
; bne AmmunitionDecreased
; ;lda #0 ;if ammo for given weapon ends
; sta ActiveWeapon,x ;then set to default weapon (baby missile)
;AmmunitionDecreased
; lda #99
; ldy #0
; sta (weaponPointer),y ;baby missile - always 99 pieces
;
; ;there is a good value in weaponPointer after jsr DecreaseWeapon
;
rts
.endp