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