; @com.wudsn.ide.asm.mainsourcefile=scorch.asm .IF *>0 ;this is a trick that prevents compiling this file alone ;=================================================================================== ;==========================CONSTANT TABLES, do not erase!=========================== ;=================================================================================== TankColoursTable .BYTE $86,$46,$c6,$28,$c6,$ee TankStatusColoursTable .BYTE $80,$40,$c4,$20,$c0,$e4 dliColorsBack :10 .by $02,$00 dliColorsFore .by $0a CashOptionL ;(one zero less than on the screen) .by 0,<200,<800,<1200,<2000 CashOptionH .by 0,>200,>800,>1200,>2000 GravityTable .by 10,20,25,30,40 MaxWindTable .by 5,20,40,70,99 RoundsTable .by 10,20,30,40,50 flyDelayTable .by 255,150,75,35,1 seppukuTable .by 255, 45,25,15,9 mountainsDeltaTableH .by 0,1,3,5,7 mountainsDeltaTableL .by $1f, $7f, $ff, $7f, $ff ;------------------------------------------------ LevelNameBeginL ; begins of level names .by NamesOfLevels,>(NamesOfLevels+10),>(NamesOfLevels+20) .by >(NamesOfLevels+32),>(NamesOfLevels+42),>(NamesOfLevels+52) .by >(NamesOfLevels+64),>(NamesOfLevels+74),>(NamesOfLevels+84) ;-------------- TanksWeaponsTableL .by TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6 ;-----4x4 texts----- LineTop dta d"(%%%%%%%%%%%%)", $ff ;# - vertical, () * +, % - horizontal LineBottom dta d"*%%%%%%%%%%%%+", $ff LineEmpty dta d"# #", $ff LineHeader2 dta d"# RESULTS #", $ff LineGameOver dta d"# GAME OVER #", $ff seppukuText dta d"# SEPPUKU! #", $ff areYouSureText dta d"# SURE? Y/N #", $ff lineClear dta d" ", $ff ;----------- pmtableL ; addressess of the P/M memory for 6 tanks .by <(pmgraph+$400) .by <(pmgraph+$500) .by <(pmgraph+$600) .by <(pmgraph+$700) .by <(pmgraph+$300) ; this is a missile background .by <(pmgraph+$300) ; this is a missile background pmtableH .by >(pmgraph+$400) .by >(pmgraph+$500) .by >(pmgraph+$600) .by >(pmgraph+$700) .by >(pmgraph+$300) .by >(pmgraph+$300) ;----------- sintable .by 0 .by 4 .by 8 .by 13 .by 17 .by 22 .by 26 .by 31 .by 35 .by 40 .by 44 .by 48 .by 53 .by 57 .by 61 .by 66 .by 70 .by 74 .by 79 .by 83 .by 87 .by 91 .by 95 .by 100 .by 104 .by 108 .by 112 .by 116 .by 120 .by 124 .by 128 .by 131 .by 135 .by 139 .by 143 .by 146 .by 150 .by 154 .by 157 .by 161 .by 164 .by 167 .by 171 .by 174 .by 177 .by 181 .by 184 .by 187 .by 190 .by 193 .by 196 .by 198 .by 201 .by 204 .by 207 .by 209 .by 212 .by 214 .by 217 .by 219 .by 221 .by 223 .by 226 .by 228 .by 230 .by 232 .by 233 .by 235 .by 237 .by 238 .by 240 .by 242 .by 243 .by 244 .by 246 .by 247 .by 248 .by 249 .by 250 .by 251 .by 252 .by 252 .by 253 .by 254 .by 254 .by 255 .by 255 .by 255 .by 255 .by 255 .by 255 ;anti self destruction byte linetableL :screenheight+1 .by <(display+screenBytes*#) linetableH :screenheight+1 .by >(display+screenBytes*#) ;---------------------------- bittable .by $80,$40,$20,$10,$08,$04,$02,$01 bittable2 .by $7f,$bf,$df,$ef,$f7,$fb,$fd,$fe ;---------------------------- disktance ;tanks distance .by 0,0 .by screenwidth/3 .by screenwidth/4 .by screenwidth/5 .by screenwidth/6 .by screenwidth/7 ;max number of players=6 ; this table is for deciding where a tank should slide ; accordingly to what is below the tank ; values in table mean that tank is moving to the left SlideLeftTable .BY %00000001 .BY %00000010 .BY %00000011 .BY %00000100 .BY %00000101 .BY %00000110 .BY %00000111 .BY %00001100 ;----------------------------------------------------------- ; this table changes Angle to the appropriate tank character BarrelTable .by $2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2A,$2A, .by $2A,$2A,$2A,$2A,$2A,$2A,$28,$28,$28,$28, .by $28,$28,$28,$28,$28,$26,$26,$26,$26,$26, .by $26,$26,$26,$24,$24,$24,$24,$24,$24,$24, .by $24,$22,$22,$22,$22,$22,$22,$22,$22,$22, .by $20,$20,$20,$20,$20,$20,$20,$20,$1E,$1E, .by $1E,$1E,$1E,$1E,$1E,$1E,$1C,$1C,$1C,$1C, .by $1C,$1C,$1C,$1C,$1C,$1A,$1A,$1A,$1A,$1A, .by $1A,$1A,$1A,$18,$18,$18,$18,$18,$18,$18, ;.by $18, .by $16,$16,$16,$16,$16,$16,$16,$16,$14,$14, .by $14,$14,$14,$14,$14,$14,$12,$12,$12,$12, .by $12,$12,$12,$12,$12,$10,$10,$10,$10,$10, .by $10,$10,$10,$0E,$0E,$0E,$0E,$0E,$0E,$0E, .by $0E,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C, .by $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$08,$08, .by $08,$08,$08,$08,$08,$08,$06,$06,$06,$06, .by $06,$06,$06,$06,$06,$04,$04,$04,$04,$04, .by $04,$04,$04,$02,$02,$02,$02,$02,$02,$02, .by $02, EndOfTheBarrelX ; right angles from 0 (horizontally right) to 90 (up) .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,6,6,6,6,6,6,6,6,6, .by 5,5,5,5,5,5,5,5,5,5, .by 4,4,4,4,4,4,4,4,4,4, ;.by 4, ; left angles from 90 (vertical) to 180 (horizontally left) .by 3,3,3,3,3,3,3,3,3,3, .by 3,2,2,2,2,2,2,2,2,2, .by 2,1,1,1,1,1,1,1,1,1, .by 0,0,0,0,0,0,0,0,0,0, .by 0,0,0,0,0,0,0,0,0,0, .by 0,0,0,0,0,0,0,0,0,0, .by 0,0,0,0,0,0,0,0,0,0, .by 0,0,0,0,0,0,0,0,0,0, .by 0,0,0,0,0,0,0,0,0,0, .by 0 EndOfTheBarrelY ; right angles from 0 (horizontally right) to 90 (up) ; one pixel Up for fix problems with colision check ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 .by 4,4,4,4,4,4,4,4,4,4, .by 4,4,4,4,4,4,4,4,4,4, .by 4,4,4,4,4,4,4,5,5,5, .by 5,5,5,5,5,5,5,6,6,6, .by 6,6,6,6,6,6,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, ;.by 7, ; left angles from 90 (vertical) to 180 (horizontally left) .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,7,7,7,7,7, .by 7,7,7,7,7,6,6,6,6,6, .by 6,6,6,6,5,5,5,5,5,5, .by 5,5,5,5,4,4,4,4,4,4, .by 4,4,4,4,4,4,4,4,4,4, .by 4,4,4,4,4,4,4,4,4,4, .by 4, ; one pixel Up for fix problems with colision check ;.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3 ;------------------------------------------------- TanksNamesDefault dta d"1st.Tank" dta d"2nd.Tank" dta d"3rd.Tank" dta d"4th.Tank" dta d"5th.Tank" dta d"6th.Tank" 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_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_Earth_Disrupter .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_Vert_Guidance__ .by >price_Lazy_Boy_______ .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_Auto_Defense___ .by >price_Fuel_Tank______ .by >price_Nuclear_Winter_ WeaponPriceL .by