libspades
Ace of Spades library
map.h
1#ifndef LIBSPADES_MAP_H
2#define LIBSPADES_MAP_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#include <enet/enet.h>
8#include "../config.h"
9#include "datatypes.h"
10
11#define MAP_SIZE_X 512
12#define MAP_SIZE_Y 512
13#define MAP_SIZE_Z 64
14
16 uint64_t rememberedSolidityBitmask[MAP_SIZE_X][MAP_SIZE_Y];
17 uint64_t columnSolidityBitmask[MAP_SIZE_X][MAP_SIZE_Y];
18 Vector3Uint8 colors[MAP_SIZE_X][MAP_SIZE_Y][MAP_SIZE_Z];
19};
20
22extern void libspades_voxel_create(uint_fast32_t x,
23 uint_fast32_t y,
24 uint_fast32_t z,
25 struct LibspadesMapData *mapData);
27extern void libspades_voxel_destroy(uint_fast32_t x,
28 uint_fast32_t y,
29 uint_fast32_t z,
30 struct LibspadesMapData *mapData);
32extern int libspades_voxel_get_solidity(uint_fast32_t x,
33 uint_fast32_t y,
34 uint_fast32_t z,
35 const struct LibspadesMapData *mapData);
37extern int libspades_voxel_bounds_check_map(uint_fast32_t x, uint_fast32_t y, uint_fast32_t z);
39extern int libspades_voxel_bounds_check_player(uint_fast32_t x, uint_fast32_t y, uint_fast32_t z);
41extern int libspades_voxel_get_player_breakability(uint_fast32_t x,
42 uint_fast32_t y,
43 uint_fast32_t z,
44 const struct LibspadesMapData *mapData);
46void changeBlockSolid(struct LibspadesMapData *mapData,
47 uint_fast32_t x,
48 uint_fast32_t y,
49 uint_fast32_t z,
50 bool solid);
51extern void libspades_grenade_destroy(uint_fast32_t x,
52 uint_fast32_t y,
53 uint_fast32_t z,
54 struct LibspadesMapData *mapData);
55extern void libspades_spade_secondary_destroy(uint_fast32_t x,
56 uint_fast32_t y,
57 uint_fast32_t z,
58 struct LibspadesMapData *mapData);
59bool isBlockTouchingSurface(const struct LibspadesMapData *mapData, uint32_t x, uint32_t y, uint32_t z);
60bool isBlockSurface(const struct LibspadesMapData *mapData, uint_fast32_t x, uint_fast32_t y, uint_fast32_t z);
61/* DEPRECATED */
62void changeBlockColor(struct LibspadesMapData *mapData,
63 uint32_t x,
64 uint32_t y,
65 uint32_t z,
66 uint8_t b,
67 uint8_t g,
68 uint8_t r,
69 uint8_t a);
70int decompressMapPacket(const ENetPacket *packet, uint8_t *outMapData, uint32_t outMapSize);
71size_t libspades_save_map(const struct LibspadesMapData *mapData, void *outMapData);
72/* size_t saveMap(struct GameState* gameState, uint8_t* outMapData); */
73int loadMap(struct LibspadesMapData *mapData, void *inMapData);
74
75#ifdef __cplusplus
76}
77#endif
78#endif
Definition map.h:15