- applied patch from MuwuM

This commit is contained in:
Mark Vejvoda
2012-05-21 20:15:37 +00:00
parent 29ed59de0b
commit 0f25276e6f
4 changed files with 22 additions and 0 deletions

View File

@@ -309,6 +309,7 @@ void ScriptManager::init(World* world, GameCamera *gameCamera, const XmlNode *ro
luaScript.registerFunction(setUnitPosition, "setUnitPosition"); luaScript.registerFunction(setUnitPosition, "setUnitPosition");
luaScript.registerFunction(getUnitFaction, "unitFaction"); luaScript.registerFunction(getUnitFaction, "unitFaction");
luaScript.registerFunction(getUnitName, "unitName");
luaScript.registerFunction(getResourceAmount, "resourceAmount"); luaScript.registerFunction(getResourceAmount, "resourceAmount");
luaScript.registerFunction(getLastCreatedUnitName, "lastCreatedUnitName"); luaScript.registerFunction(getLastCreatedUnitName, "lastCreatedUnitName");
@@ -1258,6 +1259,11 @@ int ScriptManager::getUnitFaction(int unitId) {
ScriptManager_STREFLOP_Wrapper streflopWrapper; ScriptManager_STREFLOP_Wrapper streflopWrapper;
return world->getUnitFactionIndex(unitId); return world->getUnitFactionIndex(unitId);
} }
const string ScriptManager::getUnitName(int unitId) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
ScriptManager_STREFLOP_Wrapper streflopWrapper;
return world->getUnitName(unitId);
}
int ScriptManager::getResourceAmount(const string &resourceName, int factionIndex) { int ScriptManager::getResourceAmount(const string &resourceName, int factionIndex) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
@@ -1781,6 +1787,12 @@ int ScriptManager::getUnitFaction(LuaHandle* luaHandle){
luaArguments.returnInt(factionIndex); luaArguments.returnInt(factionIndex);
return luaArguments.getReturnCount(); return luaArguments.getReturnCount();
} }
int ScriptManager::getUnitName(LuaHandle* luaHandle){
LuaArguments luaArguments(luaHandle);
const string unitname = thisScriptManager->getUnitName(luaArguments.getInt(-1));
luaArguments.returnString(unitname);
return luaArguments.getReturnCount();
}
int ScriptManager::getResourceAmount(LuaHandle* luaHandle){ int ScriptManager::getResourceAmount(LuaHandle* luaHandle){
LuaArguments luaArguments(luaHandle); LuaArguments luaArguments(luaHandle);

View File

@@ -304,6 +304,7 @@ private:
Vec2i getStartLocation(int factionIndex); Vec2i getStartLocation(int factionIndex);
Vec2i getUnitPosition(int unitId); Vec2i getUnitPosition(int unitId);
int getUnitFaction(int unitId); int getUnitFaction(int unitId);
const string getUnitName(int unitId);
int getResourceAmount(const string &resourceName, int factionIndex); int getResourceAmount(const string &resourceName, int factionIndex);
const string &getLastCreatedUnitName(); const string &getLastCreatedUnitName();
int getLastCreatedUnitId(); int getLastCreatedUnitId();
@@ -410,6 +411,7 @@ private:
static int getStartLocation(LuaHandle* luaHandle); static int getStartLocation(LuaHandle* luaHandle);
static int getUnitPosition(LuaHandle* luaHandle); static int getUnitPosition(LuaHandle* luaHandle);
static int getUnitFaction(LuaHandle* luaHandle); static int getUnitFaction(LuaHandle* luaHandle);
static int getUnitName(LuaHandle* luaHandle);
static int getResourceAmount(LuaHandle* luaHandle); static int getResourceAmount(LuaHandle* luaHandle);
static int getLastCreatedUnitName(LuaHandle* luaHandle); static int getLastCreatedUnitName(LuaHandle* luaHandle);
static int getLastCreatedUnitId(LuaHandle* luaHandle); static int getLastCreatedUnitId(LuaHandle* luaHandle);

View File

@@ -1285,6 +1285,13 @@ int World::getUnitFactionIndex(int unitId) {
} }
return unit->getFactionIndex(); return unit->getFactionIndex();
} }
const string World::getUnitName(int unitId) {
Unit* unit= findUnitById(unitId);
if(unit == NULL) {
throw megaglest_runtime_error("Can not find Faction unit to get position unitId = " + intToStr(unitId));
}
return unit->getFullName();
}
int World::getUnitCount(int factionIndex) { int World::getUnitCount(int factionIndex) {
if(factionIndex < factions.size()) { if(factionIndex < factions.size()) {

View File

@@ -248,6 +248,7 @@ public:
void setUnitPosition(int unitId, Vec2i pos); void setUnitPosition(int unitId, Vec2i pos);
int getUnitFactionIndex(int unitId); int getUnitFactionIndex(int unitId);
const string getUnitName(int unitId);
int getUnitCount(int factionIndex); int getUnitCount(int factionIndex);
int getUnitCountOfType(int factionIndex, const string &typeName); int getUnitCountOfType(int factionIndex, const string &typeName);