about summary refs log tree commit diff
path: root/src/engine/msg.cpp
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-07-14 13:09:42 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-07-14 13:09:42 +0000
commit568b9f1f4a4f6cd269f026c10117d76329b44dd8 (patch)
treefe18d2ceb622c3b4c1f631b6736102c89927a330 /src/engine/msg.cpp
parent7acef9eb864344b26cb78f22da369851cc31aa76 (diff)
downloadzcatch-568b9f1f4a4f6cd269f026c10117d76329b44dd8.tar.gz
zcatch-568b9f1f4a4f6cd269f026c10117d76329b44dd8.zip
added chat, better damage indicators
Diffstat (limited to 'src/engine/msg.cpp')
-rw-r--r--src/engine/msg.cpp19
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(); }