From 5490294c5f65bb6e3f397b2bb7780ec44e2864d3 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sun, 5 Jan 2020 15:48:59 -0800 Subject: [PATCH] Dirt explosions now happen at point of projectile hit --- dirt.s | 14 +++++++++----- gamemanager.s | 2 ++ gscats.2mg | Bin 819264 -> 819264 bytes projectile.s | 15 ++++++++++----- terrain.s | 2 +- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/dirt.s b/dirt.s index 46a1897..c91ce8b 100644 --- a/dirt.s +++ b/dirt.s @@ -33,11 +33,7 @@ createDirtExplosion: lda #1 sta dirtExplosionActive - lda #120 - sta PARAML0 - lda #100 - sta PARAML1 - lda #3 + lda #3 ; Radius hard-coded for now sta PARAML2 asl sta CACHEDATA ; Cache diameter @@ -168,10 +164,13 @@ createDirtExplosionColumnLoopNowY: ; renderDirtExplosion: SAVE_AXY + lda dirtExplosionActive beq renderDirtExplosionDone ldx #0 + stz dirtExplosionActive ; Assume we're done unless a particle says otherwise + renderDirtExplosionLoop: PARTICLEPTR_XY jsr updateDirtParticle @@ -266,8 +265,13 @@ updateDirtParticle: lda #$11 sta SHADOWVRAMBANK,x + ; Let everyone know we did work + lda #1 + sta dirtExplosionActive + updateDirtParticleDone: RESTORE_AXY +updateDirtParticleDoneRTS: rts updateDirtParticleKill: diff --git a/gamemanager.s b/gamemanager.s index ead409e..f9bcc04 100644 --- a/gamemanager.s +++ b/gamemanager.s @@ -177,6 +177,8 @@ gameplayLoopVictoryCondition: gameplayEndTurnCondition: lda turnRequested beq gameplayLoopEndFrame + lda dirtExplosionActive + bne gameplayLoopEndFrame jsr endTurn gameplayLoopEndFrame: diff --git a/gscats.2mg b/gscats.2mg index 9b21d7b77b8807e8258d197ae917bef0bcbcdae9..7f1ca3076fb7c4a31f613dac340baaf88b8fcf1d 100644 GIT binary patch delta 2378 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 OAUufgVEg0#?!N)N44vu# diff --git a/projectile.s b/projectile.s index ae0ce53..9b1e65e 100644 --- a/projectile.s +++ b/projectile.s @@ -222,9 +222,6 @@ allocProjectileDone: ; ; fireProjectile: - jsr createDirtExplosion - rts - SAVE_AXY ; Allocate a projectile @@ -880,7 +877,7 @@ processPlayerImpactDeath: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; processTerrainImpact ; -; Trashes A,Y, SCRATCHL +; Trashes A,Y, SCRATCHL, PARAML0, PARAML1 ; processTerrainImpact: ldy projectileActive @@ -901,10 +898,12 @@ processTerrainImpactNegative: processTerrainStoreContinue: sta PARAML0 + pha ; Dirt explosion will need this lda projectileData+GO_POSY,y sec sbc #GAMEOBJECTHEIGHT ; This fudge makes tunneling work better sta PARAML1 + pha ; Dirt explosion will need this lda projectileData+JD_TYPE,y tay @@ -915,7 +914,7 @@ processTerrainStoreContinue: phy ; We'll need the radius in a moment jsr craterTerrain - + jsr unclipTerrain ; Recompile the rows affected by the crater @@ -937,4 +936,10 @@ processTerrainStoreContinue: jsr clipTerrain + pla + sta PARAML1 + pla + sta PARAML0 + jsr createDirtExplosion + rts diff --git a/terrain.s b/terrain.s index 5287aa0..94874ec 100644 --- a/terrain.s +++ b/terrain.s @@ -282,7 +282,7 @@ compileTerrainDone: ; X = Last row to compile (bottom-relative) ; A = |X-Y| ; -; Trashes A,Y, SCRATCHL +; Trashes A,Y, SCRATCHL, PARAML0, PARAML1 ; compileTerrainChunk: ;HARDBRK