[Scummvm-git-logs] scummvm master -> ba77ec28b99394540d5871f45d61e4ac432cf1b9
dreammaster
dreammaster at scummvm.org
Wed Jan 4 01:31:09 CET 2017
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
759f69fe1e TITANIC: Fixes and cleanup for the hammer dispensor
e2dba404a6 TITANIC: Cleanup and fixes for starling puret
ba77ec28b9 TITANIC: Fix initial display of fan control indicator
Commit: 759f69fe1ef445feddb28a1410c4e0821ae7ac40
https://github.com/scummvm/scummvm/commit/759f69fe1ef445feddb28a1410c4e0821ae7ac40
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-01-03T16:26:39-05:00
Commit Message:
TITANIC: Fixes and cleanup for the hammer dispensor
Changed paths:
engines/titanic/game/hammer_dispensor.cpp
engines/titanic/game/hammer_dispensor.h
engines/titanic/game/hammer_dispensor_button.cpp
engines/titanic/game/hammer_dispensor_button.h
diff --git a/engines/titanic/game/hammer_dispensor.cpp b/engines/titanic/game/hammer_dispensor.cpp
index bc6a3d5..2450868 100644
--- a/engines/titanic/game/hammer_dispensor.cpp
+++ b/engines/titanic/game/hammer_dispensor.cpp
@@ -32,13 +32,13 @@ BEGIN_MESSAGE_MAP(CHammerDispensor, CBackground)
END_MESSAGE_MAP()
CHammerDispensor::CHammerDispensor() : CBackground(),
- _fieldE0(false), _fieldE4(true), _state(0) {
+ _isOpen(false), _panUp(true), _state(0) {
}
void CHammerDispensor::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldE0, indent);
- file->writeNumberLine(_fieldE4, indent);
+ file->writeNumberLine(_isOpen, indent);
+ file->writeNumberLine(_panUp, indent);
file->writeNumberLine(_state, indent);
CBackground::save(file, indent);
@@ -46,44 +46,44 @@ void CHammerDispensor::save(SimpleFile *file, int indent) {
void CHammerDispensor::load(SimpleFile *file) {
file->readNumber();
- _fieldE0 = file->readNumber();
- _fieldE4 = file->readNumber();
+ _isOpen = file->readNumber();
+ _panUp = file->readNumber();
_state = file->readNumber();
CBackground::load(file);
}
bool CHammerDispensor::ActMsg(CActMsg *msg) {
- if (msg->_action == "DispenseHammer" && !_fieldE0) {
+ if (msg->_action == "DispenseHammer" && !_isOpen) {
_state = 1;
playMovie(15, 31, MOVIE_NOTIFY_OBJECT);
- _fieldE0 = true;
+ _isOpen = true;
}
- if (msg->_action == "HammerTaken" && _fieldE0)
+ if (msg->_action == "HammerTaken" && _isOpen)
loadFrame(32);
return true;
}
bool CHammerDispensor::EnterViewMsg(CEnterViewMsg *msg) {
- if (_fieldE4) {
+ if (_panUp) {
playMovie(7, 14, 0);
- _fieldE4 = false;
+ _panUp = false;
}
return true;
}
bool CHammerDispensor::LeaveViewMsg(CLeaveViewMsg *msg) {
- _fieldE4 = true;
- _fieldE0 = 0;
- _state = 2;
-
- if (_fieldE0)
+ if (_isOpen)
playMovie(32, 50, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
else
playMovie(0, 7, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
+
+ _panUp = true;
+ _isOpen = false;
+ _state = 2;
return true;
}
diff --git a/engines/titanic/game/hammer_dispensor.h b/engines/titanic/game/hammer_dispensor.h
index 2383a33..f93f414 100644
--- a/engines/titanic/game/hammer_dispensor.h
+++ b/engines/titanic/game/hammer_dispensor.h
@@ -34,8 +34,8 @@ class CHammerDispensor : public CBackground {
bool LeaveViewMsg(CLeaveViewMsg *msg);
bool MovieEndMsg(CMovieEndMsg *msg);
private:
- bool _fieldE0;
- bool _fieldE4;
+ bool _isOpen;
+ bool _panUp;
int _state;
public:
CLASSDEF;
diff --git a/engines/titanic/game/hammer_dispensor_button.cpp b/engines/titanic/game/hammer_dispensor_button.cpp
index 89d37a0..661a92e 100644
--- a/engines/titanic/game/hammer_dispensor_button.cpp
+++ b/engines/titanic/game/hammer_dispensor_button.cpp
@@ -34,36 +34,36 @@ BEGIN_MESSAGE_MAP(CHammerDispensorButton, CStartAction)
END_MESSAGE_MAP()
CHammerDispensorButton::CHammerDispensorButton() : CStartAction(),
- _fieldF8(0), _fieldFC(0), _field100(0), _btnPos(Point(56, 6)),
- _field10C(nullptr), _field110(0) {
+ _active(false), _open(false), _hitCounter(0), _btnPos(Point(56, 6)),
+ _perch(nullptr), _hammerTaken(0) {
}
void CHammerDispensorButton::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldF8, indent);
- file->writeNumberLine(_fieldFC, indent);
- file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_active, indent);
+ file->writeNumberLine(_open, indent);
+ file->writeNumberLine(_hitCounter, indent);
file->writeNumberLine(_btnPos.x, indent);
file->writeNumberLine(_btnPos.y, indent);
- file->writeNumberLine(_field110, indent);
+ file->writeNumberLine(_hammerTaken, indent);
CStartAction::save(file, indent);
}
void CHammerDispensorButton::load(SimpleFile *file) {
file->readNumber();
- _fieldF8 = file->readNumber();
- _fieldFC = file->readNumber();
- _field100 = file->readNumber();
+ _active = file->readNumber();
+ _open = file->readNumber();
+ _hitCounter = file->readNumber();
_btnPos.x = file->readNumber();
_btnPos.y = file->readNumber();
- _field110 = file->readNumber();
+ _hammerTaken = file->readNumber();
CStartAction::load(file);
}
bool CHammerDispensorButton::PuzzleSolvedMsg(CPuzzleSolvedMsg *msg) {
- _fieldF8 = 1;
+ _active = true;
return true;
}
@@ -75,54 +75,47 @@ bool CHammerDispensorButton::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
bool CHammerDispensorButton::ActMsg(CActMsg *msg) {
if (msg->_action == "HammerTaken")
- _field110 = true;
+ _hammerTaken = true;
return true;
}
bool CHammerDispensorButton::FrameMsg(CFrameMsg *msg) {
- if (!_fieldF8)
+ if (!_active)
return true;
- if (!_field10C) {
+ if (!_perch) {
CGameObject *obj = getDraggingObject();
if (obj) {
if (obj->isEquals("Perch") && getView() == findView())
- _field10C = obj;
+ _perch = static_cast<CPerch *>(obj);
}
}
- if (_field10C) {
- Point pt(_btnPos.x + _bounds.left, _btnPos.y + _bounds.top);
+ if (_perch) {
+ Point pt(_btnPos.x + _perch->_bounds.left, _btnPos.y + _perch->_bounds.top);
bool flag = checkPoint(pt, true);
- switch (_fieldFC) {
- case 0:
+ if (!_open) {
if (flag) {
playSound("z#93.wav");
- if (++_field100 == 5) {
- if (!_field110) {
+ if (++_hitCounter == 5) {
+ if (!_hammerTaken) {
CActMsg actMsg(_msgAction);
actMsg.execute(_msgTarget);
}
setVisible(false);
- _fieldF8 = 0;
- _field100 = 0;
+ _active = false;
+ _hitCounter = 0;
}
- _fieldFC = 1;
+ _open = true;
}
- break;
-
- case 1:
+ } else {
if (!flag) {
- _fieldFC = 0;
- ++_field100;
+ _open = false;
+ ++_hitCounter;
}
- break;
-
- default:
- break;
}
}
@@ -130,15 +123,15 @@ bool CHammerDispensorButton::FrameMsg(CFrameMsg *msg) {
}
bool CHammerDispensorButton::LeaveViewMsg(CLeaveViewMsg *msg) {
- _field10C = nullptr;
- _field100 = 0;
- _fieldFC = 0;
+ _perch = nullptr;
+ _hitCounter = 0;
+ _open = false;
return true;
}
bool CHammerDispensorButton::EnterViewMsg(CEnterViewMsg *msg) {
setVisible(true);
- _fieldF8 = 1;
+ _active = true;
return true;
}
diff --git a/engines/titanic/game/hammer_dispensor_button.h b/engines/titanic/game/hammer_dispensor_button.h
index f497b9d..0194021 100644
--- a/engines/titanic/game/hammer_dispensor_button.h
+++ b/engines/titanic/game/hammer_dispensor_button.h
@@ -24,6 +24,7 @@
#define TITANIC_HAMMER_DISPENSOR_BUTTON_H
#include "titanic/game/start_action.h"
+#include "titanic/carry/perch.h"
namespace Titanic {
@@ -36,12 +37,12 @@ class CHammerDispensorButton : public CStartAction {
bool LeaveViewMsg(CLeaveViewMsg *msg);
bool EnterViewMsg(CEnterViewMsg *msg);
private:
- int _fieldF8;
- int _fieldFC;
- int _field100;
+ bool _active;
+ bool _open;
+ int _hitCounter;
Point _btnPos;
- CGameObject *_field10C;
- int _field110;
+ CPerch *_perch;
+ bool _hammerTaken;
public:
CLASSDEF;
CHammerDispensorButton();
Commit: e2dba404a611fd33c522c4a462c4493ce0a52208
https://github.com/scummvm/scummvm/commit/e2dba404a611fd33c522c4a462c4493ce0a52208
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-01-03T17:23:33-05:00
Commit Message:
TITANIC: Cleanup and fixes for starling puret
Changed paths:
engines/titanic/game/fan_control.cpp
engines/titanic/game/fan_control.h
engines/titanic/npcs/starlings.cpp
engines/titanic/npcs/starlings.h
diff --git a/engines/titanic/game/fan_control.cpp b/engines/titanic/game/fan_control.cpp
index b3c3b2e..823bf94 100644
--- a/engines/titanic/game/fan_control.cpp
+++ b/engines/titanic/game/fan_control.cpp
@@ -32,17 +32,17 @@ BEGIN_MESSAGE_MAP(CFanControl, CGameObject)
ON_MESSAGE(TimerMsg)
END_MESSAGE_MAP()
-CFanControl::CFanControl() : CGameObject(), _state(-1),
- _enabled(false), _fieldC4(0), _fieldC8(false), _fieldCC(0) {
+CFanControl::CFanControl() : CGameObject(), _state(-1), _enabled(false),
+ _starlings(false), _fanOn(false), _starlingsDying(false) {
}
void CFanControl::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
file->writeNumberLine(_state, indent);
file->writeNumberLine(_enabled, indent);
- file->writeNumberLine(_fieldC4, indent);
- file->writeNumberLine(_fieldC8, indent);
- file->writeNumberLine(_fieldCC, indent);
+ file->writeNumberLine(_starlings, indent);
+ file->writeNumberLine(_fanOn, indent);
+ file->writeNumberLine(_starlingsDying, indent);
CGameObject::save(file, indent);
}
@@ -51,9 +51,9 @@ void CFanControl::load(SimpleFile *file) {
file->readNumber();
_state = file->readNumber();
_enabled = file->readNumber();
- _fieldC4 = file->readNumber();
- _fieldC8 = file->readNumber();
- _fieldCC = file->readNumber();
+ _starlings = file->readNumber();
+ _fanOn = file->readNumber();
+ _starlingsDying = file->readNumber();
CGameObject::load(file);
}
@@ -64,22 +64,23 @@ bool CFanControl::ActMsg(CActMsg *msg) {
else if (msg->_action == "DisableObject")
_enabled = false;
else if (msg->_action == "StarlingsDead") {
- _fieldC4 = 0;
+ _starlings = false;
decTransitions();
- _fieldCC = 0;
+ _starlingsDying = false;
}
return true;
}
bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) {
- if (!_fieldCC) {
+ if (!_starlingsDying) {
playSound("z#42.wav");
if (_enabled) {
switch (msg->_newStatus) {
case 1:
- _fieldC8 = !_fieldC8;
- if (_fieldC8) {
+ // Fan Power button
+ _fanOn = !_fanOn;
+ if (_fanOn) {
playMovie(6, 8, 0);
_state = 0;
} else {
@@ -104,7 +105,8 @@ bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) {
break;
case 2:
- if (_fieldC8) {
+ // Fan Speed button
+ if (_fanOn) {
_state = (_state + 1) % 4;
switch (_state) {
case 0:
@@ -115,9 +117,10 @@ bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) {
playMovie(8, 12, 0);
break;
case 2:
- if (_fieldC4) {
+ if (_starlings) {
+ // It's puret time
incTransitions();
- _fieldCC = 1;
+ _starlingsDying = true;
playMovie(12, 18, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
} else {
playMovie(12, 18, 0);
diff --git a/engines/titanic/game/fan_control.h b/engines/titanic/game/fan_control.h
index 1f7402d..063243c 100644
--- a/engines/titanic/game/fan_control.h
+++ b/engines/titanic/game/fan_control.h
@@ -37,9 +37,9 @@ class CFanControl : public CGameObject {
public:
int _state;
bool _enabled;
- int _fieldC4;
- bool _fieldC8;
- int _fieldCC;
+ bool _starlings;
+ bool _fanOn;
+ bool _starlingsDying;
public:
CLASSDEF;
CFanControl();
diff --git a/engines/titanic/npcs/starlings.cpp b/engines/titanic/npcs/starlings.cpp
index 7e5907f..ff1c40c 100644
--- a/engines/titanic/npcs/starlings.cpp
+++ b/engines/titanic/npcs/starlings.cpp
@@ -29,34 +29,39 @@ BEGIN_MESSAGE_MAP(CStarlings, CCharacter)
ON_MESSAGE(StatusChangeMsg)
END_MESSAGE_MAP()
-CStarlings::CStarlings() : CCharacter(), _enabled(false) {
+bool CStarlings::_dead;
+
+CStarlings::CStarlings() : CCharacter() {
}
void CStarlings::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_enabled, indent);
+ file->writeNumberLine(_dead, indent);
CCharacter::save(file, indent);
}
void CStarlings::load(SimpleFile *file) {
file->readNumber();
- _enabled = file->readNumber();
+ _dead = file->readNumber();
CCharacter::load(file);
}
bool CStarlings::EnterViewMsg(CEnterViewMsg *msg) {
- if (_enabled)
+ if (_dead)
+ // Tis but a flesh wound
setVisible(false);
else
+ // Repeatedly play the starlings flying
playMovie(MOVIE_REPEAT);
return true;
}
bool CStarlings::StatusChangeMsg(CStatusChangeMsg *msg) {
- _enabled = msg->_newStatus == 1;
- setVisible(!_enabled);
+ // I'm not dead.. I'm getting better.
+ _dead = msg->_newStatus == 1;
+ setVisible(!_dead);
return true;
}
diff --git a/engines/titanic/npcs/starlings.h b/engines/titanic/npcs/starlings.h
index 1998e64..4885777 100644
--- a/engines/titanic/npcs/starlings.h
+++ b/engines/titanic/npcs/starlings.h
@@ -32,7 +32,8 @@ class CStarlings : public CCharacter {
bool EnterViewMsg(CEnterViewMsg *msg);
bool StatusChangeMsg(CStatusChangeMsg *msg);
private:
- bool _enabled;
+ // This needs to be static to be shared across all starling instances
+ static bool _dead;
public:
CLASSDEF;
CStarlings();
Commit: ba77ec28b99394540d5871f45d61e4ac432cf1b9
https://github.com/scummvm/scummvm/commit/ba77ec28b99394540d5871f45d61e4ac432cf1b9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-01-03T17:34:23-05:00
Commit Message:
TITANIC: Fix initial display of fan control indicator
Changed paths:
engines/titanic/game/fan_control.cpp
diff --git a/engines/titanic/game/fan_control.cpp b/engines/titanic/game/fan_control.cpp
index 823bf94..ca66476 100644
--- a/engines/titanic/game/fan_control.cpp
+++ b/engines/titanic/game/fan_control.cpp
@@ -149,16 +149,20 @@ bool CFanControl::StatusChangeMsg(CStatusChangeMsg *msg) {
bool CFanControl::EnterViewMsg(CEnterViewMsg *msg) {
switch (_state) {
- case 0:
+ case -1:
+ // Fan off
loadFrame(6);
break;
- case 1:
+ case 0:
+ // Low speed
loadFrame(4);
break;
- case 2:
+ case 1:
+ // Medium speed
loadFrame(0);
break;
- case 3:
+ case 2:
+ // High speed
loadFrame(18);
break;
default:
More information about the Scummvm-git-logs
mailing list