aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe/scenes.cpp')
-rw-r--r--engines/fullpipe/scenes.cpp32
1 files changed, 27 insertions, 5 deletions
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 4b50763e8c..bb141d98c4 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -519,6 +519,17 @@ int FullpipeEngine::getSceneFromTag(int tag) {
return 1;
}
+void FullpipeEngine::sceneAutoScrolling() {
+ if (_aniMan2 == _aniMan && _currentScene && !_currentScene->_messageQueueId) {
+ if (800 - _mouseScreenPos.x >= 47 || _sceneRect.right >= _sceneWidth - 1 || _aniMan->_ox <= _sceneRect.left + 230) {
+ if (_mouseScreenPos.x < 47 && _sceneRect.left > 0 && _aniMan->_ox < _sceneRect.right - 230)
+ _currentScene->_x = -10;
+ } else {
+ _currentScene->_x = 10;
+ }
+ }
+}
+
bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
GameVar *sceneVar;
Common::Point sceneDim;
@@ -542,8 +553,8 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
_aniMan->setOXY(0, 0);
_aniMan->clearFlags();
- _aniMan->_callback1 = 0;
- _aniMan->_callback2 = 0;
+ _aniMan->_callback1 = 0; // Really NULL
+ _aniMan->_callback2 = 0; // Really NULL
_aniMan->_shadowsOn = 1;
_scrollSpeed = 8;
@@ -605,12 +616,23 @@ bool FullpipeEngine::sceneSwitcher(EntranceInfo *entrance) {
case SC_INTRO1:
sceneVar = _gameLoader->_gameVar->getSubVarByName("SC_INTRO1");
scene->preloadMovements(sceneVar);
- sceneIntro_initScene(scene);
+
+ if (!(g_fp->isDemo() && g_fp->getLanguage() == Common::RU_RUS))
+ sceneIntro_initScene(scene);
+ else
+ sceneIntroDemo_initScene(scene);
+
_behaviorManager->initBehavior(scene, sceneVar);
scene->initObjectCursors("SC_INTRO1");
setSceneMusicParameters(sceneVar);
- addMessageHandler(sceneHandlerIntro, 2);
- _updateCursorCallback = sceneIntro_updateCursor;
+
+ if (!(g_fp->isDemo() && g_fp->getLanguage() == Common::RU_RUS)) {
+ addMessageHandler(sceneHandlerIntro, 2);
+ _updateCursorCallback = sceneIntro_updateCursor;
+ } else {
+ addMessageHandler(sceneHandlerIntroDemo, 2);
+ _updateCursorCallback = sceneIntroDemo_updateCursor;
+ }
break;
case SC_1: