aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-09-13 17:24:37 +0100
committerNay <dnpd.dd@gmail.com>2012-09-13 17:24:37 +0100
commit528b9d4f7d11c71665bb7de9923c5167bfe0b6f4 (patch)
tree4917dae7b06d18dd9de7577cad5992ee9ee595f3 /src/server/shared
parented1ece2bb78d6e473872ff1691343295cd573309 (diff)
parentf03e650474463ad7454294e0fb5d6f169719ecbd (diff)
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts: src/server/game/Achievements/AchievementMgr.cpp src/server/game/DataStores/DBCStructure.h src/server/game/Entities/Item/ItemPrototype.h src/server/game/Globals/ObjectMgr.cpp src/server/game/Guilds/Guild.cpp src/server/game/Handlers/ItemHandler.cpp src/server/shared/Packets/ByteBuffer.h
Diffstat (limited to 'src/server/shared')
-rwxr-xr-xsrc/server/shared/Packets/ByteBuffer.h28
-rwxr-xr-xsrc/server/shared/Utilities/Util.h6
2 files changed, 28 insertions, 6 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index ee828b203b9..e1e0a62db01 100755
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -501,6 +501,28 @@ class ByteBuffer
append(str.c_str(), len);
}
+ uint32 ReadPackedTime()
+ {
+ uint32 packedDate = read<uint32>();
+ tm lt;
+ memset(&lt, 0, sizeof(lt));
+
+ lt.tm_min = packedDate & 0x3F;
+ lt.tm_hour = (packedDate >> 6) & 0x1F;
+ //lt.tm_wday = (packedDate >> 11) & 7;
+ lt.tm_mday = ((packedDate >> 14) & 0x3F) + 1;
+ lt.tm_mon = (packedDate >> 20) & 0xF;
+ lt.tm_year = ((packedDate >> 24) & 0x1F) + 100;
+
+ return mktime(&lt) + timezone;
+ }
+
+ ByteBuffer& ReadPackedTime(uint32& time)
+ {
+ time = ReadPackedTime();
+ return *this;
+ }
+
const uint8 *contents() const { return &_storage[0]; }
size_t size() const { return _storage.size(); }
@@ -580,6 +602,12 @@ class ByteBuffer
append(packGUID, size);
}
+ void AppendPackedTime(time_t time)
+ {
+ tm* lt = localtime(&time);
+ append<uint32>((lt->tm_year - 100) << 24 | lt->tm_mon << 20 | (lt->tm_mday - 1) << 14 | lt->tm_wday << 11 | lt->tm_hour << 6 | lt->tm_min);
+ }
+
void put(size_t pos, const uint8 *src, size_t cnt)
{
if (pos + cnt > size())
diff --git a/src/server/shared/Utilities/Util.h b/src/server/shared/Utilities/Util.h
index 835473045d4..37782c31d8b 100755
--- a/src/server/shared/Utilities/Util.h
+++ b/src/server/shared/Utilities/Util.h
@@ -48,12 +48,6 @@ std::string secsToTimeString(uint64 timeInSecs, bool shortText = false, bool hou
uint32 TimeStringToSecs(const std::string& timestring);
std::string TimeToTimestampStr(time_t t);
-inline uint32 secsToTimeBitFields(time_t secs)
-{
- tm* lt = localtime(&secs);
- return uint32((lt->tm_year - 100) << 24 | lt->tm_mon << 20 | (lt->tm_mday - 1) << 14 | lt->tm_wday << 11 | lt->tm_hour << 6 | lt->tm_min);
-}
-
/* Return a random number in the range min..max; (max-min) must be smaller than 32768. */
int32 irand(int32 min, int32 max);