]> Dogcows Code - chaz/yoink/blobdiff - src/Scene.cc
stream-based logging classes
[chaz/yoink] / src / Scene.cc
index fce451799db5e4d56a9649e79f7d9ce7fd38453a..a45b1fba55f939bf031038e0e1c4f3ecd13daaa4 100644 (file)
@@ -75,8 +75,8 @@ struct Scene::Impl : public Mf::Library<Impl>
 
                        if (!mTilemap.getTileCoords(tileIndex, mTexCoords))
                        {
-                               Mf::logWarning("no index %d in texture %s", tileIndex,
-                                               texture.c_str());
+                               Mf::logWarning << "no index " << tileIndex <<
+                                       " in texture " << texture << std::endl;
 
                                mTexCoords[0] = mTexCoords[1] =
                                        mTexCoords[3] = mTexCoords[6] = 0.0;
@@ -211,7 +211,7 @@ struct Scene::Impl : public Mf::Library<Impl>
        }
 
 
-       Mf::Script::Status load(Mf::Script& script)
+       Mf::Script::Result load(Mf::Script& script)
        {
                std::string filePath = Scene::getPath(getName());
                if (filePath == "")
@@ -227,18 +227,15 @@ struct Scene::Impl : public Mf::Library<Impl>
 
        static int loadBox(Mf::Script& script, Mf::Aabb<3>& aabb)
        {
-               Mf::Script::Value table[] =
-               {
-                       script[1].requireTable(),
-                       script[2].requireTable()
-               };
+               script[1].requireTable();
+               script[2].requireTable();
+               script.setSize(2);
 
-               for (int i = 0; i <= 1; ++i)
+               for (int i = 1; i <= 2; ++i)
                {
                        for (int j = 1; j <= 3; ++j)
                        {
-                               script.push(j);
-                               table[i].pushField();
+                               script[i].pushField(j);
                        }
                }
 
@@ -267,14 +264,11 @@ struct Scene::Impl : public Mf::Library<Impl>
 
        int translate(Mf::Script& script)
        {
-               Mf::Script::Value x = script[1].requireNumber();
-               Mf::Script::Value y = script[2].requireNumber();
-               Mf::Script::Value z = script[3].requireNumber();
-
                Mf::Vector3 vec;
-               x.get(vec[0]);
-               y.get(vec[1]);
-               z.get(vec[2]);
+
+               script[1].requireNumber().get(vec[0]);
+               script[2].requireNumber().get(vec[1]);
+               script[3].requireNumber().get(vec[2]);
 
                Mf::Matrix4 translation;
                cml::matrix_translation(translation, vec);
@@ -315,14 +309,11 @@ struct Scene::Impl : public Mf::Library<Impl>
 
        int rotate(Mf::Script& script)
        {
-               Mf::Script::Value axis = script[1].requireNumber();
-               Mf::Script::Value angle = script[2].requireNumber();
-
                size_t index = 0;
-               axis.get(index);
+               script[1].requireNumber().get(index);
 
                Mf::Scalar value;
-               angle.get(value);
+               script[2].requireNumber().get(value);
 
                cml::matrix_rotate_about_world_axis(mTransform, index, cml::rad(value));
 
@@ -337,8 +328,8 @@ struct Scene::Impl : public Mf::Library<Impl>
 
        int drawTilemap(Mf::Script& script)
        {
-               Mf::Script::Value table = script[1].requireTable();
-               Mf::Script::Value top = script[-1];
+               Mf::Script::Slot table = script[1].requireTable();
+               Mf::Script::Slot top = script[-1];
 
                int                             width = 1;
                int                             height = 1;
@@ -359,7 +350,7 @@ struct Scene::Impl : public Mf::Library<Impl>
                // the indices are stored upside-down in the scene file so that they are
                // easier to edit as text, so we'll need to load them last row first
 
-               // do first row  and first column of vertices
+               // do first row and first column of vertices
 
                for (int w = 0; w <= width; ++w)
                {
@@ -420,25 +411,11 @@ struct Scene::Impl : public Mf::Library<Impl>
                        // scene is built, simply demoting the vector again should
                        // project the points to the xy-plane
 
-                       //Mf::Vector2 tr = Mf::demote(vertices[height+1][width+1]);
-                       //Mf::Vector2 bl = Mf::demote(vertices[0][0]);
-
                        Mf::Vector2 bl = Mf::demote(vertices[0][0]);
                        Mf::Vector2 tr = Mf::demote(vertices[height][width]);
-                       //Mf::logInfo("pt1: %f, %f", bl[0], bl[1]);
-                       //Mf::logInfo("pt2: %f, %f", tr[0], tr[1]);
 
                        mLines.push_back(Mf::Line<2>(bl, tr));
-                       Mf::logInfo("new line");
-
-                       //if (tl == tr)
-                       //{
-                               //mLines.push_back(Mf::Line<2>(bl, tl));
-                       //}
-                       //else
-                       //{
-                               //mLines.push_back(Mf::Line<2>(bl, tl));
-                       //}
+                       Mf::logDebug("new line");
                }
 
                return 0;
@@ -446,8 +423,8 @@ struct Scene::Impl : public Mf::Library<Impl>
 
        int drawTile(Mf::Script& script)
        {
-               Mf::Script::Value param = script[1];
-               Mf::Script::Value top = script[-1];
+               Mf::Script::Slot param = script[1];
+               Mf::Script::Slot top = script[-1];
 
                Tilemap::Index  index = 0;
                int                             width = 1;
@@ -518,7 +495,7 @@ Scene::Scene(const std::string& name) :
        mImpl(Scene::Impl::getInstance(name)) {}
 
 
-Mf::Script::Status Scene::load(Mf::Script& script)
+Mf::Script::Result Scene::load(Mf::Script& script)
 {
        // pass through
        return mImpl->load(script);
@@ -573,11 +550,13 @@ bool Scene::castRay(const Mf::Ray<2>& ray,
                if (d > 0.0)
                {
                        hits.push_back(hit);
-                       return true;
+                       //return true;
                }
        }
 
-       return false;
+       hits.sort();
+       return !hits.empty();
+       //return false;
 }
 
 bool Scene::checkForCollision(Character& character)
@@ -635,7 +614,7 @@ bool Scene::checkForCollision(Character& character)
 
        if (collisions > 0)
        {
-               Mf::logInfo("collisions: %d", collisions);
+               Mf::logInfo << "collisions: " << collisions << std::endl;
        }
 
        return false;
This page took 0.027512 seconds and 4 git commands to generate.