1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00

Less ugly API declarations

This commit is contained in:
AlexVinS
2021-02-16 17:07:30 +03:00
parent ec6f7b88fe
commit 6d245a7821
59 changed files with 693 additions and 827 deletions

View File

@ -24,75 +24,90 @@ namespace api
VCMI_REGISTER_CORE_SCRIPT_API(BattleCbProxy, "Battle");
const std::vector<BattleCbProxy::RegType> BattleCbProxy::REGISTER =
const std::vector<BattleCbProxy::CustomRegType> BattleCbProxy::REGISTER_CUSTOM =
{
{
"getBattlefieldType",
&BattleCbProxy::getBattlefieldType
&BattleCbProxy::getBattlefieldType,
false
},
{
"getNextUnitId",
LuaCallWrapper<const BattleCb>::createFunctor(&BattleCb::battleNextUnitId)
LuaMethodWrapper<BattleCb, decltype(&BattleCb::battleNextUnitId), &BattleCb::battleNextUnitId>::invoke,
false
},
{
"getTacticDistance",
LuaCallWrapper<const BattleCb>::createFunctor(&BattleCb::battleTacticDist)
LuaMethodWrapper<BattleCb, decltype(&BattleCb::battleTacticDist), &BattleCb::battleTacticDist>::invoke,
false
},
{
"getTerrainType",
&BattleCbProxy::getTerrainType
&BattleCbProxy::getTerrainType,
false
},
{
"getUnitById",
LuaCallWrapper<const BattleCb>::createFunctor(&BattleCb::battleGetUnitByID)
LuaMethodWrapper<BattleCb, decltype(&BattleCb::battleGetUnitByID), &BattleCb::battleGetUnitByID>::invoke,
false
},
{
"getUnitByPos",
&BattleCbProxy::getUnitByPos
&BattleCbProxy::getUnitByPos,
false
},
{
"isFinished",
LuaCallWrapper<const BattleCb>::createFunctor(&BattleCb::battleIsFinished)
LuaMethodWrapper<BattleCb, decltype(&BattleCb::battleIsFinished), &BattleCb::battleIsFinished>::invoke,
false
}
};
const std::vector<BattleCbProxy::CustomRegType> BattleCbProxy::REGISTER_CUSTOM =
{
};
int BattleCbProxy::getBattlefieldType(lua_State * L, const BattleCb * object)
int BattleCbProxy::getBattlefieldType(lua_State * L)
{
LuaStack S(L);
const BattleCb * object;
if(!S.tryGet(1, object))
return S.retVoid();
auto ret = object->battleGetBattlefieldType();
S.push(static_cast<si32>(ret.num));
return 1;
return LuaStack::quickRetInt(L, static_cast<si32>(ret.num));
}
int BattleCbProxy::getTerrainType(lua_State * L, const BattleCb * object)
int BattleCbProxy::getTerrainType(lua_State * L)
{
LuaStack S(L);
const BattleCb * object;
if(!S.tryGet(1, object))
return S.retVoid();
auto ret = object->battleTerrainType();
S.push(static_cast<si32>(ret.num));
return 1;
return LuaStack::quickRetInt(L, static_cast<si32>(ret.num));
}
int BattleCbProxy::getUnitByPos(lua_State * L, const BattleCb * object)
int BattleCbProxy::getUnitByPos(lua_State * L)
{
LuaStack S(L);
const BattleCb * object;
if(!S.tryGet(1, object))
return S.retVoid();
BattleHex hex;
if(!S.tryGet(1, hex.hex))
if(!S.tryGet(2, hex.hex))
return S.retNil();
bool onlyAlive;
if(!S.tryGet(2, onlyAlive))
if(!S.tryGet(3, onlyAlive))
onlyAlive = true;//same as default value in battleGetUnitByPos
S.clear();
S.push(object->battleGetUnitByPos(hex, onlyAlive));
return 1;
}