X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FYoinkApp.cc;h=597a74ff79d24b11a7bf54d7dc91e5dfc6758ed1;hp=d36f6da3ef8f52f9f8e61d82c85a4f5cb6f655b4;hb=25aefe01ef7dbdb603c51411e04b0d6a6107684f;hpb=57b78ebe21b1b48acd337daa5a1cb8c383959cfa diff --git a/src/YoinkApp.cc b/src/YoinkApp.cc index d36f6da..597a74f 100644 --- a/src/YoinkApp.cc +++ b/src/YoinkApp.cc @@ -102,7 +102,7 @@ static std::string iconFile() YoinkApp::YoinkApp(int argc, char* argv[]) : Mf::Engine(argc, argv, configFiles(), PACKAGE_STRING, iconFile()), - music("NightFusionIntro"), + music("BeatTheCube"), punchSound("RobotPunch") { Mf::dispatcher::addHandler("video.context_recreated", @@ -116,27 +116,18 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : heroine = Character::alloc("RobotTrooper"); heroine->getAnimation().startSequence("Run"); - font = new TilemapFont; + Mf::Scalar a[6] = {0.0, 1.5, -0.5, 3.0, -1.5, 1.0}; + interp.init(a, 2.0, Mf::Interpolator::OSCILLATE); - Mf::Scalar coeffs[4]; - coeffs[0] = 0.0; - coeffs[1] = 1.5; - coeffs[2] = -0.5; - coeffs[3] = 1.0; - interp.init(coeffs, 1.0, Mf::Interpolator::OSCILLATE); + Mf::Scalar b[2] = {1.0, 0.0}; + fadeIn.init(b, 1.0); - Mf::Scalar coeff[2] = {1.0, 0.0}; - fadeIn.init(coeff, 0.1); - - testScene = Mf::Scene::alloc("Test"); - heroine->treeNode = testScene->getOctree()->insert(heroine); + octree = Mf::loadScene("Test"); + heroine->treeNode = octree->insert(heroine); } YoinkApp::~YoinkApp() { - //delete heroine; - delete font; - Mf::dispatcher::removeHandler(this); } @@ -175,15 +166,15 @@ void YoinkApp::setupGL() void YoinkApp::contextRecreated(const Mf::Notification* note) { - // Whenever the context and a new one created, it probably won't contain our - // state so we need to set that up again. + // Whenever the context is destroyed and a new one created, it probably + // won't contain our state so we need to set that up again. setupGL(); } void YoinkApp::update(Mf::Scalar t, Mf::Scalar dt) { - //dt *= 0.5; + dt *= 0.7; music.update(t, dt); fadeIn.update(dt); @@ -191,15 +182,15 @@ void YoinkApp::update(Mf::Scalar t, Mf::Scalar dt) heroine->update(t, dt); // reinsert heroine - heroine->treeNode = testScene->getOctree()->reinsert(heroine, heroine->treeNode); - testScene->getOctree()->print(heroine->treeNode); + heroine->treeNode = octree->reinsert(heroine, heroine->treeNode); + octree->print(heroine->treeNode); //camera.lookAt(heroine->getSphere().point); camera.setPosition(Mf::Vector3(-heroine->current.position[0], -heroine->current.position[1], -256)); interp.update(dt); - hud.setBar1Progress(interp.getValue()); - hud.setBar2Progress(1.0 - interp.getValue()); + hud.setBar1Progress(interp.getState(dt)); + hud.setBar2Progress(1.0 - interp.getState(dt)); } @@ -212,7 +203,11 @@ void YoinkApp::draw(Mf::Scalar alpha) // DRAW THE SCENE Mf::Texture::resetBind(); - testScene->draw(alpha, camera); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + + octree->drawIfVisible(alpha, camera.getFrustum()); //heroine->draw(alpha); heroine->getAabb().draw(); @@ -267,11 +262,6 @@ void YoinkApp::handleEvent(const Mf::Event& event) punchSound.play(); break; } - else if (event.key.keysym.sym == SDLK_r) - { - testScene->refresh(); - break; - } else if (event.key.keysym.sym == SDLK_t) { Mf::dispatcher::dispatch("video.context_recreated"); @@ -342,7 +332,8 @@ int main(int argc, char* argv[]) { Mf::logError("unhandled exception: <<%s>>", e.what()); Mf::logInfo("it's time to crash now :-("); - status = 1; + //status = 1; + throw e; } std::cout << std::endl << "Goodbye..." << std::endl << std::endl;