X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FScene.cc;h=af54c28768cfa92af735ccb9858d211f0a0789b2;hp=c756ec89c296decd840baaa14eeb67ce2f8ff50c;hb=1d4aa0d34b0410c7bc60a24bad7abb55eacc850a;hpb=382626aad0a683ed8642a6a807eea743db45f7f8 diff --git a/src/Scene.cc b/src/Scene.cc index c756ec8..af54c28 100644 --- a/src/Scene.cc +++ b/src/Scene.cc @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +40,7 @@ struct Scene::impl : public moof::manager }; Quad(const moof::vector3* vertices[4], - const std::string& texture, + const moof::image_handle& texture, int tileIndex) : mTilemap(texture, tileIndex), mBlending(false), @@ -119,7 +120,7 @@ struct Scene::impl : public moof::manager moof::matrix4 mTransform; - std::string mTexture; + moof::image_handle mTexture; std::list< boost::shared_ptr > mObjects; std::list mLines; @@ -177,8 +178,8 @@ struct Scene::impl : public moof::manager moof::script::status load(moof::settings& settings, moof::script& script) { - std::string path(name()); - if (!resource::find(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; @@ -191,8 +192,8 @@ struct Scene::impl : public moof::manager static int loadBox(moof::script& script, moof::aabb3& aabb) { - script[1].require_table(); - script[2].require_table(); + script[1].require_table("point"); + script[2].require_table("point"); script[1].push_field(1).get(aabb.min[0]); script[1].push_field(2).get(aabb.min[1]); @@ -206,8 +207,7 @@ struct Scene::impl : public moof::manager int setBounds(moof::script& script) { - int ret = loadBox(script, mBounds); - return ret; + return loadBox(script, mBounds); } int resetTransform(moof::script& script) @@ -264,10 +264,10 @@ struct Scene::impl : public moof::manager int rotate(moof::script& script) { - size_t index = 0; - script[1].require_number().get(index); + size_t index = 0; + moof::scalar value; - moof::scalar value; + script[1].require_number().get(index); script[2].require_number().get(value); moof::matrix_rotate_about_world_axis(mTransform, index, @@ -278,7 +278,9 @@ struct Scene::impl : public moof::manager int setTexture(moof::script& script) { - script[1].require_string().get(mTexture); + std::string texture_name; + script[1].require_string().get(texture_name); + mTexture = moof::resource::load(texture_name, "png"); return 0; }