Compare commits
3 Commits
11b2cc9048
...
8a8235181c
Author | SHA1 | Date |
---|---|---|
blondie7575 | 8a8235181c | |
blondie7575 | f0a53d6964 | |
blondie7575 | c2dde9a4b7 |
|
@ -14,6 +14,9 @@ crosshairGameObject:
|
|||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
crosshairBackgroundStale:
|
||||
.word 0
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; updateCrosshair
|
||||
|
@ -115,6 +118,8 @@ protectCrosshair:
|
|||
sta PARAML0
|
||||
jsr protectGameObject
|
||||
|
||||
stz crosshairBackgroundStale
|
||||
|
||||
protectCrosshairDone:
|
||||
pla
|
||||
rts
|
||||
|
@ -128,6 +133,9 @@ protectCrosshairDone:
|
|||
unrenderCrosshair:
|
||||
pha
|
||||
|
||||
lda crosshairBackgroundStale
|
||||
bne unrenderCrosshairDone
|
||||
|
||||
lda #crosshairGameObject
|
||||
sta PARAML0
|
||||
jsr unrenderGameObject
|
||||
|
|
|
@ -7,6 +7,18 @@
|
|||
|
||||
NUMPLAYERS = 2
|
||||
|
||||
initGameplay:
|
||||
; Create players
|
||||
lda #56
|
||||
ldy #0
|
||||
jsr playerCreate
|
||||
|
||||
lda #568
|
||||
ldy #1
|
||||
jsr playerCreate
|
||||
|
||||
jsr deleteAllProjectiles
|
||||
rts
|
||||
|
||||
beginGameplay:
|
||||
; Initialize random numbers
|
||||
|
@ -19,18 +31,14 @@ beginGameplay:
|
|||
jsr colorFill
|
||||
|
||||
; Generate, compile, and clip terrain
|
||||
stz mapScrollPos
|
||||
stz leftScreenEdge
|
||||
lda #160-GAMEOBJECTWIDTH/4-2
|
||||
sta rightScreenEdge
|
||||
jsr generateTerrain
|
||||
|
||||
; Create players
|
||||
lda #56
|
||||
ldy #0
|
||||
jsr playerCreate
|
||||
|
||||
lda #568
|
||||
ldy #1
|
||||
jsr playerCreate
|
||||
|
||||
jsr initGameplay
|
||||
|
||||
jsr syncPlayerHeader
|
||||
ldy #0
|
||||
jsr renderPlayerHeader
|
||||
|
@ -44,6 +52,8 @@ beginGameplay:
|
|||
jsr renderInventory
|
||||
jsr protectPlayers
|
||||
jsr renderPlayers
|
||||
ldy #0
|
||||
jsr updateCrosshair
|
||||
|
||||
; Fade in from menu
|
||||
lda #basePalette
|
||||
|
@ -95,8 +105,9 @@ gameplayLoopScroll:
|
|||
bmi gameplayLoopAngleCheck
|
||||
|
||||
jsr scrollMap
|
||||
ldy currentPlayer
|
||||
jsr updateCrosshair
|
||||
|
||||
|
||||
gameplayLoopAngleCheck:
|
||||
lda projectileActive ; Skip interactivity during shots
|
||||
bpl gameplayLoopRenderJmp
|
||||
|
@ -107,7 +118,7 @@ gameplayLoopRenderJmp:
|
|||
gameplayLoopAngle:
|
||||
; Update aim angle if needed
|
||||
lda angleDeltaRequested
|
||||
beq gameplayLoopAim
|
||||
beq gameplayLoopPower
|
||||
jsr changeAngle
|
||||
|
||||
gameplayLoopAim:
|
||||
|
@ -122,6 +133,9 @@ gameplayLoopPower:
|
|||
lda powerDeltaRequested
|
||||
beq gameplayLoopFire
|
||||
jsr changePower
|
||||
jsr unrenderCrosshair
|
||||
ldy currentPlayer
|
||||
jsr renderCrosshair
|
||||
|
||||
gameplayLoopFire:
|
||||
lda fireRequested
|
||||
|
@ -155,8 +169,12 @@ gameplayLoopRender:
|
|||
beq gameplayLoopRenderPlayersAnyway
|
||||
jsr unrenderPlayers
|
||||
jsr protectPlayers
|
||||
jsr unrenderCrosshair
|
||||
|
||||
lda dirtExplosionActive ; Crosshair is dirty if map scrolled and dirt is finished
|
||||
bne gameplayLoopRenderPlayersAnyway
|
||||
jsr protectCrosshair
|
||||
ldy currentPlayer
|
||||
jsr renderCrosshair
|
||||
|
||||
gameplayLoopRenderPlayersAnyway:
|
||||
jsr renderPlayers
|
||||
|
@ -297,8 +315,6 @@ endTurnHeader:
|
|||
jsr renderPlayerHeader
|
||||
jsr renderInventory
|
||||
stz turnRequested
|
||||
|
||||
jsr protectCrosshair
|
||||
rts
|
||||
|
||||
endTurnFocusPlayer0:
|
||||
|
@ -338,6 +354,8 @@ scrollMap:
|
|||
lda projectileActive ; Crosshair is visible if projectile isn't
|
||||
beq scrollMapApplyScrolling
|
||||
jsr unrenderCrosshair
|
||||
lda #1
|
||||
sta crosshairBackgroundStale
|
||||
|
||||
scrollMapApplyScrolling:
|
||||
pla
|
||||
|
@ -358,7 +376,6 @@ scrollMapApplyScrolling:
|
|||
sta playersDirty
|
||||
sta projectilesDirty
|
||||
sta terrainDirty
|
||||
sta crosshairDirty
|
||||
rts
|
||||
|
||||
|
||||
|
@ -459,6 +476,7 @@ moveCleanup:
|
|||
jsr protectPlayers
|
||||
jsr renderPlayers
|
||||
jsr protectCrosshair
|
||||
ldy currentPlayer
|
||||
jsr renderCrosshair
|
||||
|
||||
RESTORE_AY
|
||||
|
@ -484,10 +502,8 @@ turnRequested:
|
|||
playerMoveRequested:
|
||||
.word $0000
|
||||
terrainDirty:
|
||||
.word 1
|
||||
playersDirty:
|
||||
.word 0
|
||||
crosshairDirty:
|
||||
playersDirty:
|
||||
.word 0
|
||||
projectilesDirty:
|
||||
.word 1
|
||||
|
|
4
macros.s
4
macros.s
|
@ -180,8 +180,8 @@
|
|||
pha
|
||||
lda breakpoint
|
||||
beq nobrk
|
||||
lda #1
|
||||
sta $e1c029
|
||||
; lda #1
|
||||
; sta $e1c029
|
||||
pla
|
||||
brk
|
||||
nobrk:
|
||||
|
|
52
player.s
52
player.s
|
@ -6,6 +6,8 @@
|
|||
;
|
||||
|
||||
MAX_ANGER = 100
|
||||
START_POWER = 2
|
||||
START_TREATS = 7
|
||||
|
||||
playerData:
|
||||
;;;;;;;;;;;; PLAYER 1 ;;;;;;;;;;;;;;
|
||||
|
@ -17,14 +19,14 @@ playerData:
|
|||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
.word 24 ; Angle in degrees from +X
|
||||
.word 2 ; Power
|
||||
.word MAX_ANGER ; Anger
|
||||
.word 0 ; Angle in degrees from +X
|
||||
.word 0 ; Power
|
||||
.word 0 ; Anger
|
||||
.byte 8,"SPROCKET " ; Name
|
||||
.word 29 ; Base Sprite
|
||||
.word 0,5,7,0,0,0,0,0 ; Prices
|
||||
.word 0 ; Current weapon
|
||||
.word 7 ; Treats
|
||||
.word 0 ; Treats
|
||||
.repeat 86
|
||||
.byte 0 ; Padding to 256-byte boundary
|
||||
.endrepeat
|
||||
|
@ -38,14 +40,14 @@ playerData:
|
|||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
.word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
|
||||
.word 154 ; Angle in degrees from +X
|
||||
.word 2 ; Power
|
||||
.word MAX_ANGER ; Anger
|
||||
.word 0 ; Angle in degrees from +X
|
||||
.word 0 ; Power
|
||||
.word 0 ; Anger
|
||||
.byte 8,"TINKER " ; Name
|
||||
.word 20 ; Base Sprite
|
||||
.word 0,5,7,0,0,0,0,0 ; Prices
|
||||
.word 0 ; Current weapon
|
||||
.word 7 ; Treats
|
||||
.word 0 ; Treats
|
||||
|
||||
.repeat 86
|
||||
.byte 0 ; Padding to 256-byte boundary
|
||||
|
@ -105,6 +107,7 @@ playerCreate:
|
|||
sty SCRATCHL
|
||||
pla
|
||||
|
||||
; Starting position
|
||||
sta playerData+GO_POSX,y
|
||||
lda #playerData
|
||||
clc
|
||||
|
@ -112,6 +115,39 @@ playerCreate:
|
|||
sta PARAML0
|
||||
jsr placeGameObjectOnTerrainDefault
|
||||
|
||||
; Starting aim
|
||||
lda playerData+GO_POSX,y
|
||||
cmp #TERRAINWIDTH/2
|
||||
bcc playerCreateLeft
|
||||
lda #154
|
||||
bra playerCreateInit
|
||||
playerCreateLeft:
|
||||
lda #24
|
||||
|
||||
playerCreateInit:
|
||||
sta playerData+PD_ANGLE,y
|
||||
|
||||
; Initialize standard values
|
||||
lda #START_POWER
|
||||
sta playerData+PD_POWER,y
|
||||
lda #START_TREATS
|
||||
sta playerData+PD_TREATS,y
|
||||
lda #MAX_ANGER
|
||||
sta playerData+PD_ANGER,y
|
||||
lda #0
|
||||
sta playerData+PD_CURRWEAPON,y
|
||||
lda #1
|
||||
sta playersDirty
|
||||
sta terrainDirty
|
||||
sta projectilesDirty
|
||||
sta inventoryDirty
|
||||
|
||||
lda #-1
|
||||
sta gameOver
|
||||
sta projectileActive
|
||||
|
||||
stz currentPlayer
|
||||
|
||||
jsr createProgressBar
|
||||
rts
|
||||
|
||||
|
|
22
projectile.s
22
projectile.s
|
@ -630,6 +630,9 @@ endProjectile:
|
|||
; Trashes A
|
||||
;
|
||||
deleteProjectile:
|
||||
lda projectileData+GO_POSX,y
|
||||
bmi deleteProjectileDone ; Already deleted
|
||||
|
||||
lda #-1
|
||||
sta projectileData+GO_POSX,y
|
||||
|
||||
|
@ -646,6 +649,25 @@ deleteProjectileDone:
|
|||
rts
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; deleteAllProjectiles
|
||||
;
|
||||
deleteAllProjectiles:
|
||||
SAVE_AXY
|
||||
|
||||
ldx #0
|
||||
deleteAllProjectilesLoop:
|
||||
txy
|
||||
PROJECTILEPTR_Y
|
||||
jsr deleteProjectile
|
||||
inx
|
||||
cpx #4
|
||||
bne deleteAllProjectilesLoop
|
||||
|
||||
RESTORE_AXY
|
||||
rts
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; protectProjectiles
|
||||
;
|
||||
|
|
Loading…
Reference in New Issue