[Scummvm-git-logs] scummvm master -> 22f6c6639381adf3dfad45ba1cf430dd182e6322
whiterandrek
whiterandrek at gmail.com
Sat Jun 30 22:29:51 CEST 2018
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
22f6c66393 PINK: added thumb moving in PDA
Commit: 22f6c6639381adf3dfad45ba1cf430dd182e6322
https://github.com/scummvm/scummvm/commit/22f6c6639381adf3dfad45ba1cf430dd182e6322
Author: Andrei Prykhodko (whiterandrek at gmail.com)
Date: 2018-06-30T23:29:45+03:00
Commit Message:
PINK: added thumb moving in PDA
Changed paths:
engines/pink/constants.h
engines/pink/objects/actions/action_cel.h
engines/pink/objects/actions/action_still.cpp
engines/pink/objects/actions/action_still.h
engines/pink/pda_mgr.cpp
engines/pink/pda_mgr.h
diff --git a/engines/pink/constants.h b/engines/pink/constants.h
index 574f66d..18d994f 100644
--- a/engines/pink/constants.h
+++ b/engines/pink/constants.h
@@ -211,6 +211,11 @@ static const char * const kSfx = "SFX";
static const char * const kRightHand = "RightHand";
static const char * const kLeftHand = "LeftHand";
+static const char * const kLeft1Name = "Left1";
+static const char * const kLeft2Name = "Left2";
+static const char * const kLeft3Name = "Left3";
+static const char * const kLeft4Name = "Left4";
+
} // End of namespace Pink
#endif
diff --git a/engines/pink/objects/actions/action_cel.h b/engines/pink/objects/actions/action_cel.h
index 2a88350..729ad69 100644
--- a/engines/pink/objects/actions/action_cel.h
+++ b/engines/pink/objects/actions/action_cel.h
@@ -57,8 +57,8 @@ public:
protected:
virtual void onStart() = 0;
- void setFrame(uint frame);
void decodeNext();
+ void setFrame(uint frame);
void loadDecoder();
diff --git a/engines/pink/objects/actions/action_still.cpp b/engines/pink/objects/actions/action_still.cpp
index 9c1ba08..d0b2758 100644
--- a/engines/pink/objects/actions/action_still.cpp
+++ b/engines/pink/objects/actions/action_still.cpp
@@ -65,4 +65,9 @@ void ActionStill::setFrame(uint frame) {
decodeNext();
}
+void ActionStill::nextFrameLooped() {
+ assert(_decoder.getCurFrame() != -1);
+ setFrame((_decoder.getCurFrame() + 1) % _decoder.getFrameCount());
+}
+
} // End of namespace Pink
diff --git a/engines/pink/objects/actions/action_still.h b/engines/pink/objects/actions/action_still.h
index e3fb386..f43c2b0 100644
--- a/engines/pink/objects/actions/action_still.h
+++ b/engines/pink/objects/actions/action_still.h
@@ -39,6 +39,8 @@ public:
void setFrame(uint frame);
+ void nextFrameLooped();
+
protected:
void onStart() override;
diff --git a/engines/pink/pda_mgr.cpp b/engines/pink/pda_mgr.cpp
index 2728ac1..49b43cb 100644
--- a/engines/pink/pda_mgr.cpp
+++ b/engines/pink/pda_mgr.cpp
@@ -34,7 +34,8 @@ static const char * const g_domains[] = {"NAT", "CLO", "HIS", "REL", "PLA", "ART
PDAMgr::PDAMgr(Pink::PinkEngine *game)
: _game(game), _page(nullptr), _globalPage(nullptr),
- _cursorMgr(game, nullptr), _countryIndex(0), _domainIndex(0) {}
+ _cursorMgr(game, nullptr), _countryIndex(0), _domainIndex(0),
+ _iteration(0), _handFrame(0), _leftHandAction(kLeft1) {}
PDAMgr::~PDAMgr() {
delete _globalPage;
@@ -111,7 +112,6 @@ void PDAMgr::goToPage(const Common::String &pageName) {
initPerilButtons();
_cursorMgr.setPage(_page);
-
}
void PDAMgr::onLeftButtonClick(Common::Point point) {
@@ -135,6 +135,39 @@ void PDAMgr::onMouseMove(Common::Point point) {
actor->onMouseOver(point, &_cursorMgr);
else
_cursorMgr.setCursor(kPDADefaultCursor, point, Common::String());
+
+ if (!_game->isPeril())
+ return;
+
+ float k = (float)point.x / (480 - point.y);
+ Actor *leftHand = _globalPage->findActor(kLeftHand);
+ if (k > 0.5) {
+ if (k > 1) {
+ if (k > 1.5 && _leftHandAction != kLeft4) {
+ leftHand->setAction(kLeft4Name);
+ static_cast<ActionStill*>(leftHand->getAction())->setFrame(_handFrame + 1);
+ _leftHandAction = kLeft4;
+ } else if (_leftHandAction != kLeft3) {
+ leftHand->setAction(kLeft3Name);
+ static_cast<ActionStill*>(leftHand->getAction())->setFrame(_handFrame + 1);
+ _leftHandAction = kLeft3;
+ }
+ } else if (_leftHandAction != kLeft2) {
+ leftHand->setAction(kLeft2Name);
+ static_cast<ActionStill*>(leftHand->getAction())->setFrame(_handFrame + 1);
+ _leftHandAction = kLeft2;
+ }
+ } else if (_leftHandAction != kLeft1) {
+ leftHand->setAction(kLeft1Name);
+ static_cast<ActionStill*>(leftHand->getAction())->setFrame(_handFrame + 1);
+ _leftHandAction = kLeft1;
+ }
+
+ if (_iteration == 0) {
+ _handFrame = (_handFrame + 1) % 4;
+ static_cast<ActionStill*>(leftHand->getAction())->nextFrameLooped();
+ }
+ _iteration = (_iteration + 1) % 4;
}
void PDAMgr::close() {
diff --git a/engines/pink/pda_mgr.h b/engines/pink/pda_mgr.h
index 19df2c9..92ebcf1 100644
--- a/engines/pink/pda_mgr.h
+++ b/engines/pink/pda_mgr.h
@@ -79,8 +79,16 @@ private:
CursorMgr _cursorMgr;
Common::String _savedPage;
Common::Stack<Common::String> _previousPages;
- uint _countryIndex;
- uint _domainIndex;
+ uint16 _countryIndex;
+ uint16 _domainIndex;
+ uint16 _iteration;
+ uint16 _handFrame;
+ enum LeftHandAction {
+ kLeft1,
+ kLeft2,
+ kLeft3,
+ kLeft4
+ } _leftHandAction;
};
} // End of namespace Pink
More information about the Scummvm-git-logs
mailing list