From 3705b14a4b2ac0d6baa418f08991424cfad89891 Mon Sep 17 00:00:00 2001 From: 0scar Date: Tue, 6 Feb 2024 10:48:05 +0100 Subject: Works on my machine Albeit when compiled twice :) --- src/utils/CMakeLists.txt | 2 +- src/utils/include/engine/utils.h | 36 ++++++++++++++++++++++++++++++++ src/utils/include/engine/utils/fov.h | 4 ++-- src/utils/include/engine/utils/hashmap.h | 8 +++---- src/utils/include/engine/utils/stack.h | 2 +- src/utils/include/engine/utils/utils.h | 36 -------------------------------- src/utils/include/engine/utils/vector.h | 2 +- src/utils/src/btree.c | 2 +- src/utils/src/fov.c | 2 +- src/utils/src/hashmap.c | 4 +++- src/utils/src/misc.c | 2 +- src/utils/src/stack.c | 4 ++-- src/utils/src/vector.c | 2 +- 13 files changed, 54 insertions(+), 52 deletions(-) create mode 100644 src/utils/include/engine/utils.h delete mode 100644 src/utils/include/engine/utils/utils.h (limited to 'src/utils') diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 7508d26..64f5586 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -7,4 +7,4 @@ add_library(daw_utils src/vector.c ) -target_include_directories(daw_utils PRIVATE include) +target_include_directories(daw_utils PRIVATE ${DAW_INCLUDE_DIRS}) diff --git a/src/utils/include/engine/utils.h b/src/utils/include/engine/utils.h new file mode 100644 index 0000000..d10a03a --- /dev/null +++ b/src/utils/include/engine/utils.h @@ -0,0 +1,36 @@ +#ifndef ENGINE_UTILS_H +#define ENGINE_UTILS_H + +#include +#include + +#define MIN(a, b) ((a < b) ? (a) : (b)) +#define MAX(a, b) ((a > b) ? (a) : (b)) + +#define MASK_TL (1 << 0) +#define MASK_T (1 << 1) +#define MASK_TR (1 << 2) +#define MASK_L (1 << 3) +#define MASK_C (1 << 4) +#define MASK_R (1 << 5) +#define MASK_BL (1 << 6) +#define MASK_B (1 << 7) +#define MASK_BR (1 << 8) + +/* Linear interpolate */ +f32 lerp(f32 dt, f32 a, f32 b); +i32 int_lerp(f32 dt, i32 a, i32 b); + +/* Hashes */ +u32 hash(char* str); + +/* Masks surrounding tiles of a kernel size of 3x3 */ +/* In reality we only need 9 bits for this, but I think I had a reason for using + * i32 */ +i32* kernmap(const void* map, i32* dstmap, const v2_i32 mapsize, + predicate_t* predicate); + +/* Returns an index from the given weights. */ +i32 pick_from_sample(const i32* weights, i32 len); + +#endif diff --git a/src/utils/include/engine/utils/fov.h b/src/utils/include/engine/utils/fov.h index 15ef38b..b083d2b 100644 --- a/src/utils/include/engine/utils/fov.h +++ b/src/utils/include/engine/utils/fov.h @@ -1,8 +1,8 @@ #ifndef ENGINE_FOV_H #define ENGINE_FOV_H -#include "types.h" -#include "vector.h" +#include +#include #include /* `fov_shadowcast`: */ diff --git a/src/utils/include/engine/utils/hashmap.h b/src/utils/include/engine/utils/hashmap.h index bf1d87c..046c810 100644 --- a/src/utils/include/engine/utils/hashmap.h +++ b/src/utils/include/engine/utils/hashmap.h @@ -1,12 +1,12 @@ #ifndef ENGINE_HASHMAP_H #define ENGINE_HASHMAP_H -#include "types.h" - -#include "list.h" -#include "memory.h" #include +#include +#include +#include + i32 lolhash(const usize s, i32 v); /* Define a linked list before using this */ diff --git a/src/utils/include/engine/utils/stack.h b/src/utils/include/engine/utils/stack.h index 69975df..9fc53aa 100644 --- a/src/utils/include/engine/utils/stack.h +++ b/src/utils/include/engine/utils/stack.h @@ -25,7 +25,7 @@ #ifndef STACK_H #define STACK_H -#include "types.h" +#include typedef struct { isize head; /* current number of elements */ diff --git a/src/utils/include/engine/utils/utils.h b/src/utils/include/engine/utils/utils.h deleted file mode 100644 index e537f52..0000000 --- a/src/utils/include/engine/utils/utils.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef ENGINE_UTILS_H -#define ENGINE_UTILS_H - -#include "types.h" -#include "vector.h" - -#define MIN(a, b) ((a < b) ? (a) : (b)) -#define MAX(a, b) ((a > b) ? (a) : (b)) - -#define MASK_TL (1 << 0) -#define MASK_T (1 << 1) -#define MASK_TR (1 << 2) -#define MASK_L (1 << 3) -#define MASK_C (1 << 4) -#define MASK_R (1 << 5) -#define MASK_BL (1 << 6) -#define MASK_B (1 << 7) -#define MASK_BR (1 << 8) - -/* Linear interpolate */ -f32 lerp(f32 dt, f32 a, f32 b); -i32 int_lerp(f32 dt, i32 a, i32 b); - -/* Hashes */ -u32 hash(char* str); - -/* Masks surrounding tiles of a kernel size of 3x3 */ -/* In reality we only need 9 bits for this, but I think I had a reason for using - * i32 */ -i32* kernmap(const void* map, i32* dstmap, const v2_i32 mapsize, - predicate_t* predicate); - -/* Returns an index from the given weights. */ -i32 pick_from_sample(const i32* weights, i32 len); - -#endif diff --git a/src/utils/include/engine/utils/vector.h b/src/utils/include/engine/utils/vector.h index 58bb0a2..11517dc 100644 --- a/src/utils/include/engine/utils/vector.h +++ b/src/utils/include/engine/utils/vector.h @@ -1,7 +1,7 @@ #ifndef VECTOR_H #define VECTOR_H -#include "types.h" +#include #include #include diff --git a/src/utils/src/btree.c b/src/utils/src/btree.c index c125564..1e85e6c 100644 --- a/src/utils/src/btree.c +++ b/src/utils/src/btree.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/utils/src/fov.c b/src/utils/src/fov.c index 3d5ae16..7bd27e2 100644 --- a/src/utils/src/fov.c +++ b/src/utils/src/fov.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/utils/src/hashmap.c b/src/utils/src/hashmap.c index 1652bb6..61c5e43 100644 --- a/src/utils/src/hashmap.c +++ b/src/utils/src/hashmap.c @@ -1,3 +1,5 @@ -#include +#include +/* Currently, this is a "works, but very poorly" placeholder implementation. + * Should be avoided in practice */ i32 lolhash(const usize s, i32 v) { return v % s; } diff --git a/src/utils/src/misc.c b/src/utils/src/misc.c index 0f3d218..290c417 100644 --- a/src/utils/src/misc.c +++ b/src/utils/src/misc.c @@ -3,7 +3,7 @@ #include -#include +#include #include /* These should all be in some external facing module "tools" */ diff --git a/src/utils/src/stack.c b/src/utils/src/stack.c index ff195ba..a5fc419 100644 --- a/src/utils/src/stack.c +++ b/src/utils/src/stack.c @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include Stack stack_new_ex(const usize element_size, const usize size) { diff --git a/src/utils/src/vector.c b/src/utils/src/vector.c index 3465df7..5fedb1f 100644 --- a/src/utils/src/vector.c +++ b/src/utils/src/vector.c @@ -1,5 +1,5 @@ #include -#include +#include bool v2_i32_eq(const v2_i32 a, const v2_i32 b) { return (a.x == b.x) && (a.y == b.y); -- cgit v1.3