diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-30 17:21:38 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-30 17:21:38 -0400 |
| commit | 2a2b5c4dbfe278e282b3d8ae0352a11da50c872a (patch) | |
| tree | ad0f61c521d2fe0f79a55a72e36af39161b25067 /editor | |
| parent | f1d22f3fde0cb7bf201168a11774793b4efc98f7 (diff) | |
pke: entities: BucketContainer>pk_bkt_arr_t
Diffstat (limited to 'editor')
| -rw-r--r-- | editor/editor.cpp | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/editor/editor.cpp b/editor/editor.cpp index 3de8d85..03049bc 100644 --- a/editor/editor.cpp +++ b/editor/editor.cpp @@ -733,37 +733,30 @@ void RecordImGuiEntityTypes() { ImGui::TableSetupColumn("Instances"); ImGui::TableHeadersRow(); - pk_handle_bucket_index_T cameraBucketCount = EntityType_GetBucketCount(); - for (pk_handle_bucket_index_T b = 0; b < cameraBucketCount; ++b) { - pk_handle_item_index_T count; - auto *entityTypes = EntityType_GetEntityTypes(b, count); - ImGui::PushID(b); - for (pk_handle_item_index_T i = 0; i < count; ++i) { - const auto &et = entityTypes[i]; - if (et.handle == EntityHandle_MAX) - continue; - ImGui::PushID(i); - ImGui::TableNextRow(); - ImGui::TableSetColumnIndex(0); - ImGui::Text("0x%08X 0x%08X", et.handle.b, et.handle.i); - ImGui::TableSetColumnIndex(1); - ImGui::Text("%*.*s", 0, (int)AssetKeyLength, et.modelAssetKey); - ImGui::TableSetColumnIndex(2); - ImGui::Text("%s", et.entityTypeCode.val); - ImGui::TableSetColumnIndex(3); - ImGui::Text("count: %li", et.detailsCount); - ImGui::TableSetColumnIndex(4); - if (ImGui::Button("Add")) { - pk_arr_append_t(&entityInstancesToCreate, const_cast<EntityType *>(&et)); - } - ImGui::SameLine(); - ImGui::Text("count: %u", et.details[0].grBinds->instanceCounter); - ImGui::PopID(); + size_t counter = 0; + auto et_iter_cb = [](void *user_data, void *arr_obj_data) { + size_t &counter = *reinterpret_cast<size_t *>(user_data); + const EntityType &et = *reinterpret_cast<EntityType*>(arr_obj_data); + ImGui::PushID(counter++); + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + ImGui::Text("0x%08X 0x%08X", et.handle.b, et.handle.i); + ImGui::TableSetColumnIndex(1); + ImGui::Text("%*.*s", 0, (int)AssetKeyLength, et.modelAssetKey); + ImGui::TableSetColumnIndex(2); + ImGui::Text("%s", et.entityTypeCode.val); + ImGui::TableSetColumnIndex(3); + ImGui::Text("count: %li", et.detailsCount); + ImGui::TableSetColumnIndex(4); + if (ImGui::Button("Add")) { + pk_arr_append_t(&entityInstancesToCreate, const_cast<EntityType *>(&et)); } + ImGui::SameLine(); + ImGui::Text("count: %u", et.details[0].grBinds->instanceCounter); ImGui::PopID(); - } + }; + pk_bkt_arr_iterate(EntityType_GetEntityTypes(), et_iter_cb, &counter); ImGui::EndTable(); - } ImGui::End(); } |
