libspades
Ace of Spades library
serverlibspades.h
1#ifndef LIBSPADES_SERVER_LIBSPADES_H
2#define LIBSPADES_SERVER_LIBSPADES_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#include "../common/clock.h"
8#include "../config.h"
9
10#include "../common/colors.h"
11#include "../common/cp437.h"
12#include "../common/protocol.h"
13#include "servergamestate.h"
14
18
19struct Vectorf {
20 float x;
21 float y;
22 float z;
23};
24
25struct Vector32 {
26 uint32_t x;
27 uint32_t y;
28 uint32_t z;
29};
30
31struct Vector8Unpacked {
32 uint8_t x;
33 uint8_t y;
34 uint8_t z;
35};
36
37struct VectorS8Unpacked {
38 int8_t x;
39 int8_t y;
40 int8_t z;
41};
42
43enum LibspadesConnectReturn {
44 LibspadesConnectReturnSuccess = 0,
45 LibspadesConnectReturnHostError = -1,
46 LibspadesConnectReturnPeerError = -2,
49 LibspadesConnectReturnTimedOut = -3,
52 LibspadesConnectReturnKicked = -4,
54 LibspadesConnectReturnCompressorError = -5
55};
56
57enum LibspadesSendPacketReturn {
58 LibspadesSendPacketReturnSuccess = 0,
59 LibspadesSendPacketReturnPacketCreateError = -1,
60 LibspadesSendPacketReturnSendError = -2
61};
62
63int libspades_server_parse_aos_identifier(const char *identifier,
64 ENetAddress *address,
65 enum ProtocolVersion *protocolVersion);
66extern enum LibspadesSendPacketReturn libspades_server_packet_send(void *data,
67 size_t length,
68 uint8_t playerID,
69 struct GameState *gameState);
70
71extern enum LibspadesSendPacketReturn libspades_server_packet_send2(void *data,
72 size_t length,
73 uint8_t playerID,
74 uint32_t flags,
75 struct GameState *gameState);
76extern enum LibspadesSendPacketReturn libspades_server_packet_broadcast(void *data,
77 size_t length,
78 struct GameState *gameState);
79extern enum LibspadesSendPacketReturn libspades_server_packet_broadcast2(void *data,
80 size_t length,
81 uint32_t flags,
82 struct GameState *gameState);
83extern enum LibspadesSendPacketReturn libspades_server_packet_broadcast_selective(void *data,
84 size_t length,
85 uint8_t playerID,
86 struct GameState *gameState);
87extern enum LibspadesSendPacketReturn libspades_server_packet_broadcast_selective2(void *data,
88 size_t length,
89 uint8_t playerID,
90 uint32_t flags,
91 struct GameState *gameState);
92void libspades_server_restock_player(uint8_t playerID, struct GameState *gameState);
93uint_fast8_t libspades_server_block_line(const Vector3Uint32 start,
94 const Vector3Uint32 end,
95 uint8_t playerID,
96 struct GameState *gameState);
97void libspades_server_broadcast_chat(const char *data, enum ChatType type, struct GameState *gameState);
98void libspades_server_send_chat(const char *data, enum ChatType type, uint8_t playerID, struct GameState *gameState);
99void libspades_server_disconnect_player(uint8_t playerID, uint_fast8_t reason, struct GameState *gameState);
100void libspades_server_kick_player_with_message(const char *message,
101 uint8_t reason,
102 uint8_t playerID,
103 struct GameState *gameState);
104extern void updateSeenTransforms(uint8_t playerID, struct GameState *gameState);
105extern void spawnPlayer(uint8_t playerID, struct GameState *gameState);
106extern void createPlayer(uint8_t playerID, struct GameState *gameState);
107void sendUpdate(struct GameState *gameState);
108extern void hitPlayer(uint8_t playerID, enum HitType hitType, enum WeaponType weapon, struct GameState *gameState);
109int libspades_server_process_packet(const ENetPacket *packet, uint8_t playerID, struct GameState *gameState);
110int libspades_server_host_service(enet_uint32 maximumDelayTimeMilliseconds,
111 ENetEvent *returnEvent,
112 struct GameState *gameState);
113
114#ifdef __cplusplus
115}
116#endif
117#endif
The main data structure for libspades clients.
Definition gamestate.h:33
Definition libspades.h:26
Definition libspades.h:32
Definition libspades.h:38
Definition libspades.h:20