From c5264a2d8341275d14a67e46c82e7a49ef5455b9 Mon Sep 17 00:00:00 2001 From: pkali Date: Mon, 14 Feb 2022 00:19:27 -0500 Subject: [PATCH] build 127 --- .gitattributes | 0 LICENSE | 0 README.md | 6 ++++++ TODO.txt | 6 +++--- ai.asm | 0 artwork/TALK1.txt | 0 artwork/TALK2.txt | 0 artwork/font4x4s.bmp | Bin artwork/talk.asm | 0 artwork/tanks.fnt | Bin artwork/textconv.py | 0 artwork/weapons.fnt | Bin display.asm | 5 +++-- grafproc.asm | 0 lib/atari.hea | 0 scorch.asm | 11 +++++++---- scorch.xex | Bin 32087 -> 32220 bytes textproc.asm | 29 ++++++++++++++++++++++++----- variables.asm | 15 +++++++++++---- weapons.asm | 0 20 files changed, 54 insertions(+), 18 deletions(-) mode change 100644 => 100755 .gitattributes mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 TODO.txt mode change 100644 => 100755 ai.asm mode change 100644 => 100755 artwork/TALK1.txt mode change 100644 => 100755 artwork/TALK2.txt mode change 100644 => 100755 artwork/font4x4s.bmp mode change 100644 => 100755 artwork/talk.asm mode change 100644 => 100755 artwork/tanks.fnt mode change 100644 => 100755 artwork/textconv.py mode change 100644 => 100755 artwork/weapons.fnt mode change 100644 => 100755 display.asm mode change 100644 => 100755 grafproc.asm mode change 100644 => 100755 lib/atari.hea mode change 100644 => 100755 textproc.asm mode change 100644 => 100755 variables.asm mode change 100644 => 100755 weapons.asm diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 51bb77b..3342a3b --- a/README.md +++ b/README.md @@ -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) diff --git a/TODO.txt b/TODO.txt old mode 100644 new mode 100755 index 21c133b..a623349 --- a/TODO.txt +++ b/TODO.txt @@ -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. diff --git a/ai.asm b/ai.asm old mode 100644 new mode 100755 diff --git a/artwork/TALK1.txt b/artwork/TALK1.txt old mode 100644 new mode 100755 diff --git a/artwork/TALK2.txt b/artwork/TALK2.txt old mode 100644 new mode 100755 diff --git a/artwork/font4x4s.bmp b/artwork/font4x4s.bmp old mode 100644 new mode 100755 diff --git a/artwork/talk.asm b/artwork/talk.asm old mode 100644 new mode 100755 diff --git a/artwork/tanks.fnt b/artwork/tanks.fnt old mode 100644 new mode 100755 diff --git a/artwork/textconv.py b/artwork/textconv.py old mode 100644 new mode 100755 diff --git a/artwork/weapons.fnt b/artwork/weapons.fnt old mode 100644 new mode 100755 diff --git a/display.asm b/display.asm old mode 100644 new mode 100755 index f98cabc..47f8b77 --- a/display.asm +++ b/display.asm @@ -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 diff --git a/grafproc.asm b/grafproc.asm old mode 100644 new mode 100755 diff --git a/lib/atari.hea b/lib/atari.hea old mode 100644 new mode 100755 diff --git a/scorch.asm b/scorch.asm index 50ddebd..10aa046 100644 --- a/scorch.asm +++ b/scorch.asm @@ -149,7 +149,7 @@ MainGameLoop jsr GetRandomWind jsr Round - + jsr SortSequence ; Hide all (easier than hide last ;) ) tanks @@ -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 diff --git a/scorch.xex b/scorch.xex index 674d10635072fdbe820a8c9e380d87c8912362f1..537034a21f2d35872615c926dce3344ddba006c1 100644 GIT binary patch delta 12191 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 delta 11907 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 @@ -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 diff --git a/variables.asm b/variables.asm old mode 100644 new mode 100755 index 060db1f..3731b9b --- a/variables.asm +++ b/variables.asm @@ -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 diff --git a/weapons.asm b/weapons.asm old mode 100644 new mode 100755