network oneshots
[carveJwlIkooP6JGAAIwe30JlM.git] / network_msg.h
index 1e3e4754adefe39499a01b51697710e4d27f90e5..c28f5b3c5607b2762574323ee189b274568f634c 100644 (file)
@@ -8,20 +8,20 @@
 #include "vg/vg_stdint.h"
 #include "world_info.h"
 #include "vg/vg_platform.h"
+;
 
 #pragma pack(push,1)
 
 typedef struct netmsg_blank netmsg_blank;
-struct netmsg_blank
-{
-   u32 inetmsg_id;
+struct netmsg_blank{
+   u16 inetmsg_id;
 };
 enum{ k_inetmsg_blank = 0 };
 
 typedef struct netmsg_auth netmsg_auth;
 struct netmsg_auth
 {
-   u32 inetmsg_id;
+   u16 inetmsg_id;
 
    u32 ticket_length;
    u8 ticket[];
@@ -31,14 +31,14 @@ enum{ k_inetmsg_auth = 1 };
 typedef struct netmsg_scores_request netmsg_scores_request;
 struct netmsg_scores_request
 {
-   u32 inetmsg_id;
+   u16 inetmsg_id;
 };
 enum{ k_inetmsg_scores_request = 2 };
 
 typedef struct netmsg_set_score netmsg_set_score;
 struct netmsg_set_score
 {
-   u32 inetmsg_id;
+   u16 inetmsg_id;
 
    u32 record_count;
    struct netmsg_score_record
@@ -49,22 +49,14 @@ struct netmsg_set_score
    }
    records[];
 };
-enum{ k_inetmsg_set_score = 3 };
-
-typedef struct netmsg_set_nickname netmsg_set_nickname;
-struct netmsg_set_nickname
-{
-   u32 inetmsg_id;
-   char nickname[16];
-};
-enum{ k_inetmsg_set_nickname = 4 };
-
+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
-{
-   u32 inetmsg_id;
+struct netmsg_scoreboard{
+   u16 inetmsg_id;
    
    u32 board_count;
    struct netmsg_board
@@ -79,5 +71,74 @@ static scoreboard_client_data = {
 }; 
 /* 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)
+
+typedef struct netmsg_playerframe netmsg_playerframe;
+enum{ k_inetmsg_playerframe = 200 };
+struct netmsg_playerframe{
+   u16 inetmsg_id;
+   f64 timestamp;
+
+   u8 client, subsystem, 
+      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. */
+
+   u8 animdata[];
+};
+
+typedef struct netmsg_playerjoin netmsg_playerjoin;
+enum{ k_inetmsg_playerjoin = 201 };
+struct netmsg_playerjoin{
+   u16 inetmsg_id;
+   u8 index;
+};
+
+typedef struct netmsg_playerleave netmsg_playerleave;
+enum{ k_inetmsg_playerleave = 202 };
+struct netmsg_playerleave{
+   u16 inetmsg_id;
+   u8 index;
+};
+
+typedef struct netmsg_playerusername netmsg_playerusername;
+enum{ k_inetmsg_playerusername = 203 };
+struct netmsg_playerusername{
+   u16 inetmsg_id;
+   u8 index;
+   char name[];
+};
+
+typedef struct netmsg_playeritem netmsg_playeritem;
+enum{ k_inetmsg_playeritem = 204 };
+struct netmsg_playeritem{
+   u16 inetmsg_id;
+   u8 client;
+   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_world0,
+   k_netmsg_playeritem_world1,
+   k_netmsg_playeritem_max
+};
+
+
 #pragma pack(pop)
 #endif /* NETWORK_MSG_H */