Changed: Support for integer types in Lua 5.3, fixes #253

This commit is contained in:
kervala 2015-11-14 11:46:17 +01:00
parent f76acd744f
commit 3ee1b08013
14 changed files with 165 additions and 93 deletions

View file

@ -266,8 +266,16 @@ namespace NLGUI
const char *getTableStringValue(const char *name, const char *defaultValue= NULL); const char *getTableStringValue(const char *name, const char *defaultValue= NULL);
// pushing value onto the stack // pushing value onto the stack
void push(bool value); void push(bool value);
void push(lua_Number value); void push(float value);
void push(lua_Integer value); void push(double value);
void push(uint8 value);
void push(uint16 value);
void push(uint32 value);
void push(uint64 value);
void push(sint8 value);
void push(sint16 value);
void push(sint32 value);
void push(sint64 value);
void push(const char *str); void push(const char *str);
void push(const char *str, int length); void push(const char *str, int length);
void push(const std::string &str); void push(const std::string &str);

View file

@ -322,19 +322,83 @@ inline void CLuaState::push(bool value)
} }
//================================================================================ //================================================================================
inline void CLuaState::push(lua_Number value) inline void CLuaState::push(float value)
{ {
//H_AUTO(Lua_CLuaState_push) //H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) ); nlverify( lua_checkstack(_State, 1) );
lua_pushnumber(_State, value); lua_pushnumber(_State, (lua_Number)value);
} }
//================================================================================ //================================================================================
inline void CLuaState::push(lua_Integer value) inline void CLuaState::push(double value)
{ {
//H_AUTO(Lua_CLuaState_push) //H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) ); nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, value); lua_pushnumber(_State, (lua_Number)value);
}
//================================================================================
inline void CLuaState::push(uint8 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(uint16 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(uint32 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(uint64 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(sint8 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(sint16 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(sint32 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
}
//================================================================================
inline void CLuaState::push(sint64 value)
{
//H_AUTO(Lua_CLuaState_push)
nlverify( lua_checkstack(_State, 1) );
lua_pushinteger(_State, (lua_Integer)value);
} }
//================================================================================ //================================================================================

View file

@ -598,7 +598,7 @@ namespace NLGUI
{ {
const char *funcName = "getNumTexts"; const char *funcName = "getNumTexts";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
ls.push((double) getNumTexts()); ls.push(getNumTexts());
return 1; return 1;
} }

View file

@ -1145,7 +1145,7 @@ namespace NLGUI
{ {
CLuaIHM::checkArgCount(ls, "getElementIndex", 1); CLuaIHM::checkArgCount(ls, "getElementIndex", 1);
CViewBase * viewBase = dynamic_cast<CViewBase *>(CLuaIHM::getUIOnStack(ls, 1)); CViewBase * viewBase = dynamic_cast<CViewBase *>(CLuaIHM::getUIOnStack(ls, 1));
ls.push((double) getElementIndex(viewBase)); ls.push(getElementIndex(viewBase));
return 1; return 1;
} }

View file

@ -1702,7 +1702,7 @@ namespace NLGUI
int CGroupSubMenu::luaGetNumLine(CLuaState &ls) int CGroupSubMenu::luaGetNumLine(CLuaState &ls)
{ {
CLuaIHM::checkArgCount(ls, "getNumLine", 0); CLuaIHM::checkArgCount(ls, "getNumLine", 0);
ls.push((double) getNumLine()); ls.push(getNumLine());
return 1; return 1;
} }
@ -1744,7 +1744,7 @@ namespace NLGUI
const char *funcName = "getLineFromId"; const char *funcName = "getLineFromId";
CLuaIHM::checkArgCount(ls, funcName, 1); CLuaIHM::checkArgCount(ls, funcName, 1);
CLuaIHM::checkArgType(ls, funcName, 1, LUA_TSTRING); CLuaIHM::checkArgType(ls, funcName, 1, LUA_TSTRING);
ls.push((double) getLineFromId(ls.toString(1))); ls.push(getLineFromId(ls.toString(1)));
return 1; return 1;
} }

View file

@ -1836,7 +1836,7 @@ namespace NLGUI
{ {
const char *funcName = "CGroupTree::SNode::luaGetNumChildren"; const char *funcName = "CGroupTree::SNode::luaGetNumChildren";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
ls.push((double) Children.size()); ls.push((uint)Children.size());
return 1; return 1;
} }

View file

@ -1173,7 +1173,7 @@ namespace NLGUI
int CInterfaceGroup::luaGetNumGroups(CLuaState &ls) int CInterfaceGroup::luaGetNumGroups(CLuaState &ls)
{ {
CLuaIHM::checkArgCount(ls, "CInterfaceGroup::getNumGroups", 0); CLuaIHM::checkArgCount(ls, "CInterfaceGroup::getNumGroups", 0);
ls.push((double) _ChildrenGroups.size()); ls.push((uint)_ChildrenGroups.size());
return 1; return 1;
} }

View file

@ -944,8 +944,8 @@ namespace NLGUI
CLuaIHM::checkArgCount(ls, "getWindowSize", 0); CLuaIHM::checkArgCount(ls, "getWindowSize", 0);
uint32 w, h; uint32 w, h;
CViewRenderer::getInstance()->getScreenSize(w, h); CViewRenderer::getInstance()->getScreenSize(w, h);
ls.push((double) w); ls.push(w);
ls.push((double) h); ls.push(h);
return 2; return 2;
} }
@ -976,8 +976,8 @@ namespace NLGUI
CIFile fs(CPath::lookup(textureName).c_str()); CIFile fs(CPath::lookup(textureName).c_str());
bitmap.load(fs); bitmap.load(fs);
ls.push((double) bitmap.getWidth()); ls.push(bitmap.getWidth());
ls.push((double) bitmap.getHeight()); ls.push(bitmap.getHeight());
return 2; return 2;
} }
@ -1100,7 +1100,7 @@ namespace NLGUI
ls.push(value.getBool()); ls.push(value.getBool());
break; break;
case CInterfaceExprValue::Integer: case CInterfaceExprValue::Integer:
ls.push((double)value.getInteger()); ls.push(value.getInteger());
break; break;
case CInterfaceExprValue::Double: case CInterfaceExprValue::Double:
ls.push(value.getDouble()); ls.push(value.getDouble());
@ -1363,7 +1363,7 @@ namespace NLGUI
ls.newTable(); ls.newTable();
for(uint k = 0; k < files.size(); ++k) for(uint k = 0; k < files.size(); ++k)
{ {
ls.push((double) k); ls.push(k);
ls.push(files[k]); ls.push(files[k]);
ls.setTable(-3); ls.setTable(-3);
} }
@ -1383,10 +1383,10 @@ namespace NLGUI
ls.push( (reflectedObject.*(property.GetMethod.GetBool))() ); ls.push( (reflectedObject.*(property.GetMethod.GetBool))() );
break; break;
case CReflectedProperty::SInt32: case CReflectedProperty::SInt32:
ls.push( (lua_Integer)(reflectedObject.*(property.GetMethod.GetSInt32))() ); ls.push( (reflectedObject.*(property.GetMethod.GetSInt32))() );
break; break;
case CReflectedProperty::Float: case CReflectedProperty::Float:
ls.push( (lua_Number)(reflectedObject.*(property.GetMethod.GetFloat))() ); ls.push( (reflectedObject.*(property.GetMethod.GetFloat))() );
break; break;
case CReflectedProperty::String: case CReflectedProperty::String:
ls.push( (reflectedObject.*(property.GetMethod.GetString))() ); ls.push( (reflectedObject.*(property.GetMethod.GetString))() );

View file

@ -141,7 +141,7 @@ int CDBCtrlSheet::luaGetHpBuff(CLuaState &ls)
uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet); uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet);
CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId); CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId);
ls.push((double)itemInfo.HpBuff); ls.push(itemInfo.HpBuff);
return 1; return 1;
} }
@ -153,7 +153,7 @@ int CDBCtrlSheet::luaGetSapBuff(CLuaState &ls)
uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet); uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet);
CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId); CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId);
ls.push((double)itemInfo.SapBuff); ls.push(itemInfo.SapBuff);
return 1; return 1;
} }
@ -165,7 +165,7 @@ int CDBCtrlSheet::luaGetFocusBuff(CLuaState &ls)
uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet); uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet);
CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId); CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId);
ls.push((double)itemInfo.FocusBuff); ls.push(itemInfo.FocusBuff);
return 1; return 1;
} }
@ -177,7 +177,7 @@ int CDBCtrlSheet::luaGetStaBuff(CLuaState &ls)
uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet); uint32 itemSlotId= getInventory().getItemSlotId(ctrlSheet);
CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId); CClientItemInfo itemInfo = getInventory().getItemInfo(itemSlotId);
ls.push((double)itemInfo.StaBuff); ls.push(itemInfo.StaBuff);
return 1; return 1;
} }

View file

@ -316,7 +316,7 @@ int CLuaIHMRyzom::luaClientCfgIndex(CLuaState &ls)
switch(v->Type) switch(v->Type)
{ {
case CConfigFile::CVar::T_REAL: case CConfigFile::CVar::T_REAL:
ls.push((double) v->asDouble()); ls.push(v->asDouble());
return 1; return 1;
break; break;
case CConfigFile::CVar::T_STRING: case CConfigFile::CVar::T_STRING:
@ -325,7 +325,7 @@ int CLuaIHMRyzom::luaClientCfgIndex(CLuaState &ls)
break; break;
default: // handle both T_INT && T_BOOL default: // handle both T_INT && T_BOOL
case CConfigFile::CVar::T_INT: case CConfigFile::CVar::T_INT:
ls.push((double) v->asInt()); ls.push(v->asInt());
return 1; return 1;
break; break;
} }
@ -1010,7 +1010,7 @@ int CLuaIHMRyzom::hideAllNonSavableWindows(CLuaState &/* ls */)
int CLuaIHMRyzom::getDesktopIndex(CLuaState &ls) int CLuaIHMRyzom::getDesktopIndex(CLuaState &ls)
{ {
//H_AUTO(Lua_CLuaIHM_getDesktopIndex) //H_AUTO(Lua_CLuaIHM_getDesktopIndex)
ls.push((double) CInterfaceManager::getInstance()->getMode()); ls.push(CInterfaceManager::getInstance()->getMode());
return 1; return 1;
} }
@ -1050,7 +1050,7 @@ int CLuaIHMRyzom::getCharSlot(CLuaState &ls)
//H_AUTO(Lua_CLuaIHM_getCharSlot) //H_AUTO(Lua_CLuaIHM_getCharSlot)
const char *funcName = "getCharSlot"; const char *funcName = "getCharSlot";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
ls.push(double(PlayerSelectedSlot)); ls.push(PlayerSelectedSlot);
return 1; return 1;
} }
@ -1060,7 +1060,7 @@ int CLuaIHMRyzom::getServerSeason(CLuaState &ls)
const char *funcName = "getServerSeason"; const char *funcName = "getServerSeason";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
extern uint8 ServerSeasonValue; extern uint8 ServerSeasonValue;
ls.push((double) ServerSeasonValue); ls.push(ServerSeasonValue);
return 1; return 1;
} }
@ -1069,7 +1069,7 @@ int CLuaIHMRyzom::computeCurrSeason(CLuaState &ls)
//H_AUTO(Lua_CLuaIHM_computeCurrSeason) //H_AUTO(Lua_CLuaIHM_computeCurrSeason)
const char *funcName = "computeCurrSeason"; const char *funcName = "computeCurrSeason";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
ls.push((double) (::computeCurrSeason() + 1)); ls.push((sint)(::computeCurrSeason() + 1));
return 1; return 1;
} }
@ -1078,7 +1078,7 @@ int CLuaIHMRyzom::getAutoSeason(CLuaState &ls)
//H_AUTO(Lua_CLuaIHM_getAutoSeason) //H_AUTO(Lua_CLuaIHM_getAutoSeason)
const char *funcName = "getAutoSeason"; const char *funcName = "getAutoSeason";
CLuaIHM::checkArgCount(ls, funcName, 0); CLuaIHM::checkArgCount(ls, funcName, 0);
ls.push((double) (StartupSeason + 1)); ls.push((sint)(StartupSeason + 1));
return 1; return 1;
} }
@ -1151,7 +1151,7 @@ int CLuaIHMRyzom::getPlayerDirection(CLuaState &ls)
int CLuaIHMRyzom::getPlayerGender(CLuaState &ls) int CLuaIHMRyzom::getPlayerGender(CLuaState &ls)
{ {
CLuaIHM::checkArgCount(ls, "getPlayerGender", 0); CLuaIHM::checkArgCount(ls, "getPlayerGender", 0);
ls.push((lua_Integer)(UserEntity->getGender())); ls.push((uint8)UserEntity->getGender());
return 1; return 1;
} }
@ -1217,7 +1217,7 @@ int CLuaIHMRyzom::getTargetGender(CLuaState &ls)
CLuaIHM::checkArgCount(ls, "getTargetGender", 0); CLuaIHM::checkArgCount(ls, "getTargetGender", 0);
CCharacterCL* target = (CCharacterCL*)getTargetEntity(); CCharacterCL* target = (CCharacterCL*)getTargetEntity();
if (!target) return (int)GSGENDER::unknown; if (!target) return (int)GSGENDER::unknown;
ls.push((lua_Integer)(target->getGender())); ls.push((uint8)target->getGender());
return 1; return 1;
} }
@ -1358,7 +1358,7 @@ int CLuaIHMRyzom::getSheet2idx(CLuaState &ls)
if (sheetId.buildSheetId(sheedtName)) if (sheetId.buildSheetId(sheedtName))
{ {
uint32 idx = CVisualSlotManager::getInstance()->sheet2Index(sheetId, (SLOTTYPE::EVisualSlot)slotId); uint32 idx = CVisualSlotManager::getInstance()->sheet2Index(sheetId, (SLOTTYPE::EVisualSlot)slotId);
ls.push((lua_Integer)idx); ls.push(idx);
} }
else else
return 0; return 0;
@ -1369,7 +1369,7 @@ int CLuaIHMRyzom::getSheet2idx(CLuaState &ls)
int CLuaIHMRyzom::getTargetSlot(CLuaState &ls) int CLuaIHMRyzom::getTargetSlot(CLuaState &ls)
{ {
uint32 slot = (uint32)getTargetSlotNr(); uint32 slot = (uint32)getTargetSlotNr();
ls.push((lua_Integer)slot); ls.push(slot);
return 1; return 1;
} }
@ -1401,7 +1401,7 @@ int CLuaIHMRyzom::getClientCfgVar(CLuaState &ls)
switch(v->Type) switch(v->Type)
{ {
case CConfigFile::CVar::T_REAL: case CConfigFile::CVar::T_REAL:
ls.push((double) v->asDouble()); ls.push(v->asDouble());
return 1; return 1;
break; break;
case CConfigFile::CVar::T_STRING: case CConfigFile::CVar::T_STRING:
@ -1410,7 +1410,7 @@ int CLuaIHMRyzom::getClientCfgVar(CLuaState &ls)
break; break;
default: // handle both T_INT && T_BOOL default: // handle both T_INT && T_BOOL
case CConfigFile::CVar::T_INT: case CConfigFile::CVar::T_INT:
ls.push((double) v->asInt()); ls.push(v->asInt());
return 1; return 1;
break; break;
} }
@ -1521,9 +1521,9 @@ int CLuaIHMRyzom::getIndexInDB(CLuaState &ls)
// get the index in db // get the index in db
if(pCS) if(pCS)
ls.push((double)pCS->getIndexInDB()); ls.push(pCS->getIndexInDB());
else else
ls.push(0.0); ls.push((sint)0);
return 1; return 1;
} }
@ -1791,7 +1791,7 @@ int CLuaIHMRyzom::getIslandId(CLuaState &ls)
CScenarioEntryPoints scenarioEntryPoints = CScenarioEntryPoints::getInstance(); CScenarioEntryPoints scenarioEntryPoints = CScenarioEntryPoints::getInstance();
uint32 id = scenarioEntryPoints.getIslandId(ls.toString(1)); uint32 id = scenarioEntryPoints.getIslandId(ls.toString(1));
ls.push((double)id); ls.push(id);
return 1; return 1;
} }

