[Scummvm-git-logs] scummvm master -> 821f0c60f80c15415ce4649e61875a0913fd5cf5

whiterandrek whiterandrek at gmail.com
Fri Jun 29 16:49:36 CEST 2018


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

Summary:
012eedd4c7 PINK: added screen cleaning when entering/exiting to/from PDA
5378db3dc0 PINK: added deserialization of Peril PDA Commands
8af0e2c7cc PINK: fixed PDAButtonActor::isActive method
247ba1f587 PINK: fixed mem leak
91d40fdd69 PINK: implemented GoToPreviousPage command
821f0c60f8 PINK: fixed showing old screen content with new palette


Commit: 012eedd4c7cab43b6678abdfe7fde9ffa9e01fb1
    https://github.com/scummvm/scummvm/commit/012eedd4c7cab43b6678abdfe7fde9ffa9e01fb1
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:46:55+03:00

Commit Message:
PINK: added screen cleaning when entering/exiting to/from PDA

Changed paths:
    engines/pink/director.cpp


diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index b8c9a1b..0af7912 100644
--- a/engines/pink/director.cpp
+++ b/engines/pink/director.cpp
@@ -90,11 +90,12 @@ void Director::pause(bool pause_) {
 
 void Director::saveStage() {
 	_savedSprites = _sprites;
-	_sprites.clear();
+	clear();
 }
 
 void Director::loadStage() {
 	assert(_sprites.empty());
+	_dirtyRects.push_back(Common::Rect(0, 0, 640, 480));
 	_sprites = _savedSprites;
 	_savedSprites.clear();
 }


Commit: 5378db3dc0caa00a965e0bd456622f604ed37128
    https://github.com/scummvm/scummvm/commit/5378db3dc0caa00a965e0bd456622f604ed37128
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:46:55+03:00

Commit Message:
PINK: added deserialization of Peril PDA Commands

Changed paths:
    engines/pink/objects/actors/pda_button_actor.cpp
    engines/pink/objects/actors/pda_button_actor.h
    engines/pink/pda_mgr.cpp
    engines/pink/pink.h


diff --git a/engines/pink/objects/actors/pda_button_actor.cpp b/engines/pink/objects/actors/pda_button_actor.cpp
index 972dc28..a3c6eea 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 c10f2ef..d2c8b24 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;
diff --git a/engines/pink/pda_mgr.cpp b/engines/pink/pda_mgr.cpp
index 1623b55..01ca5a2 100644
--- a/engines/pink/pda_mgr.cpp
+++ b/engines/pink/pda_mgr.cpp
@@ -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:
diff --git a/engines/pink/pink.h b/engines/pink/pink.h
index e5dc407..11d9bcb 100644
--- a/engines/pink/pink.h
+++ b/engines/pink/pink.h
@@ -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;


Commit: 8af0e2c7cc15c23269c73902c88343b0b49ce512
    https://github.com/scummvm/scummvm/commit/8af0e2c7cc15c23269c73902c88343b0b49ce512
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:46:55+03:00

Commit Message:
PINK: fixed PDAButtonActor::isActive method

Changed paths:
    engines/pink/objects/actors/pda_button_actor.cpp


diff --git a/engines/pink/objects/actors/pda_button_actor.cpp b/engines/pink/objects/actors/pda_button_actor.cpp
index a3c6eea..10dd563 100644
--- a/engines/pink/objects/actors/pda_button_actor.cpp
+++ b/engines/pink/objects/actors/pda_button_actor.cpp
@@ -25,6 +25,7 @@
 #include "pink/pink.h"
 #include "pink/objects/pages/page.h"
 #include "pink/objects/actors/pda_button_actor.h"
+#include "pink/objects/actions/action.h"
 
 namespace Pink {
 
@@ -74,7 +75,7 @@ void PDAButtonActor::onMouseOver(const Common::Point point, CursorMgr *mgr) {
 }
 
 bool PDAButtonActor::isActive() {
-	return _name != "Inactive";
+	return _action && _action->getName() != "Inactive";
 }
 
 } // End of namespace Pink


Commit: 247ba1f587929da7040e4d278d51c31a3a4d18ba
    https://github.com/scummvm/scummvm/commit/247ba1f587929da7040e4d278d51c31a3a4d18ba
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:46:55+03:00

Commit Message:
PINK: fixed mem leak

Changed paths:
    engines/pink/pda_mgr.cpp
    engines/pink/pda_mgr.h


diff --git a/engines/pink/pda_mgr.cpp b/engines/pink/pda_mgr.cpp
index 01ca5a2..8e8b6ec 100644
--- a/engines/pink/pda_mgr.cpp
+++ b/engines/pink/pda_mgr.cpp
@@ -31,6 +31,13 @@ namespace Pink {
 PDAMgr::PDAMgr(Pink::PinkEngine *game)
 	: _game(game), _page(nullptr), _cursorMgr(game, nullptr) {}
 
+PDAMgr::~PDAMgr() {
+	for (uint i = 0; i < _globalActors.size(); ++i) {
+		delete _globalActors[i];
+	}
+	delete _page;
+}
+
 void PDAMgr::saveState(Archive &archive) {
 	if (_page)
 		archive.writeString(_page->getName());
@@ -57,8 +64,9 @@ void PDAMgr::goToPage(const Common::String &pageName) {
 
 	loadGlobal();
 
+	PDAPage *newPage = new PDAPage(PDAPage::create(pageName, *this));
 	delete _page;
-	_page = new PDAPage(PDAPage::create(pageName, *this));
+	_page = newPage;
 
 	_page->init();
 
diff --git a/engines/pink/pda_mgr.h b/engines/pink/pda_mgr.h
index 6521539..08c3d96 100644
--- a/engines/pink/pda_mgr.h
+++ b/engines/pink/pda_mgr.h
@@ -23,6 +23,8 @@
 #ifndef PINK_PDA_MGR_H
 #define PINK_PDA_MGR_H
 
+#include "common/stack.h"
+
 #include "pink/cursor_mgr.h"
 #include "pink/utils.h"
 
@@ -38,6 +40,7 @@ struct Command;
 class PDAMgr {
 public:
 	PDAMgr(PinkEngine *game);
+	~PDAMgr();
 
 	void loadState(Archive &archive) { _savedPage = archive.readString(); }
 	void saveState(Archive &archive);


Commit: 91d40fdd69da3b4c0ecc7107c0e5488443ad376f
    https://github.com/scummvm/scummvm/commit/91d40fdd69da3b4c0ecc7107c0e5488443ad376f
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:46:55+03:00

Commit Message:
PINK: implemented GoToPreviousPage command

Changed paths:
    engines/pink/pda_mgr.cpp
    engines/pink/pda_mgr.h


diff --git a/engines/pink/pda_mgr.cpp b/engines/pink/pda_mgr.cpp
index 8e8b6ec..60b51a4 100644
--- a/engines/pink/pda_mgr.cpp
+++ b/engines/pink/pda_mgr.cpp
@@ -50,6 +50,12 @@ void PDAMgr::execute(const Command &command) {
 	case Command::kGoToPage:
 		goToPage(command.arg);
 		break;
+	case Command::kGoToPreviousPage: {
+		assert(_previousPages.size() >= 2);
+		_previousPages.pop();
+		goToPage(_previousPages.pop());
+		break;
+	}
 	case Command::kClose:
 		close();
 		break;
@@ -75,6 +81,8 @@ void PDAMgr::goToPage(const Common::String &pageName) {
 	}
 
 	_cursorMgr.setPage(_page);
+
+	_previousPages.push(_page->getName());
 }
 
 void PDAMgr::onLeftButtonClick(Common::Point point) {
diff --git a/engines/pink/pda_mgr.h b/engines/pink/pda_mgr.h
index 08c3d96..246679d 100644
--- a/engines/pink/pda_mgr.h
+++ b/engines/pink/pda_mgr.h
@@ -68,6 +68,7 @@ private:
 	CursorMgr _cursorMgr;
 	Array<Actor *> _globalActors;
 	Common::String _savedPage;
+	Common::Stack<Common::String> _previousPages;
 };
 
 } // End of namespace Pink


Commit: 821f0c60f80c15415ce4649e61875a0913fd5cf5
    https://github.com/scummvm/scummvm/commit/821f0c60f80c15415ce4649e61875a0913fd5cf5
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-29T17:49:21+03:00

Commit Message:
PINK: fixed showing old screen content with new palette

Changed paths:
    engines/pink/director.cpp


diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp
index 0af7912..966e1ca 100644
--- a/engines/pink/director.cpp
+++ b/engines/pink/director.cpp
@@ -80,6 +80,7 @@ void Director::removeSound(ActionSound *sound) {
 void Director::clear() {
 	_dirtyRects.push_back(Common::Rect(0, 0, 640, 480));
 	_sprites.resize(0);
+	draw();
 }
 
 void Director::pause(bool pause_) {





More information about the Scummvm-git-logs mailing list