mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-25 13:42:37 +00:00
Fixed the remaining glitch with fading after a cutaway is shown
svn-id: r27504
This commit is contained in:
parent
ae2c382fc9
commit
3c24b118b4
@ -236,16 +236,13 @@ void Anim::returnFromCutaway(void) {
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventPalToBlack;
|
||||
event.time = 0;
|
||||
event.duration = 5000; //kNormalFadeDuration;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = cur_pal;
|
||||
|
||||
q_event = _vm->_events->queue(&event);
|
||||
}
|
||||
|
||||
// Note that clearCutaway() sets _cutawayActive to false.
|
||||
// clearCutaway();
|
||||
// TODO: Clearing the cutaway via an event is better, but it breaks things up
|
||||
|
||||
// Clear the cutaway. Note that this sets _cutawayActive to false
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kCutawayEvent;
|
||||
event.op = kEventClearCutaway;
|
||||
@ -268,13 +265,22 @@ void Anim::returnFromCutaway(void) {
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event); // chain with the other events
|
||||
|
||||
// Draw the scene
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kSceneEvent;
|
||||
event.op = kEventDrawScene;
|
||||
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
|
||||
if (_cutAwayFade) {
|
||||
event.type = kEvTImmediate;
|
||||
event.code = kPalEvent;
|
||||
event.op = kEventBlackToPal;
|
||||
event.time = 0;
|
||||
event.duration = 5000; //kNormalFadeDuration;
|
||||
event.duration = kNormalFadeDuration;
|
||||
event.data = saved_pal;
|
||||
|
||||
q_event = _vm->_events->chain(q_event, &event);
|
||||
|
@ -369,6 +369,19 @@ int Events::handleOneShot(Event *event) {
|
||||
break;
|
||||
case kSceneEvent:
|
||||
switch (event->op) {
|
||||
case kEventDrawScene:
|
||||
{
|
||||
Surface *backGroundSurface;
|
||||
BGInfo bgInfo;
|
||||
|
||||
backBuffer = _vm->_gfx->getBackBuffer();
|
||||
backGroundSurface = _vm->_render->getBackGroundSurface();
|
||||
_vm->_scene->getBGInfo(bgInfo);
|
||||
backGroundSurface->blit(bgInfo.bounds, bgInfo.buffer);
|
||||
|
||||
_vm->_scene->draw();
|
||||
}
|
||||
break;
|
||||
case kEventEnd:
|
||||
_vm->_scene->nextScene();
|
||||
return kEvStBreak;
|
||||
|
@ -78,6 +78,7 @@ enum EventOps {
|
||||
kEventPlay = 1,
|
||||
kEventStop = 2,
|
||||
// SCENE events
|
||||
kEventDrawScene = 1,
|
||||
kEventEnd = 2,
|
||||
// TEXT events
|
||||
kEventHide = 2,
|
||||
|
Loading…
x
Reference in New Issue
Block a user