View file

@ -4563,14 +4563,14 @@ int CSPhraseComAdpater::luaGetCastTime(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push(0.0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
float castTime; float castTime;
float castTimeMalus; float castTimeMalus;
pPM->getPhraseCastTime(Phrase, pPM->getTotalActionMalus(Phrase), castTime, castTimeMalus); pPM->getPhraseCastTime(Phrase, pPM->getTotalActionMalus(Phrase), castTime, castTimeMalus);
ls.push((double) (castTime + castTimeMalus)); ls.push(castTime + castTimeMalus);
return 1; return 1;
} }
@ -4579,14 +4579,14 @@ int CSPhraseComAdpater::luaGetCastRange(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
sint range; sint range;
sint rangeMalus; sint rangeMalus;
pPM->getPhraseMagicRange(this->Phrase, pPM->getTotalActionMalus(Phrase), range, rangeMalus); pPM->getPhraseMagicRange(this->Phrase, pPM->getTotalActionMalus(Phrase), range, rangeMalus);
ls.push((double) (range + rangeMalus)); ls.push(range + rangeMalus);
return 1; return 1;
} }
@ -4595,14 +4595,14 @@ int CSPhraseComAdpater::luaGetHpCost(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
sint hpCost; sint hpCost;
sint hpCostMalus; sint hpCostMalus;
pPM->getPhraseHpCost(this->Phrase, pPM->getTotalActionMalus(Phrase), hpCost, hpCostMalus); pPM->getPhraseHpCost(this->Phrase, pPM->getTotalActionMalus(Phrase), hpCost, hpCostMalus);
ls.push((double) (hpCost + hpCostMalus)); ls.push(hpCost + hpCostMalus);
return 1; return 1;
} }
@ -4611,14 +4611,14 @@ int CSPhraseComAdpater::luaGetSapCost(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
sint sapCost; sint sapCost;
sint sapCostMalus; sint sapCostMalus;
pPM->getPhraseSapCost(this->Phrase, pPM->getTotalActionMalus(Phrase), sapCost, sapCostMalus); pPM->getPhraseSapCost(this->Phrase, pPM->getTotalActionMalus(Phrase), sapCost, sapCostMalus);
ls.push((double) (sapCost + sapCostMalus)); ls.push(sapCost + sapCostMalus);
return 1; return 1;
} }
@ -4627,11 +4627,11 @@ int CSPhraseComAdpater::luaGetSuccessRate(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); ; CSPhraseManager *pPM = CSPhraseManager::getInstance(); ;
ls.push((double) pPM->getPhraseSuccessRate(this->Phrase)); ls.push(pPM->getPhraseSuccessRate(this->Phrase));
return 1; return 1;
} }
@ -4641,14 +4641,14 @@ int CSPhraseComAdpater::luaGetFocusCost(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
sint focusCost; sint focusCost;
sint focusCostMalus; sint focusCostMalus;
pPM->getPhraseFocusCost(this->Phrase, pPM->getTotalActionMalus(Phrase), focusCost, focusCostMalus); pPM->getPhraseFocusCost(this->Phrase, pPM->getTotalActionMalus(Phrase), focusCost, focusCostMalus);
ls.push((double) (focusCost + focusCostMalus)); ls.push(focusCost + focusCostMalus);
return 1; return 1;
} }
@ -4657,14 +4657,14 @@ int CSPhraseComAdpater::luaGetStaCost(CLuaState &ls)
{ {
if (Phrase.Bricks.empty()) if (Phrase.Bricks.empty())
{ {
ls.push((double) 0); ls.push((sint)0);
return 1; return 1;
} }
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
sint staCost; sint staCost;
sint staCostMalus; sint staCostMalus;
pPM->getPhraseStaCost(this->Phrase, pPM->getTotalActionMalus(Phrase), staCost, staCostMalus); pPM->getPhraseStaCost(this->Phrase, pPM->getTotalActionMalus(Phrase), staCost, staCostMalus);
ls.push((double) (staCost + staCostMalus)); ls.push(staCost + staCostMalus);
return 1; return 1;
} }
@ -4756,7 +4756,7 @@ int CSPhraseComAdpater::luaIsPowerPhrase(CLuaState &ls)
int CSPhraseComAdpater::luaGetRegenTime(CLuaState &ls) int CSPhraseComAdpater::luaGetRegenTime(CLuaState &ls)
{ {
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
ls.push((double) pPM->getRegenTime(Phrase)); ls.push((sint)pPM->getRegenTime(Phrase));
return 1; return 1;
} }
@ -4764,7 +4764,7 @@ int CSPhraseComAdpater::luaGetRegenTime(CLuaState &ls)
int CSPhraseComAdpater::luaGetTotalRegenTime(CLuaState &ls) int CSPhraseComAdpater::luaGetTotalRegenTime(CLuaState &ls)
{ {
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
ls.push((double) pPM->getTotalRegenTime(Phrase)); ls.push((sint)pPM->getTotalRegenTime(Phrase));
return 1; return 1;
} }
@ -4772,7 +4772,7 @@ int CSPhraseComAdpater::luaGetTotalRegenTime(CLuaState &ls)
int CSPhraseComAdpater::luaGetPowerDisableTime(CLuaState &ls) int CSPhraseComAdpater::luaGetPowerDisableTime(CLuaState &ls)
{ {
CSPhraseManager *pPM = CSPhraseManager::getInstance(); CSPhraseManager *pPM = CSPhraseManager::getInstance();
ls.push((double) pPM->getPowerDisableTime(Phrase)); ls.push((sint)pPM->getPowerDisableTime(Phrase));
return 1; return 1;
} }

