mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-21 21:35:16 +02:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8b29184886 | |||
| 4218791068 | |||
| 90eff39dda | |||
| 662bc1304a | |||
| 8052add0ab | |||
| 7f85a7ed6a |
+11
-4
@@ -12,8 +12,15 @@ On the first screen, you can configure gameplay options:
|
||||
* number of rounds in a game
|
||||
* missile speed (does not affect the flight path - only changes the apparent missile speed - does not change anything in the gameplay itself)
|
||||
* frequency of suicides :) - if for a number of turns the game has not recorded hits (tanks are constantly shooting inaccurately), after one of such misses a tank commits suicide - here you determine how long they can "shooting for the stars" :) - if only people play the optimal setting is "norm", in the case of computer-controlled players ... you choose.
|
||||
* The height (and undulation) of the mountains from almost flat (NL - Kingdom of the Netherlands), to soaring and high (NP - Federal Democratic Republic of Nepal)
|
||||
* The height (and undulation) of the mountains from almost flat (NL - Kingdom of the Netherlands), to soaring and high (NP - Federal Democratic Republic of Nepal)
|
||||
* the way the walls (edges of the screen) work:
|
||||
1. none - projectiles that flew off the screen do not return
|
||||
2. wrap - the screen "wraps" and projectiles that flew to the right appear on the left side (and vice versa)
|
||||
3. bump - the right and left walls deflect projectiles that want to fly through them
|
||||
4. boxy - just like bump, except that the "ceiling" also reflects projectiles
|
||||
5. rand - at the beginning of each round, one of the above 4 ways the walls work is drawn.
|
||||
|
||||
Translated with www.DeepL.com/Translator (free version)
|
||||
Select options with cursor keys or joystick.
|
||||
|
||||
The [RETURN] key or Joystick button moves to the next screen.
|
||||
@@ -126,16 +133,16 @@ And here are the `ExplosionRadius` values for each weapon:
|
||||
| Baby Missile | 11 |
|
||||
| Missile | 17 |
|
||||
| Baby Nuke | 25 |
|
||||
| Nuke | 31 |
|
||||
| Nuke | 30 |
|
||||
| LeapFrog| 17 15 13 |
|
||||
| Funky Bomb | 21 11 (* 5) |
|
||||
| MIRV | 17 (* 5) |
|
||||
| Death's Head | 31 (* 5) |
|
||||
| Death's Head | 30 (* 5) |
|
||||
| Napalm | x 40 (this weapon is different and the distance from the center is not determined, simply any tank within range of the flames loses 40 units of energy - the ExplosionRadius variable is not used) |
|
||||
| Hot Napalm | x 80 (the same principle as in Napalm) |
|
||||
| Baby Roller | 11 |
|
||||
| Roller | 21 |
|
||||
| Heavy Roller | 31 |
|
||||
| Heavy Roller | 30 |
|
||||
| Riot Charge | 31 |
|
||||
| Riot Blast | 0 (in reality - 61 but with these weapons it is not taken into account when counting energy loss only the width of the ground to fall) |
|
||||
| Riot Bomb | 17 |
|
||||
|
||||
+10
-3
@@ -12,6 +12,13 @@ Na pierwszym ekranie możemy skonfigurować opcje rozgrywwki:
|
||||
* szybkość lotu pocisków (nie ma wpływu na tor lotu - zmienia jedynie widoczną prędkość rysowania - nie zmienia nic w samej rozgrywce)
|
||||
* częstotliwość samobójstw :) - jeśli przez ileś tur gra nie odnotowała trafień (czołgi ciągle strzelają niecelnie) jeden z takich pudłujących czołgów popełnia samobójstwo - tu określamy jak długo mogą “strzelać w próżnię” :) - jeśli grają tylko ludzie optymalne ustawienie to “norm”, w przypadku graczy sterowanych przez komputer… wedle uznania.
|
||||
* wysokość (i pofałdowanie) gór od prawie płaskich (NL - Królestwo Niderlandów), do strzelistych i wysokich (NP - Federalna Demokratyczna Republika Nepalu)
|
||||
* sposób działania ścian (krawędzi ekranu):
|
||||
1. none - pociski, które wyleciały poza ekran nie wracają
|
||||
2. wrap - ekran "zawija się" i pociski, które wyleciały w prawo pojawiają się z lewej strony (i odwrotnie)
|
||||
3. bump - prawa i lewa ściana odbijają pociski, które chcą przez nie przelecieć
|
||||
4. boxy - tak jak bump, tyle że "sufit" także odbija pociski
|
||||
5. rand - na początku każdej rundy losowany jest jeden z 4 powyższych sposobów działania ścian
|
||||
|
||||
|
||||
Wybór opcji klawiszami kursora lub joystickiem.
|
||||
|
||||
@@ -122,16 +129,16 @@ A oto wartości promienia rażenia (ExplosionRadius) dla poszczególnych broni:
|
||||
| Baby Missile | 11 |
|
||||
| Missile | 17 |
|
||||
| Baby Nuke | 25 |
|
||||
| Nuke | 31 |
|
||||
| Nuke | 30 |
|
||||
| LeapFrog| 17 15 13 |
|
||||
| Funky Bomb | 21 11 (* 5) |
|
||||
| MIRV | 17 (* 5) |
|
||||
| Death's Head | 31 (* 5) |
|
||||
| Death's Head | 30 (* 5) |
|
||||
| Napalm | x 40 (ta broń jest inna i nie jest wyznaczana odległość od centrum, po prostu każdy czołg znajdujący się w zasięgu płomieni traci 40 jednostek energii - zmienna ExplosionRadius nie jest używana) |
|
||||
| Hot Napalm | x 80 (zasada taka jak w Napalm) |
|
||||
| Baby Roller | 11 |
|
||||
| Roller | 21 |
|
||||
| Heavy Roller | 31 |
|
||||
| Heavy Roller | 30 |
|
||||
| Riot Charge | 31 |
|
||||
| Riot Blast | 0 (tak na prawdę - 61 ale przy tych broniach nie jest brana pod uwagę przy liczeniu ubytku energii tylko szerokości gruntu do opadnięcia) |
|
||||
| Riot Bomb | 17 |
|
||||
|
||||
@@ -48,6 +48,17 @@ With the advent of [fujinet](https://fujinet.online/) we are thinking about maki
|
||||
|
||||
## Changes:
|
||||
|
||||
###### Version 1.11
|
||||
2022-08-22
|
||||
|
||||
A release lollapalooza.
|
||||
|
||||
The silliness indicator crashed. What are we doing?
|
||||
|
||||
Changes:
|
||||
* A very silly buffer overflow bug fixed - it allowed for infinite (well... to the point) lengths of tank names, or rather for overwriting code with arbitrary values.
|
||||
* Gamefield walls added https://github.com/pkali/scorch_src/issues/50. Choosing a different wall effect from the main options menu allows for a sophisticated tactics change.
|
||||
|
||||
###### Version 1.10
|
||||
2022-08-21
|
||||
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
; initial values for some variables
|
||||
initialvaluesStart
|
||||
I_OptionsTable .by 0,1,2,2,0,1,3,2
|
||||
I_OptionsTable .by 0,1,2,2,0,1,3,2,0
|
||||
I_RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
I_seppukuVal .by 75
|
||||
I_mountainDeltaH .by 3
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ display = $1010 ;screen takes $2K due to clearing routine
|
||||
|
||||
margin = 40 ;mountain drawing Y variable margin
|
||||
MaxPlayers = 6
|
||||
maxOptions = 8 ;number of all options
|
||||
maxOptions = 9 ;number of all options
|
||||
PMOffsetX = $2C ; P/M to graphics offset
|
||||
PMOffsetY = $23 ; P/M to graphics offset
|
||||
napalmRadius = 10
|
||||
|
||||
@@ -17,6 +17,7 @@ OptionsHere
|
||||
dta d"Missiles : slug slow norm fast hare "
|
||||
dta d"Seppuku : nevr rare norm oftn alws "
|
||||
dta d"Mountains: NL BE CZ CH NP "
|
||||
dta d"Walls : none wrap bump boxy rand "
|
||||
OptionsScreenEnd
|
||||
;-----------------------------------------------
|
||||
ListOfWeapons
|
||||
|
||||
+21
-3
@@ -36,7 +36,7 @@
|
||||
;we decided it must go in 'English' to let other people work on it
|
||||
|
||||
.macro build
|
||||
dta d"1.10" ; number of this build (3 bytes)
|
||||
dta d"1.11" ; number of this build (3 bytes)
|
||||
.endm
|
||||
|
||||
icl 'definitions.asm'
|
||||
@@ -219,7 +219,7 @@ FirstSTART
|
||||
START
|
||||
; Startup sequence
|
||||
jsr Initialize
|
||||
|
||||
|
||||
;jsr GameOverScreen ; only for test !!!
|
||||
|
||||
lda #song_main_menu
|
||||
@@ -242,6 +242,7 @@ START
|
||||
; for the round #1 shooting sequence is random
|
||||
|
||||
MainGameLoop
|
||||
jsr SetWallsType
|
||||
; first set default barrel lengths (fix for Long Schlong activation :) )
|
||||
; we must do it before purchase/activate
|
||||
ldx #(MaxPlayers-1)
|
||||
@@ -1508,7 +1509,24 @@ nextishigher
|
||||
|
||||
rts
|
||||
.endp
|
||||
|
||||
;--------------------------------------------------
|
||||
.proc SetWallsType
|
||||
;--------------------------------------------------
|
||||
mva #0 WallsType
|
||||
lda OptionsTable+8
|
||||
cmp #4
|
||||
beq SetRandomWalls
|
||||
lsr
|
||||
ror WallsType
|
||||
lsr
|
||||
ror WallsType
|
||||
rts
|
||||
SetRandomWalls
|
||||
lda random
|
||||
and #%11000000
|
||||
sta WallsType
|
||||
rts
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
.proc GetKey ; waits for pressing a key and returns pressed value in A
|
||||
; when [ESC] is pressed, escFlag is set to 1
|
||||
|
||||
BIN
Binary file not shown.
+4
-1
@@ -204,7 +204,7 @@ OptionSetLoop
|
||||
; next option
|
||||
adw temp #40 ;jump to next line
|
||||
inc:lda temp2
|
||||
cmp #maxoptions ;number of options
|
||||
cmp #maxOptions ;number of options
|
||||
bne OptionsSetMainLoop
|
||||
|
||||
;inversing the first few chars of the selected line (OptionsY)
|
||||
@@ -853,7 +853,9 @@ invSelectDef
|
||||
; if activate battery, we do it differently
|
||||
mva #sfx_battery sfx_effect
|
||||
mva #99 Energy,x
|
||||
phy
|
||||
jsr MaxForceCalculate
|
||||
ply
|
||||
jmp DecreaseDefensive ; bypass activation
|
||||
NotBattery
|
||||
cmp #ind_Long_Barrel____
|
||||
@@ -1105,6 +1107,7 @@ LastNameChar
|
||||
|
||||
lda #$80 ; place cursor on the end
|
||||
sta NameAdr,y
|
||||
dey
|
||||
sty PositionInName
|
||||
|
||||
|
||||
|
||||
+3
-2
@@ -29,7 +29,7 @@ skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning
|
||||
;----------------------------------------------------
|
||||
variablesToInitialize
|
||||
;Options DO NOT ZERO ON RESTART GAME - ticket #27
|
||||
OptionsTable .by 0,1,2,2,0,1,3,2
|
||||
OptionsTable .by 0,1,2,2,0,1,3,2,0
|
||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
seppukuVal .by 75
|
||||
mountainDeltaH .by 3
|
||||
@@ -138,7 +138,8 @@ MaxWind .ds 1 ;
|
||||
WindOrientation .DS 1 ;(0-right,1-left)
|
||||
;----------------------------------------------------
|
||||
;Counter .DS 1 ;temporary Counter for outside loops
|
||||
;HitFlag .DS 1 ;$ff when missile hit ground, $00 when no hit, $01-$06 tank index+1 when hit tank
|
||||
;HitFlag .DS 1 ;$ff when missile hit ground, $00 when no hit, $01-$06 tank index+1 when hit tank
|
||||
WallsType .ds 1 ; bits 6 and 7: 00 - none, 01 - bump, 10 - wrap, 11 - boxy
|
||||
;----------------------------------------------------
|
||||
xtankstableL ;X positions of tanks (lower left point)
|
||||
.DS [MaxPlayers]
|
||||
|
||||
+49
-1
@@ -1798,6 +1798,12 @@ NoWind
|
||||
mwa ytraj+1 ybyte
|
||||
jsr draw
|
||||
;key
|
||||
bit LaserFlag
|
||||
bmi LaserNoWalls
|
||||
; Check for walls
|
||||
jsr MakeWalls
|
||||
;
|
||||
LaserNoWalls
|
||||
mwa xtraj+1 XtrajOld+1
|
||||
mwa ytraj+1 YtrajOld+1
|
||||
|
||||
@@ -2333,7 +2339,49 @@ MIRValreadyAll
|
||||
;jsr drawtanks
|
||||
rts
|
||||
.endp
|
||||
|
||||
; -------------------------------------------------
|
||||
.proc MakeWalls
|
||||
; -------------------------------------------------
|
||||
bit WallsType ; ; bits 6 and 7: 00 - none, 01 - bump, 10 - wrap, 11 - boxy
|
||||
bpl WrapAndNone
|
||||
bvc MakeBump
|
||||
; top bounce
|
||||
bit ytraj+2
|
||||
bpl NoOnTop
|
||||
sec
|
||||
.rept 4
|
||||
lda #$00
|
||||
sbc vy+#
|
||||
sta vy+#
|
||||
.endr
|
||||
NoOnTop
|
||||
MakeBump
|
||||
cpw xtraj+1 #screenwidth
|
||||
bcc OnScreen
|
||||
; inverse vx (bouncing wall)
|
||||
sec
|
||||
.rept 4
|
||||
lda #$00
|
||||
sbc vx+#
|
||||
sta vx+#
|
||||
.endr
|
||||
rts
|
||||
WrapAndNone
|
||||
bvc NoWall
|
||||
cpw xtraj+1 #screenwidth
|
||||
bcc OnScreen
|
||||
; (wrapping wall)
|
||||
bit xtraj+2
|
||||
bmi LeftWrap
|
||||
RightWrap
|
||||
sbw xtraj+1 #screenwidth
|
||||
rts
|
||||
LeftWrap
|
||||
adw xtraj+1 #screenwidth
|
||||
OnScreen
|
||||
NoWall
|
||||
rts
|
||||
.endp
|
||||
; -------------------------------------------------
|
||||
.proc WhiteFlag
|
||||
; -------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user