added fnSetPaletteToFade/fnSetPaletteToCut

svn-id: r11851
This commit is contained in:
Robert Göffringmann 2003-12-22 11:23:40 +00:00
parent a6fb0fd553
commit 42cea0975a
4 changed files with 10 additions and 8 deletions

View File

@ -889,12 +889,12 @@ int SwordLogic::fnSetFadeTargetPalette(BsObject *cpt, int32 id, int32 spritePal,
}
int SwordLogic::fnSetPaletteToFade(BsObject *cpt, int32 id, int32 c, int32 d, int32 e, int32 f, int32 z, int32 x) {
warning("fnSetPaletteToFade(xx, %d, %d, %d, %d)", id, c, d, e);
SwordEngine::_systemVars.wantFade = true;
return SCRIPT_CONT;
}
int SwordLogic::fnSetPaletteToCut(BsObject *cpt, int32 id, int32 c, int32 d, int32 e, int32 f, int32 z, int32 x) {
warning("fnSetPaletteToCut(xx, %d, %d, %d, %d)", id, c, d, e);
SwordEngine::_systemVars.wantFade = false;
return SCRIPT_CONT;
}

View File

@ -30,6 +30,7 @@
#include "common/util.h"
#include "system.h"
#include "menu.h"
#include "sword1.h"
#define SCROLL_FRACTION 16
#define MAX_SCROLL_DISTANCE 8
@ -106,7 +107,7 @@ void SwordScreen::fnSetPalette(uint8 start, uint16 length, uint32 id, bool fadeU
memset(_currentPalette, 0, 256 * 4);
_system->set_palette(_currentPalette, 0, 256);
} else
_system->set_palette(_targetPalette, start, length);
_system->set_palette(_targetPalette + 4 * start, start, length);
}
void SwordScreen::refreshPalette(void) {
@ -259,8 +260,8 @@ void SwordScreen::newScreen(uint32 screen) {
if (_roomDefTable[_currentScreen].parallax[1])
_parallax[1] = (uint8*)_resMan->openFetchRes(_roomDefTable[_currentScreen].parallax[1]);
fnSetPalette(0, 184, _roomDefTable[_currentScreen].palettes[0], true);
fnSetPalette(184, 72, _roomDefTable[_currentScreen].palettes[1], true);
fnSetPalette(0, 184, _roomDefTable[_currentScreen].palettes[0], SwordEngine::_systemVars.wantFade);
fnSetPalette(184, 72, _roomDefTable[_currentScreen].palettes[1], SwordEngine::_systemVars.wantFade);
}
void SwordScreen::quitScreen(void) {

View File

@ -159,6 +159,7 @@ void SwordEngine::reinitialize(void) {
_objectMan->initialize(); // resources which have just been wiped.
_mouse->initialize();
// todo: reinitialize swordmenu.
_systemVars.wantFade = true;
}
void SwordEngine::startPositions(int32 startNumber) {
@ -1116,9 +1117,8 @@ uint8 SwordEngine::mainLoop(void) {
// do something smart here to implement pausing the game. If we even want that, that is.
} while ((SwordLogic::_scriptVars[SCREEN] == SwordLogic::_scriptVars[NEW_SCREEN]) && (retCode == 0));
if (retCode == 0) {
if (SwordLogic::_scriptVars[SCREEN] != 53) // we don't fade down after syria pan (53).
_screen->fadeDownPalette();
if ((retCode == 0) && (SwordLogic::_scriptVars[SCREEN] != 53) && _systemVars.wantFade) {
_screen->fadeDownPalette();
while (_screen->stillFading()) {
_music->stream();
_screen->updateScreen();

View File

@ -46,6 +46,7 @@ struct SystemVars {
uint8 deathScreenFlag; // 1 death screen version of the control panel, 2 = successful end of game, 3 = force restart
bool forceRestart;
bool wantFade; // when true => fade during scene change, else cut.
uint8 playSpeech;
uint8 showText;
uint8 language;