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: ## 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 ###### Build 126
2022-01-30 2022-01-30
- fixed bug 006 (After some attacks the OffensiveText stays on the screen) - 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 +003. Add colour of the given tank to the screen
E.g. when a given tank is shooting it's colour could be behind E.g. when a given tank is shooting it's colour could be behind
tank name on the text screen 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 :) A good idea for an ending - a TIP pic - Red Army taking Berlin :)
Another - vector tanks like in BattleZone Another - vector tanks like in BattleZone
Another - stickman tankmen 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)) 006. Add sound effects (maybe sampled? or mp0 (sound based on fft))
007. There is no defensive weapon handling (only parachute works, 007. There is no defensive weapon handling (only parachute works,
but also provisionally but also provisionally
@@ -61,7 +61,7 @@ To do
+014. Demo mode - when all tanks are CPUs let them play non-stop! +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) (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) +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?) -017. Wide screen mode (with scroll?)
018. Speed up soil down after soil eating weapons - correctly calculate 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. 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 :5 .byte $70
.byte $42 .byte $42
.word OptionsScreen .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 .byte $41
.word OptionsDL .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 ;Screen displays go first to avoid crossing 4kb barrier
;----------------------------------------------- ;-----------------------------------------------
OptionsScreen 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" Please select option with cursor keys "
dta d" and press (Return) to proceed " dta d" and press (Return) to proceed "
OptionsHere OptionsHere
@@ -86,6 +86,7 @@ OptionsHere
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 "
OptionsScreenEnd OptionsScreenEnd
; ------------------------------------------------- ; -------------------------------------------------
NameScreen NameScreen
Regular → Executable
View File
Regular → Executable
View File
+7 -4
View File
@@ -149,7 +149,7 @@ MainGameLoop
jsr GetRandomWind jsr GetRandomWind
jsr Round jsr Round
jsr SortSequence jsr SortSequence
; Hide all (easier than hide last ;) ) tanks ; Hide all (easier than hide last ;) ) tanks
@@ -168,11 +168,11 @@ MainGameLoop
; add gains and substract looses ; add gains and substract looses
; gain is what player gets for lost energy of opponents ; gain is what player gets for lost energy of opponents
; energy lost by opponents is added during Round and ; energy lost by opponents is added during Round and
; little below in source multiplied by 2 to get "dollars". ; little below in source, multiplied by 2 to get "dollars".
; By analogy, loose is energy that given player looses during ; By analogy, loss is energy that given player looses during
; each Round. ; each Round.
; Important! If player has 10 energy and gets central hit ; 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 ; is 90, not 10
jsr DisplayResults jsr DisplayResults
@@ -246,6 +246,8 @@ skipzeroing
dex dex
bpl CalculateGains bpl CalculateGains
lda GameIsOver
jne START
inc CurrentRoundNr inc CurrentRoundNr
@@ -787,6 +789,7 @@ Initialize .proc
sta tracerflag sta tracerflag
sta oldPlotPointerX sta oldPlotPointerX
sta oldPlotPointerX+1 sta oldPlotPointerX+1
sta GameIsOver
mva #$2 colpf2s mva #$2 colpf2s
mva #12 colpf3s 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 .IF *>0
@@ -69,7 +69,7 @@ Options .proc
; this function returns: ; this function returns:
; - number of players (NumberOfPlayers) ; - number of players (NumberOfPlayers)
; - money each player has on the beginning of the game (moneyL i moneyH) ; - 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 mva #0 OptionsY
@@ -82,7 +82,7 @@ OptionsMainLoop
inc:lda OptionsY inc:lda OptionsY
cmp #maxoptions cmp #maxoptions
bne OptionsMainLoop bne OptionsMainLoop
mva #3 OptionsY mva #maxoptions-1 OptionsY
jmp OptionsMainLoop jmp OptionsMainLoop
OptionsNoDown OptionsNoDown
@@ -153,9 +153,15 @@ skip10
ldy OptionsTable+3 ldy OptionsTable+3
lda MaxWindTable,y lda MaxWindTable,y
sta MaxWind sta MaxWind
;fifth option (no of rounds)
ldy OptionsTable+4
lda RoundsTable,y
sta RoundsInTheGame
rts rts
;-------- ;--------
; inversing choosed option (cursor) ; inversing selected option (cursor)
;-------- ;--------
OptionsInversion OptionsInversion
mwa #OptionsHere temp mwa #OptionsHere temp
@@ -191,7 +197,7 @@ OptionSetLoop
; next option ; next option
adw temp #40 ;jump to next line adw temp #40 ;jump to next line
inc:lda temp2 inc:lda temp2
cmp #4 ;number of options cmp #maxoptions ;number of options
bne OptionsSetMainLoop bne OptionsSetMainLoop
;inversing the first few chars of the selected line (OptionsY) ;inversing the first few chars of the selected line (OptionsY)
@@ -1349,6 +1355,9 @@ DisplayResults ;
;Header1 ;Header1
;Displays round number ;Displays round number
lda CurrentRoundNr lda CurrentRoundNr
cmp RoundsInTheGame
beq GameOver4x4
sta decimal sta decimal
mwa #RoundNrDisplay displayposition mwa #RoundNrDisplay displayposition
jsr displaybyte ;decimal (byte), displayposition (word) jsr displaybyte ;decimal (byte), displayposition (word)
@@ -1358,7 +1367,17 @@ DisplayResults ;
mva ResultY LineYdraw mva ResultY LineYdraw
mva #1 plot4x4color mva #1 plot4x4color
jsr TypeLine4x4 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 adw ResultY #4 ;next line
;Empty line ;Empty line
Regular → Executable
+11 -4
View File
@@ -8,6 +8,7 @@
;===================================================== ;=====================================================
NumberOfPlayers .byte 0 ;current number of players (counted from 1) NumberOfPlayers .byte 0 ;current number of players (counted from 1)
TankSequence :MaxPlayers .by 0 ;sequence of shooting during the Round 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 skilltable ; computer controlled players' skills (1-8), 0 - human
:MaxPlayers .by 0 :MaxPlayers .by 0
@@ -257,15 +258,17 @@ OffsetDL1 ; offset of the list screen (how many lines)....
; ------------------------------------------------- ; -------------------------------------------------
;Options ;Options
OptionsTable .byte 0,0,2,2 OptionsTable .byte 0,0,2,2,0
OptionsY .byte 0 ;vertical position of cursor on Options screen 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) CashOptionH ;(one zero less than on the screen)
.byte 0,>200,>500,>800,>1000 .byte 0,>200,>500,>800,>1000
CashOptionL CashOptionL
.byte 0,<200,<500,<800,<1000 .byte 0,<200,<500,<800,<1000
GravityTable .byte 10,20,25,30,40 GravityTable .byte 10,20,25,30,40
MaxWindTable .byte 5,20,40,60,80 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 ;mark the level
@@ -354,6 +357,8 @@ TextNumberOff .byte 0
TankTempY TankTempY
.byte 0 .byte 0
;---------------------------------------------- ;----------------------------------------------
; 4x4 texts
;----------------------------------------------
LineAddress4x4 LineAddress4x4
.word 0 .word 0
LineCharNr LineCharNr
@@ -380,7 +385,9 @@ RoundNrDisplay
LineHeader2 LineHeader2
dta d"# RESULTS #" dta d"# RESULTS #"
.byte $ff .byte $ff
LineGameOver
dta d"# GAME OVER #"
.byte $ff
;----------- ;-----------
@@ -803,7 +810,7 @@ WeaponSymbols
.byte $02,$03,$06,$1d,$0a,$1b,$1c,$1e .byte $02,$03,$06,$1d,$0a,$1b,$1c,$1e
.byte $3b,$3c,$3d,$3e,$3f,$5e,$5f,$00 .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 NamesOfWeapons ;the comment is an index in the tables
dta d"Baby Missile " ; 0 dta d"Baby Missile " ; 0
dta d"Missile " ; 1 dta d"Missile " ; 1
Regular → Executable
View File