From 97017b2f1f24d13fa937a6464c109d2186bc639f Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Sat, 19 Mar 2011 12:19:22 +0000 Subject: [PATCH] - added a new lua method to add text on the console for Elimnator's scenario. --- source/glest_game/game/script_manager.cpp | 12 ++++++++++++ source/glest_game/game/script_manager.h | 2 ++ source/glest_game/world/world.cpp | 4 ++++ source/glest_game/world/world.h | 1 + 4 files changed, 19 insertions(+) diff --git a/source/glest_game/game/script_manager.cpp b/source/glest_game/game/script_manager.cpp index d2eb6d48..fd72e8c7 100644 --- a/source/glest_game/game/script_manager.cpp +++ b/source/glest_game/game/script_manager.cpp @@ -78,6 +78,7 @@ void ScriptManager::init(World* world, GameCamera *gameCamera){ //register functions luaScript.registerFunction(showMessage, "showMessage"); luaScript.registerFunction(setDisplayText, "setDisplayText"); + luaScript.registerFunction(addConsoleText, "addConsoleText"); luaScript.registerFunction(DisplayFormattedText, "DisplayFormattedText"); luaScript.registerFunction(clearDisplayText, "clearDisplayText"); luaScript.registerFunction(setCameraPosition, "setCameraPosition"); @@ -390,6 +391,11 @@ void ScriptManager::setDisplayText(const string &text){ displayText= wrapString(Lang::getInstance().getScenarioString(text), displayTextWrapCount); } +void ScriptManager::addConsoleText(const string &text){ + ScriptManager_STREFLOP_Wrapper streflopWrapper; + world->addConsoleText(text); +} + void ScriptManager::DisplayFormattedText(const char *fmt, ...) { SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); @@ -837,6 +843,12 @@ int ScriptManager::setDisplayText(LuaHandle* luaHandle){ return luaArguments.getReturnCount(); } +int ScriptManager::addConsoleText(LuaHandle* luaHandle){ + LuaArguments luaArguments(luaHandle); + thisScriptManager->addConsoleText(luaArguments.getString(-1)); + return luaArguments.getReturnCount(); +} + int ScriptManager::clearDisplayText(LuaHandle* luaHandle){ LuaArguments luaArguments(luaHandle); thisScriptManager->clearDisplayText(); diff --git a/source/glest_game/game/script_manager.h b/source/glest_game/game/script_manager.h index 0ba437f4..5c85ac90 100644 --- a/source/glest_game/game/script_manager.h +++ b/source/glest_game/game/script_manager.h @@ -173,6 +173,7 @@ private: void showMessage(const string &text, const string &header); void clearDisplayText(); void setDisplayText(const string &text); + void addConsoleText(const string &text); void DisplayFormattedText(const char *fmt,...); void setCameraPosition(const Vec2i &pos); void createUnit(const string &unitName, int factionIndex, Vec2i pos); @@ -238,6 +239,7 @@ private: //callbacks, commands static int showMessage(LuaHandle* luaHandle); static int setDisplayText(LuaHandle* luaHandle); + static int addConsoleText(LuaHandle* luaHandle); static int DisplayFormattedText(LuaHandle* luaHandle); static int clearDisplayText(LuaHandle* luaHandle); static int setCameraPosition(LuaHandle* luaHandle); diff --git a/source/glest_game/world/world.cpp b/source/glest_game/world/world.cpp index 3440845f..dc2c7f25 100644 --- a/source/glest_game/world/world.cpp +++ b/source/glest_game/world/world.cpp @@ -984,6 +984,10 @@ void World::togglePauseGame(bool pauseStatus) { game->setPaused(pauseStatus); } +void World::addConsoleText(const string &text) { + game->getConsole()->addLine(text); +} + void World::giveUpgradeCommand(int unitId, const string &upgradeName) { Unit *unit= findUnitById(unitId); if(unit != NULL) { diff --git a/source/glest_game/world/world.h b/source/glest_game/world/world.h index 3324c34e..8d4474f5 100644 --- a/source/glest_game/world/world.h +++ b/source/glest_game/world/world.h @@ -207,6 +207,7 @@ public: void stopAllSound(); void moveToUnit(int unitId, int destUnitId); void togglePauseGame(bool pauseStatus); + void addConsoleText(const string &text); void giveResource(const string &resourceName, int factionIndex, int amount); int getResourceAmount(const string &resourceName, int factionIndex);