diff --git a/shopkeeper.asm b/shopkeeper.asm index 45935d2..dcaad27 100644 --- a/shopkeeper.asm +++ b/shopkeeper.asm @@ -128,7 +128,7 @@ RTS !SHOP_TYPE = "$7F5051" !SHOP_INVENTORY = "$7F5052" ; $7F505E !SHOP_STATE = "$7F505F" -!SCRATCH_CAPACITY = "$7F5060" +!SHOP_CAPACITY = "$7F5060" !SCRATCH_TEMP_X = "$7F5061" !SHOP_SRAM_INDEX = "$7F5062" !SHOP_MERCHANT = "$7F5063" @@ -153,8 +153,8 @@ SpritePrep_ShopKeeper: SEP #$20 ; set 8-bit accumulator LDA ShopTable, X : STA !SHOP_ID LDA ShopTable+5, X : STA !SHOP_TYPE + AND.b #$03 : ASL #2 : STA !SHOP_CAPACITY LDA ShopTable+6, X : STA !SHOP_MERCHANT - AND.b #$03 : ASL #2 : STA !SCRATCH_CAPACITY TXA : LSR #3 : PHA : ASL : !ADD 1,s : STA !SHOP_SRAM_INDEX : PLA BRA .success + @@ -173,11 +173,10 @@ SpritePrep_ShopKeeper: LDX.w #$0000 LDY.w #$0000 - - TYA : CMP !SCRATCH_CAPACITY : !BLT ++ : BRL .stop : ++ + TYA : CMP !SHOP_CAPACITY : !BLT ++ : BRL .stop : ++ LDA.l ShopContentsTable+1, X : CMP.b #$FF : BNE ++ : BRL .stop : ++ - - LDA.l ShopContentsTable, X : CMP !SHOP_ID : BEQ ++ : BRL + : ++ + LDA.l ShopContentsTable, X : CMP !SHOP_ID : BEQ ++ : BRL .next : ++ LDA.l ShopContentsTable+1, X : PHX : TYX : STA.l !SHOP_INVENTORY, X : PLX LDA.l ShopContentsTable+2, X : PHX : TYX : STA.l !SHOP_INVENTORY+1, X : PLX LDA.l ShopContentsTable+3, X : PHX : TYX : STA.l !SHOP_INVENTORY+2, X : PLX @@ -205,10 +204,9 @@ SpritePrep_ShopKeeper: JSR LoadTile PLY : PLX INY #4 - + + + .next INX #8 - - BRL - .stop @@ -246,19 +244,6 @@ RTS ;!SHOP_INVENTORY, X ;[id][$lo][$hi][purchase_counter] ;-------------------------------------------------------------------------------- -;shop_config - t--- --qq -; t - 0=Shop - 1=TakeAny -; qq - # of items for sale -;org $30C800 ; PC 0x184800 - 0x184FFF -;ShopTable: -;;db [id][roomID-low][roomID-high][entranceID-low][entranceID-high][shop_config][pad][pad] -;db $FF, $12, $01, $58, $00, $FF, $00, $00 -;ShopContentsTable: -;;db [id][item][price-low][price-high][max][repl_id][repl_price-low][repl_price-high] -;db $FF, $AF, $50, $00, $00, $FF, $00, $00 -;db $FF, $27, $0A, $00, $00, $FF, $00, $00 -;db $FF, $12, $F4, $01, $01, $2F, $3C, $00 -;db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;!SHOP_PURCHASE_COUNTS = "$7EF3A0" ;-------------------------------------------------------------------------------- UploadVRAMTiles: @@ -326,7 +311,7 @@ Shopkepeer_CallOriginal: JML.l UseImplicitRegIndexedLocalJumpTable ;-------------------------------------------------------------------------------- ;!SHOP_TYPE = "$7F5051" -;!SCRATCH_CAPACITY = "$7F5020" +;!SHOP_CAPACITY = "$7F5020" ;!SCRATCH_TEMP_X = "$7F5021" Sprite_ShopKeeper: LDA.l !SHOP_TYPE : CMP.b #$FF : BNE + : JMP.w Shopkepeer_CallOriginal : + diff --git a/tables.asm b/tables.asm index 75ac004..11b5706 100644 --- a/tables.asm +++ b/tables.asm @@ -1422,9 +1422,10 @@ db $FF, $FF, $FF, $FF org $30C800 ; PC 0x184800 - 0x18487F - max 16 shops ShopTable: ;db [id][roomID-low][roomID-high][doorID][zero][shop_config][shopkeeper_config][pad] -db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -db $00, $12, $01, $6E, $00, $03, $51, $00 -db $01, $10, $01, $75, $00, $03, $50, $00 +;db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF +db $01, $0F, $01, $57, $00, $03, $51, $00 +db $02, $0F, $01, $60, $00, $03, $51, $00 +db $FF, $12, $01, $58, $00, $03, $50, $00 db $02, $0F, $01, $57, $00, $03, $50, $00 db $03, $0F, $01, $60, $00, $03, $50, $00 db $04, $0F, $01, $6F, $00, $03, $50, $00 @@ -1434,35 +1435,16 @@ db $FF, $12, $01, $58, $00, $03, $50, $00 org $30C880 ; PC 0x184880 - 0x184FFF - max 240 entries ShopContentsTable: ;db [id][item][price-low][price-high][max][repl_id][repl_price-low][repl_price-high] -;db $FF, $AF, $50, $00, $00, $FF, $00, $00 -;db $FF, $31, $0A, $00, $00, $FF, $00, $00 -;db $FF, $12, $F4, $01, $01, $2F, $3C, $00 +db $01, $2E, $96, $00, $00, $FF, $00, $00 +db $01, $AF, $50, $00, $00, $FF, $00, $00 +db $01, $31, $32, $00, $00, $FF, $00, $00 +db $02, $2E, $96, $00, $00, $FF, $00, $00 +db $02, $AF, $50, $00, $00, $FF, $00, $00 +db $02, $31, $32, $00, $00, $FF, $00, $00 +db $FF, $2E, $96, $00, $00, $FF, $00, $00 +db $FF, $AF, $50, $00, $00, $FF, $00, $00 +db $FF, $31, $32, $00, $00, $FF, $00, $00 db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF -;db $00, $2E, $96, $00, $00, $FF, $00, $00 -;db $00, $AF, $50, $00, $00, $FF, $00, $00 -;db $00, $31, $32, $00, $00, $FF, $00, $00 -;db $01, $05, $F4, $01, $00, $FF, $00, $00 -;db $01, $AF, $50, $00, $00, $FF, $00, $00 -;db $01, $44, $1E, $00, $00, $FF, $00, $00 -;db $02, $2E, $96, $00, $00, $FF, $00, $00 -;db $02, $AF, $50, $00, $00, $FF, $00, $00 -;db $02, $31, $32, $00, $00, $FF, $00, $00 -;db $03, $2E, $96, $00, $00, $FF, $00, $00 -;db $03, $AF, $50, $00, $00, $FF, $00, $00 -;db $03, $31, $32, $00, $00, $FF, $00, $00 -;db $04, $2E, $96, $00, $00, $FF, $00, $00 -;db $04, $AF, $50, $00, $00, $FF, $00, $00 -;db $04, $31, $32, $00, $00, $FF, $00, $00 -;db $05, $2E, $96, $00, $00, $FF, $00, $00 -;db $05, $AF, $50, $00, $00, $FF, $00, $00 -;db $05, $31, $32, $00, $00, $FF, $00, $00 -;db $06, $2E, $96, $00, $00, $FF, $00, $00 -;db $06, $AF, $50, $00, $00, $FF, $00, $00 -;db $06, $31, $32, $00, $00, $FF, $00, $00 -;db $FF, $2E, $96, $00, $00, $FF, $00, $00 -;db $FF, $AF, $50, $00, $00, $FF, $00, $00 -;db $FF, $31, $32, $00, $00, $FF, $00, $00 -;db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;================================================================================ org $30D000 MSUTrackList: