Added friendly advice on character creation screen - thanks to Brian Wiser for the suggestion.

This commit is contained in:
Martin Haye 2017-09-09 09:25:14 -07:00
parent 53e0f8bbb4
commit f33aa1f143
3 changed files with 30 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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'