[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