int32_t LuaInterface::luaDoCreateMonster(lua_State* L)
{
//doCreateMonster(name, pos[, extend = false[, force = false[, displayError = true]]])
bool displayError = true, force = false, extend = false;
int32_t params = lua_gettop(L);
if(params > 4)
displayError = popNumber(L);
if(params > 3)
force = popNumber(L);
if(params > 2)
extend = popNumber(L);
PositionEx pos;
popPosition(L, pos);
std::string name = popString(L);
Monster* monster = Monster::createMonster(name.c_str());
if(!monster)
{
if(displayError)
errorEx("Monster with name '" + name + "' not found");
lua_pushboolean(L, false);
return 1;
}
if(!g_game.placeCreature(monster, pos, extend, force))
{
delete monster;
if(displayError)
errorEx("Cannot create monster: " + name);
lua_pushboolean(L, true);
return 1;
}
ScriptEnviroment* env = getEnv();
lua_pushnumber(L, env->addThing((Thing*)monster));
return 1;
}