X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FYoinkApp.cc;h=5b034d74646167996343b696b3e5a59c67c3773f;hp=4b024b47ec74f1e617d87b96689e7a645fbdd4c6;hb=c2321281bf12a7efaedde930422c7ddbc92080d4;hpb=7d15b919681bb9ec0088b4b27c6abf62d6dfb9b1 diff --git a/src/YoinkApp.cc b/src/YoinkApp.cc index 4b024b4..5b034d7 100644 --- a/src/YoinkApp.cc +++ b/src/YoinkApp.cc @@ -26,23 +26,20 @@ *******************************************************************************/ +#include // getenv #include #include -#include // getenv - #include -#include "opengl.hh" -#include "video.hh" -#include "settings.hh" - -#include "math.hh" +#include +#include +#include +#include +#include #include "YoinkApp.hh" -#include "timer.hh" - #if HAVE_CONFIG_H #include "config.h" #endif @@ -52,12 +49,12 @@ static std::string configFiles() { std::string files; - char* configFile = getenv("YOINK_CONFIGFILE"); + char* configFile = getenv("YOINKRC"); if (configFile) { // if a config file from the environment variable is specified, we want - // to load it first + // to load it first so it has precedence files += configFile; files += ":"; } @@ -69,16 +66,23 @@ static std::string configFiles() YoinkApp::YoinkApp(int argc, char* argv[]) : - dc::engine(PACKAGE_STRING, argc, argv, configFiles()) + Mf::Engine(PACKAGE_STRING, argc, argv, configFiles()) { std::cout << PACKAGE_STRING << std::endl << "Compiled " << __TIME__ " " __DATE__ << std::endl << "Send requests, patches, and bug reports to <" PACKAGE_BUGREPORT << ">." << std::endl << std::endl; - dc::resource::addSearchPath(YOINK_DATADIR); + char* dataDir = getenv("YOINK_DATADIR"); - dc::dispatcher::instance().addHandler("video.context_recreated", + if (dataDir) + { + Mf::Resource::addSearchPath(dataDir); + } + + Mf::Resource::addSearchPath(YOINK_DATADIR); + + Mf::Dispatcher::instance().addHandler("video.context_recreated", boost::bind(&YoinkApp::contextRecreated, this, _1), this); setupGL(); @@ -89,17 +93,17 @@ YoinkApp::YoinkApp(int argc, char* argv[]) : font = new TilemapFont; - dc::vector2 coeffs[4]; - coeffs[0] = dc::vector2(0.0, 0.0); - coeffs[1] = dc::vector2(0.5, 0.0); - coeffs[2] = dc::vector2(0.5, 0.0); - coeffs[3] = dc::vector2(1.0, 0.0); - interp.init(coeffs, 1.0, dc::interpolator::oscillate); + Mf::Vector2 coeffs[4]; + coeffs[0] = Mf::Vector2(0.0, 0.0); + coeffs[1] = Mf::Vector2(0.5, 0.0); + coeffs[2] = Mf::Vector2(0.5, 0.0); + coeffs[3] = Mf::Vector2(1.0, 0.0); + interp.init(coeffs, 1.0, Mf::Interpolator::OSCILLATE); - dc::scalar coeff[2] = {1.0, 0.0}; + Mf::Scalar coeff[2] = {1.0, 0.0}; fadeIn.init(coeff, 0.5f); - testScene = new dc::scene("Test"); + testScene = new Mf::Scene("Test"); } YoinkApp::~YoinkApp() @@ -107,7 +111,7 @@ YoinkApp::~YoinkApp() delete someChar; delete font; - dc::dispatcher::instance().removeHandler(this); + Mf::Dispatcher::instance().removeHandler(this); std::cout << "Goodbye..." << std::endl; } @@ -128,10 +132,10 @@ void YoinkApp::setupGL() glClearColor(0.0, 0.0, 1.0, 1.0); - glLineWidth(10.0f); + //glLineWidth(10.0f); } -void YoinkApp::contextRecreated(const dc::notification& note) +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. @@ -139,7 +143,7 @@ void YoinkApp::contextRecreated(const dc::notification& note) } -void YoinkApp::update(dc::scalar t, dc::scalar dt) +void YoinkApp::update(Mf::Scalar t, Mf::Scalar dt) { //dt *= 0.2; @@ -153,23 +157,35 @@ void YoinkApp::update(dc::scalar t, dc::scalar dt) } -void YoinkApp::draw(dc::scalar alpha) +void YoinkApp::draw(Mf::Scalar alpha) { - dc::vector4 meh; - meh.random(0.0, 1.0); - static dc::vector4 c1(meh); + //Mf::vector4 meh; + //meh.random(0.0, 1.0); + //static Mf::vector4 c1(meh); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - dc::scalar drawstate = cml::lerp(prevstate, state, alpha); - dc::scalar sinstate = std::sin(drawstate); - dc::scalar cosstate = std::cos(drawstate); + //Mf::Scalar drawstate = cml::lerp(prevstate, state, alpha); + //Mf::Scalar sinstate = std::sin(drawstate); + //Mf::Scalar cosstate = std::cos(drawstate); + + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60.0, 1.33333, 1.0, 2000.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glBindTexture(GL_TEXTURE_2D, 0); + //glRotatef(drawstate*15.0f, 0.0, 1.0, 0.0); + glTranslatef(x, y, z); // DRAW THE SCENE testScene->draw(alpha); + /* someChar->getTilemap().bind(); glColor3f(1.0, 1.0, 1.0); @@ -191,7 +207,7 @@ void YoinkApp::draw(dc::scalar alpha) someChar->getTilemap().getTileCoords(heroFrame, coords, - dc::tilemap::reverse); + Mf::tilemap::reverse); glBegin(GL_QUADS); glTexCoord2f(coords[0], coords[1]); @@ -282,26 +298,50 @@ void YoinkApp::draw(dc::scalar alpha) glRectf(-1.0f, -1.0f, 1.0f, 1.0f); glDisable(GL_BLEND); - glEnable(GL_DEPTH_TEST); + glEnable(GL_DEPTH_TEST);*/ } -void YoinkApp::handleEvent(const dc::event& e) +void YoinkApp::handleEvent(const Mf::Event& event) { - switch (e.type) + switch (event.type) { case SDL_KEYDOWN: - if (e.key.keysym.sym == SDLK_ESCAPE) + if (event.key.keysym.sym == SDLK_ESCAPE) { stop(); } - else if (e.key.keysym.sym == SDLK_f) + else if (event.key.keysym.sym == SDLK_f) { getVideo().toggleFull(); } - else if (e.key.keysym.sym == SDLK_a) + else if (event.key.keysym.sym == SDLK_a) { someChar->getAnimation().startSequence("Punch"); } + else if (event.key.keysym.sym == SDLK_RIGHT) + { + x -= 50.0; + } + else if (event.key.keysym.sym == SDLK_LEFT) + { + x += 50.0; + } + else if (event.key.keysym.sym == SDLK_UP) + { + y -= 50.0; + } + else if (event.key.keysym.sym == SDLK_DOWN) + { + y += 50.0; + } + else if (event.key.keysym.sym == SDLK_PAGEUP) + { + z += 50.0; + } + else if (event.key.keysym.sym == SDLK_PAGEDOWN) + { + z -= 50.0; + } break; case SDL_QUIT: @@ -309,7 +349,7 @@ void YoinkApp::handleEvent(const dc::event& e) break; case SDL_VIDEORESIZE: - glViewport(0, 0, e.resize.w, e.resize.h); + glViewport(0, 0, event.resize.w, event.resize.h); break; } }