diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-29 14:58:19 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-29 14:58:19 -0400 |
| commit | 71948b1ea4e4729304deed17ea6cbc0406989ee6 (patch) | |
| tree | 1334b8d41827156306e3330d0595b59ed2611e6a | |
| parent | 447f8a1cea239ef0f4d2fd04199f81881de50890 (diff) | |
pke: ECS entity logging
| -rw-r--r-- | src/ecs.cpp | 14 | ||||
| -rw-r--r-- | tests/pke-test-load-unload.cpp | 6 |
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(); |
