ソースを参照

Merge branch 'next' of https://github.com/blackberry/GamePlay into next

Darryl Gough 12 年 前
コミット
60bf9185d3
2 ファイル変更26 行追加9 行削除
  1. 26 9
      gameplay/src/ScriptController.cpp
  2. 0 0
      newproject.sh

+ 26 - 9
gameplay/src/ScriptController.cpp

@@ -713,12 +713,29 @@ void ScriptController::initialize()
         GP_ERROR("Failed to load custom loadfile() function with error: '%s'.", lua_tostring(_lua, -1));
     if (luaL_dostring(_lua, lua_dofile_function))
         GP_ERROR("Failed to load custom dofile() function with error: '%s'.", lua_tostring(_lua, -1));
+
+    // Write game command-line arguments to a global lua "arg" table
+    std::ostringstream args;
+    int argc;
+    char** argv;
+    Game::getInstance()->getArguments(&argc, &argv);
+    args << "arg = { }\n";
+    for (int i = 0; i < argc; ++i)
+    {
+        args << "arg[" << (i) << "] = [[" << argv[i] << "]]\n";
+    }
+    std::string argsStr = args.str();
+    if (argsStr.length() > 0)
+    {
+        if (luaL_dostring(_lua, argsStr.c_str()))
+            GP_ERROR("Failed to pass command-line arguments with error: '%s'.", lua_tostring(_lua, -1));
+    }
 }
 
 void ScriptController::initializeGame()
 {
     std::vector<std::string>& list = _callbacks[INITIALIZE];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str());
 }
 
@@ -740,7 +757,7 @@ void ScriptController::finalizeGame()
         _callbacks[i].clear();
 
 	// Fire script finalize callbacks
-    for (size_t i = 0, count = finalizeCallbacks.size(); i < count; ++i)
+    for (size_t i = 0; i < finalizeCallbacks.size(); ++i)
         executeFunction<void>(finalizeCallbacks[i].c_str());
 
     // Perform a full garbage collection cycle.
@@ -753,42 +770,42 @@ void ScriptController::finalizeGame()
 void ScriptController::update(float elapsedTime)
 {
     std::vector<std::string>& list = _callbacks[UPDATE];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "f", elapsedTime);
 }
 
 void ScriptController::render(float elapsedTime)
 {
     std::vector<std::string>& list = _callbacks[RENDER];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "f", elapsedTime);
 }
 
 void ScriptController::resizeEvent(unsigned int width, unsigned int height)
 {
     std::vector<std::string>& list = _callbacks[RESIZE_EVENT];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "uiui", width, height);
 }
 
 void ScriptController::keyEvent(Keyboard::KeyEvent evt, int key)
 {
     std::vector<std::string>& list = _callbacks[KEY_EVENT];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "[Keyboard::KeyEvent][Keyboard::Key]", evt, key);
 }
 
 void ScriptController::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contactIndex)
 {
     std::vector<std::string>& list = _callbacks[TOUCH_EVENT];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "[Touch::TouchEvent]iiui", evt, x, y, contactIndex);
 }
 
 bool ScriptController::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheelDelta)
 {
     std::vector<std::string>& list = _callbacks[MOUSE_EVENT];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
     {
         if (executeFunction<bool>(list[i].c_str(), "[Mouse::MouseEvent]iii", evt, x, y, wheelDelta))
             return true;
@@ -799,7 +816,7 @@ bool ScriptController::mouseEvent(Mouse::MouseEvent evt, int x, int y, int wheel
 void ScriptController::gamepadEvent(Gamepad::GamepadEvent evt, Gamepad* gamepad, unsigned int analogIndex)
 {
     std::vector<std::string>& list = _callbacks[GAMEPAD_EVENT];
-    for (size_t i = 0, count = list.size(); i < count; ++i)
+    for (size_t i = 0; i < list.size(); ++i)
         executeFunction<void>(list[i].c_str(), "[Gamepad::GamepadEvent]<Gamepad>", evt, gamepad);
 }
 

+ 0 - 0
newproject.sh