X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FYoinkApp.cc;fp=src%2FYoinkApp.cc;h=626fe1aea9ab18e823c49635573a19dad9dfac8c;hp=bf6d71ab8d462d81507ee6525be954287111a51e;hb=a5f0d391406a68275b41448fc3f49e8d8396c497;hpb=4701bf580b75a7d77a460c6f14f9fc31fb109bbb diff --git a/src/YoinkApp.cc b/src/YoinkApp.cc index bf6d71a..626fe1a 100644 --- a/src/YoinkApp.cc +++ b/src/YoinkApp.cc @@ -107,7 +107,7 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : music("NightFusion"), punchSound("RobotPunch") { - Mf::Dispatcher::instance().addHandler("video.context_recreated", + Mf::Dispatcher::getInstance().addHandler("video.context_recreated", boost::bind(&YoinkApp::contextRecreated, this, _1), this); setupGL(); @@ -138,11 +138,12 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : YoinkApp::~YoinkApp() { + std::cerr << "yoinkapp destructor" << std::endl; //delete heroine; delete font; delete testScene; - Mf::Dispatcher::instance().removeHandler(this); + Mf::Dispatcher::getInstance().removeHandler(this); } @@ -396,28 +397,39 @@ void YoinkApp::handleEvent(const Mf::Event& event) if (event.key.keysym.sym == SDLK_ESCAPE) { stop(); + break; } else if (event.key.keysym.sym == SDLK_f) { getVideo().toggleFull(); + break; } else if (event.key.keysym.sym == SDLK_SPACE) { heroine->getAnimation().startSequence("Punch"); punchSound.play(); + break; } else if (event.key.keysym.sym == SDLK_r) { testScene->refresh(); + break; + } + else if (event.key.keysym.sym == SDLK_t) + { + Mf::Dispatcher::getInstance().dispatch("video.context_recreated"); + break; } else if (event.key.keysym.sym == SDLK_p) { music.togglePlayPause(); + break; } else if (event.key.keysym.sym == SDLK_l) { getVideo().toggleCursorGrab(); getVideo().toggleCursorVisible(); + break; } case SDL_KEYUP: @@ -454,8 +466,9 @@ int main(int argc, char* argv[]) try { - YoinkApp app(argc, argv); - status = app.run(); + YoinkApp* app = new YoinkApp(argc, argv); + status = app->run(); + delete app; } catch (Mf::Engine::Exception e) {