From 2a2eaebdc294a7958260ed40d48fef25e1396355 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 6 May 2016 18:26:44 -0400 Subject: TITANIC: Implemented CCharacter message handlers --- engines/titanic/npcs/character.cpp | 29 +++++++++++++++++++++++++++++ engines/titanic/npcs/character.h | 4 ++++ 2 files changed, 33 insertions(+) (limited to 'engines/titanic/npcs') diff --git a/engines/titanic/npcs/character.cpp b/engines/titanic/npcs/character.cpp index b8112ce56b..df905d98b3 100644 --- a/engines/titanic/npcs/character.cpp +++ b/engines/titanic/npcs/character.cpp @@ -24,6 +24,12 @@ namespace Titanic { +BEGIN_MESSAGE_MAP(CCharacter, CGameObject) + ON_MESSAGE(LeaveViewMsg) + ON_MESSAGE(TurnOn) + ON_MESSAGE(TurnOff) +END_MESSAGE_MAP() + CCharacter::CCharacter() : CGameObject(), _fieldBC(0), _fieldC0(0), _fieldC4(1) { } @@ -47,4 +53,27 @@ void CCharacter::load(SimpleFile *file) { CGameObject::load(file); } +bool CCharacter::LeaveViewMsg(CLeaveViewMsg *msg) { + CTurnOff offMsg; + offMsg.execute(this); + + return true; +} + +bool CCharacter::TurnOn(CTurnOn *msg) { + if (!_fieldC4) + _fieldC4 = 1; + + return true; +} + +bool CCharacter::TurnOff(CTurnOff *msg) { + CString charName = getName(); + if (charName == "Deskbot" || charName == "Barbot" || charName == "SuccUBus") { + _fieldC4 = 0; + } + + return true; +} + } // End of namespace Titanic diff --git a/engines/titanic/npcs/character.h b/engines/titanic/npcs/character.h index 2fb83e9288..c0cc8ff65f 100644 --- a/engines/titanic/npcs/character.h +++ b/engines/titanic/npcs/character.h @@ -28,6 +28,10 @@ namespace Titanic { class CCharacter : public CGameObject { + DECLARE_MESSAGE_MAP + bool LeaveViewMsg(CLeaveViewMsg *msg); + bool TurnOn(CTurnOn *msg); + bool TurnOff(CTurnOff *msg); protected: int _fieldBC; int _fieldC0; -- cgit v1.2.3