Behaviour tree decorator implementation

This commit is contained in:
2024-01-09 17:10:00 +01:00
parent 5486c3189f
commit d7feba04db
8 changed files with 517 additions and 1 deletions

View File

@@ -69,10 +69,11 @@ BzObjectPool *bzObjectPoolCreate(const BzObjectPoolDesc *desc) {
if (stride < sizeof(i32)) {
stride = sizeof(i32);
}
BZ_ASSERT(desc->objectsPerPage > 0);
BZ_ASSERT(desc->objectsPerPage >= 0);
BZ_ASSERT(desc->objectsPerPage < (2 << 23));
size_t objectsPerPage = desc->objectsPerPage;
if (objectsPerPage == 0) objectsPerPage = 512;
size_t pageCapacity = 8;
void **pages = bzAlloc(sizeof(*pages) * pageCapacity);
@@ -100,6 +101,10 @@ void bzObjectPoolDestroy(BzObjectPool *pool) {
bzFree(pool);
}
size_t bzObjectPoolGetObjectSize(BzObjectPool *pool) {
return pool->stride;
}
size_t bzObjectPoolGetNumFree(BzObjectPool *pool) {
return pool->numFree;
}

View File

@@ -17,6 +17,8 @@ typedef struct BzObjectPoolDesc {
BzObjectPool *bzObjectPoolCreate(const BzObjectPoolDesc *desc);
void bzObjectPoolDestroy(BzObjectPool *pool);
size_t bzObjectPoolGetObjectSize(BzObjectPool *pool);
size_t bzObjectPoolGetNumFree(BzObjectPool *pool);
void *bzObjectPool(BzObjectPool *pool);
void *bzObjectPoolGetObject(BzObjectPool *pool, u32 idx);