diff options
| author | Naios <naios-dev@live.de> | 2016-03-11 16:37:14 +0100 |
|---|---|---|
| committer | Naios <naios-dev@live.de> | 2016-03-24 01:31:51 +0100 |
| commit | bf33159a7009f64a78cf2a1309eb5182fcd3f7e3 (patch) | |
| tree | 69396ea652eed2d43002600577e7b6c7c070581f /src/server/game/Entities/Object | |
| parent | 25b0e743b1a823b636ffc1ba17062f8d5ebe35ab (diff) | |
Core/Game: Converted the game library to a shared library.
* There is still the possibility to static link against game.
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.cpp | 26 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/ObjectGuid.h | 24 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/ObjectPosSelector.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Position.h | 16 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateFieldFlags.h | 24 |
6 files changed, 62 insertions, 36 deletions
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 4d54de20277..e3f22a41275 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -92,7 +92,7 @@ class ZoneScript; typedef std::unordered_map<Player*, UpdateData> UpdateDataMapType; -class Object +class TC_GAME_API Object { public: virtual ~Object(); @@ -395,7 +395,7 @@ enum MapObjectCellMoveState MAP_OBJECT_CELL_MOVE_INACTIVE, //in move list but should not move }; -class MapObject +class TC_GAME_API MapObject { friend class Map; //map for moving creatures friend class ObjectGridLoader; //grid loader for loading creatures @@ -420,7 +420,7 @@ class MapObject } }; -class WorldObject : public Object, public WorldLocation +class TC_GAME_API WorldObject : public Object, public WorldLocation { protected: explicit WorldObject(bool isWorldObject); //note: here it means if it is in grid object list or world object list diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp index 5d7c19d48e7..6d063a901bd 100644 --- a/src/server/game/Entities/Object/ObjectGuid.cpp +++ b/src/server/game/Entities/Object/ObjectGuid.cpp @@ -177,3 +177,29 @@ void ObjectGuidGeneratorBase::HandleCounterOverflow(HighGuid high) TC_LOG_ERROR("misc", "%s guid overflow!! Can't continue, shutting down server. ", ObjectGuid::GetTypeName(high)); World::StopNow(ERROR_EXIT_CODE); } + +#define GUID_TRAIT_INSTANTIATE_GUID( HIGH_GUID ) \ + template class TC_GAME_API ObjectGuidGenerator< HIGH_GUID >; + +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Player) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Item) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Transport) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Guild) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Conversation) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Creature) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Vehicle) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Pet) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::GameObject) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::DynamicObject) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::AreaTrigger) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Corpse) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::LootObject) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::SceneObject) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Scenario) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::AIGroup) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::DynamicDoor) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::Vignette) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::CallForHelp) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::AIResource) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::AILock) +GUID_TRAIT_INSTANTIATE_GUID(HighGuid::AILockTicket) diff --git a/src/server/game/Entities/Object/ObjectGuid.h b/src/server/game/Entities/Object/ObjectGuid.h index def19abca78..8bc2ee4df28 100644 --- a/src/server/game/Entities/Object/ObjectGuid.h +++ b/src/server/game/Entities/Object/ObjectGuid.h @@ -180,11 +180,11 @@ class PackedGuid; #pragma pack(push, 1) -class ObjectGuid +class TC_GAME_API ObjectGuid { - friend std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid); - friend ByteBuffer& operator<<(ByteBuffer& buf, ObjectGuid const& guid); - friend ByteBuffer& operator>>(ByteBuffer& buf, ObjectGuid& guid); + friend TC_GAME_API std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid); + friend TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, ObjectGuid const& guid); + friend TC_GAME_API ByteBuffer& operator>>(ByteBuffer& buf, ObjectGuid& guid); public: static ObjectGuid const Empty; @@ -332,9 +332,9 @@ typedef std::unordered_set<ObjectGuid> GuidUnorderedSet; // maximum buffer size for packed guid is 18 bytes #define PACKED_GUID_MIN_BUFFER_SIZE 18 -class PackedGuid +class TC_GAME_API PackedGuid { - friend ByteBuffer& operator<<(ByteBuffer& buf, PackedGuid const& guid); + friend TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, PackedGuid const& guid); public: explicit PackedGuid() : _packedGuid(PACKED_GUID_MIN_BUFFER_SIZE) { _packedGuid << uint16(0); } @@ -348,7 +348,7 @@ class PackedGuid ByteBuffer _packedGuid; }; -class ObjectGuidGeneratorBase +class TC_GAME_API ObjectGuidGeneratorBase { public: ObjectGuidGeneratorBase(ObjectGuid::LowType start = UI64LIT(1)) : _nextGuid(start) { } @@ -363,7 +363,7 @@ protected: }; template<HighGuid high> -class ObjectGuidGenerator : public ObjectGuidGeneratorBase +class TC_GAME_API ObjectGuidGenerator : public ObjectGuidGeneratorBase { public: explicit ObjectGuidGenerator(ObjectGuid::LowType start = UI64LIT(1)) : ObjectGuidGeneratorBase(start) { } @@ -376,12 +376,12 @@ public: } }; -ByteBuffer& operator<<(ByteBuffer& buf, ObjectGuid const& guid); -ByteBuffer& operator>>(ByteBuffer& buf, ObjectGuid& guid); +TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, ObjectGuid const& guid); +TC_GAME_API ByteBuffer& operator>>(ByteBuffer& buf, ObjectGuid& guid); -ByteBuffer& operator<<(ByteBuffer& buf, PackedGuid const& guid); +TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, PackedGuid const& guid); -std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid); +TC_GAME_API std::ostream& operator<<(std::ostream& stream, ObjectGuid const& guid); namespace std { diff --git a/src/server/game/Entities/Object/ObjectPosSelector.h b/src/server/game/Entities/Object/ObjectPosSelector.h index 26a23678009..84c694abf08 100644 --- a/src/server/game/Entities/Object/ObjectPosSelector.h +++ b/src/server/game/Entities/Object/ObjectPosSelector.h @@ -30,7 +30,7 @@ inline UsedPosType operator ~(UsedPosType uptype) return uptype==USED_POS_PLUS ? USED_POS_MINUS : USED_POS_PLUS; } -struct ObjectPosSelector +struct TC_GAME_API ObjectPosSelector { struct UsedPos { diff --git a/src/server/game/Entities/Object/Position.h b/src/server/game/Entities/Object/Position.h index cc528b973f8..a941a2141f1 100644 --- a/src/server/game/Entities/Object/Position.h +++ b/src/server/game/Entities/Object/Position.h @@ -24,7 +24,7 @@ class ByteBuffer; -struct Position +struct TC_GAME_API Position { Position(float x = 0, float y = 0, float z = 0, float o = 0) : m_positionX(x), m_positionY(y), m_positionZ(z), m_orientation(NormalizeOrientation(o)) { } @@ -225,7 +225,7 @@ public: #define MAPID_INVALID 0xFFFFFFFF -class WorldLocation : public Position +class TC_GAME_API WorldLocation : public Position { public: explicit WorldLocation(uint32 mapId = MAPID_INVALID, float x = 0.f, float y = 0.f, float z = 0.f, float o = 0.f) @@ -256,11 +256,11 @@ public: uint32 m_mapId; }; -ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYStreamer const& streamer); -ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYStreamer const& streamer); -ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYZStreamer const& streamer); -ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYZStreamer const& streamer); -ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYZOStreamer const& streamer); -ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYZOStreamer const& streamer); +TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYStreamer const& streamer); +TC_GAME_API ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYStreamer const& streamer); +TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYZStreamer const& streamer); +TC_GAME_API ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYZStreamer const& streamer); +TC_GAME_API ByteBuffer& operator<<(ByteBuffer& buf, Position::PositionXYZOStreamer const& streamer); +TC_GAME_API ByteBuffer& operator>>(ByteBuffer& buf, Position::PositionXYZOStreamer const& streamer); #endif // Trinity_game_Position_h__ diff --git a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h index 6d0d2fecca5..046916ea9d1 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h +++ b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.h @@ -37,17 +37,17 @@ enum UpdatefieldFlags UF_FLAG_URGENT_SELF_ONLY = 0x400 }; -extern uint32 ItemUpdateFieldFlags[CONTAINER_END]; -extern uint32 ItemDynamicUpdateFieldFlags[CONTAINER_DYNAMIC_END]; -extern uint32 UnitUpdateFieldFlags[PLAYER_END]; -extern uint32 UnitDynamicUpdateFieldFlags[PLAYER_DYNAMIC_END]; -extern uint32 GameObjectUpdateFieldFlags[GAMEOBJECT_END]; -extern uint32 GameObjectDynamicUpdateFieldFlags[GAMEOBJECT_DYNAMIC_END]; -extern uint32 DynamicObjectUpdateFieldFlags[DYNAMICOBJECT_END]; -extern uint32 CorpseUpdateFieldFlags[CORPSE_END]; -extern uint32 AreaTriggerUpdateFieldFlags[AREATRIGGER_END]; -extern uint32 SceneObjectUpdateFieldFlags[SCENEOBJECT_END]; -extern uint32 ConversationUpdateFieldFlags[CONVERSATION_END]; -extern uint32 ConversationDynamicUpdateFieldFlags[CONVERSATION_DYNAMIC_END]; +TC_GAME_API extern uint32 ItemUpdateFieldFlags[CONTAINER_END]; +TC_GAME_API extern uint32 ItemDynamicUpdateFieldFlags[CONTAINER_DYNAMIC_END]; +TC_GAME_API extern uint32 UnitUpdateFieldFlags[PLAYER_END]; +TC_GAME_API extern uint32 UnitDynamicUpdateFieldFlags[PLAYER_DYNAMIC_END]; +TC_GAME_API extern uint32 GameObjectUpdateFieldFlags[GAMEOBJECT_END]; +TC_GAME_API extern uint32 GameObjectDynamicUpdateFieldFlags[GAMEOBJECT_DYNAMIC_END]; +TC_GAME_API extern uint32 DynamicObjectUpdateFieldFlags[DYNAMICOBJECT_END]; +TC_GAME_API extern uint32 CorpseUpdateFieldFlags[CORPSE_END]; +TC_GAME_API extern uint32 AreaTriggerUpdateFieldFlags[AREATRIGGER_END]; +TC_GAME_API extern uint32 SceneObjectUpdateFieldFlags[SCENEOBJECT_END]; +TC_GAME_API extern uint32 ConversationUpdateFieldFlags[CONVERSATION_END]; +TC_GAME_API extern uint32 ConversationDynamicUpdateFieldFlags[CONVERSATION_DYNAMIC_END]; #endif // _UPDATEFIELDFLAGS_H |
