aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/continue_save_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/continue_save_dialog.cpp')
-rw-r--r--engines/titanic/continue_save_dialog.cpp23
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();