PINK: added deserialization of Peril PDA Commands

This commit is contained in:
Andrei Prykhodko
2018-06-29 17:46:55 +03:00
parent 012eedd4c7
commit 5378db3dc0
4 changed files with 36 additions and 12 deletions
@@ -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());
+15 -5
View File
@@ -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;
+2 -2
View File
@@ -40,10 +40,10 @@ void PDAMgr::saveState(Archive &archive) {
void PDAMgr::execute(const Command &command) {
switch (command.type) {
case Command::GoToPage:
case Command::kGoToPage:
goToPage(command.arg);
break;
case Command::Close:
case Command::kClose:
close();
break;
default:
+2 -2
View File
@@ -102,6 +102,8 @@ public:
void changeScene();
bool isPeril();
void setVariable(Common::String &variable, Common::String &value);
bool checkValueOfVariable(Common::String &variable, Common::String &value);
@@ -124,8 +126,6 @@ private:
void addModule(const Common::String &moduleName);
void removeModule();
bool isPeril();
private:
Console *_console;
Common::RandomSource _rnd;