Basic pathfinding

This commit is contained in:
2023-11-14 08:25:55 +01:00
parent b3f3d269ee
commit ab817ee03d
9 changed files with 198 additions and 39 deletions

View File

@@ -32,6 +32,7 @@ set(BreezeSources
breeze/core/memory.c
breeze/core/module_system.c
breeze/utils/heap.c
breeze/map/map.c
breeze/map/tileset.c
@@ -47,7 +48,6 @@ set(BreezeHeaders
breeze/map/map.h
breeze/map/tileset.h
breeze/utils/heap.c
breeze/utils/heap.h
breeze/utils/string.h
breeze/utils/tokenizer.h

View File

@@ -36,6 +36,10 @@ void *_bzHeapNew(i32 startCapacity, i32 stride, i32 weightOffset) {
void _bzHeapFree(void *heap) {
bzFree(HEAP_HEAD(heap));
}
void _bzHeapReset(void *heap) {
BzHeap *head = HEAP_HEAD(heap);
head->size = 0;
}
i32 _bzHeapSize(void *heap) {
return HEAP_HEAD(heap)->size;

View File

@@ -5,6 +5,7 @@
void *_bzHeapNew(i32 startCapacity, i32 stride, i32 weightOffset);
void _bzHeapFree(void *heap);
void _bzHeapReset(void *heap);
i32 _bzHeapSize(void *heap);
bool _bzHeapIsEmpty(void *heap);
@@ -14,14 +15,15 @@ i32 _bzHeapPushTmpIdx(void *heap);
#define bzHeapNew(T, n) (T *) ((T *)_bzHeapNew((n), sizeof(T), offsetof(T, weight)))
#define bzHeapFree(heap) _bzHeapFree((void *) (heap))
#define bzHeapReset(heap) _bzHeapReset((void *) (heap))
#define bzHeapSize(heap) _bzHeapSize((void *) (heap))
#define bzHeapIsEmpty(heap) _bzHeapIsEmpty((void *) (heap))
#define bzHeapPop(heap) ((heap)[_bzHeapPop((void *) (heap))])
#define bzHeapPush(heap, item) do { \
void *h = (void *) (heap); \
(heap)[_bzHeapPushTmpIdx(h)] = (item); \
_bzHeapPush(h); \
#define bzHeapPush(heap, ...) do { \
void *h = (void *) (heap); \
(heap)[_bzHeapPushTmpIdx(h)] = (__VA_ARGS__); \
_bzHeapPush(h); \
} while(0)