66 lines
1.2 KiB
C
66 lines
1.2 KiB
C
/**
|
|
* Copyright (c) 2025 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "client/networked/networkedclient.h"
|
|
#include "packet/packetqueue.h"
|
|
|
|
typedef enum {
|
|
CLIENT_TYPE_NETWORKED,
|
|
CLIENT_TYPE_SINGLE_PLAYER,
|
|
} clienttype_t;
|
|
|
|
typedef enum {
|
|
CLIENT_STATE_DISCONNECTED,
|
|
CLIENT_STATE_CONNECTING,
|
|
CLIENT_STATE_CONNECTED,
|
|
CLIENT_STATE_DISCONNECTING,
|
|
} clientstate_t;
|
|
|
|
typedef struct clientconnect_s {
|
|
clienttype_t type;
|
|
union {
|
|
networkedclientconnect_t networked;
|
|
};
|
|
} clientconnect_t;
|
|
|
|
typedef struct client_s {
|
|
clientstate_t state;
|
|
clienttype_t type;
|
|
packetqueue_t packetQueue;
|
|
|
|
union {
|
|
networkedclient_t networked;
|
|
};
|
|
} client_t;
|
|
|
|
extern client_t CLIENT;
|
|
|
|
/**
|
|
* Initializes the client.
|
|
*
|
|
* @return Error code indicating success or failure.
|
|
*/
|
|
void clientInit();
|
|
|
|
/**
|
|
* Connects to a server.
|
|
*
|
|
* @param connect Connection information.
|
|
* @return Error code indicating success or failure.
|
|
*/
|
|
errorret_t clientConnect(const clientconnect_t connect);
|
|
|
|
/**
|
|
* Disconnects the client from the server.
|
|
*/
|
|
void clientDisconnect();
|
|
|
|
/**
|
|
* Cleans up the client resources.
|
|
*/
|
|
void clientDispose(); |