diff options
author | Johannes Schickel | 2005-12-13 16:56:33 +0000 |
---|---|---|
committer | Johannes Schickel | 2005-12-13 16:56:33 +0000 |
commit | 7cb66e3cf751d9750e5d5479cd8d280971d9ef23 (patch) | |
tree | 6669b78a2993c97172689b7a6c70065938c2fbf0 | |
parent | 31a7c1f0739865556a0f4d1f322508a38ebd553d (diff) | |
download | scummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.tar.gz scummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.tar.bz2 scummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.zip |
Implemented more of sceneScreenInit and completed transcendScenes.
svn-id: r19796
-rw-r--r-- | kyra/kyra.cpp | 29 | ||||
-rw-r--r-- | kyra/kyra.h | 1 |
2 files changed, 18 insertions, 12 deletions
diff --git a/kyra/kyra.cpp b/kyra/kyra.cpp index 244f1c47fb..bbd9116ef2 100644 --- a/kyra/kyra.cpp +++ b/kyra/kyra.cpp @@ -367,6 +367,10 @@ int KyraEngine::init(GameDetector &detector) { _lastProcessedItemHeight = 16; _hidPage = _screenPage = 0; + + _unkScreenVar1 = 1; + _unkScreenVar2 = 0; + _unkScreenVar3 = 0; return 0; } @@ -1346,15 +1350,15 @@ void KyraEngine::transcendScenes(int roomIndex, int roomName) { _res->unloadPakFile(file); } _roomTable[roomIndex].nameIndex = roomName; - // _game_unkScreenVar2 = 1; - // _game_unkScreenVar3 = 1; - // _game_unkScreenVar1 = 0; + _unkScreenVar2 = 1; + _unkScreenVar3 = 1; + _unkScreenVar1 = 0; _brandonPosX = _currentCharacter->x1; _brandonPosY = _currentCharacter->y1; enterNewScene(roomIndex, _currentCharacter->facing, 0, 0, 0); - // _game_unkScreenVar1 = 1; - // _game_unkScreenVar2 = 0; - // _game_unkScreenVar3 = 0; + _unkScreenVar1 = 1; + _unkScreenVar2 = 0; + _unkScreenVar3 = 0; } void KyraEngine::moveCharacterToPos(int character, int facing, int xpos, int ypos) { @@ -1623,11 +1627,8 @@ void KyraEngine::startSceneScript(int brandonAlive) { _sprites->loadSceneShapes(); _exitListPtr = 0; - _screen->fillRect(7, 7, 312, 136, 0, 0); _screen->setScreenPalette(_screen->_currentPalette); - _screen->copyRegion(7, 7, 7, 7, 305, 129, 3, 0); - _screen->updateScreen(); - + _scaleMode = 1; for (int i = 0; i < 145; ++i) { _scaleTable[i] = 256; @@ -2044,8 +2045,12 @@ void KyraEngine::initSceneObjectList(int brandonAlive) { void KyraEngine::initSceneScreen(int brandonAlive) { // XXX (Pointless?) Palette stuff - //_screen->shuffleScreen(8, 8, 0x130, 0x80, 2, 0, byte_2EE1C); - _screen->copyRegion(1, 8, 1, 8, 304, 0x80, 2, 0); + if (_unkScreenVar2 == 1) { + _screen->shuffleScreen(8, 8, 304, 128, 2, 0, _unkScreenVar3, false); + } else { + _screen->copyRegion(8, 8, 8, 8, 304, 128, 2, 0); + } + _screen->updateScreen(); // XXX More (pointless?) palette stuff if (!_scriptInterpreter->startScript(_scriptClick, 2)) diff --git a/kyra/kyra.h b/kyra/kyra.h index f2054dc396..9deb490962 100644 --- a/kyra/kyra.h +++ b/kyra/kyra.h @@ -580,6 +580,7 @@ protected: int _mouseState; bool _handleInput; bool _updateScreen; + int _unkScreenVar1, _unkScreenVar2, _unkScreenVar3; WSAMovieV1 *_wsaObjects[10]; uint16 _entranceMouseCursorTracks[8]; |