From ef361d044ea108c0f622268658b7b7ba0e99c7df Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 28 Aug 2022 11:46:55 -0400 Subject: [PATCH] opty + purchaseTable fix --- constants.asm | 119 +++++++++++++++++++++++++----------------------- definitions.asm | 1 + scorch.xex | Bin 50871 -> 50802 bytes textproc.asm | 18 ++++---- 4 files changed, 71 insertions(+), 67 deletions(-) diff --git a/constants.asm b/constants.asm index 2b04325..ff56333 100644 --- a/constants.asm +++ b/constants.asm @@ -447,16 +447,14 @@ PurchaseMeTable ;weapons good to be purchased by the robot ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast " .by %00000000 - ; "Laser " - .by %00000000 - .by 0 ; offset to defensives - ; "White Flag ","Battery ","Bal Guidance ","Horz Guidance " - ; "Hovercraft ","Lazy Boy ","Parachute ","Strong Parachute" - .by %01000011 - ; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield " - ; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter " - .by %11110100 - + ; "Laser ","White Flag ","Battery ","Bal Guidance " + ; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute " + .by %00100001 + ; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield " + ; "Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel " + .by %11111010 + ; "Nuclear Winter " + .by %00000000 PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg) ;the comment is an index in the tables ; "Baby Missile ","Missile ","Baby Nuke ","Nuke " @@ -471,16 +469,14 @@ PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg) ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast " .by %00000000 - ; "Laser " - .by %00000000 - .by 0 ; offset to defensives - ; "White Flag ","Battery ","Bal Guidance ","Horz Guidance " - ; "Hovercraft ","Lazy Boy ","Parachute ","Strong Parachute" - .by %01000001 - ; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield " - ; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter " - .by %10110100 - + ; "Laser ","White Flag ","Battery ","Bal Guidance " + ; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute " + .by %00100000 + ;,"Strong Parachute","Mag Deflector ","Shield ","Heavy Shield " + ;,"Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel " + .by %11011010 + ;"Nuclear Winter " + .by %00000000 ;------------------------------------------------- ; Screen codes of icons (chars) representing a given weapon WeaponSymbols @@ -546,43 +542,59 @@ NamesOfWeapons ;the comment is an index in the tables dta d"White Flag " ; 33 dta d"Battery " ; 34 - dta d"Bal Guidance " ; 35 - dta d"Horz Guidance " ; 36 - dta d"Hovercraft " ; 37 - dta d"Lazy Boy " ; 38 + ;dta d"Bal Guidance " ; 35 +;----------------------------------- +DefensiveEnergy ; OPTIMIZATION - unused name of the weapon + .by 00 ; White Flag + .by 00 ; Heat Guidance + .by 00 ; Bal Guidance + .by 00 ; Horz Guidance + .by 98 ; Let's go! + .by 00 ; Lazy Boy + .by 00 ; Parachute + .by 99 ; Strong Parachute + .by 99 ; Mag Deflector + .by 00 ; Shield + .by 99 ; Heavy Shield + .by 99 ; Force Shield + .by 00 ; Super Mag + .by 99 ; Bouncy Castle + .by 00 ; Long Barrel + .by 00 ; Nuclear Winter +;----------------------------------- + ;dta d"Horz Guidance " ; 36 +;----------------------------------- +weaponsOfDeath ; weapons used in tank death animations + dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27 ; OPTIMIZATION - unused name of the weapon +weaponsOfDeathEnd dta d"Hovercraft " ; 37 +;----------------------------------- + dta 0 ; ALIGN to 16 + ; dta d"Lazy Boy " ; 38 +;----------------------------------- +joyToKeyTable; OPTIMIZATION - unused name of the weapon + ; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15 + .by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff +;----------------------------------- dta d"Parachute " ; 39 - no energy dta d"Strong Parachute" ; 40 - with energy (earlier Battery) dta d"Mag Deflector " ; 41 - with shield and energy dta d"Shield " ; 42 - shield for one shot - no energy dta d"Heavy Shield " ; 43 - shield with energy dta d"Force Shield " ; 44 - shield with energy and parachute - dta d"Super Mag " ; 45 + ;dta d"Super Mag " ; 45 +;----------------------------------- +gameOverSpritesTop ; OPTIMIZATION - unused name of the weapon + ; end of the Gover sprites by number of players + ; 1 2 3 4 5 6 + .by 130,130,136,142,148,154 +;-------decimal constans +zero +digits dta d"0123456789" +;----------------------------------- dta d"Bouncy Castle " ; 46 - with shield and energy dta d"Long Schlong " ; 47 dta d"Nuclear Winter " ; 48 -DefensiveEnergy = * - 48 - .by 00 ; White Flag - .by 00 ; Heat Guidance - .by 00 ; Bal Guidance - .by 00 ; Horz Guidance - .by 98 ; Let's go! - .by 00 ; Lazy Boy - .by 00 ; Parachute - .by 99 ; Strong Parachute - .by 99 ; Mag Deflector - .by 00 ; Shield - .by 99 ; Heavy Shield - .by 99 ; Force Shield - .by 00 ; Super Mag - .by 99 ; Bouncy Castle - .by 00 ; Long Barrel - .by 00 ; Nuclear Winter -weaponsOfDeath ; weapons used in tank death animations - dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27 -weaponsOfDeathEnd -joyToKeyTable - ; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15 - .by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff + ;----------------------------------- keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters) @@ -598,16 +610,7 @@ scrcodes dta d"qrstuvwx" dta d"yz123456" dta d"7890. " ; "-" -;----------------------------------- -gameOverSpritesTop - ; end of the Gover sprites by number of players - ; 1 2 3 4 5 6 - .by 130,130,136,142,148,154 -;-------decimal constans -zero -digits dta d"0123456789" -nineplus dta d"9"+1 -space dta d" " + ;------credits CreditsStart dta d" "* diff --git a/definitions.asm b/definitions.asm index 3b5e62b..8758a36 100644 --- a/definitions.asm +++ b/definitions.asm @@ -26,6 +26,7 @@ LongBarrel = 20 ; long barrel length TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor TextForegroundColor = $0A +space = 0 ; space in screencodes ;character codes for symbols (tank, parachute, etc. ) char_parachute_______ = $02 diff --git a/scorch.xex b/scorch.xex index 5ae6f9a26034297590d8da077deef0f70d0dc22c..3e373680ef5680562980ab177dbd1c46ba4f0b0f 100644 GIT binary patch delta 12885 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