aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/dialogs_nebular.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-05-03 14:18:33 -0400
committerPaul Gilbert2014-05-03 14:18:33 -0400
commitd38e1aa5006266dedf5e7de6382df8c321009ee7 (patch)
tree47bbf9c993b33a01aa26ed401a1d20485d468dfc /engines/mads/nebular/dialogs_nebular.cpp
parent9cd7e8b886c2c72d659cd3439ae4f004126393de (diff)
downloadscummvm-rg350-d38e1aa5006266dedf5e7de6382df8c321009ee7.tar.gz
scummvm-rg350-d38e1aa5006266dedf5e7de6382df8c321009ee7.tar.bz2
scummvm-rg350-d38e1aa5006266dedf5e7de6382df8c321009ee7.zip
MADS: Reorganise Nebular dialog methods
Diffstat (limited to 'engines/mads/nebular/dialogs_nebular.cpp')
-rw-r--r--engines/mads/nebular/dialogs_nebular.cpp170
1 files changed, 85 insertions, 85 deletions
diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp
index 98e05ade25..dc7d432cb8 100644
--- a/engines/mads/nebular/dialogs_nebular.cpp
+++ b/engines/mads/nebular/dialogs_nebular.cpp
@@ -33,90 +33,6 @@ namespace MADS {
namespace Nebular {
-CopyProtectionDialog::CopyProtectionDialog(MADSEngine *vm, bool priorAnswerWrong):
- TextDialog(vm, FONT_INTERFACE, Common::Point(-1, -1), 32) {
- getHogAnusEntry(_hogEntry);
-
- if (priorAnswerWrong) {
- addLine("ANSWER INCORRECT!", true);
- wordWrap("\n");
- addLine("(But we'll give you another chance!)");
- } else {
- addLine("REX NEBULAR version 8.43", true);
- wordWrap("\n");
- addLine("(Copy Protection, for your convenience)");
- }
- wordWrap("\n");
-
- wordWrap("Now comes the part that everybody hates. But if we don't");
- wordWrap("do this, nasty rodent-like people will pirate this game");
- wordWrap("and a whole generation of talented designers, programmers,");
- wordWrap("artists, and playtesters will go hungry, and will wander");
- wordWrap("aimlessly through the land at night searching for peace.");
- wordWrap("So let's grit our teeth and get it over with. Just get");
-
- Common::String line = "out your copy of ";
- line += _hogEntry._bookId == 103 ? "the GAME MANUAL" : "REX'S LOGBOOK";
- line += ". See! That was easy. ";
- wordWrap(line);
-
- line = Common::String::format("Next, just turn to page %d. On line %d, find word number %d, ",
- _hogEntry._pageNum, _hogEntry._lineNum, _hogEntry._wordNum);
- wordWrap(line);
-
- wordWrap("and type it on the line below (we',27h,'ve even given you");
- wordWrap("first letter as a hint). As soon as you do that, we can get");
- wordWrap("right into this really COOL adventure game!\n");
- wordWrap("\n");
- wordWrap(" ");
- addInput();
- wordWrap("\n");
-}
-
-bool CopyProtectionDialog::show() {
- draw();
- _vm->_events->showCursor();
-
- // TODO: Replace with text input
- while (!_vm->shouldQuit() && !_vm->_events->isKeyPressed() &&
- !_vm->_events->_mouseClicked) {
- _vm->_events->delay(1);
- }
-
- _vm->_events->_pendingKeys.clear();
- return true;
-}
-
-bool CopyProtectionDialog::getHogAnusEntry(HOGANUS &entry) {
- File f;
- f.open("*HOGANUS.DAT");
-
- // Read in the total number of entries, and randomly pick an entry to use
- int numEntries = f.readUint16LE();
- int entryIndex = _vm->getRandomNumber(1, numEntries);
-
- // Read in the encrypted entry
- f.seek(28 * entryIndex + 2);
- byte entryData[28];
- f.read(entryData, 28);
-
- // Decrypt it
- for (int i = 0; i < 28; ++i)
- entryData[i] = ~entryData[i];
-
- // Fill out the fields
- entry._bookId = entryData[0];
- entry._pageNum = READ_LE_UINT16(&entryData[2]);
- entry._lineNum = READ_LE_UINT16(&entryData[4]);
- entry._wordNum = READ_LE_UINT16(&entryData[6]);
- entry._word = Common::String((char *)&entryData[8]);
-
- f.close();
- return true;
-}
-
-/*------------------------------------------------------------------------*/
-
bool DialogsNebular::show(int msgId) {
MADSAction &action = _vm->_game->_scene._action;
Common::StringArray msg = _vm->_game->getMessage(msgId);
@@ -330,6 +246,91 @@ void DialogsNebular::showDialog() {
/*------------------------------------------------------------------------*/
+CopyProtectionDialog::CopyProtectionDialog(MADSEngine *vm, bool priorAnswerWrong) :
+TextDialog(vm, FONT_INTERFACE, Common::Point(-1, -1), 32) {
+ getHogAnusEntry(_hogEntry);
+
+ if (priorAnswerWrong) {
+ addLine("ANSWER INCORRECT!", true);
+ wordWrap("\n");
+ addLine("(But we'll give you another chance!)");
+ }
+ else {
+ addLine("REX NEBULAR version 8.43", true);
+ wordWrap("\n");
+ addLine("(Copy Protection, for your convenience)");
+ }
+ wordWrap("\n");
+
+ wordWrap("Now comes the part that everybody hates. But if we don't");
+ wordWrap("do this, nasty rodent-like people will pirate this game");
+ wordWrap("and a whole generation of talented designers, programmers,");
+ wordWrap("artists, and playtesters will go hungry, and will wander");
+ wordWrap("aimlessly through the land at night searching for peace.");
+ wordWrap("So let's grit our teeth and get it over with. Just get");
+
+ Common::String line = "out your copy of ";
+ line += _hogEntry._bookId == 103 ? "the GAME MANUAL" : "REX'S LOGBOOK";
+ line += ". See! That was easy. ";
+ wordWrap(line);
+
+ line = Common::String::format("Next, just turn to page %d. On line %d, find word number %d, ",
+ _hogEntry._pageNum, _hogEntry._lineNum, _hogEntry._wordNum);
+ wordWrap(line);
+
+ wordWrap("and type it on the line below (we',27h,'ve even given you");
+ wordWrap("first letter as a hint). As soon as you do that, we can get");
+ wordWrap("right into this really COOL adventure game!\n");
+ wordWrap("\n");
+ wordWrap(" ");
+ addInput();
+ wordWrap("\n");
+}
+
+bool CopyProtectionDialog::show() {
+ draw();
+ _vm->_events->showCursor();
+
+ // TODO: Replace with text input
+ while (!_vm->shouldQuit() && !_vm->_events->isKeyPressed() &&
+ !_vm->_events->_mouseClicked) {
+ _vm->_events->delay(1);
+ }
+
+ _vm->_events->_pendingKeys.clear();
+ return true;
+}
+
+bool CopyProtectionDialog::getHogAnusEntry(HOGANUS &entry) {
+ File f;
+ f.open("*HOGANUS.DAT");
+
+ // Read in the total number of entries, and randomly pick an entry to use
+ int numEntries = f.readUint16LE();
+ int entryIndex = _vm->getRandomNumber(1, numEntries);
+
+ // Read in the encrypted entry
+ f.seek(28 * entryIndex + 2);
+ byte entryData[28];
+ f.read(entryData, 28);
+
+ // Decrypt it
+ for (int i = 0; i < 28; ++i)
+ entryData[i] = ~entryData[i];
+
+ // Fill out the fields
+ entry._bookId = entryData[0];
+ entry._pageNum = READ_LE_UINT16(&entryData[2]);
+ entry._lineNum = READ_LE_UINT16(&entryData[4]);
+ entry._wordNum = READ_LE_UINT16(&entryData[6]);
+ entry._word = Common::String((char *)&entryData[8]);
+
+ f.close();
+ return true;
+}
+
+/*------------------------------------------------------------------------*/
+
ScreenDialog::DialogLine::DialogLine() {
_state = 0;
_textDisplayIndex = -1;
@@ -503,7 +504,6 @@ finish:
++_lineIndex;
}
-
void ScreenDialog::initVars() {
_v1 = -1;
_selectedLine = -1;