From a5e4c3e14309ff6a96d34263bf1f91c3ebe78d8a Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Mon, 11 Jun 2018 17:22:34 -0600 Subject: [PATCH] Ammo consumption --- gscats.2mg | Bin 819264 -> 819264 bytes player.s | 28 ++++++++++++++++++++++++---- projectile.s | 2 +- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gscats.2mg b/gscats.2mg index 55920f6cf1404d1016b5d9d5c294815c7fa98fbd..7670d8bb2a276e659d0837cde13d82bc3a1ef958 100644 GIT binary patch delta 2332 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 aEFe`NRuCIVHHaOg2E+m4e6Q8+df|VMXMeE( diff --git a/player.s b/player.s index c0350e9..a077fce 100644 --- a/player.s +++ b/player.s @@ -160,9 +160,26 @@ playerDeltaPowerClampHigh: ; Y = Player index ; playerFire: - pha + SAVE_AX PLAYERPTR_Y + ; Check for inventory + lda playerData+PD_CURRWEAPON,y + pha + asl + tax + beq playerFire_infiniteAmmo + lda playerData+PD_INVENTORY,x + beq playerFire_abort + dec ; Consume ammo + sta playerData+PD_INVENTORY,x + dec inventoryDirty + +playerFire_infiniteAmmo: + + ; Prepare projectile parameters + pla + sta projectileParams+8 lda playerData+GO_POSX,y sta projectileParams lda playerData+GO_POSY,y @@ -173,13 +190,16 @@ playerFire: sta projectileParams+4 lda playerData+PD_POWER,y sta projectileParams+6 - lda playerData+PD_CURRWEAPON,y - sta projectileParams+8 jsr fireProjectile - pla +playerFire_done: + RESTORE_AX rts +playerFire_abort: + pla ; Balance stack + bra playerFire_done + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; playerIntersectRect diff --git a/projectile.s b/projectile.s index b030530..72a856f 100644 --- a/projectile.s +++ b/projectile.s @@ -39,7 +39,7 @@ GRAVITY = $ffff ; 8.8 fixed point projectileTypes: ; Spit .word 3 ; Damage - .word 1 ; Crater radius + .word 9 ; Crater radius .word 4 ; Frame 0 .word 5 ; Frame 1 .word 6 ; Frame 2