This commit is contained in:
talamortis
2018-07-29 23:09:07 +01:00
5 changed files with 74 additions and 40 deletions

View File

@@ -23,7 +23,7 @@ We also believe in [software modularity](https://en.wikipedia.org/wiki/Modular_p
## Learning project
AzerothCore is a learning project.
If you want to learn how to use C++, SQL, git, etc... you came to the right place! We will gladly to help you: **programming is our passion**.
If you want to learn how to use C++, SQL, git, etc... you came to the right place! We will gladly help you: **programming is our passion**.
If you want to contribute, in [our wiki](https://github.com/azerothcore/azerothcore-wotlk/wiki) you fill find a lot of resources that will guide you. Also you can poke us in [our discord chat server](https://discord.gg/gkt4y2x).

View File

@@ -403,52 +403,60 @@ void TransportMgr::SpawnContinentTransports()
if (_transportTemplates.empty())
return;
uint32 oldMSTime = getMSTime();
QueryResult result = WorldDatabase.Query("SELECT guid, entry FROM transports");
uint32 count = 0;
if (result)
{
do
{
Field* fields = result->Fetch();
uint32 guid = fields[0].GetUInt32();
uint32 entry = fields[1].GetUInt32();
if (TransportTemplate const* tInfo = GetTransportTemplate(entry))
if (!tInfo->inInstance)
if (CreateTransport(entry, guid))
++count;
} while (result->NextRow());
}
sLog->outString(">> Spawned %u continent motion transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
// pussywizard: preload grids for continent static transports
uint32 oldMSTime, count = 0;
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)
QueryResult result;
if (sWorld->getBoolConfig(CONFIG_ENABLE_CONTINENT_TRANSPORT))
{
do
result = WorldDatabase.Query("SELECT guid, entry FROM transports");
if (result)
{
Field* fields = result->Fetch();
uint16 mapId = fields[0].GetUInt16();
float x = fields[1].GetFloat();
float y = fields[2].GetFloat();
do
{
Field* fields = result->Fetch();
uint32 guid = fields[0].GetUInt32();
uint32 entry = fields[1].GetUInt32();
MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
if (mapEntry && !mapEntry->Instanceable())
if (Map* map = sMapMgr->CreateBaseMap(mapId))
if (TransportTemplate const* tInfo = GetTransportTemplate(entry))
if (!tInfo->inInstance)
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
{
map->LoadGrid(x, y);
++count;
}
Field* fields = result->Fetch();
uint16 mapId = fields[0].GetUInt16();
float x = fields[1].GetFloat();
float y = fields[2].GetFloat();
} while (result->NextRow());
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));
}
}
sLog->outString(">> Preloaded grids for %u continent static transports in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
void TransportMgr::CreateInstanceTransports(Map* map)

View File

@@ -1300,6 +1300,9 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_BIRTHDAY_TIME] = sConfigMgr->GetIntDefault("BirthdayTime", 1222964635);
m_bool_configs[CONFIG_MINIGOB_MANABONK] = sConfigMgr->GetBoolDefault("Minigob.Manabonk.Enable", true);
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
sScriptMgr->OnAfterConfigLoad(reload);
}

View File

@@ -158,6 +158,8 @@ enum WorldBoolConfigs
CONFIG_QUEST_IGNORE_AUTO_ACCEPT,
CONFIG_QUEST_IGNORE_AUTO_COMPLETE,
CONFIG_WARDEN_ENABLED,
CONFIG_ENABLE_CONTINENT_TRANSPORT,
CONFIG_ENABLE_CONTINENT_TRANSPORT_PRELOADING,
BOOL_CONFIG_VALUE_COUNT
};

View File

@@ -1450,6 +1450,27 @@ AccountInstancesPerHour = 5
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
#
###################################################################################################