aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/game/cell_point_button.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-17 22:15:05 -0400
committerPaul Gilbert2016-08-17 22:15:05 -0400
commitbf5835b0dcd8134a82221804be0eb6c415adeeb5 (patch)
tree5c20cb3f28fc1b4c68f1138aa3969028366bb34b /engines/titanic/game/cell_point_button.cpp
parent41dab514e1f7dc4bbf9ff9bab21c5dc5cad7812f (diff)
downloadscummvm-rg350-bf5835b0dcd8134a82221804be0eb6c415adeeb5.tar.gz
scummvm-rg350-bf5835b0dcd8134a82221804be0eb6c415adeeb5.tar.bz2
scummvm-rg350-bf5835b0dcd8134a82221804be0eb6c415adeeb5.zip
TITANIC: Implementing game logic classes
Diffstat (limited to 'engines/titanic/game/cell_point_button.cpp')
-rw-r--r--engines/titanic/game/cell_point_button.cpp34
1 files changed, 29 insertions, 5 deletions
diff --git a/engines/titanic/game/cell_point_button.cpp b/engines/titanic/game/cell_point_button.cpp
index 18ece09cb0..207dd73543 100644
--- a/engines/titanic/game/cell_point_button.cpp
+++ b/engines/titanic/game/cell_point_button.cpp
@@ -24,12 +24,17 @@
namespace Titanic {
+BEGIN_MESSAGE_MAP(CCellPointButton, CBackground)
+ ON_MESSAGE(MouseButtonDownMsg)
+ ON_MESSAGE(EnterViewMsg)
+END_MESSAGE_MAP()
+
CCellPointButton::CCellPointButton() : CBackground() {
_fieldE0 = 0;
_fieldE4 = 0;
_fieldE8 = 0;
_fieldEC = 0;
- _fieldF0 = 0;
+ _regionNum = 0;
_fieldF4 = 0;
_fieldF8 = 0;
_fieldFC = 0;
@@ -44,7 +49,7 @@ void CCellPointButton::save(SimpleFile *file, int indent) {
file->writeNumberLine(_fieldE4, indent);
file->writeNumberLine(_fieldE8, indent);
file->writeNumberLine(_fieldEC, indent);
- file->writeNumberLine(_fieldF0, indent);
+ file->writeNumberLine(_regionNum, indent);
file->writeNumberLine(_fieldF4, indent);
file->writeNumberLine(_fieldF8, indent);
file->writeNumberLine(_fieldFC, indent);
@@ -52,7 +57,7 @@ void CCellPointButton::save(SimpleFile *file, int indent) {
file->writeNumberLine(_field104, indent);
file->writeNumberLine(_field108, indent);
file->writeQuotedLine(_string3, indent);
- file->writeNumberLine(_field118, indent);
+ file->writeNumberLine(_dialNum, indent);
CBackground::save(file, indent);
}
@@ -63,7 +68,7 @@ void CCellPointButton::load(SimpleFile *file) {
_fieldE4 = file->readNumber();
_fieldE8 = file->readNumber();
_fieldEC = file->readNumber();
- _fieldF0 = file->readNumber();
+ _regionNum = file->readNumber();
_fieldF4 = file->readNumber();
_fieldF8 = file->readNumber();
_fieldFC = file->readNumber();
@@ -71,9 +76,28 @@ void CCellPointButton::load(SimpleFile *file) {
_field104 = file->readNumber();
_field108 = file->readNumber();
_string3 = file->readString();
- _field118 = file->readNumber();
+ _dialNum = file->readNumber();
CBackground::load(file);
}
+bool CCellPointButton::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
+ if (getRandomNumber(2) == 0) {
+ CParrotSpeakMsg speakMsg("Cellpoints", _string3);
+ speakMsg.execute("PerchedParrot");
+ }
+
+ playMovie(0);
+ _regionNum = _regionNum ? 0 : 1;
+ playSound("z#425.wav");
+ talkSetDialRegion(_string3, _dialNum, _regionNum);
+
+ return true;
+}
+
+bool CCellPointButton::EnterViewMsg(CEnterViewMsg *msg) {
+ _regionNum = talkGetDialRegion(_string3, _dialNum);
+ return true;
+}
+
} // End of namespace Titanic