]> Dogcows Code - chaz/yoink/blobdiff - src/GameLayer.cc
script API improvements
[chaz/yoink] / src / GameLayer.cc
index 8f2f4ec006d953ae70bfe5083b38385d0eb4abc5..d68522ee1a8ef826c3730927342a19597135d536 100644 (file)
@@ -43,8 +43,8 @@ void GameLayer::loadSceneLoader()
                throw Mf::Error(Mf::Error::SCRIPT_ERROR, str);
        }
 
-       mState.script.getGlobalTable().pushField("scenes");
-       mState.script.getTop().get(mState.sceneList);
+       mState.script.globals().pushField("scenes");
+       mState.script.top().get(mState.sceneList);
        if (mState.sceneList.size() == 0)
        {
                throw Mf::Error(Mf::Error::SCRIPT_ERROR,
@@ -69,17 +69,14 @@ void GameLayer::advanceScene(Mf::Settings& settings)
                        throw Mf::Error(Mf::Error::SCRIPT_ERROR, str);
                }
 
-               mState.script.getGlobalTable().pushField("Event");
-               if (mState.script[-1].isTable())
+               Mf::Script::Slot table = mState.script.globals().pushField("Event");
+               if (table.isTable())
                {
-                       mState.script[-1].pushField("Think");
-                       mState.script.set("Think", Mf::Script::REGISTRY);
-                       mState.script.pop(2);
-               }
-               else
-               {
-                       mState.script.pop();
+                       mState.script.push("Think");
+                       table.pushField("Think");
+                       mState.script.registry().setField();
                }
+               mState.script.pop();
        }
 }
 
@@ -149,7 +146,7 @@ void GameLayer::update(Mf::Scalar t, Mf::Scalar dt)
 
 void GameLayer::thinkTimer()
 {
-       mState.script.getRegistryTable().pushField("Think");
+       mState.script.registry().pushField("Think");
        if (mState.script[-1].isFunction()) mState.script.call();
        else                                mState.script.pop();
 }
This page took 0.018208 seconds and 4 git commands to generate.