void TheWitcherEngine::run(const Common::UString &target) { _baseDirectory = target; init(); initCursors(); if (EventMan.quitRequested()) return; status("Successfully initialized the engine"); CursorMan.hideCursor(); CursorMan.set(); playVideo("publisher"); playVideo("developer"); playVideo("engine"); playVideo("intro"); playVideo("title"); if (EventMan.quitRequested()) return; CursorMan.showCursor(); bool showFPS = ConfigMan.getBool("showfps", false); Graphics::Aurora::FPS *fps = 0; if (showFPS) { fps = new Graphics::Aurora::FPS(FontMan.get(Graphics::Aurora::kSystemFontMono, 13)); fps->show(); } playSound("m1_axem00020005", Sound::kSoundTypeVoice); CameraMan.setPosition(0.0, 1.0, 0.0); Graphics::Aurora::Model *model = loadModelObject("cm_naked3"); model->setRotation(0.0, 0.0, 180.0); model->setPosition(0.0, 2.0, 0.0); model->show(); EventMan.enableKeyRepeat(); while (!EventMan.quitRequested()) { Events::Event event; while (EventMan.pollEvent(event)) { if (event.type == Events::kEventKeyDown) { if (event.key.keysym.sym == SDLK_UP) CameraMan.move( 0.5); else if (event.key.keysym.sym == SDLK_DOWN) CameraMan.move(-0.5); else if (event.key.keysym.sym == SDLK_RIGHT) CameraMan.turn( 0.0, 5.0, 0.0); else if (event.key.keysym.sym == SDLK_LEFT) CameraMan.turn( 0.0, -5.0, 0.0); else if (event.key.keysym.sym == SDLK_w) CameraMan.move( 0.5); else if (event.key.keysym.sym == SDLK_s) CameraMan.move(-0.5); else if (event.key.keysym.sym == SDLK_d) CameraMan.turn( 0.0, 5.0, 0.0); else if (event.key.keysym.sym == SDLK_a) CameraMan.turn( 0.0, -5.0, 0.0); else if (event.key.keysym.sym == SDLK_e) CameraMan.strafe( 0.5); else if (event.key.keysym.sym == SDLK_q) CameraMan.strafe(-0.5); else if (event.key.keysym.sym == SDLK_INSERT) CameraMan.move(0.0, 0.5, 0.0); else if (event.key.keysym.sym == SDLK_DELETE) CameraMan.move(0.0, -0.5, 0.0); else if (event.key.keysym.sym == SDLK_PAGEUP) CameraMan.turn( 5.0, 0.0, 0.0); else if (event.key.keysym.sym == SDLK_PAGEDOWN) CameraMan.turn(-5.0, 0.0, 0.0); else if (event.key.keysym.sym == SDLK_END) { const float *orient = CameraMan.getOrientation(); CameraMan.setOrientation(0.0, orient[1], orient[2]); } } } EventMan.delay(10); } EventMan.enableKeyRepeat(0); delete model; delete fps; }
void NWN2Engine::run(const Common::UString &target) { _baseDirectory = target; init(); initCursors(); if (EventMan.quitRequested()) return; status("Successfully initialized the engine"); CursorMan.hideCursor(); CursorMan.set(); playVideo("atarilogo"); playVideo("oeilogo"); playVideo("wotclogo"); playVideo("nvidialogo"); playVideo("legal"); playVideo("intro"); if (EventMan.quitRequested()) return; CursorMan.showCursor(); bool showFPS = ConfigMan.getBool("showfps", false); Graphics::Aurora::FPS *fps = 0; if (showFPS) { fps = new Graphics::Aurora::FPS(FontMan.get(Graphics::Aurora::kSystemFontMono, 13)); fps->show(); } Sound::ChannelHandle channel; Common::SeekableReadStream *wav = ResMan.getResource(Aurora::kResourceMusic, "mus_mulsantir"); if (wav) { // Cutting off the long silence at the end of mus_mulsantir :P wav = new Common::SeekableSubReadStream(wav, 0, 3545548, true); channel = SoundMan.playSoundFile(wav, Sound::kSoundTypeMusic, true); SoundMan.startChannel(channel); } CameraMan.setPosition(0.0, 2.0, 0.0); Graphics::Aurora::Model *model = loadModelObject("plc_br_mulsantirhouse05"); model->setPosition(0.0, 20.0, 0.0); model->show(); EventMan.enableKeyRepeat(); while (!EventMan.quitRequested()) { Events::Event event; while (EventMan.pollEvent(event)) { if (event.type == Events::kEventKeyDown) { if (event.key.keysym.sym == SDLK_UP) CameraMan.move( 0.5); else if (event.key.keysym.sym == SDLK_DOWN) CameraMan.move(-0.5); else if (event.key.keysym.sym == SDLK_RIGHT) CameraMan.turn( 0.0, 5.0, 0.0); else if (event.key.keysym.sym == SDLK_LEFT) CameraMan.turn( 0.0, -5.0, 0.0); else if (event.key.keysym.sym == SDLK_w) CameraMan.move( 0.5); else if (event.key.keysym.sym == SDLK_s) CameraMan.move(-0.5); else if (event.key.keysym.sym == SDLK_d) CameraMan.turn( 0.0, 5.0, 0.0); else if (event.key.keysym.sym == SDLK_a) CameraMan.turn( 0.0, -5.0, 0.0); else if (event.key.keysym.sym == SDLK_e) CameraMan.strafe( 0.5); else if (event.key.keysym.sym == SDLK_q) CameraMan.strafe(-0.5); else if (event.key.keysym.sym == SDLK_INSERT) CameraMan.move(0.0, 0.5, 0.0); else if (event.key.keysym.sym == SDLK_DELETE) CameraMan.move(0.0, -0.5, 0.0); else if (event.key.keysym.sym == SDLK_PAGEUP) CameraMan.turn( 5.0, 0.0, 0.0); else if (event.key.keysym.sym == SDLK_PAGEDOWN) CameraMan.turn(-5.0, 0.0, 0.0); else if (event.key.keysym.sym == SDLK_END) { const float *orient = CameraMan.getOrientation(); CameraMan.setOrientation(0.0, orient[1], orient[2]); } } } EventMan.delay(10); } EventMan.enableKeyRepeat(0); delete model; delete fps; }