update helpers/location to 'frosted' ui
[carveJwlIkooP6JGAAIwe30JlM.git] / network_msg.h
index c28f5b3c5607b2762574323ee189b274568f634c..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,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 */