View file

@ -1869,8 +1869,8 @@ void CClientEditionModule::onKicked(NLNET::IModuleProxy * /* sender */, uint32 t
{ {
//H_AUTO(R2_CClientEditionModule_onKicked) //H_AUTO(R2_CClientEditionModule_onKicked)
R2::getEditor().getLua().push((double)timeBeforeDisconnection); R2::getEditor().getLua().push(timeBeforeDisconnection);
R2::getEditor().getLua().push((bool)mustKick); R2::getEditor().getLua().push(mustKick);
R2::getEditor().callEnvFunc( "onKicked", 2, 0); R2::getEditor().callEnvFunc( "onKicked", 2, 0);
} }
@ -2019,9 +2019,9 @@ void CClientEditionModule::onAnimationModePlayConnected(NLNET::IModuleProxy * /*
void CClientEditionModule::scheduleStartAct(NLNET::IModuleProxy * /* sender */, uint32 errorId, uint32 actId, uint32 nbSeconds) void CClientEditionModule::scheduleStartAct(NLNET::IModuleProxy * /* sender */, uint32 errorId, uint32 actId, uint32 nbSeconds)
{ {
//H_AUTO(R2_CClientEditionModule_scheduleStartAct) //H_AUTO(R2_CClientEditionModule_scheduleStartAct)
R2::getEditor().getLua().push((double)errorId); R2::getEditor().getLua().push(errorId);
R2::getEditor().getLua().push((double)actId); R2::getEditor().getLua().push(actId);
R2::getEditor().getLua().push((double)nbSeconds); R2::getEditor().getLua().push(nbSeconds);
R2::getEditor().callEnvFunc( "onScheduleStartAct", 3, 0); R2::getEditor().callEnvFunc( "onScheduleStartAct", 3, 0);
} }

View file

@ -1009,9 +1009,9 @@ int CEditor::luaSnapPosToGround(CLuaState &ls)
if (gpos.InstanceId != -1) if (gpos.InstanceId != -1)
{ {
CVector snappedPos = GR->getGlobalPosition(gpos); CVector snappedPos = GR->getGlobalPosition(gpos);
ls.push((double) snappedPos.x); ls.push(snappedPos.x);
ls.push((double) snappedPos.y); ls.push(snappedPos.y);
ls.push((double) snappedPos.z); ls.push(snappedPos.z);
return 3; return 3;
} }
else else
@ -1025,9 +1025,9 @@ int CEditor::luaSnapPosToGround(CLuaState &ls)
CVector inter; CVector inter;
if (CTool::computeWorldMapIntersection((float) ls.toNumber(2), (float) ls.toNumber(3), inter) != CTool::NoIntersection) if (CTool::computeWorldMapIntersection((float) ls.toNumber(2), (float) ls.toNumber(3), inter) != CTool::NoIntersection)
{ {
ls.push((double) inter.x); ls.push(inter.x);
ls.push((double) inter.y); ls.push(inter.y);
ls.push((double) inter.z); ls.push(inter.z);
return 3; return 3;
} }
else else
@ -1045,9 +1045,9 @@ int CEditor::luaGetUserEntityPosition(CLuaState &ls)
CHECK_EDITOR CHECK_EDITOR
const char *funcName = "getUserEntityPosition"; const char *funcName = "getUserEntityPosition";
CLuaIHM::checkArgCount(ls, funcName, 1); CLuaIHM::checkArgCount(ls, funcName, 1);
ls.push((double) UserEntity->pos().x); ls.push(UserEntity->pos().x);
ls.push((double) UserEntity->pos().y); ls.push(UserEntity->pos().y);
ls.push((double) UserEntity->pos().z); ls.push(UserEntity->pos().z);
return 3; return 3;
} }
@ -1058,8 +1058,8 @@ int CEditor::luaGetUserEntityFront(CLuaState &ls)
CHECK_EDITOR CHECK_EDITOR
const char *funcName = "getUserEntityPosition"; const char *funcName = "getUserEntityPosition";
CLuaIHM::checkArgCount(ls, funcName, 1); CLuaIHM::checkArgCount(ls, funcName, 1);
ls.push((double) UserEntity->front().x); ls.push(UserEntity->front().x);
ls.push((double) UserEntity->front().y); ls.push(UserEntity->front().y);
return 2; return 2;
} }
@ -1443,7 +1443,7 @@ int CEditor::luaIsScenarioUpdating(CLuaState &ls)
//H_AUTO(R2_CEditor_luaIsScenarioUpdating) //H_AUTO(R2_CEditor_luaIsScenarioUpdating)
const char *funcName = "isScenarioUpdating"; const char *funcName = "isScenarioUpdating";
CLuaIHM::checkArgCount(ls, funcName, 1); // method with no args CLuaIHM::checkArgCount(ls, funcName, 1); // method with no args
ls.push( (double)getEditor()._UpdatingScenario ); ls.push( getEditor()._UpdatingScenario );
return 1; return 1;
} }
@ -1487,9 +1487,9 @@ int CEditor::luaIsValidPosition(CLuaState &ls)
if (gpos.InstanceId != -1) if (gpos.InstanceId != -1)
{ {
CVector snappedPos = GR->getGlobalPosition(gpos); CVector snappedPos = GR->getGlobalPosition(gpos);
ls.push((double) snappedPos.x); ls.push(snappedPos.x);
ls.push((double) snappedPos.y); ls.push(snappedPos.y);
ls.push((double) snappedPos.z); ls.push(snappedPos.z);
return 3; return 3;
} }
else else
@ -1503,9 +1503,9 @@ int CEditor::luaIsValidPosition(CLuaState &ls)
CVector inter; CVector inter;
if (CTool::computeWorldMapIntersection((float) ls.toNumber(2), (float) ls.toNumber(3), inter) != CTool::NoIntersection) if (CTool::computeWorldMapIntersection((float) ls.toNumber(2), (float) ls.toNumber(3), inter) != CTool::NoIntersection)
{ {
ls.push((double) inter.x); ls.push(inter.x);
ls.push((double) inter.y); ls.push(inter.y);
ls.push((double) inter.z); ls.push(inter.z);
} }
@ -1540,7 +1540,7 @@ int CEditor::luaGetUserEntityName(CLuaState &ls)
if (UserEntity) if (UserEntity)
{ {
ucstring name = UserEntity->getEntityName()+PlayerSelectedHomeShardNameWithParenthesis; ucstring name = UserEntity->getEntityName()+PlayerSelectedHomeShardNameWithParenthesis;
ls.push( std::string( name.toUtf8() ) ); ls.push( name.toUtf8() );
} }
else else
{ {
@ -1928,7 +1928,7 @@ void CInstanceObserverLua::onAttrModified(CInstance &instance, const std::string
if (_Receiver["onAttrModified"].isNil()) return; // no-op if not handled if (_Receiver["onAttrModified"].isNil()) return; // no-op if not handled
getEditor().projectInLua(instance.getObjectTable()); getEditor().projectInLua(instance.getObjectTable());
getEditor().getLua().push(attrName); getEditor().getLua().push(attrName);
getEditor().getLua().push((double) attrIndex); getEditor().getLua().push(attrIndex);
_Receiver.callMethodByNameNoThrow("onAttrModified", 3, 0); _Receiver.callMethodByNameNoThrow("onAttrModified", 3, 0);
} }
@ -1942,7 +1942,7 @@ int CEditor::luaAddInstanceObserver(CLuaState &ls)
CLuaIHM::checkArgType(ls, funcName, 2, LUA_TSTRING); // instance id CLuaIHM::checkArgType(ls, funcName, 2, LUA_TSTRING); // instance id
CLuaIHM::checkArgType(ls, funcName, 3, LUA_TTABLE); // receiver CLuaIHM::checkArgType(ls, funcName, 3, LUA_TTABLE); // receiver
CLuaObject receiver(ls); // pop the receiver CLuaObject receiver(ls); // pop the receiver
ls.push((double) getEditor().addInstanceObserver(ls.toString(2), new CInstanceObserverLua(receiver))); ls.push(getEditor().addInstanceObserver(ls.toString(2), new CInstanceObserverLua(receiver)));
return 1; return 1;
} }
@ -2214,11 +2214,11 @@ void CEditor::setUIMode(uint8 mode)
if (_ForceDesktopReset[mode]) if (_ForceDesktopReset[mode])
{ {
// force to call reset when reloading the ui // force to call reset when reloading the ui
getLua().push((double) mode); getLua().push(mode);
callEnvMethod("resetDesktop", 1, 0); callEnvMethod("resetDesktop", 1, 0);
_ForceDesktopReset[mode] = false; _ForceDesktopReset[mode] = false;
} }
getLua().push((double) mode); getLua().push(mode);
callEnvMethod("onChangeDesktop", 1, 0); callEnvMethod("onChangeDesktop", 1, 0);
} }
@ -3293,11 +3293,11 @@ void CEditor::initObjectProjectionMetatable()
sint32 index = obj->getParent()->findIndex(obj); sint32 index = obj->getParent()->findIndex(obj);
if (obj->getParent()->getKey(index).empty()) if (obj->getParent()->getKey(index).empty())
{ {
ls.push((double) index); ls.push(index);
} }
else else
{ {
ls.push((double) -1); ls.push(-1);
} }
return 1; return 1;
} }
@ -3311,7 +3311,7 @@ void CEditor::initObjectProjectionMetatable()
{ {
if (obj->isTable()) if (obj->isTable())
{ {
ls.push((double) obj->getSize()); ls.push(obj->getSize());
} }
else else
{ {
@ -3509,7 +3509,7 @@ void CEditor::initObjectProjectionMetatable()
} }
if (obj->getKey(index).empty()) if (obj->getKey(index).empty())
{ {
ls.push((double) index); ls.push(index);
} }
else else
{ {
@ -5423,7 +5423,7 @@ bool CEditor::verifyRoomLeft(uint aiCost, uint staticCost)
if (aiCost) if (aiCost)
{ {
CLuaStackChecker lsc(&ls); CLuaStackChecker lsc(&ls);
getEditor().getLua().push((lua_Integer)aiCost); getEditor().getLua().push(aiCost);
callEnvMethod("checkAiQuota", 1, 1); callEnvMethod("checkAiQuota", 1, 1);
if (!ls.isBoolean(-1)) if (!ls.isBoolean(-1))
{ {
@ -5437,7 +5437,7 @@ bool CEditor::verifyRoomLeft(uint aiCost, uint staticCost)
if (staticCost) if (staticCost)
{ {
CLuaStackChecker lsc(&ls); CLuaStackChecker lsc(&ls);
getEditor().getLua().push((lua_Integer)staticCost); getEditor().getLua().push(staticCost);
callEnvMethod("checkStaticQuota", 1, 1); callEnvMethod("checkStaticQuota", 1, 1);
if (!ls.isBoolean(-1)) if (!ls.isBoolean(-1))
{ {

View file

@ -832,7 +832,7 @@ function r2:onActChanged(previousAct, currentAct)
-- update the select bar -- update the select bar
r2.SelectBar:touch() r2.SelectBar:touch()
if r2:isScenarioUpdating() == 1 then if r2:isScenarioUpdating() then
return return
end end