From 6c16f339224a4736f4ed57d15bb3e5f968a635ab Mon Sep 17 00:00:00 2001 From: 0scar Date: Tue, 29 Sep 2020 08:51:02 +0200 Subject: Initial independent commit --- include/engine/fov.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 include/engine/fov.h (limited to 'include/engine/fov.h') diff --git a/include/engine/fov.h b/include/engine/fov.h new file mode 100644 index 0000000..3af421e --- /dev/null +++ b/include/engine/fov.h @@ -0,0 +1,26 @@ +#ifndef ENGINE_FOV_H +#define ENGINE_FOV_H + +#include +#include "types.h" +#include "vector.h" + +/* `fov_shadowcast`: */ +/* map: your 2D enum tile grid + * mapsize: x: width, y: height of the map + * visblocking: pointer to a function that returns `true` when receiving a + * pointer to a LOS blocking tile + * lightmap: [out] 2D lightmap, this is simply overwritten with the distance to + * the source. + * range: visibility range/radius. + * src: 2D point to calculate FOV from + * */ +void fov_shadowcast( + const void *map, + const v2_i32 mapsize, + bool (*visblocking)(const void*), + i32 *lightmap, + const i32 range, + v2_i32 src); + +#endif -- cgit v1.3