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:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user