diff options
author | Paul Gilbert | 2015-02-10 19:28:45 -0500 |
---|---|---|
committer | Paul Gilbert | 2015-02-10 19:28:45 -0500 |
commit | e59617834503da077c27c5dff37f620bb1e9f0c1 (patch) | |
tree | 2cdddc9244c4ffb66b18a56a3a9ab4ac91e88b5c /engines/xeen | |
parent | 8256f7c8dfcdefe7da352fd36b42dc0931a111f8 (diff) | |
download | scummvm-rg350-e59617834503da077c27c5dff37f620bb1e9f0c1.tar.gz scummvm-rg350-e59617834503da077c27c5dff37f620bb1e9f0c1.tar.bz2 scummvm-rg350-e59617834503da077c27c5dff37f620bb1e9f0c1.zip |
XEEN: Refactored drawing the party icons into a separate class
Diffstat (limited to 'engines/xeen')
-rw-r--r-- | engines/xeen/dialogs_dismiss.cpp | 1 | ||||
-rw-r--r-- | engines/xeen/dialogs_exchange.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/dialogs_items.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/dialogs_party.cpp | 9 | ||||
-rw-r--r-- | engines/xeen/dialogs_party.h | 2 | ||||
-rw-r--r-- | engines/xeen/dialogs_query.cpp | 5 | ||||
-rw-r--r-- | engines/xeen/interface.cpp | 193 | ||||
-rw-r--r-- | engines/xeen/interface.h | 33 | ||||
-rw-r--r-- | engines/xeen/interface_map.cpp | 15 | ||||
-rw-r--r-- | engines/xeen/interface_map.h | 1 | ||||
-rw-r--r-- | engines/xeen/party.cpp | 4 | ||||
-rw-r--r-- | engines/xeen/resources.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/resources.h | 4 | ||||
-rw-r--r-- | engines/xeen/scripts.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/town.cpp | 10 |
15 files changed, 148 insertions, 137 deletions
diff --git a/engines/xeen/dialogs_dismiss.cpp b/engines/xeen/dialogs_dismiss.cpp index c387c28019..b512b66806 100644 --- a/engines/xeen/dialogs_dismiss.cpp +++ b/engines/xeen/dialogs_dismiss.cpp @@ -73,7 +73,6 @@ void Dismiss::execute() { Character tempChar = party._activeParty[_buttonValue]; int charIndex = party._partyMembers[_buttonValue]; - intf.sortFaces(); // party.sortParty(); // TODO diff --git a/engines/xeen/dialogs_exchange.cpp b/engines/xeen/dialogs_exchange.cpp index c6a4522c88..0418b4037c 100644 --- a/engines/xeen/dialogs_exchange.cpp +++ b/engines/xeen/dialogs_exchange.cpp @@ -65,7 +65,7 @@ void ExchangeDialog::execute(Character *&c, int &charIndex) { } w.close(); - intf.charIconsPrint(true); + intf.drawParty(true); intf.highlightChar(charIndex); } diff --git a/engines/xeen/dialogs_items.cpp b/engines/xeen/dialogs_items.cpp index 002a8fb946..7b4e23eb01 100644 --- a/engines/xeen/dialogs_items.cpp +++ b/engines/xeen/dialogs_items.cpp @@ -505,7 +505,7 @@ Character *ItemsDialog::execute(Character *c, ItemsMode mode) { } } - intf.charIconsPrint(true); + intf.drawParty(true); if (updateStock) charData2BlackData(); diff --git a/engines/xeen/dialogs_party.cpp b/engines/xeen/dialogs_party.cpp index c8689f0656..9202187b6a 100644 --- a/engines/xeen/dialogs_party.cpp +++ b/engines/xeen/dialogs_party.cpp @@ -220,7 +220,6 @@ void PartyDialog::setupBackground() { */ void PartyDialog::setupFaces(int firstDisplayChar, Common::Array<int> xeenSideChars, bool updateFlag) { Party &party = *_vm->_party; - Resources &res = *_vm->_resources; Common::String charNames[4]; Common::String charRaces[4]; Common::String charSex[4]; @@ -229,7 +228,7 @@ void PartyDialog::setupFaces(int firstDisplayChar, Common::Array<int> xeenSideCh int charId; for (posIndex = 0; posIndex < 4; ++posIndex) { - charId = (firstDisplayChar + posIndex) >= xeenSideChars.size() ? -1 : + charId = (firstDisplayChar + posIndex) >= (int)xeenSideChars.size() ? -1 : xeenSideChars[firstDisplayChar + posIndex]; bool isInParty = party.isInParty(charId); @@ -248,11 +247,11 @@ void PartyDialog::setupFaces(int firstDisplayChar, Common::Array<int> xeenSideCh charClasses[posIndex] = CLASS_NAMES[ps._class]; } - charIconsPrint(updateFlag); + drawParty(updateFlag); // Set up the sprite set to use for each face for (int posIndex = 0; posIndex < 4; ++posIndex) { - if ((firstDisplayChar + posIndex) >= xeenSideChars.size()) + if ((firstDisplayChar + posIndex) >= (int)xeenSideChars.size()) _faceDrawStructs[posIndex]._sprites = nullptr; else _faceDrawStructs[posIndex]._sprites = party._roster[posIndex]._faceSprites; @@ -268,7 +267,7 @@ void PartyDialog::setupFaces(int firstDisplayChar, Common::Array<int> xeenSideCh void PartyDialog::startingCharChanged(Common::Array<int> &charList, int firstDisplayChar) { Party &party = *_vm->_party; - + // TODO } } // End of namespace Xeen diff --git a/engines/xeen/dialogs_party.h b/engines/xeen/dialogs_party.h index 4450f3f6cd..327c29953b 100644 --- a/engines/xeen/dialogs_party.h +++ b/engines/xeen/dialogs_party.h @@ -47,7 +47,7 @@ private: void setupBackground(); - void charIconsPrint(bool updateFlag); + void drawParty(bool updateFlag); void setupFaces(int firstDisplayChar, Common::Array<int> xeenSideChars, bool updateFlag); diff --git a/engines/xeen/dialogs_query.cpp b/engines/xeen/dialogs_query.cpp index f226521a94..c982b8acd2 100644 --- a/engines/xeen/dialogs_query.cpp +++ b/engines/xeen/dialogs_query.cpp @@ -97,11 +97,12 @@ bool YesNo::show(XeenEngine *vm, bool type, bool townFlag) { } bool YesNo::execute(bool type, bool townFlag) { - Screen &screen = *_vm->_screen; EventsManager &events = *_vm->_events; Interface &intf = *_vm->_interface; Map &map = *_vm->_map; Party &party = *_vm->_party; + Resources &res = *_vm->_resources; + Screen &screen = *_vm->_screen; Town &town = *_vm->_town; SpriteResource confirmSprites; int numFrames; @@ -112,7 +113,7 @@ bool YesNo::execute(bool type, bool townFlag) { if (!type) { confirmSprites.load("confirm.icn"); - intf._globalSprites.draw(screen, 7, Common::Point(232, 74)); + res._globalSprites.draw(screen, 7, Common::Point(232, 74)); confirmSprites.draw(screen, 0, Common::Point(235, 75)); confirmSprites.draw(screen, 2, Common::Point(260, 75)); screen._windows[34].update(); diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp index 15f19c57be..7c9e8a323a 100644 --- a/engines/xeen/interface.cpp +++ b/engines/xeen/interface.cpp @@ -33,9 +33,96 @@ namespace Xeen { -Interface::Interface(XeenEngine *vm) : ButtonContainer(), InterfaceMap(vm), _vm(vm) { - _buttonsLoaded = false; +PartyDrawer::PartyDrawer(XeenEngine *vm): _vm(vm) { + _restoreSprites.load("restorex.icn"); + _hpSprites.load("hpbars.icn"); + _dseFace.load("dse.fac"); _hiliteChar = -1; +} + +void PartyDrawer::drawParty(bool updateFlag) { + Party &party = *_vm->_party; + Resources &res = *_vm->_resources; + Screen &screen = *_vm->_screen; + bool inCombat = _vm->_mode == MODE_COMBAT; + _restoreSprites.draw(screen, 0, Common::Point(8, 149)); + + // Handle drawing the party faces + uint partyCount = inCombat ? party._combatParty.size() : party._activeParty.size(); + for (uint idx = 0; idx < partyCount; ++idx) { + Character &ps = inCombat ? *party._combatParty[idx] : party._activeParty[idx]; + Condition charCondition = ps.worstCondition(); + int charFrame = FACE_CONDITION_FRAMES[charCondition]; + + SpriteResource *sprites = (charFrame > 4) ? &_dseFace : ps._faceSprites; + if (charFrame > 4) + charFrame -= 5; + + sprites->draw(screen, charFrame, Common::Point(CHAR_FACES_X[idx], 150)); + } + + for (uint idx = 0; idx < partyCount; ++idx) { + Character &ps = inCombat ? *party._combatParty[idx] : party._activeParty[idx]; + + // Draw the Hp bar + int maxHp = ps.getMaxHP(); + int frame; + if (ps._currentHp < 1) + frame = 4; + else if (ps._currentHp > maxHp) + frame = 3; + else if (ps._currentHp == maxHp) + frame = 0; + else if (ps._currentHp < (maxHp / 4)) + frame = 2; + else + frame = 1; + + _hpSprites.draw(screen, frame, Common::Point(HP_BARS_X[idx], 182)); + } + + if (_hiliteChar != -1) + res._globalSprites.draw(screen, 8, Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); + + if (updateFlag) + screen._windows[33].update(); +} + +void PartyDrawer::highlightChar(int charId) { + Resources &res = *_vm->_resources; + Screen &screen = *_vm->_screen; + + if (charId != _hiliteChar && _hiliteChar != HILIGHT_CHAR_DISABLED) { + // Handle deselecting any previusly selected char + if (_hiliteChar != -1) { + res._globalSprites.draw(screen, 9 + _hiliteChar, + Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); + } + + // Highlight new character + res._globalSprites.draw(screen, 8, Common::Point(CHAR_FACES_X[charId] - 1, 149)); + _hiliteChar = charId; + screen._windows[33].update(); + } +} + +void PartyDrawer::unhighlightChar() { + Resources &res = *_vm->_resources; + Screen &screen = *_vm->_screen; + + if (_hiliteChar != -1) { + res._globalSprites.draw(screen, _hiliteChar + 9, + Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); + _hiliteChar = -1; + screen._windows[33].update(); + } +} + +/*------------------------------------------------------------------------*/ + +Interface::Interface(XeenEngine *vm) : ButtonContainer(), InterfaceMap(vm), + PartyDrawer(vm), _vm(vm) { + _buttonsLoaded = false; _intrIndex1 = 0; _steppingFX = 0; @@ -65,75 +152,15 @@ void Interface::initDrawStructs() { void Interface::setup() { InterfaceMap::setup(); - _restoreSprites.load("restorex.icn"); - _hpSprites.load("hpbars.icn"); _uiSprites.load("inn.icn"); - _dseFace.load("dse.fac"); Party &party = *_vm->_party; party.loadActiveParty(); party._newDay = party._minutes >= 300; } -void Interface::charIconsPrint(bool updateFlag) { - Screen &screen = *_vm->_screen; - bool stateFlag = _vm->_mode == MODE_COMBAT; - _restoreSprites.draw(screen, 0, Common::Point(8, 149)); - - // Handle drawing the party faces - for (int idx = 0; idx < (stateFlag ? _vm->_party->_combatPartyCount : - _vm->_party->_partyCount); ++idx) { - int charIndex = stateFlag ? _combatCharIds[idx] : idx; - Character &ps = _vm->_party->_activeParty[charIndex]; - Condition charCondition = ps.worstCondition(); - int charFrame = FACE_CONDITION_FRAMES[charCondition]; - - SpriteResource *sprites = (charFrame > 4) ? &_dseFace : ps._faceSprites; - if (charFrame > 4) - charFrame -= 5; - - sprites->draw(screen, charFrame, Common::Point(CHAR_FACES_X[idx], 150)); - } - - if (!_hpSprites.empty()) { - for (int idx = 0; idx < (stateFlag ? _vm->_party->_combatPartyCount : - _vm->_party->_partyCount); ++idx) { - int charIndex = stateFlag ? _combatCharIds[idx] : idx; - Character &ps = _vm->_party->_activeParty[charIndex]; - - // Draw the Hp bar - int maxHp = ps.getMaxHP(); - int frame; - if (ps._currentHp < 1) - frame = 4; - else if (ps._currentHp > maxHp) - frame = 3; - else if (ps._currentHp == maxHp) - frame = 0; - else if (ps._currentHp < (maxHp / 4)) - frame = 2; - else - frame = 1; - - _hpSprites.draw(screen, frame, Common::Point(HP_BARS_X[idx], 182)); - } - } - - if (_hiliteChar != -1) - _globalSprites.draw(screen, 8, Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); - - if (updateFlag) - screen._windows[33].update(); -} - -/** - * Removes any empty character entries from the faces list - */ -void Interface::sortFaces() { - // No implementation needed -} - void Interface::startup() { + Resources &res = *_vm->_resources; Screen &screen = *_vm->_screen; _iconSprites.load("main.icn"); @@ -147,10 +174,10 @@ void Interface::startup() { } draw3d(false); - _globalSprites.draw(screen._windows[1], 5, Common::Point(232, 9)); - charIconsPrint(false); + res._globalSprites.draw(screen._windows[1], 5, Common::Point(232, 9)); + drawParty(false); - _mainList[0]._sprites = &_globalSprites; + _mainList[0]._sprites = &res._globalSprites; for (int i = 1; i < 16; ++i) _mainList[i]._sprites = &_iconSprites; @@ -582,34 +609,6 @@ void Interface::doFalling() { // TODO } -void Interface::highlightChar(int charId) { - Screen &screen = *_vm->_screen; - - if (charId != _hiliteChar && _hiliteChar != HILIGHT_CHAR_DISABLED) { - // Handle deselecting any previusly selected char - if (_hiliteChar != -1) { - _globalSprites.draw(screen, 9 + _hiliteChar, - Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); - } - - // Highlight new character - _globalSprites.draw(screen, 8, Common::Point(CHAR_FACES_X[charId] - 1, 149)); - _hiliteChar = charId; - screen._windows[33].update(); - } -} - -void Interface::unhighlightChar() { - Screen &screen = *_vm->_screen; - - if (_hiliteChar != -1) { - _globalSprites.draw(screen, _hiliteChar + 9, - Common::Point(CHAR_FACES_X[_hiliteChar] - 1, 149)); - _hiliteChar = -1; - screen._windows[33].update(); - } -} - bool Interface::checkMoveDirection(int key) { Map &map = *_vm->_map; Party &party = *_vm->_party; @@ -738,7 +737,7 @@ void Interface::rest() { for (uint charIdx = 0; charIdx < party._activeParty.size(); ++charIdx) { party._activeParty[charIdx]._conditions[ASLEEP] = 1; } - charIconsPrint(true); + drawParty(true); Mode oldMode = _vm->_mode; _vm->_mode = MODE_SLEEPING; @@ -826,7 +825,7 @@ void Interface::rest() { } } - charIconsPrint(true); + drawParty(true); _vm->_mode = oldMode; doStepCode(); draw3d(true); @@ -924,7 +923,7 @@ void Interface::bash(const Common::Point &pt, Direction direction) { party.checkPartyDead(); events.ipause(2); - charIconsPrint(true); + drawParty(true); } diff --git a/engines/xeen/interface.h b/engines/xeen/interface.h index 7dc1b53170..59801757be 100644 --- a/engines/xeen/interface.h +++ b/engines/xeen/interface.h @@ -36,19 +36,38 @@ class XeenEngine; #define MINIMAP_SIZE 7 #define HILIGHT_CHAR_DISABLED -2 -class Interface: public ButtonContainer, public InterfaceMap { +/** + * Class responsible for drawing the images of the characters in the party + */ +class PartyDrawer { private: XeenEngine *_vm; - SpriteResource _restoreSprites; SpriteResource _dseFace; SpriteResource _hpSprites; + SpriteResource _restoreSprites; + int _hiliteChar; +public: + PartyDrawer(XeenEngine *vm); + + void drawParty(bool updateFlag); + + void highlightChar(int charId); + + void unhighlightChar(); +}; + +/** + * Implements the main in-game interface + */ +class Interface: public ButtonContainer, public InterfaceMap, public PartyDrawer { +private: + XeenEngine *_vm; SpriteResource _uiSprites; SpriteResource _iconSprites; DrawStruct _mainList[16]; int _combatCharIds[8]; bool _buttonsLoaded; - int _hiliteChar; int _steppingFX; void initDrawStructs(); @@ -82,16 +101,8 @@ public: void mainIconsPrint(); - void charIconsPrint(bool updateFlag); - - void sortFaces(); - void doFalling(); - void highlightChar(int charId); - - void unhighlightChar(); - void perform(); void rest(); diff --git a/engines/xeen/interface_map.cpp b/engines/xeen/interface_map.cpp index 42c5ff4e07..beaf241f40 100644 --- a/engines/xeen/interface_map.cpp +++ b/engines/xeen/interface_map.cpp @@ -399,7 +399,6 @@ InterfaceMap::InterfaceMap(XeenEngine *vm): _vm(vm) { } void InterfaceMap::setup() { - _globalSprites.load("global.icn"); _borderSprites.load("border.icn"); _spellFxSprites.load("spellfx.icn"); _fecpSprites.load("fecp.brd"); @@ -4490,10 +4489,11 @@ void InterfaceMap::moveMonsters() { } void InterfaceMap::assembleBorder() { + Resources &res = *_vm->_resources; Screen &screen = *_vm->_screen; // Draw the outer frame - _globalSprites.draw(screen._windows[0], 0, Common::Point(8, 8)); + res._globalSprites.draw(screen._windows[0], 0, Common::Point(8, 8)); // Draw the animating bat character used to show when levitate is active _borderSprites.draw(screen._windows[0], _vm->_party->_levitateActive ? _batUIFrame + 16 : 16, @@ -4600,6 +4600,7 @@ void InterfaceMap::assembleBorder() { void InterfaceMap::drawMiniMap() { Map &map = *_vm->_map; Party &party = *_vm->_party; + Resources &res = *_vm->_resources; Screen &screen = *_vm->_screen; Window &window1 = screen._windows[1]; @@ -4607,7 +4608,7 @@ void InterfaceMap::drawMiniMap() { return; if (!party._automapOn && !party._wizardEyeActive) { // Draw the Might & Magic logo - _globalSprites.draw(window1, 5, Common::Point(232, 9)); + res._globalSprites.draw(window1, 5, Common::Point(232, 9)); return; } @@ -4618,7 +4619,7 @@ void InterfaceMap::drawMiniMap() { party._wizardEyeActive = false; if (map._isOutdoors) { - _globalSprites.draw(window1, 15, Common::Point(237, 12)); + res._globalSprites.draw(window1, 15, Common::Point(237, 12)); for (int rowNum = 0, yp = 12, yDiff = 3; rowNum < MINIMAP_SIZE; ++rowNum, yp += 8, --yDiff) { for (int colNum = 0, xp = 237, xDiff = -3; colNum < MINIMAP_SIZE; ++colNum, xp += 10, ++xDiff) { @@ -4659,7 +4660,7 @@ void InterfaceMap::drawMiniMap() { } // Draw the direction arrow - _globalSprites.draw(window1, party._mazeDirection + 1, + res._globalSprites.draw(window1, party._mazeDirection + 1, Common::Point(267, 36)); } else { frame2 = (frame2 + 2) % 8; @@ -4844,7 +4845,7 @@ void InterfaceMap::drawMiniMap() { ++colNum, ++xDiff, xp += 10) { if (colNum == 4 && rowNum == 4) { // Center of the minimap. Draw the direction arrow - _globalSprites.draw(window1, party._mazeDirection + 1, + res._globalSprites.draw(window1, party._mazeDirection + 1, Common::Point(272, 40)); } @@ -4968,7 +4969,7 @@ void InterfaceMap::drawMiniMap() { } // Draw outer rectangle around the automap - _globalSprites.draw(window1, 6, Common::Point(223, 3)); + res._globalSprites.draw(window1, 6, Common::Point(223, 3)); party._wizardEyeActive = eyeActive; } diff --git a/engines/xeen/interface_map.h b/engines/xeen/interface_map.h index 034d1a6746..660213a98e 100644 --- a/engines/xeen/interface_map.h +++ b/engines/xeen/interface_map.h @@ -130,7 +130,6 @@ public: OutdoorDrawList _outdoorList; IndoorDrawList _indoorList; SpriteResource _charPowSprites; - SpriteResource _globalSprites; bool _upDoorText; Common::String _screenText; int _face1State, _face2State; diff --git a/engines/xeen/party.cpp b/engines/xeen/party.cpp index e0110856a6..f14a0bfb1a 100644 --- a/engines/xeen/party.cpp +++ b/engines/xeen/party.cpp @@ -349,7 +349,7 @@ void Party::changeTime(int numMinutes) { } if (killed) - _vm->_interface->charIconsPrint(true); + _vm->_interface->drawParty(true); if (_isNight != (_minutes < (5 * 60) || _minutes >= (21 * 60))) _vm->_map->loadSky(); @@ -391,7 +391,7 @@ void Party::addTime(int numMinutes) { ErrorScroll::show(_vm, THE_PARTY_NEEDS_REST, WT_NONFREEZED_WAIT); } - _vm->_interface->charIconsPrint(true); + _vm->_interface->drawParty(true); } _newDay = false; diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp index 11b209274d..e9178505ad 100644 --- a/engines/xeen/resources.cpp +++ b/engines/xeen/resources.cpp @@ -27,6 +27,8 @@ namespace Xeen { Resources::Resources() { + _globalSprites.load("global.icn"); + File f("mae.xen"); while (f.pos() < f.size()) _maeNames.push_back(f.readString()); diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h index de99c984eb..d4e1c11694 100644 --- a/engines/xeen/resources.h +++ b/engines/xeen/resources.h @@ -33,8 +33,8 @@ namespace Xeen { class Resources { public: - // Magic and equipment names - Common::StringArray _maeNames; + SpriteResource _globalSprites; + Common::StringArray _maeNames; // Magic and equipment names public: Resources(); }; diff --git a/engines/xeen/scripts.cpp b/engines/xeen/scripts.cpp index 3837509760..7ced6afa3f 100644 --- a/engines/xeen/scripts.cpp +++ b/engines/xeen/scripts.cpp @@ -174,7 +174,7 @@ int Scripts::checkEvents() { intf._face1State = intf._face2State = 2; if (_refreshIcons) { screen.closeWindows(); - intf.charIconsPrint(true); + intf.drawParty(true); } // TODO diff --git a/engines/xeen/town.cpp b/engines/xeen/town.cpp index c12973cbcd..25f332a010 100644 --- a/engines/xeen/town.cpp +++ b/engines/xeen/town.cpp @@ -621,7 +621,7 @@ Character *Town::doTavernOptions(Character *c) { if (_vm->getRandomNumber(100) < 26) { ++c->_conditions[DRUNK]; - intf.charIconsPrint(true); + intf.drawParty(true); sound.playFX(28); } @@ -823,7 +823,7 @@ Character *Town::doTempleOptions(Character *c) { party._powerShield = amt; party._blessed = amt; - intf.charIconsPrint(true); + intf.drawParty(true); sound.playSample(nullptr, 0); File f("ahh.voc"); sound.playSample(&f, 1); @@ -854,7 +854,7 @@ Character *Town::doTempleOptions(Character *c) { Common::fill(&c->_conditions[HEART_BROKEN], &c->_conditions[NO_CONDITION], 0); _v1 = 1440; - intf.charIconsPrint(true); + intf.drawParty(true); sound.playSample(nullptr, 0); File f("ahh.voc"); sound.playSample(&f, 1); @@ -871,7 +871,7 @@ Character *Town::doTempleOptions(Character *c) { } _v1 = 1440; - intf.charIconsPrint(true); + intf.drawParty(true); sound.playSample(nullptr, 0); File f("ahh.voc"); sound.playSample(&f, 1); @@ -941,7 +941,7 @@ Character *Town::doTrainingOptions(Character *c) { party.resetTemps(); c->_currentHp = c->getMaxHP(); c->_currentSp = c->getMaxSP(); - intf.charIconsPrint(true); + intf.drawParty(true); } } break; |