Bench/unbench now working.

This commit is contained in:
Martin Haye 2017-02-20 08:02:55 -08:00
parent eb9691cb20
commit e2b5ccf375
3 changed files with 17 additions and 10 deletions

View File

@ -30,6 +30,7 @@ import gamelib
predef addPlayerToParty, removePlayerFromParty, partyHasPlayer, loadFrameImg, loadMainFrameImg predef addPlayerToParty, removePlayerFromParty, partyHasPlayer, loadFrameImg, loadMainFrameImg
predef scriptSwapTile, setIntimateMode, fontCmd, setIntimateMode predef scriptSwapTile, setIntimateMode, fontCmd, setIntimateMode
predef callGlobalFunc, getCharResponse, memcpy, checkEncounter, finalWin, addUnique predef callGlobalFunc, getCharResponse, memcpy, checkEncounter, finalWin, addUnique
predef benchPlayer, unbenchPlayer
// This pointer is the root of all heap-tracked (and garbage collected) objects. // This pointer is the root of all heap-tracked (and garbage collected) objects.
// See playtype.plh for definitions of all the datastructures and how they interconnect. // See playtype.plh for definitions of all the datastructures and how they interconnect.

View File

@ -374,11 +374,12 @@ def selectPlayer(players)
player = players player = players
n_item = 0 n_item = 0
while player while player
if player->b_playerFlags & PLAYER_FLAG_NPC; continue; fin if player->b_playerFlags & PLAYER_FLAG_NPC
displayf1("\n%c)", 'A' + n_item) displayf1("\n%c)", 'A' + n_item)
rawDisplayStr("^T018") rawDisplayStr("^T018")
displayStr(player=>s_name) displayStr(player=>s_name)
n_item++ n_item++
fin
player = player=>p_nextObj player = player=>p_nextObj
loop loop
@ -388,14 +389,19 @@ def selectPlayer(players)
fin fin
// Then get a selection // Then get a selection
rawDisplayStr("\n^T032Which character?") rawDisplayStr("\nWhich character?")
n_item = getUpperKey() - 'A' n_item = getUpperKey() - 'A'
player = players player = players
while n_item > 0 and player while player
if player->b_playerFlags & PLAYER_FLAG_NPC
if n_item == 0
break
fin
n_item--
fin
player = player=>p_nextObj player = player=>p_nextObj
n_item--
loop loop
return player return player
end end
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////
// Garbage collection pointer offsets within each type // Garbage collection pointer offsets within each type
byte typeTbl_Global[] = Global, p_players, p_enemyGroups, p_combatFirst, p_encounterZones, s_mapName, p_gameFlags, 0 byte typeTbl_Global[] = Global, p_players, p_benched, p_enemyGroups, p_combatFirst, p_encounterZones, s_mapName, p_gameFlags, 0
byte typeTbl_Player[] = Player, p_nextObj, s_name, p_combatNext, p_skills, p_items, p_effects, 0 byte typeTbl_Player[] = Player, p_nextObj, s_name, p_combatNext, p_skills, p_items, p_effects, 0
byte typeTbl_Modifier[] = Modifier, p_nextObj, s_name, 0 byte typeTbl_Modifier[] = Modifier, p_nextObj, s_name, 0
byte typeTbl_Effect[] = Effect, p_nextObj, s_name, 0 byte typeTbl_Effect[] = Effect, p_nextObj, s_name, 0