X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FYoinkApp.cc;h=9ea4b373d90ec15e2a53cb5eba8c03e8155cb359;hb=58cedf00e6ebf6282938c019b8eb105e3fb05eaa;hp=626fe1aea9ab18e823c49635573a19dad9dfac8c;hpb=a5f0d391406a68275b41448fc3f49e8d8396c497;p=chaz%2Fyoink diff --git a/src/YoinkApp.cc b/src/YoinkApp.cc index 626fe1a..9ea4b37 100644 --- a/src/YoinkApp.cc +++ b/src/YoinkApp.cc @@ -32,6 +32,8 @@ #include +#include +#include #include #include #include @@ -107,7 +109,7 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : music("NightFusion"), punchSound("RobotPunch") { - Mf::Dispatcher::getInstance().addHandler("video.context_recreated", + Mf::dispatcher::addHandler("video.context_recreated", boost::bind(&YoinkApp::contextRecreated, this, _1), this); setupGL(); @@ -117,7 +119,7 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : state = 0.0; - heroine = CharacterPtr(new Character("RobotTrooper")); + heroine = Character::alloc("RobotTrooper"); heroine->getAnimation().startSequence("Run"); font = new TilemapFont; @@ -132,18 +134,16 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : Mf::Scalar coeff[2] = {1.0, 0.0}; fadeIn.init(coeff, 0.1); - testScene = new Mf::Scene("Test"); + testScene = Mf::Scene::alloc("Test"); heroine->treeNode = testScene->getOctree()->insert(heroine); } YoinkApp::~YoinkApp() { - std::cerr << "yoinkapp destructor" << std::endl; //delete heroine; delete font; - delete testScene; - Mf::Dispatcher::getInstance().removeHandler(this); + Mf::dispatcher::removeHandler(this); } @@ -201,6 +201,7 @@ void YoinkApp::update(Mf::Scalar t, Mf::Scalar dt) heroine->update(t, dt); heroine->treeNode = testScene->getOctree()->reinsert(heroine, heroine->treeNode); + testScene->getOctree()->print(heroine->treeNode); //camera.lookAt(heroine->getSphere().point); camera.setPosition(Mf::Vector3(-heroine->current.position[0], -heroine->current.position[1], -256)); @@ -241,6 +242,7 @@ void YoinkApp::draw(Mf::Scalar alpha) //heroine->draw(alpha); + heroine->getAabb().draw(); hud.draw(); @@ -417,7 +419,7 @@ void YoinkApp::handleEvent(const Mf::Event& event) } else if (event.key.keysym.sym == SDLK_t) { - Mf::Dispatcher::getInstance().dispatch("video.context_recreated"); + Mf::dispatcher::dispatch("video.context_recreated"); break; } else if (event.key.keysym.sym == SDLK_p) @@ -457,26 +459,30 @@ void YoinkApp::handleEvent(const Mf::Event& event) int main(int argc, char* argv[]) { - std::cout << PACKAGE_STRING << std::endl + std::cout << std::endl << PACKAGE_STRING << std::endl << "Compiled " << __TIME__ " " __DATE__ << std::endl << "Send patches and bug reports to <" PACKAGE_BUGREPORT << ">." << std::endl << std::endl; +#if ! NDEBUG + Mf::setLogLevel(Mf::LOG_DEBUG); +#endif + int status = 0; try { - YoinkApp* app = new YoinkApp(argc, argv); - status = app->run(); - delete app; + YoinkApp app(argc, argv); + status = app.run(); } - catch (Mf::Engine::Exception e) + catch (Mf::Exception e) { - std::cerr << "Unhandled exception: " << e.what() << std::endl; + Mf::logError("unhandled exception: <<%s>>", e.what()); + Mf::logInfo("it's time to crash now :-("); status = 1; } - std::cout << "Goodbye..." << std::endl; + std::cout << std::endl << "Goodbye..." << std::endl << std::endl; return status; }