build 135
This commit is contained in:
@@ -26,26 +26,26 @@ Game source code is split into 5+3 parts:
|
|||||||
- weapons.asm - general arsenal of tankies
|
- weapons.asm - general arsenal of tankies
|
||||||
|
|
||||||
We were trying to use as much macros and pseudo-ops as possible.
|
We were trying to use as much macros and pseudo-ops as possible.
|
||||||
They are defined in atari.hea and macro.hea files together with many
|
They are defined in atari.hea and macro.hea files together with many atari constants. This way it should be relatively easy to port this code to e.g. C64
|
||||||
atari constants. This way it should be relatively easy to
|
|
||||||
port this code to e.g. C64
|
|
||||||
|
|
||||||
After those N years of working on this piece of code
|
After those N years of working on this piece of code we are sure it would be much wiser to write it in C, Action! or MadPascal but on the other hand it is so much fun to type 150 chars where all you want to have y=ax+b :)
|
||||||
we are sure it would be much wiser to write it in C, Action!
|
|
||||||
or MadPascal but on the other hand it is so much fun to type 150 chars
|
|
||||||
where all you want to have y=ax+b :)
|
|
||||||
|
|
||||||
Originally most variables were in Polish, comments were sparse
|
Originally most variables were in Polish, comments were sparse, but we wanted to release this piece of code to public.
|
||||||
but we wanted to release this piece of code to public
|
Because of being always short of time/energy (to finish the game) we decided it must go in 'English' to let other people work on it.
|
||||||
and due to being always short of time/energy (to finish the game)
|
It never happened, but we got some encouraging comments and we are still trying to do something from time to time.
|
||||||
we decided it must go in 'English' to let other people work on it.
|
|
||||||
It never happened, but we got some encouraging comments and we are still
|
|
||||||
trying to do something from time to time.
|
|
||||||
|
|
||||||
With the advent of fujinet (https://fujinet.online/) we are thinking about making the game interplanetary, err, with multiplayer over the net. We'll see.
|
With the advent of fujinet (https://fujinet.online/) we are thinking about making the game interplanetary, err, with multiplayer over the net. We'll see.
|
||||||
|
|
||||||
## Changes:
|
## Changes:
|
||||||
|
|
||||||
|
###### Build 135
|
||||||
|
2022-04-17
|
||||||
|
Happy Easter! This is a "premature ejacu.." err... "premature optimization" build. I got into an optimization fewer and got the code messed up, having to revert to the base. One important ticket closed:
|
||||||
|
- https://github.com/pkali/scorch_src/issues/35 Two morons shooting each other for more than 5 minutes. Added a new option "Seppuku". It causes one of the tanks ashamed with their inefficiency to detonate the weapon on itself. This was quite a difficult addition, requiring me to understand large swaths of the code, always a great challenge. Smoother gameplay with AIs guaranteed or money back.
|
||||||
|
Other small fixes:
|
||||||
|
- https://github.com/pkali/scorch_src/issues/23 High flying MIRV leaves traces. Not anymore.
|
||||||
|
- https://github.com/pkali/scorch_src/issues/12 Make soil fall down faster after soil eating weapons. Soil eating range is OK, it is the soil down routine that is slow (but visually attractive).
|
||||||
|
|
||||||
###### Build 134
|
###### Build 134
|
||||||
2022-04-10
|
2022-04-10
|
||||||
- https://github.com/pkali/scorch_src/issues/34 - plot pointer visible only when missile is out of the screen
|
- https://github.com/pkali/scorch_src/issues/34 - plot pointer visible only when missile is out of the screen
|
||||||
@@ -53,6 +53,7 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin
|
|||||||
- https://github.com/pkali/scorch_src/issues/32 - Basic is turned off right on the beginning of loading. Dracon reported problems with running the game in Altirra, this was the best idea I had about it. Maybe next will be removing from zero page LZSS routine by @dmsc
|
- https://github.com/pkali/scorch_src/issues/32 - Basic is turned off right on the beginning of loading. Dracon reported problems with running the game in Altirra, this was the best idea I had about it. Maybe next will be removing from zero page LZSS routine by @dmsc
|
||||||
- https://github.com/pkali/scorch_src/issues/31 - STA WSYNC removed from missile flight delay
|
- https://github.com/pkali/scorch_src/issues/31 - STA WSYNC removed from missile flight delay
|
||||||
- https://github.com/pkali/scorch_src/issues/30 - player level remembered between rounds, thx @KrzysRog
|
- https://github.com/pkali/scorch_src/issues/30 - player level remembered between rounds, thx @KrzysRog
|
||||||
|
- https://github.com/pkali/scorch_src/issues/5 - funkybomb smoke stays on the edges of the screen
|
||||||
|
|
||||||
###### Build 133
|
###### Build 133
|
||||||
2022-04-03
|
2022-04-03
|
||||||
@@ -106,12 +107,10 @@ With the advent of fujinet (https://fujinet.online/) we are thinking about makin
|
|||||||
- fixed bug 015 (Only first shoot of FunkyBomb is correct
|
- fixed bug 015 (Only first shoot of FunkyBomb is correct
|
||||||
- fixed bug 016 (No falling soil after leapfrog)
|
- fixed bug 016 (No falling soil after leapfrog)
|
||||||
|
|
||||||
|
|
||||||
##### Build 125
|
##### Build 125
|
||||||
2022-01-23
|
2022-01-23
|
||||||
- included splash screen by KAZ
|
- included splash screen by KAZ
|
||||||
|
|
||||||
|
|
||||||
##### Build 124
|
##### Build 124
|
||||||
2013-12-21
|
2013-12-21
|
||||||
- removed large chunk of redundant 4x4 print code and table generation code,
|
- removed large chunk of redundant 4x4 print code and table generation code,
|
||||||
@@ -162,7 +161,7 @@ MISSING UPDATE INFORMATION... POSSIBLY NOTHING IMPORTANT HAPPENED HERE.
|
|||||||
- fixed bug 001 (lack of explosions on the empty ground)
|
- fixed bug 001 (lack of explosions on the empty ground)
|
||||||
- fixed bug 003 (wrapping death's head explosions)
|
- fixed bug 003 (wrapping death's head explosions)
|
||||||
- fixed plot (faster explosions)
|
- fixed plot (faster explosions)
|
||||||
- fukk, just 6 years and we are back!!! This game is pretty addictive :)
|
- fokk, just 6 years and we are back!!! This game is pretty addictive :)
|
||||||
|
|
||||||
TO DO:
|
TO DO:
|
||||||
- send our wives and kids away much more often :))))
|
- send our wives and kids away much more often :))))
|
||||||
@@ -201,7 +200,6 @@ textproc.s65
|
|||||||
SHORTSYS.S65
|
SHORTSYS.S65
|
||||||
- new macro PAUSE (waits given number of frames)
|
- new macro PAUSE (waits given number of frames)
|
||||||
|
|
||||||
|
|
||||||
##### Build 112
|
##### Build 112
|
||||||
2003-08-15
|
2003-08-15
|
||||||
|
|
||||||
@@ -238,4 +236,4 @@ variables.s65
|
|||||||
grafproc.s65
|
grafproc.s65
|
||||||
- shorter delay during Flight
|
- shorter delay during Flight
|
||||||
|
|
||||||
...older history missing...
|
...transmission error...former history missing...
|
||||||
+1
-1
@@ -45,7 +45,7 @@ THIS IS YOUR BRAIN ON SCORCH.
|
|||||||
TAKE THIS!
|
TAKE THIS!
|
||||||
THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US.
|
THIS SCREEN AIN'T BIG ENOUGH FOR THE BOTH OF US.
|
||||||
DIE, ALIEN SWINE!
|
DIE, ALIEN SWINE!
|
||||||
SAY "ARRGGHHHHH...."
|
SAY 'ARRGGHHHHH....'
|
||||||
I SHALL OIL MY TURRET WITH YOUR BLOOD.
|
I SHALL OIL MY TURRET WITH YOUR BLOOD.
|
||||||
DIE, TANK-SCUM!
|
DIE, TANK-SCUM!
|
||||||
I'M GONNA BREAK YOUR FACE!
|
I'M GONNA BREAK YOUR FACE!
|
||||||
|
|||||||
+11
-5
@@ -13,7 +13,8 @@ CashOptionH
|
|||||||
GravityTable .by 10,20,25,30,40
|
GravityTable .by 10,20,25,30,40
|
||||||
MaxWindTable .by 5,20,40,60,80
|
MaxWindTable .by 5,20,40,60,80
|
||||||
RoundsTable .by 10,20,30,40,50
|
RoundsTable .by 10,20,30,40,50
|
||||||
flyDelayTable .by 255,150,75,35,1
|
flyDelayTable .by 255,150,75,35,1
|
||||||
|
seppukuTable .by 255, 45,25,15,9
|
||||||
;------------------------------------------------
|
;------------------------------------------------
|
||||||
|
|
||||||
LevelNameBeginL ; begins of level names
|
LevelNameBeginL ; begins of level names
|
||||||
@@ -30,9 +31,7 @@ TanksWeaponsTableL
|
|||||||
TanksWeaponsTableH
|
TanksWeaponsTableH
|
||||||
.by >TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6
|
.by >TanksWeapon1,>TanksWeapon2,>TanksWeapon3,>TanksWeapon4,>TanksWeapon5,>TanksWeapon6
|
||||||
;-----4x4 texts-----
|
;-----4x4 texts-----
|
||||||
ResultLineBuffer
|
|
||||||
dta d" "
|
|
||||||
.byte $ff
|
|
||||||
LineTop
|
LineTop
|
||||||
dta d"(%%%%%%%%%%%%)"
|
dta d"(%%%%%%%%%%%%)"
|
||||||
.byte $ff
|
.byte $ff
|
||||||
@@ -54,6 +53,13 @@ LineHeader2
|
|||||||
LineGameOver
|
LineGameOver
|
||||||
dta d"# GAME OVER #"
|
dta d"# GAME OVER #"
|
||||||
.byte $ff
|
.byte $ff
|
||||||
|
seppukuText
|
||||||
|
dta d"# SEPPUKU! #"
|
||||||
|
.byte $ff
|
||||||
|
lineClear
|
||||||
|
dta d" "
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
|
||||||
;-----------
|
;-----------
|
||||||
pmtableL ; addressess of the P/M memory for 5 tanks (6th is without P/M background)
|
pmtableL ; addressess of the P/M memory for 5 tanks (6th is without P/M background)
|
||||||
@@ -1038,7 +1044,7 @@ joyToKeyTable
|
|||||||
.by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff
|
.by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff
|
||||||
|
|
||||||
;-----------------------------------
|
;-----------------------------------
|
||||||
keycodes ;tables for calculating KeyCode to Screen Code (38 -1 characters)
|
keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters)
|
||||||
.by $3f,$15,$12,$3a,$2a,$38,$3d,$39
|
.by $3f,$15,$12,$3a,$2a,$38,$3d,$39
|
||||||
.by $0d,$01,$05,$00,$25,$23,$08,$0a
|
.by $0d,$01,$05,$00,$25,$23,$08,$0a
|
||||||
.by $2f,$28,$3e,$2d,$0b,$10,$2e,$16
|
.by $2f,$28,$3e,$2d,$0b,$10,$2e,$16
|
||||||
|
|||||||
+10
-9
@@ -30,7 +30,7 @@ OptionsDL
|
|||||||
.byte $42
|
.byte $42
|
||||||
.word OptionsScreen
|
.word OptionsScreen
|
||||||
.byte $30,$02,$02,$70
|
.byte $30,$02,$02,$70
|
||||||
:maxOptions .by $02,0
|
:maxOptions .by $02,$10
|
||||||
.byte $41
|
.byte $41
|
||||||
.word OptionsDL
|
.word OptionsDL
|
||||||
;------------------------
|
;------------------------
|
||||||
@@ -60,24 +60,25 @@ dl ; MAIN game display list
|
|||||||
.by $0f
|
.by $0f
|
||||||
.by $4f
|
.by $4f
|
||||||
.wo display+$0ff0
|
.wo display+$0ff0
|
||||||
:97 .byte $0f
|
:100 .byte $0f ;97
|
||||||
.byte $41
|
.byte $41
|
||||||
.word dl
|
.word dl
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
;Screen displays go first to avoid crossing 4kb barrier
|
;Screen displays go first to avoid crossing 4kb barrier
|
||||||
;-----------------------------------------------
|
;-----------------------------------------------
|
||||||
OptionsScreen
|
OptionsScreen
|
||||||
dta d"Welcome to Scorch ver. 134 (un)2000-2022"
|
dta d"Welcome to Scorch ver. 135 (un)2000-2022"
|
||||||
dta d" Please select option with cursor keys "
|
dta d" Please select option with cursor keys "
|
||||||
dta d" and press (Return) to proceed "
|
dta d" and press (Return) to proceed "
|
||||||
OptionsHere
|
OptionsHere
|
||||||
; 0123456789012345678901234567890123456789
|
; 0123456789012345678901234567890123456789
|
||||||
dta d"Players : 2 3 4 5 6 "
|
dta d"Players : 2 3 4 5 6 "
|
||||||
dta d"Cash : none 2K 5K 8K 10K "
|
dta d"Cash : none 2K 5K 8K 10K "
|
||||||
dta d"Gravity : 0.2G 0.5G 1G 2G 4G "
|
dta d"Gravity : 0.2G 0.5G 1G 2G 4G "
|
||||||
dta d"Wind : 1B 3B 5B 7B 9B "
|
dta d"Wind : 1B 3B 5B 7B 9B "
|
||||||
dta d"Rounds : 10 20 30 40 50 "
|
dta d"Rounds : 10 20 30 40 50 "
|
||||||
dta d"Shells : slug slow norm fast hare "
|
dta d"Missiles : slug slow norm fast hare "
|
||||||
|
dta d"Seppuku : nevr rare norm oftn alws "
|
||||||
OptionsScreenEnd
|
OptionsScreenEnd
|
||||||
; -------------------------------------------------
|
; -------------------------------------------------
|
||||||
NameScreen
|
NameScreen
|
||||||
|
|||||||
+1
-3
@@ -1409,8 +1409,6 @@ PutChar4x4FULL .proc;
|
|||||||
;but this time all pixels are being drawn
|
;but this time all pixels are being drawn
|
||||||
;(empty and not empty)
|
;(empty and not empty)
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
lda plot4x4color
|
|
||||||
sta color
|
|
||||||
|
|
||||||
; calculating address of the first byte
|
; calculating address of the first byte
|
||||||
mva #4 LoopCounter4x4
|
mva #4 LoopCounter4x4
|
||||||
@@ -1461,7 +1459,7 @@ Loop4x4ContinuedFULL
|
|||||||
; here we have on screen one line of the char
|
; here we have on screen one line of the char
|
||||||
inw ydraw
|
inw ydraw
|
||||||
sbw xdraw #4
|
sbw xdraw #4
|
||||||
sbw y4x4 #32
|
sbw y4x4 #32 ; why? possibly because of width of the 4x4 font
|
||||||
dec:lda LoopCounter4x4
|
dec:lda LoopCounter4x4
|
||||||
bne nextline4x4FULL
|
bne nextline4x4FULL
|
||||||
|
|
||||||
|
|||||||
+35
-22
@@ -79,7 +79,7 @@ screenwidth = screenBytes*8 ; Max screenwidth = 512!!!
|
|||||||
margin = 48 ;mountain drawing Y variable margin
|
margin = 48 ;mountain drawing Y variable margin
|
||||||
display = $1010 ;screen takes $2K due to clearing routine
|
display = $1010 ;screen takes $2K due to clearing routine
|
||||||
MaxPlayers = 6
|
MaxPlayers = 6
|
||||||
maxOptions = 6 ;number of all options
|
maxOptions = 7 ;number of all options
|
||||||
PMOffset = $23 ; P/M to graphics offset
|
PMOffset = $23 ; P/M to graphics offset
|
||||||
|
|
||||||
icl 'lib/atari.hea'
|
icl 'lib/atari.hea'
|
||||||
@@ -247,7 +247,7 @@ Round .proc ;
|
|||||||
; the default shooting angle to 45 degrees
|
; the default shooting angle to 45 degrees
|
||||||
; of course gains an looses are zeroed
|
; of course gains an looses are zeroed
|
||||||
|
|
||||||
jsr DisplayingSymbols
|
jsr StatusDisplay
|
||||||
lda #0
|
lda #0
|
||||||
tax
|
tax
|
||||||
@
|
@
|
||||||
@@ -310,7 +310,7 @@ MainRoundLoop
|
|||||||
; here we must check if by a chance there is only one
|
; here we must check if by a chance there is only one
|
||||||
; tank with energy greater than 0 left
|
; tank with energy greater than 0 left
|
||||||
|
|
||||||
ldy #0 ; number of tanks with energy greater than zero
|
ldy #0 ; in Y - number of tanks with energy greater than zero
|
||||||
ldx NumberOfPlayers
|
ldx NumberOfPlayers
|
||||||
dex
|
dex
|
||||||
CheckingIfRoundIsFinished
|
CheckingIfRoundIsFinished
|
||||||
@@ -337,7 +337,7 @@ WhichTankWonLoop
|
|||||||
; somehow I believed program will be never here
|
; somehow I believed program will be never here
|
||||||
; but it was a bad assumption
|
; but it was a bad assumption
|
||||||
; god knows when there is such a situation
|
; god knows when there is such a situation
|
||||||
; (we've got a SITUATION here, it you know what I mean)
|
; (we've got a SITUATION here, if you know what I mean)
|
||||||
; there are two tanks left.
|
; there are two tanks left.
|
||||||
; one of them is killed by the second tank
|
; one of them is killed by the second tank
|
||||||
; second tank explodes and kills the first one.
|
; second tank explodes and kills the first one.
|
||||||
@@ -355,8 +355,22 @@ ThisOneWon
|
|||||||
rts ; this Round is finished
|
rts ; this Round is finished
|
||||||
|
|
||||||
DoNotFinishTheRound
|
DoNotFinishTheRound
|
||||||
;ldx TankNr
|
; Seppuku here
|
||||||
|
lda noDeathCounter
|
||||||
|
cmp seppukuVal
|
||||||
|
bcc @+
|
||||||
|
|
||||||
|
mva #0 noDeathCounter
|
||||||
|
|
||||||
|
jsr DisplaySeppuku
|
||||||
|
|
||||||
|
jmp Seppuku
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;ldx TankNr
|
||||||
|
@
|
||||||
ldx TankSequencePointer
|
ldx TankSequencePointer
|
||||||
lda TankSequence,x
|
lda TankSequence,x
|
||||||
sta TankNr
|
sta TankNr
|
||||||
@@ -373,10 +387,11 @@ DoNotFinishTheRound
|
|||||||
lda SkillTable,x
|
lda SkillTable,x
|
||||||
beq ManualShooting
|
beq ManualShooting
|
||||||
|
|
||||||
|
RoboTanks
|
||||||
; robotanks shoot here
|
; robotanks shoot here
|
||||||
jsr ArtificialIntelligence
|
jsr ArtificialIntelligence
|
||||||
jsr MoveBarrelToNewPosition
|
jsr MoveBarrelToNewPosition
|
||||||
jsr DisplayingSymbols ;all digital values like force, angle, wind, etc.
|
jsr StatusDisplay ;all digital values like force, angle, wind, etc.
|
||||||
jsr PutTankNameOnScreen
|
jsr PutTankNameOnScreen
|
||||||
; let's move the tank's barrel so it points the right
|
; let's move the tank's barrel so it points the right
|
||||||
; direction
|
; direction
|
||||||
@@ -388,17 +403,20 @@ ManualShooting
|
|||||||
jsr BeforeFire
|
jsr BeforeFire
|
||||||
|
|
||||||
AfterManualShooting
|
AfterManualShooting
|
||||||
|
inc noDeathCounter
|
||||||
|
|
||||||
jsr DecreaseWeaponBeforeShoot
|
jsr DecreaseWeaponBeforeShoot
|
||||||
jsr DisplayingSymbols
|
jsr StatusDisplay
|
||||||
|
|
||||||
ldx TankNr
|
ldx TankNr
|
||||||
dec Energy,x ; lower energy to eventually let tanks commit suicide
|
dec Energy,x ; lower energy to eventually let tanks commit suicide
|
||||||
lda ActiveWeapon,x
|
|
||||||
|
|
||||||
|
ShootNow
|
||||||
jsr Shoot
|
jsr Shoot
|
||||||
|
|
||||||
lda HitFlag ;0 if missed
|
lda HitFlag ;0 if missed
|
||||||
beq missed
|
beq missed
|
||||||
|
Seppuku
|
||||||
lda #0
|
lda #0
|
||||||
sta FallDown1
|
sta FallDown1
|
||||||
sta FallDown2
|
sta FallDown2
|
||||||
@@ -532,13 +550,18 @@ NoPlayerNoDeath
|
|||||||
.endp
|
.endp
|
||||||
;---------------------------------
|
;---------------------------------
|
||||||
PlayerXdeath .proc
|
PlayerXdeath .proc
|
||||||
; first we inform that this tank should not explode anymore:
|
|
||||||
; there is 0 in A, and Tank Number in X, so...
|
|
||||||
|
|
||||||
|
|
||||||
|
; this tank should not explode anymore:
|
||||||
|
; there is 0 in A, and Tank Number in X, so...
|
||||||
sta LASTeXistenZ,x
|
sta LASTeXistenZ,x
|
||||||
; save x somewhere
|
; save x somewhere
|
||||||
stx TankTempY
|
stx TankTempY
|
||||||
|
|
||||||
|
;clear NoDeathCounter here
|
||||||
|
sta noDeathCounter
|
||||||
|
|
||||||
|
|
||||||
; display defensive text here (well, defensive
|
; display defensive text here (well, defensive
|
||||||
; is not the real meaning, it should be pre-death,
|
; is not the real meaning, it should be pre-death,
|
||||||
; but I am too lazy to change names of variables)
|
; but I am too lazy to change names of variables)
|
||||||
@@ -659,10 +682,7 @@ GetRandomWind .proc
|
|||||||
sta Wind
|
sta Wind
|
||||||
mva #$00 Wind+1
|
mva #$00 Wind+1
|
||||||
; multiply Wind by 16 and take it as a decimal part (0.Wind)
|
; multiply Wind by 16 and take it as a decimal part (0.Wind)
|
||||||
aslw Wind
|
:4 aslw Wind
|
||||||
aslw Wind
|
|
||||||
aslw Wind
|
|
||||||
aslw Wind
|
|
||||||
lda random
|
lda random
|
||||||
and #$01
|
and #$01
|
||||||
sta WindOrientation
|
sta WindOrientation
|
||||||
@@ -673,14 +693,7 @@ GetRandomWind .proc
|
|||||||
PMoutofScreen .proc
|
PMoutofScreen .proc
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
lda #$00 ; let all P/M disappear
|
lda #$00 ; let all P/M disappear
|
||||||
sta hposp0
|
:8 sta hposp0+#
|
||||||
sta hposp0+1
|
|
||||||
sta hposp0+2
|
|
||||||
sta hposp0+3
|
|
||||||
sta hposp0+4
|
|
||||||
sta hposp0+5
|
|
||||||
sta hposp0+6
|
|
||||||
sta hposp0+7
|
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
+72
-7
@@ -108,6 +108,11 @@ OptionsFinished
|
|||||||
lda flyDelayTable,y
|
lda flyDelayTable,y
|
||||||
sta flyDelay
|
sta flyDelay
|
||||||
|
|
||||||
|
;7th option (Airstrike after how many missess)
|
||||||
|
ldy OptionsTable+6
|
||||||
|
lda seppukuTable,y
|
||||||
|
sta seppukuVal
|
||||||
|
|
||||||
rts
|
rts
|
||||||
;--------
|
;--------
|
||||||
; inversing selected option (cursor)
|
; inversing selected option (cursor)
|
||||||
@@ -136,7 +141,7 @@ OptionsSetMainLoop
|
|||||||
asl
|
asl
|
||||||
adc OptionsTable,x ;OptionsTable value * 5
|
adc OptionsTable,x ;OptionsTable value * 5
|
||||||
tay
|
tay
|
||||||
ldx #MaxOptions-1
|
ldx #6-1 ; width of the highlight bar (6 chars)
|
||||||
OptionSetLoop
|
OptionSetLoop
|
||||||
lda (temp),y
|
lda (temp),y
|
||||||
ora #$80
|
ora #$80
|
||||||
@@ -170,7 +175,7 @@ OptionSetLoop
|
|||||||
;in temp is 40*OptionsY
|
;in temp is 40*OptionsY
|
||||||
adw temp #OptionsHere
|
adw temp #OptionsHere
|
||||||
;now in temp is adres of the line to be inversed
|
;now in temp is adres of the line to be inversed
|
||||||
ldy #7 ;8 letters to invers
|
ldy #8 ;9 letters to invers
|
||||||
OptionsYLoop
|
OptionsYLoop
|
||||||
lda (temp),y
|
lda (temp),y
|
||||||
ora #$80
|
ora #$80
|
||||||
@@ -1324,6 +1329,64 @@ EndOfTypeLine4x4
|
|||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
.proc DisplaySeppuku
|
||||||
|
;using 4x4 font
|
||||||
|
|
||||||
|
;save vars (messed in TypeLine4x4)
|
||||||
|
mwa Xdraw xk
|
||||||
|
mva Ydraw yc
|
||||||
|
|
||||||
|
mva #15 fs ; temp, how many times blink the billboard
|
||||||
|
@
|
||||||
|
lda fs
|
||||||
|
and #$01
|
||||||
|
sta plot4x4color
|
||||||
|
mva #4 ResultY ; where seppuku text starts Y-wise on the screen
|
||||||
|
|
||||||
|
;top frame
|
||||||
|
mwa #LineTop LineAddress4x4
|
||||||
|
mwa #((ScreenWidth/2)-(8*4)) LineXdraw ; centering
|
||||||
|
mva ResultY LineYdraw
|
||||||
|
jsr TypeLine4x4
|
||||||
|
adb ResultY #4 ;next line
|
||||||
|
|
||||||
|
;seppuku
|
||||||
|
mwa #seppukuText LineAddress4x4
|
||||||
|
mwa #((ScreenWidth/2)-(8*4)) LineXdraw ; centering
|
||||||
|
mva ResultY LineYdraw
|
||||||
|
jsr TypeLine4x4
|
||||||
|
adb ResultY #4 ;next line
|
||||||
|
|
||||||
|
;bottom frame
|
||||||
|
mwa #LineBottom LineAddress4x4
|
||||||
|
mwa #((ScreenWidth/2)-(8*4)) LineXdraw ; centering
|
||||||
|
mva ResultY LineYdraw
|
||||||
|
jsr TypeLine4x4
|
||||||
|
|
||||||
|
dec fs
|
||||||
|
bne @-
|
||||||
|
|
||||||
|
;clean seppuku
|
||||||
|
mva #3 fs
|
||||||
|
mva #4 ResultY
|
||||||
|
@
|
||||||
|
mva #1 plot4x4color
|
||||||
|
mwa #lineClear LineAddress4x4
|
||||||
|
mwa #((ScreenWidth/2)-(8*4)) LineXdraw ; centering
|
||||||
|
mva ResultY LineYdraw
|
||||||
|
jsr TypeLine4x4
|
||||||
|
adb ResultY #4 ;next line
|
||||||
|
|
||||||
|
dec fs
|
||||||
|
bne @-
|
||||||
|
|
||||||
|
;restore vars
|
||||||
|
mva yc Ydraw
|
||||||
|
mwa xk Xdraw
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
.proc DisplayResults ;
|
.proc DisplayResults ;
|
||||||
;displays results of the round
|
;displays results of the round
|
||||||
@@ -1496,9 +1559,14 @@ FinishResultDisplay
|
|||||||
.endp
|
.endp
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
.proc DisplayingSymbols
|
.proc StatusDisplay
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
|
|
||||||
|
;lda noDeathCounter
|
||||||
|
;sta decimal
|
||||||
|
;mwa #textbuffer+80+37 displayposition
|
||||||
|
;jsr displaybyte
|
||||||
|
|
||||||
;---------------------
|
;---------------------
|
||||||
;displaying symbol of the weapon
|
;displaying symbol of the weapon
|
||||||
;---------------------
|
;---------------------
|
||||||
@@ -1506,10 +1574,7 @@ FinishResultDisplay
|
|||||||
;textbuffer+18 - symbol (1 char)
|
;textbuffer+18 - symbol (1 char)
|
||||||
;textbuffer+20 - quantity left
|
;textbuffer+20 - quantity left
|
||||||
;textbuffer+23 - name
|
;textbuffer+23 - name
|
||||||
|
ldx TankNr
|
||||||
|
|
||||||
|
|
||||||
;ldx TankNr
|
|
||||||
ldy ActiveWeapon,x
|
ldy ActiveWeapon,x
|
||||||
lda WeaponSymbols,y
|
lda WeaponSymbols,y
|
||||||
sta TextBuffer+18
|
sta TextBuffer+18
|
||||||
|
|||||||
+10
-3
@@ -15,17 +15,24 @@ TanksNames ; DO NOT ZERO - ticket #24
|
|||||||
:6 dta d" "
|
:6 dta d" "
|
||||||
;----------------------------
|
;----------------------------
|
||||||
;Options DO NOT ZERO - ticket #27
|
;Options DO NOT ZERO - ticket #27
|
||||||
OptionsTable .by 0,0,2,2,0,1
|
OptionsTable .by 0,0,2,2,0,1,4
|
||||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||||
|
seppukuVal .by 75
|
||||||
;--------------------------------------------------
|
;--------------------------------------------------
|
||||||
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||||
.DS [MaxPlayers]
|
.DS [MaxPlayers]
|
||||||
;-----------------------------------
|
;-----------------------------------
|
||||||
|
; 4x4 text buffer
|
||||||
|
ResultLineBuffer
|
||||||
|
dta d" "
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
|
||||||
variablesStart ; zeroing starts here
|
variablesStart ; zeroing starts here
|
||||||
|
;--------------
|
||||||
|
noDeathCounter .ds 1
|
||||||
;--------------
|
;--------------
|
||||||
OptionsY .ds 0 ;vertical position of cursor on Options screen
|
OptionsY .ds 1 ;vertical position of cursor on Options screen
|
||||||
flyDelay .ds 1
|
flyDelay .ds 1
|
||||||
;--------------
|
;--------------
|
||||||
NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
||||||
@@ -307,7 +314,7 @@ mountaintable2 ;table of mountains (size=screenwidth)
|
|||||||
.DS 1 ; additional byte for fallout (sometimes 1 pixel)
|
.DS 1 ; additional byte for fallout (sometimes 1 pixel)
|
||||||
mountaintable3
|
mountaintable3
|
||||||
.ds [screenwidth]
|
.ds [screenwidth]
|
||||||
.ds 0 ; additional byte for fallout (sometimes 1 pixel)
|
.ds 1 ; additional byte for fallout (sometimes 1 pixel)
|
||||||
MountaintableEnd ;good for table clearing
|
MountaintableEnd ;good for table clearing
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
TextPositionX .DS 2
|
TextPositionX .DS 2
|
||||||
|
|||||||
+5
-7
@@ -864,7 +864,7 @@ ContinueToCheckMaxForce2
|
|||||||
lda MaxEnergyTableL,x
|
lda MaxEnergyTableL,x
|
||||||
sta EnergyTableL,x
|
sta EnergyTableL,x
|
||||||
@
|
@
|
||||||
jsr DisplayingSymbols ;all digital values like force, angle, wind, etc.
|
jsr StatusDisplay ;all digital values like force, angle, wind, etc.
|
||||||
jsr PutTankNameOnScreen
|
jsr PutTankNameOnScreen
|
||||||
|
|
||||||
jsr DrawTankNr
|
jsr DrawTankNr
|
||||||
@@ -1130,8 +1130,6 @@ AfterStrongShoot
|
|||||||
sbc #0
|
sbc #0
|
||||||
sta ytraj+2
|
sta ytraj+2
|
||||||
|
|
||||||
ldy #100
|
|
||||||
|
|
||||||
jsr Flight
|
jsr Flight
|
||||||
mva #1 color
|
mva #1 color
|
||||||
rts
|
rts
|
||||||
@@ -1697,8 +1695,7 @@ EndOfFlight
|
|||||||
sty SmokeTracerFlag
|
sty SmokeTracerFlag
|
||||||
jmp SecondFlight
|
jmp SecondFlight
|
||||||
EndOfFlight2
|
EndOfFlight2
|
||||||
lda #0 ; nie wiem czemu
|
mva #0 tracerflag ; don't know why
|
||||||
sta tracerflag ;
|
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
@@ -1746,8 +1743,9 @@ SecondFlight .proc
|
|||||||
sta ytraj+2
|
sta ytraj+2
|
||||||
|
|
||||||
ldy #100
|
ldy #100
|
||||||
lda #1 ; I do not know (I mean I think I know ;) )
|
mva #1 tracerflag ; I do not know (I mean I think I know ;) )
|
||||||
sta tracerflag ; 10 years later - I do not know!!!
|
; 10 years later - I do not know!!!
|
||||||
|
; 20 years later - still do not know :]
|
||||||
jmp Flight.RepeatIfSmokeTracer
|
jmp Flight.RepeatIfSmokeTracer
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user