aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-11 16:17:37 -0600
committermegamage <none@none>2009-03-11 16:17:37 -0600
commit6e29ab4fbbb6b0fb0270d73120871ff5336d784f (patch)
tree7a3620ea5f9986f2cd3e0a262e7c7c808119cbf3 /src/game/Map.cpp
parent5286f2351f20b449921140d088b6eae6ef62a242 (diff)
[7440] Use server-side only zone info. Optimize related calles in case zone and subzone use. Author: VladimirMangos
This in some cases make some zones not explorable if it not have server side data in current maps but not allow cheating with zone set from client. --HG-- branch : trunk
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index ef9c6cdb5a7..06ca05dee81 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -1802,7 +1802,7 @@ float Map::GetWaterLevel(float x, float y ) const
return 0;
}
-uint32 Map::GetAreaId(uint16 areaflag,uint32 map_id)
+uint32 Map::GetAreaIdByAreaFlag(uint16 areaflag,uint32 map_id)
{
AreaTableEntry const *entry = GetAreaEntryByAreaFlagAndMap(areaflag,map_id);
@@ -1812,7 +1812,7 @@ uint32 Map::GetAreaId(uint16 areaflag,uint32 map_id)
return 0;
}
-uint32 Map::GetZoneId(uint16 areaflag,uint32 map_id)
+uint32 Map::GetZoneIdByAreaFlag(uint16 areaflag,uint32 map_id)
{
AreaTableEntry const *entry = GetAreaEntryByAreaFlagAndMap(areaflag,map_id);
@@ -1822,6 +1822,14 @@ uint32 Map::GetZoneId(uint16 areaflag,uint32 map_id)
return 0;
}
+void Map::GetZoneAndAreaIdByAreaFlag(uint32& zoneid, uint32& areaid, uint16 areaflag,uint32 map_id)
+{
+ AreaTableEntry const *entry = GetAreaEntryByAreaFlagAndMap(areaflag,map_id);
+
+ areaid = entry ? entry->ID : 0;
+ zoneid = entry ? (( entry->zone != 0 ) ? entry->zone : entry->ID) : 0;
+}
+
bool Map::IsInWater(float x, float y, float pZ) const
{
// Check surface in x, y point for liquid
@@ -2308,7 +2316,6 @@ bool InstanceMap::Add(Player *player)
// first player enters (no players yet)
SetResetSchedule(false);
- player->SendInitWorldStates();
sLog.outDetail("MAP: Player '%s' entered the instance '%u' of map '%s'", player->GetName(), GetInstanceId(), GetMapName());
// initialize unload state
m_unloadTimer = 0;