-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlevel.h
More file actions
38 lines (27 loc) · 978 Bytes
/
level.h
File metadata and controls
38 lines (27 loc) · 978 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef _LEVEL_H
#define _LEVEL_H
#include "rooms.h"
typedef struct level* level_t;
enum level_tile_mask
{
LEVEL_TILE_BOTTOM = 1,
LEVEL_TILE_LEFT = 2,
LEVEL_TILE_RIGHT = 4,
LEVEL_TILE_TOP = 8,
LEVEL_TILE_TYPEMASK = 255,
};
#define TILE_TYPE_SHIFT 8
#define LEVEL_TILE_SIZE 16.0f
level_t level_create(rooms_t rooms, int width, int height);
void level_destroy(level_t level);
void level_generate(level_t level, int seed);
void level_place_wall(level_t level, int x, int y);
void level_place_floor(level_t level, int x, int y);
void level_place_room(level_t level, struct room* room, int x, int y);
int level_walkable_at(level_t level, float x, float y);
tilemap_t level_get_tiles_background(level_t level);
tilemap_t level_get_tiles(level_t level);
tilemap_t level_get_tiles_foreground(level_t level);
void level_get_tile_dimensions(level_t level, int* width, int* height);
void level_get_dimensions(level_t level, float* width, float* height);
#endif