X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=network_msg.h;h=286bfb0abbef66f9ddf6b9f14ac77eec3de2abb4;hb=eb28dee29482c7ffe8bc0203d302e3ee6dbfd943;hp=6c072f14fc44196f9ce7f6af2912a0a2431cd908;hpb=5ee174baa9b2c30e01dc0ca0dfa38f916f805636;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/network_msg.h b/network_msg.h index 6c072f1..286bfb0 100644 --- a/network_msg.h +++ b/network_msg.h @@ -1,7 +1,14 @@ +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ + #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) @@ -12,43 +19,113 @@ struct netmsg_blank }; enum{ k_inetmsg_blank = 0 }; +typedef struct netmsg_auth netmsg_auth; +struct netmsg_auth +{ + u32 inetmsg_id; + + u32 ticket_length; + u8 ticket[]; +}; +enum{ k_inetmsg_auth = 1 }; + typedef struct netmsg_scores_request netmsg_scores_request; struct netmsg_scores_request { u32 inetmsg_id; }; -enum{ k_inetmsg_scores_request = 1 }; +enum{ k_inetmsg_scores_request = 2 }; -typedef struct netmsg_scores_info netmsg_scores_info; -struct netmsg_scores_info +typedef struct netmsg_set_score netmsg_set_score; +struct netmsg_set_score { u32 inetmsg_id; - + u32 record_count; struct netmsg_score_record { u32 trackid; - - struct netmsg_score_entry - { - u64 steamid64; - u16 points, time; - } - top10[10]; + u64 playerid; + u16 points, time; } - scores[]; + records[]; }; -enum{ k_inetmsg_scores_info = 2 }; +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_auth netmsg_auth; -struct netmsg_auth +typedef struct netmsg_set_nickname netmsg_set_nickname; +struct netmsg_set_nickname { u32 inetmsg_id; + char nickname[16]; +}; +enum{ k_inetmsg_set_nickname = 4 }; - u32 ticket_length; - u8 ticket[]; + +typedef struct netmsg_scoreboard netmsg_scoreboard; +enum{ k_inetmsg_scoreboard = 5 }; +struct netmsg_scoreboard +{ + u32 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 */ + +/* client -> remote */ +typedef struct netmsg_playerframe netmsg_playerframe; +enum{ k_inetmsg_playerframe = 200 }; +struct netmsg_playerframe{ + u32 inetmsg_id; + f64 timestamp; + u8 client, subsystem; + u8 animdata[]; +}; + +/* remote -> client */ +typedef struct netmsg_playerjoin netmsg_playerjoin; +enum{ k_inetmsg_playerjoin = 201 }; +struct netmsg_playerjoin{ + u32 inetmsg_id; + + u32 index; + char username[32]; /* UNUSED */ + char playermodel_uid[76]; /* UNUSED */ + char board_uid[76]; /* UNUSED */ +}; + + +/* remote -> client */ +typedef struct netmsg_playerleave netmsg_playerleave; +enum{ k_inetmsg_playerleave = 202 }; +struct netmsg_playerleave{ + u32 inetmsg_id; + u32 index; +}; + +/* client <-> remote */ +typedef struct netmsg_playerusername netmsg_playerusername; +enum{ k_inetmsg_playerusername = 203 }; +struct netmsg_playerusername{ + u32 inetmsg_id; + u32 index; + char username[32]; }; -enum{ k_inetmsg_auth = 3 }; #pragma pack(pop) #endif /* NETWORK_MSG_H */