diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-07-14 13:09:42 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-07-14 13:09:42 +0000 |
| commit | 568b9f1f4a4f6cd269f026c10117d76329b44dd8 (patch) | |
| tree | fe18d2ceb622c3b4c1f631b6736102c89927a330 /src/engine/msg.cpp | |
| parent | 7acef9eb864344b26cb78f22da369851cc31aa76 (diff) | |
| download | zcatch-568b9f1f4a4f6cd269f026c10117d76329b44dd8.tar.gz zcatch-568b9f1f4a4f6cd269f026c10117d76329b44dd8.zip | |
added chat, better damage indicators
Diffstat (limited to 'src/engine/msg.cpp')
| -rw-r--r-- | src/engine/msg.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/engine/msg.cpp b/src/engine/msg.cpp index 024bab2c..fa2dab34 100644 --- a/src/engine/msg.cpp +++ b/src/engine/msg.cpp @@ -10,13 +10,22 @@ void msg_pack_int(int i) { packer.add_int(i); } void msg_pack_string(const char *p, int limit) { packer.add_string(p, limit); } void msg_pack_raw(const void *data, int size) { packer.add_raw((const unsigned char *)data, size); } +void msg_pack_start_system(int msg, int flags) +{ + packer.reset(); + pack_info.msg = (msg<<1)|1; + pack_info.flags = flags; + + msg_pack_int(pack_info.msg); +} + void msg_pack_start(int msg, int flags) { packer.reset(); - pack_info.msg = msg; + pack_info.msg = msg<<1; pack_info.flags = flags; - msg_pack_int(msg); + msg_pack_int(pack_info.msg); } void msg_pack_end() @@ -32,10 +41,12 @@ const msg_info *msg_get_info() // message unpacking static data_unpacker unpacker; -int msg_unpack_start(const void *data, int data_size) +int msg_unpack_start(const void *data, int data_size, int *system) { unpacker.reset((const unsigned char *)data, data_size); - return msg_unpack_int(); + int msg = msg_unpack_int(); + *system = msg&1; + return msg>>1; } int msg_unpack_int() { return unpacker.get_int(); } |