aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/scene_mr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/scene_mr.cpp')
-rw-r--r--engines/kyra/scene_mr.cpp22
1 files changed, 9 insertions, 13 deletions
diff --git a/engines/kyra/scene_mr.cpp b/engines/kyra/scene_mr.cpp
index 07a7aa0d07..a68dcfb394 100644
--- a/engines/kyra/scene_mr.cpp
+++ b/engines/kyra/scene_mr.cpp
@@ -48,10 +48,8 @@ void KyraEngine_MR::enterNewScene(uint16 sceneId, int facing, int unk1, int unk2
}
musicUpdate(0);
- if (!unk3) {
- //XXX
+ if (!unk3)
musicUpdate(0);
- }
if (unk1) {
int x = _mainCharacter.x1;
@@ -88,7 +86,7 @@ void KyraEngine_MR::enterNewScene(uint16 sceneId, int facing, int unk1, int unk2
newSoundFile = true;
}
- //XXX
+ _chatAltFlag = false;
if (!unk3) {
_emc->init(&_sceneScriptState, &_sceneScriptData);
@@ -328,25 +326,23 @@ void KyraEngine_MR::freeSceneShapes() {
void KyraEngine_MR::loadScenePal() {
char filename[16];
- memcpy(_screen->getPalette(2), _screen->getPalette(0), 768);
+ _screen->copyPalette(2, 0);
strcpy(filename, _sceneList[_mainCharacter.sceneId].filename1);
strcat(filename, ".COL");
_screen->loadBitmap(filename, 3, 3, 0);
- memcpy(_screen->getPalette(2), _screen->getCPagePtr(3), 432);
- memset(_screen->getPalette(2), 0, 3);
+ _screen->getPalette(2).copy(_screen->getCPagePtr(3), 0, 144);
+ _screen->getPalette(2).fill(0, 1, 0);
for (int i = 144; i <= 167; ++i) {
- uint8 *palette = _screen->getPalette(2) + i * 3;
+ uint8 *palette = _screen->getPalette(2).getData() + i * 3;
palette[0] = palette[2] = 63;
palette[1] = 0;
}
_screen->generateOverlay(_screen->getPalette(2), _paletteOverlay, 0xF0, 0x19);
- uint8 *palette = _screen->getPalette(2) + 432;
- const uint8 *costPal = _costPalBuffer + _characterShapeFile * 72;
- memcpy(palette, costPal, 24*3);
+ _screen->getPalette(2).copy(_costPalBuffer, _characterShapeFile * 24, 24, 144);
}
void KyraEngine_MR::loadSceneMsc() {
@@ -609,7 +605,7 @@ void KyraEngine_MR::initSceneScreen(int unk1) {
}
if (_noScriptEnter) {
- memset(_screen->getPalette(0), 0, 432);
+ _screen->getPalette(0).fill(0, 144, 0);
if (!_wasPlayingVQA)
_screen->setScreenPalette(_screen->getPalette(0));
}
@@ -619,7 +615,7 @@ void KyraEngine_MR::initSceneScreen(int unk1) {
if (_noScriptEnter) {
if (!_wasPlayingVQA)
_screen->setScreenPalette(_screen->getPalette(2));
- memcpy(_screen->getPalette(0), _screen->getPalette(2), 432);
+ _screen->getPalette(0).copy(_screen->getPalette(2), 0, 144);
if (_wasPlayingVQA) {
_screen->fadeFromBlack(0x3C);
_wasPlayingVQA = false;