aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-11-01 21:07:57 +1100
committerPaul Gilbert2011-11-01 21:07:57 +1100
commit5ae9c15cdc57ab1f3f07f6e6dcfbee6353d569dd (patch)
treebe4d3f9226ee727069f82a741ea2a8dfe48ebcd8
parentacdeb1fb31021f0d563318639b4a261e3b370476 (diff)
downloadscummvm-rg350-5ae9c15cdc57ab1f3f07f6e6dcfbee6353d569dd.tar.gz
scummvm-rg350-5ae9c15cdc57ab1f3f07f6e6dcfbee6353d569dd.tar.bz2
scummvm-rg350-5ae9c15cdc57ab1f3f07f6e6dcfbee6353d569dd.zip
TSAGE: Added display logic for character selection dialog in R2RW
-rw-r--r--engines/tsage/ringworld2/ringworld2_dialogs.cpp38
-rw-r--r--engines/tsage/ringworld2/ringworld2_dialogs.h12
-rw-r--r--engines/tsage/staticres.cpp5
-rw-r--r--engines/tsage/staticres.h5
4 files changed, 60 insertions, 0 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_dialogs.cpp b/engines/tsage/ringworld2/ringworld2_dialogs.cpp
index 8d4863f332..562ca4cc65 100644
--- a/engines/tsage/ringworld2/ringworld2_dialogs.cpp
+++ b/engines/tsage/ringworld2/ringworld2_dialogs.cpp
@@ -176,6 +176,7 @@ void RightClickDialog::execute() {
break;
case 4:
// Change player
+ CharacterDialog::show();
break;
case 5:
// Options dialog
@@ -188,6 +189,43 @@ void RightClickDialog::execute() {
_gfxManager.deactivate();
}
+/*--------------------------------------------------------------------------*/
+
+void CharacterDialog::show() {
+ CharacterDialog *dlg = new CharacterDialog();
+ dlg->draw();
+
+ GfxButton *btn = dlg->execute(&dlg->_btnCancel);
+
+
+ dlg->remove();
+ delete dlg;
+}
+
+CharacterDialog::CharacterDialog() {
+ // Set the element text
+ _msgTitle.set(CHAR_TITLE, 140, ALIGN_LEFT);
+ _btnQuinn.setText(CHAR_QUINN_MSG);
+ _btnSeeker.setText(CHAR_SEEKER_MSG);
+ _btnMiranda.setText(CHAR_MIRANDA_MSG);
+ _btnCancel.setText(CHAR_CANCEL_MSG);
+
+ // Set position of the elements
+ _msgTitle._bounds.moveTo(5, 5);
+ _btnQuinn._bounds.moveTo(25, _msgTitle._bounds.bottom + 1);
+ _btnSeeker._bounds.moveTo(25, _btnQuinn._bounds.bottom + 1);
+ _btnMiranda._bounds.moveTo(25, _btnSeeker._bounds.bottom + 1);
+ _btnCancel._bounds.moveTo(25, _btnMiranda._bounds.bottom + 1);
+
+ // Add the items to the dialog
+ addElements(&_msgTitle, &_btnQuinn, &_btnSeeker, &_btnMiranda, &_btnCancel, NULL);
+
+ // Set the dialog size and position
+ frame();
+ _bounds.collapse(-6, -6);
+ setCenter(160, 100);
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_dialogs.h b/engines/tsage/ringworld2/ringworld2_dialogs.h
index bbc35da3ea..89e50545bf 100644
--- a/engines/tsage/ringworld2/ringworld2_dialogs.h
+++ b/engines/tsage/ringworld2/ringworld2_dialogs.h
@@ -59,6 +59,18 @@ public:
void execute();
};
+class CharacterDialog: public GfxDialog {
+private:
+ GfxMessage _msgTitle;
+ GfxButton _btnQuinn, _btnMiranda, _btnSeeker;
+ GfxButton _btnCancel;
+public:
+ CharacterDialog();
+ virtual ~CharacterDialog() {}
+
+ static void show();
+};
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp
index 4e7ac1fa10..84b76ad47f 100644
--- a/engines/tsage/staticres.cpp
+++ b/engines/tsage/staticres.cpp
@@ -193,6 +193,11 @@ const char *CONSOLE_MESSAGES[] = {
};
const char *HELP_MSG = "\x1\rRETURN TO\r RINGWORLD\x14";
+const char *CHAR_TITLE = "\x01Select Character:";
+const char *CHAR_QUINN_MSG = " Quinn ";
+const char *CHAR_SEEKER_MSG = " Seeker ";
+const char *CHAR_MIRANDA_MSG = "Miranda";
+const char *CHAR_CANCEL_MSG = " Cancel ";
} // End of namespace Ringworld2
diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h
index faaa0fee64..2fd97d198c 100644
--- a/engines/tsage/staticres.h
+++ b/engines/tsage/staticres.h
@@ -151,6 +151,11 @@ extern const char *CONSOLE_MESSAGES[];
// Dialog messages
extern const char *HELP_MSG;
+extern const char *CHAR_TITLE;
+extern const char *CHAR_QUINN_MSG;
+extern const char *CHAR_SEEKER_MSG;
+extern const char *CHAR_MIRANDA_MSG;
+extern const char *CHAR_CANCEL_MSG;
} // End of namespace Ringworld2