diff options
Diffstat (limited to 'engines/titanic/continue_save_dialog.cpp')
-rw-r--r-- | engines/titanic/continue_save_dialog.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/titanic/continue_save_dialog.cpp b/engines/titanic/continue_save_dialog.cpp index 1be0cf1e0c..5a881c1ac6 100644 --- a/engines/titanic/continue_save_dialog.cpp +++ b/engines/titanic/continue_save_dialog.cpp @@ -25,6 +25,7 @@ namespace Titanic { +#define SAVEGAME_SLOTS_COUNT 5 #define RESTORE_X 346 #define RESTORE_Y 94 #define START_X 370 @@ -36,6 +37,16 @@ CContinueSaveDialog::CContinueSaveDialog() { _restoreState = _startState = -1; _mouseDown = false; _evilTwinShown = false; + + for (int idx = 0; idx < SAVEGAME_SLOTS_COUNT; ++idx) { + Rect slotRect = getSlotBounds(idx); + _slotNames[idx].setFontNumber(0); + _slotNames[idx].setBounds(slotRect); + _slotNames[idx].resize(3); + _slotNames[idx].setMaxCharsPerLine(22); + _slotNames[idx].setHasBorder(false); + _slotNames[idx].setup(); + } } CContinueSaveDialog::~CContinueSaveDialog() { @@ -43,9 +54,15 @@ CContinueSaveDialog::~CContinueSaveDialog() { } void CContinueSaveDialog::addSavegame(int slot, const CString &name) { + assert(_saves.size() < SAVEGAME_SLOTS_COUNT); + _slotNames[_saves.size()].setText(name); _saves.push_back(SaveEntry(slot, name)); } +Rect CContinueSaveDialog::getSlotBounds(int index) { + return Rect(360, 168 + index * 12, 556, 180 + index * 12); +} + int CContinueSaveDialog::show() { // Load images for the dialog loadImages(); @@ -82,6 +99,7 @@ void CContinueSaveDialog::render() { _restoreState = _startState = -1; renderButtons(); + renderSlots(); } void CContinueSaveDialog::renderButtons() { @@ -138,6 +156,11 @@ void CContinueSaveDialog::renderButtons() { } } +void CContinueSaveDialog::renderSlots() { + for (int idx = 0; idx < SAVEGAME_SLOTS_COUNT; ++idx) + _slotNames[idx].draw(CScreenManager::_screenManagerPtr); +} + void CContinueSaveDialog::mouseMove(const Point &mousePos) { _mousePos = mousePos; renderButtons(); |