Rearranging display.asm and fix for Long Schlong activation :)

This commit is contained in:
Pecusx
2022-08-16 11:29:41 +02:00
parent 86c810d030
commit 185ca5db05
3 changed files with 138 additions and 114 deletions
+129 -112
View File
@@ -1,10 +1,58 @@
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm ; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
.IF *>0 ;this is a trick that prevents compiling this file alone .IF *>0 ;this is a trick that prevents compiling this file alone
; -------------------------------------------------
; .ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
;-----------------------------------------------
;------------------------
; start of "variables" (RAM)
; ---------------
OptionsHere
; 0123456789012345678901234567890123456789
dta d"Players : 2 3 4 5 6 "
dta d"Cash : none 2K 8K 12K 20K "
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 "
dta d"Missiles : slug slow norm fast hare "
dta d"Seppuku : nevr rare norm oftn alws "
dta d"Mountains: NL BE CZ CH NP "
OptionsScreenEnd
;-----------------------------------------------
ListOfWeapons
:36 dta d" "
ListOfWeapons1End
ListOfDefensiveWeapons
:16 dta d" "
ListOfDefensiveWeaponsEnd ;constant useful when clearing
NameScreen
dta d" Enter names of players "
dta d" Tank 01 Name:"
NameAdr
dta d" "
dta d" Human/Atari (difficulty level) "
dta d" "
NamesOfLevels
dta d" HUMAN Moron Shooter "
dta d" Poolshark Tosser Chooser "
dta d" Spoiler Cyborg Unknown "
dta d" "
dta d"Tab"*
dta d" - Player/Difficulty level "
dta d" "
dta d"Return"*
dta d" - Proceed "
;---------------------------------------------------
textbuffer
; 0123456789012345678901234567890123456789
dta d"Player: "
dta d"Energy: Angle: Force: "
dta d"Round: Wind: "
textbuffer2
dta d"Player: Cash: 0 " ; ZERO TO MAKE YOU RICHER ON THE SCREEN
;----------------------------------------------------- ; DLs fragments (modified by game code)
;-------------display-lists--------------------------- ; all Purchase DL :)
;-----------------------------------------------------
PurchaseDL PurchaseDL
.byte $70 .byte $70
.byte $47 .byte $47
@@ -31,6 +79,75 @@ PurActDescAddr
.byte $41 .byte $41
.word PurchaseDL .word PurchaseDL
;------------------------ ;------------------------
DLCreditsFragm
.byte $60+$80
.byte $42+$20 ; VSCRL
DLCreditsAddr
.word Credits
:6 .byte $02+$20
.byte $02
.byte $41
.word GameOverDL
;------------------------
; end of "variables" (RAM)
; ---------------
; start of "constants" (ROM)
;-----------------------------------------------
;Screen displays go first to avoid crossing 4kb barrier
;-----------------------------------------------
OptionsScreen
dta d"Welcome to Scorch v. "
build ; 4 bytes from scorch.asm (fancy method) :)
dta d" (un)2000-2022"
dta d" Please select option with cursor keys "
dta d" and press (Return) to proceed "
MoreUp
dta d" "
dta 92,92,92
dta d" more "
dta 92,92,92
dta d" "
.ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
MoreDown
dta d" "
dta 93,93,93
dta d" more "
dta 93,93,93
dta d" "
WeaponsDescription
dta d" "
dta d"Tab"*
dta d" - Defensive/Offensive weapon "
PurchaseDescription
dta d" "
dta d"Space"*
dta d" - Purchase "
dta d"Return"*
dta d" - Finish "
ActivateDescription
dta d" "
dta d"Space"*
dta d" - Activate "
dta d"Return"*
dta d" - Finish "
EmptyLine
dta d" "
;---------------------------------------------------
OptionsTitle
dta d" scorch "*
DifficultyTitle
dta d" difficulty "*
PurchaseTitle
dta d" weapons purchase "
InventoryTitle
dta d" weapons activate "*
GameOverTitle
dta d" game over "*
GameOverTitle2
dta d" Player Points Hits Earned Money "
;-----------------------------------------------------
;-------------display-lists---------------------------
;-----------------------------------------------------
OptionsDL OptionsDL
.byte $70 .byte $70
.byte $47 .byte $47
@@ -39,7 +156,10 @@ OptionsDL
.byte $42 .byte $42
.word OptionsScreen .word OptionsScreen
.byte $30,$02,$02,$70 .byte $30,$02,$02,$70
:maxOptions .by $02,$10 .byte $42
.word OptionsHere
.byte $10
:maxOptions-1 .by $02,$10
:(9-maxOptions) .by $70,$10 :(9-maxOptions) .by $70,$10
.byte $80 .byte $80
.byte $4f .byte $4f
@@ -110,66 +230,6 @@ dl ; MAIN game display list
.byte $41 .byte $41
.word dl .word dl
;----------------------------------------------- ;-----------------------------------------------
;Screen displays go first to avoid crossing 4kb barrier
;-----------------------------------------------
OptionsScreen
dta d"Welcome to Scorch v. "
build ; 4 bytes from scorch.asm (fancy method) :)
dta d" (un)2000-2022"
dta d" Please select option with cursor keys "
dta d" and press (Return) to proceed "
OptionsHere
; 0123456789012345678901234567890123456789
dta d"Players : 2 3 4 5 6 "
dta d"Cash : none 2K 8K 12K 20K "
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 "
dta d"Missiles : slug slow norm fast hare "
dta d"Seppuku : nevr rare norm oftn alws "
dta d"Mountains: NL BE CZ CH NP "
OptionsScreenEnd
;-----------------------------------------------
MoreUp
dta d" "
dta 92,92,92
dta d" more "
dta 92,92,92
dta d" "
MoreDown
dta d" "
dta 93,93,93
dta d" more "
dta 93,93,93
dta d" "
ListOfWeapons
:36 dta d" "
ListOfWeapons1End
;GameOverResults ; reuse after game (remember to clear on start new)
ListOfDefensiveWeapons
:16 dta d" "
ListOfDefensiveWeaponsEnd ;constant useful when clearing
WeaponsDescription
dta d" "
dta d"Tab"*
dta d" - Defensive/Offensive weapon "
PurchaseDescription
dta d" "
dta d"Space"*
dta d" - Purchase "
dta d"Return"*
dta d" - Finish "
ActivateDescription
dta d" "
dta d"Space"*
dta d" - Activate "
dta d"Return"*
dta d" - Finish "
EmptyLine
dta d" "
; -------------------------------------------------
; .ALIGN $1000 ; WARNING!!!! 4KiB barrier crossing here, might need reassignment!!!
;-----------------------------------------------
GameOverResults = display+$0ff0 ; reuse after game GameOverResults = display+$0ff0 ; reuse after game
Credits = GameOverResults +(6*40) Credits = GameOverResults +(6*40)
CreditsLastLine = Credits + (41*40) CreditsLastLine = Credits + (41*40)
@@ -195,52 +255,9 @@ GameOverDL
.byte $42 .byte $42
.word GameOverResults .word GameOverResults
:5 .byte $00+$80,$02 :5 .byte $00+$80,$02
.byte $70+$80 .byte $01
.byte $42+$20 ; VSCRL .word DLCreditsFragm
DLCreditsAddr ; ---------------
.word Credits ; end of "constants" (ROM)
:6 .byte $02+$20 ;-----------------------------------------------
.byte $02
.byte $41
.word GameOverDL
NameScreen
dta d" Enter names of players "
dta d" Tank 01 Name:"
NameAdr
dta d" "
dta d" Human/Atari (difficulty level) "
dta d" "
NamesOfLevels
dta d" HUMAN Moron Shooter "
dta d" Poolshark Tosser Chooser "
dta d" Spoiler Cyborg Unknown "
dta d" "
dta d"Tab"*
dta d" - Player/Difficulty level "
dta d" "
dta d"Return"*
dta d" - Proceed "
;---------------------------------------------------
textbuffer
; 0123456789012345678901234567890123456789
dta d"Player: "
dta d"Energy: Angle: Force: "
dta d"Round: Wind: "
textbuffer2
dta d"Player: Cash: 0 " ; ZERO TO MAKE YOU RICHER ON THE SCREEN
; dta d"----------------------------------------"
;---------------------------------------------------
OptionsTitle
dta d" scorch "*
DifficultyTitle
dta d" difficulty "*
PurchaseTitle
dta d" weapons purchase "
InventoryTitle
dta d" weapons activate "*
GameOverTitle
dta d" game over "*
GameOverTitle2
dta d" Player Points Hits Earned Money "
.endif .endif
+9 -2
View File
@@ -214,6 +214,15 @@ START
; for the round #1 shooting sequence is random ; for the round #1 shooting sequence is random
MainGameLoop MainGameLoop
; first set default barrel lengths (fix for Long Schlong activation :) )
; we must do it before purchase/activate
ldx #(MaxPlayers-1)
SettingBarrel
lda #StandardBarrel ; standard barrel length
sta BarrelLength,x
dex
bpl SettingBarrel
jsr CallPurchaseForEveryTank jsr CallPurchaseForEveryTank
; issue #72 (glitches when switches) ; issue #72 (glitches when switches)
@@ -394,8 +403,6 @@ SettingEnergies
sta Energy,x sta Energy,x
sta eXistenZ,x sta eXistenZ,x
sta LASTeXistenZ,x sta LASTeXistenZ,x
lda #StandardBarrel ; standard barrel length
sta BarrelLength,x
; anything in eXistenZ table means that this tank exist ; anything in eXistenZ table means that this tank exist
; in the given round ; in the given round
lda #<1000 lda #<1000
BIN
View File
Binary file not shown.