1#ifndef LIBSPADES_SERVER_GAMESTATE_H
2#define LIBSPADES_SERVER_GAMESTATE_H
8#include "../common/clock.h"
9#include "../common/grenade.h"
10#include "../common/map.h"
11#include "../common/protocol.h"
13#include "servergrenade.h"
18 uint64_t nextBulletFireClock;
20#ifdef LIBSPADES_ANTICHEAT
21 uint64_t nextBlockPlacementClock;
22 uint64_t nextBlock1DestroyClock;
23 uint64_t nextBlock3DestroyClock;
24 uint64_t lastUpdatedPositionClock;
25 Vector3Float lastUpdatedPosition;
27 Vector3Float velocity;
29 bool sendWeaponInputsWhenReloadEnded;
32 bool transformChangedSinceLastUpdate;
35 uint_fast8_t handshakeStatus;
36 uint_fast8_t authenticationStatus;
37 uint_fast8_t magazineAmmo;
38 uint_fast8_t reserveAmmo;
40 uint_fast8_t grenades;
42#ifdef LIBSPADES_ANTICHEAT
43 uint_fast8_t blockPlaceQuota;
44 uint_fast8_t block1DestroyQuota;
45 uint_fast8_t block3DestroyQuota;
47 lastUpdatedPositionValid;
55 uint8_t publicKey[32];
60 Vector3Uint8 clientVersion;
66 void (*onConnect)(uint8_t playerID,
struct GameState *gameState);
67 void (*onDisconnect)(uint8_t playerID,
struct GameState *gameState);
68 void (*onJoin)(uint8_t playerID,
struct GameState *gameState);
73 void (*getAcceptableSpawnPosition)(uint8_t playerID,
74 Vector3Float outputPosition,
79 uint8_t hitterPlayerID,
86 void (*getRandomData)(
void *buffer,
size_t length);
87 int (*validateSignature)(
const void *signature,
90 const void *publicKey);
92 const char *(*queryTrustLevelString)(
const void *signature);
106 uint64_t updateClock;
107 enum ProtocolVersion protocolVersion;
113extern void libspades_server_gamestate_clear_callbacks(
struct GameState *gameState);
114extern struct GameState *libspades_server_gamestate_create(uint8_t maxPlayers,
115 enum ProtocolVersion protocolVersion,
116 ENetAddress *address);
The main data structure for libspades clients.
Definition gamestate.h:33
Definition servergamestate.h:65
Sends a message in chat.
Definition protocol.h:524
Informs the client of in-game players and the server of the joining client player.
Definition protocol.h:257
Tells the server that a player has been hit.
Definition protocol.h:156
Informs the client about the death of a player.
Definition protocol.h:498
Contains information about the game's state and the client player's ID.
Definition protocol.h:475
Regularly sent packet containing positions and orientations of all players.
Definition protocol.h:117
Definition servergamestate.h:16