Make the continent transport and preloading optional.
This commit is contained in:
@@ -403,52 +403,58 @@ void TransportMgr::SpawnContinentTransports()
|
|||||||
if (_transportTemplates.empty())
|
if (_transportTemplates.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint32 oldMSTime = getMSTime();
|
if (sWorld->getBoolConfig(CONFIG_ENABLE_CONTINENT_TRANSPORT))
|
||||||
QueryResult result = WorldDatabase.Query("SELECT guid, entry FROM transports");
|
|
||||||
uint32 count = 0;
|
|
||||||
if (result)
|
|
||||||
{
|
{
|
||||||
do
|
uint32 oldMSTime = getMSTime();
|
||||||
|
QueryResult result = WorldDatabase.Query("SELECT guid, entry FROM transports");
|
||||||
|
uint32 count = 0;
|
||||||
|
if (result)
|
||||||
{
|
{
|
||||||
Field* fields = result->Fetch();
|
do
|
||||||
uint32 guid = fields[0].GetUInt32();
|
{
|
||||||
uint32 entry = fields[1].GetUInt32();
|
Field* fields = result->Fetch();
|
||||||
|
uint32 guid = fields[0].GetUInt32();
|
||||||
|
uint32 entry = fields[1].GetUInt32();
|
||||||
|
|
||||||
if (TransportTemplate const* tInfo = GetTransportTemplate(entry))
|
if (TransportTemplate const* tInfo = GetTransportTemplate(entry))
|
||||||
if (!tInfo->inInstance)
|
if (!tInfo->inInstance)
|
||||||
if (CreateTransport(entry, guid))
|
if (CreateTransport(entry, guid))
|
||||||
|
++count;
|
||||||
|
|
||||||
|
} while (result->NextRow());
|
||||||
|
}
|
||||||
|
|
||||||
|
sLog->outString(">> Spawned %u continent motion transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sWorld->getBoolConfig(CONFIG_ENABLE_CONTINENT_TRANSPORT_PRELOADING))
|
||||||
|
{
|
||||||
|
// pussywizard: preload grids for continent static transports
|
||||||
|
oldMSTime = getMSTime();
|
||||||
|
result = WorldDatabase.Query("SELECT map, position_x, position_y FROM gameobject g JOIN gameobject_template t ON g.id = t.entry WHERE t.type = 11");
|
||||||
|
count = 0;
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
Field* fields = result->Fetch();
|
||||||
|
uint16 mapId = fields[0].GetUInt16();
|
||||||
|
float x = fields[1].GetFloat();
|
||||||
|
float y = fields[2].GetFloat();
|
||||||
|
|
||||||
|
MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
|
||||||
|
if (mapEntry && !mapEntry->Instanceable())
|
||||||
|
if (Map* map = sMapMgr->CreateBaseMap(mapId))
|
||||||
|
{
|
||||||
|
map->LoadGrid(x, y);
|
||||||
++count;
|
++count;
|
||||||
|
}
|
||||||
|
|
||||||
} while (result->NextRow());
|
} while (result->NextRow());
|
||||||
|
}
|
||||||
|
|
||||||
|
sLog->outString(">> Preloaded grids for %u continent static transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
sLog->outString(">> Spawned %u continent motion transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
|
||||||
|
|
||||||
// pussywizard: preload grids for continent static transports
|
|
||||||
oldMSTime = getMSTime();
|
|
||||||
result = WorldDatabase.Query("SELECT map, position_x, position_y FROM gameobject g JOIN gameobject_template t ON g.id = t.entry WHERE t.type = 11");
|
|
||||||
count = 0;
|
|
||||||
if (result)
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
Field* fields = result->Fetch();
|
|
||||||
uint16 mapId = fields[0].GetUInt16();
|
|
||||||
float x = fields[1].GetFloat();
|
|
||||||
float y = fields[2].GetFloat();
|
|
||||||
|
|
||||||
MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
|
|
||||||
if (mapEntry && !mapEntry->Instanceable())
|
|
||||||
if (Map* map = sMapMgr->CreateBaseMap(mapId))
|
|
||||||
{
|
|
||||||
map->LoadGrid(x, y);
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
|
|
||||||
} while (result->NextRow());
|
|
||||||
}
|
|
||||||
|
|
||||||
sLog->outString(">> Preloaded grids for %u continent static transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransportMgr::CreateInstanceTransports(Map* map)
|
void TransportMgr::CreateInstanceTransports(Map* map)
|
||||||
|
|||||||
@@ -1299,6 +1299,9 @@ void World::LoadConfigSettings(bool reload)
|
|||||||
|
|
||||||
m_int_configs[CONFIG_BIRTHDAY_TIME] = sConfigMgr->GetIntDefault("BirthdayTime", 1222964635);
|
m_int_configs[CONFIG_BIRTHDAY_TIME] = sConfigMgr->GetIntDefault("BirthdayTime", 1222964635);
|
||||||
|
|
||||||
|
m_bool_configs[CONFIG_ENABLE_CONTINENT_TRANSPORT] = sConfigMgr->GetBoolDefault("IsContinentTransport.Enabled", true);
|
||||||
|
m_bool_configs[CONFIG_ENABLE_CONTINENT_TRANSPORT_PRELOADING] = sConfigMgr->GetBoolDefault("IsPreloadedContinentTransport.Enabled", false);
|
||||||
|
|
||||||
// call ScriptMgr if we're reloading the configuration
|
// call ScriptMgr if we're reloading the configuration
|
||||||
sScriptMgr->OnAfterConfigLoad(reload);
|
sScriptMgr->OnAfterConfigLoad(reload);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,8 @@ enum WorldBoolConfigs
|
|||||||
CONFIG_QUEST_IGNORE_AUTO_ACCEPT,
|
CONFIG_QUEST_IGNORE_AUTO_ACCEPT,
|
||||||
CONFIG_QUEST_IGNORE_AUTO_COMPLETE,
|
CONFIG_QUEST_IGNORE_AUTO_COMPLETE,
|
||||||
CONFIG_WARDEN_ENABLED,
|
CONFIG_WARDEN_ENABLED,
|
||||||
|
CONFIG_ENABLE_CONTINENT_TRANSPORT,
|
||||||
|
CONFIG_ENABLE_CONTINENT_TRANSPORT_PRELOADING,
|
||||||
BOOL_CONFIG_VALUE_COUNT
|
BOOL_CONFIG_VALUE_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1450,6 +1450,27 @@ AccountInstancesPerHour = 5
|
|||||||
|
|
||||||
BirthdayTime = 1222964635
|
BirthdayTime = 1222964635
|
||||||
|
|
||||||
|
#
|
||||||
|
# IsContinentTransport.Enabled
|
||||||
|
# Description: Controls the continent transport (ships, zeppelins etc..)
|
||||||
|
# Default: 1 - (Enabled)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
IsContinentTransport.Enabled = 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# IsPreloadedContinentTransport.Enabled
|
||||||
|
# Description: Should we preload the transport?
|
||||||
|
# (Not recommended on low-end servers as it consumes 100% more ram)
|
||||||
|
# and it's not really necessary to be enabled.
|
||||||
|
#
|
||||||
|
# Default: 0 - (Disabled)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
IsPreloadedContinentTransport.Enabled = 0
|
||||||
|
|
||||||
#
|
#
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user