X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FScene.cc;h=a1218f29b6f14eed579aa5bc0681f1fb35785705;hp=9510e3670577fff9a7385f343f34a6773a9a9392;hb=ed04ddaaa59dcc42e375ec492dbda77f693530e9;hpb=831f04d4bc19a390415ac0bbac4331c7a65509bc diff --git a/src/Scene.cc b/src/Scene.cc index 9510e36..a1218f2 100644 --- a/src/Scene.cc +++ b/src/Scene.cc @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "Character.hh" #include "Scene.hh" @@ -41,7 +41,7 @@ struct Scene::impl : public moof::manager Quad(const moof::vector3* vertices[4], const std::string& texture, int tileIndex) : - mTilemap(texture), + mTilemap(texture, tileIndex), mBlending(false), mFog(false), mSurface(NONE) @@ -55,17 +55,6 @@ struct Scene::impl : public moof::manager //} } - if (!mTilemap.tile_coordinates(tileIndex, mTexCoords)) - { - moof::log_warning << "no index " << tileIndex << - " in texture " << texture << std::endl; - - mTexCoords[0] = mTexCoords[1] = - mTexCoords[3] = mTexCoords[6] = 0.0; - mTexCoords[2] = mTexCoords[4] = - mTexCoords[5] = mTexCoords[7] = 1.0; - } - aabb_.enclose_vertices(mVertices, 4); sphere_.point = aabb_.center(); sphere_.radius = (aabb_.min - sphere_.point).length(); @@ -106,12 +95,7 @@ struct Scene::impl : public moof::manager } //glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - mTilemap.bind(); - - glVertexPointer(3, GL_SCALAR, 0, mVertices[0].data()); - glTexCoordPointer(2, GL_SCALAR, 0, mTexCoords); - - glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + mTilemap.draw(mVertices); glDisable(GL_BLEND); glDisable(GL_FOG); @@ -123,10 +107,9 @@ struct Scene::impl : public moof::manager } - moof::vector3 mVertices[4]; - moof::scalar mTexCoords[8]; + moof::vector3 mVertices[4]; - moof::texture mTilemap; + moof::sprite mTilemap; bool mBlending; bool mFog; @@ -135,8 +118,8 @@ struct Scene::impl : public moof::manager - moof::matrix4 mTransform; - std::string mTexture; + moof::matrix4 mTransform; + std::string mTexture; std::list< boost::shared_ptr > mObjects; std::list mLines; @@ -194,8 +177,8 @@ struct Scene::impl : public moof::manager moof::script::status load(moof::settings& settings, moof::script& script) { - std::string path(name()); - if (!Scene::find_path(path)) + std::string path = moof::resource::find_file("scenes/"+name(), "lua"); + if (path.empty()) { script.push("the scene file could not be found"); return moof::script::file_error; @@ -348,7 +331,7 @@ struct Scene::impl : public moof::manager vertices[h][wPlus1] = moof::demote(mTransform * moof::vector4(wPlus1, h, 0.0, 1.0)); - if (index == moof::texture::no_tile) continue; + if (index == moof::image::no_tile) continue; const moof::vector3* corners[4] = { &vertices[h][w], @@ -574,8 +557,3 @@ bool Scene::checkForCollision(Character& character) } -bool Scene::find_path(std::string& name) -{ - return moof::resource::find_path(name, "scenes/", "lua"); -} -