diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index f5bef135f4e..68fa7d28141 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1825,16 +1825,13 @@ void WorldObject::SetMap(Map* map) m_mapId = map->GetId(); m_InstanceId = map->GetInstanceId(); #ifdef ELUNA - // in multistate mode, always reset Map events, then recreate the Map events procesor - if (!sElunaConfig->IsElunaCompatibilityMode()) - { - auto& events = GetElunaEvents(m_mapId); - if (events) - events.reset(); + // always reset Map events, then recreate the Map events procesor if Eluna is enabled for the map + auto& events = GetElunaEvents(m_mapId); + if (events) + events.reset(); - if (Eluna* e = map->GetEluna()) - events = std::make_unique(e, this); - } + if (Eluna* e = map->GetEluna()) + events = std::make_unique(e, this); // create the World events processor if (Eluna* e = sWorld->GetEluna()) diff --git a/src/server/game/LuaEngine b/src/server/game/LuaEngine index cad3d559ea6..8e8cf206de0 160000 --- a/src/server/game/LuaEngine +++ b/src/server/game/LuaEngine @@ -1 +1 @@ -Subproject commit cad3d559ea68f8b1521be17198a823ea00e611ba +Subproject commit 8e8cf206de0e23b628a285bc2ce0cb882a536b86 diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 1daf1caee1d..883ab2fcdbb 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -289,7 +289,7 @@ i_scriptLock(false), _respawnTimes(std::make_unique()), _r // lua state begins uninitialized eluna = nullptr; - if (sElunaConfig->IsElunaEnabled() && !sElunaConfig->IsElunaCompatibilityMode() && sElunaConfig->ShouldMapLoadEluna(id)) + if (sElunaConfig->IsElunaEnabled() && sElunaConfig->ShouldMapLoadEluna(id)) if (!IsParentMap() || (IsParentMap() && !Instanceable())) eluna = std::make_unique(this); #endif @@ -4891,14 +4891,4 @@ std::string InstanceMap::GetDebugInfo() const return sstr.str(); } -#ifdef ELUNA -Eluna *Map::GetEluna() const -{ - if(sElunaConfig->IsElunaCompatibilityMode()) - return sWorld->GetEluna(); - - return eluna.get(); -} -#endif - template class TC_GAME_API TypeUnorderedMapContainer; diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 926696310a3..e5315cdd904 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -788,7 +788,7 @@ class TC_GAME_API Map : public GridRefManager void AddFarSpellCallback(FarSpellCallback&& callback); bool IsParentMap() const { return GetParent() == this; } #ifdef ELUNA - Eluna* GetEluna() const; + Eluna* GetEluna() const { return eluna.get(); } LuaVal lua_data = LuaVal({}); #endif diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index 9c83bd81137..20683c843b9 100644 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -38,7 +38,6 @@ #include #ifdef ELUNA #include "LuaEngine.h" -#include "ElunaConfig.h" #endif MapManager::MapManager() @@ -55,15 +54,6 @@ void MapManager::Initialize() Map::InitStateMachine(); int num_threads(sWorld->getIntConfig(CONFIG_NUMTHREADS)); -#if ELUNA - if (sElunaConfig->IsElunaEnabled() && sElunaConfig->IsElunaCompatibilityMode() && num_threads > 1) - { - // Force 1 thread for Eluna if compatibility mode is enabled. Compatibility mode is single state and does not allow more update threads. - TC_LOG_ERROR("maps", "Map update threads set to {}, when Eluna in compatibility mode only allows 1, changing to 1", num_threads); - num_threads = 1; - } -#endif - // Start mtmaps if needed. if (num_threads > 0) m_updater.activate(num_threads); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index f71f88a45d3..73fecb7bd3c 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1560,9 +1560,7 @@ void ScriptMgr::OnMapUpdate(Map* map, uint32 diff) #ifdef ELUNA if (Eluna* e = map->GetEluna()) { - if(!sElunaConfig->IsElunaCompatibilityMode()) - e->UpdateEluna(diff); - + e->UpdateEluna(diff); e->OnUpdate(map, diff); } #endif diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index eda607f8e7c..7bedb9d3644 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2119,7 +2119,7 @@ void World::SetInitialWorldSettings() if (sElunaConfig->IsElunaEnabled()) { TC_LOG_INFO("server.loading", "Starting Eluna world state..."); - eluna = std::make_unique(nullptr, sElunaConfig->IsElunaCompatibilityMode()); + eluna = std::make_unique(nullptr); } #endif diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 6ef441018e3..3c6d4d1c3d6 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3882,12 +3882,6 @@ AuctionHouseBot.Buyer.Recheck.Interval = 20 # Default: true - (enabled) # false - (disabled) # -# Eluna.CompatibilityMode -# Description: Toggles Eluna between compatibility mode (single-threaded) or multistate mode. -# Compatibility mode limits the core to a single map update thread. -# Default: true - (enabled) -# false - (disabled) -# # Eluna.ScriptReloader # Description: Enable or disable the automated script reloader. # This will automatically reload Eluna when it detects changes to scripts. @@ -3927,7 +3921,6 @@ AuctionHouseBot.Buyer.Recheck.Interval = 20 # Eluna.Enabled = true -Eluna.CompatibilityMode = false Eluna.ScriptReloader = false Eluna.OnlyOnMaps = "" Eluna.TraceBack = false