diff options
author | Paul Gilbert | 2016-12-30 21:38:51 -0500 |
---|---|---|
committer | Paul Gilbert | 2016-12-30 21:38:51 -0500 |
commit | ea536d2ad29a64a660f785893f521b44689c5474 (patch) | |
tree | a0217c32d9c2fb16097382d542dae9b90d6f1f96 /engines/titanic/game/missiveomat.cpp | |
parent | a30442445eee5e1f5f93359f4555a0a2cd3bf0e9 (diff) | |
download | scummvm-rg350-ea536d2ad29a64a660f785893f521b44689c5474.tar.gz scummvm-rg350-ea536d2ad29a64a660f785893f521b44689c5474.tar.bz2 scummvm-rg350-ea536d2ad29a64a660f785893f521b44689c5474.zip |
TITANIC: Fixes and cleanup for MissiveOMat
Diffstat (limited to 'engines/titanic/game/missiveomat.cpp')
-rw-r--r-- | engines/titanic/game/missiveomat.cpp | 138 |
1 files changed, 68 insertions, 70 deletions
diff --git a/engines/titanic/game/missiveomat.cpp b/engines/titanic/game/missiveomat.cpp index 8f7845bc3f..e920be7c5d 100644 --- a/engines/titanic/game/missiveomat.cpp +++ b/engines/titanic/game/missiveomat.cpp @@ -34,8 +34,8 @@ BEGIN_MESSAGE_MAP(CMissiveOMat, CGameObject) ON_MESSAGE(LeaveViewMsg) END_MESSAGE_MAP() -CMissiveOMat::CMissiveOMat() : CGameObject(), _mode(1), - _totalMessages(0), _messageNum(0), _personIndex(-1) { +CMissiveOMat::CMissiveOMat() : CGameObject(), _mode(MMODE_USERNAME), + _totalMessages(0), _messageNum(0), _account(NO_ACCOUNT) { // Load data for the messages, their from and to names loadArray(_welcomeMessages, "TEXT/MISSIVEOMAT/WELCOME", 3); loadArray(_messages, "TEXT/MISSIVEOMAT/MESSAGES", 58); @@ -55,21 +55,21 @@ void CMissiveOMat::save(SimpleFile *file, int indent) { file->writeNumberLine(_mode, indent); file->writeNumberLine(_totalMessages, indent); file->writeNumberLine(_messageNum, indent); - file->writeQuotedLine(_string1, indent); - file->writeQuotedLine(_string2, indent); - file->writeNumberLine(_personIndex, indent); + file->writeQuotedLine(_username, indent); + file->writeQuotedLine(_password, indent); + file->writeNumberLine(_account, indent); CGameObject::save(file, indent); } void CMissiveOMat::load(SimpleFile *file) { file->readNumber(); - _mode = file->readNumber(); + _mode = (MissiveOMatMode)file->readNumber(); _totalMessages = file->readNumber(); _messageNum = file->readNumber(); - _string1 = file->readString(); - _string2 = file->readString(); - _personIndex = file->readNumber(); + _username = file->readString(); + _password = file->readString(); + _account = (MissiveOMatAccount)file->readNumber(); CGameObject::load(file); } @@ -87,7 +87,7 @@ bool CMissiveOMat::KeyCharMsg(CKeyCharMsg *msg) { CEditControlMsg editMsg; switch (_mode) { - case 1: { + case MMODE_USERNAME: playSound("z#228.wav"); editMsg._mode = 6; editMsg._param = msg->_key; @@ -97,10 +97,12 @@ bool CMissiveOMat::KeyCharMsg(CKeyCharMsg *msg) { editMsg._mode = 3; editMsg.execute(loginControl); - _string1 = editMsg._text; - if (!_string1.empty()) { + _username = editMsg._text; + _username.toLowercase(); + + if (!_username.empty()) { loadFrame(2); - _mode = 2; + _mode = MMODE_PASSWORD; editMsg._mode = 1; editMsg.execute(loginControl); @@ -110,74 +112,70 @@ bool CMissiveOMat::KeyCharMsg(CKeyCharMsg *msg) { } } break; - } - case 2: { + case MMODE_PASSWORD: playSound("z#228.wav"); editMsg._mode = 6; editMsg._param = msg->_key; editMsg.execute(loginControl); - _string2 = editMsg._text; - if (_string1 == "Droot Scraliontis") { - _string1 = "Scraliontis"; - } else if (_string1 == "Antar Brobostigon") { - _string1 = "Brobostigon"; - } else if (_string1 == "colin") { - _string1 = "Leovinus"; - } - - bool flag = false; - if (_string1 == "Leovinus") { - if (_string2 == "Other") { - flag = true; - _personIndex = 0; - } - } else if (_string1 == "Scraliontis") { - if (_string2 == "This") { - flag = true; - _personIndex = 1; + if (editMsg._param == 1000) { + _password = editMsg._text; + _password.toLowercase(); + + if (_username == "droot scraliontis") { + _username = "scraliontis"; + } else if (_username == "antar brobostigon") { + _username = "brobostigon"; + } else if (_username == "colin") { + _username = "leovinus"; } - } else if (_string1 == "Brobostigon") { - if (_string2 == "That") { - flag = true; - _personIndex = 2; + + bool validFlag = false; + if (_username == "leovinus" && _password == "other") { + validFlag = true; + _account = LEOVINUS; + } else if (_username == "scraliontis" && _password == "this") { + validFlag = true; + _account = SCRALIONTIS; + } else if (_username == "brobostigon" && _password == "that") { + validFlag = true; + _account = BROBOSTIGON; } - } - if (flag) { - _mode = 4; - loadFrame(4); - editMsg._mode = 1; - editMsg.execute(loginControl); + if (validFlag) { + _mode = MMODE_4; + loadFrame(4); + editMsg._mode = 1; + editMsg.execute(loginControl); - getTextCursor()->hide(); - editMsg._mode = 13; - editMsg.execute(loginControl); + getTextCursor()->hide(); + editMsg._mode = 13; + editMsg.execute(loginControl); - editMsg._mode = 12; - editMsg.execute(welcome); + editMsg._mode = 12; + editMsg.execute(welcome); - editMsg._mode = 2; - editMsg._text = _welcomeMessages[_personIndex]; - editMsg.execute(welcome); + editMsg._mode = 2; + editMsg._text = _welcomeMessages[_account]; + editMsg.execute(welcome); - editMsg._mode = 12; - editMsg._text = "MissiveOMat OK Button"; - editMsg.execute(welcome); - editMsg.execute(scrollUp); - } else { - _mode = 3; - loadFrame(3); - addTimer(1500); + editMsg._mode = 12; + editMsg._text = "MissiveOMat OK Button"; + editMsg.execute(welcome); + editMsg.execute(scrollUp); + } else { + _mode = MMODE_3; + loadFrame(3); + addTimer(1500); - editMsg._mode = 1; - editMsg.execute(loginControl); + editMsg._mode = 1; + editMsg.execute(loginControl); - getTextCursor()->hide(); + getTextCursor()->hide(); + } } break; - } default: break; @@ -208,7 +206,7 @@ bool CMissiveOMat::MissiveOMatActionMsg(CMissiveOMatActionMsg *msg) { CTreeItem *btnPrev = findRoom()->findByName("MissiveOMat Prev Button"); CTreeItem *btnLogout = findRoom()->findByName("MissiveOMat Logout Button"); - _mode = MESSAGE_5; + _mode = MMODE_5; CVisibleMsg visibleMsg; visibleMsg._visible = false; visibleMsg.execute(btnOk); @@ -219,7 +217,7 @@ bool CMissiveOMat::MissiveOMatActionMsg(CMissiveOMatActionMsg *msg) { _messageNum = 0; _totalMessages = 0; - CString *strP = &_messages[_personIndex * 19]; + CString *strP = &_messages[_account * 19]; for (_totalMessages = 0; !strP->empty(); ++strP, ++_totalMessages) ; @@ -277,8 +275,8 @@ bool CMissiveOMat::MissiveOMatActionMsg(CMissiveOMatActionMsg *msg) { case MESSAGE_9: { loadFrame(1); - _mode = MESSAGE_NONE; - _personIndex = -1; + _mode = MMODE_USERNAME; + _account = NO_ACCOUNT; static const char *const WIDGETS[7] = { "MissiveOMat Login Control", "MissiveOMat OK Button", @@ -306,8 +304,8 @@ bool CMissiveOMat::MissiveOMatActionMsg(CMissiveOMatActionMsg *msg) { editMsg._mode = 8; editMsg.execute("MissiveOMat Login Control"); - _string1.clear(); - _string2.clear(); + _username.clear(); + _password.clear(); break; } |