[Scummvm-cvs-logs] scummvm master -> 15c0f4b274146973f78c422e0237e904efc1f232

dreammaster dreammaster at scummvm.org
Fri Aug 12 19:11:56 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
15c0f4b274 TITANIC: Implemented CArmchair class


Commit: 15c0f4b274146973f78c422e0237e904efc1f232
    https://github.com/scummvm/scummvm/commit/15c0f4b274146973f78c422e0237e904efc1f232
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-08-12T13:11:25-04:00

Commit Message:
TITANIC: Implemented CArmchair class

Changed paths:
    engines/titanic/core/background.cpp
    engines/titanic/core/background.h
    engines/titanic/game/sgt/armchair.cpp
    engines/titanic/game/sgt/armchair.h
    engines/titanic/game/sgt/sgt_state_room.h



diff --git a/engines/titanic/core/background.cpp b/engines/titanic/core/background.cpp
index f180df8..733dfc1 100644
--- a/engines/titanic/core/background.cpp
+++ b/engines/titanic/core/background.cpp
@@ -30,13 +30,13 @@ BEGIN_MESSAGE_MAP(CBackground, CGameObject)
 	ON_MESSAGE(VisibleMsg)
 END_MESSAGE_MAP()
 
-CBackground::CBackground() : CGameObject(), _fieldBC(0), _fieldC0(0), _fieldDC(0) {
+CBackground::CBackground() : CGameObject(), _startFrame(0), _endFrame(0), _fieldDC(0) {
 }
 
 void CBackground::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
-	file->writeNumberLine(_fieldBC, indent);
-	file->writeNumberLine(_fieldC0, indent);
+	file->writeNumberLine(_startFrame, indent);
+	file->writeNumberLine(_endFrame, indent);
 	file->writeQuotedLine(_string1, indent);
 	file->writeQuotedLine(_string2, indent);
 	file->writeNumberLine(_fieldDC, indent);
@@ -46,8 +46,8 @@ void CBackground::save(SimpleFile *file, int indent) {
 
 void CBackground::load(SimpleFile *file) {
 	file->readNumber();
-	_fieldBC = file->readNumber();
-	_fieldC0 = file->readNumber();
+	_startFrame = file->readNumber();
+	_endFrame = file->readNumber();
 	_string1 = file->readString();
 	_string2 = file->readString();
 	_fieldDC = file->readNumber();
@@ -58,9 +58,9 @@ void CBackground::load(SimpleFile *file) {
 bool CBackground::StatusChangeMsg(CStatusChangeMsg *msg) {
 	setVisible(true);
 	if (_fieldDC) {
-		playMovie(_fieldBC, _fieldC0, 16);
+		playMovie(_startFrame, _endFrame, 16);
 	} else {
-		playMovie(_fieldBC, _fieldC0, 0);
+		playMovie(_startFrame, _endFrame, 0);
 	}
 	return true;
 }
diff --git a/engines/titanic/core/background.h b/engines/titanic/core/background.h
index 6a2fd21..b7f160d 100644
--- a/engines/titanic/core/background.h
+++ b/engines/titanic/core/background.h
@@ -34,8 +34,8 @@ class CBackground : public CGameObject {
 	bool SetFrameMsg(CSetFrameMsg *msg);
 	bool VisibleMsg(CVisibleMsg *msg);
 protected:
-	int _fieldBC;
-	int _fieldC0;
+	int _startFrame;
+	int _endFrame;
 	CString _string1;
 	CString _string2;
 	int _fieldDC;
diff --git a/engines/titanic/game/sgt/armchair.cpp b/engines/titanic/game/sgt/armchair.cpp
index 4c4ef44..f547c3e 100644
--- a/engines/titanic/game/sgt/armchair.cpp
+++ b/engines/titanic/game/sgt/armchair.cpp
@@ -24,6 +24,12 @@
 
 namespace Titanic {
 
+BEGIN_MESSAGE_MAP(CArmchair, CSGTStateRoom)
+	ON_MESSAGE(TurnOn)
+	ON_MESSAGE(TurnOff)
+	ON_MESSAGE(MovieEndMsg)
+END_MESSAGE_MAP()
+
 void CArmchair::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(1, indent);
 	CSGTStateRoom::save(file, indent);
@@ -34,4 +40,48 @@ void CArmchair::load(SimpleFile *file) {
 	CSGTStateRoom::load(file);
 }
 
+bool CArmchair::TurnOn(CTurnOn *msg) {
+	if (_statics->_v8 == "Closed" && _statics->_v12 == "Closed") {
+		CVisibleMsg visibleMsg(false);
+		visibleMsg.execute("Deskchair");
+
+		if (_statics->_v9 == "Open") {
+			CActMsg actMsg("Squash");
+			actMsg.execute("Deskchair");
+			_startFrame = 22;
+			_endFrame = 31;
+		} else {
+			_startFrame = 0;
+			_endFrame = 10;
+		}
+
+		playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE);
+		playSound("b#0.wav");
+		_statics->_v8 = "Open";
+		_fieldE0 = 0;
+	}
+
+	return true;
+}
+
+bool CArmchair::TurnOff(CTurnOff *msg) {
+	if (_statics->_v8 == "Open") {
+		_statics->_v8 = "Closed";
+		_startFrame = 11;
+		_endFrame = 21;
+		_fieldE0 = 1;
+		playMovie(11, 21, MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT);
+		playSound("b#0.wav");
+	}
+
+	return true;
+}
+
+bool CArmchair::MovieEndMsg(CMovieEndMsg *msg) {
+	if (_statics->_v8 == "Closed")
+		loadFrame(0);
+
+	return true;
+}
+
 } // End of namespace Titanic
diff --git a/engines/titanic/game/sgt/armchair.h b/engines/titanic/game/sgt/armchair.h
index b550555..169b9b4 100644
--- a/engines/titanic/game/sgt/armchair.h
+++ b/engines/titanic/game/sgt/armchair.h
@@ -28,6 +28,10 @@
 namespace Titanic {
 
 class CArmchair : public CSGTStateRoom {
+	DECLARE_MESSAGE_MAP;
+	bool TurnOn(CTurnOn *msg);
+	bool TurnOff(CTurnOff *msg);
+	bool MovieEndMsg(CMovieEndMsg *msg);
 public:
 	CLASSDEF;
 
diff --git a/engines/titanic/game/sgt/sgt_state_room.h b/engines/titanic/game/sgt/sgt_state_room.h
index 375da71..d9ffdb8 100644
--- a/engines/titanic/game/sgt/sgt_state_room.h
+++ b/engines/titanic/game/sgt/sgt_state_room.h
@@ -48,9 +48,9 @@ struct CSGTStateRoomStatics {
 class CSGTStateRoom : public CBackground {
 	DECLARE_MESSAGE_MAP;
 	bool EnterRoomMsg(CEnterRoomMsg *msg);
-private:
+protected:
 	static CSGTStateRoomStatics *_statics;
-private:
+protected:
 	int _fieldE0;
 	int _fieldE4;
 	int _fieldE8;






More information about the Scummvm-git-logs mailing list