aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp4
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp6
-rw-r--r--src/server/game/DataStores/DBCStructure.h91
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp8
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp22
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp4
-rw-r--r--src/server/scripts/Commands/cs_go.cpp6
-rw-r--r--src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp4
8 files changed, 79 insertions, 66 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 7cadbe4d7fa..a749396ad79 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -2329,7 +2329,7 @@ bool AchievementMgr<T>::CanUpdateCriteria(AchievementCriteriaEntry const* criter
return false;
}
- if (achievement->InstanceID != -1 && referencePlayer->GetMapId() != uint32(achievement->InstanceID))
+ if (achievement->MapID != -1 && referencePlayer->GetMapId() != uint32(achievement->MapID))
{
TC_LOG_TRACE("achievement", "CanUpdateCriteria: %s (Id: %u Type %s) Wrong map",
criteria->name, criteria->ID, AchievementGlobalMgr::GetCriteriaTypeString(criteria->type));
@@ -3190,7 +3190,7 @@ void AchievementGlobalMgr::LoadAchievementReferenceList()
// Once Bitten, Twice Shy (10 player) - Icecrown Citadel
if (AchievementEntry const* achievement = sAchievementMgr->GetAchievement(4539))
- const_cast<AchievementEntry*>(achievement)->InstanceID = 631; // Correct map requirement (currently has Ulduar)
+ const_cast<AchievementEntry*>(achievement)->MapID = 631; // Correct map requirement (currently has Ulduar)
TC_LOG_INFO("server.loading", ">> Loaded %u achievement references in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
index d1bf2c18fac..a9647c5d384 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.cpp
@@ -510,9 +510,9 @@ bool BattlegroundEY::SetupBattleground()
TC_LOG_ERROR("bg.battleground", "BattlegroundEY: Unknown trigger: %u", m_Points_Trigger[i]);
continue;
}
- if (!AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3, Buff_Entries[0], at->Pos[0], at->Pos[1], at->Pos[2], 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
- || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3 + 1, Buff_Entries[1], at->Pos[0], at->Pos[1], at->Pos[2], 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
- || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3 + 2, Buff_Entries[2], at->Pos[0], at->Pos[1], at->Pos[2], 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
+ if (!AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3, Buff_Entries[0], at->Pos.X, at->Pos.Y, at->Pos.Z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
+ || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3 + 1, Buff_Entries[1], at->Pos.X, at->Pos.Y, at->Pos.Z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
+ || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3 + 2, Buff_Entries[2], at->Pos.X, at->Pos.Y, at->Pos.Z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)
)
TC_LOG_ERROR("bg.battleground", "BattlegroundEY: Cannot spawn buff");
}
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index ce0b591b403..df25d288ad8 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -38,11 +38,24 @@
#pragma pack(push, 1)
#endif
+struct DBCPosition2D
+{
+ float X;
+ float Y;
+};
+
+struct DBCPosition3D
+{
+ float X;
+ float Y;
+ float Z;
+};
+
struct AchievementEntry
{
uint32 ID; // 0
int32 Faction; // 1 -1=all, 0=horde, 1=alliance
- int32 InstanceID; // 2 MapID -1=none
+ int32 MapID; // 2 -1=none
//uint32 Supercedes; // 3 its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin)
char* Title_lang; // 4
//char* Description_lang; // 5
@@ -579,21 +592,21 @@ struct AreaGroupEntry
struct AreaTriggerEntry
{
- uint32 ID; // 0
- uint32 ContinentID; // 1 MapID
- float Pos[3]; // 2-4
- //uint32 PhaseUseFlags // 5
- //uint32 PhaseID // 6
- //uint32 PhaseGroupID // 7
- float Radius; // 8
- float BoxLength; // 9
- float BoxWidth; // 10
- float BoxHeight; // 11
- float BoxYaw; // 12
- //uint32 ShapeType // 13
- //uint32 ShapeID // 14
- //uint32 AreaTriggerActionSetID // 15
- //uint32 Flags // 16
+ uint32 ID; // 0
+ uint32 MapID; // 1
+ DBCPosition3D Pos; // 2-4
+ //uint32 PhaseUseFlags // 5
+ //uint32 PhaseID // 6
+ //uint32 PhaseGroupID // 7
+ float Radius; // 8
+ float BoxLength; // 9
+ float BoxWidth; // 10
+ float BoxHeight; // 11
+ float BoxYaw; // 12
+ //uint32 ShapeType // 13
+ //uint32 ShapeID // 14
+ //uint32 AreaTriggerActionSetID // 15
+ //uint32 Flags // 16
};
struct ArmorLocationEntry
@@ -1473,27 +1486,27 @@ struct MailTemplateEntry
struct MapEntry
{
- uint32 ID; // 0
- //char* Directory; // 1
- uint32 InstanceType; // 2
- uint32 Flags; // 3
- //uint32 MapType; // 4
- //uint32 unk5; // 5
- char* MapName_lang; // 6
- uint32 AreaTableID; // 7
- //char* MapDescription0_lang; // 8 Horde
- //char* MapDescription1_lang; // 9 Alliance
- uint32 LoadingScreenID; // 10 LoadingScreens.dbc
- //float MinimapIconScale; // 11
- int32 CorpseMapID; // 12 map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
- float Corpse[2]; // 13 entrance coordinates in ghost mode (in most cases = normal entrance)
- //uint32 TimeOfDayOverride; // 15
- uint32 ExpansionID; // 16
- uint32 RaidOffset; // 17
- uint32 MaxPlayers; // 18
- int32 ParentMapID; // 19 related to phasing
- //uint32 CosmeticParentMapID // 20
- //uint32 TimeOffset // 21
+ uint32 ID; // 0
+ //char* Directory; // 1
+ uint32 InstanceType; // 2
+ uint32 Flags; // 3
+ //uint32 MapType; // 4
+ //uint32 unk5; // 5
+ char* MapName_lang; // 6
+ uint32 AreaTableID; // 7
+ //char* MapDescription0_lang; // 8 Horde
+ //char* MapDescription1_lang; // 9 Alliance
+ uint32 LoadingScreenID; // 10 LoadingScreens.dbc
+ //float MinimapIconScale; // 11
+ int32 CorpseMapID; // 12 map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
+ DBCPosition2D CorpsePos; // 13 entrance coordinates in ghost mode (in most cases = normal entrance)
+ //uint32 TimeOfDayOverride; // 15
+ uint32 ExpansionID; // 16
+ uint32 RaidOffset; // 17
+ uint32 MaxPlayers; // 18
+ int32 ParentMapID; // 19 related to phasing
+ //uint32 CosmeticParentMapID // 20
+ //uint32 TimeOffset // 21
// Helpers
uint32 Expansion() const { return ExpansionID; }
@@ -1512,8 +1525,8 @@ struct MapEntry
if (CorpseMapID < 0)
return false;
mapid = CorpseMapID;
- x = Corpse[0];
- y = Corpse[1];
+ x = CorpsePos.X;
+ y = CorpsePos.Y;
return true;
}
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index e8905d7a006..a582f2b2afa 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6000,7 +6000,7 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
if (!mapEntry
|| mapEntry->CorpseMapID < 0
|| uint32(mapEntry->CorpseMapID) != entry->map_id
- || (mapEntry->Corpse[0] == 0 && mapEntry->Corpse[1] == 0)) // Check X and Y
+ || (mapEntry->CorpsePos.X == 0 && mapEntry->CorpsePos.Y == 0)) // Check X and Y
{
// not have any corrdinates for check distance anyway
entryFar = entry;
@@ -6008,8 +6008,8 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
}
// at entrance map calculate distance (2D);
- float dist2 = (entry->x - mapEntry->Corpse[0])*(entry->x - mapEntry->Corpse[0])
- +(entry->y - mapEntry->Corpse[1])*(entry->y - mapEntry->Corpse[1]);
+ float dist2 = (entry->x - mapEntry->CorpsePos.X)*(entry->x - mapEntry->CorpsePos.X)
+ +(entry->y - mapEntry->CorpsePos.Y)*(entry->y - mapEntry->CorpsePos.Y);
if (foundEntr)
{
if (dist2 < distEntr)
@@ -6320,7 +6320,7 @@ AreaTriggerStruct const* ObjectMgr::GetGoBackTrigger(uint32 Map) const
if ((!useParentDbValue && itr->second.target_mapId == entrance_map) || (useParentDbValue && itr->second.target_mapId == parentId))
{
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(itr->first);
- if (atEntry && atEntry->ContinentID == Map)
+ if (atEntry && atEntry->MapID == Map)
return &itr->second;
}
return NULL;
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 7e7b5aa1ab5..455f003e5df 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -867,10 +867,10 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
return;
}
- if (player->GetMapId() != atEntry->ContinentID)
+ if (player->GetMapId() != atEntry->MapID)
{
TC_LOG_DEBUG("network", "HandleAreaTriggerOpcode: Player '%s' (%s) too far (trigger map: %u player map: %u), ignore Area Trigger ID: %u",
- player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->ContinentID, player->GetMapId(), triggerId);
+ player->GetName().c_str(), player->GetGUID().ToString().c_str(), atEntry->MapID, player->GetMapId(), triggerId);
return;
}
@@ -880,7 +880,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
if (atEntry->Radius > 0)
{
// if we have radius check it
- float dist = player->GetDistance(atEntry->Pos[0], atEntry->Pos[1], atEntry->Pos[2]);
+ float dist = player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z);
if (dist > atEntry->Radius + delta)
{
TC_LOG_DEBUG("network", "HandleAreaTriggerOpcode: Player '%s' (%s) too far (radius: %f distance: %f), ignore Area Trigger ID: %u",
@@ -900,16 +900,16 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
double sinVal = std::sin(rotation);
double cosVal = std::cos(rotation);
- float playerBoxDistX = player->GetPositionX() - atEntry->Pos[0];
- float playerBoxDistY = player->GetPositionY() - atEntry->Pos[1];
+ float playerBoxDistX = player->GetPositionX() - atEntry->Pos.X;
+ float playerBoxDistY = player->GetPositionY() - atEntry->Pos.Y;
- float rotPlayerX = float(atEntry->Pos[0] + playerBoxDistX * cosVal - playerBoxDistY*sinVal);
- float rotPlayerY = float(atEntry->Pos[1] + playerBoxDistY * cosVal + playerBoxDistX*sinVal);
+ float rotPlayerX = float(atEntry->Pos.X + playerBoxDistX * cosVal - playerBoxDistY*sinVal);
+ float rotPlayerY = float(atEntry->Pos.Y + playerBoxDistY * cosVal + playerBoxDistX*sinVal);
// box edges are parallel to coordiante axis, so we can treat every dimension independently :D
- float dz = player->GetPositionZ() - atEntry->Pos[2];
- float dx = rotPlayerX - atEntry->Pos[0];
- float dy = rotPlayerY - atEntry->Pos[1];
+ float dz = player->GetPositionZ() - atEntry->Pos.Z;
+ float dx = rotPlayerX - atEntry->Pos.X;
+ float dy = rotPlayerY - atEntry->Pos.Y;
if ((std::fabs(dx) > atEntry->BoxLength / 2 + delta) ||
(std::fabs(dy) > atEntry->BoxWidth / 2 + delta) ||
(std::fabs(dz) > atEntry->BoxHeight / 2 + delta))
@@ -935,7 +935,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recvData)
{
// set resting flag we are in the inn
player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING);
- player->InnEnter(time(NULL), atEntry->ContinentID, atEntry->Pos[0], atEntry->Pos[1], atEntry->Pos[2]);
+ player->InnEnter(time(NULL), atEntry->MapID, atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z);
player->SetRestType(REST_TYPE_IN_TAVERN);
if (sWorld->IsFFAPvPRealm())
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index d58aea3bfe9..2d7d18858cd 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -258,8 +258,8 @@ void WorldSession::HandleCorpseQueryOpcode(WorldPacket& /*recvData*/)
if (Map const* entranceMap = sMapMgr->CreateBaseMap(corpseMapEntry->CorpseMapID))
{
mapid = corpseMapEntry->CorpseMapID;
- x = corpseMapEntry->Corpse[0];
- y = corpseMapEntry->Corpse[1];
+ x = corpseMapEntry->CorpsePos.X;
+ y = corpseMapEntry->CorpsePos.Y;
z = entranceMap->GetHeight(GetPlayer()->GetPhaseMask(), x, y, MAX_HEIGHT);
}
}
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 9b367bab6a0..c1f4f027c60 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -391,9 +391,9 @@ public:
return false;
}
- if (!MapManager::IsValidMapCoord(at->ContinentID, at->Pos[0], at->Pos[1], at->Pos[2]))
+ if (!MapManager::IsValidMapCoord(at->MapID, at->Pos.X, at->Pos.Y, at->Pos.Z))
{
- handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, at->Pos[0], at->Pos[1], at->ContinentID);
+ handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, at->Pos.X, at->Pos.Y, at->MapID);
handler->SetSentErrorMessage(true);
return false;
}
@@ -408,7 +408,7 @@ public:
else
player->SaveRecallPosition();
- player->TeleportTo(at->ContinentID, at->Pos[0], at->Pos[1], at->Pos[2], player->GetOrientation());
+ player->TeleportTo(at->MapID, at->Pos.X, at->Pos.Y, at->Pos.Z, player->GetOrientation());
return true;
}
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
index 3ced2ee0b90..4a99ced5d55 100644
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
@@ -155,7 +155,7 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId)
if (atEntry)
{
// 5.0f is safe-distance
- if (player->GetDistance(atEntry->Pos[0], atEntry->Pos[1], atEntry->Pos[2]) > 5.0f + atEntry->Radius)
+ if (player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z) > 5.0f + atEntry->Radius)
{
// he dropped it further, summon mound
GameObject* go = new GameObject;
@@ -192,7 +192,7 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId)
if (atEntry)
{
// 5.0f is safe-distance
- if (player->GetDistance(atEntry->Pos[0], atEntry->Pos[1], atEntry->Pos[2]) > 5.0f + atEntry->Radius)
+ if (player->GetDistance(atEntry->Pos.X, atEntry->Pos.Y, atEntry->Pos.Z) > 5.0f + atEntry->Radius)
{
// he dropped it further, summon mound
GameObject* go = new GameObject;