dusk/backup/server/server.h
2025-02-22 20:22:58 -06:00

53 lines
960 B
C

/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "client/client.h"
#include "serversingleplayer.h"
#include "serverlocal.h"
#define SERVER_CLIENT_COUNT_MAX 4
typedef enum {
SERVER_TYPE_SINGLE_PLAYER = 0,
SERVER_TYPE_LOCAL = 1,
SERVER_TYPE_REMOTE = 2
} servertype_t;
typedef enum {
SERVER_STATE_STOPPED = 0,
SERVER_STATE_RUNNING = 1
} serverstate_t;
typedef struct {
servertype_t type;
union {
serversingleplayerstart_t singlePlayer;
serverlocalstart_t local;
};
} serverstart_t;
typedef struct {
serverstate_t state;
servertype_t type;
client_t clients[SERVER_CLIENT_COUNT_MAX];
uint8_t clientCount;
union {
serverlocal_t local;
};
} server_t;
extern server_t SERVER;
void serverInit();
void serverStart(const serverstart_t start);
void serverStop();
void serverUpdate();
void serverDispose();