aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/pet_control/pet_real_life.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-08-27 13:59:08 -0400
committerPaul Gilbert2016-08-27 13:59:08 -0400
commitf5ab3d1cd9eb3a884b0ab5d0b154a4f9cccc74b7 (patch)
tree771a8d2b3fddf96c17a1d81d42cb08dfba09d110 /engines/titanic/pet_control/pet_real_life.cpp
parent873d555add9aaf5eb0d021518f5134142e2c2ff6 (diff)
parent5ea32efbb0ecb3e6b8336ad3c2edd3905ea5b89a (diff)
downloadscummvm-rg350-f5ab3d1cd9eb3a884b0ab5d0b154a4f9cccc74b7.tar.gz
scummvm-rg350-f5ab3d1cd9eb3a884b0ab5d0b154a4f9cccc74b7.tar.bz2
scummvm-rg350-f5ab3d1cd9eb3a884b0ab5d0b154a4f9cccc74b7.zip
Merge branch 'master' into xeen
Diffstat (limited to 'engines/titanic/pet_control/pet_real_life.cpp')
-rw-r--r--engines/titanic/pet_control/pet_real_life.cpp129
1 files changed, 129 insertions, 0 deletions
diff --git a/engines/titanic/pet_control/pet_real_life.cpp b/engines/titanic/pet_control/pet_real_life.cpp
new file mode 100644
index 0000000000..b9e1990dd2
--- /dev/null
+++ b/engines/titanic/pet_control/pet_real_life.cpp
@@ -0,0 +1,129 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "titanic/pet_control/pet_real_life.h"
+#include "titanic/pet_control/pet_control.h"
+#include "titanic/pet_control/pet_load.h"
+#include "titanic/pet_control/pet_save.h"
+#include "titanic/pet_control/pet_sound.h"
+#include "titanic/pet_control/pet_quit.h"
+
+namespace Titanic {
+
+bool CPetRealLife::setup(CPetControl *petControl) {
+ if (petControl && setupControl(petControl))
+ return reset();
+ return false;
+}
+
+bool CPetRealLife::reset() {
+ _glyphs.reset();
+ uint col = getColor(0);
+ _text.setColor(col);
+ _text.setLineColor(0, col);
+
+ return true;
+}
+
+void CPetRealLife::draw(CScreenManager *screenManager) {
+ _petControl->drawSquares(screenManager, 4);
+ _glyphs.draw(screenManager);
+ _text.draw(screenManager);
+}
+
+bool CPetRealLife::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
+ return _glyphs.MouseButtonDownMsg(msg->_mousePos);
+}
+
+bool CPetRealLife::MouseDragStartMsg(CMouseDragStartMsg *msg) {
+ return _glyphs.MouseDragStartMsg(msg);
+}
+
+bool CPetRealLife::MouseDragMoveMsg(CMouseDragMoveMsg *msg) {
+ return _glyphs.MouseDragMoveMsg(msg);
+}
+
+bool CPetRealLife::MouseDragEndMsg(CMouseDragEndMsg *msg) {
+ return _glyphs.MouseDragEndMsg(msg);
+}
+
+bool CPetRealLife::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
+ return _glyphs.MouseButtonUpMsg(msg->_mousePos);
+}
+
+bool CPetRealLife::KeyCharMsg(CKeyCharMsg *msg) {
+ _glyphs.KeyCharMsg(msg->_key);
+ return true;
+}
+
+bool CPetRealLife::VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) {
+ return _glyphs.VirtualKeyCharMsg(msg);
+}
+
+void CPetRealLife::postLoad() {
+ reset();
+}
+
+bool CPetRealLife::isValid(CPetControl *petControl) {
+ setupControl(petControl);
+ return true;
+}
+
+void CPetRealLife::enter(PetArea oldArea) {
+ _glyphs.enterHighlighted();
+}
+
+void CPetRealLife::leave() {
+ _glyphs.leaveHighlighted();
+}
+
+bool CPetRealLife::setupControl(CPetControl *petControl) {
+ if (petControl) {
+ _petControl = petControl;
+ _glyphs.setup(4, this);
+ _glyphs.setFlags(6);
+
+ addButton(new CPetLoad());
+ addButton(new CPetSave());
+ addButton(new CPetSound());
+ addButton(new CPetQuit());
+
+ Rect textRect(0, 0, 276, 30);
+ textRect.moveTo(32, 436);
+ _text.setBounds(textRect);
+ _text.setHasBorder(false);
+ _text.setup();
+ }
+
+ return true;
+}
+
+void CPetRealLife::addButton(CPetGlyph *glyph) {
+ if (glyph) {
+ if (glyph->setup(_petControl, &_glyphs))
+ _glyphs.push_back(glyph);
+ }
+}
+
+
+
+} // End of namespace Titanic