Mario Kart 64
Loading...
Searching...
No Matches
networking.h
Go to the documentation of this file.
1#ifndef NETWORKING_H
2#define NETWORKING_H
3
4#include <libultraship.h>
5#include <common_structs.h>
6#include <SDL2/SDL_net.h>
7
8#define NETWORK_MAX_PLAYERS 8
9#define NETWORK_USERNAME_LENGTH 32
10
11enum {
25};
26
27typedef struct {
28 bool enabled; // Enables networking
29 TCPsocket tcpSocket;
30 IPaddress address;
33 bool loaded;
34 bool playersLoaded; // Are all players loaded?
36 uint32_t cupVote;
37 uint32_t character;
38} Network;
39
40extern Network gNetwork;
41
50
53extern NetworkClient clients[];
54
55/* Main Networking */
56void ConnectToServer(char* ip, uint16_t port, char* username);
57void networking_init(char* ip, uint16_t port);
59void networking_ready_up(bool);
60void networking_cleanup(SDLNet_SocketSet);
61int networking_loop(void*);
62void handleReceivedData(const char*, size_t);
63void set_username(const char* username);
64void network_character_vote(uint32_t course);
65void network_cup_vote(uint32_t course);
66void networking_disconnect(void);
67
68/* Start Game */
69void spawn_network_players(f32*, f32*, f32);
71void set_course(const char* data);
72void networking_start_session(const char* data);
73
74/* Replication */
75void replicate_player(const char* data);
76void assign_player_slots(const char* data);
77
78/* Packets */
79void send_int_packet(TCPsocket socket, uint8_t type, uint32_t payload, uint16_t size);
80void handleJoinPacket(const char* data);
81void handleLeavePacket(const char* data);
82void handleMessagePacket(const char* data);
83
84void handle_start_game(void);
85void send_str_packet(TCPsocket, uint8_t, const char*);
86
87#endif // NETWORKING_H
NetworkClient * localClient
Definition networking.c:13
NetworkClient dummyClient
Definition networking.c:12
NetworkClient clients[NETWORK_MAX_PLAYERS]
Definition networking.c:14
Network gNetwork
Definition networking.c:16
void networking_ready_up(bool)
Definition networking.c:165
void network_character_vote(uint32_t course)
Definition start_game.c:46
void handle_start_game(void)
Definition packets.c:26
void spawn_network_players(f32 *, f32 *, f32)
Definition start_game.c:156
void networking_init(char *ip, uint16_t port)
Definition networking.c:60
void networking_start_session(const char *data)
Definition start_game.c:115
void assign_player_slots(const char *data)
Definition start_game.c:65
void set_course(const char *data)
Definition start_game.c:54
void handleJoinPacket(const char *data)
Definition packets.c:6
#define NETWORK_USERNAME_LENGTH
Definition networking.h:9
@ PACKET_PLAYER_ASSIGN_SLOTS
Definition networking.h:20
@ PACKET_SET_CHARACTER
Definition networking.h:17
@ PACKET_LOADED
Definition networking.h:15
@ PACKET_PLAYER
Definition networking.h:22
@ PACKET_ACTOR
Definition networking.h:23
@ PACKET_MESSAGE
Definition networking.h:14
@ PACKET_OBJECT
Definition networking.h:24
@ PACKET_START_SESSION
Definition networking.h:21
@ PACKET_SET_COURSE
Definition networking.h:19
@ PACKET_JOIN
Definition networking.h:12
@ PACKET_LEAVE
Definition networking.h:13
@ PACKET_COURSE_VOTE
Definition networking.h:18
@ PACKET_READY_UP
Definition networking.h:16
void networking_cleanup(SDLNet_SocketSet)
Definition networking.c:219
void handleReceivedData(const char *, size_t)
Definition networking.c:169
void set_username(const char *username)
Definition networking.c:51
void send_int_packet(TCPsocket socket, uint8_t type, uint32_t payload, uint16_t size)
Definition packets.c:102
void networking_update(void)
void network_cup_vote(uint32_t course)
Definition start_game.c:50
void replicate_player(const char *data)
Definition replication.c:5
void ConnectToServer(char *ip, uint16_t port, char *username)
Definition networking.c:35
void network_all_players_loaded(void)
Definition start_game.c:138
void send_str_packet(TCPsocket, uint8_t, const char *)
Definition packets.c:49
void handleMessagePacket(const char *data)
Definition packets.c:16
int networking_loop(void *)
Definition networking.c:91
void networking_disconnect(void)
Definition networking.c:227
void handleLeavePacket(const char *data)
Definition packets.c:11
Definition networking.h:42
s32 slot
Definition networking.h:44
s32 hasAuthority
Definition networking.h:48
char username[NETWORK_USERNAME_LENGTH]
Definition networking.h:43
s32 isAI
Definition networking.h:46
s32 character
Definition networking.h:47
s32 isPlayer
Definition networking.h:45
Definition networking.h:27
uint32_t cupVote
Definition networking.h:36
IPaddress address
Definition networking.h:30
bool loaded
Definition networking.h:33
bool playersLoaded
Definition networking.h:34
TCPsocket tcpSocket
Definition networking.h:29
bool gameStarted
Definition networking.h:35
bool isConnected
Definition networking.h:32
bool enabled
Definition networking.h:28
Player * localPlayer
Definition networking.h:31
uint32_t character
Definition networking.h:37
Definition common_structs.h:264