[Scummvm-git-logs] scummvm master -> 4f13195e8c4f5301ec07b62de33ab23d2e7243d5

whiterandrek whiterandrek at gmail.com
Sat Jun 30 19:04:43 CEST 2018


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:
d38ed02895 PINK: removed comments about ActionLoop Random style
5294c8d252 PINK: fixed possible bug when curFrame is -1
4f13195e8c PINK: added PDA rightHand movement


Commit: d38ed02895574830708451e1e10f2986997981ed
    https://github.com/scummvm/scummvm/commit/d38ed02895574830708451e1e10f2986997981ed
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-30T19:43:34+03:00

Commit Message:
PINK: removed comments about ActionLoop Random style

Changed paths:
    engines/pink/objects/actions/action_loop.cpp


diff --git a/engines/pink/objects/actions/action_loop.cpp b/engines/pink/objects/actions/action_loop.cpp
index 9635101..18e9bf4 100644
--- a/engines/pink/objects/actions/action_loop.cpp
+++ b/engines/pink/objects/actions/action_loop.cpp
@@ -40,7 +40,7 @@ void ActionLoop::deserialize(Archive &archive) {
 		_style = kPingPong;
 		break;
 	case kRandom:
-		_style = kRandom; // haven't seen
+		_style = kRandom;
 		break;
 	default:
 		_style = kForward;
@@ -83,7 +83,7 @@ void ActionLoop::update() {
 			decodeNext();
 		}
 		break;
-	case kRandom: { // Not tested
+	case kRandom: {
 		Common::RandomSource &rnd = _actor->getPage()->getGame()->getRnd();
 		setFrame(rnd.getRandomNumberRng(_startFrame, _stopFrame));
 		decodeNext();


Commit: 5294c8d25236472ac941d29e4f41310ebdaae0f5
    https://github.com/scummvm/scummvm/commit/5294c8d25236472ac941d29e4f41310ebdaae0f5
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-30T19:43:34+03:00

Commit Message:
PINK: fixed possible bug when curFrame is -1

Changed paths:
    engines/pink/objects/actions/action_loop.cpp


diff --git a/engines/pink/objects/actions/action_loop.cpp b/engines/pink/objects/actions/action_loop.cpp
index 18e9bf4..500a001 100644
--- a/engines/pink/objects/actions/action_loop.cpp
+++ b/engines/pink/objects/actions/action_loop.cpp
@@ -54,10 +54,10 @@ void ActionLoop::toConsole() {
 }
 
 void ActionLoop::update() {
-	uint frame = _decoder.getCurFrame();
+	int frame = _decoder.getCurFrame();
 
 	if (!_inLoop) {
-		if (frame < _startFrame) {
+		if (frame < (int)_startFrame) {
 			decodeNext();
 			return;
 		} else
@@ -67,7 +67,7 @@ void ActionLoop::update() {
 	switch (_style) {
 	case kPingPong:
 		if (_forward) {
-			if (frame < (uint)_stopFrame) {
+			if (frame < _stopFrame) {
 				decodeNext();
 			} else {
 				_forward = false;
@@ -75,7 +75,7 @@ void ActionLoop::update() {
 				decodeNext();
 			}
 		} else {
-			if (frame > _startFrame) {
+			if (frame > (int)_startFrame) {
 				setFrame(frame - 1);
 			} else {
 				_forward = true;
@@ -90,7 +90,7 @@ void ActionLoop::update() {
 		break;
 	}
 	case kForward:
-		if (frame == (uint)_stopFrame) {
+		if (frame == _stopFrame) {
 			setFrame(_startFrame);
 		}
 		decodeNext();


Commit: 4f13195e8c4f5301ec07b62de33ab23d2e7243d5
    https://github.com/scummvm/scummvm/commit/4f13195e8c4f5301ec07b62de33ab23d2e7243d5
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-30T20:04:11+03:00

Commit Message:
PINK: added PDA rightHand movement

Changed paths:
    engines/pink/constants.h
    engines/pink/objects/actions/action_loop.cpp
    engines/pink/objects/actions/action_play.cpp
    engines/pink/objects/actions/action_play_with_sfx.cpp
    engines/pink/objects/actions/action_still.cpp
    engines/pink/objects/actions/action_still.h
    engines/pink/objects/actors/lead_actor.cpp
    engines/pink/objects/actors/lead_actor.h
    engines/pink/pda_mgr.cpp
    engines/pink/pda_mgr.h
    engines/pink/pink.cpp


diff --git a/engines/pink/constants.h b/engines/pink/constants.h
index ce0e6a9..574f66d 100644
--- a/engines/pink/constants.h
+++ b/engines/pink/constants.h
@@ -208,6 +208,9 @@ static const char * const kNavigatePage = "NAVIGATE";
 
 static const char * const kSfx = "SFX";
 
+static const char * const kRightHand = "RightHand";
+static const char * const kLeftHand = "LeftHand";
+
 } // End of namespace Pink
 
 #endif
diff --git a/engines/pink/objects/actions/action_loop.cpp b/engines/pink/objects/actions/action_loop.cpp
index 500a001..ca649b2 100644
--- a/engines/pink/objects/actions/action_loop.cpp
+++ b/engines/pink/objects/actions/action_loop.cpp
@@ -71,12 +71,12 @@ void ActionLoop::update() {
 				decodeNext();
 			} else {
 				_forward = false;
-				setFrame(_stopFrame - 1);
+				ActionCEL::setFrame(_stopFrame - 1);
 				decodeNext();
 			}
 		} else {
 			if (frame > (int)_startFrame) {
-				setFrame(frame - 1);
+				ActionCEL::setFrame(frame - 1);
 			} else {
 				_forward = true;
 			}
@@ -85,13 +85,13 @@ void ActionLoop::update() {
 		break;
 	case kRandom: {
 		Common::RandomSource &rnd = _actor->getPage()->getGame()->getRnd();
-		setFrame(rnd.getRandomNumberRng(_startFrame, _stopFrame));
+		ActionCEL::setFrame(rnd.getRandomNumberRng(_startFrame, _stopFrame));
 		decodeNext();
 		break;
 	}
 	case kForward:
 		if (frame == _stopFrame) {
-			setFrame(_startFrame);
+			ActionCEL::setFrame(_startFrame);
 		}
 		decodeNext();
 		break;
diff --git a/engines/pink/objects/actions/action_play.cpp b/engines/pink/objects/actions/action_play.cpp
index e86ff55..6d23a8a 100644
--- a/engines/pink/objects/actions/action_play.cpp
+++ b/engines/pink/objects/actions/action_play.cpp
@@ -64,7 +64,7 @@ void ActionPlay::onStart() {
 	if (_stopFrame == -1 || _stopFrame >= frameCount)
 		_stopFrame = frameCount - 1;
 	assert(_startFrame < _decoder.getFrameCount());
-	setFrame(_startFrame);
+	ActionCEL::setFrame(_startFrame);
 	// doesn't need to decode startFrame here. Update method will decode
 }
 
diff --git a/engines/pink/objects/actions/action_play_with_sfx.cpp b/engines/pink/objects/actions/action_play_with_sfx.cpp
index be3f0ca..78c3022 100644
--- a/engines/pink/objects/actions/action_play_with_sfx.cpp
+++ b/engines/pink/objects/actions/action_play_with_sfx.cpp
@@ -52,7 +52,7 @@ void ActionPlayWithSfx::toConsole() {
 void ActionPlayWithSfx::update() {
 	int currFrame = _decoder.getCurFrame();
 	if (_isLoop && currFrame == _stopFrame) {
-		setFrame(_startFrame);
+		ActionCEL::setFrame(_startFrame);
 		decodeNext();
 	} else
 		ActionPlay::update();
diff --git a/engines/pink/objects/actions/action_still.cpp b/engines/pink/objects/actions/action_still.cpp
index 5bd645b..9c1ba08 100644
--- a/engines/pink/objects/actions/action_still.cpp
+++ b/engines/pink/objects/actions/action_still.cpp
@@ -52,8 +52,7 @@ void ActionStill::onStart() {
 	if (_startFrame >= _decoder.getFrameCount())
 		_startFrame = 0;
 
-	setFrame(_startFrame); // seek to frame before startFrame
-	decodeNext(); // decode startFrame
+	setFrame(_startFrame);
 
 	_decoder.setEndOfTrack();
 	assert(!_decoder.needsUpdate());
@@ -61,4 +60,9 @@ void ActionStill::onStart() {
 	_actor->endAction();
 }
 
+void ActionStill::setFrame(uint frame) {
+	ActionCEL::setFrame(frame);
+	decodeNext();
+}
+
 } // End of namespace Pink
diff --git a/engines/pink/objects/actions/action_still.h b/engines/pink/objects/actions/action_still.h
index a9b2d52..e3fb386 100644
--- a/engines/pink/objects/actions/action_still.h
+++ b/engines/pink/objects/actions/action_still.h
@@ -37,6 +37,8 @@ public:
 
 	void pause(bool paused) override;
 
+	void setFrame(uint frame);
+
 protected:
 	void onStart() override;
 
diff --git a/engines/pink/objects/actors/lead_actor.cpp b/engines/pink/objects/actors/lead_actor.cpp
index 0ce5a5a..e74434a 100644
--- a/engines/pink/objects/actors/lead_actor.cpp
+++ b/engines/pink/objects/actors/lead_actor.cpp
@@ -244,6 +244,11 @@ void LeadActor::onLeftButtonClick(const Common::Point point) {
 	}
 }
 
+void LeadActor::onLeftButtonUp(const Common::Point point) {
+	if (_state == kPDA)
+		_page->getGame()->getPdaMgr().onLeftButtonUp(point);
+}
+
 void LeadActor::onRightButtonClick(const Common::Point point) {
 	if (_state == kReady || _state == kMoving) {
 		Actor *clickedActor = getActorByPoint(point);
diff --git a/engines/pink/objects/actors/lead_actor.h b/engines/pink/objects/actors/lead_actor.h
index ff38ef9..543ee3f 100644
--- a/engines/pink/objects/actors/lead_actor.h
+++ b/engines/pink/objects/actors/lead_actor.h
@@ -70,6 +70,7 @@ public:
 
 	void onKeyboardButtonClick(Common::KeyCode code);
 	void onLeftButtonClick(const Common::Point point);
+	void onLeftButtonUp(const Common::Point point);
 	void onRightButtonClick(const Common::Point point);
 
 	void onMouseMove(const Common::Point point);
diff --git a/engines/pink/pda_mgr.cpp b/engines/pink/pda_mgr.cpp
index 9b856da..2728ac1 100644
--- a/engines/pink/pda_mgr.cpp
+++ b/engines/pink/pda_mgr.cpp
@@ -25,7 +25,7 @@
 #include "pink/objects/actors/pda_button_actor.h"
 #include "pink/objects/actors/lead_actor.h"
 #include "pink/objects/pages/pda_page.h"
-#include "pink/objects/actions/action_cel.h"
+#include "pink/objects/actions/action_still.h"
 
 namespace Pink {
 
@@ -115,11 +115,20 @@ void PDAMgr::goToPage(const Common::String &pageName) {
 }
 
 void PDAMgr::onLeftButtonClick(Common::Point point) {
+	Actor* _rightHand = _globalPage->findActor(kRightHand);
+	if (_rightHand)
+		static_cast<ActionStill*>(_rightHand->getAction())->setFrame(1);
 	Actor *actor = _game->getDirector()->getActorByPoint(point);
 	if (actor)
 		actor->onLeftClickMessage();
 }
 
+void PDAMgr::onLeftButtonUp(Common::Point point) {
+	Actor* _rightHand = _globalPage->findActor(kRightHand);
+	if (_rightHand)
+		static_cast<ActionStill*>(_rightHand->getAction())->setFrame(0);
+}
+
 void PDAMgr::onMouseMove(Common::Point point) {
 	Actor *actor = _game->getDirector()->getActorByPoint(point);
 	if (actor && dynamic_cast<PDAButtonActor *>(actor))
diff --git a/engines/pink/pda_mgr.h b/engines/pink/pda_mgr.h
index f234407..19df2c9 100644
--- a/engines/pink/pda_mgr.h
+++ b/engines/pink/pda_mgr.h
@@ -51,6 +51,7 @@ public:
 	void update() { _cursorMgr.update(); }
 
 	void onLeftButtonClick(Common::Point point);
+	void onLeftButtonUp(Common::Point point);
 	void onMouseMove(Common::Point point);
 
 	PinkEngine *getGame() const { return _game; }
diff --git a/engines/pink/pink.cpp b/engines/pink/pink.cpp
index c023fe6..fc135a1 100644
--- a/engines/pink/pink.cpp
+++ b/engines/pink/pink.cpp
@@ -120,6 +120,8 @@ Common::Error Pink::PinkEngine::run() {
 			case Common::EVENT_LBUTTONDOWN:
 				_actor->onLeftButtonClick(event.mouse);
 				break;
+			case Common::EVENT_LBUTTONUP:
+				_actor->onLeftButtonUp(event.mouse);
 			case Common::EVENT_RBUTTONDOWN:
 				if (isPeril())
 					_actor->onRightButtonClick(event.mouse);





More information about the Scummvm-git-logs mailing list