aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/bnetserver/Packets/BitStream.h26
-rw-r--r--src/server/game/DataStores/DBCStructure.h11
-rw-r--r--src/server/game/Entities/Creature/Creature.h10
-rw-r--r--src/server/game/Globals/ObjectMgr.h10
-rw-r--r--src/server/game/Maps/Map.h9
-rw-r--r--src/server/game/Movement/Spline/MoveSplineFlag.h8
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h8
-rw-r--r--src/server/game/Warden/Warden.h8
-rw-r--r--src/server/game/Warden/WardenWin.h8
-rw-r--r--src/server/shared/Common.h8
-rw-r--r--src/server/shared/Database/Field.h8
11 files changed, 22 insertions, 92 deletions
diff --git a/src/server/bnetserver/Packets/BitStream.h b/src/server/bnetserver/Packets/BitStream.h
index f780a4dd867..432f0243149 100644
--- a/src/server/bnetserver/Packets/BitStream.h
+++ b/src/server/bnetserver/Packets/BitStream.h
@@ -28,6 +28,12 @@
namespace Battlenet
{
+ union FloatToInt
+ {
+ float AsFloat;
+ uint32 AsInt;
+ };
+
class BitStreamPositionException : public std::exception
{
static uint32 const MessageSize = 128;
@@ -102,8 +108,14 @@ namespace Battlenet
float ReadFloat()
{
- uint32 val = Read<uint32>(32);
- return *reinterpret_cast<float*>(&val);
+ union
+ {
+ float AsFloat;
+ uint32 AsInt;
+ } convert;
+
+ convert.AsInt = Read<uint32>(32);
+ return convert.AsFloat;
}
std::string ReadFourCC()
@@ -167,8 +179,14 @@ namespace Battlenet
void WriteFloat(float value)
{
- uint32 intVal = *reinterpret_cast<uint32*>(&value);
- Write(intVal, 32);
+ union
+ {
+ float AsFloat;
+ uint32 AsInt;
+ } convert;
+
+ convert.AsFloat = value;
+ Write(convert.AsInt, 32);
}
void WriteFourCC(std::string const& fcc)
diff --git a/src/server/game/DataStores/DBCStructure.h b/src/server/game/DataStores/DBCStructure.h
index fd6047a8adf..848fb5052b2 100644
--- a/src/server/game/DataStores/DBCStructure.h
+++ b/src/server/game/DataStores/DBCStructure.h
@@ -29,13 +29,7 @@
#include <vector>
// Structures using to access raw DBC data and required packing to portability
-
-// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct AchievementEntry
{
@@ -2058,12 +2052,7 @@ struct WorldStateUI
};
*/
-// GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
struct VectorArray
{
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index f9496a05cf4..fe72b67b1fe 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -209,12 +209,7 @@ typedef std::unordered_map<uint32, CreatureQuestItemList> CreatureQuestItemMap;
// Benchmarked: Faster than std::map (insert/find)
typedef std::unordered_map<uint32, CreatureTemplate> CreatureTemplateContainer;
-// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
// Defines base stats for creatures (used to calculate HP/mana/armor/attackpower/rangedattackpower/all damage).
struct CreatureBaseStats
@@ -349,12 +344,7 @@ enum ChatType
CHAT_TYPE_END = 255
};
-// GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
// `creature_addon` table
struct CreatureAddon
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index feee679a87b..b8e16ec1c4d 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -48,12 +48,7 @@ struct AccessRequirement;
struct PlayerInfo;
struct PlayerLevelInfo;
-// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct PageText
{
@@ -81,12 +76,7 @@ private:
uint8 _summonGroup; ///< Summon's group id
};
-// GCC have alternative #pragma pack() syntax and old gcc version not support pack(pop), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
// DB scripting commands
enum ScriptCommands
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index 752953091f8..1e6f6d45b80 100644
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -212,12 +212,7 @@ public:
ZLiquidStatus getLiquidStatus(float x, float y, float z, uint8 ReqLiquidType, LiquidData* data = 0);
};
-// GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push, N), also any gcc version not support it at some platform
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct InstanceTemplate
{
@@ -242,11 +237,7 @@ struct ZoneDynamicInfo
uint32 LightFadeInTime;
};
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
#define MAX_HEIGHT 100000.0f // can be use for find ground height at surface
#define INVALID_HEIGHT -100000.0f // for check, must be equal to VMAP_INVALID_HEIGHT, real value for unknown height is VMAP_INVALID_HEIGHT_VALUE
diff --git a/src/server/game/Movement/Spline/MoveSplineFlag.h b/src/server/game/Movement/Spline/MoveSplineFlag.h
index d93c19ff869..f50633205aa 100644
--- a/src/server/game/Movement/Spline/MoveSplineFlag.h
+++ b/src/server/game/Movement/Spline/MoveSplineFlag.h
@@ -23,11 +23,7 @@
namespace Movement
{
-#if defined( __GNUC__ )
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
class MoveSplineFlag
{
@@ -143,11 +139,7 @@ namespace Movement
bool unknown8 : 1;
bool unknown9 : 1;
};
-#if defined( __GNUC__ )
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
}
#endif // TRINITYSERVER_MOVESPLINEFLAG_H
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 4c1e631fe7a..a17fe288ce6 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -1685,11 +1685,7 @@ enum PacketProcessing
class WorldPacket;
class WorldSession;
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
class OpcodeHandler
{
@@ -1766,11 +1762,7 @@ class OpcodeTable
extern OpcodeTable opcodeTable;
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
void InitOpcodes();
diff --git a/src/server/game/Warden/Warden.h b/src/server/game/Warden/Warden.h
index 4d46773adcd..695c6730b27 100644
--- a/src/server/game/Warden/Warden.h
+++ b/src/server/game/Warden/Warden.h
@@ -57,11 +57,7 @@ enum WardenCheckType
MODULE_CHECK = 0xD9 // 217: uint Seed + byte[20] SHA1 (check to ensure module isn't injected)
};
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct WardenModuleUse
{
@@ -84,11 +80,7 @@ struct WardenHashRequest
uint8 Seed[16];
};
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
struct ClientWardenModule
{
diff --git a/src/server/game/Warden/WardenWin.h b/src/server/game/Warden/WardenWin.h
index 31d28b22e23..ab6ef7c8c65 100644
--- a/src/server/game/Warden/WardenWin.h
+++ b/src/server/game/Warden/WardenWin.h
@@ -25,11 +25,7 @@
#include "ByteBuffer.h"
#include "Warden.h"
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct WardenInitModuleRequest
{
@@ -61,11 +57,7 @@ struct WardenInitModuleRequest
uint8 Function3_set;
};
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
class WorldSession;
class Warden;
diff --git a/src/server/shared/Common.h b/src/server/shared/Common.h
index 11c9ad3b27f..8a1ccf6029a 100644
--- a/src/server/shared/Common.h
+++ b/src/server/shared/Common.h
@@ -133,22 +133,14 @@ LocaleConstant GetLocaleByName(const std::string& name);
typedef std::vector<std::string> StringVector;
-#if defined(__GNUC__)
-#pragma pack(1)
-#else
#pragma pack(push, 1)
-#endif
struct LocalizedString
{
char const* Str[TOTAL_LOCALES];
};
-#if defined(__GNUC__)
-#pragma pack()
-#else
#pragma pack(pop)
-#endif
// we always use stdlibc++ std::max/std::min, undefine some not C++ standard defines (Win API and some other platforms)
#ifdef max
diff --git a/src/server/shared/Database/Field.h b/src/server/shared/Database/Field.h
index c25e987808e..65d1c131e32 100644
--- a/src/server/shared/Database/Field.h
+++ b/src/server/shared/Database/Field.h
@@ -267,11 +267,7 @@ class Field
Field();
~Field();
- #if defined(__GNUC__)
- #pragma pack(1)
- #else
#pragma pack(push, 1)
- #endif
struct
{
uint32 length; // Length (prepared strings only)
@@ -279,11 +275,7 @@ class Field
enum_field_types type; // Field type
bool raw; // Raw bytes? (Prepared statement or ad hoc)
} data;
- #if defined(__GNUC__)
- #pragma pack()
- #else
#pragma pack(pop)
- #endif
void SetByteValue(void const* newValue, size_t const newSize, enum_field_types newType, uint32 length);
void SetStructuredValue(char* newValue, enum_field_types newType, uint32 length);