From d5666cd3a6b94cfccb6cccf3dc9de143ef720c62 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Fri, 20 Apr 2018 13:04:39 -0700 Subject: [PATCH] First pass at inventory menu rendering --- Art/Block_001.xcf | Bin 696 -> 763 bytes Art/block_001.gif | Bin 87 -> 104 bytes GSCats.xcodeproj/project.pbxproj | 2 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ SpriteBank00.bin | Bin 1826 -> 1851 bytes gamemanager.s | 2 + gameobject.s | 2 +- gscats.2mg | Bin 819264 -> 819264 bytes gscats.s | 1 + inventory.s | 67 ++++++++++++++++++ spritebank.s | 2 +- 11 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 GSCats.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 inventory.s diff --git a/Art/Block_001.xcf b/Art/Block_001.xcf index 6188cc2a69669740396cdf501d7f72263b10a4e2..dd1805d3bc77078246090d6c44e4e884304adf26 100644 GIT binary patch delta 84 gcmdnN`kQq^5+lpT5+n1* + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SpriteBank00.bin b/SpriteBank00.bin index 6da7fb8278ff20f724dd981086f9366e78c7e483..edcef809f3df96948f6eff260f556c07a3dd193b 100644 GIT binary patch delta 204 zcmZ3)x0_GEdo|ap8cqfVh7#7l%q+~B69pDe&SBhH|Ns9Zg~bavKQu2mWMG}i&LDjY n2&^+58Kr^Z3_x)PgscPg1=TVM847aN^2zp$x|>y*{;~i7P#I8Z delta 48 zcmV-00MGxs4x$baOREa1d Offset to upper left corner of VRAM, or -1 if offscreen ; ; Trashes SCRATCHL diff --git a/gscats.2mg b/gscats.2mg index 565db7d2a798e3e7806d1572900b30b89191d202..3ed4c1338b026c2b145cd4e9d20541e2457a1352 100644 GIT binary patch delta 1525 zcmb_cUrbw77(e%3`sbFGRRJwD%MQfFVPssk5WvP1>`2GP)&|*wEWv65=iIUZSsH^R zrj4XoG`Uj)dWY79Z9&>)H*s!R(}yL5_+X<;FvbTlMy3yLwJfFJQb-iPb6dt9eDoyW zIp6(#|9lIqV%#rcZJwsihz{9~lnt7CC@PO=Dkmxhino$SzTlqWIIntoo_nvloovy-(dB+u zbS$y$cD5y~9jjh-bDrzuyh&G_tFV|thQEa}p+WV3#a&ge-{hvJ3WfdQ?d{+2)mbq& zIlCyiWD{~O!*I!+oD*;aING&#{QqFJ{9j4uJ8p6OQ%{;0x%sJFp)omlo5L@wm)5yO zt~>e023J?j+0;pqZ-06;h<~oY`zvt5R*%g0@W8P8t;p|faS_c!>;`2>LNKS{xOJ0Wei0w1o2O@ z*2%J58qyjesz*XS7Y4NvdW?-|jdqSoRhn1*$ii2Ky(IVST#ZBaqr2V2Zk?-n;77+A z{@GTVNI-Lw+BA=HHpNY@y9xf#8fztin43h_5*$(*NdRYU^`F9K-YyYPyu=b6amb$` zrJKM`6Wc5i?y)jvO;#Ys0^3QQIUdr5DLT>B;hoMvp)K$C6`FGy*lC&S? z)@vEBMM(qNf4o%GOH>vmra%@@plVS81kx0dq5?>Zj(~DsPt`@bLGL0rf6W>=wZX>k z3+L%fhG-jfCQGzDwZNDeq42G1V^k~X8vBCFu05ibYj>QlMa_Umjo5T*=3EK<^Yjy7 zhyuZxaT@cG3HBWNwG6QfJ>Sb(h&p7T9HP*fG>QbnY}ygW*%7J~d#7ZGbTB>2+Z!Nc z$G)>V&W=%KOz*LhC22d7gb5nJo?xVKw0{;Ms3x6IPWrSgQT)CHyxCrT?(==;COI=U zSbdOJXY0IMDVbDs|n_?T}w%fB9ECH}$X*Y9O}jI z0J&WS9YxKlQgA9u|760{fa6zQ`it_g9Q)X-#Lk z+~204W18fEYncAZ8E|!~#-2-(k0o{R>li BGhF}x delta 1321 zcmYjQZ%kWN6hH5kmcH_U7h$sn%`Rj!0||Q)#OiQ%*dg24XmI-={a`hYd)vYoF?^6j zX|gnnSzcy>@rkQu(;&QMH*C|`^uv;dXkrt$5I^`~M#ub4El9wsAEqH&4YKWil!jc$b_1S+VDw=cjN35p^hJB}qFpdP zve}_5c_bnHBGs+3)R5#3E1<2h)QY4PSSl}R>x}%J^nWRA7X-f^oDtsN)G#BtBm~6d^xXkzG~9sB8r19sQ;xKKZPd zavxRfq=&|A#5c%WsA?mh5As%;w~=25xoYmKgS^e$fu2*+i@ZZ8F0o;vgQD2q)VcQb zVpCoc&fz|CylKc0%*-NMDA8Le&W1C-YLn^{L~dc=?N7pI&m#W zGYY7-aTX%JNbG*kzy$#8rXJCb_VFCm0(}PlFa6f@SlrC6JIdvZmeQb`!T(bz^7|nmq>|Il= zsR=9ss19R^lGg*)959GuScq70^QL<6>r_`}4%9}Y3}PfRw<#%Z!vV4Fd{qCZO02K7 zN>(C#jO87PG1j|+)%w%bV#6zMvsqLyd;Ol|-N<58E&KGIWZqJB?0 w?nvdRH>W_{nJN{ha!kLih*!?|6cNpaR)%IrbD))@Ing9E7h1)PPmxdk2kF!1<^TWy diff --git a/gscats.s b/gscats.s index b786fbe..d1e9fd2 100644 --- a/gscats.s +++ b/gscats.s @@ -46,6 +46,7 @@ quitGame: .include "gamemanager.s" .include "input.s" .include "projectile.s" +.include "inventory.s" endMainBank2: diff --git a/inventory.s b/inventory.s new file mode 100644 index 0000000..f433409 --- /dev/null +++ b/inventory.s @@ -0,0 +1,67 @@ +; +; inventory +; Code and data structures related to the weapons inventory and store +; +; Created by Quinn Dunki on 8/13/17 +; + + +INVENTORY_ITEMS = 6 +ITEM_WIDTH = 16 ; In pixels +ICON_WIDTH = 8 ; In pixels +ICON_ORIGIN = (ITEM_WIDTH-ICON_WIDTH)/4 ; In bytes + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; renderInventory +; +; +renderInventory: + SAVE_AXY + + ; Compute initial VRAM position + ldy #(8192 + (160*10 + (160*ICON_ORIGIN + ICON_ORIGIN))) + ldx #0 + +renderInventoryLoop: + jsr renderInventoryItem + + tya ; Advance VRAM pointer + clc + adc #ITEM_WIDTH/2 + tay + + inx + cpx #INVENTORY_ITEMS + bne renderInventoryLoop + +RESTORE_AXY + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; renderInventoryItem +; +; X = Item index +; Y = VRAM pos +; +renderInventoryItem: + SAVE_AXY + + phy + phx + lda #1 + clc + jsr DrawSpriteBank + + plx + ply + txa + clc + jsr DrawSpriteBank + +RESTORE_AXY + rts + +renderInventoryItemParam: + .word 0,20 + diff --git a/spritebank.s b/spritebank.s index 3064d1d..dc71519 100644 --- a/spritebank.s +++ b/spritebank.s @@ -8,7 +8,7 @@ DrawSpriteBank : JMP (SpriteBankBank,X) ; Bank Number Table SpriteBankNum : - .dbyt $0000,$0500,$0400,$0100,$0200,$0600,$0300 + .dbyt $0000,$0400,$0500,$0100,$0200,$0600,$0300 SpriteBankBank : .addr SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00,SpriteBankBank00