mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-10-02 00:54:48 +00:00
Added friendly advice on character creation screen - thanks to Brian Wiser for the suggestion.
This commit is contained in:
parent
53e0f8bbb4
commit
f33aa1f143
@ -36,6 +36,7 @@ import gamelib
|
||||
predef clearEncounterZones()#0
|
||||
predef clearPortrait()#0
|
||||
predef clearWindow()#0
|
||||
predef centerStr(str, windowWidth)#0
|
||||
predef countArray(arr)#1
|
||||
predef countList(p)#1
|
||||
predef countListFiltered(p, offset, filterFunc)#1
|
||||
|
@ -1517,6 +1517,17 @@ export def rightJustifyNum(num, rightX)#0
|
||||
rightJustifyStr(convertDec(num), rightX)
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
export def centerStr(str, windowWidth)#0
|
||||
word x
|
||||
x = (windowWidth - calcWidth(str)) >> 1
|
||||
if (x >= 0)
|
||||
rawDisplayStr("^T") // do not use printf variants, since it might overwrite str
|
||||
rawDisplayStr(convert3Dec(x))
|
||||
fin
|
||||
rawDisplayStr(str)
|
||||
end
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Display the party data on the screen
|
||||
export def showParty()#0
|
||||
|
@ -117,7 +117,7 @@ def showInventory(player, page, select)#1
|
||||
n_page = page * INV_ROWS
|
||||
item = player=>p_items
|
||||
totalPages = (countList(item)+INV_ROWS-1) / INV_ROWS
|
||||
showColumnTitle(INV_X-10, "Inventory", page+1, totalPages)
|
||||
showColumnTitle(INV_X-10, "INVENTORY", page+1, totalPages)
|
||||
if page
|
||||
while item and n_item < n_page
|
||||
item = item=>p_nextObj
|
||||
@ -161,7 +161,7 @@ def showDerived(player)#0
|
||||
word weapon, dmg
|
||||
|
||||
//rawDisplayStr("^V023")
|
||||
showColumnTitle(STAT_X, "Stats", 0, 0)
|
||||
showColumnTitle(STAT_X-5, "STATS", 0, 0)
|
||||
|
||||
rawDisplayf2("^T%DLevel %d\n", STAT_X-5, player->b_level)
|
||||
if player->b_skillPoints
|
||||
@ -235,7 +235,7 @@ end
|
||||
// Show aquired skills in lower right panel
|
||||
def showSkills(player)#0
|
||||
word skill
|
||||
byte y, x1, x2
|
||||
byte x1, x2, cursX, cursY
|
||||
|
||||
nSkills = 0
|
||||
|
||||
@ -250,7 +250,7 @@ def showSkills(player)#0
|
||||
x1 = 0
|
||||
x2 = STAT_X - 40
|
||||
fin
|
||||
showColumnTitle(25, "Skills", 0, 0)
|
||||
showColumnTitle(25, "SKILLS", 0, 0)
|
||||
if player->b_aiming; displaySkill(x1, @S_AIMING, @player->b_aiming, TRUE); fin
|
||||
if player->b_handToHand; displaySkill(x1, @S_HAND_TO_HAND, @player->b_handToHand, TRUE); fin
|
||||
if player->b_dodging; displaySkill(x1, @S_DODGING, @player->b_dodging, TRUE); fin
|
||||
@ -261,9 +261,10 @@ def showSkills(player)#0
|
||||
fin
|
||||
skill = skill=>p_nextObj
|
||||
loop
|
||||
cursX, cursY = getCursor()
|
||||
|
||||
// Second column: attributes
|
||||
showColumnTitle(STAT_X-5, "Attributes", 0, 0)
|
||||
showColumnTitle(STAT_X-20, "ATTRIBUTES", 0, 0)
|
||||
rawDisplayStr("^V024") // starting Y
|
||||
displaySkill(x2, @S_INTELLIGENCE, player+b_intelligence, TRUE)
|
||||
displaySkill(x2, @S_STRENGTH, player+b_strength, TRUE)
|
||||
@ -282,6 +283,15 @@ def showSkills(player)#0
|
||||
rawDisplayf2("^T%D%s", x2+SKILL_LABEL_OFF, "Gender")
|
||||
rightJustifyStr(sprintf1(" %c ", player->c_gender), x2+SKILL_JUST_OFF)
|
||||
fin
|
||||
|
||||
if player->b_level == 1 and player->b_skillPoints and cursY < BIGWIN_HEIGHT - 46
|
||||
setCursor(0, BIGWIN_HEIGHT - 42)
|
||||
centerStr(sprintf1("Use keys A-%c to distribute your skill points.", nSkills - 1 + 'A'), BIGWIN_WIDTH)
|
||||
rawDisplayStr("\n")
|
||||
centerStr("To undo a choice use Ctrl-A, Ctrl-B, etc.", BIGWIN_WIDTH)
|
||||
rawDisplayStr("\n")
|
||||
centerStr("When done, press X to see starting items.", BIGWIN_WIDTH)
|
||||
fin
|
||||
end
|
||||
|
||||
// Returns 1 to redisplay everything, 0 if only minor change
|
||||
@ -673,7 +683,9 @@ def _showPlayerSheet(player_num)#1 // funcTbl functions always have to return a
|
||||
if !player; beep; return NULL; fin
|
||||
if redisplay >= 2
|
||||
clearWindow()
|
||||
rawDisplayf1("^Y^I %s ^N\n", player=>s_name)
|
||||
rawDisplayStr("^I")
|
||||
centerStr(sprintf1(" %s ", player=>s_name), BIGWIN_WIDTH)
|
||||
rawDisplayStr("^N")
|
||||
redisplay = 1
|
||||
totalItems = countList(player=>p_items)
|
||||
if mode == 'I'
|
||||
|
Loading…
Reference in New Issue
Block a user