mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-20 22:33:43 +02:00
build 127
This commit is contained in:
Regular → Executable
@@ -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)
|
||||
|
||||
@@ -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
Regular → Executable
Regular → Executable
|
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B |
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
Regular → Executable
+3
-2
@@ -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
Regular → Executable
+6
-3
@@ -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
Binary file not shown.
Regular → Executable
+24
-5
@@ -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
@@ -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
Reference in New Issue
Block a user