summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-29 14:58:19 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-29 14:58:19 -0400
commit71948b1ea4e4729304deed17ea6cbc0406989ee6 (patch)
tree1334b8d41827156306e3330d0595b59ed2611e6a
parent447f8a1cea239ef0f4d2fd04199f81881de50890 (diff)
pke: ECS entity logging
-rw-r--r--src/ecs.cpp14
-rw-r--r--tests/pke-test-load-unload.cpp6
2 files changed, 15 insertions, 5 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 6fcbeb4..a74c33d 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -103,6 +103,8 @@ EntityHandle ECS_CreateEntity(Entity_Base *entity, Entity_Base *parentEntity) {
}
if (entity->uuid == pk_uuid_max || entity->uuid == pk_uuid_zed) entity->uuid = pk_uuid_new_v7();
ecs.bc.entityPtrs[entityHandle] = entity;
+ fprintf(stdout, "[ECS] %hhu:%hhu - " pk_uuid_printf_format " Entity Created (registered).\n", entity->handle.b, entity->handle.i, pk_uuid_printf_var(entity->uuid));
+ fflush(stdout);
return entityHandle;
}
@@ -126,6 +128,8 @@ Entity_Base *ECS_GetEntityByUUID(pk_uuid uuid) {
void ECS_MarkForRemoval(Entity_Base *entity) {
assert(entity->handle != EntityHandle_MAX && "Attempting to remove invalid entity");
assert(entity->isMarkedForRemoval == false && "Entity already marked for removal");
+ fprintf(stdout, "[ECS] %hhu:%hhu - " pk_uuid_printf_format " Entity Marked For Removal.\n", entity->handle.b, entity->handle.i, pk_uuid_printf_var(entity->uuid));
+ fflush(stdout);
pk_arr_append_t(&entitiesMarkedForRemoval, entity);
}
@@ -143,7 +147,7 @@ void ECS_Tick_Early(double delta) {
pk_iter_t<pke_component_event> iter_comp_ev{};
pk_iter_t<CompInstance> iter_inst{};
Entity_Base *parentEnt;
- bool shouldRun = entitiesMarkedForRemoval.next > 0 || entitiesYetToBeRemoved.next > 0;
+ bool shouldRun = entitiesMarkedForRemoval.next > 0;
if (!shouldRun) return;
// this has the potential to be slow as balls
@@ -158,12 +162,13 @@ void ECS_Tick_Early(double delta) {
// Might need to do several passes?
pk_arr_reserve(&entitiesYetToBeRemoved, entitiesMarkedForRemoval.reserved);
- pk_arr_clear(&entitiesYetToBeRemoved);
b = pk_arr_iter_begin(&entitiesMarkedForRemoval, &iter_ent);
while (b == true) {
(*iter_ent)->isMarkedForRemoval = true;
pk_arr_append_t(&entitiesYetToBeRemoved, (*iter_ent)->handle);
+ fprintf(stdout, "[ECS] %hhu:%hhu - " pk_uuid_printf_format " Entity Flagged For Removal.\n", (*iter_ent)->handle.b, (*iter_ent)->handle.i, pk_uuid_printf_var((*iter_ent)->uuid));
+ fflush(stdout);
b = pk_arr_iter_increment(&entitiesMarkedForRemoval, &iter_ent);
}
pk_arr_clear(&entitiesMarkedForRemoval);
@@ -187,6 +192,8 @@ void ECS_Tick_Early(double delta) {
any = true;
(*iter_ent)->isMarkedForRemoval = true;
pk_arr_append_t(&entitiesYetToBeRemoved, (*iter_ent)->handle);
+ fprintf(stdout, "[ECS] %hhu:%hhu - " pk_uuid_printf_format " Entity Flagged For Removal (child).\n", (*iter_ent)->handle.b, (*iter_ent)->handle.i, pk_uuid_printf_var((*iter_ent)->uuid));
+ fflush(stdout);
}
b = pk_bkt_arr_iter_increment(&ecs.bc.entityPtrs, &iter_ent);
@@ -400,8 +407,11 @@ void ECS_Tick_Late(double delta) {
b = pk_arr_iter_begin(&entitiesYetToBeRemoved, &iter_ent_handle);
while (b == true) {
pk_bkt_arr_free_handle(&ecs.bc.entityPtrs, *iter_ent_handle);
+ fprintf(stdout, "[ECS] %hhu:%hhu - Entity Removed.\n", iter_ent_handle->b, iter_ent_handle->i);
+ fflush(stdout);
b = pk_arr_iter_increment(&entitiesYetToBeRemoved, &iter_ent_handle);
}
+ pk_arr_clear(&entitiesYetToBeRemoved);
while (bufferUpdates.next > 0) {
InstanceBufferCopy &ibc = bufferUpdates[bufferUpdates.next - 1];
diff --git a/tests/pke-test-load-unload.cpp b/tests/pke-test-load-unload.cpp
index f714538..6f7fd66 100644
--- a/tests/pke-test-load-unload.cpp
+++ b/tests/pke-test-load-unload.cpp
@@ -97,7 +97,7 @@ int pke_test_load_unload_do_thing_001(int iteration) {
PKE_TEST_ASSERT(pkeSettings.rt.nextLevel == NULL, err_index);
PKE_TEST_ASSERT(pkeSettings.rt.previousLevel == NULL, err_index);
PKE_TEST_ASSERT(entitiesMarkedForRemoval.next == 0, err_index);
- PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 1, err_index);
+ PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 0, err_index);
// fprintf(stdout, "tick 3\n");
Game_Tick(double(1.0 / 120.0));
// print_entities_marked_for_removal();
@@ -162,7 +162,7 @@ int pke_test_load_unload_do_thing_002(int iteration) {
PKE_TEST_ASSERT(pkeSettings.rt.nextLevel == NULL, err_index);
PKE_TEST_ASSERT(pkeSettings.rt.previousLevel == NULL, err_index);
PKE_TEST_ASSERT(entitiesMarkedForRemoval.next == 0, err_index);
- PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 1, err_index);
+ PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 0, err_index);
// fprintf(stdout, "tick 3\n");
Game_Tick(double(1.0 / 120.0));
// print_entities_marked_for_removal();
@@ -186,7 +186,7 @@ int pke_test_load_unload_do_thing_002(int iteration) {
PKE_TEST_ASSERT(pkeSettings.rt.nextLevel == NULL, err_index);
PKE_TEST_ASSERT(pkeSettings.rt.previousLevel == NULL, err_index);
PKE_TEST_ASSERT(entitiesMarkedForRemoval.next == 0, err_index);
- PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 3, err_index);
+ PKE_TEST_ASSERT(entitiesYetToBeRemoved.next == 0, err_index);
// fprintf(stdout, "tick 5\n");
Game_Tick(double(1.0 / 120.0));
// print_entities_marked_for_removal();