diff --git a/Art/038MoveLeft.gif b/Art/038MoveLeft.gif new file mode 100644 index 0000000..c8d441d Binary files /dev/null and b/Art/038MoveLeft.gif differ diff --git a/Art/038MoveLeft.xcf b/Art/038MoveLeft.xcf new file mode 100644 index 0000000..f7be8fb Binary files /dev/null and b/Art/038MoveLeft.xcf differ diff --git a/Art/039MoveRight.gif b/Art/039MoveRight.gif new file mode 100644 index 0000000..deeea4a Binary files /dev/null and b/Art/039MoveRight.gif differ diff --git a/Art/039MoveRight.xcf b/Art/039MoveRight.xcf new file mode 100644 index 0000000..4309786 Binary files /dev/null and b/Art/039MoveRight.xcf differ diff --git a/SpriteBank#060000 b/SpriteBank#060000 index fdae4bb..3be7a87 100644 Binary files a/SpriteBank#060000 and b/SpriteBank#060000 differ diff --git a/input.s b/input.s index b669fcc..a501014 100644 --- a/input.s +++ b/input.s @@ -109,10 +109,10 @@ kbdScanGameplay: beq kbdScanPeriod cmp #(' ' + $80) beq kbdScanSpace - cmp #(';' + $80) - beq kbdScanSemiColon - cmp #(39 + $80) - beq kbdScanApostrophe +; cmp #(';' + $80) ; For debugging cat movement +; beq kbdScanSemiColon ; +; cmp #(39 + $80) ; +; beq kbdScanApostrophe ; cmp #(9 + $80) bne kbdScanDebugPiggyback jmp kbdScanTab diff --git a/inventory.s b/inventory.s index 55a340b..82e1f83 100644 --- a/inventory.s +++ b/inventory.s @@ -6,7 +6,7 @@ ; -INVENTORY_ITEMS = 3 +INVENTORY_ITEMS = 5 ITEM_WIDTH = 16 ; In pixels ITEM_HEIGHT = 16 ; In pixels ICON_WIDTH = 8 ; In pixels diff --git a/player.s b/player.s index 0f1c466..3c229bd 100644 --- a/player.s +++ b/player.s @@ -24,7 +24,7 @@ playerData: .word 0 ; Anger .byte 8,"SPROCKET " ; Name .word 29 ; Base Sprite - .word 0,5,7,0,0,0,0,0 ; Prices + .word 0,5,7,1,1,0,0,0 ; Prices .word 0 ; Current weapon .word 0 ; Treats .repeat 86 @@ -45,7 +45,7 @@ playerData: .word 0 ; Anger .byte 8,"TINKER " ; Name .word 20 ; Base Sprite - .word 0,5,7,0,0,0,0,0 ; Prices + .word 0,5,7,1,1,0,0,0 ; Prices .word 0 ; Current weapon .word 0 ; Treats @@ -246,6 +246,13 @@ playerFire: sbc SCRATCHL sta playerData+PD_TREATS,y + ; Check for movement + lda playerData+PD_CURRWEAPON,y + cmp #3 + beq playerFireMoveLeft + cmp #4 + beq playerFireMoveRight + ; Animate the shooting phy ldy SCRATCHL2 @@ -273,6 +280,16 @@ playerFire_abort: pla ; Balance stack bra playerFire_done +playerFireMoveLeft: + lda #-2 + sta playerMoveRequested + bra playerFire_abort + +playerFireMoveRight: + lda #2 + sta playerMoveRequested + bra playerFire_abort + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; playerIntersectRect diff --git a/projectile.s b/projectile.s index 9ae5b21..153a222 100644 --- a/projectile.s +++ b/projectile.s @@ -151,6 +151,46 @@ projectileTypes: .byte 0 ; Padding to 32-byte boundary .endrepeat + ; Move Left + .word 0 ; Damage + .word 0 ; Crater radius + .word 0 ; Frame 0 + .word 38 ; Frame 1 + .word 0 ; Frame 2 + .addr 0 ; Deploy + .addr 0 ; Update + .addr 0 ; Render + .addr 0 ; Unrender + .addr 0 ; Protect + .addr 0 ; Cleanup + .word 0 ; Directional + .word 0 ; Mining + + .repeat 6 + + .byte 0 ; Padding to 32-byte boundary + .endrepeat + + ; Move Right + .word 0 ; Damage + .word 0 ; Crater radius + .word 0 ; Frame 0 + .word 39 ; Frame 1 + .word 0 ; Frame 2 + .addr 0 ; Deploy + .addr 0 ; Update + .addr 0 ; Render + .addr 0 ; Unrender + .addr 0 ; Protect + .addr 0 ; Cleanup + .word 0 ; Directional + .word 0 ; Mining + + .repeat 6 + + .byte 0 ; Padding to 32-byte boundary + .endrepeat + PT_DAMAGE = 0 ; Byte offsets into projectile type data structure PT_RADIUS = 2 diff --git a/spritebank.s b/spritebank.s index 329dec3..e125a68 100644 --- a/spritebank.s +++ b/spritebank.s @@ -2,24 +2,24 @@ DrawSpriteBank : - ASL ; A=Sprite Number ($0000-$0025) + ASL ; A=Sprite Number ($0000-$0027) TAX ; Y=Target Screen Address ($2000-$9D00) LDA SpriteBankNum,X ; Relative Sprite Number Table JMP (SpriteBankBank,X) ; Bank Number Table SpriteBankNum : - .dbyt $0C00,$0B00,$1E00,$1700,$1800,$1D00,$2400,$2200 - .dbyt $1B00,$1C00,$2100,$2500,$1100,$1500,$1600,$2300 - .dbyt $2000,$1F00,$1A00,$1900,$0D00,$1200,$0600,$0000 + .dbyt $0C00,$0B00,$2000,$1800,$1A00,$1F00,$2600,$2400 + .dbyt $1D00,$1E00,$2300,$2700,$1100,$1500,$1600,$2500 + .dbyt $2200,$2100,$1C00,$1B00,$0D00,$1200,$0600,$0000 .dbyt $0300,$0400,$1000,$1300,$0E00,$0900,$0800,$0700 - .dbyt $0200,$0100,$0500,$0F00,$1400,$0A00 + .dbyt $0200,$0100,$0500,$0F00,$1400,$0A00,$1900,$1700 SpriteBankBank : .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 - .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 + .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00 SpriteBankBank00 : JSL $AA0000