build 127

This commit is contained in:
2022-02-14 00:19:27 -05:00
parent ef7b8df63c
commit c5264a2d83
20 changed files with 54 additions and 18 deletions
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
+6
View File
@@ -37,6 +37,12 @@ we decided it must go in 'English' to let other people work on it
## Changes:
###### Build 127
2022-02-14
- option to select number of rounds in a game
- rudimentary game over message (in results screen)
- game restarts
###### Build 126
2022-01-30
- fixed bug 006 (After some attacks the OffensiveText stays on the screen)
Regular → Executable
+3 -3
View File
@@ -44,11 +44,11 @@ To do
+003. Add colour of the given tank to the screen
E.g. when a given tank is shooting it's colour could be behind
tank name on the text screen
004. The game has no end!!! Add ending!!!
*004. The game has no end!!! Add ending!!!
A good idea for an ending - a TIP pic - Red Army taking Berlin :)
Another - vector tanks like in BattleZone
Another - stickman tankmen
005. Add number of rounds to the options menu
+005. Add number of rounds to the options menu
006. Add sound effects (maybe sampled? or mp0 (sound based on fft))
007. There is no defensive weapon handling (only parachute works,
but also provisionally
@@ -61,7 +61,7 @@ To do
+014. Demo mode - when all tanks are CPUs let them play non-stop!
(replace waiting for a key-press after a round with a small delay)
+015. Switch to mads for easier development (mads speeds it up, no doubt)
016. Speed up death's head (e.g.: draw each second circle)
+016. Speed up death's head (e.g.: draw each second circle)
-017. Wide screen mode (with scroll?)
018. Speed up soil down after soil eating weapons - correctly calculate
ranges as now range is very broad even when very little soil is eaten.
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File

Before

Width:  |  Height:  |  Size: 190 B

After

Width:  |  Height:  |  Size: 190 B

Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
View File
Regular → Executable
+3 -2
View File
@@ -29,7 +29,7 @@ OptionsDL
:5 .byte $70
.byte $42
.word OptionsScreen
.byte $02,$02,$70,$02,0,$02,0,$2,0,$2
.byte $30,$02,$02,$70,$02,0,$02,0,$2,0,$2,0,$2
.byte $41
.word OptionsDL
;------------------------
@@ -77,7 +77,7 @@ PlotLine = display + screenHeight*screenBytes ; the last line is plot pointer
;Screen displays go first to avoid crossing 4kb barrier
;-----------------------------------------------
OptionsScreen
dta d"Welcome to Scorch ver. 126 (un)2000-2022"
dta d"Welcome to Scorch ver. 127 (un)2000-2022"
dta d" Please select option with cursor keys "
dta d" and press (Return) to proceed "
OptionsHere
@@ -86,6 +86,7 @@ OptionsHere
dta d"Cash : none 2K 5K 8K 10K "
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 "
OptionsScreenEnd
; -------------------------------------------------
NameScreen
Regular → Executable
View File
Regular → Executable
View File
+6 -3
View File
@@ -168,11 +168,11 @@ MainGameLoop
; add gains and substract looses
; gain is what player gets for lost energy of opponents
; energy lost by opponents is added during Round and
; little below in source multiplied by 2 to get "dollars".
; By analogy, loose is energy that given player looses during
; little below in source, multiplied by 2 to get "dollars".
; By analogy, loss is energy that given player looses during
; each Round.
; Important! If player has 10 energy and gets central hit
; from nuke that would take 90 energy point his loose
; from nuke that would take 90 energy points his loss
; is 90, not 10
jsr DisplayResults
@@ -246,6 +246,8 @@ skipzeroing
dex
bpl CalculateGains
lda GameIsOver
jne START
inc CurrentRoundNr
@@ -787,6 +789,7 @@ Initialize .proc
sta tracerflag
sta oldPlotPointerX
sta oldPlotPointerX+1
sta GameIsOver
mva #$2 colpf2s
mva #12 colpf3s
BIN
View File
Binary file not shown.
Regular → Executable
+24 -5
View File
@@ -1,4 +1,4 @@
; @com.wudsn.ide.asm.mainsourcefile=program.asm
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
.IF *>0
@@ -69,7 +69,7 @@ Options .proc
; this function returns:
; - number of players (NumberOfPlayers)
; - money each player has on the beginning of the game (moneyL i moneyH)
; - and I am sure maxwind, gravity, ????
; - and I am sure maxwind, gravity, no_of_rounds in a game
mva #0 OptionsY
@@ -82,7 +82,7 @@ OptionsMainLoop
inc:lda OptionsY
cmp #maxoptions
bne OptionsMainLoop
mva #3 OptionsY
mva #maxoptions-1 OptionsY
jmp OptionsMainLoop
OptionsNoDown
@@ -153,9 +153,15 @@ skip10
ldy OptionsTable+3
lda MaxWindTable,y
sta MaxWind
;fifth option (no of rounds)
ldy OptionsTable+4
lda RoundsTable,y
sta RoundsInTheGame
rts
;--------
; inversing choosed option (cursor)
; inversing selected option (cursor)
;--------
OptionsInversion
mwa #OptionsHere temp
@@ -191,7 +197,7 @@ OptionSetLoop
; next option
adw temp #40 ;jump to next line
inc:lda temp2
cmp #4 ;number of options
cmp #maxoptions ;number of options
bne OptionsSetMainLoop
;inversing the first few chars of the selected line (OptionsY)
@@ -1349,6 +1355,9 @@ DisplayResults ;
;Header1
;Displays round number
lda CurrentRoundNr
cmp RoundsInTheGame
beq GameOver4x4
sta decimal
mwa #RoundNrDisplay displayposition
jsr displaybyte ;decimal (byte), displayposition (word)
@@ -1358,7 +1367,17 @@ DisplayResults ;
mva ResultY LineYdraw
mva #1 plot4x4color
jsr TypeLine4x4
beq @+ ;unconditional jump, because TypeLine4x4 ends with beq
GameOver4x4
mwa #LineGameOver LineAddress4x4
mwa ResultX LineXdraw
mva ResultY LineYdraw
mva #1 plot4x4color
jsr TypeLine4x4
mva #1 GameIsOver
@
adw ResultY #4 ;next line
;Empty line
Regular → Executable
+11 -4
View File
@@ -8,6 +8,7 @@
;=====================================================
NumberOfPlayers .byte 0 ;current number of players (counted from 1)
TankSequence :MaxPlayers .by 0 ;sequence of shooting during the Round
GameIsOver .byte 0 ; 1 - it was the last round in the game
;-----------------------------------
skilltable ; computer controlled players' skills (1-8), 0 - human
:MaxPlayers .by 0
@@ -257,15 +258,17 @@ OffsetDL1 ; offset of the list screen (how many lines)....
; -------------------------------------------------
;Options
OptionsTable .byte 0,0,2,2
OptionsTable .byte 0,0,2,2,0
OptionsY .byte 0 ;vertical position of cursor on Options screen
maxoptions = 4 ;number of all options (4 in 0.01)
maxoptions = 5 ;number of all options (4 in 0.01)
CashOptionH ;(one zero less than on the screen)
.byte 0,>200,>500,>800,>1000
CashOptionL
.byte 0,<200,<500,<800,<1000
GravityTable .byte 10,20,25,30,40
MaxWindTable .byte 5,20,40,60,80
RoundsTable .byte 10,20,30,40,50
RoundsInTheGame .byte 10 ;how many rounds in the current game
;------------------------------------------------
;mark the level
@@ -354,6 +357,8 @@ TextNumberOff .byte 0
TankTempY
.byte 0
;----------------------------------------------
; 4x4 texts
;----------------------------------------------
LineAddress4x4
.word 0
LineCharNr
@@ -380,7 +385,9 @@ RoundNrDisplay
LineHeader2
dta d"# RESULTS #"
.byte $ff
LineGameOver
dta d"# GAME OVER #"
.byte $ff
;-----------
@@ -803,7 +810,7 @@ WeaponSymbols
.byte $02,$03,$06,$1d,$0a,$1b,$1c,$1e
.byte $3b,$3c,$3d,$3e,$3f,$5e,$5f,$00
; Names of weapons (16 chars lon)
; Names of weapons (16 chars long)
NamesOfWeapons ;the comment is an index in the tables
dta d"Baby Missile " ; 0
dta d"Missile " ; 1
Regular → Executable
View File