completed all glider stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / network_msg.h
index d3b49fd26e3101a6321a2a51567a5e737b0790eb..5d3beeef1a61ba3329141062ef2d9b28f22fe49b 100644 (file)
 #pragma pack(push,1)
 
 typedef struct netmsg_blank netmsg_blank;
+enum{ k_inetmsg_blank = 0 };
 struct netmsg_blank{
    u16 inetmsg_id;
 };
-enum{ k_inetmsg_blank = 0 };
 
+/* send after version */
 typedef struct netmsg_auth netmsg_auth;
+enum{ k_inetmsg_auth = 1 };
 struct netmsg_auth
 {
    u16 inetmsg_id;
@@ -26,7 +28,14 @@ struct netmsg_auth
    u32 ticket_length;
    u8 ticket[];
 };
-enum{ k_inetmsg_auth = 1 };
+
+/* version should be sent before auth */
+typedef struct netmsg_version netmsg_version;
+enum{ k_inetmsg_version = 2 };
+struct netmsg_version{
+   u16 inetmsg_id;
+   u32 version;
+};
 
 /* server control 100 */
 
@@ -35,6 +44,9 @@ enum{ k_inetmsg_auth = 1 };
 #define NETMSG_BOUNDARY_BIT 0x8000
 #define NETMSG_GATE_BOUNDARY_BIT 0x4000
 #define NETMSG_BOUNDARY_MASK (NETMSG_BOUNDARY_BIT|NETMSG_GATE_BOUNDARY_BIT)
+#define NETMSG_PLAYERFRAME_INSTANCE_ID 0x3
+#define NETMSG_PLAYERFRAME_HAVE_GLIDER 0x4
+#define NETMSG_PLAYERFRAME_GLIDER_ORPHAN 0x8
 
 typedef struct netmsg_playerframe netmsg_playerframe;
 enum{ k_inetmsg_playerframe = 200 };
@@ -43,7 +55,7 @@ struct netmsg_playerframe{
    f64 timestamp;
 
    u8 client, subsystem, 
-      instance_id, sound_effects;
+      flags, sound_effects;
    u16 boundary_hash; /* used for animating correctly through gates, teleport..
                          msb is a flip flop for teleporting
                          second msb is flip flop for gate */
@@ -98,6 +110,15 @@ struct netmsg_chat {
    char msg[];
 };
 
+typedef struct netmsg_region netmsg_region;
+enum{ k_inetmsg_region = 206 };
+struct netmsg_region {
+   u16 inetmsg_id;
+   u8 client;
+   u32 flags;
+   char loc[];
+};
+
 /* requests 300 */
 typedef struct netmsg_request netmsg_request;
 enum{ k_inetmsg_request = 300, k_inetmsg_response = 301 };