#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;
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 */
#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 };
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[];
};
struct netmsg_playerjoin{
u16 inetmsg_id;
u8 index;
+ u64 steamid;
};
typedef struct netmsg_playerleave netmsg_playerleave;
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 };