fixed lense creation bug ( fade in/out now has separate flag)
svn-id: r18340
This commit is contained in:
parent
2a3227911b
commit
d3587c3a1e
6 changed files with 54 additions and 29 deletions
|
@ -405,8 +405,8 @@ int Events::handleOneShot(EVENT *event) {
|
||||||
_vm->_interface->setStatusText("");
|
_vm->_interface->setStatusText("");
|
||||||
_vm->_interface->drawStatusBar();
|
_vm->_interface->drawStatusBar();
|
||||||
break;
|
break;
|
||||||
case EVENT_RESTORE_MODE:
|
case EVENT_SET_FADE_MODE:
|
||||||
_vm->_interface->restoreMode();
|
_vm->_interface->setFadeMode(event->param);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -86,7 +86,7 @@ enum EVENT_OPS {
|
||||||
EVENT_DEACTIVATE = 2,
|
EVENT_DEACTIVATE = 2,
|
||||||
EVENT_SET_STATUS = 3,
|
EVENT_SET_STATUS = 3,
|
||||||
EVENT_CLEAR_STATUS = 4,
|
EVENT_CLEAR_STATUS = 4,
|
||||||
EVENT_RESTORE_MODE = 5,
|
EVENT_SET_FADE_MODE = 5,
|
||||||
// ACTOR events
|
// ACTOR events
|
||||||
EVENT_MOVE = 1,
|
EVENT_MOVE = 1,
|
||||||
// SCRIPT events
|
// SCRIPT events
|
||||||
|
|
|
@ -178,9 +178,10 @@ Interface::Interface(SagaEngine *vm) : _vm(vm), _initialized(false) {
|
||||||
_saveEdit = _savePanel.getButton(_vm->getDisplayInfo().saveEditIndex);
|
_saveEdit = _savePanel.getButton(_vm->getDisplayInfo().saveEditIndex);
|
||||||
_savePanel.currentButton = NULL;
|
_savePanel.currentButton = NULL;
|
||||||
|
|
||||||
_active = false;
|
_active = true;
|
||||||
_panelMode = _lockedMode = kPanelNull;
|
_panelMode = _lockedMode = kPanelNull;
|
||||||
_savedMode = -1;
|
_savedMode = -1;
|
||||||
|
_fadeMode = kNoFade;
|
||||||
_inMainMode = false;
|
_inMainMode = false;
|
||||||
*_statusText = 0;
|
*_statusText = 0;
|
||||||
_statusOnceColor = -1;
|
_statusOnceColor = -1;
|
||||||
|
@ -258,7 +259,7 @@ void Interface::restoreMode() {
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Interface::setMode(int mode, bool force) {
|
void Interface::setMode(int mode) {
|
||||||
// TODO: Is this where we should hide/show the mouse cursor?
|
// TODO: Is this where we should hide/show the mouse cursor?
|
||||||
debug(0, "Interface::setMode %i", mode);
|
debug(0, "Interface::setMode %i", mode);
|
||||||
if (mode == kPanelMain) {
|
if (mode == kPanelMain) {
|
||||||
|
@ -271,14 +272,7 @@ void Interface::setMode(int mode, bool force) {
|
||||||
_saveReminderState = 0;
|
_saveReminderState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This lets us to prevents actors to pop up during initial
|
_panelMode = mode;
|
||||||
// scene fade in.
|
|
||||||
if (_savedMode != -1 && !force) {
|
|
||||||
_savedMode = mode;
|
|
||||||
debug(0, "Saved mode: %d. my mode is %d", mode, _panelMode);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_panelMode = mode;
|
|
||||||
|
|
||||||
switch(_panelMode) {
|
switch(_panelMode) {
|
||||||
case(kPanelMain):
|
case(kPanelMain):
|
||||||
|
@ -527,7 +521,7 @@ void Interface::draw() {
|
||||||
|
|
||||||
backBuffer = _vm->_gfx->getBackBuffer();
|
backBuffer = _vm->_gfx->getBackBuffer();
|
||||||
|
|
||||||
if (_vm->_scene->isInDemo() || _panelMode == kPanelFade)
|
if (_vm->_scene->isInDemo() || _fadeMode == kFadeOut)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1131,7 +1125,7 @@ void Interface::setOption(PanelButton *panelButton) {
|
||||||
|
|
||||||
void Interface::update(const Point& mousePoint, int updateFlag) {
|
void Interface::update(const Point& mousePoint, int updateFlag) {
|
||||||
|
|
||||||
if (_vm->_scene->isInDemo() || _panelMode == kPanelFade || !_active) {
|
if (_vm->_scene->isInDemo() || _fadeMode == kFadeOut || !_active) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,12 @@ enum PanelModes {
|
||||||
kPanelPlacard,
|
kPanelPlacard,
|
||||||
kPanelMap,
|
kPanelMap,
|
||||||
// kPanelInventory,
|
// kPanelInventory,
|
||||||
kPanelFade
|
};
|
||||||
|
|
||||||
|
enum FadeModes {
|
||||||
|
kNoFade = 0,
|
||||||
|
kFadeIn,
|
||||||
|
kFadeOut
|
||||||
};
|
};
|
||||||
|
|
||||||
struct InterfacePanel {
|
struct InterfacePanel {
|
||||||
|
@ -142,8 +147,6 @@ struct InterfacePanel {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct Converse {
|
struct Converse {
|
||||||
char *text;
|
char *text;
|
||||||
int stringNum;
|
int stringNum;
|
||||||
|
@ -185,8 +188,15 @@ public:
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
bool isActive() { return _active; }
|
bool isActive() { return _active; }
|
||||||
void setMode(int mode, bool force = false);
|
void setMode(int mode);
|
||||||
int getMode(void) const { return _panelMode; }
|
int getMode(void) const { return _panelMode; }
|
||||||
|
void setFadeMode(int fadeMode) {
|
||||||
|
_fadeMode = fadeMode;
|
||||||
|
draw();
|
||||||
|
}
|
||||||
|
int getFadeMode() const {
|
||||||
|
return _fadeMode;
|
||||||
|
}
|
||||||
void rememberMode();
|
void rememberMode();
|
||||||
void restoreMode();
|
void restoreMode();
|
||||||
bool isInMainMode() { return _inMainMode; }
|
bool isInMainMode() { return _inMainMode; }
|
||||||
|
@ -364,6 +374,7 @@ private:
|
||||||
|
|
||||||
int _saveReminderState;
|
int _saveReminderState;
|
||||||
bool _active;
|
bool _active;
|
||||||
|
int _fadeMode;
|
||||||
int _panelMode;
|
int _panelMode;
|
||||||
int _savedMode;
|
int _savedMode;
|
||||||
int _lockedMode;
|
int _lockedMode;
|
||||||
|
|
|
@ -115,7 +115,7 @@ int Render::drawScene() {
|
||||||
// Display scene background
|
// Display scene background
|
||||||
_vm->_scene->draw();
|
_vm->_scene->draw();
|
||||||
|
|
||||||
if (_vm->_interface->getMode() != kPanelFade) {
|
if (_vm->_interface->getFadeMode() != kFadeOut) {
|
||||||
if (_vm->_puzzle->isActive()) {
|
if (_vm->_puzzle->isActive()) {
|
||||||
_vm->_puzzle->movePiece(mouse_pt);
|
_vm->_puzzle->movePiece(mouse_pt);
|
||||||
_vm->_actor->drawSpeech();
|
_vm->_actor->drawSpeech();
|
||||||
|
|
|
@ -466,8 +466,7 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||||
if (loadSceneParams->transitionType == kTransitionFade ||
|
if (loadSceneParams->transitionType == kTransitionFade ||
|
||||||
loadSceneParams->transitionType == kTransitionFadeNoInterface) {
|
loadSceneParams->transitionType == kTransitionFadeNoInterface) {
|
||||||
|
|
||||||
_vm->_interface->rememberMode();
|
_vm->_interface->setFadeMode(kFadeOut);
|
||||||
_vm->_interface->setMode(kPanelFade, true);
|
|
||||||
|
|
||||||
// Fade to black out
|
// Fade to black out
|
||||||
_vm->_gfx->getCurrentPal(current_pal);
|
_vm->_gfx->getCurrentPal(current_pal);
|
||||||
|
@ -489,6 +488,15 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||||
q_event = _vm->_events->chain(q_event, &event);
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set fade mode
|
||||||
|
event.type = IMMEDIATE_EVENT;
|
||||||
|
event.code = INTERFACE_EVENT;
|
||||||
|
event.op = EVENT_SET_FADE_MODE;
|
||||||
|
event.param = kNoFade;
|
||||||
|
event.time = 0;
|
||||||
|
event.duration = 0;
|
||||||
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
|
|
||||||
// Display scene background, but stay with black palette
|
// Display scene background, but stay with black palette
|
||||||
event.type = IMMEDIATE_EVENT;
|
event.type = IMMEDIATE_EVENT;
|
||||||
event.code = BG_EVENT;
|
event.code = BG_EVENT;
|
||||||
|
@ -498,13 +506,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||||
event.duration = 0;
|
event.duration = 0;
|
||||||
q_event = _vm->_events->chain(q_event, &event);
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
|
|
||||||
// Restore interface mode
|
|
||||||
event.type = IMMEDIATE_EVENT;
|
|
||||||
event.code = INTERFACE_EVENT;
|
|
||||||
event.op = EVENT_RESTORE_MODE;
|
|
||||||
event.time = 0;
|
|
||||||
event.duration = 0;
|
|
||||||
q_event = _vm->_events->chain(q_event, &event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the scene pre script, but stay with black palette
|
// Start the scene pre script, but stay with black palette
|
||||||
|
@ -525,6 +526,16 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||||
|
|
||||||
if (loadSceneParams->transitionType == kTransitionFade ||
|
if (loadSceneParams->transitionType == kTransitionFade ||
|
||||||
loadSceneParams->transitionType == kTransitionFadeNoInterface) {
|
loadSceneParams->transitionType == kTransitionFadeNoInterface) {
|
||||||
|
|
||||||
|
// set fade mode
|
||||||
|
event.type = IMMEDIATE_EVENT;
|
||||||
|
event.code = INTERFACE_EVENT;
|
||||||
|
event.op = EVENT_SET_FADE_MODE;
|
||||||
|
event.param = kFadeIn;
|
||||||
|
event.time = 0;
|
||||||
|
event.duration = 0;
|
||||||
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
|
|
||||||
// Fade in from black to the scene background palette
|
// Fade in from black to the scene background palette
|
||||||
event.type = IMMEDIATE_EVENT;
|
event.type = IMMEDIATE_EVENT;
|
||||||
event.code = PAL_EVENT;
|
event.code = PAL_EVENT;
|
||||||
|
@ -534,6 +545,15 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
||||||
event.data = _bg.pal;
|
event.data = _bg.pal;
|
||||||
|
|
||||||
q_event = _vm->_events->chain(q_event, &event);
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
|
|
||||||
|
// set fade mode
|
||||||
|
event.type = IMMEDIATE_EVENT;
|
||||||
|
event.code = INTERFACE_EVENT;
|
||||||
|
event.op = EVENT_SET_FADE_MODE;
|
||||||
|
event.param = kNoFade;
|
||||||
|
event.time = 0;
|
||||||
|
event.duration = 0;
|
||||||
|
q_event = _vm->_events->chain(q_event, &event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue