void Module::enter() { if (!_hasModule) throw Common::Exception("Module::enter(): Lacking a module?!?"); if (!_pc) throw Common::Exception("Module::enter(): Lacking a PC?!?"); _console->printf("Entering module \"%s\"", _name.c_str()); Common::UString startMovie = _ifo.getStartMovie(); if (!startMovie.empty()) playVideo(startMovie); float entryX, entryY, entryZ, entryAngle; if (!getEntryObjectLocation(entryX, entryY, entryZ, entryAngle)) getEntryIFOLocation(entryX, entryY, entryZ, entryAngle); // Roughly head position CameraMan.setPosition(entryX, entryY, entryZ + 1.8f); CameraMan.setOrientation(90.0f, 0.0f, entryAngle); CameraMan.update(); enterArea(); _running = true; _exit = false; }
void Module::run() { enter(); _running = true; EventMan.enableKeyRepeat(); try { EventMan.flushEvents(); while (!EventMan.quitRequested() && !_exit && !_newArea.empty()) { replaceModule(); enterArea(); if (_exit) break; handleEvents(); if (!EventMan.quitRequested() && !_exit && !_newArea.empty()) EventMan.delay(10); } } catch (Common::Exception &e) { _running = false; e.add("Failed running module \"%s\"", _ifo.getName().getString().c_str()); throw e; } EventMan.enableKeyRepeat(0); _running = false; }
void Module::processEventQueue() { if (!isRunning()) return; replaceModule(); enterArea(); if (!isRunning()) return; handleEvents(); handleActions(); }
void Module::processEventQueue() { if (!isRunning()) return; replaceModule(); enterArea(); if (!isRunning()) return; handleEvents(); handleActions(); _ingameGUI->updatePartyMember(0, *_pc); }
void Module::enter() { if (!_hasModule || !_area) throw Common::Exception("Module::enter(): Lacking a module?!?"); if (!_pc) throw Common::Exception("Module::enter(): Lacking a PC?!?"); _console->printf("Entering module \"%s\"", _module.c_str()); CameraMan.reset(); CameraMan.setOrientation(90.0f, 0.0f, 0.0f); CameraMan.update(); enterArea(); _running = true; _exit = false; }
void Module::run() { enter(); _running = true; EventMan.enableKeyRepeat(); _ingameGUI->show(); try { EventMan.flushEvents(); while (!EventMan.quitRequested() && !_exit && !_newArea.empty()) { replaceModule(); enterArea(); if (_exit) break; handleEvents(); handleActions(); _ingameGUI->updatePartyMember(0, *_pc); if (!EventMan.quitRequested() && !_exit && !_newArea.empty()) EventMan.delay(10); } } catch (Common::Exception &e) { _running = false; e.add("Failed running module \"%s\"", _ifo.getName().getString().c_str()); throw e; } _ingameGUI->stopConversation(); _ingameGUI->hide(); EventMan.enableKeyRepeat(0); _running = false; }