X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network_msg.h;h=5d3beeef1a61ba3329141062ef2d9b28f22fe49b;hb=refs%2Fheads%2Frigidbody;hp=46aeab4115fe50ff970929e337085f7bb2e46b47;hpb=4bf136afb77a4c2937952b9152165f1ddcd2da9d;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network_msg.h b/network_msg.h index 46aeab4..5d3beee 100644 --- a/network_msg.h +++ b/network_msg.h @@ -13,12 +13,14 @@ #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,15 +55,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 +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 };