From 5378db3dc0caa00a965e0bd456622f604ed37128 Mon Sep 17 00:00:00 2001 From: Andrei Prykhodko Date: Fri, 29 Jun 2018 17:03:35 +0300 Subject: PINK: added deserialization of Peril PDA Commands --- engines/pink/objects/actors/pda_button_actor.cpp | 20 +++++++++++++++++--- engines/pink/objects/actors/pda_button_actor.h | 20 +++++++++++++++----- 2 files changed, 32 insertions(+), 8 deletions(-) (limited to 'engines/pink/objects') diff --git a/engines/pink/objects/actors/pda_button_actor.cpp b/engines/pink/objects/actors/pda_button_actor.cpp index 972dc28afe..a3c6eea29c 100644 --- a/engines/pink/objects/actors/pda_button_actor.cpp +++ b/engines/pink/objects/actors/pda_button_actor.cpp @@ -36,8 +36,22 @@ void PDAButtonActor::deserialize(Archive &archive) { _opaque = (bool)archive.readDWORD(); int type = archive.readDWORD(); - assert(type != 0); - _command.type = (Command::CommandType) type; + assert(type != 0 && type != Command::kIncrementFrame && type != Command::kDecrementFrame); + if (_page->getGame()->isPeril()) { + _command.type = (Command::CommandType) type; + } else { + switch (type) { + case 1: + _command.type = Command::kGoToPage; + break; + case 2: + _command.type = Command::kClose; + break; + default: + _command.type = Command::kNull; + break; + } + } _command.arg = archive.readString(); } @@ -53,7 +67,7 @@ void PDAButtonActor::onLeftClickMessage() { } void PDAButtonActor::onMouseOver(const Common::Point point, CursorMgr *mgr) { - if (_command.type == Command::Unk || !isActive()) + if (_command.type == Command::kNull || !isActive()) mgr->setCursor(kPDADefaultCursor, point, Common::String()); else mgr->setCursor(kPDAClickableFirstFrameCursor, point, Common::String()); diff --git a/engines/pink/objects/actors/pda_button_actor.h b/engines/pink/objects/actors/pda_button_actor.h index c10f2ef5ab..d2c8b24d81 100644 --- a/engines/pink/objects/actors/pda_button_actor.h +++ b/engines/pink/objects/actors/pda_button_actor.h @@ -28,11 +28,21 @@ namespace Pink { struct Command { - // commands in peril are different - /*enum PerilCommandType {Null, GoToPage, GoToPreviousPage, GoToDomain, GoToHelp, - NavigateToDomain, IncrementCountry, DecrementCountry, IncrementDomain, - DecrementDomain, Close, IncrementFrame, DecrementFrame};*/ - enum CommandType {Null = 0, GoToPage = 1, Close = 2, Unk = 3}; + enum CommandType { + kGoToPage = 1, + kGoToPreviousPage, + kGoToDomain, + kGoToHelp, // won't be supported + kNavigateToDomain, + kIncrementCountry, + kDecrementCountry, + kIncrementDomain, + kDecrementDomain, + kClose, + kIncrementFrame, // not used + kDecrementFrame, // not used + kNull + }; CommandType type; Common::String arg; -- cgit v1.2.3