#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 };
-typedef struct netmsg_scores_request netmsg_scores_request;
-struct netmsg_scores_request
-{
+/* 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;
};
-enum{ k_inetmsg_scores_request = 2 };
-
-typedef struct netmsg_set_score netmsg_set_score;
-struct netmsg_set_score
-{
- u16 inetmsg_id;
-
- u32 record_count;
- struct netmsg_score_record
- {
- u32 trackid;
- u64 playerid;
- u16 points, time;
- }
- records[];
-};
-enum{ k_inetmsg_set_score = 6 };
-/* 31.05.23: k_inetmsg_set_score id changed from ID 3 to ID 6,
- * 3 is now INVALID */
-
-typedef struct netmsg_scoreboard netmsg_scoreboard;
-enum{ k_inetmsg_scoreboard = 5 };
-struct netmsg_scoreboard{
- u16 inetmsg_id;
-
- u32 board_count;
- struct netmsg_board
- {
- char data[27*13];
- }
- boards[ vg_list_size(track_infos) ];
-}
-static scoreboard_client_data = {
- .inetmsg_id = k_inetmsg_scoreboard,
- .board_count = vg_list_size(track_infos)
-};
-/* probably about 10k */
/* server control 100 */
-
/* player updates 200 */
#define NETMSG_BOUNDARY_BIT 0x8000
instance_id, 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;
u8 type_index;
char uid[];
};
-typedef enum netmsg_playeritem_type netmsg_playeritem_type;
enum netmsg_playeritem_type {
k_netmsg_playeritem_board = 0,
k_netmsg_playeritem_player,
k_netmsg_playeritem_max
};
+typedef struct netmsg_chat netmsg_chat;
+enum{ k_inetmsg_chat = 205 };
+struct netmsg_chat {
+ u16 inetmsg_id;
+ u8 client;
+ 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 };
+struct netmsg_request {
+ u16 inetmsg_id;
+ u8 id, status;
+ u8 q[];
+};
+
+enum request_status {
+ k_request_status_client_error = 0,
+ k_request_status_invalid_endpoint = 1,
+ k_request_status_unauthorized = 2,
+
+ k_request_status_server_error = 100,
+ k_request_status_out_of_memory = 101,
+ k_request_status_database_error = 102,
+
+ k_request_status_ok = 200,
+ k_request_status_not_found = 201
+};
#pragma pack(pop)
#endif /* NETWORK_MSG_H */