mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 06:39:46 +02:00
Compare commits
116 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 93b16bd55a | |||
| 752b84ae2e | |||
| d751379361 | |||
| 01d941b013 | |||
| b63b7a3fb1 | |||
| c28d243719 | |||
| 51975ccfbf | |||
| 541a7566cb | |||
| 48bfd3824d | |||
| e307f1a14a | |||
| 2fecc8d630 | |||
| 1998c98784 | |||
| 4dc9b4ebb0 | |||
| 8e60cfa723 | |||
| 9ee021b1f5 | |||
| d738e6a6e8 | |||
| d0838fa163 | |||
| a353e3bdb9 | |||
| 5933b00153 | |||
| a5add9d9c4 | |||
| f2c7b9c5a5 | |||
| e87d875467 | |||
| 876ea45eaf | |||
| b164a79fd4 | |||
| 0984aee64f | |||
| 51c257c8e8 | |||
| af4eb201b2 | |||
| 85d0fb4778 | |||
| 0a7c76f74a | |||
| 6d5f83195f | |||
| acd3a6abe6 | |||
| bb70b2495a | |||
| 39433a8cf4 | |||
| 1765489474 | |||
| 97c01d2c61 | |||
| 3fb83583c3 | |||
| 2a5595f3c9 | |||
| a860c4dfa1 | |||
| 7bd7105374 | |||
| 00099f4c27 | |||
| 4caed19cd1 | |||
| e9a59b1475 | |||
| 011364cbeb | |||
| 279a47b29f | |||
| 6ece26237c | |||
| 3d159f8439 | |||
| 6ac4bbe0cd | |||
| 4583641207 | |||
| 4a32abdc83 | |||
| d5c1e1e397 | |||
| 4fe360d63c | |||
| c9ceb58117 | |||
| e10514debd | |||
| 2907fe7a91 | |||
| a0d5d22e74 | |||
| 1ea62798c8 | |||
| 42facad64e | |||
| 2c98d73877 | |||
| 4ae4403448 | |||
| 242bc4586c | |||
| eda0e65189 | |||
| 8613854f80 | |||
| 1c277b0e6f | |||
| 623c9c9583 | |||
| ce55bf0d97 | |||
| 537f88e4c6 | |||
| 9aaa4fec69 | |||
| 67b5dfb110 | |||
| 4200e60d47 | |||
| 7324203925 | |||
| 634c2f83e9 | |||
| 18f88705e5 | |||
| fe6bd17a66 | |||
| 1d8f26d562 | |||
| 2bb8a743e1 | |||
| 708a7b4aa9 | |||
| 8153670711 | |||
| ab140ed5ca | |||
| cc3e2d1845 | |||
| 98e866abdd | |||
| ffa748fb68 | |||
| de047779ce | |||
| 3c685b2811 | |||
| c86dcd7c59 | |||
| f924868459 | |||
| 2992bd40b3 | |||
| b19d218670 | |||
| 8ab450ff48 | |||
| 5e2ab7f206 | |||
| cd69bf22db | |||
| ff8c4d9329 | |||
| 83e128a1b5 | |||
| cc8688263a | |||
| b5bf6ecc30 | |||
| e2c85c98c2 | |||
| c47a22a833 | |||
| cd4275226a | |||
| cb270be865 | |||
| 7df1d5eff9 | |||
| c3f6e2399d | |||
| 598860b7d0 | |||
| c1aa177767 | |||
| eb7f6369de | |||
| 41900d7671 | |||
| 6a6689b9b7 | |||
| 836c67afcf | |||
| 1b983b8d92 | |||
| 53e9f89012 | |||
| cf40bf905d | |||
| 91b613f166 | |||
| eace9eb5cf | |||
| 4c6b56a1e2 | |||
| 7b86fc98cd | |||
| 186cacf5ba | |||
| 031416b8e6 | |||
| 1394524a26 |
@@ -14,9 +14,9 @@ Contributors:
|
||||
- Bocianu (@bocianu) - important ideas, FujiNet implementation, QA
|
||||
- Emkay - splash screen music
|
||||
|
||||
QA: Probabilitydragon, KrzysRog, Beeblebrox, EnderDude, lopezpb, Dracon, brad-colbert
|
||||
QA: Probabilitydragon, KrzysRog, Beeblebrox, EnderDude, lopezpb, Dracon, brad-colbert, archon800, Shaggy the Atarian
|
||||
|
||||
You can contact us at pecus@poczta.fm or pirx@5oft.pl
|
||||
You can contact us via [AtariAge](https://atariage.com) or [AtariOnLine](https://atarionline.pl) forums.
|
||||
|
||||
This source code was originally compiled under [OMC65 crossassembler](https://github.com/pkali/omc65) and on 2012-06-21 translated to [mads](https://github.com/tebe6502/Mad-Assembler).
|
||||
|
||||
@@ -47,6 +47,70 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin
|
||||
|
||||
## Changes:
|
||||
|
||||
###### Build 147
|
||||
2022-07-10
|
||||
LOST build. We were watching [LOST party](https://www.lostparty.pl/2022/) streams so maybe a little less done, but still some nice improvements.
|
||||
- new weapons by @Pecusx - Napalm and Hot Napalm. Fire penetrates all shields, so beware!
|
||||
- status bar showing outdated info on the beginning of the round fix
|
||||
- various small optimizations incl. memory usage, soildown, weapon ranges
|
||||
- improved shapes of Heavy and Force Shields
|
||||
|
||||
Issues closed:
|
||||
- revert to the old but slightly improved version of showing angles (#105)
|
||||
- zero page loading eliminated (#106)
|
||||
- active player name appear over his tank when aiming (#107)
|
||||
- configurable mountain heights (The Netherlands, Belgium, Czechia, Switzerland, Nepal) (#86)
|
||||
- angle speeds up when joystick / keyboard are pressed (#75)
|
||||
|
||||
###### Build 146
|
||||
2022-07-03
|
||||
Super heavy rewrite build.
|
||||
Not much changed visually since the last build, but really large parts of the code were rewritten, optimized and improved. A fresh swath of buggies certainly introduced, too.
|
||||
- completely new tank falling routine by @Pecusx - over 300 bytes saved, complexity reduced, more just energy deduction when falling.
|
||||
- silly angle system rewritten to a proper, primary school angling. BTW - I had to dig into 8th grade trig to make it work. About 200 bytes saved, complexity reduced. Next build will have improved angle speed UI. I will also allow for an easier improvement of tank visuals.
|
||||
- Weapon price and quantity balance - this is our honest attempt to make game more fun. We'll accept any critique and improvement proposals.
|
||||
- New AI opponent - Tosser! Not much better than Poolshark, but still beats sharks most of the time.
|
||||
- AI opponents can purchase defensive weapons which make playing against AI somewhat more challenging.
|
||||
- Improved Laser. It is still not ideal, but better. Still hard to aim :]
|
||||
- Few small parachute-related bugs fixed
|
||||
- Death's Head bug fix
|
||||
|
||||
Issues closed:
|
||||
- https://github.com/pkali/scorch_src/issues/87 Angles are reasonable now. PROFIT!!!
|
||||
|
||||
|
||||
###### Build 145
|
||||
2022-06-26
|
||||
Possibly last round of weapon additions!
|
||||
|
||||
@Pecusx added
|
||||
- working White Flag -- it is a way to give up while not making opponents richer!
|
||||
- Battery - a must for every tank with low energy.
|
||||
- Strong Parachute - like a normal parachute, but stronger (it has energy and can work more than once)
|
||||
- Nuclear Winter - a quick and efficient solution to global worming, err, warning, WARMING!
|
||||
|
||||
@mikerro added new SFX and in-game-tunes.
|
||||
- Pressing [S] turns on/off SFX (when aiming). Pressing [M] turns on/off in-game tunes.
|
||||
|
||||
Tickets closed:
|
||||
- https://github.com/pkali/scorch_src/issues/54 - holding a joystick up or down speeds up force change. It makes playing with a joystick much nicer.
|
||||
- https://github.com/pkali/scorch_src/issues/76 - a beginning of visual tweaks by @6502adam
|
||||
- infinite defensive weapons purchase bug fixed, to the chagrin of some...
|
||||
|
||||
###### Build 144
|
||||
2022-06-19
|
||||
Father's day release comes with the most anticipated new feature: defensive weapons. Thanks to @Pecus we have 5 completely new weapons and a more reasonably working parachute. The stub of the instruction manual describing these weapons is available here: https://github.com/pkali/scorch_src/wiki/Instruction-manual.
|
||||
|
||||
The new inventory system has been added. Call it by pressing the "I" key or short-pressing fire. Select the weapon to use by moving the joystick or cursor keys right. Switch between offensive and defensive weapons by moving the joystick left. Fire/escape to quit inventory.
|
||||
|
||||
Another significant playability change is #54 - it is not finished yet, but keeping the joystick up or down makes force increase/decrease faster. Also - short press of fire calls Inventory, long press fires the shell. The timings are experimental, please let me know if this needs a modification/improvement.
|
||||
|
||||
Tickets closed:
|
||||
* https://github.com/pkali/scorch_src/issues/92 - less unnecessary cleaning of the offensive texts
|
||||
* https://github.com/pkali/scorch_src/issues/89 - improved collisions with tank
|
||||
* https://github.com/pkali/scorch_src/issues/71 - ditto
|
||||
* https://github.com/pkali/scorch_src/issues/11, https://github.com/pkali/scorch_src/issues/26, https://github.com/pkali/scorch_src/issues/8, https://github.com/pkali/scorch_src/issues/20 - new inventory system
|
||||
|
||||
###### Build 143
|
||||
2022-06-05
|
||||
Rewrite build. We redone several important parts of the game to allow for bug fixes and requested features. Generally it was a great success, but some new bugs appeared. This build is nice for the eye, but beware, no mercy for testers again :)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
; greeeting to myself 10 years older in 2013-11-09... still no idea
|
||||
|
||||
;----------------------------------------------
|
||||
MakeLowResDistances .proc
|
||||
.proc MakeLowResDistances
|
||||
; create low precision table of positions
|
||||
; by dividing positions by 4
|
||||
|
||||
@@ -30,18 +30,25 @@ loop
|
||||
.endp
|
||||
|
||||
;----------------------------------------------
|
||||
ArtificialIntelligence .proc ;
|
||||
; A - skill of the TankNr
|
||||
.proc ArtificialIntelligence ;
|
||||
; A - skill of the TankNr (in X)
|
||||
; returns shoot energy and angle in
|
||||
; ForceTable/L/H and AngleTable
|
||||
;----------------------------------------------
|
||||
asl
|
||||
tax
|
||||
:2 dex ;credit KK
|
||||
lda AIRoutines+1,x
|
||||
tay
|
||||
:2 dey ;credit KK
|
||||
lda AIRoutines+1,y
|
||||
pha
|
||||
lda AIRoutines,x
|
||||
lda AIRoutines,y
|
||||
pha
|
||||
|
||||
; common values used in AI routines
|
||||
; address of weapons table (for future use)
|
||||
lda TanksWeaponsTableL,x
|
||||
sta temp
|
||||
lda TanksWeaponsTableH,x
|
||||
sta temp+1
|
||||
rts
|
||||
.endp
|
||||
;----------------
|
||||
@@ -49,15 +56,14 @@ AIRoutines
|
||||
.word Moron-1
|
||||
.word Shooter-1 ;Shooter
|
||||
.word Poolshark-1 ;Poolshark
|
||||
.word Poolshark-1 ;Toosser
|
||||
.word Poolshark-1 ;Chooser
|
||||
.word Poolshark-1 ;Spoiler
|
||||
.word Poolshark-1 ;Cyborg
|
||||
.word Poolshark-1 ;Unknown
|
||||
.word Tosser-1 ;Tosser
|
||||
.word Tosser-1 ;Chooser
|
||||
.word Tosser-1 ;Spoiler
|
||||
.word Tosser-1 ;Cyborg
|
||||
.word Tosser-1 ;Unknown
|
||||
|
||||
;----------------------------------------------
|
||||
Moron .proc
|
||||
ldx TankNr
|
||||
.proc Moron
|
||||
jsr RandomizeAngle
|
||||
sta NewAngle
|
||||
mwa #80 RandBoundaryLow
|
||||
@@ -66,21 +72,29 @@ Moron .proc
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
Shooter .proc
|
||||
.proc Shooter
|
||||
|
||||
ldx TankNr
|
||||
lda PreviousAngle,x
|
||||
ora PreviousEnergyL,x
|
||||
ora PreviousEnergyH,x
|
||||
beq firstShoot
|
||||
|
||||
lda PreviousAngle,x
|
||||
cmp #90
|
||||
bcs shootingLeftAtThisMomentOfTime
|
||||
; shooting right at this moment of time
|
||||
sec
|
||||
sbc #5
|
||||
cmp #10
|
||||
bcs @+ ;not smaller than 10
|
||||
bcc firstShoot ; GET THE aim againg
|
||||
|
||||
shootingLeftAtThisMomentOfTime
|
||||
|
||||
clc
|
||||
adc #5
|
||||
bmi @+
|
||||
cmp #90
|
||||
bcc @+
|
||||
lda #(-90)
|
||||
cmp #170 ; maximum shooter angle
|
||||
bcs firstShoot
|
||||
@
|
||||
sta NewAngle
|
||||
|
||||
@@ -89,42 +103,36 @@ Shooter .proc
|
||||
sbc #5
|
||||
sta ForceTableL,x
|
||||
lda PreviousEnergyH,x
|
||||
sbc #0
|
||||
sbc #0
|
||||
sta ForceTableH,x
|
||||
jmp endo
|
||||
|
||||
firstShoot
|
||||
; compare the x position with the middle of the screen
|
||||
lda xTanksTableH,x
|
||||
cmp #>(screenwidth/2)
|
||||
bne @+
|
||||
lda xTanksTableL,x
|
||||
sta temp
|
||||
lda xTanksTableH,x
|
||||
sta temp+1
|
||||
cpw temp #(screenwidth/2)
|
||||
bcs tankIsOnTheRight
|
||||
|
||||
lda RANDOM
|
||||
and #$1F
|
||||
clc
|
||||
adc #5
|
||||
cmp #<(screenwidth/2)
|
||||
@ bcc tankIsOnTheRight
|
||||
|
||||
; enemy tank is on the left
|
||||
randomize 95 125
|
||||
sta NewAngle
|
||||
jmp forceNow
|
||||
bne forceNow
|
||||
|
||||
tankIsOnTheRight
|
||||
lda RANDOM
|
||||
and #$1F
|
||||
clc
|
||||
adc #(-85)
|
||||
;lda #-45
|
||||
sta NewAngle
|
||||
randomize 55 85
|
||||
sta NewAngle
|
||||
|
||||
forceNow
|
||||
mwa #100 RandBoundaryLow
|
||||
mwa #800 RandBoundaryHigh
|
||||
ldx TankNr ;this is possibly not necessary
|
||||
;ldx TankNr ;this is possibly not necessary
|
||||
jsr RandomizeForce
|
||||
|
||||
endo
|
||||
ldx TankNr ;this is possibly not necessary
|
||||
;ldx TankNr ;this is possibly not necessary
|
||||
jsr RandomizeForce.LimitForce
|
||||
lda NewAngle
|
||||
sta PreviousAngle,x
|
||||
@@ -135,28 +143,66 @@ endo
|
||||
|
||||
; choose the best weapon
|
||||
|
||||
lda TanksWeaponsTableL,x
|
||||
sta temp
|
||||
lda TanksWeaponsTableH,x
|
||||
sta temp+1
|
||||
ldy #32 ;the last weapon
|
||||
loop
|
||||
dey
|
||||
lda (temp),y
|
||||
lda (temp),y ; this is set up before calling the routine, has address of TanksWeaponsTable
|
||||
beq loop
|
||||
tya
|
||||
sta ActiveWeapon,x
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
Poolshark .proc
|
||||
|
||||
.proc Poolshark
|
||||
; defensives
|
||||
; if low energy ten use battery
|
||||
lda Energy,x
|
||||
cmp #30
|
||||
bcs EnoughEnergy
|
||||
; lower than 30 units - check battery
|
||||
ldy #ind_Battery________
|
||||
lda (temp),y ; has address of TanksWeaponsTable
|
||||
beq NoBatteries
|
||||
; we have batteries - use one
|
||||
clc
|
||||
sbc #1
|
||||
sta (temp),y
|
||||
lda #99
|
||||
sta Energy,x
|
||||
NoBatteries
|
||||
EnoughEnergy
|
||||
; use best defensive :)
|
||||
; but not allways
|
||||
randomize 1 3
|
||||
cmp #1
|
||||
bne NoUseDefensive
|
||||
; first check check if any is in use
|
||||
lda ActiveDefenceWeapon,x
|
||||
bne DefensiveInUse
|
||||
ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon
|
||||
@
|
||||
dey
|
||||
cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use)
|
||||
beq NoUseDefensive
|
||||
lda (temp),y ; has address of TanksWeaponsTable
|
||||
beq @-
|
||||
tya
|
||||
; activate defensive weapon
|
||||
sta ActiveDefenceWeapon,x
|
||||
lda DefensiveEnergy,y
|
||||
sta ShieldEnergy,x
|
||||
; decrease in inventory
|
||||
clc
|
||||
sbc #1
|
||||
sta (temp),y ; has address of TanksWeaponsTable
|
||||
NoUseDefensive
|
||||
DefensiveInUse
|
||||
firstShoot
|
||||
;find nearest tank neighbour
|
||||
jsr MakeLowResDistances
|
||||
mva #$ff temp2 ; min possible distance
|
||||
|
||||
ldx TankNr
|
||||
;ldx TankNr
|
||||
ldy NumberOfPlayers
|
||||
dey
|
||||
|
||||
@@ -217,7 +263,7 @@ forceNow
|
||||
jsr RandomizeForce
|
||||
|
||||
endo
|
||||
ldx TankNr ;this is possibly not necessary
|
||||
;ldx TankNr ;this is possibly not necessary
|
||||
|
||||
; choose the best weapon
|
||||
|
||||
@@ -225,7 +271,7 @@ endo
|
||||
sta temp
|
||||
lda TanksWeaponsTableH,x
|
||||
sta temp+1
|
||||
ldy #32 ;the last weapon
|
||||
ldy #ind_Laser__________ ;the last offensive weapon
|
||||
loop
|
||||
dey
|
||||
lda (temp),y
|
||||
@@ -236,11 +282,39 @@ loop
|
||||
|
||||
;----------------------------------------------
|
||||
AngleTable ; 16 bytes ;ba w $348b L$3350
|
||||
.by 178,186,194,202,210,218,226,234
|
||||
.by 16,24,32,40,48,56,64,72
|
||||
.endp
|
||||
.by 106,114,122,130,138,146,154,162
|
||||
.by 18,26,34,43,50,58,66,74
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
PurchaseAI .proc ;
|
||||
.proc Tosser
|
||||
; use best defensive :)
|
||||
; allways
|
||||
; first check check if any is in use
|
||||
lda ActiveDefenceWeapon,x
|
||||
bne DefensiveInUse
|
||||
ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon
|
||||
@
|
||||
dey
|
||||
cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use)
|
||||
beq NoUseDefensive
|
||||
lda (temp),y ; has address of TanksWeaponsTable
|
||||
beq @-
|
||||
tya
|
||||
; activate defensive weapon
|
||||
sta ActiveDefenceWeapon,x
|
||||
lda DefensiveEnergy,y
|
||||
sta ShieldEnergy,x
|
||||
; decrease in inventory
|
||||
clc
|
||||
sbc #1
|
||||
sta (temp),y
|
||||
DefensiveInUse
|
||||
NoUseDefensive
|
||||
; Toosser is like Poolshark but allways uses defensives
|
||||
jmp Poolshark
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
.proc PurchaseAI ;
|
||||
; A - skill of the TankNr
|
||||
; makes purchase for AI opponents
|
||||
; results of this routine are not visible on the screen
|
||||
@@ -260,21 +334,22 @@ PurchaseAIRoutines
|
||||
.word MoronPurchase-1
|
||||
.word ShooterPurchase-1 ;ShooterPurchase
|
||||
.word PoolsharkPurchase-1 ;PoolsharkPurchase
|
||||
.word PoolsharkPurchase-1 ;ToosserPurchase
|
||||
.word PoolsharkPurchase-1 ;ChooserPurchase
|
||||
.word PoolsharkPurchase-1 ;SpoilerPurchase
|
||||
.word PoolsharkPurchase-1 ;CyborgPurchase
|
||||
.word PoolsharkPurchase-1 ;UnknownPurchase
|
||||
.word TosserPurchase-1 ;TosserPurchase
|
||||
.word TosserPurchase-1 ;ChooserPurchase
|
||||
.word TosserPurchase-1 ;SpoilerPurchase
|
||||
.word TosserPurchase-1 ;CyborgPurchase
|
||||
.word TosserPurchase-1 ;UnknownPurchase
|
||||
|
||||
;----------------------------------------------
|
||||
MoronPurchase
|
||||
.proc MoronPurchase
|
||||
;Moron buys nothing
|
||||
rts
|
||||
|
||||
.endp
|
||||
;-------
|
||||
TryToPurchaseOnePiece .proc
|
||||
.proc TryToPurchaseOnePiece
|
||||
; A - weapon number, better it will be in range(1,32)
|
||||
; TankNr in X
|
||||
; DOES NOT CHANGE X
|
||||
tay
|
||||
lda PurchaseMeTable,y
|
||||
beq SorryNoPurchase
|
||||
@@ -320,28 +395,73 @@ SorryNoPurchase
|
||||
|
||||
|
||||
;----------------------------------------------
|
||||
ShooterPurchase .proc
|
||||
mva #4 tempXroller; number of purchases to perform
|
||||
|
||||
.proc ShooterPurchase
|
||||
; first try to buy defensives
|
||||
mva #2 tempXroller; number of offensive purchases to perform
|
||||
ldx TankNr
|
||||
loop
|
||||
randomize 1 14
|
||||
@
|
||||
randomize ind_Battery________ ind_StrongParachute
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne loop
|
||||
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
PoolsharkPurchase .proc
|
||||
mva #8 tempXroller; number of purchases to perform
|
||||
|
||||
ldx TankNr
|
||||
loop
|
||||
randomize 1 30
|
||||
bne @-
|
||||
|
||||
; and now offensives
|
||||
mva #4 tempXroller; number of offensive purchases to perform
|
||||
;ldx TankNr
|
||||
@
|
||||
randomize ind_Missile________ ind_Heavy_Roller___
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne loop
|
||||
bne @-
|
||||
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
.proc PoolsharkPurchase
|
||||
; first try to buy defensives
|
||||
mva #3 tempXroller; number of offensive purchases to perform
|
||||
ldx TankNr
|
||||
@
|
||||
randomize ind_Battery________ ind_Auto_Defense___
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne @-
|
||||
|
||||
; and now offensives
|
||||
mva #8 tempXroller; number of purchases to perform
|
||||
;ldx TankNr
|
||||
@
|
||||
randomize ind_Missile________ ind_Dirt_Charge____
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne @-
|
||||
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
.proc TosserPurchase
|
||||
|
||||
; what is my money level
|
||||
ldx TankNr
|
||||
lda MoneyH,x ; money / 256
|
||||
sta tempXroller ; perform this many purchase attempts
|
||||
; first try to buy defensives
|
||||
mva #3 tempXroller; number of defensive purchases to perform
|
||||
@
|
||||
randomize ind_Battery________ ind_Auto_Defense___
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne @-
|
||||
|
||||
; and now offensives
|
||||
lda MoneyH,x ; money / 256
|
||||
asl ;*2
|
||||
sta tempXroller ; perform this many purchase attempts
|
||||
@
|
||||
randomize ind_Missile________ ind_Dirt_Charge____
|
||||
jsr TryToPurchaseOnePiece
|
||||
dec tempXroller
|
||||
bne @-
|
||||
|
||||
rts
|
||||
.endp
|
||||
|
||||
+21
-18
@@ -23,17 +23,8 @@ bptr .ds 2
|
||||
cur_pos .ds 1
|
||||
chn_bits .ds 1
|
||||
|
||||
bit_data .byte 1
|
||||
bit_data .ds 1
|
||||
|
||||
.proc get_byte
|
||||
lda song_data+1
|
||||
inc song_ptr
|
||||
bne skip
|
||||
inc song_ptr+1
|
||||
skip
|
||||
rts
|
||||
.endp
|
||||
song_ptr = get_byte + 1
|
||||
|
||||
|
||||
fcnt .ds 2
|
||||
@@ -73,7 +64,7 @@ pmg .ds $0300
|
||||
eif
|
||||
|
||||
song_data
|
||||
ins 'mmm_16.lzs'
|
||||
ins 'mmm_16.lzs'
|
||||
song_end
|
||||
|
||||
POKEY = $D200
|
||||
@@ -86,6 +77,8 @@ buffers
|
||||
;
|
||||
.proc init_song
|
||||
|
||||
mva #1 bit_data
|
||||
|
||||
; Example: here initializes song pointer:
|
||||
|
||||
;mwa #song_data song_ptr
|
||||
@@ -182,18 +175,28 @@ skip_chn:
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Check for ending of song and jump to the next frame
|
||||
;
|
||||
.proc check_end_song
|
||||
lda song_ptr + 1
|
||||
cmp #>song_end
|
||||
|
||||
; not checking really so the tune gets funky :)))
|
||||
;lda song_ptr + 1
|
||||
;cmp #>song_end
|
||||
;bne wait_frame
|
||||
lda song_ptr
|
||||
cmp #<song_end
|
||||
;lda song_ptr
|
||||
;cmp #<song_end
|
||||
;bne wait_frame
|
||||
.endp
|
||||
|
||||
end_loop
|
||||
rts
|
||||
|
||||
song_ptr = get_byte + 1
|
||||
.proc get_byte
|
||||
lda song_data+1
|
||||
inc song_ptr
|
||||
bne skip
|
||||
inc song_ptr+1
|
||||
skip
|
||||
rts
|
||||
.endp
|
||||
|
||||
|
||||
main
|
||||
jsr init_song
|
||||
@@ -456,7 +459,7 @@ quit
|
||||
ini main
|
||||
; ---
|
||||
|
||||
opt l-
|
||||
;opt l-
|
||||
|
||||
.MACRO SPRITES
|
||||
missiles
|
||||
|
||||
Binary file not shown.
+121
-118
@@ -1,125 +1,128 @@
|
||||
.proc talk
|
||||
L0 dta c"IN TIMES OF TROUBLE, GO WITH WHAT YOU KNOW."
|
||||
L1 dta c"DIE!"
|
||||
L2 dta c"EAT MY SHORTS!"
|
||||
L3 dta c"YOU'RE TOAST!"
|
||||
L4 dta c"BANZAI!"
|
||||
L5 dta c"FROM HELL'S HEART I STAB AT THEE..."
|
||||
L6 dta c"I DIDN'T DO IT. NOBODY SAW ME DO IT."
|
||||
L7 dta c"TAKE A HIKE!"
|
||||
L8 dta c"YOU'RE DEAD MEAT."
|
||||
L9 dta c"MAKE MY DAY."
|
||||
L10 dta c"CHARGE!"
|
||||
L11 dta c"ATTACK!"
|
||||
L12 dta c"YOU'RE OUTTA HERE."
|
||||
L13 dta c"WATTSA MATTA YOU?"
|
||||
L14 dta c"FREEZE, OR I'LL SHOOT!"
|
||||
L15 dta c"HA HA HA."
|
||||
L16 dta c"WE COME IN PEACE - SHOOT TO KILL!"
|
||||
L17 dta c"IN YOUR FACE!"
|
||||
L18 dta c"DIE COMMIE PIG!"
|
||||
L19 dta c"I LOVE THE SMELL OF NAPALM IN THE MORNING."
|
||||
L20 dta c"VICTORY!"
|
||||
L21 dta c"SHOW SOME RESPECT."
|
||||
L22 dta c"JUST WHO DO YOU THINK YOU ARE?"
|
||||
L23 dta c"LOOK OUT BELOW!"
|
||||
L24 dta c"KNOCK, KNOCK."
|
||||
L25 dta c"LOOK OVER THERE."
|
||||
L26 dta c"GUESS WHAT'S COMING FOR DINNER?"
|
||||
L27 dta c"MERRY CHRISTMAS."
|
||||
L28 dta c"OPEN WIDE!"
|
||||
L29 dta c"HERE GOES NOTHING..."
|
||||
L30 dta c"DON'T WORRY, IT ISN'T A LIVE ROUND."
|
||||
L31 dta c"BLOOD, PAIN, VIOLENCE!"
|
||||
L32 dta c"TAKE THIS, SISSY!"
|
||||
L33 dta c"I SHALL FLATTEN YOU!"
|
||||
L34 dta c"I SHALL SMASH YOUR UGLY TANK!"
|
||||
L35 dta c"I WONDER WHAT THIS BUTTON DOES?"
|
||||
L36 dta c"DON'T TAKE THIS PERSONALLY."
|
||||
L37 dta c"WOULD THIS MAKE YOU MAD?"
|
||||
L38 dta c"I TOLD YOU TO LEAVE MY SISTER ALONE!"
|
||||
L39 dta c"I COULD SPARE YOU, BUT WHY?"
|
||||
L40 dta c"MY BOMB IS BIGGER THAN YOURS."
|
||||
L41 dta c"DON'T FORGET ABOUT ME!"
|
||||
L42 dta c"HASTA LA VISTA, BABY!"
|
||||
L43 dta c"THIS IS YOUR BRAIN ON SCORCH."
|
||||
L44 dta c"TAKE THIS!"
|
||||
L45 dta c"THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US."
|
||||
L46 dta c"DIE, ALIEN SWINE!"
|
||||
L47 dta c"SAY ARRGGHHHHH...."
|
||||
L48 dta c"I SHALL OIL MY TURRET WITH YOUR BLOOD."
|
||||
L49 dta c"DIE, TANK-SCUM!"
|
||||
L50 dta c"I'M GONNA BREAK YOUR FACE!"
|
||||
L51 dta c"MAMA SAID KNOCK YOU OUT!"
|
||||
L52 dta c"I HOPE YOU ENJOY PAIN!"
|
||||
L0 dta d"IN TIMES OF TROUBLE, GO WITH WHAT YOU KNOW."
|
||||
L1 dta d"DIE!"
|
||||
L2 dta d"EAT MY SHORTS!"
|
||||
L3 dta d"YOU'RE TOAST!"
|
||||
L4 dta d"BANZAI!"
|
||||
L5 dta d"FROM HELL'S HEART I STAB AT THEE..."
|
||||
L6 dta d"I DIDN'T DO IT. NOBODY SAW ME DO IT."
|
||||
L7 dta d"TAKE A HIKE!"
|
||||
L8 dta d"YOU'RE DEAD MEAT."
|
||||
L9 dta d"MAKE MY DAY."
|
||||
L10 dta d"CHARGE!"
|
||||
L11 dta d"ATTACK!"
|
||||
L12 dta d"YOU'RE OUTTA HERE."
|
||||
L13 dta d"WATTSA MATTA YOU?"
|
||||
L14 dta d"FREEZE, OR I'LL SHOOT!"
|
||||
L15 dta d"HA HA HA."
|
||||
L16 dta d"WE COME IN PEACE - SHOOT TO KILL!"
|
||||
L17 dta d"IN YOUR FACE!"
|
||||
L18 dta d"DIE COMMIE PIG!"
|
||||
L19 dta d"I LOVE THE SMELL OF NAPALM IN THE MORNING."
|
||||
L20 dta d"VICTORY!"
|
||||
L21 dta d"SHOW SOME RESPECT."
|
||||
L22 dta d"JUST WHO DO YOU THINK YOU ARE?"
|
||||
L23 dta d"LOOK OUT BELOW!"
|
||||
L24 dta d"KNOCK, KNOCK."
|
||||
L25 dta d"LOOK OVER THERE."
|
||||
L26 dta d"GUESS WHAT'S COMING FOR DINNER?"
|
||||
L27 dta d"MERRY CHRISTMAS."
|
||||
L28 dta d"OPEN WIDE!"
|
||||
L29 dta d"HERE GOES NOTHING..."
|
||||
L30 dta d"DON'T WORRY, IT ISN'T A LIVE ROUND."
|
||||
L31 dta d"BLOOD, PAIN, VIOLENCE!"
|
||||
L32 dta d"TAKE THIS, SISSY!"
|
||||
L33 dta d"I SHALL FLATTEN YOU!"
|
||||
L34 dta d"I SHALL SMASH YOUR UGLY TANK!"
|
||||
L35 dta d"I WONDER WHAT THIS BUTTON DOES?"
|
||||
L36 dta d"DON'T TAKE THIS PERSONALLY."
|
||||
L37 dta d"WOULD THIS MAKE YOU MAD?"
|
||||
L38 dta d"I TOLD YOU TO LEAVE MY SISTER ALONE!"
|
||||
L39 dta d"I COULD SPARE YOU, BUT WHY?"
|
||||
L40 dta d"MY BOMB IS BIGGER THAN YOURS."
|
||||
L41 dta d"DON'T FORGET ABOUT ME!"
|
||||
L42 dta d"HASTA LA VISTA, BABY!"
|
||||
L43 dta d"THIS IS YOUR BRAIN ON SCORCH."
|
||||
L44 dta d"TAKE THIS!"
|
||||
L45 dta d"THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US."
|
||||
L46 dta d"DIE, ALIEN SWINE!"
|
||||
L47 dta d"SAY ARRGGHHHHH...."
|
||||
L48 dta d"I SHALL OIL MY TURRET WITH YOUR BLOOD."
|
||||
L49 dta d"DIE, TANK-SCUM!"
|
||||
L50 dta d"I'M GONNA BREAK YOUR FACE!"
|
||||
L51 dta d"MAMA SAID KNOCK YOU OUT!"
|
||||
L52 dta d"I HOPE YOU ENJOY PAIN!"
|
||||
;--------------------------------
|
||||
L53 dta c"PARTING IS SUCH SWEET SORROW... NOT!"
|
||||
L54 dta c"UGH!"
|
||||
L55 dta c"AARGH!"
|
||||
L56 dta c"AAAGGHHH!"
|
||||
L57 dta c"I'M MELTING!"
|
||||
L58 dta c"OOF.."
|
||||
L59 dta c"OH!"
|
||||
L60 dta c"EEEK!"
|
||||
L61 dta c"AACCH!"
|
||||
L62 dta c"I HATE IT WHEN THAT HAPPENS."
|
||||
L63 dta c"ONE DIRECT HIT CAN RUIN YOUR WHOLE DAY."
|
||||
L64 dta c"OH NO!"
|
||||
L65 dta c"NOT ME!"
|
||||
L66 dta c"OUCH."
|
||||
L67 dta c"OH NO, NOT AGAIN."
|
||||
L68 dta c"ANOTHER ONE BITES THE DUST."
|
||||
L69 dta c"GOODBYE."
|
||||
L70 dta c"HELP ME!"
|
||||
L71 dta c"FAREWELL, CRUEL WORLD."
|
||||
L72 dta c"REMEMBER THE ALAMO!"
|
||||
L73 dta c"OH MAN!"
|
||||
L74 dta c"DOOUGH!"
|
||||
L75 dta c"ANOTHER DAY, ANOTHER BOMB."
|
||||
L76 dta c"THIS IS THE END, MY ONLY FRIEND."
|
||||
L77 dta c"IT'S ALL OVER."
|
||||
L78 dta c"THE FAT LADY SANG."
|
||||
L79 dta c"WHY DOES EVERYTHING HAPPEN TO ME?"
|
||||
L80 dta c"I'M GOING DOWN."
|
||||
L81 dta c"I'VE GOT A BAD FEELING ABOUT THIS."
|
||||
L82 dta c"CRAPOLA."
|
||||
L83 dta c"POW!"
|
||||
L84 dta c"BIF!"
|
||||
L85 dta c"BAM!"
|
||||
L86 dta c"ZONK!"
|
||||
L87 dta c"I SHOULD'VE LISTENED TO MY MOTHER..."
|
||||
L88 dta c"NO... A BUD LIGHT!"
|
||||
L89 dta c"WHAT WAS THAT NOISE?"
|
||||
L90 dta c"MAMA SAID THERE'D BE DAYS LIKE THIS."
|
||||
L91 dta c"ITS JUST ONE OF THOSE DAYS..."
|
||||
L92 dta c"I SEE A BRIGHT LIGHT..."
|
||||
L93 dta c"MOMMY? IS THAT YOU?"
|
||||
L94 dta c"I LET YOU HIT ME!"
|
||||
L95 dta c"SUCKER SHOT!"
|
||||
L96 dta c"I DIDN'T WANT TO LIVE ANYWAY."
|
||||
L97 dta c"-<SOB>-"
|
||||
L98 dta c"WAS THAT AS CLOSE AS I THINK IT WAS?"
|
||||
L99 dta c"JOIN THE ARMY, SEE THE WORLD THEY SAID."
|
||||
L100 dta c"IT WASN'T JUST A JOB IT WAS AN ADVENTURE!"
|
||||
L101 dta c"I DIDN'T LIKE VIOLENCE ANYWAY!"
|
||||
L102 dta c"I THOUGHT YOU LIKED ME?"
|
||||
L103 dta c"SUCH SENSELESS VIOLENCE! I DON'T UNDERSTAND IT."
|
||||
L104 dta c"I THINK THIS GUY'S A LITTLE CRAZY."
|
||||
L105 dta c"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
|
||||
L106 dta c"HEY! KILLIN' AIN'T COOL."
|
||||
L107 dta c"GEE... THANKS."
|
||||
L108 dta c"I'VE FALLEN AND I CAN'T GET UP!"
|
||||
L109 dta c"911?"
|
||||
L110 dta c"OH NO! HERE I BLOW AGAIN!"
|
||||
L111 dta c"I'LL BE BACK..."
|
||||
L112 dta c"HEY - I'VE GOT LAWYERS."
|
||||
L113 dta c"TIME TO CALL 1-900-SUE-TANK."
|
||||
L53 dta d"PARTING IS SUCH SWEET SORROW... NOT!"
|
||||
L54 dta d"UGH!"
|
||||
L55 dta d"AARGH!"
|
||||
L56 dta d"AAAGGHHH!"
|
||||
L57 dta d"I'M MELTING!"
|
||||
L58 dta d"OOF.."
|
||||
L59 dta d"OH!"
|
||||
L60 dta d"EEEK!"
|
||||
L61 dta d"AACCH!"
|
||||
L62 dta d"I HATE IT WHEN THAT HAPPENS."
|
||||
L63 dta d"ONE DIRECT HIT CAN RUIN YOUR WHOLE DAY."
|
||||
L64 dta d"OH NO!"
|
||||
L65 dta d"NOT ME!"
|
||||
L66 dta d"OUCH."
|
||||
L67 dta d"OH NO, NOT AGAIN."
|
||||
L68 dta d"ANOTHER ONE BITES THE DUST."
|
||||
L69 dta d"GOODBYE."
|
||||
L70 dta d"HELP ME!"
|
||||
L71 dta d"FAREWELL, CRUEL WORLD."
|
||||
L72 dta d"REMEMBER THE ALAMO!"
|
||||
L73 dta d"OH MAN!"
|
||||
L74 dta d"DOOUGH!"
|
||||
L75 dta d"ANOTHER DAY, ANOTHER BOMB."
|
||||
L76 dta d"THIS IS THE END, MY ONLY FRIEND."
|
||||
L77 dta d"IT'S ALL OVER."
|
||||
L78 dta d"THE FAT LADY SANG."
|
||||
L79 dta d"WHY DOES EVERYTHING HAPPEN TO ME?"
|
||||
L80 dta d"I'M GOING DOWN."
|
||||
L81 dta d"I'VE GOT A BAD FEELING ABOUT THIS."
|
||||
L82 dta d"CRAPOLA."
|
||||
L83 dta d"POW!"
|
||||
L84 dta d"BIF!"
|
||||
L85 dta d"BAM!"
|
||||
L86 dta d"ZONK!"
|
||||
L87 dta d"I SHOULD'VE LISTENED TO MY MOTHER..."
|
||||
L88 dta d"NO... A BUD LIGHT!"
|
||||
L89 dta d"WHAT WAS THAT NOISE?"
|
||||
L90 dta d"MAMA SAID THERE'D BE DAYS LIKE THIS."
|
||||
L91 dta d"ITS JUST ONE OF THOSE DAYS..."
|
||||
L92 dta d"I SEE A BRIGHT LIGHT..."
|
||||
L93 dta d"MOMMY? IS THAT YOU?"
|
||||
L94 dta d"I LET YOU HIT ME!"
|
||||
L95 dta d"SUCKER SHOT!"
|
||||
L96 dta d"I DIDN'T WANT TO LIVE ANYWAY."
|
||||
L97 dta d"-<SOB>-"
|
||||
L98 dta d"WAS THAT AS CLOSE AS I THINK IT WAS?"
|
||||
L99 dta d"JOIN THE ARMY, SEE THE WORLD THEY SAID."
|
||||
L100 dta d"IT WASN'T JUST A JOB IT WAS AN ADVENTURE!"
|
||||
L101 dta d"I DIDN'T LIKE VIOLENCE ANYWAY!"
|
||||
L102 dta d"I THOUGHT YOU LIKED ME?"
|
||||
L103 dta d"SUCH SENSELESS VIOLENCE! I DON'T UNDERSTAND IT."
|
||||
L104 dta d"I THINK THIS GUY'S A LITTLE CRAZY."
|
||||
L105 dta d"SOMEHOW I DON'T FEEL LIKE KILLING ANYMORE."
|
||||
L106 dta d"HEY! KILLIN' AIN'T COOL."
|
||||
L107 dta d"GEE... THANKS."
|
||||
L108 dta d"I'VE FALLEN AND I CAN'T GET UP!"
|
||||
L109 dta d"911?"
|
||||
L110 dta d"OH NO! HERE I BLOW AGAIN!"
|
||||
L111 dta d"I'LL BE BACK..."
|
||||
L112 dta d"HEY - I'VE GOT LAWYERS."
|
||||
L113 dta d"TIME TO CALL 1-900-SUE-TANK."
|
||||
LEND
|
||||
OffensiveTextTableL
|
||||
dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52,<L53,<L54,<L55,<L56,<L57,<L58,<L59,<L60,<L61,<L62,<L63,<L64,<L65,<L66,<L67,<L68,<L69,<L70,<L71,<L72,<L73,<L74,<L75,<L76,<L77,<L78,<L79,<L80,<L81,<L82,<L83,<L84,<L85,<L86,<L87,<L88,<L89,<L90,<L91,<L92,<L93,<L94,<L95,<L96,<L97,<L98,<L99,<L100,<L101,<L102,<L103,<L104,<L105,<L106,<L107,<L108,<L109,<L110,<L111,<L112,<L113
|
||||
dta <L0,<L1,<L2,<L3,<L4,<L5,<L6,<L7,<L8,<L9,<L10,<L11,<L12,<L13,<L14,<L15,<L16,<L17,<L18,<L19,<L20,<L21,<L22,<L23,<L24,<L25,<L26,<L27,<L28,<L29,<L30,<L31,<L32,<L33,<L34,<L35,<L36,<L37,<L38,<L39,<L40,<L41,<L42,<L43,<L44,<L45,<L46,<L47,<L48,<L49,<L50,<L51,<L52
|
||||
dta <L53,<L54,<L55,<L56,<L57,<L58,<L59,<L60,<L61,<L62,<L63,<L64,<L65,<L66,<L67,<L68,<L69,<L70,<L71,<L72,<L73,<L74,<L75,<L76,<L77,<L78,<L79,<L80,<L81,<L82,<L83,<L84,<L85,<L86,<L87,<L88,<L89,<L90,<L91,<L92,<L93,<L94,<L95,<L96,<L97,<L98,<L99,<L100,<L101,<L102,<L103,<L104,<L105,<L106,<L107,<L108,<L109,<L110,<L111,<L112,<L113
|
||||
dta <LEND
|
||||
OffensiveTextTableH
|
||||
dta >L0,>L1,>L2,>L3,>L4,>L5,>L6,>L7,>L8,>L9,>L10,>L11,>L12,>L13,>L14,>L15,>L16,>L17,>L18,>L19,>L20,>L21,>L22,>L23,>L24,>L25,>L26,>L27,>L28,>L29,>L30,>L31,>L32,>L33,>L34,>L35,>L36,>L37,>L38,>L39,>L40,>L41,>L42,>L43,>L44,>L45,>L46,>L47,>L48,>L49,>L50,>L51,>L52,>L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113
|
||||
OffensiveTextLengths
|
||||
dta 43,4,14,13,7,35,37,12,17,12,7,7,18,17,22,9,33,13,15,42,8,18,30,15,13,16,31,16,10,20,35,22,17,20,29,31,27,24,36,27,29,22,21,29,10,48,17,20,38,15,26,24,22,36,4,6,9,12,5,3,5,6,28,39,6,7,5,17,27,8,8,22,19,7,7,26,32,14,18,33,15,34,8,4,4,4,5,36,18,20,36,29,23,19,17,12,29,7,36,39,41,30,23,48,34,42,25,14,31,4,26,15,23,28
|
||||
dta >L0,>L1,>L2,>L3,>L4,>L5,>L6,>L7,>L8,>L9,>L10,>L11,>L12,>L13,>L14,>L15,>L16,>L17,>L18,>L19,>L20,>L21,>L22,>L23,>L24,>L25,>L26,>L27,>L28,>L29,>L30,>L31,>L32,>L33,>L34,>L35,>L36,>L37,>L38,>L39,>L40,>L41,>L42,>L43,>L44,>L45,>L46,>L47,>L48,>L49,>L50,>L51,>L52
|
||||
dta >L53,>L54,>L55,>L56,>L57,>L58,>L59,>L60,>L61,>L62,>L63,>L64,>L65,>L66,>L67,>L68,>L69,>L70,>L71,>L72,>L73,>L74,>L75,>L76,>L77,>L78,>L79,>L80,>L81,>L82,>L83,>L84,>L85,>L86,>L87,>L88,>L89,>L90,>L91,>L92,>L93,>L94,>L95,>L96,>L97,>L98,>L99,>L100,>L101,>L102,>L103,>L104,>L105,>L106,>L107,>L108,>L109,>L110,>L111,>L112,>L113
|
||||
dta >LEND
|
||||
NumberOfOffensiveTexts=54
|
||||
NumberOfDeffensiveTexts=60
|
||||
.endp
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,48 +0,0 @@
|
||||
import sys
|
||||
from string import strip
|
||||
|
||||
lineCount = 0
|
||||
lengths = []
|
||||
alltexts = []
|
||||
|
||||
for line in open("TALK1.txt"):
|
||||
lineCount+=1
|
||||
line = strip(line)
|
||||
lengths.append(len(line))
|
||||
alltexts.append(line)
|
||||
off = lineCount
|
||||
|
||||
for line in open("TALK2.txt"):
|
||||
lineCount+=1
|
||||
line = strip(line)
|
||||
lengths.append(len(line))
|
||||
alltexts.append(line)
|
||||
|
||||
tmpNo = 0
|
||||
for line in alltexts:
|
||||
print ("L"+str(tmpNo)+' dta "'+line+'"')
|
||||
tmpNo+= 1
|
||||
l=""
|
||||
for i in range(0,lineCount):
|
||||
l+="<L"+str(i)+","
|
||||
l=l[:-1]
|
||||
print ("OffensiveTextTableL")
|
||||
print (" dta "+l)
|
||||
l=""
|
||||
for i in range(0,lineCount):
|
||||
l+=">L"+str(i)+","
|
||||
l=l[:-1]
|
||||
print ("OffensiveTextTableH")
|
||||
print (" dta "+l)
|
||||
|
||||
l=""
|
||||
for i in range(0,lineCount):
|
||||
l+=str(lengths[i])+","
|
||||
l=l[:-1]
|
||||
print ("OffensiveTextLengths")
|
||||
print (" dta "+l)
|
||||
|
||||
|
||||
deff = lineCount-off
|
||||
print ("NumberOfOffensiveTexts="+str(off))
|
||||
print ("NumberOfDeffensiveTexts="+str(deff))
|
||||
Binary file not shown.
+174
-390
@@ -14,14 +14,16 @@ dliColorsFore
|
||||
TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor
|
||||
TextForegroundColor = $0c
|
||||
CashOptionL ;(one zero less than on the screen)
|
||||
.by 0,<200,<500,<800,<1000
|
||||
.by 0,<200,<800,<1200,<2000
|
||||
CashOptionH
|
||||
.by 0,>200,>500,>800,>1000
|
||||
.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)
|
||||
@@ -70,32 +72,6 @@ pmtableH
|
||||
.by >(pmgraph+$700)
|
||||
.by >(pmgraph+$300)
|
||||
;-----------
|
||||
; this table changes Angle to the appropriate tank character
|
||||
BarrelTableL
|
||||
.by $02,$02,$02,$02,$02,$02,$02,$02
|
||||
.by $04,$04,$04,$04,$04,$04,$04,$04
|
||||
.by $06,$06,$06,$06,$06,$06,$06,$06,$06
|
||||
.by $08,$08,$08,$08,$08,$08,$08,$08
|
||||
.by $0a,$0a,$0a,$0a,$0a,$0a,$0a,$0a
|
||||
.by $0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c,$0c
|
||||
.by $0e,$0e,$0e,$0e,$0e,$0e,$0e,$0e
|
||||
.by $10,$10,$10,$10,$10,$10,$10,$10
|
||||
.by $12,$12,$12,$12,$12,$12,$12,$12,$12
|
||||
.by $14,$14,$14,$14,$14,$14,$14,$14
|
||||
.by $16,$16,$16,$16,$16,$16,$16,$16
|
||||
BarrelTableR
|
||||
.by $2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c
|
||||
.by $2a,$2a,$2a,$2a,$2a,$2a,$2a,$2a
|
||||
.by $28,$28,$28,$28,$28,$28,$28,$28,$28
|
||||
.by $26,$26,$26,$26,$26,$26,$26,$26
|
||||
.by $24,$24,$24,$24,$24,$24,$24,$24
|
||||
.by $22,$22,$22,$22,$22,$22,$22,$22,$22
|
||||
.by $20,$20,$20,$20,$20,$20,$20,$20
|
||||
.by $1e,$1e,$1e,$1e,$1e,$1e,$1e,$1e
|
||||
.by $1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c
|
||||
.by $1a,$1a,$1a,$1a,$1a,$1a,$1a,$1a
|
||||
.by $18,$18,$18,$18,$18,$18,$18,$18
|
||||
|
||||
sintable
|
||||
.by 0
|
||||
.by 4
|
||||
@@ -210,330 +186,100 @@ disktance ;tanks distance
|
||||
|
||||
; this table is for deciding where a tank should slide
|
||||
; accordingly to what is below the tank
|
||||
; there are 3 bits used here
|
||||
; bit 0 - go down
|
||||
; bit 1 - go left
|
||||
; bit 2 - go right
|
||||
; position in the table equals to bit pattern of soil below 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
|
||||
|
||||
WhereToSlideTable
|
||||
; we have 3 bits, when set: 2 - go left, 1 - go right, 0 - go down
|
||||
.BY %001 ; 00000000
|
||||
.BY %101 ; 00000001
|
||||
.BY %100 ; 00000010
|
||||
.BY %100 ; 00000011
|
||||
.BY %100 ; 00000100
|
||||
.BY %100 ; 00000101
|
||||
.BY %100 ; 00000110
|
||||
.BY %100 ; 00000111
|
||||
.BY %000 ; 00001000
|
||||
.BY %000 ; 00001001
|
||||
.BY %000 ; 00001010
|
||||
.BY %000 ; 00001011
|
||||
.BY %100 ; 00001100
|
||||
.BY %000 ; 00001101
|
||||
.BY %000 ; 00001110
|
||||
.BY %000 ; 00001111
|
||||
.BY %000 ; 00010000
|
||||
.BY %000 ; 00010001
|
||||
.BY %000 ; 00010010
|
||||
.BY %000 ; 00010011
|
||||
.BY %000 ; 00010100
|
||||
.BY %000 ; 00010101
|
||||
.BY %000 ; 00010110
|
||||
.BY %000 ; 00010111
|
||||
.BY %000 ; 00011000
|
||||
.BY %000 ; 00011001
|
||||
.BY %000 ; 00011010
|
||||
.BY %000 ; 00011011
|
||||
.BY %000 ; 00011100
|
||||
.BY %000 ; 00011101
|
||||
.BY %000 ; 00011110
|
||||
.BY %000 ; 00011111
|
||||
.BY %010 ; 00100000
|
||||
.BY %000 ; 00100001
|
||||
.BY %000 ; 00100010
|
||||
.BY %000 ; 00100011
|
||||
.BY %000 ; 00100100
|
||||
.BY %000 ; 00100101
|
||||
.BY %000 ; 00100110
|
||||
.BY %000 ; 00100111
|
||||
.BY %000 ; 00101000
|
||||
.BY %000 ; 00101001
|
||||
.BY %000 ; 00101010
|
||||
.BY %000 ; 00101011
|
||||
.BY %000 ; 00101100
|
||||
.BY %000 ; 00101101
|
||||
.BY %000 ; 00101110
|
||||
.BY %000 ; 00101111
|
||||
.BY %010 ; 00110000
|
||||
.BY %000 ; 00110001
|
||||
.BY %000 ; 00110010
|
||||
.BY %000 ; 00110011
|
||||
.BY %000 ; 00110100
|
||||
.BY %000 ; 00110101
|
||||
.BY %000 ; 00110110
|
||||
.BY %000 ; 00110111
|
||||
.BY %000 ; 00111000
|
||||
.BY %000 ; 00111001
|
||||
.BY %000 ; 00111010
|
||||
.BY %000 ; 00111011
|
||||
.BY %000 ; 00111100
|
||||
.BY %000 ; 00111101
|
||||
.BY %000 ; 00111110
|
||||
.BY %000 ; 00111111
|
||||
.BY %010 ; 01000000
|
||||
.BY %000 ; 01000001
|
||||
.BY %000 ; 01000010
|
||||
.BY %000 ; 01000011
|
||||
.BY %000 ; 01000100
|
||||
.BY %000 ; 01000101
|
||||
.BY %000 ; 01000110
|
||||
.BY %000 ; 01000111
|
||||
.BY %000 ; 01001000
|
||||
.BY %000 ; 01001001
|
||||
.BY %000 ; 01001010
|
||||
.BY %000 ; 01001011
|
||||
.BY %000 ; 01001100
|
||||
.BY %000 ; 01001101
|
||||
.BY %000 ; 01001110
|
||||
.BY %000 ; 01001111
|
||||
.BY %000 ; 01010000
|
||||
.BY %000 ; 01010001
|
||||
.BY %000 ; 01010010
|
||||
.BY %000 ; 01010011
|
||||
.BY %000 ; 01010100
|
||||
.BY %000 ; 01010101
|
||||
.BY %000 ; 01010110
|
||||
.BY %000 ; 01010111
|
||||
.BY %000 ; 01011000
|
||||
.BY %000 ; 01011001
|
||||
.BY %000 ; 01011010
|
||||
.BY %000 ; 01011011
|
||||
.BY %000 ; 01011100
|
||||
.BY %000 ; 01011101
|
||||
.BY %000 ; 01011110
|
||||
.BY %000 ; 01011111
|
||||
.BY %010 ; 01100000
|
||||
.BY %000 ; 01100001
|
||||
.BY %000 ; 01100010
|
||||
.BY %000 ; 01100011
|
||||
.BY %000 ; 01100100
|
||||
.BY %000 ; 01100101
|
||||
.BY %000 ; 01100110
|
||||
.BY %000 ; 01100111
|
||||
.BY %000 ; 01101000
|
||||
.BY %000 ; 01101001
|
||||
.BY %000 ; 01101010
|
||||
.BY %000 ; 01101011
|
||||
.BY %000 ; 01101100
|
||||
.BY %000 ; 01101101
|
||||
.BY %000 ; 01101110
|
||||
.BY %000 ; 01101111
|
||||
.BY %000 ; 01110000
|
||||
.BY %000 ; 01110001
|
||||
.BY %000 ; 01110010
|
||||
.BY %000 ; 01110011
|
||||
.BY %000 ; 01110100
|
||||
.BY %000 ; 01110101
|
||||
.BY %000 ; 01110110
|
||||
.BY %000 ; 01110111
|
||||
.BY %000 ; 01111000
|
||||
.BY %000 ; 01111001
|
||||
.BY %000 ; 01111010
|
||||
.BY %000 ; 01111011
|
||||
.BY %000 ; 01111100
|
||||
.BY %000 ; 01111101
|
||||
.BY %000 ; 01111110
|
||||
.BY %000 ; 01111111
|
||||
.BY %011 ; 10000000
|
||||
.BY %000 ; 10000001
|
||||
.BY %000 ; 10000010
|
||||
.BY %000 ; 10000011
|
||||
.BY %000 ; 10000100
|
||||
.BY %000 ; 10000101
|
||||
.BY %000 ; 10000110
|
||||
.BY %000 ; 10000111
|
||||
.BY %000 ; 10001000
|
||||
.BY %000 ; 10001001
|
||||
.BY %000 ; 10001010
|
||||
.BY %000 ; 10001011
|
||||
.BY %000 ; 10001100
|
||||
.BY %000 ; 10001101
|
||||
.BY %000 ; 10001110
|
||||
.BY %000 ; 10001111
|
||||
.BY %000 ; 10010000
|
||||
.BY %000 ; 10010001
|
||||
.BY %000 ; 10010010
|
||||
.BY %000 ; 10010011
|
||||
.BY %000 ; 10010100
|
||||
.BY %000 ; 10010101
|
||||
.BY %000 ; 10010110
|
||||
.BY %000 ; 10010111
|
||||
.BY %000 ; 10011000
|
||||
.BY %000 ; 10011001
|
||||
.BY %000 ; 10011010
|
||||
.BY %000 ; 10011011
|
||||
.BY %000 ; 10011100
|
||||
.BY %000 ; 10011101
|
||||
.BY %000 ; 10011110
|
||||
.BY %000 ; 10011111
|
||||
.BY %010 ; 10100000
|
||||
.BY %000 ; 10100001
|
||||
.BY %000 ; 10100010
|
||||
.BY %000 ; 10100011
|
||||
.BY %000 ; 10100100
|
||||
.BY %000 ; 10100101
|
||||
.BY %000 ; 10100110
|
||||
.BY %000 ; 10100111
|
||||
.BY %000 ; 10101000
|
||||
.BY %000 ; 10101001
|
||||
.BY %000 ; 10101010
|
||||
.BY %000 ; 10101011
|
||||
.BY %000 ; 10101100
|
||||
.BY %000 ; 10101101
|
||||
.BY %000 ; 10101110
|
||||
.BY %000 ; 10101111
|
||||
.BY %000 ; 10110000
|
||||
.BY %000 ; 10110001
|
||||
.BY %000 ; 10110010
|
||||
.BY %000 ; 10110011
|
||||
.BY %000 ; 10110100
|
||||
.BY %000 ; 10110101
|
||||
.BY %000 ; 10110110
|
||||
.BY %000 ; 10110111
|
||||
.BY %000 ; 10111000
|
||||
.BY %000 ; 10111001
|
||||
.BY %000 ; 10111010
|
||||
.BY %000 ; 10111011
|
||||
.BY %000 ; 10111100
|
||||
.BY %000 ; 10111101
|
||||
.BY %000 ; 10111110
|
||||
.BY %000 ; 10111111
|
||||
.BY %010 ; 11000000
|
||||
.BY %000 ; 11000001
|
||||
.BY %000 ; 11000010
|
||||
.BY %000 ; 11000011
|
||||
.BY %000 ; 11000100
|
||||
.BY %000 ; 11000101
|
||||
.BY %000 ; 11000110
|
||||
.BY %000 ; 11000111
|
||||
.BY %000 ; 11001000
|
||||
.BY %000 ; 11001001
|
||||
.BY %000 ; 11001010
|
||||
.BY %000 ; 11001011
|
||||
.BY %000 ; 11001100
|
||||
.BY %000 ; 11001101
|
||||
.BY %000 ; 11001110
|
||||
.BY %000 ; 11001111
|
||||
.BY %000 ; 11010000
|
||||
.BY %000 ; 11010001
|
||||
.BY %000 ; 11010010
|
||||
.BY %000 ; 11010011
|
||||
.BY %000 ; 11010100
|
||||
.BY %000 ; 11010101
|
||||
.BY %000 ; 11010110
|
||||
.BY %000 ; 11010111
|
||||
.BY %000 ; 11011000
|
||||
.BY %000 ; 11011001
|
||||
.BY %000 ; 11011010
|
||||
.BY %000 ; 11011011
|
||||
.BY %000 ; 11011100
|
||||
.BY %000 ; 11011101
|
||||
.BY %000 ; 11011110
|
||||
.BY %000 ; 11011111
|
||||
.BY %010 ; 11100000
|
||||
.BY %000 ; 11100001
|
||||
.BY %000 ; 11100010
|
||||
.BY %000 ; 11100011
|
||||
.BY %000 ; 11100100
|
||||
.BY %000 ; 11100101
|
||||
.BY %000 ; 11100110
|
||||
.BY %000 ; 11100111
|
||||
.BY %000 ; 11101000
|
||||
.BY %000 ; 11101001
|
||||
.BY %000 ; 11101010
|
||||
.BY %000 ; 11101011
|
||||
.BY %000 ; 11101100
|
||||
.BY %000 ; 11101101
|
||||
.BY %000 ; 11101110
|
||||
.BY %000 ; 11101111
|
||||
.BY %000 ; 11110000
|
||||
.BY %000 ; 11110001
|
||||
.BY %000 ; 11110010
|
||||
.BY %000 ; 11110011
|
||||
.BY %000 ; 11110100
|
||||
.BY %000 ; 11110101
|
||||
.BY %000 ; 11110110
|
||||
.BY %000 ; 11110111
|
||||
.BY %000 ; 11111000
|
||||
.BY %000 ; 11111001
|
||||
.BY %000 ; 11111010
|
||||
.BY %000 ; 11111011
|
||||
.BY %000 ; 11111100
|
||||
.BY %000 ; 11111101
|
||||
.BY %000 ; 11111110
|
||||
.BY %000 ; 11111111
|
||||
;-----------------------------------------------------------
|
||||
; 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 (vertically up) to 90 (horizontally to the right)
|
||||
.by 4,4,4,4,4,4,4,4,4,4,4
|
||||
.by 5,5,5,5,5,5,5,5,5,5
|
||||
.by 6,6,6,6,6,6,6,6,6
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
.by 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,7,7,7
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
; right angles from 0 (horizontally right) to 90 (up)
|
||||
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0 ; not used
|
||||
.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 (horizontally to the left) to 1 (vertically up)
|
||||
.by 0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.by 0,0,0,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
|
||||
.by 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.by 1,1,1,1,1,1,1,1,1
|
||||
.by 2,2,2,2,2,2,2,2,2,2
|
||||
.by 3,3,3,3,3,3,3,3,3,3,3
|
||||
; 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 (vertically up) to 90 (horizontally to the right)
|
||||
.by 7,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
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
.by 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,4,4,4
|
||||
.by 3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
||||
; right angles from 0 (horizontally right) to 90 (up)
|
||||
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0,0,0,0,0,0,0 ; not used
|
||||
.by 0,0,0,0 ; not used
|
||||
; 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
|
||||
|
||||
; left angles from 90 (horizontally to the left) to 1 (vertically up)
|
||||
.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,4,4,4
|
||||
.by 5,5,5,5,5,5,5,5,5,5
|
||||
.by 6,6,6,6,6,6,6,6,6
|
||||
.by 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
|
||||
.by 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,7
|
||||
|
||||
;-------------------------------------------------
|
||||
TanksNamesDefault
|
||||
@@ -593,22 +339,22 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
|
||||
.by >price______________45
|
||||
.by >price______________46
|
||||
.by >price______________47
|
||||
.by >price_Heat_Guidance__
|
||||
.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_Battery________
|
||||
.by >price_StrongParachute
|
||||
.by >price_Mag_Deflector__
|
||||
.by >price_Shield_________
|
||||
.by >price_Force_Shield___
|
||||
.by >price_Heavy_Shield___
|
||||
.by >price_Force_Shield___
|
||||
.by >price_Super_Mag______
|
||||
.by >price_Auto_Defense___
|
||||
.by >price_Fuel_Tank______
|
||||
.by >price_Contact_Trigger
|
||||
.by >price_White_Flag_____
|
||||
.by >price_Nuclear_Winter_
|
||||
|
||||
WeaponPriceL
|
||||
.by <price_Baby_Missile___
|
||||
@@ -659,22 +405,22 @@ WeaponPriceL
|
||||
.by <price______________45
|
||||
.by <price______________46
|
||||
.by <price______________47
|
||||
.by <price_Heat_Guidance__
|
||||
.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_Battery________
|
||||
.by <price_StrongParachute
|
||||
.by <price_Mag_Deflector__
|
||||
.by <price_Shield_________
|
||||
.by <price_Force_Shield___
|
||||
.by <price_Heavy_Shield___
|
||||
.by <price_Force_Shield___
|
||||
.by <price_Super_Mag______
|
||||
.by <price_Auto_Defense___
|
||||
.by <price_Fuel_Tank______
|
||||
.by <price_Contact_Trigger
|
||||
.by <price_White_Flag_____
|
||||
.by <price_Nuclear_Winter_
|
||||
|
||||
;-------------------------------------------------
|
||||
; how many units (bulletd) of a given weapon we get for a given price
|
||||
@@ -685,18 +431,18 @@ WeaponPriceL
|
||||
WeaponUnits
|
||||
.by 10 ;Baby_Missile___
|
||||
.by 5 ;Missile________
|
||||
.by 3 ;Baby_Nuke______
|
||||
.by 2 ;Baby_Nuke______
|
||||
.by 1 ;Nuke___________
|
||||
.by 2 ;LeapFrog_______
|
||||
.by 2 ;Funky_Bomb_____
|
||||
.by 3 ;MIRV___________
|
||||
.by 3 ;Funky_Bomb_____
|
||||
.by 2 ;MIRV___________
|
||||
.by 1 ;Death_s_Head___
|
||||
.by 10 ;Napalm_________
|
||||
.by 4 ;Napalm_________
|
||||
.by 2 ;Hot_Napalm_____
|
||||
.by 20 ;Tracer_________
|
||||
.by 10 ;Smoke_Tracer___
|
||||
.by 10 ;Baby_Roller____
|
||||
.by 5 ;Roller_________
|
||||
.by 5 ;Baby_Roller____
|
||||
.by 3 ;Roller_________
|
||||
.by 2 ;Heavy_Roller___
|
||||
.by 5 ;Riot_Charge____
|
||||
.by 2 ;Riot_Blast_____
|
||||
@@ -708,9 +454,9 @@ WeaponUnits
|
||||
.by 10 ;Baby_Sandhog___
|
||||
.by 5 ;Sandhog________
|
||||
.by 2 ;Heavy_Sandhog__
|
||||
.by 10 ;Dirt_Clod______
|
||||
.by 5 ;Dirt_Ball______
|
||||
.by 2 ;Ton_of_Dirt____
|
||||
.by 5 ;Dirt_Clod______
|
||||
.by 3 ;Dirt_Ball______
|
||||
.by 1 ;Ton_of_Dirt____
|
||||
.by 4 ;Liquid_Dirt____
|
||||
.by 2 ;Dirt_Charge____
|
||||
.by 10 ;Earth_Disrupter
|
||||
@@ -731,22 +477,22 @@ WeaponUnits
|
||||
.by 0 ;_____________45
|
||||
.by 0 ;_____________46
|
||||
.by 0 ;_____________47
|
||||
.by 6 ;Heat_Guidance__
|
||||
.by 1 ;White_Flag___48
|
||||
.by 3 ;Battery________
|
||||
.by 2 ;Bal_Guidance___
|
||||
.by 5 ;Horz_Guidance__
|
||||
.by 5 ;Vert_Guidance__
|
||||
.by 2 ;Lazy_Boy_______
|
||||
.by 8 ;Parachute______
|
||||
.by 10 ;Battery________
|
||||
.by 3 ;Parachute______
|
||||
.by 2 ;StrongParachute
|
||||
.by 2 ;Mag_Deflector__
|
||||
.by 3 ;Shield_________
|
||||
.by 3 ;Force_Shield___
|
||||
.by 2 ;Heavy_Shield___
|
||||
.by 3 ;Force_Shield___
|
||||
.by 2 ;Super_Mag______
|
||||
.by 1 ;Auto_Defense___
|
||||
.by 10 ;Fuel_Tank______
|
||||
.by 25 ;Contact_Trigger
|
||||
.by 1 ;_____________63
|
||||
.by 1 ;Nuclear_Winter_
|
||||
|
||||
PurchaseMeTable ;weapons good to be purchased by the robot
|
||||
;the comment is an index in the tables
|
||||
@@ -758,8 +504,8 @@ PurchaseMeTable ;weapons good to be purchased by the robot
|
||||
dta 1 ;"Funky Bomb " ; 5
|
||||
dta 1 ;"MIRV " ; 6
|
||||
dta 1 ;"Death's Head " ; 7
|
||||
dta 0 ;"Napalm " ; 8
|
||||
dta 0 ;"Hot Napalm " ; 9
|
||||
dta 1 ;"Napalm " ; 8
|
||||
dta 1 ;"Hot Napalm " ; 9
|
||||
dta 0 ;"Tracer " ; 10
|
||||
dta 0 ;"Smoke Tracer " ; 11
|
||||
dta 1 ;"Baby Roller " ; 12
|
||||
@@ -798,6 +544,22 @@ PurchaseMeTable ;weapons good to be purchased by the robot
|
||||
dta 0 ;"----------------" ; 45
|
||||
dta 0 ;"----------------" ; 46
|
||||
dta 0 ;"----------------" ; 47
|
||||
dta 0 ;"White Flag " ; 48
|
||||
dta 1 ;"Battery " ; 49
|
||||
dta 0 ;"Bal Guidance " ; 50
|
||||
dta 0 ;"Horz Guidance " ; 51
|
||||
dta 0 ;"Vert Guidance " ; 52
|
||||
dta 0 ;"Lazy Boy " ; 53
|
||||
dta 1 ;"Parachute " ; 54
|
||||
dta 1 ;"Strong Parachute" ; 55
|
||||
dta 1 ;"Mag Deflector " ; 56
|
||||
dta 1 ;"Shield " ; 57
|
||||
dta 1 ;"Heavy Shield " ; 58
|
||||
dta 1 ;"Force Shield " ; 59
|
||||
dta 0 ;"Super Mag " ; 60
|
||||
dta 1 ;"Auto Defense " ; 61
|
||||
dta 0 ;"Fuel Tank " ; 62
|
||||
dta 0 ;"Nuclear Winter " ; 63
|
||||
|
||||
|
||||
;-------------------------------------------------
|
||||
@@ -809,8 +571,8 @@ WeaponSymbols
|
||||
.by $58,$59,$5a,$5b,$60,$7b,$7c,$7d
|
||||
.by $20,$00,$00,$00,$00,$00,$00,$00
|
||||
.by $00,$00,$00,$00,$00,$00,$00,$00
|
||||
.by $02,$03,$06,$1d,$0a,$1b,$1c,$1e
|
||||
.by $3b,$3c,$3d,$3e,$3f,$5e,$5f,$00
|
||||
.by $5f,$1c,$03,$06,$1d,$0a,$1b,$1b ; defensives
|
||||
.by $1e,$3b,$3d,$3c,$3e,$3f,$5e,$7d
|
||||
|
||||
; Names of weapons (16 chars long)
|
||||
NamesOfWeapons ;the comment is an index in the tables
|
||||
@@ -861,26 +623,43 @@ NamesOfWeapons ;the comment is an index in the tables
|
||||
dta d"----------------" ; 44
|
||||
dta d"----------------" ; 45
|
||||
dta d"----------------" ; 46
|
||||
dta d"----------------" ; 47
|
||||
dta d" " ; 47 ; special (no weapon) name to simplify display
|
||||
|
||||
dta d"Heat Guidance " ; 48 ($30)
|
||||
dta d"Bal Guidance " ; 49
|
||||
dta d"Horz Guidance " ; 50
|
||||
dta d"Vert Guidance " ; 51
|
||||
dta d"Lazy Boy " ; 52
|
||||
dta d"Parachute " ; 53
|
||||
dta d"Battery " ; 54
|
||||
dta d"Mag Deflector " ; 55
|
||||
dta d"Shield " ; 56
|
||||
dta d"Force Shield " ; 57
|
||||
dta d"Heavy Shield " ; 58
|
||||
dta d"Super Mag " ; 59
|
||||
dta d"Auto Defense " ; 60
|
||||
dta d"Fuel Tank " ; 61
|
||||
dta d"Contact Trigger " ; 62
|
||||
dta d"White Flag " ; 63
|
||||
dta d"White Flag " ; 48 ($30)
|
||||
dta d"Battery " ; 49
|
||||
dta d"Bal Guidance " ; 50
|
||||
dta d"Horz Guidance " ; 51
|
||||
dta d"Vert Guidance " ; 52
|
||||
dta d"Lazy Boy " ; 53
|
||||
dta d"Parachute " ; 54 - no energy
|
||||
dta d"Strong Parachute" ; 55 - with energy (earlier Battery)
|
||||
dta d"Mag Deflector " ; 56 - with shield and energy
|
||||
dta d"Shield " ; 57 - shield for one shot - no energy
|
||||
dta d"Heavy Shield " ; 58 - shield with energy
|
||||
dta d"Force Shield " ; 59 - shield with energy and parachute
|
||||
dta d"Super Mag " ; 60
|
||||
dta d"Auto Defense " ; 61 - with shield and energy
|
||||
dta d"Fuel Tank " ; 62
|
||||
dta d"Nuclear Winter " ; 63
|
||||
DefensiveEnergy = * - 48
|
||||
.by 00 ; White Flag
|
||||
.by 00 ; Heat Guidance
|
||||
.by 00 ; Bal Guidance
|
||||
.by 00 ; Horz Guidance
|
||||
.by 00 ; Vert Guidance
|
||||
.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 ; Auto Defense
|
||||
.by 00 ; Fuel Tank
|
||||
.by 00 ; Nuclear Winter
|
||||
weaponsOfDeath
|
||||
dta 1,2,3,7,15,16,17,18,19,20,21,22,23,24,25,26,27
|
||||
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
|
||||
@@ -900,5 +679,10 @@ 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
|
||||
|
||||
.endif
|
||||
|
||||
+110
-36
@@ -3,12 +3,12 @@
|
||||
screenheight = 200
|
||||
screenBytes = 40
|
||||
screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
||||
margin = 48 ;mountain drawing Y variable margin
|
||||
margin = 40 ;mountain drawing Y variable margin
|
||||
display = $1010 ;screen takes $2K due to clearing routine
|
||||
MaxPlayers = 6
|
||||
maxOptions = 7 ;number of all options
|
||||
maxOptions = 8 ;number of all options
|
||||
PMOffset = $23 ; P/M to graphics offset
|
||||
|
||||
napalmRadius = 10
|
||||
|
||||
;Weapon prices (*10 on screen)
|
||||
price_Baby_Missile___ = 0 ;_0
|
||||
@@ -19,31 +19,31 @@ price_LeapFrog_______ = 192 ;_4
|
||||
price_Funky_Bomb_____ = 293 ;_5
|
||||
price_MIRV___________ = 456 ;_6
|
||||
price_Death_s_Head___ = 337 ;_7
|
||||
price_Napalm_________ = $ffff ;496 ;_8
|
||||
price_Hot_Napalm_____ = $ffff ;511 ;_9
|
||||
price_Napalm_________ = 125 ;_8
|
||||
price_Hot_Napalm_____ = 162 ;_9
|
||||
price_Tracer_________ = 102 ;_10
|
||||
price_Smoke_Tracer___ = 291 ;_11
|
||||
price_Baby_Roller____ = 689 ;_12
|
||||
price_Roller_________ = 600 ;_13
|
||||
price_Heavy_Roller___ = 592 ;_14
|
||||
price_Riot_Charge____ = 330 ;_15
|
||||
price_Riot_Blast_____ = 341 ;_16
|
||||
price_Riot_Bomb______ = 369 ;_17
|
||||
price_Heavy_Riot_Bomb = 322 ;_18
|
||||
price_Baby_Digger____ = 336 ;_19
|
||||
price_Digger_________ = 276 ;_20
|
||||
price_Heavy_Digger___ = 253 ;_21
|
||||
price_Baby_Sandhog___ = 218 ;_22
|
||||
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__ = 305 ;_24
|
||||
price_Heavy_Sandhog__ = 223 ;_24
|
||||
price_Dirt_Clod______ = 104 ;_25
|
||||
price_Dirt_Ball______ = 130 ;_26
|
||||
price_Ton_of_Dirt____ = 171 ;_27
|
||||
price_Liquid_Dirt____ = 530 ;_28
|
||||
price_Dirt_Charge____ = 581 ;_29
|
||||
price_Liquid_Dirt____ = 330 ;_28
|
||||
price_Dirt_Charge____ = 343 ;_29
|
||||
price_Earth_Disrupter = $ffff ;430 ;_30
|
||||
price_Plasma_Blast___ = $ffff ;274 ;_31
|
||||
price_Laser__________ = 577 ;_32
|
||||
price_Laser__________ = 277 ;_32
|
||||
price______________33 = 0
|
||||
price______________34 = 0
|
||||
price______________35 = 0
|
||||
@@ -59,22 +59,87 @@ price______________44 = 0
|
||||
price______________45 = 0
|
||||
price______________46 = 0
|
||||
price______________47 = 0
|
||||
price_Heat_Guidance__ = $ffff ;_48_($30)
|
||||
price_Bal_Guidance___ = $ffff ;_49
|
||||
price_Horz_Guidance__ = $ffff ;_50
|
||||
price_Vert_Guidance__ = $ffff ;_51
|
||||
price_Lazy_Boy_______ = $ffff ;_52
|
||||
price_Parachute______ = 1100 ;_53
|
||||
price_Battery________ = $ffff ;_54
|
||||
price_Mag_Deflector__ = $ffff ;_55
|
||||
price_Shield_________ = $ffff ;_56
|
||||
price_Force_Shield___ = $ffff ;_57
|
||||
price_Heavy_Shield___ = $ffff ;_58
|
||||
price_Super_Mag______ = $ffff ;_59
|
||||
price_Auto_Defense___ = $ffff ;_60
|
||||
price_Fuel_Tank______ = $ffff ;_61
|
||||
price_Contact_Trigger = $ffff ;_62
|
||||
price_White_Flag_____ = $0 ;_63
|
||||
price_White_Flag_____ = $0 ;_48_($30)
|
||||
price_Battery________ = 300 ;_49
|
||||
price_Bal_Guidance___ = $ffff ;_50
|
||||
price_Horz_Guidance__ = $ffff ;_51
|
||||
price_Vert_Guidance__ = $ffff ;_52
|
||||
price_Lazy_Boy_______ = $ffff ;_53
|
||||
price_Parachute______ = 234 ;_54
|
||||
price_StrongParachute = 1000 ;_55
|
||||
price_Mag_Deflector__ = 745 ;_56
|
||||
price_Shield_________ = 224 ;_57
|
||||
price_Heavy_Shield___ = 628 ;_58
|
||||
price_Force_Shield___ = 1100 ;_59
|
||||
price_Super_Mag______ = $ffff ;_60
|
||||
price_Auto_Defense___ = 512 ;_61
|
||||
price_Fuel_Tank______ = $ffff ;_62
|
||||
price_Nuclear_Winter_ = 1000 ;_63
|
||||
;Weapon indexes (numbers)
|
||||
ind_Baby_Missile___ = 0
|
||||
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_Earth_Disrupter = 30
|
||||
ind_Plasma_Blast___ = 31
|
||||
ind_Laser__________ = 32
|
||||
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_____ = 48
|
||||
ind_Battery________ = 49
|
||||
ind_Bal_Guidance___ = 50
|
||||
ind_Horz_Guidance__ = 51
|
||||
ind_Vert_Guidance__ = 52
|
||||
ind_Lazy_Boy_______ = 53
|
||||
ind_Parachute______ = 54
|
||||
ind_StrongParachute = 55
|
||||
ind_Mag_Deflector__ = 56
|
||||
ind_Shield_________ = 57
|
||||
ind_Heavy_Shield___ = 58
|
||||
ind_Force_Shield___ = 59
|
||||
ind_Super_Mag______ = 60
|
||||
ind_Auto_Defense___ = 61
|
||||
ind_Fuel_Tank______ = 62
|
||||
ind_Nuclear_Winter_ = 63
|
||||
;--------------------------------
|
||||
; names of RMT instruments (sfx)
|
||||
;--------------------------------
|
||||
@@ -106,3 +171,12 @@ sfx_keyclick = $18 ;y
|
||||
sfx_shoot = $19 ;z
|
||||
sfx_seppuku = $1a ;1
|
||||
sfx_liquid_dirt = $1b ;2
|
||||
sfx_battery = $1c ;3
|
||||
sfx_white_flag = $1d ;4
|
||||
;--------------------------------
|
||||
; RMT songs (lines)
|
||||
;--------------------------------
|
||||
song_silencio = $00
|
||||
song_end_round = $02
|
||||
song_ingame = $06
|
||||
song_game_over = $0b
|
||||
|
||||
+16
-9
@@ -89,7 +89,7 @@ dl ; MAIN game display list
|
||||
.by $0f+$80 ; DLI (black to end);1
|
||||
:38 .byte $0f ;35 ..... = 200
|
||||
.by $4f
|
||||
.wo LastLine ; additional line of ground
|
||||
.wo EmptyLine ; additional line of ground
|
||||
.byte $41
|
||||
.word dl
|
||||
;-----------------------------------------------
|
||||
@@ -104,12 +104,13 @@ OptionsScreen
|
||||
OptionsHere
|
||||
; 0123456789012345678901234567890123456789
|
||||
dta d"Players : 2 3 4 5 6 "
|
||||
dta d"Cash : none 2K 5K 8K 10K "
|
||||
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"Missiles : slug slow norm fast hare "
|
||||
dta d"Seppuku : nevr rare norm oftn alws "
|
||||
dta d"Mountains: NL BE CZ CH NP "
|
||||
OptionsScreenEnd
|
||||
;-----------------------------------------------
|
||||
MoreUp
|
||||
@@ -136,13 +137,13 @@ WeaponsDescription
|
||||
dta d" - Defensive/Offensive weapon "
|
||||
dta d" "
|
||||
dta d"Space"*
|
||||
dta d" - Purchase "
|
||||
dta d" - "
|
||||
purchaseActivate
|
||||
dta d"Purchase "
|
||||
dta d"Return"*
|
||||
dta d" - Finish "
|
||||
EmptyLine
|
||||
dta d" "
|
||||
LastLine
|
||||
:40 dta $00
|
||||
; -------------------------------------------------
|
||||
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
|
||||
NameScreen
|
||||
@@ -166,11 +167,17 @@ NamesOfLevels
|
||||
textbuffer
|
||||
; 0123456789012345678901234567890123456789
|
||||
dta d"Player: "
|
||||
dta d"Energy: Angle: Force: "
|
||||
dta d" Round: Wind: "
|
||||
dta d"Energy: Angle: Force: "
|
||||
dta d"Round: Wind: "
|
||||
textbuffer2
|
||||
dta d"Player: Cash: "
|
||||
dta d"Player: Cash: 0 " ; ZERO TO MAKE YOU RICHER ON THE SCREEN
|
||||
dta d"----------------------------------------"
|
||||
|
||||
;---------------------------------------------------
|
||||
activateText
|
||||
dta d"Activate"
|
||||
activateTextEnd
|
||||
purchaseText
|
||||
dta d"Purchase"
|
||||
purchaseTextEnd
|
||||
|
||||
.endif
|
||||
|
||||
+173
-36
@@ -262,8 +262,7 @@ CheckCollisionDraw
|
||||
sbc #1
|
||||
sta YHit
|
||||
sty YHit+1
|
||||
;mwa ydraw YHit
|
||||
mva #1 HitFlag
|
||||
mva #$ff HitFlag
|
||||
StopHitChecking
|
||||
jmp ContinueDraw
|
||||
@
|
||||
@@ -364,7 +363,7 @@ endcircleloop
|
||||
rts
|
||||
.endp
|
||||
;----
|
||||
splot8 .proc
|
||||
.proc splot8
|
||||
; plot xcircle+XC,ycircle+YC
|
||||
; plot xcircle+XC,ycircle-YC
|
||||
; plot xcircle-XC,ycircle-YC
|
||||
@@ -463,7 +462,7 @@ splot8 .proc
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
clearscreen .proc
|
||||
.proc clearscreen
|
||||
;--------------------------------------------------
|
||||
|
||||
lda #$ff
|
||||
@@ -477,7 +476,7 @@ clearscreen .proc
|
||||
rts
|
||||
.endp
|
||||
;-------------------------------*------------------
|
||||
placetanks .proc
|
||||
.proc placetanks
|
||||
;--------------------------------------------------
|
||||
ldx #(MaxPlayers-1) ;maxNumberOfPlayers-1
|
||||
lda #0
|
||||
@@ -588,20 +587,20 @@ UnequalTanks
|
||||
;-------------------------------------------------
|
||||
.proc drawtanks
|
||||
;-------------------------------------------------
|
||||
lda tanknr
|
||||
lda TankNr
|
||||
pha
|
||||
ldx #$00
|
||||
stx tanknr
|
||||
stx TankNr
|
||||
|
||||
DrawNextTank
|
||||
jsr drawtanknr
|
||||
inc tanknr
|
||||
ldx tanknr
|
||||
inc TankNr
|
||||
ldx TankNr
|
||||
Cpx NumberOfPlayers
|
||||
bne DrawNextTank
|
||||
|
||||
pla
|
||||
sta tankNr
|
||||
sta TankNr
|
||||
|
||||
rts
|
||||
.endp
|
||||
@@ -610,29 +609,18 @@ DrawNextTank
|
||||
ldx tankNr
|
||||
; let's check the energy
|
||||
lda eXistenZ,x
|
||||
bne SkipRemovigPM ; if energy=0 then no tank
|
||||
bne SkipHidingPM ; if energy=0 then no tank
|
||||
|
||||
; hide P/M
|
||||
lda #0
|
||||
sta hposp0,x
|
||||
jmp DoNotDrawTankNr
|
||||
SkipRemovigPM
|
||||
SkipHidingPM
|
||||
|
||||
|
||||
lda AngleTable,x
|
||||
bmi AngleToLeft01
|
||||
lda #90
|
||||
sec
|
||||
sbc AngleTable,x
|
||||
tay
|
||||
lda BarrelTableR,y
|
||||
jmp CharacterAlreadyKnown
|
||||
AngleToLeft01
|
||||
sec
|
||||
sbc #(255-90)
|
||||
tay
|
||||
lda BarrelTableL,y
|
||||
CharacterAlreadyKnown
|
||||
lda BarrelTable,y
|
||||
sta CharCode
|
||||
DrawTankNrX
|
||||
ldx tanknr
|
||||
@@ -642,6 +630,7 @@ DrawTankNrX
|
||||
sta xdraw+1
|
||||
lda ytankstable,x
|
||||
sta ydraw
|
||||
mva #0 ydraw+1
|
||||
|
||||
jsr TypeChar
|
||||
|
||||
@@ -654,11 +643,11 @@ DrawTankNrX
|
||||
rorw xbyte ; divide by 2 (carry does not matter)
|
||||
lda xbyte
|
||||
clc
|
||||
adc #$24 ; P/M to graphics offset
|
||||
adc #PMOffset+1 ; P/M to graphics offset
|
||||
cpx #$4 ; 5th tank are joined missiles and offset is defferent
|
||||
bne NoMissile
|
||||
clc
|
||||
adc #$0C
|
||||
adc #$0C ; missile offset offset
|
||||
NoMissile
|
||||
sta hposp0,x
|
||||
; vertical position
|
||||
@@ -690,10 +679,46 @@ ZeroesToGo
|
||||
sta (xbyte),y
|
||||
dey
|
||||
bne ClearPM
|
||||
|
||||
NoPlayerMissile
|
||||
; draw defensive weapons like shield ( tank number in X )
|
||||
; in xdraw, ydraw we have coordinates left LOWER corner of Tank char
|
||||
lda ActiveDefenceWeapon,x
|
||||
cmp #ind_Shield_________ ; one shot shield
|
||||
beq DrawTankShield
|
||||
cmp #ind_Force_Shield___ ; shield with energy and parachute
|
||||
beq DrawTankShieldBold
|
||||
cmp #ind_Heavy_Shield___ ; shield with energy
|
||||
beq DrawTankShieldBold
|
||||
cmp #ind_Auto_Defense___ ; Auto Defence
|
||||
beq DrawTankShieldWihHorns
|
||||
cmp #ind_Mag_Deflector__ ; Mag Deflector
|
||||
beq DrawTankShieldWihHorns
|
||||
cmp #ind_White_Flag_____ ; White Flag
|
||||
beq DrawTankFlag
|
||||
bne NoShieldDraw
|
||||
DrawTankShield
|
||||
jmp DrawTankShield.DrawInPosition
|
||||
DrawTankShieldWihHorns
|
||||
jsr DrawTankShield.DrawInPosition
|
||||
jmp DrawTankShieldHorns
|
||||
DrawTankShieldBold
|
||||
jsr DrawTankShield.DrawInPosition
|
||||
jmp DrawTankShieldBoldLine
|
||||
DrawTankFlag
|
||||
lda #$5E ; flag symbol
|
||||
sta CharCode
|
||||
lda Ytankstable,x
|
||||
sec
|
||||
sbc #8
|
||||
sta ydraw
|
||||
lda XtanksTableL,x
|
||||
sta xdraw
|
||||
lda XtanksTableH,x
|
||||
sta xdraw+1
|
||||
jsr TypeChar
|
||||
NoShieldDraw
|
||||
DoNotDrawTankNr
|
||||
rts
|
||||
rts
|
||||
.endp
|
||||
|
||||
; -------------------------------------
|
||||
@@ -707,17 +732,116 @@ tankflash_loop
|
||||
sne:mva #1 fs ; finish it
|
||||
mva #1 Erase
|
||||
ldx TankNr
|
||||
jsr DrawTankNr.SkipRemovigPM ; it's necessary becouse DrawTankNr skips tanks with no energy !
|
||||
jsr DrawTankNr.SkipHidingPM ; it's necessary becouse DrawTankNr skips tanks with no energy !
|
||||
PAUSE 2
|
||||
mva #0 Erase
|
||||
ldx TankNr
|
||||
jsr DrawTankNr.SkipRemovigPM
|
||||
jsr DrawTankNr.SkipHidingPM
|
||||
PAUSE 2
|
||||
dec fs
|
||||
jne tankflash_loop
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc DrawTankShield
|
||||
; X - tank number
|
||||
; if use DrawInPosition entry point then:
|
||||
; xdraw, ydraw - coordinates left LOWER corner of Tank char
|
||||
; values remain there after a DrawTankNr proc.
|
||||
;
|
||||
; this proc change xdraw, ydraw and temp!
|
||||
;--------------------------------------------------
|
||||
lda xtankstableL,x
|
||||
sta xdraw
|
||||
lda xtankstableH,x
|
||||
sta xdraw+1
|
||||
lda ytankstable,x
|
||||
sta ydraw
|
||||
mva #0 ydraw+1
|
||||
DrawInPosition
|
||||
mva #1 color
|
||||
lda erase
|
||||
beq ShieldVisible
|
||||
dec color
|
||||
ShieldVisible
|
||||
sbw xdraw #$03 ; 3 pixels to left
|
||||
; draw left vertical line of shield ( | )
|
||||
mva #6 temp ; strange !!!
|
||||
@
|
||||
jsr plot
|
||||
.nowarn dew ydraw
|
||||
dec temp
|
||||
bne @-
|
||||
; draw left oblique line of shield ( / )
|
||||
mva #4 temp
|
||||
@
|
||||
jsr plot
|
||||
.nowarn dew ydraw
|
||||
inw xdraw
|
||||
dec temp
|
||||
bne @-
|
||||
; draw top horizontal line of shield ( _ )
|
||||
mva #5 temp
|
||||
@
|
||||
jsr plot
|
||||
inw xdraw
|
||||
dec temp
|
||||
bne @-
|
||||
; draw right oblique line of shield ( \ )
|
||||
mva #4 temp
|
||||
@
|
||||
jsr plot
|
||||
inw ydraw
|
||||
inw xdraw
|
||||
dec temp
|
||||
bne @-
|
||||
; draw right vertical line of shield ( | )
|
||||
mva #7 temp
|
||||
@
|
||||
jsr plot
|
||||
inw ydraw
|
||||
dec temp
|
||||
bne @-
|
||||
rts
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc DrawTankShieldHorns
|
||||
; use only directly after DrawTankShield
|
||||
; this proc draws a little "horns" on shield.
|
||||
; Symbol of defensive but aggressive :) weapon
|
||||
;--------------------------------------------------
|
||||
.nowarn dew xdraw ; 1 pixel left
|
||||
sbw ydraw #$0a ; 10 pixels up
|
||||
jsr plot
|
||||
.nowarn dew ydraw
|
||||
inw xdraw
|
||||
jsr plot
|
||||
sbw xdraw #$0d ; 13 pixels left
|
||||
jsr plot
|
||||
inw xdraw
|
||||
inw ydraw
|
||||
jsr plot
|
||||
rts
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc DrawTankShieldBoldLine
|
||||
; use only directly after DrawTankShield
|
||||
; this proc draws bold top on shield.
|
||||
; Symbol of ablative shield ? :)
|
||||
;--------------------------------------------------
|
||||
sbw xdraw #$04 ; 5 pixels left
|
||||
sbw ydraw #$0a ; 10 pixels up
|
||||
; draw additional top horizontal line of shield ( _ )
|
||||
mva #6 temp
|
||||
@
|
||||
jsr plot
|
||||
.nowarn dew xdraw
|
||||
dec temp
|
||||
bne @-
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc drawmountains
|
||||
;--------------------------------------------------
|
||||
@@ -816,7 +940,6 @@ StillNothing
|
||||
lda ydraw
|
||||
sta (tempor2),y
|
||||
sta (temp),y
|
||||
jmp FoundPeek1
|
||||
FoundPeek1
|
||||
inw tempor2
|
||||
inw temp
|
||||
@@ -884,7 +1007,7 @@ ColumnIsReady
|
||||
; level of the mountains
|
||||
jeq MainFallout2
|
||||
; now correct heights are in the mountaintable
|
||||
mva #1 color
|
||||
sta color ; Pozor! :) we know - now A=1
|
||||
mva #sfx_silencer sfx_effect
|
||||
rts
|
||||
.endp
|
||||
@@ -905,6 +1028,8 @@ getrandomY ;getting random Y coordinate
|
||||
sta ydraw
|
||||
sta yfloat+1
|
||||
mva #0 yfloat ;yfloat equals to e.g. 140.0
|
||||
mva #screenheight-margin-5 yfloat+1
|
||||
sta ydraw
|
||||
|
||||
; how to make nice looking mountains?
|
||||
; randomize points and join them with lines
|
||||
@@ -913,9 +1038,10 @@ getrandomY ;getting random Y coordinate
|
||||
|
||||
NextPart
|
||||
lda random
|
||||
and mountainDeltaL
|
||||
sta delta ; it is after the dot (xxx.delta)
|
||||
lda random
|
||||
and #$03 ;(max delta)
|
||||
and mountainDeltaH ;(max delta)
|
||||
sta delta+1 ; before the dot (delta+1.delta)
|
||||
|
||||
lda random
|
||||
@@ -1349,7 +1475,7 @@ EndPutChar
|
||||
; ------------------------------------------
|
||||
.proc PutChar4x4
|
||||
; puts 4x4 pixels char on the graphics screen
|
||||
; in: xdraw, ydraw (LOWER left corner of the char)
|
||||
; in: dx, dy (LOWER left corner of the char)
|
||||
; in: CharCode4x4 (.sbyte)
|
||||
; in: plot4x4color (0/1)
|
||||
; all pixels are being drawn
|
||||
@@ -1403,7 +1529,7 @@ GetUpper4bits
|
||||
bpl CopyChar
|
||||
|
||||
; calculating coordinates from xdraw and ydraw
|
||||
mwa xdraw xbyte
|
||||
mwa dx xbyte
|
||||
|
||||
lda xbyte
|
||||
and #$7
|
||||
@@ -1414,7 +1540,7 @@ GetUpper4bits
|
||||
rorw xbyte
|
||||
;---
|
||||
ldy xbyte
|
||||
lda ydraw ; y = y - 3 because left lower.
|
||||
lda dy ; y = y - 3 because left lower.
|
||||
sec
|
||||
sbc #3
|
||||
tax
|
||||
@@ -1465,4 +1591,15 @@ EndPut4x4
|
||||
rts
|
||||
.endp
|
||||
|
||||
.proc SetMainScreen
|
||||
mva #0 dmactl
|
||||
VDLI DLIinterruptGraph ; jsr SetDLI for graphics (game) screen
|
||||
mwa #dl dlptrs ; issue #72 (glitches when switches)
|
||||
lda dmactls
|
||||
and #$fc
|
||||
ora #$02 ; 2=normal, 3 = wide screen width
|
||||
sta dmactls
|
||||
rts
|
||||
.endp
|
||||
|
||||
.endif
|
||||
@@ -104,6 +104,9 @@
|
||||
.macro randomize
|
||||
;usage: randomize floor ceiling
|
||||
;returns (in A) a random .byte between "floor" and "ceiling"
|
||||
.if :2 < :1
|
||||
.error "floor higher than ceiling"
|
||||
.endif
|
||||
?rand
|
||||
lda random
|
||||
cmp #:1 ;floor
|
||||
|
||||
+203
-110
@@ -36,7 +36,7 @@
|
||||
;we decided it must go in 'English' to let other people work on it
|
||||
|
||||
.macro build
|
||||
dta d"143" ; number of this build (3 bytes)
|
||||
dta d"147" ; number of this build (3 bytes)
|
||||
.endm
|
||||
|
||||
icl 'definitions.asm'
|
||||
@@ -55,26 +55,37 @@
|
||||
.zpvar xc .word
|
||||
.zpvar temp .word ;temporary word for the most embeded loops only
|
||||
.zpvar temp2 .word ;same as above
|
||||
.zpvar modify .word ;origially used to replace self-modyfying code
|
||||
.zpvar tempXROLLER .word ;same as above for XROLLER routine (used also in result display routine)
|
||||
.zpvar xtempDRAW .word ;same as above for XDRAW routine
|
||||
.zpvar ytempDRAW .word ;same as above for XDRAW routine
|
||||
.zpvar tempor2 .byte
|
||||
;--------------temps used in circle routine
|
||||
.zpvar xi .word ;X (word) in draw routine
|
||||
.zpvar fx .byte ;circle drawing variables
|
||||
.zpvar fx .byte
|
||||
.zpvar yi .word ;Y (word) in draw routine
|
||||
.zpvar fy .byte
|
||||
.zpvar xk .word
|
||||
.zpvar fs .byte
|
||||
.zpvar yc .byte ;ycircle - temporary for circle
|
||||
.zpvar dx .word
|
||||
.zpvar tempor2 .byte
|
||||
.zpvar dy .word
|
||||
.zpvar dd .word
|
||||
.zpvar di .word
|
||||
.zpvar dp .word
|
||||
.zpvar modify .word
|
||||
;----------------------------
|
||||
.zpvar UnderTank1 .byte
|
||||
.zpvar UnderTank2 .byte
|
||||
;----------------------------
|
||||
.zpvar weaponPointer .word
|
||||
.zpvar dliCounter .byte
|
||||
.zpvar pressTimer .byte
|
||||
.zpvar NTSCcounter .byte
|
||||
.zpvar IsEndOfTheFallFlag .byte ; for small speedup ground falling
|
||||
;.zpvar dliA .byte
|
||||
;.zpvar dliX .byte
|
||||
;.zpvar dliY .byte
|
||||
|
||||
;* RMT ZeroPage addresses
|
||||
.zpvar p_tis .word
|
||||
.zpvar p_trackslbstable .word
|
||||
@@ -103,7 +114,7 @@
|
||||
;Game loading address
|
||||
ORG $3000
|
||||
WeaponFont
|
||||
ins 'artwork/weapons_AW5.fnt' ; 'artwork/weapons.fnt'
|
||||
ins 'artwork/weapons_AW5_mod.fnt' ; 'artwork/weapons.fnt'
|
||||
;-----------------------------------------------
|
||||
;Screen displays go here to avoid crossing 4kb barrier
|
||||
;-----------------------------------------------
|
||||
@@ -128,19 +139,13 @@ START
|
||||
|
||||
jsr RandomizeSequence
|
||||
; for the round #1 shooting sequence is random
|
||||
|
||||
|
||||
MainGameLoop
|
||||
VDLI DLIinterruptText ; jsr SetDLI for text (purchase) screen
|
||||
|
||||
jsr CallPurchaseForEveryTank
|
||||
|
||||
; issue #72 (glitches when switches)
|
||||
mva #0 dmactl
|
||||
lda dmactls
|
||||
and #$fc
|
||||
;ora #$02 ; 2=normal, 3 = wide screen width, 0 = no screen
|
||||
sta dmactls
|
||||
|
||||
|
||||
jsr GetRandomWind
|
||||
|
||||
jsr RoundInit
|
||||
@@ -166,7 +171,8 @@ MainGameLoop
|
||||
; Results are number of other deaths
|
||||
; before the player dies itself
|
||||
|
||||
|
||||
lda #song_end_round
|
||||
jsr RmtSongSelect
|
||||
jsr DisplayResults
|
||||
|
||||
;check demo mode
|
||||
@@ -239,6 +245,7 @@ skipzeroing
|
||||
|
||||
inc CurrentRoundNr
|
||||
mva #0 dmactl ; issue #72
|
||||
jsr RmtSongSelect
|
||||
mva #sfx_silencer sfx_effect
|
||||
jmp MainGameLoop
|
||||
|
||||
@@ -253,6 +260,9 @@ skipzeroing
|
||||
; the shooting angle is randomized
|
||||
; of course gains an looses are zeroed
|
||||
|
||||
lda #song_ingame
|
||||
jsr RmtSongSelect
|
||||
|
||||
lda #0
|
||||
tax
|
||||
@ sta singleRoundVars,x
|
||||
@@ -300,19 +310,18 @@ SettingEnergies
|
||||
jsr calculatemountains ;let mountains be easy for the eye
|
||||
;jsr calculatemountains0 ;only for tests - makes mountains flat and 0 height
|
||||
|
||||
VDLI DLIinterruptGraph ; jsr SetDLI for graphics (game) screen
|
||||
mwa #dl dlptrs ; issue #72 (glitches when switches)
|
||||
lda dmactls
|
||||
and #$fc
|
||||
ora #$02 ; 2=normal, 3 = wide screen width
|
||||
sta dmactls
|
||||
|
||||
jsr SetMainScreen
|
||||
jsr ColorsOfSprites
|
||||
lda #0
|
||||
sta colpf2s ; status line "off"
|
||||
sta colpf1s
|
||||
|
||||
jsr drawmountains ;draw them
|
||||
jsr drawtanks ;finally draw tanks
|
||||
|
||||
mva #0 TankSequencePointer
|
||||
;--------------------round screen is ready---------
|
||||
;---------round screen is ready---------
|
||||
mva #TextForegroundColor colpf1s ; status line "on"
|
||||
rts
|
||||
.endp
|
||||
|
||||
@@ -372,6 +381,7 @@ DoNotFinishTheRound
|
||||
|
||||
mva #0 noDeathCounter
|
||||
mva #sfx_seppuku sfx_effect
|
||||
|
||||
jsr DisplaySeppuku
|
||||
jmp Seppuku
|
||||
|
||||
@@ -384,8 +394,13 @@ DoNotFinishTheRound
|
||||
jeq NextPlayerShoots
|
||||
|
||||
|
||||
|
||||
mva #1 plot4x4color
|
||||
jsr DisplayTankNameAbove
|
||||
|
||||
mva #1 color ;to display flying point
|
||||
|
||||
ldx tankNr
|
||||
lda TankStatusColoursTable,x
|
||||
sta colpf2s ; set color of status line
|
||||
|
||||
@@ -393,11 +408,14 @@ DoNotFinishTheRound
|
||||
beq ManualShooting
|
||||
|
||||
RoboTanks
|
||||
; robotanks shoot here
|
||||
; robotanks shoot here
|
||||
; TankNr still in X
|
||||
jsr ArtificialIntelligence
|
||||
jsr MoveBarrelToNewPosition
|
||||
jsr DisplayStatus ;all digital values like force, angle, wind, etc.
|
||||
jsr PutTankNameOnScreen
|
||||
jsr DisplayStatus
|
||||
pause 30
|
||||
ldx TankNr
|
||||
jsr MoveBarrelToNewPosition
|
||||
lda kbcode
|
||||
cmp #28 ; ESC
|
||||
bne @+
|
||||
@@ -418,6 +436,24 @@ ManualShooting
|
||||
seq:rts
|
||||
|
||||
AfterManualShooting
|
||||
mva #0 plot4x4color
|
||||
jsr DisplayTankNameAbove
|
||||
; defensive weapons without flight handling
|
||||
ldx TankNr
|
||||
lda ActiveDefenceWeapon,x
|
||||
cmp #ind_White_Flag_____ ; White Flag
|
||||
beq ShootWhiteFlag
|
||||
cmp #ind_Nuclear_Winter_
|
||||
bne StandardShoot
|
||||
ShootAtomicWinter
|
||||
; --- nuclear winter ---
|
||||
jsr NuclearWinter
|
||||
jmp NextPlayerShoots ; and we skip shoot
|
||||
ShootWhiteFlag
|
||||
; --- white flag ---
|
||||
jsr WhiteFlag
|
||||
jmp NextPlayerShoots ; and we skip shoot
|
||||
StandardShoot
|
||||
inc noDeathCounter
|
||||
|
||||
jsr DecreaseWeaponBeforeShoot
|
||||
@@ -428,6 +464,10 @@ AfterManualShooting
|
||||
|
||||
ShootNow
|
||||
jsr Shoot
|
||||
;here we clear offensive text (after a shoot)
|
||||
ldy TankNr
|
||||
mva #0 plot4x4color
|
||||
jsr DisplayOffensiveTextNr
|
||||
|
||||
lda HitFlag ;0 if missed
|
||||
beq missed
|
||||
@@ -439,9 +479,9 @@ ShootNow
|
||||
|
||||
continueMainRoundLoopAfterSeppuku
|
||||
;here we clear offensive text (after a shoot)
|
||||
ldy TankNr
|
||||
mva #0 plot4x4color
|
||||
jsr DisplayOffensiveTextNr
|
||||
;ldy TankNr
|
||||
;mva #0 plot4x4color
|
||||
;jsr DisplayOffensiveTextNr
|
||||
|
||||
|
||||
AfterExplode
|
||||
@@ -454,24 +494,25 @@ AfterExplode
|
||||
@
|
||||
|
||||
;temporary tanks removal (would fall down with soil)
|
||||
mva TankNr tempor2
|
||||
mva #1 Erase
|
||||
jsr drawtanks
|
||||
mva tempor2 TankNr
|
||||
mva #0 Erase
|
||||
lda FallDown2
|
||||
beq NoFallDown2
|
||||
jsr SoilDown2;
|
||||
jsr SoilDown2
|
||||
|
||||
NoFallDown2
|
||||
;here tanks are falling down
|
||||
mva tankNr tempor2
|
||||
mva #0 TankNr
|
||||
mvx #0 TankNr
|
||||
|
||||
TanksFallDown
|
||||
lda eXistenZ,x
|
||||
beq NoExistNoFall
|
||||
jsr TankFalls
|
||||
inc:lda TankNr
|
||||
cmp NumberOfPlayers
|
||||
NoExistNoFall
|
||||
inc:ldx TankNr
|
||||
cpx NumberOfPlayers
|
||||
bne TanksFallDown
|
||||
mva tempor2 TankNr
|
||||
missed
|
||||
@@ -649,7 +690,7 @@ MetodOfDeath
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc DecreaseEnergyX
|
||||
;Decreases energy of player nr X
|
||||
;Decreases energy of player nr X by the value Y
|
||||
;increases his financial loss
|
||||
;increases gain of tank TankNr
|
||||
;--------------------------------------------------
|
||||
@@ -687,6 +728,33 @@ NotNegativeEnergy
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc DecreaseShieldEnergyX
|
||||
; Decreases energy of shield player nr X by the value Y
|
||||
; if shield energy is 0 after decrease then in Y we have
|
||||
; rest of the energy - to decrease tank energy
|
||||
;--------------------------------------------------
|
||||
sty EnergyDecrease
|
||||
ldy #0 ; if Shield survive then no decrease tank anergy
|
||||
; Energy cannot be less than 0
|
||||
lda ShieldEnergy,x
|
||||
cmp EnergyDecrease
|
||||
bcc UseAllShieldEnergy
|
||||
;sec
|
||||
sbc EnergyDecrease
|
||||
bpl NotNegativeShieldEnergy ; jump allways
|
||||
UseAllShieldEnergy
|
||||
; now calculate rest of energy for future tank energy decrease
|
||||
sec
|
||||
lda EnergyDecrease
|
||||
sbc ShieldEnergy,x
|
||||
tay
|
||||
lda #0
|
||||
NotNegativeShieldEnergy
|
||||
sta ShieldEnergy,x
|
||||
rts
|
||||
.endp
|
||||
|
||||
;---------------------------------
|
||||
.proc Seppuku
|
||||
lda #0
|
||||
@@ -695,6 +763,9 @@ NotNegativeEnergy
|
||||
sta ydraw+1
|
||||
; get position of the tank
|
||||
ldx TankNr
|
||||
lda #0 ; turn off defense weapons when hara-kiring
|
||||
sta ActiveDefenceWeapon,x
|
||||
sta ShieldEnergy,x
|
||||
lda xtankstableL,x
|
||||
sta xdraw
|
||||
lda xtankstableH,x
|
||||
@@ -707,7 +778,7 @@ NotNegativeEnergy
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
GetRandomWind .proc
|
||||
.proc GetRandomWind
|
||||
;in: MaxWind (byte)
|
||||
;out: Wind (word)
|
||||
;uses: _
|
||||
@@ -736,31 +807,50 @@ GetRandomWind .proc
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
PMoutofScreen .proc
|
||||
.proc PMoutofScreen
|
||||
;--------------------------------------------------
|
||||
lda #$00 ; let all P/M disappear
|
||||
:8 sta hposp0+#
|
||||
rts
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc ColorsOfSprites
|
||||
lda TankColoursTable ; colours of sprites under tanks
|
||||
sta COLPM0S
|
||||
lda TankColoursTable+1
|
||||
sta COLPM1S
|
||||
lda TankColoursTable+2
|
||||
sta COLPM2S
|
||||
lda TankColoursTable+3
|
||||
sta COLPM3S
|
||||
LDA TankColoursTable+4
|
||||
STA COLPF3S ; joined missiles (5th tank)
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc WeaponCleanup;
|
||||
; cleaning of the weapon possesion tables
|
||||
; (99 of Baby Missles, all other weapons=0)
|
||||
; 99 of Baby Missles(index==0), all other weapons=0)
|
||||
;--------------------------------------------------
|
||||
ldx #$3f
|
||||
lda #$0
|
||||
@
|
||||
sta TanksWeapon1,x
|
||||
ldx #$3f ; TODO: maxweapons
|
||||
@ lda #$0
|
||||
cpx #48 ; White Flag
|
||||
bne @+
|
||||
lda #99
|
||||
@ sta TanksWeapon1,x
|
||||
sta TanksWeapon2,x
|
||||
sta TanksWeapon3,x
|
||||
sta TanksWeapon4,x
|
||||
sta TanksWeapon5,x
|
||||
sta TanksWeapon6,x
|
||||
dex
|
||||
sne:lda #99
|
||||
bpl @-
|
||||
beq setBmissile
|
||||
bpl @-1
|
||||
rts
|
||||
setBmissile
|
||||
lda #99
|
||||
bne @-
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
@@ -823,18 +913,6 @@ SetunPlots
|
||||
lda #$10 ; P/M priorities (bit 4 joins missiles)
|
||||
sta gtictls
|
||||
jsr PMoutofScreen
|
||||
lda TankColoursTable ; temporary colours of sprites under tanks
|
||||
sta COLPM0S
|
||||
lda TankColoursTable+1
|
||||
sta COLPM1S
|
||||
lda TankColoursTable+2
|
||||
sta COLPM2S
|
||||
lda TankColoursTable+3
|
||||
sta COLPM3S
|
||||
LDA TankColoursTable+4
|
||||
STA COLPF3S ; joined missiles (5th tank)
|
||||
mva #0 hscrol
|
||||
|
||||
|
||||
;let the tanks be visible!
|
||||
ldx #(maxPlayers-1)
|
||||
@@ -854,7 +932,8 @@ ClearResults
|
||||
bne ClearResults
|
||||
|
||||
mva #1 CurrentRoundNr ;we start from round 1
|
||||
|
||||
mva #6 NTSCcounter
|
||||
|
||||
; RMT INIT
|
||||
lda #$f0 ;initial value
|
||||
sta RMTSFXVOLUME ;sfx note volume * 16 (0,16,32,...,240)
|
||||
@@ -862,18 +941,18 @@ ClearResults
|
||||
lda #$ff ;initial value
|
||||
sta sfx_effect
|
||||
;
|
||||
ldx #<MODUL ;low byte of RMT module to X reg
|
||||
ldy #>MODUL ;hi byte of RMT module to Y reg
|
||||
lda #0 ;starting song line 0-255 to A reg
|
||||
jsr RASTERMUSICTRACKER ;Init
|
||||
lda #0
|
||||
jsr RmtSongSelect
|
||||
;
|
||||
VMAIN VBLinterrupt,6 ;jsr SetVBL
|
||||
|
||||
rts
|
||||
.endp
|
||||
|
||||
DLIinterruptGraph .proc
|
||||
pha
|
||||
;--------------------------------------------------
|
||||
.proc DLIinterruptGraph
|
||||
;sta dliA
|
||||
;sty dliY
|
||||
pha
|
||||
phy
|
||||
ldy dliCounter
|
||||
lda dliColorsBack,y
|
||||
@@ -884,41 +963,63 @@ DLIinterruptGraph .proc
|
||||
sta COLPF1
|
||||
sty COLPF2
|
||||
inc dliCounter
|
||||
ply
|
||||
;ldy dliY
|
||||
;lda dliA
|
||||
ply
|
||||
pla
|
||||
rti
|
||||
.endp
|
||||
|
||||
DLIinterruptText .proc
|
||||
pha
|
||||
;--------------------------------------------------
|
||||
.proc DLIinterruptText
|
||||
;sta dliA
|
||||
pha
|
||||
sta WSYNC
|
||||
mva #TextBackgroundColor colpf2
|
||||
mva #TextForegroundColor colpf3
|
||||
pla
|
||||
;lda dliA
|
||||
pla
|
||||
DLIinterruptNone
|
||||
rti
|
||||
.endp
|
||||
|
||||
VBLinterrupt .proc
|
||||
;--------------------------------------------------
|
||||
.proc VBLinterrupt
|
||||
pha
|
||||
phx
|
||||
phy
|
||||
mva #0 dliCounter
|
||||
|
||||
lda PAL
|
||||
and #%00001110
|
||||
beq itsPAL
|
||||
;it is NTSC here
|
||||
dec NTSCcounter
|
||||
bne itsPAL
|
||||
mva #6 NTSCcounter
|
||||
bne exitVBL ; skip doing VBL things each 6 frames in Amerika, Amerika
|
||||
; We're all living in Amerika, Coca Cola, Wonderbra
|
||||
|
||||
itsPAL
|
||||
; pressTimer is trigger tick counter. always 50 ticks / s
|
||||
bit:smi:inc pressTimer ; timer halted if >127. max time measured 2.5 s
|
||||
|
||||
|
||||
; ------- RMT -------
|
||||
lda sfx_effect
|
||||
bmi lab2
|
||||
asl @ ; * 2
|
||||
tay ;Y = 2,4,..,16 instrument number * 2 (0,2,4,..,126)
|
||||
ldx #0 ;X = 0 channel (0..3 or 0..7 for stereo module)
|
||||
lda #0 ;A = 12 note (0..60)
|
||||
jsr RASTERMUSICTRACKER+15 ;RMT_SFX start tone (It works only if FEAT_SFX is enabled !!!)
|
||||
;
|
||||
lda #0 ;A = 0 note (0..60)
|
||||
bit noSfx
|
||||
smi:jsr RASTERMUSICTRACKER+15 ;RMT_SFX start tone (It works only if FEAT_SFX is enabled !!!)
|
||||
|
||||
lda #$ff
|
||||
sta sfx_effect ;reinit value
|
||||
;
|
||||
lab2
|
||||
jsr RASTERMUSICTRACKER+3 ;1 play
|
||||
; ------- RMT -------
|
||||
|
||||
exitVBL
|
||||
ply
|
||||
plx
|
||||
pla
|
||||
@@ -934,9 +1035,7 @@ lab2
|
||||
bne @-
|
||||
rts
|
||||
.endp
|
||||
|
||||
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc RandomizeSequence
|
||||
; in: NumberOfPlayers
|
||||
; out: TankSequence
|
||||
@@ -986,7 +1085,7 @@ UsageLoop
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
RandomizeAngle .proc ;
|
||||
.proc RandomizeAngle
|
||||
; routine returns in A
|
||||
; a valid angle for the tank's barrel.
|
||||
; X is not changed
|
||||
@@ -1002,14 +1101,14 @@ RandomizeAngle .proc ;
|
||||
bcs RandomizeAngle
|
||||
|
||||
|
||||
sta temp
|
||||
lda #90 ; CARRY=0 here
|
||||
sbc temp
|
||||
;sta temp
|
||||
;lda #90 ; CARRY=0 here
|
||||
;sbc temp
|
||||
|
||||
rts
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
RandomizeForce .proc
|
||||
.proc RandomizeForce
|
||||
; routine returns in ForceTable/L/H
|
||||
; valid force of shooting for TankNr
|
||||
; in X must be TankNr
|
||||
@@ -1054,41 +1153,25 @@ LimitForce
|
||||
rts
|
||||
|
||||
.endp
|
||||
|
||||
;----------------------------------------------
|
||||
.proc MoveBarrelToNewPosition
|
||||
jsr DrawTankNr
|
||||
jsr DisplayStatus.displayAngle
|
||||
ldx TankNr
|
||||
lda AngleTable,x
|
||||
clc
|
||||
adc #90 ;shift angle to the positive values
|
||||
sta temp
|
||||
lda NewAngle
|
||||
clc
|
||||
adc #90
|
||||
cmp temp
|
||||
cmp AngleTable,x
|
||||
beq BarrelPositionIsFine
|
||||
bcc rotateLeft ; older is bigger
|
||||
rotateRight;older is lower
|
||||
inc angleTable,x
|
||||
bne MoveBarrelToNewPosition
|
||||
|
||||
mva #$30 CharCode ; if angle goes through 0 we clear the barrel
|
||||
jsr DrawTankNr.drawtankNrX
|
||||
|
||||
jmp MoveBarrelToNewPosition
|
||||
rotateLeft
|
||||
dec angleTable,x
|
||||
bpl MoveBarrelToNewPosition
|
||||
mva #$2e CharCode
|
||||
jsr DrawTankNr.drawtankNrX
|
||||
|
||||
jmp MoveBarrelToNewPosition
|
||||
|
||||
BarrelPositionIsFine
|
||||
rts
|
||||
|
||||
.endp
|
||||
.endp
|
||||
|
||||
;----------------------------------------------
|
||||
.proc SortSequence ;
|
||||
@@ -1218,19 +1301,19 @@ notpressedJoyGetKey
|
||||
getkeyend
|
||||
mvx #sfx_keyclick sfx_effect
|
||||
rts
|
||||
|
||||
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
getkeynowait .proc;
|
||||
.proc getkeynowait
|
||||
;--------------------------------------------------
|
||||
jsr WaitForKeyRelease
|
||||
lda kbcode
|
||||
and #$3f ;CTRL and SHIFT ellimination
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
WaitForKeyRelease .proc
|
||||
.proc WaitForKeyRelease
|
||||
;--------------------------------------------------
|
||||
lda JSTICK0
|
||||
and #$0f
|
||||
@@ -1244,7 +1327,16 @@ WaitForKeyRelease .proc
|
||||
rts
|
||||
.endp
|
||||
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc RmtSongSelect
|
||||
;--------------------------------------------------
|
||||
; starting song line 0-255 to A reg
|
||||
bit noMusic
|
||||
spl:lda #song_silencio
|
||||
ldx #<MODUL ;low byte of RMT module to X reg
|
||||
ldy #>MODUL ;hi byte of RMT module to Y reg
|
||||
jmp RASTERMUSICTRACKER ;Init, :RTS
|
||||
.endp
|
||||
;----------------------------------------------
|
||||
icl 'weapons.asm'
|
||||
;----------------------------------------------
|
||||
@@ -1262,10 +1354,11 @@ font4x4
|
||||
ins 'artwork/font4x4s.bmp',+62
|
||||
;----------------------------------------------
|
||||
TankFont
|
||||
ins 'artwork/tanks.fnt'
|
||||
ins 'artwork/tanksv2.fnt'
|
||||
;----------------------------------------------
|
||||
icl 'variables.asm'
|
||||
;----------------------------------------------
|
||||
|
||||
; reserved space for RMT player
|
||||
.ds $0320
|
||||
.align $100
|
||||
@@ -1274,14 +1367,14 @@ TankFont
|
||||
|
||||
MODUL equ $b000 ;address of RMT module
|
||||
opt h- ;RMT module is standard Atari binary file already
|
||||
ins "artwork/sfx/scorch_trial0e_stripped.rmt" ;include music RMT module
|
||||
ins "artwork/sfx/scorch_trial0f_stripped.rmt" ;include music RMT module
|
||||
opt h+
|
||||
;
|
||||
;
|
||||
TheEnd
|
||||
.ECHO 'TheEnd: ',TheEnd
|
||||
.if TheEnd > PMGraph + $300
|
||||
.error memory conflict
|
||||
.error "memory conflict"
|
||||
|
||||
.endif
|
||||
;----------------------------------------------
|
||||
|
||||
BIN
Binary file not shown.
+525
-258
File diff suppressed because it is too large
Load Diff
+21
-16
@@ -12,13 +12,17 @@ TanksNames ; DO NOT ZERO - ticket #24
|
||||
:6 dta d" "
|
||||
;----------------------------------------------------
|
||||
;Options DO NOT ZERO - ticket #27
|
||||
OptionsTable .by 0,0,2,2,0,1,3
|
||||
OptionsTable .by 0,1,2,2,0,1,3,2
|
||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
seppukuVal .by 75
|
||||
mountainDeltaH .by 3
|
||||
mountainDeltaL .by $ff
|
||||
;----------------------------------------------------
|
||||
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||
.DS [MaxPlayers]
|
||||
;----------------------------------------------------
|
||||
noMusic .by 0 ; 0 - play music, $ff - do not play music
|
||||
noSfx .by 0 ; 0 - play SFX, $ff - do not play SFX
|
||||
; 4x4 text buffer
|
||||
ResultLineBuffer
|
||||
dta d" ", $ff
|
||||
@@ -30,6 +34,8 @@ RoundNrDisplay
|
||||
;=====================================================
|
||||
variablesStart ; zeroing starts here
|
||||
;=====================================================
|
||||
isInventory .ds 1 ; 0 - purchase, $ff - inventory
|
||||
;--------------
|
||||
drawFunction .ds 1 ; 0 - plot, %10000000 - LineLength (N), %01000000 - DrawCheck (V)
|
||||
;--------------
|
||||
sfx_effect .ds 1
|
||||
@@ -47,7 +53,7 @@ moneyH ;we place zero at the end of prices and money
|
||||
;and have range from 0 to 99990 (not too much)
|
||||
;money players have (maybe one more byte is needed?)
|
||||
.DS [MaxPlayers]
|
||||
moneyL
|
||||
moneyL
|
||||
.DS [MaxPlayers]
|
||||
;----------------------------------------------------
|
||||
gainH ;how much money player gets after the round
|
||||
@@ -66,6 +72,8 @@ looseL
|
||||
;----------------------------------------------------
|
||||
Energy
|
||||
.DS [MaxPlayers]
|
||||
ShieldEnergy
|
||||
.DS [MaxPlayers]
|
||||
EnergyDecrease .DS 1
|
||||
eXistenZ
|
||||
.DS [MaxPlayers]
|
||||
@@ -95,6 +103,8 @@ NewAngle .DS 1
|
||||
|
||||
ActiveWeapon ;number of the selected weapon
|
||||
.DS [MaxPlayers]
|
||||
ActiveDefenceWeapon ;number of the activated defence weapon - 0
|
||||
.DS [MaxPlayers]
|
||||
WeaponDepleted .DS 1 ; if 0 deactivate the weapon and switch to Baby Missile
|
||||
;----------------------------------------------------
|
||||
|
||||
@@ -114,7 +124,7 @@ MaxWind .ds 1 ;
|
||||
WindOrientation .DS 1 ;(0-right,1-left)
|
||||
;----------------------------------------------------
|
||||
Counter .DS 1 ;temporary Counter for outside loops
|
||||
HitFlag .DS 1 ;1 when missile hit anything
|
||||
HitFlag .DS 1 ;$ff when missile hit ground, $00 when no hit, $01-$06 tank index+1 when hit tank
|
||||
;----------------------------------------------------
|
||||
xtankstableL ;X positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
@@ -170,7 +180,7 @@ xcircle .DS 2
|
||||
ycircle .DS 2
|
||||
tempcir .DS 2
|
||||
;TankFalls
|
||||
IfFallDown .DS 1
|
||||
FallingSoundBit .DS 1
|
||||
PreviousFall .DS 1
|
||||
EndOfTheFallFlag .DS 1 ; in case of the infinite fall
|
||||
Parachute .DS 1 ; are you insured with parachute?
|
||||
@@ -203,9 +213,6 @@ Multiplier .ds 3 ; 0,0,0
|
||||
Multiplee .ds 2 ; 0,0
|
||||
goleft .DS 1 ;if 1 then flights left
|
||||
;----------------------------------------------------
|
||||
;SoilDown2
|
||||
IsEndOfTheFallFlag .DS 1
|
||||
;----------------------------------------------------
|
||||
;unPlot
|
||||
WhichUnPlot .DS 1
|
||||
; max 5 concurrent unPlots
|
||||
@@ -239,22 +246,20 @@ temptankNr .DS 1
|
||||
|
||||
;----------------------------------------------------
|
||||
;Variables from textproc.s65
|
||||
; tables with numbers of weapons on the right lists
|
||||
; to be honest - I do not know at the moment what the above
|
||||
; comment was supposed to mean...
|
||||
; tables with indexes of weapons on the right lists
|
||||
; OK (2022) so, L1 is list of offensive weapons, L2 - defensive
|
||||
NubersOfWeaponsL1
|
||||
.ds 8*5 ; :(8*5) .by $ff
|
||||
NubersOfWeaponsL2
|
||||
.ds 8*2 ; :(8*2) .by $ff
|
||||
IndexesOfWeaponsL1
|
||||
.ds 8*5 ; max 40 offensive weapons. this is wrong, should be 48, still only 32 defined.
|
||||
IndexesOfWeaponsL2
|
||||
.ds 8*2 ; max 16 defensive weapons.
|
||||
;----------------------------------------------------
|
||||
|
||||
; variables storing amount of weapons on the first and second
|
||||
; list and pointer position
|
||||
|
||||
HowManyOnTheList1
|
||||
HowManyOnTheListOff
|
||||
.DS 1
|
||||
HowManyOnTheList2
|
||||
HowManyOnTheListDef
|
||||
.DS 1
|
||||
PositionOnTheList ; pointer position on the list being displayed
|
||||
.DS 1
|
||||
|
||||
+731
-278
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user