2 * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
8 #include "vg/vg_stdint.h"
9 #include "world_info.h"
10 #include "vg/vg_platform.h"
15 typedef struct netmsg_blank netmsg_blank
;
19 enum{ k_inetmsg_blank
= 0 };
21 typedef struct netmsg_auth netmsg_auth
;
29 enum{ k_inetmsg_auth
= 1 };
31 typedef struct netmsg_scores_request netmsg_scores_request
;
32 struct netmsg_scores_request
36 enum{ k_inetmsg_scores_request
= 2 };
38 typedef struct netmsg_set_score netmsg_set_score
;
39 struct netmsg_set_score
44 struct netmsg_score_record
52 enum{ k_inetmsg_set_score
= 6 };
53 /* 31.05.23: k_inetmsg_set_score id changed from ID 3 to ID 6,
56 typedef struct netmsg_scoreboard netmsg_scoreboard
;
57 enum{ k_inetmsg_scoreboard
= 5 };
58 struct netmsg_scoreboard
{
66 boards
[ vg_list_size(track_infos
) ];
68 static scoreboard_client_data
= {
69 .inetmsg_id
= k_inetmsg_scoreboard
,
70 .board_count
= vg_list_size(track_infos
)
72 /* probably about 10k */
74 /* server control 100 */
77 /* player updates 200 */
79 #define NETMSG_BOUNDARY_BIT 0x8000
80 #define NETMSG_GATE_BOUNDARY_BIT 0x4000
81 #define NETMSG_BOUNDARY_MASK (NETMSG_BOUNDARY_BIT|NETMSG_GATE_BOUNDARY_BIT)
83 typedef struct netmsg_playerframe netmsg_playerframe
;
84 enum{ k_inetmsg_playerframe
= 200 };
85 struct netmsg_playerframe
{
91 u16 boundary_hash
; /* used for animating correctly through gates, teleport..
92 msb is a flip flop for teleporting
93 second msb is flip flop for gate
95 TODO: disable oblique clipping on cam mtx when rendering remote players
96 also render over the portal stencil? somehow.
98 detransform, interp, retransform. render in dest world. */
103 typedef struct netmsg_playerjoin netmsg_playerjoin
;
104 enum{ k_inetmsg_playerjoin
= 201 };
105 struct netmsg_playerjoin
{
110 typedef struct netmsg_playerleave netmsg_playerleave
;
111 enum{ k_inetmsg_playerleave
= 202 };
112 struct netmsg_playerleave
{
117 typedef struct netmsg_playerusername netmsg_playerusername
;
118 enum{ k_inetmsg_playerusername
= 203 };
119 struct netmsg_playerusername
{
125 typedef struct netmsg_playeritem netmsg_playeritem
;
126 enum{ k_inetmsg_playeritem
= 204 };
127 struct netmsg_playeritem
{
133 typedef enum netmsg_playeritem_type netmsg_playeritem_type
;
134 enum netmsg_playeritem_type
{
135 k_netmsg_playeritem_board
= 0,
136 k_netmsg_playeritem_player
,
137 k_netmsg_playeritem_world0
,
138 k_netmsg_playeritem_world1
,
139 k_netmsg_playeritem_max
144 #endif /* NETWORK_MSG_H */