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
;
16 enum{ k_inetmsg_blank
= 0 };
21 /* send after version */
22 typedef struct netmsg_auth netmsg_auth
;
23 enum{ k_inetmsg_auth
= 1 };
32 /* version should be sent before auth */
33 typedef struct netmsg_version netmsg_version
;
34 enum{ k_inetmsg_version
= 2 };
35 struct netmsg_version
{
40 /* server control 100 */
42 /* player updates 200 */
44 #define NETMSG_BOUNDARY_BIT 0x8000
45 #define NETMSG_GATE_BOUNDARY_BIT 0x4000
46 #define NETMSG_BOUNDARY_MASK (NETMSG_BOUNDARY_BIT|NETMSG_GATE_BOUNDARY_BIT)
47 #define NETMSG_PLAYERFRAME_INSTANCE_ID 0x3
48 #define NETMSG_PLAYERFRAME_HAVE_GLIDER 0x4
49 #define NETMSG_PLAYERFRAME_GLIDER_ORPHAN 0x8
51 typedef struct netmsg_playerframe netmsg_playerframe
;
52 enum{ k_inetmsg_playerframe
= 200 };
53 struct netmsg_playerframe
{
59 u16 boundary_hash
; /* used for animating correctly through gates, teleport..
60 msb is a flip flop for teleporting
61 second msb is flip flop for gate */
66 typedef struct netmsg_playerjoin netmsg_playerjoin
;
67 enum{ k_inetmsg_playerjoin
= 201 };
68 struct netmsg_playerjoin
{
74 typedef struct netmsg_playerleave netmsg_playerleave
;
75 enum{ k_inetmsg_playerleave
= 202 };
76 struct netmsg_playerleave
{
81 typedef struct netmsg_playerusername netmsg_playerusername
;
82 enum{ k_inetmsg_playerusername
= 203 };
83 struct netmsg_playerusername
{
89 typedef struct netmsg_playeritem netmsg_playeritem
;
90 enum{ k_inetmsg_playeritem
= 204 };
91 struct netmsg_playeritem
{
97 enum netmsg_playeritem_type
{
98 k_netmsg_playeritem_board
= 0,
99 k_netmsg_playeritem_player
,
100 k_netmsg_playeritem_world0
,
101 k_netmsg_playeritem_world1
,
102 k_netmsg_playeritem_max
105 typedef struct netmsg_chat netmsg_chat
;
106 enum{ k_inetmsg_chat
= 205 };
113 typedef struct netmsg_region netmsg_region
;
114 enum{ k_inetmsg_region
= 206 };
115 struct netmsg_region
{
123 typedef struct netmsg_request netmsg_request
;
124 enum{ k_inetmsg_request
= 300, k_inetmsg_response
= 301 };
125 struct netmsg_request
{
131 enum request_status
{
132 k_request_status_client_error
= 0,
133 k_request_status_invalid_endpoint
= 1,
134 k_request_status_unauthorized
= 2,
136 k_request_status_server_error
= 100,
137 k_request_status_out_of_memory
= 101,
138 k_request_status_database_error
= 102,
140 k_request_status_ok
= 200,
141 k_request_status_not_found
= 201
145 #endif /* NETWORK_MSG_H */