mirror of
https://github.com/jeremysrand/BuGS.git
synced 2025-02-06 06:29:50 +00:00
Change the spider score colour to be the same as mushroom colours so the player does not detect it as a collision. Add code to display the number of lives and add to the number of lives ever 12,000 points. This lays the groundwork for handling player death and collisions.
This commit is contained in:
parent
f58a831eb9
commit
c24b8ad072
@ -33,7 +33,7 @@ loop lda colour1,y
|
||||
|
||||
colour1 anop
|
||||
dc i2'$0000' ; $0 - 0000 - Black
|
||||
dc i2'$00f0' ; $1 - 0001 - Green Mushrooms ($1 to $3)
|
||||
dc i2'$00f0' ; $1 - 0001 - Green Mushrooms and spider scores ($1 to $3)
|
||||
dc i2'$0f00' ; $2 - 0010 - Red
|
||||
dc i2'$0ffc' ; $3 - 0011 - Off-white
|
||||
dc i2'$0f00' ; $4 - 0100 - Red
|
||||
|
11
BuGS/game.s
11
BuGS/game.s
@ -210,10 +210,15 @@ startGame entry
|
||||
stz gameRunning
|
||||
stz numSegments
|
||||
jsl addRandomMushrooms
|
||||
jsl scoreStartGame
|
||||
jsl initPlayer
|
||||
jsl spiderInitGame
|
||||
jsl levelInit
|
||||
; Fall through intentionally here...
|
||||
startLevel entry
|
||||
jsl playerLevelStart
|
||||
jmp levelStart
|
||||
|
||||
|
||||
|
||||
checkKeyboard entry
|
||||
@ -251,9 +256,6 @@ checkKey_loop2 anop
|
||||
beq checkKey_shootMushroom
|
||||
cmp #'M'
|
||||
beq checkKey_shootMushroom
|
||||
|
||||
cmp #'+'
|
||||
beq checkKey_scoreAdd
|
||||
|
||||
cmp #'g'
|
||||
beq checkKey_game
|
||||
@ -280,9 +282,6 @@ checkKey_shootCentipede anop
|
||||
|
||||
checkKey_shootMushroom anop
|
||||
jmp shootRandomMushroom
|
||||
|
||||
checkKey_scoreAdd anop
|
||||
jmp scoreAddTwentyThousand
|
||||
|
||||
checkKey_quit anop
|
||||
stz shouldQuit
|
||||
|
@ -16,10 +16,51 @@ gamePlayer start
|
||||
using screenData
|
||||
|
||||
initPlayer entry
|
||||
ldy #STARTING_NUM_LIVES
|
||||
sty numLives
|
||||
ldx #P1_LIVES_OFFSET
|
||||
initPlayer_loop anop
|
||||
lda #TILE_PLAYER
|
||||
sta tileType,x
|
||||
phy
|
||||
_dirtyNonGameTile
|
||||
ply
|
||||
dex
|
||||
dex
|
||||
dey
|
||||
bne initPlayer_loop
|
||||
rtl
|
||||
|
||||
|
||||
playerLevelStart entry
|
||||
lda #STARTING_MOUSE_X
|
||||
sta mouseX
|
||||
lda #STARTING_MOUSE_Y
|
||||
sta mouseY
|
||||
dec numLives
|
||||
lda #P1_LIVES_OFFSET
|
||||
sec
|
||||
sbc numLives
|
||||
sec
|
||||
sbc numLives
|
||||
tax
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
rtl
|
||||
|
||||
|
||||
playerAddLife entry
|
||||
lda #P1_LIVES_OFFSET
|
||||
sec
|
||||
sbc numLives
|
||||
sec
|
||||
sbc numLives
|
||||
tax
|
||||
inc numLives
|
||||
lda #TILE_PLAYER
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
rtl
|
||||
|
||||
|
||||
@ -124,6 +165,10 @@ updatePlayer_shift anop
|
||||
bra updatePlayer_dirty
|
||||
|
||||
updatePlayer_dirty anop
|
||||
beq updatePlayer_noCollision
|
||||
; Player collision here...
|
||||
; brk $00
|
||||
updatePlayer_noCollision anop
|
||||
lda mouseAddress
|
||||
sec
|
||||
sbc #SCREEN_ADDRESS
|
||||
@ -156,6 +201,5 @@ updatePlayer_done anop
|
||||
mouseX dc i2'0'
|
||||
mouseY dc i2'0'
|
||||
mouseDown dc i2'0'
|
||||
mouseAddress dc i2'0'
|
||||
|
||||
end
|
||||
|
@ -766,10 +766,21 @@ shootSpider entry
|
||||
lda spiderScreenOffset
|
||||
inc a
|
||||
sta spiderScreenOffset
|
||||
cmp mouseAddress
|
||||
blt shootSpider_playerBelow
|
||||
sec
|
||||
sbc mouseAddress
|
||||
bra shootSpider_testDistance
|
||||
shootSpider_playerBelow anop
|
||||
lda mouseAddress
|
||||
sec
|
||||
sbc spiderScreenOffset
|
||||
|
||||
; TODO - Set the spiderScoreType to 0, 4 or 8 for 300, 600 or 900 points depending on the distance from the player.
|
||||
; For now, just hard code 900.
|
||||
bra shootSpider_900
|
||||
shootSpider_testDistance anop
|
||||
cmp #SPIDER_DISTANCE_900
|
||||
blt shootSpider_900
|
||||
cmp #SPIDER_DISTANCE_600
|
||||
blt shootSpider_600
|
||||
|
||||
lda #SPIDER_SCORE_300
|
||||
sta spiderScoreType
|
||||
|
@ -158,7 +158,7 @@ _incrementScore_noCarry&SYSCNT anop
|
||||
sec
|
||||
sbc #12000
|
||||
pha
|
||||
jsl scoreEvery12000
|
||||
jsl playerAddLife
|
||||
pla
|
||||
_incrementScore_noExtraMan&SYSCNT anop
|
||||
sta scoreWithin12000
|
||||
|
@ -27,6 +27,8 @@ SEGMENT_DIR_RIGHT equ 1
|
||||
SEGMENT_SPEED_FAST equ 0
|
||||
SEGMENT_SPEED_SLOW equ 1
|
||||
|
||||
STARTING_NUM_LIVES gequ 3
|
||||
|
||||
INVALID_TILE_NUM gequ $ffff
|
||||
|
||||
TILE_STATE_CLEAN gequ 0
|
||||
@ -119,6 +121,7 @@ gameRunning dc i2'1'
|
||||
; this information will need to be copied to a backup location when the player
|
||||
; switches.
|
||||
numSegments dc i2'0'
|
||||
numLives dc i2'0'
|
||||
gameLevel dc i2'0'
|
||||
gameScore dc i4'0'
|
||||
scoreWithin12000 dc i2'0'
|
||||
@ -130,6 +133,7 @@ numInfieldMushrooms dc i2'0'
|
||||
; tileType
|
||||
|
||||
|
||||
mouseAddress dc i2'0'
|
||||
backupStack dc i2'0'
|
||||
|
||||
tileJumpTable dc a4'solid0'
|
||||
|
190
BuGS/score.s
190
BuGS/score.s
@ -14,14 +14,7 @@
|
||||
score start
|
||||
using globalData
|
||||
using tileData
|
||||
|
||||
TILE_SCORE_7TH_ROW equ LHS_FIRST_TILE+7*LHS_NUM_TILES_WIDE
|
||||
TILE_SCORE_ONES equ TILE_SCORE_7TH_ROW-2
|
||||
TILE_SCORE_ONES_OFFSET equ TILE_SCORE_ONES*SIZEOF_TILE_INFO
|
||||
TILE_SCORE_TENS_OFFSET equ TILE_SCORE_ONES_OFFSET-SIZEOF_TILE_INFO
|
||||
TILE_SCORE_HUNDREDS_OFFSET equ TILE_SCORE_TENS_OFFSET-SIZEOF_TILE_INFO
|
||||
TILE_SCORE_THOUSANDS_OFFSET equ TILE_SCORE_HUNDREDS_OFFSET-SIZEOF_TILE_INFO
|
||||
TILE_SCORE_TEN_THOUSANDS_OFFSET equ TILE_SCORE_THOUSANDS_OFFSET-SIZEOF_TILE_INFO
|
||||
|
||||
|
||||
scoreStartGame entry
|
||||
stz gameScore
|
||||
@ -30,73 +23,19 @@ scoreStartGame entry
|
||||
stz scoreWithin20000
|
||||
stz scoreNum20000
|
||||
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Tens
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Hundreds
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Thousands
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Tens of Thousands
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Hundreds of Thousands
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Millions
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Tens of Millions
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Hundreds of Millions
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
; Billions
|
||||
|
||||
scoreStartGame_loop anop
|
||||
dex
|
||||
dex
|
||||
lda #TILE_EMPTY
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
cpx #P1_SCORE_FIRST_OFFSET
|
||||
bne scoreStartGame_loop
|
||||
|
||||
rtl
|
||||
|
||||
@ -165,175 +104,160 @@ scoreAddToTile_done anop
|
||||
|
||||
scoreAddOne entry
|
||||
_incrementScore 1
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
jmp scoreAddOneToTile
|
||||
|
||||
|
||||
scoreAddFive entry
|
||||
_incrementScore 5
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
lda #5*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreAddTen entry
|
||||
_incrementScore 10
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddTen_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddTen_skipZeroOnes anop
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
jmp scoreAddOneToTile
|
||||
|
||||
|
||||
scoreAddOneHundred entry
|
||||
_incrementScore 100
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddHundred_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddHundred_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddHundred_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddHundred_skipZeroTens anop
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
jmp scoreAddOneToTile
|
||||
|
||||
|
||||
scoreAddTwoHundred entry
|
||||
_incrementScore 200
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddTwoHundred_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddTwoHundred_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddTwoHundred_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddTwoHundred_skipZeroTens anop
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
lda #2*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreAddThreeHundred entry
|
||||
_incrementScore 300
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddThreeHundred_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddThreeHundred_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddThreeHundred_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddThreeHundred_skipZeroTens anop
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
lda #3*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreAddSixHundred entry
|
||||
_incrementScore 600
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddSixHundred_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddSixHundred_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddSixHundred_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddSixHundred_skipZeroTens anop
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
lda #6*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreAddNineHundred entry
|
||||
_incrementScore 900
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddNineHundred_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddNineHundred_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddNineHundred_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddNineHundred_skipZeroTens anop
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
lda #9*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreAddOneThousand entry
|
||||
_incrementScore 1000
|
||||
lda tileType+TILE_SCORE_ONES_OFFSET
|
||||
lda tileType+P1_SCORE_ONES_OFFSET
|
||||
bne scoreAddOneThousand_skipZeroOnes
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_ONES_OFFSET
|
||||
ldx #TILE_SCORE_ONES_OFFSET
|
||||
sta tileType+P1_SCORE_ONES_OFFSET
|
||||
ldx #P1_SCORE_ONES_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddOneThousand_skipZeroOnes anop
|
||||
lda tileType+TILE_SCORE_TENS_OFFSET
|
||||
lda tileType+P1_SCORE_TENS_OFFSET
|
||||
bne scoreAddOneThousand_skipZeroTens
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_TENS_OFFSET
|
||||
ldx #TILE_SCORE_TENS_OFFSET
|
||||
sta tileType+P1_SCORE_TENS_OFFSET
|
||||
ldx #P1_SCORE_TENS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddOneThousand_skipZeroTens anop
|
||||
lda tileType+TILE_SCORE_HUNDREDS_OFFSET
|
||||
lda tileType+P1_SCORE_HUNDREDS_OFFSET
|
||||
bne scoreAddOneThousand_skipZeroHundreds
|
||||
lda #TILE_NUMBER_0
|
||||
sta tileType+TILE_SCORE_HUNDREDS_OFFSET
|
||||
ldx #TILE_SCORE_HUNDREDS_OFFSET
|
||||
sta tileType+P1_SCORE_HUNDREDS_OFFSET
|
||||
ldx #P1_SCORE_HUNDREDS_OFFSET
|
||||
_dirtyNonGameTile
|
||||
scoreAddOneThousand_skipZeroHundreds anop
|
||||
ldx #TILE_SCORE_THOUSANDS_OFFSET
|
||||
ldx #P1_SCORE_THOUSANDS_OFFSET
|
||||
jmp scoreAddOneToTile
|
||||
|
||||
|
||||
; This function is used purely for debug to test high score threshold stuff. It
|
||||
; doesn't do all the right things though to update the score on the display so I am
|
||||
; cheating a bit here.
|
||||
scoreAddTwentyThousand entry
|
||||
_incrementScore 20000
|
||||
ldx #TILE_SCORE_TEN_THOUSANDS_OFFSET
|
||||
lda #2*4
|
||||
jmp scoreAddToTile
|
||||
|
||||
|
||||
scoreEvery12000 entry
|
||||
; TODO - Write code to add a new life.
|
||||
rtl
|
||||
|
||||
|
||||
highScore dc i4'0'
|
||||
|
||||
|
@ -34,33 +34,33 @@ score300 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
and #$f0ff
|
||||
ora #$0300
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -68,33 +68,33 @@ score300 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
and #$f0ff
|
||||
ora #$0300
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -102,18 +102,18 @@ score300 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
_spriteFooter
|
||||
@ -142,33 +142,33 @@ score600 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$fff0
|
||||
ora #$0008
|
||||
and #$fff0
|
||||
ora #$0003
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -176,33 +176,33 @@ score600 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -210,18 +210,18 @@ score600 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
_spriteFooter
|
||||
@ -250,33 +250,33 @@ score900 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -284,33 +284,33 @@ score900 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $4,s
|
||||
|
||||
lda $a0,s
|
||||
; and #$f0ff
|
||||
ora #$0800
|
||||
and #$f0ff
|
||||
ora #$0300
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a2,s
|
||||
|
||||
lda $a4,s
|
||||
; and #$f0f0
|
||||
ora #$0808
|
||||
and #$f0f0
|
||||
ora #$0303
|
||||
sta $a4,s
|
||||
|
||||
tsc
|
||||
@ -318,18 +318,18 @@ score900 entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $2,s
|
||||
|
||||
lda $4,s
|
||||
; and #$00f0
|
||||
ora #$8808
|
||||
and #$00f0
|
||||
ora #$3303
|
||||
sta $4,s
|
||||
|
||||
_spriteFooter
|
||||
|
@ -188,11 +188,11 @@ drawShipShift entry
|
||||
and #$0f00
|
||||
ora #$4084
|
||||
sta $2,s
|
||||
|
||||
|
||||
lda $a0,s
|
||||
_collision #$cc0c
|
||||
and #$00f0
|
||||
lda #$4408
|
||||
ora #$4408
|
||||
sta $a0,s
|
||||
|
||||
lda $a2,s
|
||||
@ -204,10 +204,10 @@ drawShipShift entry
|
||||
adc #$140
|
||||
tcs
|
||||
|
||||
lda $a0,s
|
||||
lda $0,s
|
||||
_collision #$cc0c
|
||||
and #$00f0
|
||||
lda #$8808
|
||||
ora #$8808
|
||||
sta $0,s
|
||||
|
||||
lda $2,s
|
||||
|
@ -54,6 +54,8 @@ $gEquates{"NUM_NON_GAME_TILES"} = $gEquates{"NUM_RHS_NON_GAMES_TILES"} + $gEquat
|
||||
$gEquates{"SPIDER_MAX_NUM_POSSIBLE_ROWS"} = 10;
|
||||
$gEquates{"SPIDER_STARTING_TOP_ROW"} = $gEquates{"GAME_NUM_TILES_TALL"} - $gEquates{"SPIDER_MAX_NUM_POSSIBLE_ROWS"};
|
||||
$gEquates{"SPIDER_STARTING_TOP_ROW_OFFSET"} = $gEquates{"SPIDER_STARTING_TOP_ROW"} * $gEquates{"GAME_NUM_TILES_WIDE"} * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"SPIDER_DISTANCE_900"} = $gEquates{"SCREEN_BYTES_PER_ROW"} * $gEquates{"TILE_PIXEL_HEIGHT"} * 2;
|
||||
$gEquates{"SPIDER_DISTANCE_600"} = $gEquates{"SCREEN_BYTES_PER_ROW"} * $gEquates{"TILE_PIXEL_HEIGHT"} * 5;
|
||||
|
||||
$gEquates{"PLAYER_TILES_HIGH"} = 7;
|
||||
$gEquates{"MOUSE_MAX_X"} = (($gEquates{"GAME_NUM_TILES_WIDE"} - 1) * $gEquates{"TILE_PIXEL_WIDTH"}) + 1;
|
||||
@ -61,6 +63,24 @@ $gEquates{"MOUSE_MAX_Y"} = (($gEquates{"PLAYER_TILES_HIGH"} - 1) * $gEquates{"TI
|
||||
$gEquates{"STARTING_MOUSE_X"} = $gEquates{"MOUSE_MAX_X"} / 2;
|
||||
$gEquates{"STARTING_MOUSE_Y"} = $gEquates{"MOUSE_MAX_Y"} - 1;
|
||||
|
||||
$gEquates{"P1_SCORE_ONES_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 6) + ($gEquates{"LHS_NUM_TILES_WIDE"} - 2)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P1_SCORE_TENS_OFFSET"} = $gEquates{"P1_SCORE_ONES_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P1_SCORE_HUNDREDS_OFFSET"} = $gEquates{"P1_SCORE_TENS_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P1_SCORE_THOUSANDS_OFFSET"} = $gEquates{"P1_SCORE_HUNDREDS_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P1_SCORE_FIRST_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 6)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
|
||||
$gEquates{"P1_LIVES_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 9) + ($gEquates{"LHS_NUM_TILES_WIDE"} - 2)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
|
||||
$gEquates{"P2_SCORE_ONES_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 19) + ($gEquates{"LHS_NUM_TILES_WIDE"} - 2)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P2_SCORE_TENS_OFFSET"} = $gEquates{"P2_SCORE_ONES_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P2_SCORE_HUNDREDS_OFFSET"} = $gEquates{"P2_SCORE_TENS_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P2_SCORE_THOUSANDS_OFFSET"} = $gEquates{"P2_SCORE_HUNDREDS_OFFSET"} - $gEquates{"SIZEOF_TILE_INFO"};
|
||||
$gEquates{"P2_SCORE_FIRST_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 19)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
|
||||
$gEquates{"P2_LIVES_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 22) + ($gEquates{"LHS_NUM_TILES_WIDE"} - 2)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
|
||||
$gEquates{"HIGH_SCORE_ONES_OFFSET"} = ($gEquates{"LHS_FIRST_TILE"} + ($gEquates{"LHS_NUM_TILES_WIDE"} * 13) + ($gEquates{"LHS_NUM_TILES_WIDE"} - 2)) * $gEquates{"SIZEOF_TILE_INFO"};
|
||||
|
||||
|
||||
our @gTileDirty = ("TILE_STATE_CLEAN") x $gEquates{"TOTAL_NUM_TILES"};
|
||||
our @gTileScreenOffset = (0) x $gEquates{"TOTAL_NUM_TILES"};
|
||||
@ -371,22 +391,10 @@ sub initNonGameTiles
|
||||
$y = 5;
|
||||
addLhsGameString($x, $y, "SCORE:");
|
||||
|
||||
$x = $gEquates{"LHS_NUM_TILES_WIDE"} - 2;
|
||||
$y = 6;
|
||||
addLhsGameString($x, $y, "0");
|
||||
|
||||
$x = 2;
|
||||
$y = 8;
|
||||
addLhsGameString($x, $y, "LIVES:");
|
||||
|
||||
$x = $gEquates{"LHS_NUM_TILES_WIDE"} - 2;
|
||||
$y = 9;
|
||||
for (my $i = 0; $i < 3; $i++)
|
||||
{
|
||||
addLhsGameTile($x, $y, "TILE_PLAYER");
|
||||
$x--;
|
||||
}
|
||||
|
||||
$x = 0;
|
||||
$y = 12;
|
||||
addLhsGameString($x, $y, "HIGH SCORE:");
|
||||
@ -403,21 +411,9 @@ sub initNonGameTiles
|
||||
$y = 18;
|
||||
addLhsGameString($x, $y, "SCORE:");
|
||||
|
||||
$x = $gEquates{"LHS_NUM_TILES_WIDE"} - 2;
|
||||
$y = 19;
|
||||
addLhsGameString($x, $y, "0");
|
||||
|
||||
$x = 2;
|
||||
$y = 21;
|
||||
addLhsGameString($x, $y, "LIVES:");
|
||||
|
||||
$x = $gEquates{"LHS_NUM_TILES_WIDE"} - 2;
|
||||
$y = 22;
|
||||
for (my $i = 0; $i < 3; $i++)
|
||||
{
|
||||
addLhsGameTile($x, $y, "TILE_PLAYER");
|
||||
$x--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user