From e4ba805e0078bbdfe29ffa6c40a3fdd696b0a9a4 Mon Sep 17 00:00:00 2001 From: Ahmed Samy Date: Tue, 14 Jan 2014 11:04:48 +0200 Subject: [PATCH] deleteSpawn() --- src/client/creatures.cpp | 8 ++++++++ src/client/creatures.h | 1 + src/client/luafunctions.cpp | 1 + 3 files changed, 10 insertions(+) diff --git a/src/client/creatures.cpp b/src/client/creatures.cpp index 8325cac0..3fd366e6 100644 --- a/src/client/creatures.cpp +++ b/src/client/creatures.cpp @@ -407,6 +407,14 @@ SpawnPtr CreatureManager::addSpawn(const Position& centerPos, int radius) return ret; } +void CreatureManager::deleteSpawn(const SpawnPtr& spawn) +{ + const Position& centerPos = spawn->getCenterPos(); + auto it = m_spawns.find(centerPos); + if(it != m_spawns.end()) + m_spawns.erase(it); +} + std::vector CreatureManager::getSpawns() { std::vector spawns; diff --git a/src/client/creatures.h b/src/client/creatures.h index 5ddc5bf6..53df0ecd 100644 --- a/src/client/creatures.h +++ b/src/client/creatures.h @@ -125,6 +125,7 @@ public: SpawnPtr getSpawn(const Position& centerPos); SpawnPtr getSpawnForPlacePos(const Position& pos); SpawnPtr addSpawn(const Position& centerPos, int radius); + void deleteSpawn(const SpawnPtr& spawn); bool isLoaded() { return m_loaded; } bool isSpawnLoaded() { return m_spawnLoaded; } diff --git a/src/client/luafunctions.cpp b/src/client/luafunctions.cpp index 965079e1..7a39ea9c 100644 --- a/src/client/luafunctions.cpp +++ b/src/client/luafunctions.cpp @@ -173,6 +173,7 @@ void Client::registerLuaFunctions() g_lua.bindSingletonFunction("g_creatures", "clear", &CreatureManager::clear, &g_creatures); g_lua.bindSingletonFunction("g_creatures", "clearSpawns", &CreatureManager::clearSpawns, &g_creatures); g_lua.bindSingletonFunction("g_creatures", "getSpawns", &CreatureManager::getSpawns, &g_creatures); + g_lua.bindSingletonFunction("g_creatures", "deleteSpawn", &CreatureManager::deleteSpawn, &g_creatures); g_lua.registerSingletonClass("g_game"); g_lua.bindSingletonFunction("g_game", "loginWorld", &Game::loginWorld, &g_game);