aboutsummaryrefslogtreecommitdiff
path: root/kyra
diff options
context:
space:
mode:
authorJohannes Schickel2005-12-13 16:56:33 +0000
committerJohannes Schickel2005-12-13 16:56:33 +0000
commit7cb66e3cf751d9750e5d5479cd8d280971d9ef23 (patch)
tree6669b78a2993c97172689b7a6c70065938c2fbf0 /kyra
parent31a7c1f0739865556a0f4d1f322508a38ebd553d (diff)
downloadscummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.tar.gz
scummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.tar.bz2
scummvm-rg350-7cb66e3cf751d9750e5d5479cd8d280971d9ef23.zip
Implemented more of sceneScreenInit and completed transcendScenes.
svn-id: r19796
Diffstat (limited to 'kyra')
-rw-r--r--kyra/kyra.cpp29
-rw-r--r--kyra/kyra.h1
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];