Compare commits
4 Commits
d0bfa23d60
...
11b2cc9048
Author | SHA1 | Date |
---|---|---|
blondie7575 | 11b2cc9048 | |
blondie7575 | 1dde996981 | |
blondie7575 | aef29be0f8 | |
blondie7575 | 0634837dbc |
|
@ -35,8 +35,6 @@ beginGameplay:
|
|||
ldy #0
|
||||
jsr renderPlayerHeader
|
||||
|
||||
jsr protectPlayers
|
||||
jsr protectProjectiles
|
||||
jsr prepareRowRendering
|
||||
|
||||
jsr compileTerrain
|
||||
|
@ -44,6 +42,7 @@ beginGameplay:
|
|||
jsr renderTerrain
|
||||
|
||||
jsr renderInventory
|
||||
jsr protectPlayers
|
||||
jsr renderPlayers
|
||||
|
||||
; Fade in from menu
|
||||
|
@ -97,7 +96,6 @@ gameplayLoopScroll:
|
|||
|
||||
jsr scrollMap
|
||||
jsr updateCrosshair
|
||||
jsr protectCrosshair
|
||||
|
||||
gameplayLoopAngleCheck:
|
||||
lda projectileActive ; Skip interactivity during shots
|
||||
|
@ -153,6 +151,14 @@ gameplayLoopRender:
|
|||
stz terrainDirty
|
||||
|
||||
; Render players
|
||||
lda playersDirty ; Check if terrain moved since last protect
|
||||
beq gameplayLoopRenderPlayersAnyway
|
||||
jsr unrenderPlayers
|
||||
jsr protectPlayers
|
||||
jsr unrenderCrosshair
|
||||
jsr protectCrosshair
|
||||
|
||||
gameplayLoopRenderPlayersAnyway:
|
||||
jsr renderPlayers
|
||||
|
||||
gameplayLoopExplosions:
|
||||
|
@ -348,14 +354,11 @@ scrollMapApplyScrolling:
|
|||
lda #$ffff
|
||||
sta mapScrollRequested
|
||||
|
||||
jsr protectPlayers
|
||||
jsr protectProjectiles
|
||||
jsr renderPlayers
|
||||
jsr renderProjectiles ; Prevents flicker, but ads jitter to shot tracking
|
||||
|
||||
lda #1
|
||||
sta playersDirty
|
||||
sta projectilesDirty
|
||||
sta terrainDirty
|
||||
stz projectilesDirty
|
||||
sta crosshairDirty
|
||||
rts
|
||||
|
||||
|
||||
|
@ -432,7 +435,7 @@ move:
|
|||
beq moveParamsPlayer0
|
||||
lda #-1
|
||||
sta placeGameObjectRightOffset
|
||||
lda #GAMEOBJECTWIDTH-7
|
||||
lda #GAMEOBJECTWIDTH-(GAMEOBJECTWIDTH/2-1)
|
||||
sta placeGameObjectLeftOffset
|
||||
|
||||
movePerformMove:
|
||||
|
@ -440,7 +443,7 @@ movePerformMove:
|
|||
bra moveCleanup
|
||||
|
||||
moveParamsPlayer0:
|
||||
lda #-6
|
||||
lda #-(GAMEOBJECTWIDTH/2-2)
|
||||
sta placeGameObjectRightOffset
|
||||
lda #GAMEOBJECTWIDTH-2
|
||||
sta placeGameObjectLeftOffset
|
||||
|
@ -482,6 +485,10 @@ playerMoveRequested:
|
|||
.word $0000
|
||||
terrainDirty:
|
||||
.word 1
|
||||
playersDirty:
|
||||
.word 0
|
||||
crosshairDirty:
|
||||
.word 0
|
||||
projectilesDirty:
|
||||
.word 1
|
||||
inventoryDirty:
|
||||
|
|
46
gameobject.s
46
gameobject.s
|
@ -8,8 +8,6 @@
|
|||
GAMEOBJECTWIDTH = 16
|
||||
GAMEOBJECTHEIGHT = 16
|
||||
MAXGAMEOBJECTS = 6 ; Size of general purpose object pool
|
||||
MAXCLIMB = 16 ; Highest pixel cliff we can climb
|
||||
|
||||
|
||||
; Base class sample:
|
||||
;gameobjectData:
|
||||
|
@ -132,49 +130,20 @@ moveGameObjectOnTerrain:
|
|||
lda (PARAML0),y
|
||||
clc
|
||||
adc SCRATCHL2 ; Apply X delta
|
||||
|
||||
clc ; Map into reversed terrain X space
|
||||
adc #GAMEOBJECTWIDTH
|
||||
sta SCRATCHL
|
||||
lda #TERRAINWIDTH
|
||||
sec
|
||||
sbc SCRATCHL
|
||||
sta SCRATCHL ; Desired X position
|
||||
|
||||
ldy #GO_POSY
|
||||
lda (PARAML0),y
|
||||
sec
|
||||
sbc #GAMEOBJECTHEIGHT
|
||||
sta SCRATCHL2 ; Current Y position
|
||||
|
||||
lda SCRATCHL ; Check terrain height at new position
|
||||
pha
|
||||
jsr terrainHeightAtGameObjectPos
|
||||
|
||||
; Check for impassable gaps
|
||||
sec
|
||||
sbc SCRATCHL2
|
||||
bmi moveGameObjectOnTerrainStepDown
|
||||
sbc #GAMEOBJECTWIDTH/2
|
||||
|
||||
moveGameObjectOnTerrainCheckHeight:
|
||||
cmp #MAXCLIMB
|
||||
bcs moveGameObjectOnTerrainTooFar
|
||||
bra moveGameObjectOnTerrainStore
|
||||
|
||||
moveGameObjectOnTerrainStepDown:
|
||||
dec
|
||||
eor #$ffff
|
||||
bra moveGameObjectOnTerrainCheckHeight
|
||||
jsr terrainHeightAtGameObjectPos
|
||||
cmp #0
|
||||
beq moveGameObjectOnTerrainTooFar
|
||||
|
||||
moveGameObjectOnTerrainStore:
|
||||
pla
|
||||
sta SCRATCHL
|
||||
|
||||
; Reverse X position again
|
||||
lda #TERRAINWIDTH
|
||||
sec
|
||||
sbc #GAMEOBJECTWIDTH
|
||||
sbc SCRATCHL
|
||||
|
||||
ldy #GO_POSX
|
||||
pla
|
||||
sta (PARAML0),y
|
||||
jsr placeGameObjectOnTerrain
|
||||
|
||||
|
@ -186,7 +155,6 @@ moveGameObjectOnTerrainTooFar:
|
|||
pla
|
||||
bra moveGameObjectOnTerrainTooDone
|
||||
|
||||
|
||||
moveGameObjectLeftOffset:
|
||||
.word 0
|
||||
moveGameObjectRightOffset:
|
||||
|
|
Loading…
Reference in New Issue