Code cleanup for the IHNM demo
svn-id: r28707
This commit is contained in:
parent
ef7c66893a
commit
84d2dda5ed
5 changed files with 25 additions and 41 deletions
|
@ -312,12 +312,13 @@ void Anim::clearCutaway(void) {
|
|||
_vm->_interface->restoreMode();
|
||||
|
||||
if (_vm->getGameId() != GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149) {
|
||||
_vm->_gfx->showCursor(true);
|
||||
} else {
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart()) {
|
||||
// Don't show the mouse cursor in the non-interactive part of the IHNM demo
|
||||
} else {
|
||||
_vm->_gfx->showCursor(true);
|
||||
}
|
||||
} else {
|
||||
// Enable the save reminder state after each cutaway for the IHNM demo
|
||||
_vm->_interface->setSaveReminderState(true);
|
||||
}
|
||||
|
|
|
@ -462,6 +462,10 @@ void Gfx::palFade(PalEntry *srcPal, int16 from, int16 to, int16 start, int16 num
|
|||
}
|
||||
|
||||
void Gfx::showCursor(bool state) {
|
||||
// Don't show the mouse cursor in the non-interactive part of the IHNM demo
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart())
|
||||
state = false;
|
||||
|
||||
CursorMan.showMouse(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -351,15 +351,6 @@ int Interface::activate() {
|
|||
draw();
|
||||
}
|
||||
|
||||
if (_vm->getGameId() != GID_IHNM_DEMO) {
|
||||
_vm->_gfx->showCursor(true);
|
||||
} else {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149) {
|
||||
// Don't show the mouse cursor in the non-interactive part of the IHNM demo
|
||||
} else {
|
||||
_vm->_gfx->showCursor(true);
|
||||
}
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -406,9 +397,6 @@ void Interface::setMode(int mode) {
|
|||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
_inMainMode = true;
|
||||
_saveReminderState = 1;
|
||||
if ((_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149) ||
|
||||
_vm->_scene->currentSceneNumber() == 0 || _vm->_scene->currentSceneNumber() == -1)
|
||||
_vm->_gfx->showCursor(false);
|
||||
}
|
||||
} else if (mode == kPanelOption) {
|
||||
// Show the cursor in the IHNM demo
|
||||
|
@ -512,10 +500,8 @@ bool Interface::processAscii(uint16 ascii) {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
}
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart())
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
break;
|
||||
case kPanelCutaway:
|
||||
if (ascii == 27) { // Esc
|
||||
|
@ -525,10 +511,8 @@ bool Interface::processAscii(uint16 ascii) {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
}
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart())
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
break;
|
||||
case kPanelVideo:
|
||||
if (ascii == 27) { // Esc
|
||||
|
@ -542,10 +526,8 @@ bool Interface::processAscii(uint16 ascii) {
|
|||
return true;
|
||||
}
|
||||
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
}
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart())
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
break;
|
||||
case kPanelOption:
|
||||
// TODO: check input dialog keys
|
||||
|
@ -1553,11 +1535,8 @@ void Interface::setOption(PanelButton *panelButton) {
|
|||
} else {
|
||||
if (_vm->_scene->currentChapterNumber() == 8) {
|
||||
setMode(kPanelChapterSelection);
|
||||
} else if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
setMode(kPanelNull);
|
||||
else
|
||||
setMode(kPanelMain);
|
||||
} else if (_vm->_scene->isNonInteractiveIHNMDemoPart()) {
|
||||
setMode(kPanelNull);
|
||||
} else {
|
||||
setMode(kPanelMain);
|
||||
}
|
||||
|
@ -1577,11 +1556,9 @@ void Interface::setOption(PanelButton *panelButton) {
|
|||
}
|
||||
break;
|
||||
case kTextSave:
|
||||
// Disallow saving in the non-interactive part of the IHNM demo
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
return;
|
||||
}
|
||||
// Disallow saving in the non-interactive part of the IHNM demo (original demo didn't support saving at all)
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart())
|
||||
return;
|
||||
|
||||
if (!_vm->isSaveListFull() && (_optionSaveFileTitleNumber == 0)) {
|
||||
_textInputString[0] = 0;
|
||||
|
@ -1800,10 +1777,8 @@ void Interface::update(const Point& mousePoint, int updateFlag) {
|
|||
break;
|
||||
|
||||
case kPanelNull:
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO && (updateFlag & UPDATE_MOUSECLICK)) {
|
||||
if (_vm->_scene->currentSceneNumber() >= 144 && _vm->_scene->currentSceneNumber() <= 149)
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
}
|
||||
if (_vm->_scene->isNonInteractiveIHNMDemoPart() && (updateFlag & UPDATE_MOUSECLICK))
|
||||
_vm->_scene->showIHNMDemoSpecialScreen();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -655,7 +655,7 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
|
|||
|
||||
debug(3, "Loading scene number %d:", _sceneNumber);
|
||||
|
||||
if (_vm->getGameId() == GID_IHNM_DEMO && (_sceneNumber >= 144 && _sceneNumber <= 149)) {
|
||||
if (isNonInteractiveIHNMDemoPart()) {
|
||||
// WORKAROUND for the non-interactive part of the IHNM demo: When restarting the
|
||||
// non-interactive demo, opcode sfMainMode is incorrectly called. Therefore, if any
|
||||
// of the scenes of the non-interactive demo are loaded (scenes 144-149), set panel
|
||||
|
|
|
@ -345,6 +345,10 @@ class Scene {
|
|||
void clearPsychicProfile();
|
||||
void showIHNMDemoSpecialScreen();
|
||||
|
||||
bool isNonInteractiveIHNMDemoPart() {
|
||||
return _vm->getGameId() == GID_IHNM_DEMO && (_sceneNumber >= 144 && _sceneNumber <= 149);
|
||||
}
|
||||
|
||||
private:
|
||||
void loadScene(LoadSceneParams *loadSceneParams);
|
||||
void loadSceneDescriptor(uint32 resourceId);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue