diff options
author | Nay <dnpd.dd@gmail.com> | 2012-09-13 17:25:13 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-09-13 17:25:13 +0100 |
commit | 9b108fad857381f386324c8c8f75cca3480e20be (patch) | |
tree | 0782d021dda96bc55d3e7db30d759afadf275c27 /src/server/shared/Packets/ByteBuffer.h | |
parent | 7dcbb7d9bf6cd2b5a1c537aae572fc3ac5972a6f (diff) | |
parent | f03e650474463ad7454294e0fb5d6f169719ecbd (diff) |
Merge remote-tracking branch 'origin/master' into mmaps
Diffstat (limited to 'src/server/shared/Packets/ByteBuffer.h')
-rwxr-xr-x | src/server/shared/Packets/ByteBuffer.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index 760fcfd48d9..1fa3148504a 100755 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -359,6 +359,28 @@ class ByteBuffer } } + uint32 ReadPackedTime() + { + uint32 packedDate = read<uint32>(); + tm lt; + memset(<, 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(<) + timezone; + } + + ByteBuffer& ReadPackedTime(uint32& time) + { + time = ReadPackedTime(); + return *this; + } + const uint8 *contents() const { return &_storage[0]; } size_t size() const { return _storage.size(); } @@ -438,6 +460,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()) |