From 6a999a8a72dddd34ae2a289cf9ff3f79ea0bad68 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Thu, 19 Feb 2015 03:40:20 +1100 Subject: [PATCH] Room API hooks are updated automatically --- server/characters/character_manager_api.cpp | 2 ++ server/rooms/room_data.cpp | 10 ++++++++-- server/rooms/room_manager.cpp | 17 ++++++++++------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/server/characters/character_manager_api.cpp b/server/characters/character_manager_api.cpp index b249ba9..25e621a 100644 --- a/server/characters/character_manager_api.cpp +++ b/server/characters/character_manager_api.cpp @@ -23,6 +23,8 @@ #include "character_manager.hpp" +//TODO: triggers, accessors + static const luaL_Reg characterManagerLib[] = { {nullptr, nullptr} }; diff --git a/server/rooms/room_data.cpp b/server/rooms/room_data.cpp index ea72ddd..14cf328 100644 --- a/server/rooms/room_data.cpp +++ b/server/rooms/room_data.cpp @@ -70,7 +70,11 @@ std::list* RoomData::GetCharacterList() { } lua_State* RoomData::SetLuaState(lua_State* L) { - return lua = L; + lua = L; + pager.SetLuaState(lua); + monsterMgr.SetLuaState(lua); + waypointMgr.SetLuaState(lua); + return lua; } lua_State* RoomData::GetLuaState() { @@ -78,7 +82,9 @@ lua_State* RoomData::GetLuaState() { } sqlite3* RoomData::SetDatabase(sqlite3* db) { - return database = db; + database = db; + monsterMgr.SetDatabase(database); + return database; } sqlite3* RoomData::GetDatabase() { diff --git a/server/rooms/room_manager.cpp b/server/rooms/room_manager.cpp index ee3c6aa..c974413 100644 --- a/server/rooms/room_manager.cpp +++ b/server/rooms/room_manager.cpp @@ -35,11 +35,6 @@ int RoomManager::Create(std::string roomName, std::string tileset) { newRoom->SetName(roomName); newRoom->SetTileset(tileset); - newRoom->GetPager()->SetLuaState(lua); - newRoom->GetMonsterMgr()->SetLuaState(lua); - newRoom->GetMonsterMgr()->SetDatabase(database); - newRoom->GetWaypointMgr()->SetLuaState(lua); - newRoom->SetLuaState(lua); newRoom->SetDatabase(database); @@ -174,7 +169,11 @@ std::map* RoomManager::GetContainer() { } lua_State* RoomManager::SetLuaState(lua_State* L) { - return lua = L; + lua = L; + for (auto& it : elementMap) { + it.second.SetLuaState(lua); + } + return lua; } lua_State* RoomManager::GetLuaState() { @@ -182,7 +181,11 @@ lua_State* RoomManager::GetLuaState() { } sqlite3* RoomManager::SetDatabase(sqlite3* db) { - return database = db; + database = db; + for (auto& it : elementMap) { + it.second.SetDatabase(database); + } + return database; } sqlite3* RoomManager::GetDatabase() {