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 /src/project.cpp | |
| parent | f1d22f3fde0cb7bf201168a11774793b4efc98f7 (diff) | |
pke: entities: BucketContainer>pk_bkt_arr_t
Diffstat (limited to 'src/project.cpp')
| -rw-r--r-- | src/project.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/project.cpp b/src/project.cpp index dcb84ae..cfb54f2 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -381,7 +381,10 @@ void PkeProject_Save(const char *filePath) { */ using AssetLoopFn = pk_tmpln_1<void, Asset *, void *>; + using ETLoopFn = pk_tmpln_1<void, EntityType *, void *>; AssetLoopFn asset_loop_cb{}; + ETLoopFn et_loop_cb{}; + asset_loop_cb.func = [&stream](Asset *arr_obj_data) { if (PK_HAS_FLAG(arr_obj_data->flags, PKE_ASSET_FLAGS_MEM_STATIC)) return; // TODO 2025-05-30 JCB @@ -400,19 +403,15 @@ void PkeProject_Save(const char *filePath) { }; pk_bkt_arr_iterate(AM_GetAssets(), &AssetLoopFn::invoke, &asset_loop_cb); - const auto entBucketCount = EntityType_GetBucketCount(); - for (pk_handle_bucket_index_T b = 0; b < entBucketCount; ++b) { - pk_handle_item_index_T itemCount = 0; - auto *entities = EntityType_GetEntityTypes(b, itemCount); - for (pk_handle_item_index_T i = 0; i < itemCount; ++i) { - if (entities[i].modelAssetKey[0] == '\0') { - continue; - } - stream << PKE_PROJ_FILE_OBJ_ENTITY_TYPE << std::endl; - Proj_SerializeEntityType(stream, entities[i]); - stream << PKE_PROJ_FILE_OBJ_END << std::endl; + et_loop_cb.func = [&stream](EntityType *arr_obj_data) { + if (arr_obj_data->modelAssetKey[0] == '\0') { + return; } - } + stream << PKE_PROJ_FILE_OBJ_ENTITY_TYPE << std::endl; + Proj_SerializeEntityType(stream, *arr_obj_data); + stream << PKE_PROJ_FILE_OBJ_END << std::endl; + }; + pk_bkt_arr_iterate(EntityType_GetEntityTypes(), &ETLoopFn::invoke, &et_loop_cb); FontTypeIndex font_count; FontType *fonts = FontType_GetFonts(font_count); |
