- Changed the following Screen functions to take a reference to a Palette object:
-> setScreenPalette -> fadePalette -> getFadeParams -> fadePalStep - Fixed initialization of 256 color palettes svn-id: r41743
This commit is contained in:
parent
4bb392b593
commit
73ea378dee
27 changed files with 236 additions and 246 deletions
|
@ -69,7 +69,7 @@ bool Debugger::cmd_setScreenDebug(int argc, const char **argv) {
|
|||
}
|
||||
|
||||
bool Debugger::cmd_loadPalette(int argc, const char **argv) {
|
||||
uint8 palette[768];
|
||||
Palette palette(_vm->screen()->getPalette(0).getNumColors());
|
||||
|
||||
if (argc <= 1) {
|
||||
DebugPrintf("Use load_palette <file> [start_col] [end_col]\n");
|
||||
|
@ -80,24 +80,24 @@ bool Debugger::cmd_loadPalette(int argc, const char **argv) {
|
|||
uint8 buffer[320*200];
|
||||
_vm->screen()->copyRegionToBuffer(5, 0, 0, 320, 200, buffer);
|
||||
_vm->screen()->loadBitmap(argv[1], 5, 5, 0);
|
||||
memcpy(palette, _vm->screen()->getCPagePtr(5), 768);
|
||||
palette.copy(_vm->screen()->getCPagePtr(5), 0, 256);
|
||||
_vm->screen()->copyBlockToPage(5, 0, 0, 320, 200, buffer);
|
||||
} else if (!_vm->screen()->loadPalette(argv[1], palette)) {
|
||||
} else if (!_vm->screen()->loadPalette(argv[1], palette.getData())) {
|
||||
DebugPrintf("ERROR: Palette '%s' not found!\n", argv[1]);
|
||||
return true;
|
||||
}
|
||||
|
||||
int startCol = 0;
|
||||
int endCol = 255;
|
||||
int endCol = palette.getNumColors();
|
||||
if (argc > 2)
|
||||
startCol = MIN(255, MAX(0, atoi(argv[2])));
|
||||
startCol = MIN(palette.getNumColors(), MAX(0, atoi(argv[2])));
|
||||
if (argc > 3)
|
||||
endCol = MIN(255, MAX(0, atoi(argv[3])));
|
||||
endCol = MIN(palette.getNumColors(), MAX(0, atoi(argv[3])));
|
||||
|
||||
if (startCol > 0)
|
||||
memcpy(palette, _vm->screen()->getScreenPalette(), startCol*3);
|
||||
if (endCol < 255)
|
||||
memcpy(palette + endCol * 3, _vm->screen()->getScreenPalette() + endCol * 3, (255-endCol)*3);
|
||||
palette.copy(_vm->screen()->getPalette(0), 0, startCol);
|
||||
if (endCol < palette.getNumColors())
|
||||
palette.copy(_vm->screen()->getPalette(0), endCol);
|
||||
|
||||
_vm->screen()->setScreenPalette(palette);
|
||||
_vm->screen()->updateScreen();
|
||||
|
|
|
@ -375,7 +375,7 @@ int KyraEngine_HoF::bookButton(Button *button) {
|
|||
|
||||
int oldItemInHand = _itemInHand;
|
||||
removeHandItem();
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 7);
|
||||
_screen->fadePalette(_screen->getPalette(0), 7);
|
||||
_screen->showMouse();
|
||||
|
||||
bookLoop();
|
||||
|
@ -394,7 +394,7 @@ int KyraEngine_HoF::bookButton(Button *button) {
|
|||
|
||||
setHandItem(_itemInHand);
|
||||
_screen->copyPalette(0, 2);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 7, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 7, &_updateFunctor);
|
||||
_screen->showMouse();
|
||||
|
||||
if (!queryGameFlag(4) && !queryGameFlag(0xB8)) {
|
||||
|
@ -812,14 +812,14 @@ void GUI_HoF::setupPalette() {
|
|||
_screen->getPalette(0).copy(_screen->getPalette(1), guiPal[i], 1);
|
||||
|
||||
if (_isDeathMenu)
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x64);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x64);
|
||||
else
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
void GUI_HoF::restorePalette() {
|
||||
_screen->copyPalette(0, 1);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
void GUI_HoF::resetState(int item) {
|
||||
|
|
|
@ -1034,7 +1034,7 @@ void GUI_LoK::fadePalette() {
|
|||
++index;
|
||||
}
|
||||
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 2);
|
||||
_screen->fadePalette(_screen->getPalette(0), 2);
|
||||
}
|
||||
|
||||
void GUI_LoK::restorePalette() {
|
||||
|
@ -1042,7 +1042,7 @@ void GUI_LoK::restorePalette() {
|
|||
return;
|
||||
|
||||
_screen->copyPalette(0, 2);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 2);
|
||||
_screen->fadePalette(_screen->getPalette(0), 2);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
|
|
@ -693,7 +693,7 @@ void KyraEngine_MR::showAlbum() {
|
|||
printAlbumPageText();
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK);
|
||||
_screen->updateScreen();
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 9);
|
||||
_screen->fadePalette(_screen->getPalette(0), 9);
|
||||
|
||||
processAlbum();
|
||||
|
||||
|
@ -708,7 +708,7 @@ void KyraEngine_MR::showAlbum() {
|
|||
_screen->copyBlockToPage(4, 0, 0, 320, 200, _album.backUpPage);
|
||||
|
||||
_screen->copyPalette(0, 1);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 9);
|
||||
_screen->fadePalette(_screen->getPalette(0), 9);
|
||||
|
||||
delete[] _album.backUpRect;
|
||||
_album.backUpRect = 0;
|
||||
|
|
|
@ -921,7 +921,7 @@ void KyraEngine_HoF::showMessage(const char *string, int16 palIndex) {
|
|||
palIndex *= 3;
|
||||
memcpy(_messagePal, _screen->getPalette(0).getData() + palIndex, 3);
|
||||
_screen->getPalette(0).copy(_screen->getPalette(0), palIndex / 3, 1, 255);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
int x = _text->getCenterStringX(string, 0, 320);
|
||||
|
@ -979,7 +979,7 @@ void KyraEngine_HoF::fadeMessagePalette() {
|
|||
|
||||
if (updatePalette) {
|
||||
_screen->getPalette(0).copy(_messagePal, 0, 1, 255);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
_fadeMessagePalette = false;
|
||||
}
|
||||
|
@ -1145,12 +1145,12 @@ void KyraEngine_HoF::updateCharPal(int unk1) {
|
|||
++ptr;
|
||||
++src;
|
||||
}
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
unkVar1 = true;
|
||||
_charPalEntry = palEntry;
|
||||
} else if (unkVar1 || !unk1) {
|
||||
_screen->getPalette(0).copy(_scenePal, palEntry << 4, 16, 112);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
unkVar1 = false;
|
||||
}
|
||||
}
|
||||
|
@ -1667,9 +1667,9 @@ void KyraEngine_HoF::setCauldronState(uint8 state, bool paletteFade) {
|
|||
|
||||
if (paletteFade) {
|
||||
snd_playSoundEffect((state == 0) ? 0x6B : 0x66);
|
||||
_screen->fadePalette(_screen->getPalette(2).getData(), 0x4B, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(2), 0x4B, &_updateFunctor);
|
||||
} else {
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
_screen->updateScreen();
|
||||
}
|
||||
|
||||
|
@ -1835,11 +1835,11 @@ void KyraEngine_HoF::cauldronRndPaletteFade() {
|
|||
file->seek(index*18, SEEK_SET);
|
||||
file->read(_screen->getPalette(0).getData()+723, 18);
|
||||
snd_playSoundEffect(0x6A);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x1E, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x1E, &_updateFunctor);
|
||||
file->seek(0, SEEK_SET);
|
||||
file->read(_screen->getPalette(0).getData()+723, 18);
|
||||
delete file;
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x1E, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x1E, &_updateFunctor);
|
||||
}
|
||||
|
||||
void KyraEngine_HoF::resetCauldronStateTable(int idx) {
|
||||
|
|
|
@ -231,7 +231,7 @@ Common::Error KyraEngine_MR::init() {
|
|||
_screen->setScreenDim(0);
|
||||
|
||||
_res->loadFileToBuf("PALETTE.COL", _screen->getPalette(0).getData(), 768);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
return Common::kNoError;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ Common::Error KyraEngine_MR::go() {
|
|||
_screen->_curPage = 0;
|
||||
_screen->clearPage(0);
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
// XXX
|
||||
playMenuAudioFile();
|
||||
|
@ -390,10 +390,9 @@ void KyraEngine_MR::playVQA(const char *name) {
|
|||
_soundDigital->stopAllSounds();
|
||||
_screen->showMouse();
|
||||
|
||||
uint8 pal[768];
|
||||
// Taken from original, it used '1' here too
|
||||
memset(pal, 1, sizeof(pal));
|
||||
_screen->setScreenPalette(pal);
|
||||
memset(_screen->getPalette(0).getData(), 1, 768);
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->clearPage(0);
|
||||
_screen->copyPalette(0, 1);
|
||||
_wasPlayingVQA = true;
|
||||
|
@ -919,7 +918,7 @@ void KyraEngine_MR::updateCharPal(int unk1) {
|
|||
}
|
||||
}
|
||||
_charPalUpdate = true;
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_lastCharPalLayer = layer;
|
||||
} else if (_charPalUpdate || !unk1) {
|
||||
memcpy(dst, src, 72);
|
||||
|
@ -936,7 +935,7 @@ void KyraEngine_MR::updateCharPal(int unk1) {
|
|||
}
|
||||
}
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_charPalUpdate = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1677,7 +1677,7 @@ void LoLEngine::transformRegion(int x1, int y1, int x2, int y2, int w, int h, in
|
|||
|
||||
void LoLEngine::setPaletteBrightness(uint8 *palette, int brightness, int modifier) {
|
||||
generateBrightnessPalette(palette, _screen->getPalette(1).getData(), brightness, modifier);
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 5, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 5, 0);
|
||||
_screen->_fadeFlag = 0;
|
||||
}
|
||||
|
||||
|
@ -2617,7 +2617,7 @@ int LoLEngine::processMagicLightning(int charNum, int spellLevel) {
|
|||
mov->close();
|
||||
delete mov;
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(1).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(1));
|
||||
_screen->copyPage(12, 2);
|
||||
_screen->copyPage(12, 0);
|
||||
updateDrawPage2();
|
||||
|
@ -2836,20 +2836,22 @@ void LoLEngine::callbackProcessMagicSwarm(WSAMovie_v2 *mov, int x, int y) {
|
|||
}
|
||||
|
||||
void LoLEngine::callbackProcessMagicLightning(WSAMovie_v2 *mov, int x, int y) {
|
||||
uint8 *tpal = new uint8[768];
|
||||
if (_lightningDiv == 2)
|
||||
shakeScene(1, 2, 3, 0);
|
||||
|
||||
uint8 *p1 = _screen->getPalette(1).getData();
|
||||
const Palette &p1 = _screen->getPalette(1);
|
||||
|
||||
if (_lightningSfxFrame % _lightningDiv) {
|
||||
_screen->setScreenPalette(p1);
|
||||
} else {
|
||||
memcpy(tpal, p1, 768);
|
||||
Palette tpal(p1.getNumColors());
|
||||
tpal.copy(p1);
|
||||
|
||||
for (int i = 6; i < 384; i++) {
|
||||
uint16 v = (tpal[i] * 120) / 64;
|
||||
tpal[i] = (v < 64) ? v : 63;
|
||||
}
|
||||
|
||||
_screen->setScreenPalette(tpal);
|
||||
}
|
||||
|
||||
|
@ -2864,7 +2866,6 @@ void LoLEngine::callbackProcessMagicLightning(WSAMovie_v2 *mov, int x, int y) {
|
|||
}
|
||||
|
||||
_lightningSfxFrame++;
|
||||
delete[] tpal;
|
||||
}
|
||||
|
||||
void LoLEngine::drinkBezelCup(int numUses, int charNum) {
|
||||
|
@ -3871,7 +3872,7 @@ void LoLEngine::displayAutomap() {
|
|||
|
||||
_screen->copyPage(2, 0);
|
||||
_screen->updateScreen();
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
uint32 delayTimer = _system->getMillis() + 8 * _tickLength;
|
||||
|
||||
while (!exitAutomap && !shouldQuit()) {
|
||||
|
|
|
@ -670,13 +670,13 @@ void KyraEngine_HoF::initSceneScreen(int unk1) {
|
|||
|
||||
if (_noScriptEnter) {
|
||||
memset(_screen->getPalette(0).getData(), 0, 384);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 144, 2, 0, Screen::CR_NO_P_CHECK);
|
||||
|
||||
if (_noScriptEnter) {
|
||||
_screen->setScreenPalette(_screen->getPalette(1).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(1));
|
||||
_screen->getPalette(0).copy(_screen->getPalette(1), 0, 128);
|
||||
}
|
||||
|
||||
|
@ -696,7 +696,7 @@ void KyraEngine_HoF::freeSceneShapePtrs() {
|
|||
|
||||
void KyraEngine_HoF::fadeScenePal(int srcIndex, int delayTime) {
|
||||
_screen->getPalette(0).copy(_scenePal, srcIndex << 4, 16, 112);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), delayTime, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), delayTime, &_updateFunctor);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
|
|
@ -772,7 +772,7 @@ void KyraEngine_LoK::initSceneScreen(int brandonAlive) {
|
|||
if (_unkScreenVar1 && !queryGameFlag(0xF0)) {
|
||||
_screen->getPalette(2).clear();
|
||||
if (_currentCharacter->sceneId != 117 || !queryGameFlag(0xB3))
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
}
|
||||
|
||||
if (_unkScreenVar2 == 1)
|
||||
|
@ -787,7 +787,7 @@ void KyraEngine_LoK::initSceneScreen(int brandonAlive) {
|
|||
if (_currentCharacter->sceneId >= 229 && _currentCharacter->sceneId <= 245 && (_brandonStatusBit & 1))
|
||||
_screen->copyPalette(0, 10);
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
} else {
|
||||
if (_unkScreenVar1 && !queryGameFlag(0xA0)) {
|
||||
|
@ -797,7 +797,7 @@ void KyraEngine_LoK::initSceneScreen(int brandonAlive) {
|
|||
col >>= 2;
|
||||
_screen->getPalette(0)[684+i] = col;
|
||||
}
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
if (_unkScreenVar2 == 1)
|
||||
|
@ -808,7 +808,7 @@ void KyraEngine_LoK::initSceneScreen(int brandonAlive) {
|
|||
if (_unkScreenVar1 && _paletteChanged) {
|
||||
if (!queryGameFlag(0xA0)) {
|
||||
_screen->getPalette(0).copy(_screen->getPalette(1), 228, 20);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
_screen->getPalette(0).clear();
|
||||
}
|
||||
|
|
|
@ -1417,7 +1417,7 @@ void LoLEngine::prepareSpecialScene(int fieldType, int hasDialogue, int suspendG
|
|||
initDialogueSequence(fieldType, 0);
|
||||
|
||||
if (fadeFlag) {
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
}
|
||||
|
||||
|
@ -1435,7 +1435,7 @@ void LoLEngine::prepareSpecialScene(int fieldType, int hasDialogue, int suspendG
|
|||
if (fadeFlag) {
|
||||
_screen->getPalette(3).copy(_screen->getPalette(0), 128);
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -609,14 +609,14 @@ void KyraEngine_MR::initSceneScreen(int unk1) {
|
|||
if (_noScriptEnter) {
|
||||
memset(_screen->getPalette(0).getData(), 0, 432);
|
||||
if (!_wasPlayingVQA)
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK);
|
||||
|
||||
if (_noScriptEnter) {
|
||||
if (!_wasPlayingVQA)
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
_screen->getPalette(0).copy(_screen->getPalette(2), 0, 144);
|
||||
if (_wasPlayingVQA) {
|
||||
_screen->fadeFromBlack(0x3C);
|
||||
|
|
|
@ -124,8 +124,10 @@ bool Screen::init() {
|
|||
|
||||
memset(_palettes, 0, sizeof(_palettes));
|
||||
|
||||
_screenPalette = new Palette(768);
|
||||
_screenPalette = new Palette(256);
|
||||
assert(_screenPalette);
|
||||
_tempPalette = new Palette(_screenPalette->getNumColors());
|
||||
assert(_tempPalette);
|
||||
|
||||
if (_vm->gameFlags().platform == Common::kPlatformAmiga) {
|
||||
for (int i = 0; i < 7; ++i) {
|
||||
|
@ -134,12 +136,12 @@ bool Screen::init() {
|
|||
}
|
||||
} else {
|
||||
for (int i = 0; i < 4; ++i) {
|
||||
_palettes[i] = new Palette(768);
|
||||
_palettes[i] = new Palette(256);
|
||||
assert(_palettes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
setScreenPalette(getPalette(0).getData());
|
||||
setScreenPalette(getPalette(0));
|
||||
|
||||
_curDim = 0;
|
||||
_charWidth = 0;
|
||||
|
@ -490,26 +492,25 @@ void Screen::setPagePixel(int pageNum, int x, int y, uint8 color) {
|
|||
}
|
||||
|
||||
void Screen::fadeFromBlack(int delay, const UpdateFunctor *upFunc) {
|
||||
fadePalette(getPalette(0).getData(), delay, upFunc);
|
||||
fadePalette(getPalette(0), delay, upFunc);
|
||||
}
|
||||
|
||||
void Screen::fadeToBlack(int delay, const UpdateFunctor *upFunc) {
|
||||
uint8 blackPal[768];
|
||||
memset(blackPal, 0, 768);
|
||||
fadePalette(blackPal, delay, upFunc);
|
||||
_tempPalette->clear();
|
||||
fadePalette(*_tempPalette, delay, upFunc);
|
||||
}
|
||||
|
||||
void Screen::fadePalette(const uint8 *palData, int delay, const UpdateFunctor *upFunc) {
|
||||
void Screen::fadePalette(const Palette &pal, int delay, const UpdateFunctor *upFunc) {
|
||||
updateScreen();
|
||||
|
||||
int diff = 0, delayInc = 0;
|
||||
getFadeParams(palData, delay, delayInc, diff);
|
||||
getFadeParams(pal, delay, delayInc, diff);
|
||||
|
||||
int delayAcc = 0;
|
||||
while (!_vm->shouldQuit()) {
|
||||
delayAcc += delayInc;
|
||||
|
||||
int refreshed = fadePalStep(palData, diff);
|
||||
int refreshed = fadePalStep(pal, diff);
|
||||
|
||||
if (upFunc && upFunc->isValid())
|
||||
(*upFunc)();
|
||||
|
@ -524,7 +525,7 @@ void Screen::fadePalette(const uint8 *palData, int delay, const UpdateFunctor *u
|
|||
}
|
||||
|
||||
if (_vm->shouldQuit()) {
|
||||
setScreenPalette(palData);
|
||||
setScreenPalette(pal);
|
||||
if (upFunc && upFunc->isValid())
|
||||
(*upFunc)();
|
||||
else
|
||||
|
@ -532,12 +533,11 @@ void Screen::fadePalette(const uint8 *palData, int delay, const UpdateFunctor *u
|
|||
}
|
||||
}
|
||||
|
||||
void Screen::getFadeParams(const uint8 *palette, int delay, int &delayInc, int &diff) {
|
||||
void Screen::getFadeParams(const Palette &pal, int delay, int &delayInc, int &diff) {
|
||||
uint8 maxDiff = 0;
|
||||
|
||||
const int colors = (_vm->gameFlags().platform == Common::kPlatformAmiga ? 32 : 256) * 3;
|
||||
for (int i = 0; i < colors; ++i) {
|
||||
diff = ABS(palette[i] - (*_screenPalette)[i]);
|
||||
for (int i = 0; i < pal.getNumColors() * 3; ++i) {
|
||||
diff = ABS(pal[i] - (*_screenPalette)[i]);
|
||||
maxDiff = MAX<uint8>(maxDiff, diff);
|
||||
}
|
||||
|
||||
|
@ -553,17 +553,14 @@ void Screen::getFadeParams(const uint8 *palette, int delay, int &delayInc, int &
|
|||
}
|
||||
}
|
||||
|
||||
int Screen::fadePalStep(const uint8 *palette, int diff) {
|
||||
const int colors = (_vm->gameFlags().platform == Common::kPlatformAmiga ? 32 : (_use16ColorMode ? 16 : 256)) * 3;
|
||||
|
||||
uint8 fadePal[768];
|
||||
memcpy(fadePal, _screenPalette->getData(), colors);
|
||||
int Screen::fadePalStep(const Palette &pal, int diff) {
|
||||
_tempPalette->copy(*_screenPalette);
|
||||
|
||||
bool needRefresh = false;
|
||||
|
||||
for (int i = 0; i < colors; ++i) {
|
||||
int c1 = palette[i];
|
||||
int c2 = fadePal[i];
|
||||
for (int i = 0; i < pal.getNumColors() * 3; ++i) {
|
||||
int c1 = pal[i];
|
||||
int c2 = (*_tempPalette)[i];
|
||||
if (c1 != c2) {
|
||||
needRefresh = true;
|
||||
if (c1 > c2) {
|
||||
|
@ -578,12 +575,12 @@ int Screen::fadePalStep(const uint8 *palette, int diff) {
|
|||
c2 = c1;
|
||||
}
|
||||
|
||||
fadePal[i] = (uint8)c2;
|
||||
(*_tempPalette)[i] = (uint8)c2;
|
||||
}
|
||||
}
|
||||
|
||||
if (needRefresh)
|
||||
setScreenPalette(fadePal);
|
||||
setScreenPalette(*_tempPalette);
|
||||
|
||||
return needRefresh ? 1 : 0;
|
||||
}
|
||||
|
@ -592,7 +589,7 @@ void Screen::setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue) {
|
|||
getPalette(0)[index * 3 + 0] = red;
|
||||
getPalette(0)[index * 3 + 1] = green;
|
||||
getPalette(0)[index * 3 + 2] = blue;
|
||||
setScreenPalette(getPalette(0).getData());
|
||||
setScreenPalette(getPalette(0));
|
||||
}
|
||||
|
||||
void Screen::getRealPalette(int num, uint8 *dst) {
|
||||
|
@ -613,35 +610,18 @@ void Screen::getRealPalette(int num, uint8 *dst) {
|
|||
}
|
||||
}
|
||||
|
||||
void Screen::setScreenPalette(const uint8 *palData) {
|
||||
const int colors = (_vm->gameFlags().platform == Common::kPlatformAmiga ? 32 : 256);
|
||||
|
||||
void Screen::setScreenPalette(const Palette &pal) {
|
||||
uint8 screenPal[256 * 4];
|
||||
_screenPalette->copy(palData, 0, colors);
|
||||
_screenPalette->copy(pal);
|
||||
|
||||
if (_use16ColorMode && _vm->gameFlags().platform == Common::kPlatformPC98) {
|
||||
for (int l = 0; l < 1024; l += 64) {
|
||||
const uint8 *tp = palData;
|
||||
for (int i = 0; i < 16; ++i) {
|
||||
screenPal[l + 4 * i + 0] = palData[1];
|
||||
screenPal[l + 4 * i + 1] = palData[0];
|
||||
screenPal[l + 4 * i + 2] = palData[2];
|
||||
screenPal[l + 4 * i + 3] = 0;
|
||||
palData += 3;
|
||||
}
|
||||
palData = tp;
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < colors; ++i) {
|
||||
screenPal[4 * i + 0] = (palData[0] << 2) | (palData[0] & 3);
|
||||
screenPal[4 * i + 1] = (palData[1] << 2) | (palData[1] & 3);
|
||||
screenPal[4 * i + 2] = (palData[2] << 2) | (palData[2] & 3);
|
||||
screenPal[4 * i + 3] = 0;
|
||||
palData += 3;
|
||||
}
|
||||
for (int i = 0; i < pal.getNumColors(); ++i) {
|
||||
screenPal[4 * i + 0] = (pal[i * 3 + 0] << 2) | (pal[i * 3 + 0] & 3);
|
||||
screenPal[4 * i + 1] = (pal[i * 3 + 1] << 2) | (pal[i * 3 + 1] & 3);
|
||||
screenPal[4 * i + 2] = (pal[i * 3 + 2] << 2) | (pal[i * 3 + 2] & 3);
|
||||
screenPal[4 * i + 3] = 0;
|
||||
}
|
||||
|
||||
_system->setPalette(screenPal, 0, colors);
|
||||
_system->setPalette(screenPal, 0, pal.getNumColors());
|
||||
}
|
||||
|
||||
void Screen::copyToPage0(int y, int h, uint8 page, uint8 *seqBuf) {
|
||||
|
|
|
@ -223,13 +223,12 @@ public:
|
|||
void fadeFromBlack(int delay=0x54, const UpdateFunctor *upFunc = 0);
|
||||
void fadeToBlack(int delay=0x54, const UpdateFunctor *upFunc = 0);
|
||||
|
||||
void fadePalette(const uint8 *palData, int delay, const UpdateFunctor *upFunc = 0);
|
||||
virtual void getFadeParams(const uint8 *palette, int delay, int &delayInc, int &diff);
|
||||
int fadePalStep(const uint8 *palette, int diff);
|
||||
void fadePalette(const Palette &pal, int delay, const UpdateFunctor *upFunc = 0);
|
||||
virtual void getFadeParams(const Palette &pal, int delay, int &delayInc, int &diff);
|
||||
int fadePalStep(const Palette &pal, int diff);
|
||||
|
||||
void setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue);
|
||||
void setScreenPalette(const uint8 *palData);
|
||||
const uint8 *getScreenPalette() const { return _screenPalette->getData(); }
|
||||
void setScreenPalette(const Palette &pal);
|
||||
|
||||
void getRealPalette(int num, uint8 *dst);
|
||||
Palette &getPalette(int num);
|
||||
|
@ -362,6 +361,7 @@ protected:
|
|||
|
||||
Palette *_screenPalette;
|
||||
Palette *_palettes[7];
|
||||
Palette *_tempPalette;
|
||||
|
||||
Font _fonts[FID_NUM];
|
||||
uint8 _textColorsMap[16];
|
||||
|
|
|
@ -81,14 +81,14 @@ const ScreenDim *Screen_LoK::getScreenDim(int dim) {
|
|||
void Screen_LoK::fadeSpecialPalette(int palIndex, int startIndex, int size, int fadeTime) {
|
||||
assert(_vm->palTable1()[palIndex]);
|
||||
|
||||
uint8 tempPal[768];
|
||||
memcpy(tempPal, getPalette(0).getData(), 768);
|
||||
memcpy(&tempPal[startIndex*3], _vm->palTable1()[palIndex], size*3);
|
||||
Palette tempPal(getPalette(0).getNumColors());
|
||||
tempPal.copy(getPalette(0));
|
||||
tempPal.copy(_vm->palTable1()[palIndex], 0, size, startIndex);
|
||||
|
||||
fadePalette(tempPal, fadeTime*18);
|
||||
|
||||
getPalette(0).copy(tempPal, startIndex, size);
|
||||
setScreenPalette(getPalette(0).getData());
|
||||
setScreenPalette(getPalette(0));
|
||||
_system->updateScreen();
|
||||
}
|
||||
|
||||
|
|
|
@ -282,14 +282,13 @@ void Screen_LoL::fadeClearSceneWindow(int delay) {
|
|||
if (_fadeFlag == 1)
|
||||
return;
|
||||
|
||||
uint8 *tpal = new uint8[768];
|
||||
Palette tpal(getPalette(0).getNumColors());
|
||||
tpal.copy(getPalette(0));
|
||||
|
||||
memcpy(tpal, getPalette(0).getData(), 768);
|
||||
memset(tpal, 0, 384);
|
||||
loadSpecialColors(tpal);
|
||||
loadSpecialColors(tpal.getData());
|
||||
fadePalette(tpal, delay);
|
||||
|
||||
fillRect(112, 0, 288, 120, 0);
|
||||
delete[] tpal;
|
||||
|
||||
_fadeFlag = 1;
|
||||
}
|
||||
|
@ -839,7 +838,7 @@ void Screen_LoL::fadeToBlack(int delay, const UpdateFunctor *upFunc) {
|
|||
|
||||
void Screen_LoL::fadeToPalette1(int delay) {
|
||||
loadSpecialColors(getPalette(1).getData());
|
||||
fadePalette(getPalette(1).getData(), delay);
|
||||
fadePalette(getPalette(1), delay);
|
||||
_fadeFlag = 0;
|
||||
}
|
||||
|
||||
|
@ -897,22 +896,22 @@ bool Screen_LoL::fadeColor(int dstColorIndex, int srcColorIndex, uint32 elapsedT
|
|||
p++;
|
||||
}
|
||||
|
||||
uint8 tpal[768];
|
||||
memcpy(tpal, _screenPalette->getData(), 768);
|
||||
memcpy(tpal + dstColorIndex * 3, tmpPalEntry, 3);
|
||||
setScreenPalette(tpal);
|
||||
_tempPalette->copy(*_screenPalette);
|
||||
_tempPalette->copy(*_screenPalette);
|
||||
_tempPalette->copy(tmpPalEntry, 0, 1, dstColorIndex);
|
||||
setScreenPalette(*_tempPalette);
|
||||
updateScreen();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
bool Screen_LoL::fadePaletteStep(uint8 *pal1, uint8 *pal2, uint32 elapsedTime, uint32 targetTime) {
|
||||
uint8 tpal[768];
|
||||
uint8 *p1 = getPalette(1).getData();
|
||||
Palette &p1 = getPalette(1);
|
||||
|
||||
bool res = false;
|
||||
for (int i = 0; i < 768; i++) {
|
||||
uint8 out = 0;
|
||||
|
||||
if (elapsedTime < targetTime) {
|
||||
int32 d = ((pal2[i] & 0x3f) - (pal1[i] & 0x3f));
|
||||
if (d)
|
||||
|
@ -925,10 +924,10 @@ bool Screen_LoL::fadePaletteStep(uint8 *pal1, uint8 *pal2, uint32 elapsedTime, u
|
|||
res = false;
|
||||
}
|
||||
|
||||
tpal[i] = out;
|
||||
(*_tempPalette)[i] = out;
|
||||
}
|
||||
|
||||
setScreenPalette(tpal);
|
||||
setScreenPalette(*_tempPalette);
|
||||
updateScreen();
|
||||
|
||||
return res;
|
||||
|
|
|
@ -114,12 +114,11 @@ int Screen_v2::findLeastDifferentColor(const uint8 *paletteEntry, const uint8 *p
|
|||
return r;
|
||||
}
|
||||
|
||||
void Screen_v2::getFadeParams(const uint8 *palette, int delay, int &delayInc, int &diff) {
|
||||
void Screen_v2::getFadeParams(const Palette &pal, int delay, int &delayInc, int &diff) {
|
||||
int maxDiff = 0;
|
||||
diff = 0;
|
||||
int len = _use16ColorMode ? 48 : 768;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
diff = ABS(palette[i] - (*_screenPalette)[i]);
|
||||
for (int i = 0; i < pal.getNumColors() * 3; ++i) {
|
||||
diff = ABS(pal[i] - (*_screenPalette)[i]);
|
||||
maxDiff = MAX(maxDiff, diff);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ public:
|
|||
void applyOverlay(int x, int y, int w, int h, int pageNum, const uint8 *overlay);
|
||||
int findLeastDifferentColor(const uint8 *paletteEntry, const uint8 *palette, uint16 numColors, bool skipSpecialColors = false);
|
||||
|
||||
virtual void getFadeParams(const uint8 *palette, int delay, int &delayInc, int &diff);
|
||||
virtual void getFadeParams(const Palette &pal, int delay, int &delayInc, int &diff);
|
||||
|
||||
// shape handling
|
||||
uint8 *getPtrToShape(uint8 *shpFile, int shape);
|
||||
|
|
|
@ -149,7 +149,7 @@ int KyraEngine_HoF::o2_meanWhileScene(EMCState *script) {
|
|||
_screen->copyPalette(2, 0);
|
||||
_screen->loadPalette(palfile, _screen->getPalette(2).getData());
|
||||
_screen->fillRect(0, 0, 319, 199, 207);
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0);
|
||||
if (!scumm_stricmp(cpsfile, "_MEANWIL.CPS") && _flags.lang == Common::JA_JPN) {
|
||||
Screen::FontId o = _screen->setFont(Screen::FID_6_FNT);
|
||||
|
@ -567,7 +567,7 @@ int KyraEngine_HoF::o2_loadPalette384(EMCState *script) {
|
|||
int KyraEngine_HoF::o2_setPalette384(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_setPalette384(%p) ()", (const void *)script);
|
||||
_screen->getPalette(0).copy(_screen->getPalette(1), 0, 128);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -798,7 +798,7 @@ int KyraEngine_HoF::o2_showLetter(EMCState *script) {
|
|||
}
|
||||
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x14);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x14);
|
||||
_screen->setMouseCursor(0, 0, getShapePtr(0));
|
||||
setMousePos(280, 160);
|
||||
|
||||
|
@ -820,7 +820,7 @@ int KyraEngine_HoF::o2_showLetter(EMCState *script) {
|
|||
_screen->fadeToBlack(0x14);
|
||||
restorePage0();
|
||||
_screen->copyPalette(0, 2);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x14);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x14);
|
||||
setHandItem(_itemInHand);
|
||||
_screen->showMouse();
|
||||
|
||||
|
@ -1130,7 +1130,7 @@ int KyraEngine_HoF::o2_mushroomEffect(EMCState *script) {
|
|||
for (int i = 1; i < 768; i += 3)
|
||||
_screen->getPalette(0)[i] = 0;
|
||||
snd_playSoundEffect(106);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 90, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 90, &_updateFunctor);
|
||||
_screen->copyPalette(0, 2);
|
||||
|
||||
for (int i = 0; i < 768; i += 3) {
|
||||
|
@ -1140,10 +1140,10 @@ int KyraEngine_HoF::o2_mushroomEffect(EMCState *script) {
|
|||
_screen->getPalette(0)[i + 2] = 63;
|
||||
}
|
||||
snd_playSoundEffect(106);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 90, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 90, &_updateFunctor);
|
||||
|
||||
_screen->copyPalette(0, 2);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, &_updateFunctor);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, &_updateFunctor);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1262,7 +1262,7 @@ int KyraEngine_HoF::o2_stopSceneAnimation(EMCState *script) {
|
|||
|
||||
int KyraEngine_HoF::o2_processPaletteIndex(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_HoF::o2_processPaletteIndex(%p) (%d, %d, %d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5));
|
||||
uint8 *palette = _screen->getPalette(0).getData();
|
||||
Palette &palette = _screen->getPalette(0);
|
||||
|
||||
const int index = stackPos(0);
|
||||
const bool updatePalette = (stackPos(4) != 0);
|
||||
|
@ -1410,7 +1410,7 @@ int KyraEngine_HoF::o2_demoFinale(EMCState *script) {
|
|||
for (int i = 0; i < 6; i++)
|
||||
_text->printText(strings[i], _text->getCenterStringX(strings[i], 1, 319), y + i * 10, 255, 207, 0);
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->updateScreen();
|
||||
|
||||
_eventList.clear();
|
||||
|
|
|
@ -233,7 +233,7 @@ int KyraEngine_LoK::o1_fadeSpecialPalette(EMCState *script) {
|
|||
if (stackPos(0) == 13) {
|
||||
// TODO: Check this!
|
||||
_screen->copyPalette(0, 12);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
} else {
|
||||
warning("KyraEngine_LoK::o1_fadeSpecialPalette not implemented");
|
||||
|
@ -1503,37 +1503,38 @@ int KyraEngine_LoK::o1_setNoDrawShapesFlag(EMCState *script) {
|
|||
int KyraEngine_LoK::o1_fadeEntirePalette(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "KyraEngine_LoK::o1_fadeEntirePalette(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
|
||||
int cmd = stackPos(0);
|
||||
uint8 *fadePal = 0;
|
||||
|
||||
int fadePal = 0;
|
||||
|
||||
if (_flags.platform == Common::kPlatformAmiga) {
|
||||
if (cmd == 0) {
|
||||
_screen->getPalette(2).clear();
|
||||
fadePal = _screen->getPalette(2).getData();
|
||||
fadePal = 2;
|
||||
_screen->copyPalette(4, 0);
|
||||
} else if (cmd == 1) {
|
||||
fadePal = _screen->getPalette(0).getData();
|
||||
fadePal = 0;
|
||||
_screen->copyPalette(0, 4);
|
||||
} else if (cmd == 2) {
|
||||
fadePal = _screen->getPalette(0).getData();
|
||||
fadePal = 0;
|
||||
_screen->getPalette(2).clear();
|
||||
}
|
||||
} else {
|
||||
if (cmd == 0) {
|
||||
fadePal = 2;
|
||||
_screen->getPalette(2).clear();
|
||||
fadePal = _screen->getPalette(2).getData();
|
||||
_screen->copyPalette(3, 0);
|
||||
} else if (cmd == 1) {
|
||||
//fadePal = _screen->getPalette(3);
|
||||
//fadePal = 3;
|
||||
warning("unimplemented o1_fadeEntirePalette function");
|
||||
return 0;
|
||||
} else if (cmd == 2) {
|
||||
_screen->getPalette(2).clear();
|
||||
_screen->copyPalette(0, 1);
|
||||
fadePal = _screen->getPalette(0).getData();
|
||||
fadePal = 0;
|
||||
}
|
||||
}
|
||||
|
||||
_screen->fadePalette(fadePal, stackPos(1));
|
||||
_screen->fadePalette(_screen->getPalette(fadePal), stackPos(1));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -602,7 +602,7 @@ int LoLEngine::olol_fadeToBlack(EMCState *script) {
|
|||
|
||||
int LoLEngine::olol_fadePalette(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_fadePalette(%p)", (const void *)script);
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -866,7 +866,7 @@ int LoLEngine::olol_fadeSequencePalette(EMCState *script) {
|
|||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_fadeSequencePalette(%p)", (const void *)script);
|
||||
_screen->getPalette(3).copy(_screen->getPalette(0), 128);
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -2003,7 +2003,7 @@ int LoLEngine::olol_drinkBezelCup(EMCState *script) {
|
|||
int LoLEngine::olol_restoreFadePalette(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_restoreFadePalette(%p)", (const void *)script);
|
||||
_screen->getPalette(0).copy(_screen->getPalette(1), 0, 128);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(0), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -2101,27 +2101,29 @@ int LoLEngine::olol_increaseSkill(EMCState *script) {
|
|||
|
||||
int LoLEngine::olol_paletteFlash(EMCState *script) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_paletteFlash(%p) (%d)", (const void *)script, stackPos(0));
|
||||
uint8 *s = _screen->getPalette(1).getData();
|
||||
uint8 *d = _screen->getPalette(3).getData();
|
||||
Palette &p1 = _screen->getPalette(1);
|
||||
Palette &p2 = _screen->getPalette(3);
|
||||
|
||||
uint8 ovl[256];
|
||||
generateFlashPalette(s, d, stackPos(0));
|
||||
_screen->loadSpecialColors(s);
|
||||
_screen->loadSpecialColors(d);
|
||||
generateFlashPalette(p1.getData(), p2.getData(), stackPos(0));
|
||||
_screen->loadSpecialColors(p1.getData());
|
||||
_screen->loadSpecialColors(p2.getData());
|
||||
|
||||
if (_smoothScrollModeNormal) {
|
||||
for (int i = 0; i < 256; i++)
|
||||
ovl[i] = i;
|
||||
ovl[1] = 6;
|
||||
|
||||
_screen->copyRegion(112, 0, 112, 0, 176, 120, 0, 2);
|
||||
_screen->applyOverlay(112, 0, 176, 120, 0, ovl);
|
||||
}
|
||||
|
||||
_screen->setScreenPalette(d);
|
||||
_screen->setScreenPalette(p2);
|
||||
_screen->updateScreen();
|
||||
|
||||
delay(2 * _tickLength);
|
||||
|
||||
_screen->setScreenPalette(s);
|
||||
_screen->setScreenPalette(p1);
|
||||
if (_smoothScrollModeNormal)
|
||||
_screen->copyRegion(112, 0, 112, 0, 176, 120, 2, 0);
|
||||
|
||||
|
@ -2139,6 +2141,8 @@ int LoLEngine::olol_restoreMagicShroud(EMCState *script) {
|
|||
|
||||
_screen->hideMouse();
|
||||
|
||||
// TODO: This function could need some major cleanup to work with our
|
||||
// new palette code without needless conversions.
|
||||
uint8 *fadeTab = new uint8[21504];
|
||||
uint8 *tpal1 = fadeTab;
|
||||
uint8 *tpal2 = tpal1 + 768;
|
||||
|
@ -2152,19 +2156,25 @@ int LoLEngine::olol_restoreMagicShroud(EMCState *script) {
|
|||
_screen->loadPalette("LITEPAL3.COL", tpal1);
|
||||
_screen->generateFadeTable(tpal2, tpal4, tpal1, 4);
|
||||
|
||||
Palette pal(768);
|
||||
|
||||
for (int i = 0; i < 21; i++) {
|
||||
uint32 etime = _system->getMillis() + 20 * _tickLength;
|
||||
mov->displayFrame(i, 0, 0, 0, 0, 0, 0);
|
||||
_screen->updateScreen();
|
||||
_screen->setScreenPalette(tpal3);
|
||||
|
||||
pal.copy(tpal3, 0, 256);
|
||||
_screen->setScreenPalette(pal);
|
||||
tpal3 += 768;
|
||||
|
||||
if (i == 2 || i == 5 || i == 8 || i == 11 || i == 13 || i == 15 || i == 17 || i == 19)
|
||||
snd_playSoundEffect(95, -1);
|
||||
delayUntil(etime);
|
||||
}
|
||||
|
||||
pal.copy(tpal3, 0, 256);
|
||||
snd_playSoundEffect(91, -1);
|
||||
_screen->fadePalette(tpal3, 300);
|
||||
_screen->fadePalette(pal, 300);
|
||||
tpal3 += 768;
|
||||
|
||||
for (int i = 22; i < 38; i++) {
|
||||
|
@ -2173,7 +2183,9 @@ int LoLEngine::olol_restoreMagicShroud(EMCState *script) {
|
|||
_screen->updateScreen();
|
||||
if (i == 22 || i == 24 || i == 28 || i == 32) {
|
||||
snd_playSoundEffect(131, -1);
|
||||
_screen->setScreenPalette(tpal3);
|
||||
|
||||
pal.copy(tpal3, 0, 256);
|
||||
_screen->setScreenPalette(pal);
|
||||
tpal3 += 768;
|
||||
}
|
||||
delayUntil(etime);
|
||||
|
@ -2289,7 +2301,7 @@ int LoLEngine::olol_getLanguage(EMCState *script) {
|
|||
|
||||
int LoLEngine::tlol_setupPaletteFade(const TIM *tim, const uint16 *param) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::t2_playSoundEffect(%p, %p) (%d)", (const void *)tim, (const void *)param, param[0]);
|
||||
_screen->getFadeParams(_screen->getPalette(0).getData(), param[0], _tim->_palDelayInc, _tim->_palDiff);
|
||||
_screen->getFadeParams(_screen->getPalette(0), param[0], _tim->_palDelayInc, _tim->_palDiff);
|
||||
_tim->_palDelayAcc = 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -2305,7 +2317,7 @@ int LoLEngine::tlol_setupPaletteFadeEx(const TIM *tim, const uint16 *param) {
|
|||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::tlol_setupPaletteFadeEx(%p, %p) (%d)", (const void *)tim, (const void *)param, param[0]);
|
||||
_screen->copyPalette(0, 1);
|
||||
|
||||
_screen->getFadeParams(_screen->getPalette(0).getData(), param[0], _tim->_palDelayInc, _tim->_palDiff);
|
||||
_screen->getFadeParams(_screen->getPalette(0), param[0], _tim->_palDelayInc, _tim->_palDiff);
|
||||
_tim->_palDelayAcc = 0;
|
||||
return 1;
|
||||
}
|
||||
|
@ -2390,7 +2402,7 @@ int LoLEngine::tlol_fadeClearWindow(const TIM *tim, const uint16 *param) {
|
|||
case 1:
|
||||
_screen->getPalette(3).copy(_screen->getPalette(0), 128);
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
break;
|
||||
|
||||
|
@ -2400,7 +2412,7 @@ int LoLEngine::tlol_fadeClearWindow(const TIM *tim, const uint16 *param) {
|
|||
|
||||
case 3:
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
break;
|
||||
|
||||
|
@ -2414,7 +2426,7 @@ int LoLEngine::tlol_fadeClearWindow(const TIM *tim, const uint16 *param) {
|
|||
|
||||
case 5:
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(1), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
break;
|
||||
|
||||
|
@ -2549,9 +2561,11 @@ int LoLEngine::tlol_unusedResourceFunc(const TIM *tim, const uint16 *param) {
|
|||
int LoLEngine::tlol_fadeInPalette(const TIM *tim, const uint16 *param) {
|
||||
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::tlol_fadeInPalette(%p, %p) (%d, %d)", (const void *)tim, (const void *)param, param[0], param[1]);
|
||||
const char *bitmap = (const char *)(tim->text + READ_LE_UINT16(tim->text + (param[0]<<1)));
|
||||
uint8 palette[768];
|
||||
_screen->loadBitmap(bitmap, 3, 3, palette);
|
||||
_screen->fadePalette(palette, param[1]);
|
||||
|
||||
Palette pal(_screen->getPalette(0).getNumColors());
|
||||
_screen->loadBitmap(bitmap, 3, 3, pal.getData());
|
||||
_screen->fadePalette(pal, param[1]);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -439,9 +439,9 @@ void TIMInterpreter::setupTextPalette(uint index, int fadePalette) {
|
|||
}
|
||||
|
||||
if (!fadePalette && !_palDiff) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
_screen->getFadeParams(_screen->getPalette(0).getData(), fadePalette, _palDelayInc, _palDiff);
|
||||
_screen->getFadeParams(_screen->getPalette(0), fadePalette, _palDelayInc, _palDiff);
|
||||
_palDelayAcc = 0;
|
||||
}
|
||||
}
|
||||
|
@ -504,7 +504,7 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char
|
|||
}
|
||||
|
||||
if (wsaFlags & 2) {
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 15, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 15, 0);
|
||||
_screen->clearPage(_drawPage2);
|
||||
if (_drawPage2)
|
||||
_screen->checkedPageUpdate(8, 4);
|
||||
|
@ -526,10 +526,10 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char
|
|||
}
|
||||
|
||||
if (wsaFlags & 2)
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, 0);
|
||||
} else {
|
||||
if (wsaFlags & 2) {
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 15, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 15, 0);
|
||||
_screen->clearPage(_drawPage2);
|
||||
if (_drawPage2)
|
||||
_screen->checkedPageUpdate(8, 4);
|
||||
|
@ -547,7 +547,7 @@ TIMInterpreter::Animation *TIMInterpreter::initAnimStruct(int index, const char
|
|||
}
|
||||
|
||||
if (wsaFlags & 2)
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, 0);
|
||||
}
|
||||
|
||||
return anim;
|
||||
|
@ -963,7 +963,7 @@ TIMInterpreter::Animation *TIMInterpreter_LoL::initAnimStruct(int index, const c
|
|||
|
||||
if (wsaFlags & 3) {
|
||||
_screen->loadSpecialColors(_screen->getPalette(3).getData());
|
||||
_screen->fadePalette(_screen->getPalette(3).getData(), 10);
|
||||
_screen->fadePalette(_screen->getPalette(3), 10);
|
||||
_screen->_fadeFlag = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -247,7 +247,7 @@ void SeqPlayer::s1_loadPalette() {
|
|||
else if (colNum == 4)
|
||||
_screen->copyPalette(0, 3);
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
uint32 fileSize;
|
||||
uint8 *srcData;
|
||||
|
|
|
@ -88,7 +88,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
|
|||
|
||||
if (cseq.flags & 2) {
|
||||
_screen->loadBitmap(cseq.cpsFile, 2, 2, _screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
_screen->setCurPage(2);
|
||||
_screen->clearPage(2);
|
||||
|
@ -101,7 +101,7 @@ void KyraEngine_HoF::seq_playSequences(int startSeq, int endSeq) {
|
|||
if (cseq.flags & 1) {
|
||||
_seqWsa->close();
|
||||
_seqWsa->open(cseq.wsaFile, 0, _screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_seqWsa->displayFrame(0, 2, cseq.xPos, cseq.yPos, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
@ -411,16 +411,16 @@ int KyraEngine_HoF::seq_introOverview(WSAMovie_v2 *wsaObj, int x, int y, int frm
|
|||
|
||||
case 200:
|
||||
seq_waitForTextsTimeout();
|
||||
_screen->fadePalette(_screen->getPalette(2).getData(), 64);
|
||||
_screen->fadePalette(_screen->getPalette(2), 64);
|
||||
break;
|
||||
|
||||
case 201:
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
_screen->updateScreen();
|
||||
_screen->applyOverlay(0, 0, 320, 200, 2, _screen->getPalette(3).getData());
|
||||
_screen->copyPage(2, 12);
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->updateScreen();
|
||||
seq_resetActiveWSA(0);
|
||||
seq_resetActiveWSA(1);
|
||||
|
@ -1781,25 +1781,27 @@ int KyraEngine_HoF::seq_demoDig(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
|
|||
|
||||
#ifdef ENABLE_LOL
|
||||
int KyraEngine_HoF::seq_lolDemoScene1(WSAMovie_v2 *wsaObj, int x, int y, int frm) {
|
||||
uint8 *tmpPal = _screen->getPalette(2).getData();
|
||||
Palette &tmpPal = _screen->getPalette(2);
|
||||
|
||||
if (!(_seqFrameCounter % 100)) {
|
||||
if (_seqFrameCounter == 0) {
|
||||
_sound->haltTrack();
|
||||
_sound->playTrack(6);
|
||||
}
|
||||
memcpy(tmpPal, _screen->getPalette(0).getData(), 0x300);
|
||||
tmpPal.copy(_screen->getPalette(0));
|
||||
|
||||
for (int i = 3; i < 0x300; i++) {
|
||||
tmpPal[i] = ((int)tmpPal[i] * 120) / 64;
|
||||
if (tmpPal[i] > 0x3f)
|
||||
tmpPal[i] = 0x3f;
|
||||
}
|
||||
|
||||
seq_playTalkText(_rnd.getRandomBit());
|
||||
_screen->setScreenPalette(tmpPal);
|
||||
_screen->updateScreen();
|
||||
delay(8);
|
||||
} else {
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->updateScreen();
|
||||
if (_seqFrameCounter == 40)
|
||||
seq_playTalkText(3);
|
||||
|
@ -1924,15 +1926,17 @@ int KyraEngine_HoF::seq_lolDemoScene6(WSAMovie_v2 *wsaObj, int x, int y, int frm
|
|||
}
|
||||
|
||||
if (_seqFrameCounter % 175) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
} else {
|
||||
uint8 *tmpPal = _screen->getPalette(2).getData();
|
||||
memcpy(tmpPal, _screen->getPalette(0).getData(), 0x300);
|
||||
Palette &tmpPal = _screen->getPalette(2);
|
||||
tmpPal.copy(_screen->getPalette(0));
|
||||
|
||||
for (int i = 3; i < 0x300; i++) {
|
||||
tmpPal[i] = ((int)tmpPal[i] * 120) / 64;
|
||||
if (tmpPal[i] > 0x3f)
|
||||
tmpPal[i] = 0x3f;
|
||||
}
|
||||
|
||||
seq_playTalkText(_rnd.getRandomBit());
|
||||
_screen->setScreenPalette(tmpPal);
|
||||
_screen->updateScreen();
|
||||
|
@ -2045,36 +2049,34 @@ char *KyraEngine_HoF::seq_preprocessString(const char *srcStr, int width) {
|
|||
}
|
||||
|
||||
void KyraEngine_HoF::seq_sequenceCommand(int command) {
|
||||
uint8 pal[768];
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
seq_resetActiveWSA(i);
|
||||
|
||||
switch (command) {
|
||||
case 0:
|
||||
memset(pal, 0, 0x300);
|
||||
_screen->fadePalette(pal, 36);
|
||||
_screen->fadeToBlack(36);
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->getPalette(1).clear();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
memset(pal, 0x3F, 0x300);
|
||||
seq_playTalkText(_rnd.getRandomBit());
|
||||
_screen->fadePalette(pal, 16);
|
||||
_screen->getPalette(0).copy(pal, 0, 256);
|
||||
_screen->getPalette(1).copy(pal, 0, 256);
|
||||
|
||||
memset(_screen->getPalette(0).getData(), 0x3F, 0x300);
|
||||
_screen->fadePalette(_screen->getPalette(0), 16);
|
||||
|
||||
_screen->copyPalette(1, 0);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
_screen->copyPage(2, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 16);
|
||||
_screen->fadePalette(_screen->getPalette(0), 16);
|
||||
_screen->copyPalette(1, 0);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
_screen->copyPage(2, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 36);
|
||||
_screen->fadePalette(_screen->getPalette(0), 36);
|
||||
_screen->copyPalette(1, 0);
|
||||
break;
|
||||
|
||||
|
@ -2093,17 +2095,17 @@ void KyraEngine_HoF::seq_sequenceCommand(int command) {
|
|||
break;
|
||||
|
||||
case 8:
|
||||
memset(pal, 0, 0x300);
|
||||
_screen->fadePalette(pal, 16);
|
||||
_screen->getPalette(0).copy(pal, 0, 256);
|
||||
_screen->getPalette(1).copy(pal, 0, 256);
|
||||
_screen->fadeToBlack(16);
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->getPalette(1).clear();
|
||||
|
||||
delay(120 * _tickLength);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
for (int i = 0; i < 0x100; i++) {
|
||||
int pv = (_screen->getPalette(0)[3 * i] + _screen->getPalette(0)[3 * i + 1] + _screen->getPalette(0)[3 * i + 2]) / 3;
|
||||
case 9: {
|
||||
Palette &pal = _screen->getPalette(0);
|
||||
for (int i = 0; i < 256; i++) {
|
||||
int pv = (pal[3 * i] + pal[3 * i + 1] + pal[3 * i + 2]) / 3;
|
||||
pal[3 * i] = pal[3 * i + 1] = pal[3 * i + 2] = pv & 0xff;
|
||||
}
|
||||
|
||||
|
@ -2112,9 +2114,8 @@ void KyraEngine_HoF::seq_sequenceCommand(int command) {
|
|||
//pal[3 * i] = pal[3 * i + 1] = pal[3 * i + 2] = 0x3f;
|
||||
|
||||
_screen->fadePalette(pal, 64);
|
||||
_screen->getPalette(0).copy(pal, 0, 256);
|
||||
_screen->getPalette(1).copy(pal, 0, 256);
|
||||
break;
|
||||
_screen->copyPalette(1, 0);
|
||||
} break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
@ -2435,7 +2436,7 @@ void KyraEngine_HoF::seq_printCreditsString(uint16 strIndex, int x, int y, const
|
|||
_screen->getPalette(0)[0x2f7] = _screen->getPalette(0)[textcolor * 3];
|
||||
_screen->getPalette(0)[0x2f8] = _screen->getPalette(0)[textcolor * 3 + 1];
|
||||
_screen->getPalette(0)[0x2f9] = _screen->getPalette(0)[textcolor * 3 + 2];
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x18);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x18);
|
||||
|
||||
_seqTextColor[0] = textcolor;
|
||||
_screen->setTextColorMap(colorMap);
|
||||
|
@ -2445,7 +2446,7 @@ void KyraEngine_HoF::seq_printCreditsString(uint16 strIndex, int x, int y, const
|
|||
_screen->copyPage(2, 0);
|
||||
_screen->updateScreen();
|
||||
_screen->getPalette(0)[0x2f7] = _screen->getPalette(0)[0x2f8] = _screen->getPalette(0)[0x2f9] = 0;
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 1);
|
||||
_screen->fadePalette(_screen->getPalette(0), 1);
|
||||
_screen->copyPage(2, 12);
|
||||
seq_resetAllTextEntries();
|
||||
|
||||
|
@ -2665,7 +2666,7 @@ void KyraEngine_HoF::seq_displayScrollText(uint8 *data, const ScreenDim *d, int
|
|||
for (int col = 133; col > 112; col--)
|
||||
_screen->getPalette(0).copy(_screen->getPalette(0), col - 1, 1, col);
|
||||
_screen->getPalette(0).copy(_screen->getPalette(0), 133, 1, 112);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
delayUntil(_seqSubFrameEndTimeInternal);
|
||||
|
|
|
@ -167,7 +167,7 @@ void KyraEngine_LoK::seq_introLogos() {
|
|||
|
||||
if (_flags.platform == Common::kPlatformAmiga) {
|
||||
_screen->copyPalette(0, 1);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
}
|
||||
|
||||
if ((_seq->playSequence(_seq_KyrandiaLogo, skipFlag()) && !seq_skipSequence()) || shouldQuit()) {
|
||||
|
@ -251,7 +251,7 @@ void KyraEngine_LoK::seq_introStory() {
|
|||
_screen->loadBitmap("TEXT_ENG.CPS", 3, 3, _screen->getPalette(0).getData());
|
||||
else
|
||||
warning("no story graphics file found");
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 3, 0);
|
||||
|
||||
if (_flags.lang == Common::JA_JPN) {
|
||||
|
@ -569,12 +569,9 @@ void KyraEngine_LoK::seq_winterScroll1() {
|
|||
_sprites->_anims[i].play = false;
|
||||
_animator->sprites()[i].active = 0;
|
||||
}
|
||||
uint8 tmpPal[768];
|
||||
memcpy(tmpPal, _screen->getPalette(0).getData(), 768);
|
||||
memcpy(&tmpPal[684], palTable2()[0], 60);
|
||||
_screen->fadePalette(tmpPal, 72);
|
||||
_screen->getPalette(0).copy(palTable2()[0], 0, 20, 228);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->fadePalette(_screen->getPalette(0), 72);
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
setGameFlag(0xB3);
|
||||
} else {
|
||||
delayWithTicks(120);
|
||||
|
@ -951,7 +948,7 @@ int KyraEngine_LoK::seq_playEnd() {
|
|||
_screen->fadeSpecialPalette(32, 228, 20, 60);
|
||||
delay(60 * _tickLength);
|
||||
_screen->loadBitmap("GEMHEAL.CPS", 3, 3, _screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_screen->shuffleScreen(8, 8, 304, 128, 2, 0, 1, 0);
|
||||
uint32 nextTime = _system->getMillis() + 120 * _tickLength;
|
||||
_finalA = new WSAMovie_v1(this);
|
||||
|
@ -1012,7 +1009,7 @@ void KyraEngine_LoK::seq_playEnding() {
|
|||
drawSentenceCommand(_homeString[0], 179);
|
||||
|
||||
_screen->getPalette(2).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
|
||||
_seqPlayerFlag = true;
|
||||
_seq->playSequence(_seq_Reunion, false);
|
||||
|
@ -1124,9 +1121,9 @@ void KyraEngine_LoK::seq_playCredits() {
|
|||
_screen->setCurPage(2);
|
||||
|
||||
_screen->getPalette(2).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(2).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(2));
|
||||
_screen->copyRegion(8, 32, 8, 32, 312, 128, 4, 0, Screen::CR_NO_P_CHECK);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x5A);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x5A);
|
||||
|
||||
Common::Event event;
|
||||
bool finished = false;
|
||||
|
@ -1683,7 +1680,7 @@ void KyraEngine_LoK::updateKyragemFading() {
|
|||
_screen->getPalette(0)[palPos++] = kyraGemPalette[i + _kyragemFadingState.gOffset];
|
||||
_screen->getPalette(0)[palPos++] = kyraGemPalette[i + _kyragemFadingState.bOffset];
|
||||
}
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_animator->_updateScreen = true;
|
||||
switch (_kyragemFadingState.nextOperation) {
|
||||
case 0:
|
||||
|
|
|
@ -42,12 +42,12 @@ int LoLEngine::processPrologue() {
|
|||
showIntro();
|
||||
|
||||
if (_flags.isDemo) {
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 30, 0);
|
||||
_screen->loadBitmap("FINAL.CPS", 2, 2, _screen->getPalette(0).getData());
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, 0);
|
||||
delayWithTicks(300);
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 60, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 60, 0);
|
||||
|
||||
setupPrologueData(false);
|
||||
return -1;
|
||||
|
@ -66,7 +66,7 @@ int LoLEngine::processPrologue() {
|
|||
_screen->fprintString("SVM %s", 300 - width, 193, 0x67, 0x00, 0x04, gScummVMVersion);
|
||||
_screen->setFont(Screen::FID_9_FNT);
|
||||
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 0x1E);
|
||||
_screen->fadePalette(_screen->getPalette(0), 0x1E);
|
||||
_screen->updateScreen();
|
||||
|
||||
_eventList.clear();
|
||||
|
@ -186,7 +186,7 @@ void LoLEngine::setupPrologueData(bool load) {
|
|||
delete _chargenWSA; _chargenWSA = 0;
|
||||
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
if (shouldQuit())
|
||||
return;
|
||||
|
@ -204,7 +204,7 @@ void LoLEngine::showIntro() {
|
|||
showStarcraftLogo();
|
||||
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
_screen->clearPage(0);
|
||||
_screen->clearPage(4);
|
||||
|
@ -234,8 +234,8 @@ void LoLEngine::showIntro() {
|
|||
palNextFadeStep = _system->getMillis() + ((_tim->_palDelayAcc >> 8) * _tickLength);
|
||||
_tim->_palDelayAcc &= 0xFF;
|
||||
|
||||
if (!_screen->fadePalStep(_screen->getPalette(0).getData(), _tim->_palDiff)) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
if (!_screen->fadePalStep(_screen->getPalette(0), _tim->_palDiff)) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_tim->_palDiff = 0;
|
||||
}
|
||||
}
|
||||
|
@ -259,7 +259,7 @@ void LoLEngine::showIntro() {
|
|||
delete _tim;
|
||||
_tim = 0;
|
||||
|
||||
_screen->fadePalette(_screen->getPalette(1).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(1), 30, 0);
|
||||
}
|
||||
|
||||
int LoLEngine::chooseCharacter() {
|
||||
|
@ -306,7 +306,7 @@ int LoLEngine::chooseCharacter() {
|
|||
if (_flags.use16ColorMode)
|
||||
_screen->loadPalette("LOL.NOL", _screen->getPalette(0).getData());
|
||||
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, 0);
|
||||
|
||||
bool kingIntro = true;
|
||||
while (!shouldQuit()) {
|
||||
|
@ -728,7 +728,7 @@ void LoLEngine::setupEpilogueData(bool load) {
|
|||
_sound->loadSoundFile("SOUND.DAT");
|
||||
} else {
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
if (shouldQuit())
|
||||
return;
|
||||
|
@ -744,7 +744,7 @@ void LoLEngine::showOutro(int character, bool maxDifficulty) {
|
|||
_tim = new TIMInterpreter(this, _screen, _system);
|
||||
|
||||
_screen->getPalette(0).clear();
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
_screen->clearPage(0);
|
||||
_screen->clearPage(4);
|
||||
|
@ -773,8 +773,8 @@ void LoLEngine::showOutro(int character, bool maxDifficulty) {
|
|||
palNextFadeStep = _system->getMillis() + ((_tim->_palDelayAcc >> 8) * _tickLength);
|
||||
_tim->_palDelayAcc &= 0xFF;
|
||||
|
||||
if (!_screen->fadePalStep(_screen->getPalette(0).getData(), _tim->_palDiff)) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
if (!_screen->fadePalStep(_screen->getPalette(0), _tim->_palDiff)) {
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_tim->_palDiff = 0;
|
||||
}
|
||||
}
|
||||
|
@ -828,7 +828,7 @@ void LoLEngine::showOutro(int character, bool maxDifficulty) {
|
|||
if (maxDifficulty)
|
||||
_tim->displayText(0x8000, 0, 0xDC);
|
||||
_screen->updateScreen();
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30, 0);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30, 0);
|
||||
|
||||
while (!checkInput(0) && !shouldQuit())
|
||||
delay(_tickLength);
|
||||
|
@ -907,7 +907,7 @@ void LoLEngine::processCredits(char *t, int dimState, int page, int delayTime) {
|
|||
assert(monsterPal);
|
||||
|
||||
_screen->getPalette(0).copy(monsterPal, 0, 40, 88);
|
||||
_screen->fadePalette(_screen->getPalette(0).getData(), 30);
|
||||
_screen->fadePalette(_screen->getPalette(0), 30);
|
||||
|
||||
uint32 waitTimer = _system->getMillis();
|
||||
|
||||
|
@ -1049,7 +1049,7 @@ void LoLEngine::processCredits(char *t, int dimState, int page, int delayTime) {
|
|||
doorRedraw = false;
|
||||
} else {
|
||||
if (!monsterAnimFrame)
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
_screen->copyRegion(0, 0, 0, 0, 320, 200, 2, page, Screen::CR_NO_P_CHECK);
|
||||
|
||||
|
@ -1130,7 +1130,7 @@ void LoLEngine::processCredits(char *t, int dimState, int page, int delayTime) {
|
|||
|
||||
loadOutroShapes(curShapeFile, shapes);
|
||||
_screen->getPalette(0).copy(monsterPal, curShapeFile * 40, 40, 88);
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
needNewShape = false;
|
||||
}
|
||||
|
|
|
@ -333,7 +333,7 @@ void KyraEngine_LoK::drawSentenceCommand(const char *sentence, int color) {
|
|||
_currSentenceColor[1] = _screen->getPalette(0)[766] = _screen->getPalette(0)[color*3+1];
|
||||
_currSentenceColor[2] = _screen->getPalette(0)[767] = _screen->getPalette(0)[color*3+2];
|
||||
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
_startSentencePalIndex = 0;
|
||||
}
|
||||
|
||||
|
@ -371,7 +371,7 @@ void KyraEngine_LoK::updateTextFade() {
|
|||
_screen->getPalette(0)[765] = _currSentenceColor[0];
|
||||
_screen->getPalette(0)[766] = _currSentenceColor[1];
|
||||
_screen->getPalette(0)[767] = _currSentenceColor[2];
|
||||
_screen->setScreenPalette(_screen->getPalette(0).getData());
|
||||
_screen->setScreenPalette(_screen->getPalette(0));
|
||||
|
||||
if (finished) {
|
||||
_fadeText = false;
|
||||
|
|
|
@ -520,9 +520,8 @@ void VQAMovie::displayFrame(uint frameNum) {
|
|||
|
||||
// The frame has been decoded
|
||||
|
||||
if (_frameInfo[frameNum] & 0x80000000) {
|
||||
_vm->screen()->setScreenPalette(_vm->screen()->getPalette(0).getData());
|
||||
}
|
||||
if (_frameInfo[frameNum] & 0x80000000)
|
||||
_vm->screen()->setScreenPalette(_vm->screen()->getPalette(0));
|
||||
|
||||
int blockPitch = _header.width / _header.blockW;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue