X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network_msg.h;h=4dfeb5e44a3cc8a65a0cbe97d159c43caaa1e09d;hb=4eccfd7252f8ff165670842df537441afae5458b;hp=c28f5b3c5607b2762574323ee189b274568f634c;hpb=ce0205fd929e5fb1446f8c52fcab344884d82569;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network_msg.h b/network_msg.h index c28f5b3..4dfeb5e 100644 --- a/network_msg.h +++ b/network_msg.h @@ -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" ; @@ -13,12 +12,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,59 +27,25 @@ struct netmsg_auth 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 #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 }; @@ -87,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[]; }; @@ -105,6 +67,7 @@ enum{ k_inetmsg_playerjoin = 201 }; struct netmsg_playerjoin{ u16 inetmsg_id; u8 index; + u64 steamid; }; typedef struct netmsg_playerleave netmsg_playerleave; @@ -130,7 +93,6 @@ struct netmsg_playeritem{ 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, @@ -139,6 +101,44 @@ enum netmsg_playeritem_type { 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 */