mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-08-22 06:29:18 +00:00
Refactored item display so party and store can share it.
This commit is contained in:
parent
cc725f0657
commit
cc8fa3bb7d
@ -35,10 +35,15 @@ const CHAR_WND_STAT_X = 30
|
|||||||
const CHAR_WND_STATLBL_X = 38
|
const CHAR_WND_STATLBL_X = 38
|
||||||
const CHAR_WND_INV_X = 18
|
const CHAR_WND_INV_X = 18
|
||||||
|
|
||||||
|
const STATS_COL_1 = 45
|
||||||
|
const STATS_COL_2 = 140
|
||||||
|
|
||||||
// Exported functions go here. First a predef for each one, then a table with function pointers
|
// Exported functions go here. First a predef for each one, then a table with function pointers
|
||||||
// in the same order as the constants are defined in the header.
|
// in the same order as the constants are defined in the header.
|
||||||
predef _party_doPlayerSheet, _party_benchPlayer, _party_unbenchPlayer
|
predef _party_doPlayerSheet, _party_benchPlayer, _party_unbenchPlayer
|
||||||
|
predef _party_displayItemStats, _party_displayItemName
|
||||||
word[] funcTbl = @_party_doPlayerSheet, @_party_benchPlayer, @_party_unbenchPlayer
|
word[] funcTbl = @_party_doPlayerSheet, @_party_benchPlayer, @_party_unbenchPlayer
|
||||||
|
word = @_party_displayItemStats, @_party_displayItemName
|
||||||
|
|
||||||
// Other global variables here
|
// Other global variables here
|
||||||
|
|
||||||
@ -489,6 +494,151 @@ def _party_unbenchPlayer()
|
|||||||
fin
|
fin
|
||||||
end
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def tabTo(cursorX)
|
||||||
|
rawDisplayf1("^T%D", cursorX)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def formatDice(encoded)
|
||||||
|
byte nDice, dieSize, add
|
||||||
|
nDice = encoded >> 12
|
||||||
|
dieSize = (encoded >> 8) & $F
|
||||||
|
add = encoded & $F
|
||||||
|
rawDisplayf2("%dd%d", nDice, dieSize)
|
||||||
|
if add; rawDisplayf1("+%d", add); fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def formatNum(num)
|
||||||
|
rawDisplayf1("%d", num)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def formatStr(str)
|
||||||
|
rawDisplayStr(str)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def formatAttack(code)
|
||||||
|
if !code; return; fin
|
||||||
|
if code == 1
|
||||||
|
rawDisplayStr("single")
|
||||||
|
elsif code == 2
|
||||||
|
rawDisplayStr("double")
|
||||||
|
else
|
||||||
|
rawDisplayf1("%d-shot", code)
|
||||||
|
fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def byteField(pItem, field)
|
||||||
|
if pItem
|
||||||
|
return ^(pItem + field)
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def wordField(pItem, field)
|
||||||
|
if pItem
|
||||||
|
return *(pItem + field)
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def displayTwoCol(fieldName, pItem1, pItem2, field, fieldFunc, formatFunc)
|
||||||
|
word val1, val2
|
||||||
|
val1 = fieldFunc(pItem1, field)
|
||||||
|
val2 = fieldFunc(pItem2, field)
|
||||||
|
if val1 or val2
|
||||||
|
rawDisplayf1("\n%s", fieldName)
|
||||||
|
if val1; tabTo(STATS_COL_1); formatFunc(val1); fin
|
||||||
|
if val2; tabTo(STATS_COL_2); formatFunc(val2); fin
|
||||||
|
fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def displayWeaponStats(pItem1, pItem2)
|
||||||
|
displayTwoCol("Uses", pItem1, pItem2, b_maxUses, @byteField, @formatNum)
|
||||||
|
displayTwoCol("Ammo", pItem1, pItem2, s_ammoKind, @wordField, @formatStr)
|
||||||
|
displayTwoCol("Clip", pItem1, pItem2, b_clipSize, @byteField, @formatNum)
|
||||||
|
displayTwoCol("Melee", pItem1, pItem2, r_meleeDmg, @wordField, @formatDice)
|
||||||
|
displayTwoCol("Proj", pItem1, pItem2, r_projectileDmg, @wordField, @formatDice)
|
||||||
|
displayTwoCol("Attack", pItem1, pItem2, ba_attacks+0, @byteField, @formatAttack)
|
||||||
|
displayTwoCol("Att 2", pItem1, pItem2, ba_attacks+1, @byteField, @formatAttack)
|
||||||
|
displayTwoCol("Att 3", pItem1, pItem2, ba_attacks+2, @byteField, @formatAttack)
|
||||||
|
displayTwoCol("Range", pItem1, pItem2, b_weaponRange, @byteField, @formatNum)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def displayArmorStats(pItem1, pItem2)
|
||||||
|
displayTwoCol("Uses", pItem1, pItem2, b_maxUses, @byteField, @formatNum)
|
||||||
|
displayTwoCol("Protec", pItem1, pItem2, b_armorValue, @byteField, @formatNum)
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def displayStuffStats(pItem1, pItem2)
|
||||||
|
// Nothing special
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def _party_displayItemStats(pItem1, pItem2)
|
||||||
|
word pMod1, pMod2
|
||||||
|
|
||||||
|
// First, show the item type and name
|
||||||
|
when pItem1->t_type
|
||||||
|
is TYPE_ITEM; rawDisplayStr("\nItem"); break
|
||||||
|
is TYPE_WEAPON; rawDisplayStr("\nWeapon"); break
|
||||||
|
is TYPE_ARMOR; rawDisplayStr("\nArmor"); break
|
||||||
|
is TYPE_STUFF; rawDisplayStr("\nSupply"); break
|
||||||
|
otherwise fatal("tItem")
|
||||||
|
wend
|
||||||
|
tabTo(STATS_COL_1); _party_displayItemName(pItem1)
|
||||||
|
if pItem2
|
||||||
|
if pItem1->t_type <> pItem2->t_type; fatal("tMatch"); fin
|
||||||
|
tabTo(STATS_COL_2); _party_displayItemName(pItem2)
|
||||||
|
fin
|
||||||
|
|
||||||
|
// Type-specific attributes
|
||||||
|
when pItem1->t_type
|
||||||
|
is TYPE_WEAPON; displayWeaponStats(pItem1, pItem2); break
|
||||||
|
is TYPE_ARMOR; displayArmorStats(pItem1, pItem2); break
|
||||||
|
is TYPE_STUFF; displayStuffStats(pItem1, pItem2); break
|
||||||
|
wend
|
||||||
|
|
||||||
|
// If either item has modifiers, show them
|
||||||
|
pMod1 = pItem1=>p_modifiers
|
||||||
|
pMod2 = NULL
|
||||||
|
if pItem2; pMod2 = pItem2=>p_modifiers; fin
|
||||||
|
if pMod1 or pMod2
|
||||||
|
rawDisplayStr("\nSpecial:")
|
||||||
|
while pMod1 or pMod2
|
||||||
|
if pMod1
|
||||||
|
rawDisplayf3("^T%D%d %s", STATS_COL_1, pMod1=>w_modValue, pMod1=>s_name)
|
||||||
|
pMod1 = pMod1=>p_nextObj
|
||||||
|
fin
|
||||||
|
if pMod2
|
||||||
|
rawDisplayf3("^T%D%d %s", STATS_COL_2, pMod2=>w_modValue, pMod2=>s_name)
|
||||||
|
pMod2 = pMod2=>p_nextObj
|
||||||
|
fin
|
||||||
|
loop
|
||||||
|
fin
|
||||||
|
end
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
def _party_displayItemName(pItem)
|
||||||
|
setPlural(FALSE)
|
||||||
|
if pItem->t_type == TYPE_STUFF; setPlural(pItem=>w_count <> 1); fin
|
||||||
|
if pItem=>w_count >= 1
|
||||||
|
rawDisplayf1("%d ", pItem=>w_count)
|
||||||
|
fin
|
||||||
|
rawDisplayf1("%s", pItem=>s_name) // use displayf to get proper plural processing
|
||||||
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Boilerplate module initialization code
|
// Boilerplate module initialization code
|
||||||
return @funcTbl
|
return @funcTbl
|
||||||
|
@ -12,3 +12,5 @@
|
|||||||
const party_showPlayerSheet = 0
|
const party_showPlayerSheet = 0
|
||||||
const party_benchPlayer = 2
|
const party_benchPlayer = 2
|
||||||
const party_unbenchPlayer = 4
|
const party_unbenchPlayer = 4
|
||||||
|
const party_displayItemStats = 6
|
||||||
|
const party_displayItemName = 8
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
include "gamelib.plh"
|
include "gamelib.plh"
|
||||||
include "playtype.plh"
|
include "playtype.plh"
|
||||||
include "globalDefs.plh"
|
include "globalDefs.plh"
|
||||||
|
include "party.plh"
|
||||||
include "gen_modules.plh"
|
include "gen_modules.plh"
|
||||||
include "gen_items.plh"
|
include "gen_items.plh"
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ const STATS_COL_2 = 140
|
|||||||
predef _buyFromStore, _sellToStore
|
predef _buyFromStore, _sellToStore
|
||||||
word[] funcTbl = @_buyFromStore, @_sellToStore
|
word[] funcTbl = @_buyFromStore, @_sellToStore
|
||||||
|
|
||||||
word pItemsModule
|
word pItemsModule, pPartyModule
|
||||||
const MAX_PAGE_ITEMS = 20 // should be plenty
|
const MAX_PAGE_ITEMS = 20 // should be plenty
|
||||||
word pageItems[MAX_PAGE_ITEMS]
|
word pageItems[MAX_PAGE_ITEMS]
|
||||||
word pagePrices[MAX_PAGE_ITEMS]
|
word pagePrices[MAX_PAGE_ITEMS]
|
||||||
@ -104,15 +105,17 @@ def calcMarkup(price, ratio)
|
|||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
def loadItems()
|
def loadExtraModules()
|
||||||
mmgr(START_LOAD, 1) // code is in partition 1
|
mmgr(START_LOAD, 1) // code is in partition 1
|
||||||
pItemsModule = mmgr(QUEUE_LOAD, MOD_GEN_ITEMS<<8 | RES_TYPE_MODULE)
|
pItemsModule = mmgr(QUEUE_LOAD, MOD_GEN_ITEMS<<8 | RES_TYPE_MODULE)
|
||||||
|
pPartyModule = mmgr(QUEUE_LOAD, MOD_PARTY<<8 | RES_TYPE_MODULE)
|
||||||
mmgr(FINISH_LOAD, 0)
|
mmgr(FINISH_LOAD, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
def unloadItems()
|
def unloadExtraModules()
|
||||||
mmgr(FREE_MEMORY, pItemsModule)
|
mmgr(FREE_MEMORY, pItemsModule)
|
||||||
|
mmgr(FREE_MEMORY, pPartyModule)
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -126,20 +129,10 @@ def displayBuyTitle(pageNum, nPages)
|
|||||||
rawDisplayStr(" ^N\n^V014^LBrowse^T046Price^T085Item^L")
|
rawDisplayStr(" ^N\n^V014^LBrowse^T046Price^T085Item^L")
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayItemName(pItem)
|
|
||||||
setPlural(FALSE)
|
|
||||||
if pItem->t_type == TYPE_STUFF; setPlural(pItem=>w_count <> 1); fin
|
|
||||||
if pItem=>w_count >= 1
|
|
||||||
rawDisplayf1("%d ", pItem=>w_count)
|
|
||||||
fin
|
|
||||||
rawDisplayf1("%s", pItem=>s_name) // use displayf to get proper plural processing
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
def displayItemLine(num)
|
def displayItemLine(num)
|
||||||
rawDisplayf2("\n %c.^T046%d^T085", num + 'A', pagePrices[num])
|
rawDisplayf2("\n %c.^T046%d^T085", num + 'A', pagePrices[num])
|
||||||
displayItemName(pageItems[num])
|
pPartyModule()=>party_displayItemName(pageItems[num])
|
||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -169,145 +162,13 @@ def displayBuyPage(pItemTbl, markupRatio, pageNum, nPages)
|
|||||||
end
|
end
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
def tabTo(cursorX)
|
def displayItemBrowse(pItem1, price, pItem2)
|
||||||
rawDisplayf1("^T%D", cursorX)
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def formatDice(encoded)
|
|
||||||
byte nDice, dieSize, add
|
|
||||||
nDice = encoded >> 12
|
|
||||||
dieSize = (encoded >> 8) & $F
|
|
||||||
add = encoded & $F
|
|
||||||
rawDisplayf2("%dd%d", nDice, dieSize)
|
|
||||||
if add; rawDisplayf1("+%d", add); fin
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def formatNum(num)
|
|
||||||
rawDisplayf1("%d", num)
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def formatStr(str)
|
|
||||||
rawDisplayStr(str)
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def formatAttack(code)
|
|
||||||
if !code; return; fin
|
|
||||||
if code == 1
|
|
||||||
rawDisplayStr("single")
|
|
||||||
elsif code == 2
|
|
||||||
rawDisplayStr("double")
|
|
||||||
else
|
|
||||||
rawDisplayf1("%d-shot", code)
|
|
||||||
fin
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def byteField(pItem, field)
|
|
||||||
if pItem
|
|
||||||
return ^(pItem + field)
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
fin
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def wordField(pItem, field)
|
|
||||||
if pItem
|
|
||||||
return *(pItem + field)
|
|
||||||
else
|
|
||||||
return 0
|
|
||||||
fin
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayTwoCol(fieldName, pItem1, pItem2, field, fieldFunc, formatFunc)
|
|
||||||
word val1, val2
|
|
||||||
val1 = fieldFunc(pItem1, field)
|
|
||||||
val2 = fieldFunc(pItem2, field)
|
|
||||||
if val1 or val2
|
|
||||||
rawDisplayf1("\n%s", fieldName)
|
|
||||||
if val1; tabTo(STATS_COL_1); formatFunc(val1); fin
|
|
||||||
if val2; tabTo(STATS_COL_2); formatFunc(val2); fin
|
|
||||||
fin
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayWeaponStats(pItem1, pItem2)
|
|
||||||
displayTwoCol("Uses", pItem1, pItem2, b_maxUses, @byteField, @formatNum)
|
|
||||||
displayTwoCol("Ammo", pItem1, pItem2, s_ammoKind, @wordField, @formatStr)
|
|
||||||
displayTwoCol("Clip", pItem1, pItem2, b_clipSize, @byteField, @formatNum)
|
|
||||||
displayTwoCol("Melee", pItem1, pItem2, r_meleeDmg, @wordField, @formatDice)
|
|
||||||
displayTwoCol("Proj", pItem1, pItem2, r_projectileDmg, @wordField, @formatDice)
|
|
||||||
displayTwoCol("Attack", pItem1, pItem2, ba_attacks+0, @byteField, @formatAttack)
|
|
||||||
displayTwoCol("Att 2", pItem1, pItem2, ba_attacks+1, @byteField, @formatAttack)
|
|
||||||
displayTwoCol("Att 3", pItem1, pItem2, ba_attacks+2, @byteField, @formatAttack)
|
|
||||||
displayTwoCol("Range", pItem1, pItem2, b_weaponRange, @byteField, @formatNum)
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayArmorStats(pItem1, pItem2)
|
|
||||||
displayTwoCol("Uses", pItem1, pItem2, b_maxUses, @byteField, @formatNum)
|
|
||||||
displayTwoCol("Protec", pItem1, pItem2, b_armorValue, @byteField, @formatNum)
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayStuffStats(pItem1, pItem2)
|
|
||||||
// Nothing special
|
|
||||||
end
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
def displayItemStats(pItem1, price, pItem2)
|
|
||||||
word pMod1, pMod2
|
|
||||||
|
|
||||||
clearWindow()
|
clearWindow()
|
||||||
rawDisplayf1("^T108^I Browse ^N\n\n^T%D^LMerchandise^L", STATS_COL_1)
|
rawDisplayf1("^T108^I Browse ^N\n\n^T%D^LMerchandise^L", STATS_COL_1)
|
||||||
if pItem2
|
if pItem2
|
||||||
rawDisplayf2("^T%D^L%s^L", STATS_COL_2, pMatchPlayer=>s_name)
|
rawDisplayf2("^T%D^L%s^L", STATS_COL_2, pMatchPlayer=>s_name)
|
||||||
fin
|
fin
|
||||||
|
pPartyModule()=>party_displayItemStats(pItem1, pItem2)
|
||||||
// First, show the item type and name
|
|
||||||
when pItem1->t_type
|
|
||||||
is TYPE_ITEM; rawDisplayStr("\nItem"); break
|
|
||||||
is TYPE_WEAPON; rawDisplayStr("\nWeapon"); break
|
|
||||||
is TYPE_ARMOR; rawDisplayStr("\nArmor"); break
|
|
||||||
is TYPE_STUFF; rawDisplayStr("\nSupply"); break
|
|
||||||
otherwise fatal("tItem")
|
|
||||||
wend
|
|
||||||
tabTo(STATS_COL_1); displayItemName(pItem1)
|
|
||||||
if pItem2
|
|
||||||
if pItem1->t_type <> pItem2->t_type; fatal("tMatch"); fin
|
|
||||||
tabTo(STATS_COL_2); displayItemName(pItem2)
|
|
||||||
fin
|
|
||||||
|
|
||||||
// Type-specific attributes
|
|
||||||
when pItem1->t_type
|
|
||||||
is TYPE_WEAPON; displayWeaponStats(pItem1, pItem2); break
|
|
||||||
is TYPE_ARMOR; displayArmorStats(pItem1, pItem2); break
|
|
||||||
is TYPE_STUFF; displayStuffStats(pItem1, pItem2); break
|
|
||||||
wend
|
|
||||||
|
|
||||||
// If either item has modifiers, show them
|
|
||||||
pMod1 = pItem1=>p_modifiers
|
|
||||||
pMod2 = NULL
|
|
||||||
if pItem2; pItem2=>p_modifiers; fin
|
|
||||||
if pMod1 or pMod2
|
|
||||||
rawDisplayStr("\nSpecial:")
|
|
||||||
while pMod1 or pMod2
|
|
||||||
if pMod1
|
|
||||||
rawDisplayf3("^T%D%d %s", STATS_COL_1, pMod1=>w_modValue, pMod1=>s_name)
|
|
||||||
pMod1 = pMod1=>p_nextObj
|
|
||||||
fin
|
|
||||||
if pMod2
|
|
||||||
rawDisplayf3("^T%D%d %s", STATS_COL_2, pMod2=>w_modValue, pMod2=>s_name)
|
|
||||||
pMod2 = pMod2=>p_nextObj
|
|
||||||
fin
|
|
||||||
loop
|
|
||||||
fin
|
|
||||||
|
|
||||||
rawDisplayf2("\n\nPrice^T%D%d", STATS_COL_1, price)
|
rawDisplayf2("\n\nPrice^T%D%d", STATS_COL_1, price)
|
||||||
rawDisplayf2("\nAvail^T%D%d", STATS_COL_1, global=>w_gold)
|
rawDisplayf2("\nAvail^T%D%d", STATS_COL_1, global=>w_gold)
|
||||||
end
|
end
|
||||||
@ -369,7 +230,7 @@ def browseItem(num)
|
|||||||
price = pagePrices[num]
|
price = pagePrices[num]
|
||||||
compSkip = 0
|
compSkip = 0
|
||||||
while TRUE
|
while TRUE
|
||||||
displayItemStats(pItem, price, matchEquipped(pItem, compSkip))
|
displayItemBrowse(pItem, price, matchEquipped(pItem, compSkip))
|
||||||
displayItemMenu(price, compSkip or matchEquipped(pItem, 1+compSkip))
|
displayItemMenu(price, compSkip or matchEquipped(pItem, 1+compSkip))
|
||||||
sel = getUpperKey()
|
sel = getUpperKey()
|
||||||
rawDisplayf1(" %c\n", sel)
|
rawDisplayf1(" %c\n", sel)
|
||||||
@ -424,7 +285,7 @@ def _buyFromStore(storeCode, profitPercent)
|
|||||||
word pItemTbl, choice
|
word pItemTbl, choice
|
||||||
byte nItemsOnPage, pageNum, nPages, redisplay
|
byte nItemsOnPage, pageNum, nPages, redisplay
|
||||||
|
|
||||||
loadItems()
|
loadExtraModules()
|
||||||
pItemTbl = pItemsModule()=>items_forStoreCode(storeCode)
|
pItemTbl = pItemsModule()=>items_forStoreCode(storeCode)
|
||||||
|
|
||||||
setOversizeWindow()
|
setOversizeWindow()
|
||||||
@ -451,7 +312,7 @@ def _buyFromStore(storeCode, profitPercent)
|
|||||||
fin
|
fin
|
||||||
loop
|
loop
|
||||||
|
|
||||||
unloadItems()
|
unloadExtraModules()
|
||||||
mmgr(HEAP_COLLECT, 0)
|
mmgr(HEAP_COLLECT, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -523,7 +384,7 @@ def sellItem(num)
|
|||||||
quantity = 1
|
quantity = 1
|
||||||
if pItem->t_type == TYPE_STUFF and pItem=>w_count >= 2
|
if pItem->t_type == TYPE_STUFF and pItem=>w_count >= 2
|
||||||
rawDisplayStr("^T108^I Sell ^N\n\nSelling ")
|
rawDisplayStr("^T108^I Sell ^N\n\nSelling ")
|
||||||
displayItemName(pItem)
|
pPartyModule()=>party_displayItemName(pItem)
|
||||||
rawDisplayStr("\n\n")
|
rawDisplayStr("\n\n")
|
||||||
quantity = askQuantity(pItem=>w_count)
|
quantity = askQuantity(pItem=>w_count)
|
||||||
if quantity == 0; return; fin
|
if quantity == 0; return; fin
|
||||||
|
Loading…
Reference in New Issue
Block a user