fix wwater fog
[carveJwlIkooP6JGAAIwe30JlM.git] / network_msg.h
index 46aeab4115fe50ff970929e337085f7bb2e46b47..4dfeb5e44a3cc8a65a0cbe97d159c43caaa1e09d 100644 (file)
@@ -5,7 +5,6 @@
 #ifndef NETWORK_MSG_H
 #define NETWORK_MSG_H
 
-#include "vg/vg_stdint.h"
 #include "world_info.h"
 #include "vg/vg_platform.h"
 ;
 #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 +27,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 +43,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,15 +54,10 @@ 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 
-
-TODO: disable oblique clipping on cam mtx when rendering remote players
-      also render over the portal stencil? somehow.
-
-      detransform, interp, retransform. render in dest world. */
+                         second msb is flip flop for gate */
 
    u8 animdata[];
 };
@@ -103,6 +109,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 };