Error:
/opt/WoW/Core/335/TrinityCore/src/server/game/Entities/Transport/Transport.cpp:32: error: no Transport MapManager::LoadTransportInMap(Map*, uint32, uint32) member function declared in class MapManager
/opt/WoW/Core/335/TrinityCore/src/server/game/Entities/Transport/Transport.cpp:69: error: no void MapManager::UnLoadTransportFromMap(Transport*) member function declared in class MapManager
/opt/WoW/Core/335/TrinityCore/src/server/game/Entities/Transport/Transport.cpp:101: error: no void MapManager::LoadTransportForPlayers(Player*) member function declared in class MapManager
/opt/WoW/Core/335/TrinityCore/src/server/game/Entities/Transport/Transport.cpp:119: error: no void MapManager::UnLoadTransportForPlayers(Player*) member function declared in class MapManager
Files as attachement…
Transport.h
Transport.cpp
PatchFile:
[SPOILER]
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index f52d005…8ee2f85 100755
— a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -26,6 +26,123 @@
#include “DBCStores.h”
#include “World.h”
#include “GameObjectAI.h”
+#include “Vehicle.h”
+
+Transport* MapManager::LoadTransportInMap(Map* instance, uint32 goEntry, uint32 period)
+{
- const GameObjectTemplate* goInfo = sObjectMgr->GetGameObjectTemplate(goEntry);
- if (!goInfo)
- {
- return NULL;
- }
- if (goInfo->type != GAMEOBJECT_TYPE_MO_TRANSPORT)
- {
- return NULL;
- }
- Transport* t = new Transport(period, goInfo->ScriptId);
- std::set mapsUsed;
- if (!t->GenerateWaypoints(goInfo->moTransport.taxiPathId, mapsUsed))
- {
- delete t;
- return NULL;
- }
- uint32 transportLowGuid = sObjectMgr->GenerateLowGuid(HIGHGUID_MO_TRANSPORT);
- if (!t->Create(transportLowGuid, goEntry, t->m_WayPoints[0].mapid, t->m_WayPoints[0].x, t->m_WayPoints[0].y, t->m_WayPoints[0].z-10, 0.0f, 0, 0))
- {
- delete t;
- return NULL;
- }
- m_Transports.insert(t);
- m_TransportsByInstanceIdMap[instance->GetInstanceId()].insert(t);
- t->SetMap(instance);
- t->AddToWorld();
- return t;
+}
+void MapManager::UnLoadTransportFromMap(Transport* t)
+{
- Map* map = t->GetMap();
- for (Transport::CreatureSet::iterator itr = t->m_NPCPassengerSet.begin(); itr != t->m_NPCPassengerSet.end() /emoticons/default_wink.png
- {
- if (Creature* npc = *itr)
- {
- npc->SetTransport(NULL);
- npc->setActive(false);
- npc->RemoveFromWorld();
- }
- ++itr;
- }
- UpdateData transData;
- t->BuildOutOfRangeUpdateBlock(&transData);
- WorldPacket out_packet;
- transData.BuildPacket(&out_packet);
- for (Map::PlayerList::const_iterator itr = map->GetPlayers().begin(); itr != map->GetPlayers().end(); ++itr)
- if (t != itr->getSource()->GetTransport())
- itr->getSource()->SendDirectMessage(&out_packet);
- t->m_NPCPassengerSet.clear();
- m_TransportsByInstanceIdMap[t->GetInstanceId()].erase(t);
- m_Transports.erase(t);
- t->m_WayPoints.clear();
- t->RemoveFromWorld();
+}
+
+void MapManager::LoadTransportForPlayers(Player* player)
+{
- MapManager::TransportMap& tmap = sMapMgr->m_TransportsByInstanceIdMap;
- UpdateData transData;
- MapManager::TransportSet& tset = tmap[player->GetInstanceId()];
- for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i)
- {
- (*i)->BuildCreateUpdateBlockForPlayer(&transData, player);
- }
- WorldPacket packet;
- transData.BuildPacket(&packet);
- player->SendDirectMessage(&packet);
+}
+void MapManager::UnLoadTransportForPlayers(Player* player)
+{
- MapManager::TransportMap& tmap = sMapMgr->m_TransportsByInstanceIdMap;
- UpdateData transData;
- MapManager::TransportSet& tset = tmap[player->GetInstanceId()];
- for (MapManager::TransportSet::const_iterator i = tset.begin(); i != tset.end(); ++i)
- {
- for (Transport::CreatureSet::iterator itr = (*i)->m_NPCPassengerSet.begin(); itr != (*i)->m_NPCPassengerSet.end() /emoticons/default_wink.png
- {
- if (Creature* npc = *itr)
- {
- npc->SetTransport(NULL);
- npc->setActive(false);
- npc->RemoveFromWorld();
- }
- ++itr;
- }
- (*i)->BuildOutOfRangeUpdateBlock(&transData);
- }
- WorldPacket packet;
- transData.BuildPacket(&packet);
- player->SendDirectMessage(&packet);
+}
void MapManager::LoadTransports()
{
@@ -84,8 +201,8 @@ void MapManager::LoadTransports()
uint32 mapid = t->m_WayPoints[0].mapid;
float o = 1.0f;
- // creates the Gameobject
- if (!t->Create(lowguid, entry, mapid, x, y, z, o, 255, 0))
- // creates the Gameobject – Gunship
- if (!t->Create(lowguid, entry, mapid, x, y, z, o, 100, 0))
{
delete t;
continue;
@@ -213,7 +330,8 @@ bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, floa
SetObjectScale(goinfo->size);
SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);
- SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);
- //SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags); – gunship
- SetUInt32Value(GAMEOBJECT_FLAGS, MAKE_PAIR32(0x28, 0x64));
SetUInt32Value(GAMEOBJECT_LEVEL, m_period);
SetEntry(goinfo->entry);
@@ -553,6 +671,8 @@ void Transport::Update(uint32 p_diff)
{
Relocate(m_curr->second.x, m_curr->second.y, m_curr->second.z, GetAngle(m_next->second.x, m_next->second.y) + float(M_PI));
UpdateNPCPositions(); // COME BACK MARKER
- // This forces the server to update positions in transportation for players – gunship
- UpdatePlayerPositions();
}
sScriptMgr->OnRelocate(this, m_curr->first, m_curr->second.mapid, m_curr->second.x, m_curr->second.y, m_curr->second.z);
@@ -672,10 +792,49 @@ uint32 Transport::AddNPCPassenger(uint32 tguid, uint32 entry, float x, float y,
else
currenttguid = std::max(tguid, currenttguid);
- creature->setActive(true);
creature->SetGUIDTransport(tguid);
sScriptMgr->OnAddCreaturePassenger(this, creature);
return tguid;
}
+// gunship data
+Creature* Transport::AddNPCPassengerInInstance(uint32 entry, float x, float y, float z, float o, uint32 anim)
+{ - Map* map = GetMap();
- Creature* creature = new Creature;
- if (!creature->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_UNIT), map, GetPhaseMask(), entry, 0, GetGOInfo()->faction, 0, 0, 0, 0))
- {
- delete creature;
- return 0;
- }
- creature->SetTransport(this);
- creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT);
- creature->m_movementInfo.guid = GetGUID();
- creature->m_movementInfo.t_pos.Relocate(x, y, z, o);
- creature->Relocate(
- GetPositionX() + (x * cos(GetOrientation()) + y * sin(GetOrientation() + float(M_PI))),
- GetPositionY() + (y * cos(GetOrientation()) + x * sin(GetOrientation())),
- z + GetPositionZ(),
- o + GetOrientation());
- creature->SetHomePosition(creature->GetPositionX(), creature->GetPositionY(), creature->GetPositionZ(), creature->GetOrientation());
- if (!creature->IsPositionValid())
- {
- delete creature;
- return 0;
- }
- map->AddToMap(creature);
- m_NPCPassengerSet.insert(creature);
- creature->setActive(true);
- sScriptMgr->OnAddCreaturePassenger(this, creature);
- return creature;
+}
void Transport::UpdatePosition(MovementInfo* mi)
{
@@ -686,6 +845,7 @@ void Transport::UpdatePosition(MovementInfo* mi)
Relocate(transport_x, transport_y, transport_z, transport_o);
UpdateNPCPositions();
- UpdatePlayerPositions();
}
void Transport::UpdateNPCPositions()
@@ -703,6 +863,25 @@ void Transport::UpdateNPCPositions()
npc->SetHomePosition(x, y, z, o);
}
}
+// gunship Data
+void Transport::UpdatePlayerPositions()
+{
- for (PlayerSet::iterator itr = m_passengers.begin(); itr != m_passengers.end(); ++itr)
- {
- Player* plr = *itr;
- float x, y, z, o;
- o = GetOrientation() + plr->m_movementInfo.t_pos.m_orientation;
- x = GetPositionX() + (plr->m_movementInfo.t_pos.m_positionX * cos(GetOrientation()) + plr->m_movementInfo.t_pos.m_positionY * sin(GetOrientation() + M_PI));
- y = GetPositionY() + (plr->m_movementInfo.t_pos.m_positionY * cos(GetOrientation()) + plr->m_movementInfo.t_pos.m_positionX * sin(GetOrientation()));
- z = GetPositionZ() + plr->m_movementInfo.t_pos.m_positionZ;
- plr->Relocate(x, y, z, o);
- UpdateData transData;
- WorldPacket packet;
- transData.BuildPacket(&packet);
- plr->SendDirectMessage(&packet);
- }
+}
void Transport::CalculatePassengerPosition(float& x, float& y, float& z, float& o)
{
warning: LF will be replaced by CRLF in src/server/game/Entities/Transport/Transport.cpp.
The file will have its original line endings in your working directory.
diff --git a/src/server/game/Entities/Transport/Transport.h b/src/server/game/Entities/Transport/Transport.h
index 8fd12b5…04c4716 100755
— a/src/server/game/Entities/Transport/Transport.h
+++ b/src/server/game/Entities/Transport/Transport.h
@@ -46,8 +46,10 @@ class Transport : public GameObject, public TransportBase
typedef std::set CreatureSet;
CreatureSet m_NPCPassengerSet;
uint32 AddNPCPassenger(uint32 tguid, uint32 entry, float x, float y, float z, float o, uint32 anim=0);
- Creature* AddNPCPassengerInInstance(uint32 entry, float x, float y, float z, float o, uint32 anim=0);
void UpdatePosition(MovementInfo* mi);
void UpdateNPCPositions(); - void UpdatePlayerPositions();
/// This method transforms supplied transport offsets into global coordinates
void CalculatePassengerPosition(float& x, float& y, float& z, float& o);
@@ -95,10 +97,9 @@ class Transport : public GameObject, public TransportBase
uint32 m_nextNodeTime;
private:
- void TeleportTransport(uint32 newMapid, float x, float y, float z);
- void UpdateForMap(Map const* map);
- void TeleportTransport(uint32 newMapid, float x, float y, float z);
- void UpdateForMap(Map const* map);
void DoEventIfAny(WayPointMap::value_type const& node, bool departure);
WayPointMap::const_iterator GetNextWayPoint();
};
#endif
warning: LF will be replaced by CRLF in src/server/game/Entities/Transport/Transport.h.
The file will have its original line endings in your working directory.[/SPOILER]*>
Anyone can help Fix it ?