remote items test
[carveJwlIkooP6JGAAIwe30JlM.git] / network_msg.h
1 /*
2 * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
3 */
4
5 #ifndef NETWORK_MSG_H
6 #define NETWORK_MSG_H
7
8 #include "vg/vg_stdint.h"
9 #include "world_info.h"
10 #include "vg/vg_platform.h"
11 ;
12
13 #pragma pack(push,1)
14
15 typedef struct netmsg_blank netmsg_blank;
16 struct netmsg_blank
17 {
18 u32 inetmsg_id;
19 };
20 enum{ k_inetmsg_blank = 0 };
21
22 typedef struct netmsg_auth netmsg_auth;
23 struct netmsg_auth
24 {
25 u32 inetmsg_id;
26
27 u32 ticket_length;
28 u8 ticket[];
29 };
30 enum{ k_inetmsg_auth = 1 };
31
32 typedef struct netmsg_scores_request netmsg_scores_request;
33 struct netmsg_scores_request
34 {
35 u32 inetmsg_id;
36 };
37 enum{ k_inetmsg_scores_request = 2 };
38
39 typedef struct netmsg_set_score netmsg_set_score;
40 struct netmsg_set_score
41 {
42 u32 inetmsg_id;
43
44 u32 record_count;
45 struct netmsg_score_record
46 {
47 u32 trackid;
48 u64 playerid;
49 u16 points, time;
50 }
51 records[];
52 };
53 enum{ k_inetmsg_set_score = 6 };
54 /* 31.05.23: k_inetmsg_set_score id changed from ID 3 to ID 6,
55 * 3 is now INVALID */
56
57 typedef struct netmsg_set_nickname netmsg_set_nickname;
58 struct netmsg_set_nickname
59 {
60 u32 inetmsg_id;
61 char nickname[16];
62 };
63 enum{ k_inetmsg_set_nickname = 4 };
64
65
66 typedef struct netmsg_scoreboard netmsg_scoreboard;
67 enum{ k_inetmsg_scoreboard = 5 };
68 struct netmsg_scoreboard
69 {
70 u32 inetmsg_id;
71
72 u32 board_count;
73 struct netmsg_board
74 {
75 char data[27*13];
76 }
77 boards[ vg_list_size(track_infos) ];
78 }
79 static scoreboard_client_data = {
80 .inetmsg_id = k_inetmsg_scoreboard,
81 .board_count = vg_list_size(track_infos)
82 };
83 /* probably about 10k */
84
85 /* server control 100 */
86
87
88 /* player updates 200 */
89
90 typedef struct netmsg_playerframe netmsg_playerframe;
91 enum{ k_inetmsg_playerframe = 200 };
92 struct netmsg_playerframe{
93 u32 inetmsg_id;
94 f64 timestamp;
95 u8 client, subsystem;
96 u8 animdata[];
97 };
98
99 typedef struct netmsg_playerjoin netmsg_playerjoin;
100 enum{ k_inetmsg_playerjoin = 201 };
101 struct netmsg_playerjoin{
102 u32 inetmsg_id;
103 u32 index;
104 };
105
106 typedef struct netmsg_playerleave netmsg_playerleave;
107 enum{ k_inetmsg_playerleave = 202 };
108 struct netmsg_playerleave{
109 u32 inetmsg_id;
110 u32 index;
111 };
112
113 typedef struct netmsg_playerusername netmsg_playerusername;
114 enum{ k_inetmsg_playerusername = 203 };
115 struct netmsg_playerusername{
116 u32 inetmsg_id;
117 u32 index;
118 char name[];
119 };
120
121 typedef struct netmsg_playeritem netmsg_playeritem;
122 enum{ k_inetmsg_playeritem = 204 };
123 struct netmsg_playeritem{
124 u32 inetmsg_id;
125 u32 client;
126 u8 type;
127 char uid[];
128 };
129
130 #pragma pack(pop)
131 #endif /* NETWORK_MSG_H */