Shop counting items
This commit is contained in:
@@ -106,6 +106,7 @@ RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
!TILE_UPLOAD_OFFSET_OVERRIDE = "$7F5042"
|
||||
!FREE_TILE_BUFFER = "#$1180"
|
||||
!SHOP_ENABLE_COUNT = "$7F504F"
|
||||
!SHOP_ID = "$7F5050"
|
||||
!SHOP_TYPE = "$7F5051"
|
||||
!SHOP_INVENTORY = "$7F5052" ; $7F5056 - 5a - 5e
|
||||
@@ -548,6 +549,9 @@ Shopkeeper_SetupHitboxes:
|
||||
|
||||
PLP : PLY : PLX
|
||||
RTS
|
||||
|
||||
!LOCK_STATS = "$7EF443"
|
||||
!ITEM_TOTAL = "$7EF423"
|
||||
;--------------------
|
||||
;!SHOP_STATE
|
||||
Shopkeeper_BuyItem:
|
||||
@@ -584,9 +588,16 @@ Shopkeeper_BuyItem:
|
||||
LDA !SHOP_TYPE : AND.b #$80 : BNE ++ ; don't charge if this is a take-any
|
||||
REP #$20 : LDA $7EF360 : !SUB !SHOP_INVENTORY+1, X : STA $7EF360 : SEP #$20 ; Take price away
|
||||
++
|
||||
PHX : LDA #0 : XBA : TXA : LSR #2 : TAX : LDA.l !SHOP_INVENTORY_PLAYER, X : STA !MULTIWORLD_ITEM_PLAYER_ID : PLX
|
||||
PHX
|
||||
LDA #0 : XBA : TXA : LSR #2 : TAX : LDA.l !SHOP_INVENTORY_PLAYER, X : STA !MULTIWORLD_ITEM_PLAYER_ID
|
||||
TXA : !ADD !SHOP_SRAM_INDEX : TAX
|
||||
LDA.l !SHOP_PURCHASE_COUNTS, X : BNE +++ ;Is this the first time buying this slot?
|
||||
LDA.l EnableShopItemCount, X : STA.l !SHOP_ENABLE_COUNT ; If so, store the permission to count the item here.
|
||||
+++
|
||||
PLX
|
||||
LDA.l !SHOP_INVENTORY, X : TAY : JSL.l Link_ReceiveItem
|
||||
LDA.l !SHOP_INVENTORY+3, X : INC : STA.l !SHOP_INVENTORY+3, X
|
||||
LDA.b #0 : STA.l !SHOP_ENABLE_COUNT
|
||||
|
||||
TXA : LSR #2 : TAX
|
||||
LDA !SHOP_TYPE : BIT.b #$80 : BNE +
|
||||
@@ -603,11 +614,17 @@ Shopkeeper_BuyItem:
|
||||
BIT.b #$20 : BNE .takeAll
|
||||
.takeAny
|
||||
LDA.l !SHOP_STATE : ORA.b #$07 : STA.l !SHOP_STATE
|
||||
PHX : LDA.l !SHOP_SRAM_INDEX : TAX : LDA.b #$01 : STA.l !SHOP_PURCHASE_COUNTS, X : PLX
|
||||
PHX
|
||||
LDA.l !SHOP_SRAM_INDEX : TAX : LDA.b #$01 : STA.l !SHOP_PURCHASE_COUNTS, X
|
||||
LDA.l EnableShopItemCount, X : STA.l !SHOP_ENABLE_COUNT
|
||||
PLX
|
||||
BRA ++
|
||||
.takeAll
|
||||
LDA.l !SHOP_STATE : ORA.w Shopkeeper_ItemMasks, X : STA.l !SHOP_STATE
|
||||
PHX : LDA.l !SHOP_SRAM_INDEX : TAX : LDA.l !SHOP_STATE : STA.l !SHOP_PURCHASE_COUNTS, X : PLX
|
||||
PHX
|
||||
LDA.l !SHOP_SRAM_INDEX : TAX : LDA.l !SHOP_STATE : STA.l !SHOP_PURCHASE_COUNTS, X
|
||||
LDA.l EnableShopItemCount, X : STA.l !SHOP_ENABLE_COUNT
|
||||
PLX
|
||||
++
|
||||
.done
|
||||
LDA #$0 : STA !SHOP_KEEP_REFILL
|
||||
|
||||
Reference in New Issue
Block a user