mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
Palette fade in when a cutaway starts in IHNM is working now. Also, the fade mode is properly set in all cases where palette fadeout is used. Some code formatting
svn-id: r28904
This commit is contained in:
@@ -2415,8 +2415,8 @@ void Actor::moveDragon(ActorData *actor) {
|
||||
event.param4 = -1; // Object
|
||||
event.param5 = -1; // With Object
|
||||
event.param6 = -1; // Actor
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
_dragonHunt = false;
|
||||
}
|
||||
} else {
|
||||
|
||||
+77
-56
@@ -84,34 +84,38 @@ int Anim::playCutaway(int cut, bool fade) {
|
||||
Event event;
|
||||
Event *q_event = NULL;
|
||||
bool startImmediately = false;
|
||||
byte *resourceData;
|
||||
size_t resourceDataLength;
|
||||
ResourceContext *context = _vm->_resource->getContext(GAME_RESOURCEFILE);
|
||||
|
||||
_cutAwayFade = fade;
|
||||
|
||||
_vm->_gfx->savePalette();
|
||||
_vm->_gfx->getCurrentPal(saved_pal);
|
||||
|
||||
// TODO: Fade in and fade out at this point are problematic right now, caused
|
||||
// by the fact that we're trying to mix events with direct calls:
|
||||
// 1) The background of the animation is shown when _vm->decodeBGImage and
|
||||
// bgSurface->blit are called below, before palette fadeout starts
|
||||
// 2) Fade in to the animation is currently problematic (it fades in to white)
|
||||
// We either have to use non-event calls to fade in/out the palette, or change
|
||||
// the background display and animation parts to events
|
||||
fade = false; // remove this once palette fadein-fadeout works
|
||||
|
||||
if (fade) {
|
||||
static PalEntry cur_pal[PAL_ENTRIES];
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
_vm->_interface->setFadeMode(kFadeOut);
|
||||
|
||||
// Fade to black out
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// set fade mode
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventSetFadeMode;
|
||||
event.param = kNoFade;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
// Prepare cutaway
|
||||
@@ -131,46 +135,19 @@ int Anim::playCutaway(int cut, bool fade) {
|
||||
else
|
||||
_vm->_interface->setMode(kPanelCutaway);
|
||||
|
||||
// Set the initial background and palette for the cutaway
|
||||
ResourceContext *context = _vm->_resource->getContext(GAME_RESOURCEFILE);
|
||||
|
||||
byte *resourceData;
|
||||
size_t resourceDataLength;
|
||||
|
||||
_vm->_resource->loadResource(context, _cutawayList[cut].backgroundResourceId, resourceData, resourceDataLength);
|
||||
|
||||
byte *buf;
|
||||
size_t buflen;
|
||||
int width;
|
||||
int height;
|
||||
|
||||
_vm->decodeBGImage(resourceData, resourceDataLength, &buf, &buflen, &width, &height);
|
||||
|
||||
const PalEntry *palette = (const PalEntry *)_vm->getImagePal(resourceData, resourceDataLength);
|
||||
|
||||
Surface *bgSurface = _vm->_render->getBackGroundSurface();
|
||||
const Rect rect(width, height);
|
||||
|
||||
bgSurface->blit(rect, buf);
|
||||
_vm->_frameCount++;
|
||||
|
||||
// Handle fade up, if we previously faded down
|
||||
if (fade) {
|
||||
// Set the initial background and palette for the cutaway
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventBlackToPal;
|
||||
event.code = kCutawayEvent;
|
||||
event.op = kEventShowCutawayBg;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = (PalEntry *)palette;
|
||||
|
||||
event.duration = 0;
|
||||
event.param = _cutawayList[cut].backgroundResourceId;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
} else {
|
||||
_vm->_gfx->setPalette(palette);
|
||||
showCutawayBg(_cutawayList[cut].backgroundResourceId);
|
||||
}
|
||||
|
||||
free(buf);
|
||||
free(resourceData);
|
||||
|
||||
// Play the animation
|
||||
|
||||
int cutawaySlot = -1;
|
||||
@@ -215,7 +192,10 @@ int Anim::playCutaway(int cut, bool fade) {
|
||||
event.param = MAX_ANIMATIONS + cutawaySlot;
|
||||
event.time = (40 / 3) * 1000 / _cutawayList[cut].frameRate;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
if (fade)
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
else
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
return MAX_ANIMATIONS + cutawaySlot;
|
||||
@@ -235,7 +215,6 @@ void Anim::returnFromCutaway(void) {
|
||||
|
||||
debug(0, "returnFromCutaway()");
|
||||
|
||||
|
||||
if (_cutawayActive) {
|
||||
Event event;
|
||||
Event *q_event = NULL;
|
||||
@@ -243,16 +222,26 @@ void Anim::returnFromCutaway(void) {
|
||||
if (_cutAwayFade) {
|
||||
static PalEntry cur_pal[PAL_ENTRIES];
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
_vm->_interface->setFadeMode(kFadeOut);
|
||||
|
||||
// Fade to black out
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// set fade mode
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventSetFadeMode;
|
||||
event.param = kNoFade;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
// Clear the cutaway. Note that this sets _cutawayActive to false
|
||||
@@ -275,7 +264,6 @@ void Anim::returnFromCutaway(void) {
|
||||
event.op = kEventResumeAll;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event); // chain with the other events
|
||||
|
||||
// Draw the scene
|
||||
@@ -284,7 +272,6 @@ void Anim::returnFromCutaway(void) {
|
||||
event.op = kEventDraw;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event); // chain with the other events
|
||||
|
||||
// Handle fade up, if we previously faded down
|
||||
@@ -295,16 +282,13 @@ void Anim::returnFromCutaway(void) {
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = saved_pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
}
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kScriptEvent;
|
||||
event.op = kEventThreadWake;
|
||||
event.param = kWaitTypeWakeUp;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
}
|
||||
@@ -336,6 +320,45 @@ void Anim::clearCutaway(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void Anim::showCutawayBg(int bg) {
|
||||
ResourceContext *context = _vm->_resource->getContext(GAME_RESOURCEFILE);
|
||||
|
||||
byte *resourceData;
|
||||
size_t resourceDataLength;
|
||||
byte *buf;
|
||||
size_t buflen;
|
||||
int width;
|
||||
int height;
|
||||
Event event;
|
||||
static PalEntry pal[PAL_ENTRIES];
|
||||
|
||||
_vm->_resource->loadResource(context, bg, resourceData, resourceDataLength);
|
||||
_vm->decodeBGImage(resourceData, resourceDataLength, &buf, &buflen, &width, &height);
|
||||
|
||||
const byte *palPointer = _vm->getImagePal(resourceData, resourceDataLength);
|
||||
memcpy(pal, palPointer, sizeof(pal));
|
||||
Surface *bgSurface = _vm->_render->getBackGroundSurface();
|
||||
const Rect rect(width, height);
|
||||
bgSurface->blit(rect, buf);
|
||||
_vm->_frameCount++;
|
||||
|
||||
if (_cutAwayFade) {
|
||||
// Handle fade up, if we previously faded down
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventBlackToPal;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = pal;
|
||||
_vm->_events->queue(&event);
|
||||
} else {
|
||||
_vm->_gfx->setPalette(pal);
|
||||
}
|
||||
|
||||
free(buf);
|
||||
free(resourceData);
|
||||
}
|
||||
|
||||
void Anim::startVideo(int vid, bool fade) {
|
||||
debug(0, "startVideo(%d, %d)", vid, fade);
|
||||
|
||||
@@ -470,7 +493,6 @@ void Anim::play(uint16 animId, int vectorTime, bool playing) {
|
||||
event.op = kEventFrame;
|
||||
event.param = animId;
|
||||
event.time = 10;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
// Nothing to render here (apart from the background, which is already rendered),
|
||||
@@ -503,8 +525,8 @@ void Anim::play(uint16 animId, int vectorTime, bool playing) {
|
||||
event.op = kEventFrame;
|
||||
event.param = animId;
|
||||
event.time = 0;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -568,7 +590,6 @@ void Anim::play(uint16 animId, int vectorTime, bool playing) {
|
||||
event.op = kEventFrame;
|
||||
event.param = animId;
|
||||
event.time = frameTime;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
|
||||
@@ -119,6 +119,7 @@ public:
|
||||
void endCutaway(void);
|
||||
void returnFromCutaway(void);
|
||||
void clearCutaway(void);
|
||||
void showCutawayBg(int bg);
|
||||
|
||||
void startVideo(int vid, bool fade);
|
||||
void endVideo(void);
|
||||
|
||||
@@ -549,6 +549,9 @@ int Events::handleOneShot(Event *event) {
|
||||
case kEventClear:
|
||||
_vm->_anim->clearCutaway();
|
||||
break;
|
||||
case kEventShowCutawayBg:
|
||||
_vm->_anim->showCutawayBg(event->param);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -117,7 +117,8 @@ enum EventOps {
|
||||
kEventDissolve = 1,
|
||||
kEventDissolveBGMask = 2,
|
||||
// CUTAWAY events
|
||||
kEventClear = 1
|
||||
kEventClear = 1,
|
||||
kEventShowCutawayBg = 2
|
||||
};
|
||||
|
||||
enum EventParams {
|
||||
|
||||
@@ -1527,7 +1527,6 @@ void Interface::handleChapterSelectionClick(const Point& mousePoint) {
|
||||
event.param4 = obj; // Object
|
||||
event.param5 = 0; // With Object
|
||||
event.param6 = obj; // Actor
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,6 @@ Event *Scene::ITEQueueDialogue(Event *q_event, int n_dialogues, const IntroDialo
|
||||
event.op = kEventDisplay;
|
||||
event.data = entry;
|
||||
event.time = (i == 0) ? 0 : VOICE_PAD;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Play voice
|
||||
@@ -124,7 +123,6 @@ Event *Scene::ITEQueueDialogue(Event *q_event, int n_dialogues, const IntroDialo
|
||||
event.op = kEventPlay;
|
||||
event.param = dialogue[i].i_voice_rn;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
voice_len = _vm->_sndRes->getVoiceLength(dialogue[i].i_voice_rn);
|
||||
@@ -138,7 +136,6 @@ Event *Scene::ITEQueueDialogue(Event *q_event, int n_dialogues, const IntroDialo
|
||||
event.op = kEventRemove;
|
||||
event.data = entry;
|
||||
event.time = voice_len;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
@@ -265,7 +262,6 @@ Event *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const
|
||||
event.op = kEventDisplay;
|
||||
event.data = entry;
|
||||
event.time = delta_time;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Remove text
|
||||
@@ -274,7 +270,6 @@ Event *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const
|
||||
event.op = kEventRemove;
|
||||
event.data = entry;
|
||||
event.time = duration;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
y += (_vm->_font->getHeight(font) + line_spacing);
|
||||
@@ -301,7 +296,6 @@ int Scene::ITEIntroAnimProc(int param) {
|
||||
event.op = kEventDisplay;
|
||||
event.param = kEvPSetPalette;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
debug(3, "Intro animation procedure started.");
|
||||
@@ -340,7 +334,6 @@ int Scene::ITEIntroAnimProc(int param) {
|
||||
event.op = kEventPlay;
|
||||
event.param = 0;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue intro music playback
|
||||
@@ -350,7 +343,6 @@ int Scene::ITEIntroAnimProc(int param) {
|
||||
event.param2 = MUSIC_LOOP;
|
||||
event.op = kEventPlay;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
break;
|
||||
@@ -427,7 +419,6 @@ int Scene::ITEIntroCave1Proc(int param) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStart;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Queue narrator dialogue list
|
||||
@@ -438,8 +429,8 @@ int Scene::ITEIntroCave1Proc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = VOICE_PAD;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -504,7 +495,6 @@ int Scene::ITEIntroCave2Proc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Begin palette cycling animation for candles
|
||||
@@ -512,7 +502,6 @@ int Scene::ITEIntroCave2Proc(int param) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStart;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue narrator dialogue list
|
||||
@@ -523,8 +512,8 @@ int Scene::ITEIntroCave2Proc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = VOICE_PAD;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -588,7 +577,6 @@ int Scene::ITEIntroCave3Proc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Begin palette cycling animation for candles
|
||||
@@ -596,7 +584,6 @@ int Scene::ITEIntroCave3Proc(int param) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStart;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue narrator dialogue list
|
||||
@@ -607,8 +594,8 @@ int Scene::ITEIntroCave3Proc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = VOICE_PAD;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -681,7 +668,6 @@ int Scene::ITEIntroCave4Proc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Begin palette cycling animation for candles
|
||||
@@ -689,7 +675,6 @@ int Scene::ITEIntroCave4Proc(int param) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStart;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue narrator dialogue list
|
||||
@@ -700,8 +685,8 @@ int Scene::ITEIntroCave4Proc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = VOICE_PAD;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -747,7 +732,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.op = kEventPlay;
|
||||
event.param = 0;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Begin ITE title theme music
|
||||
@@ -759,7 +743,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.param2 = MUSIC_NORMAL;
|
||||
event.op = kEventPlay;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Pause animation before logo
|
||||
@@ -768,7 +751,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.op = kEventStop;
|
||||
event.param = 0;
|
||||
event.time = 3000;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Display logo
|
||||
@@ -777,7 +759,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.op = kEventDissolveBGMask;
|
||||
event.time = 0;
|
||||
event.duration = LOGO_DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Remove logo
|
||||
@@ -786,7 +767,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 3000;
|
||||
event.duration = LOGO_DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Unpause animation before logo
|
||||
@@ -795,7 +775,6 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.op = kEventPlay;
|
||||
event.time = 0;
|
||||
event.param = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue game credits list
|
||||
@@ -806,8 +785,8 @@ int Scene::ITEIntroValleyProc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = 1000;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -870,7 +849,6 @@ int Scene::ITEIntroTreeHouseProc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
if (_vm->_anim->hasAnimation(0)) {
|
||||
@@ -882,7 +860,6 @@ int Scene::ITEIntroTreeHouseProc(int param) {
|
||||
event.op = kEventPlay;
|
||||
event.param = 0;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
@@ -895,8 +872,8 @@ int Scene::ITEIntroTreeHouseProc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = 1000;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -950,7 +927,6 @@ int Scene::ITEIntroFairePathProc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Begin title screen background animation
|
||||
@@ -961,7 +937,6 @@ int Scene::ITEIntroFairePathProc(int param) {
|
||||
event.op = kEventPlay;
|
||||
event.param = 0;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Queue game credits list
|
||||
@@ -973,8 +948,8 @@ int Scene::ITEIntroFairePathProc(int param) {
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventEnd;
|
||||
event.time = 1000;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
@@ -1005,7 +980,6 @@ int Scene::ITEIntroFaireTentProc(int param) {
|
||||
event.op = kEventDissolve;
|
||||
event.time = 0;
|
||||
event.duration = DISSOLVE_DURATION;
|
||||
|
||||
q_event_start = _vm->_events->queue(&event);
|
||||
|
||||
// End scene after momentary pause
|
||||
@@ -1014,6 +988,7 @@ int Scene::ITEIntroFaireTentProc(int param) {
|
||||
event.op = kEventEnd;
|
||||
event.time = 5000;
|
||||
q_event = _vm->_events->chain(q_event_start, &event);
|
||||
|
||||
break;
|
||||
case SCENE_END:
|
||||
break;
|
||||
|
||||
@@ -131,7 +131,6 @@ int PalAnim::cycleStart() {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStep;
|
||||
event.time = PALANIM_CYCLETIME;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
return SUCCESS;
|
||||
@@ -178,7 +177,6 @@ int PalAnim::cycleStep(int vectortime) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStep;
|
||||
event.time = vectortime + PALANIM_CYCLETIME;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
+23
-21
@@ -785,7 +785,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.param4 = _sceneNumber; // Object
|
||||
event.param5 = loadSceneParams->actorsEntrance; // With Object
|
||||
event.param6 = 0; // Actor
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
@@ -807,7 +806,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = _bg.pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// set fade mode
|
||||
@@ -836,14 +834,12 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.param2 = MUSIC_DEFAULT;
|
||||
event.op = kEventPlay;
|
||||
event.time = 0;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
} else {
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kMusicEvent;
|
||||
event.op = kEventStop;
|
||||
event.time = 0;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
}
|
||||
@@ -854,7 +850,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.op = kEventDisplay;
|
||||
event.param = kEvPSetPalette;
|
||||
event.time = 0;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
// Begin palette cycle animation if present
|
||||
@@ -862,7 +857,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.code = kPalAnimEvent;
|
||||
event.op = kEventCycleStart;
|
||||
event.time = 0;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// Start the scene main script
|
||||
@@ -877,7 +871,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||
event.param4 = _sceneNumber; // Object
|
||||
event.param5 = loadSceneParams->actorsEntrance; // With Object
|
||||
event.param6 = 0; // Actor
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
@@ -1326,22 +1319,31 @@ void Scene::clearPlacard() {
|
||||
Event event;
|
||||
Event *q_event;
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
_vm->_interface->setFadeMode(kFadeOut);
|
||||
|
||||
// Fade to black out
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
// set fade mode
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventSetFadeMode;
|
||||
event.param = kNoFade;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kTextEvent;
|
||||
event.op = kEventRemove;
|
||||
event.data = _vm->_script->getPlacardTextEntry();
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTImmediate;
|
||||
@@ -1349,7 +1351,6 @@ void Scene::clearPlacard() {
|
||||
event.op = kEventRestoreMode;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
_vm->_scene->getBGPal(pal);
|
||||
@@ -1360,20 +1361,17 @@ void Scene::clearPlacard() {
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kCursorEvent;
|
||||
event.op = kEventShow;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kScriptEvent;
|
||||
event.op = kEventThreadWake;
|
||||
event.param = kWaitTypePlacard;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
@@ -1395,30 +1393,37 @@ void Scene::showPsychicProfile(const char *text) {
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kCursorEvent;
|
||||
event.op = kEventHide;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
_vm->_interface->setFadeMode(kFadeOut);
|
||||
|
||||
// Fade to black out
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// set fade mode
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventSetFadeMode;
|
||||
event.param = kNoFade;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventClearStatus;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Set the background and palette for the psychic profile
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kPsychicProfileBgEvent;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
_vm->_scene->_textList.clear();
|
||||
@@ -1442,7 +1447,6 @@ void Scene::showPsychicProfile(const char *text) {
|
||||
event.code = kTextEvent;
|
||||
event.op = kEventDisplay;
|
||||
event.data = _psychicProfileTextEntry;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
@@ -1454,14 +1458,12 @@ void Scene::showPsychicProfile(const char *text) {
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kScriptEvent;
|
||||
event.op = kEventThreadWake;
|
||||
event.param = kWaitTypePlacard;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
}
|
||||
|
||||
|
||||
@@ -505,7 +505,6 @@ void Script::doVerb() {
|
||||
event.param4 = _pendingObject[0]; // Object
|
||||
event.param5 = _pendingObject[1]; // With Object
|
||||
event.param6 = (objectType == kGameObjectActor) ? _pendingObject[0] : ID_PROTAG; // Actor
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
} else {
|
||||
|
||||
+11
-13
@@ -431,7 +431,6 @@ void Script::sfScriptDoAction(SCRIPTFUNC_PARAMS) {
|
||||
event.param4 = theObject; // Object
|
||||
event.param5 = withObject; // With Object
|
||||
event.param6 = objectId;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
@@ -1177,24 +1176,32 @@ void Script::sfPlacard(SCRIPTFUNC_PARAMS) {
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kCursorEvent;
|
||||
event.op = kEventHide;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
_vm->_interface->setFadeMode(kFadeOut);
|
||||
|
||||
// Fade to black out
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// set fade mode
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventSetFadeMode;
|
||||
event.param = kNoFade;
|
||||
event.time = 0;
|
||||
event.duration = 0;
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kInterfaceEvent;
|
||||
event.op = kEventClearStatus;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
@@ -1206,7 +1213,6 @@ void Script::sfPlacard(SCRIPTFUNC_PARAMS) {
|
||||
event.param3 = _vm->_scene->getHeight();
|
||||
event.param4 = 0;
|
||||
event.param5 = _vm->getDisplayWidth();
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
// Put the text in the center of the viewport, assuming it will fit on
|
||||
@@ -1231,25 +1237,21 @@ void Script::sfPlacard(SCRIPTFUNC_PARAMS) {
|
||||
event.code = kTextEvent;
|
||||
event.op = kEventDisplay;
|
||||
event.data = _placardTextEntry;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
_vm->_scene->getBGPal(pal);
|
||||
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventBlackToPal;
|
||||
event.time = 0;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
event.type = kEvTOneshot;
|
||||
event.code = kScriptEvent;
|
||||
event.op = kEventThreadWake;
|
||||
event.param = kWaitTypePlacard;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
||||
}
|
||||
@@ -1738,7 +1740,6 @@ void Script::sfScriptFade(SCRIPTFUNC_PARAMS) {
|
||||
static PalEntry cur_pal[PAL_ENTRIES];
|
||||
|
||||
_vm->_gfx->getCurrentPal(cur_pal);
|
||||
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalFade;
|
||||
@@ -1749,7 +1750,6 @@ void Script::sfScriptFade(SCRIPTFUNC_PARAMS) {
|
||||
event.param2 = endingBrightness;
|
||||
event.param3 = firstPalEntry;
|
||||
event.param4 = lastPalEntry - firstPalEntry + 1;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
@@ -1798,7 +1798,6 @@ void Script::sfAddIHNMDemoHelpTextLine(SCRIPTFUNC_PARAMS) {
|
||||
event.code = kTextEvent;
|
||||
event.op = kEventDisplay;
|
||||
event.data = _psychicProfileTextEntry;
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
_ihnmDemoCurrentY += 10;
|
||||
@@ -1932,7 +1931,6 @@ void Script::sfQueueMusic(SCRIPTFUNC_PARAMS) {
|
||||
// change
|
||||
// FIXME: If this is too short for other cases apart from chapter
|
||||
// point change, set it back to 1000
|
||||
|
||||
_vm->_events->queue(&event);
|
||||
|
||||
if (!_vm->_scene->haveChapterPointsChanged()) {
|
||||
|
||||
Reference in New Issue
Block a user