forked from NotAShelf/rogged
build: move map & rng logic to their own libraries
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I1802469f3baff4576f61accfb5a197d86a6a6964
This commit is contained in:
parent
702b4258e0
commit
26aa295f82
17 changed files with 136 additions and 93 deletions
27
libs/map/map.h
Normal file
27
libs/map/map.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef MAP_H
|
||||
#define MAP_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
// Check if a tile is walkable floor
|
||||
int is_floor(const Map *map, int x, int y);
|
||||
|
||||
// Get room center coordinates
|
||||
void get_room_center(Room *room, int *cx, int *cy);
|
||||
|
||||
// Generate a new dungeon floor
|
||||
void dungeon_generate(Dungeon *d, Map *map, int floor_num);
|
||||
|
||||
// Initialize map to all walls
|
||||
void map_init(Map *map);
|
||||
|
||||
// Get a random floor tile position
|
||||
void get_random_floor_tile(Map *map, int *x, int *y, int attempts);
|
||||
|
||||
// Visibility / Fog of War
|
||||
int is_in_view_range(int x, int y, int view_x, int view_y, int range);
|
||||
int has_line_of_sight(const Map *map, int x1, int y1, int x2, int y2);
|
||||
void calculate_visibility(Map *map, int x, int y);
|
||||
int can_see_entity(const Map *map, int from_x, int from_y, int to_x, int to_y, int range);
|
||||
|
||||
#endif // MAP_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue