summaryrefslogtreecommitdiff
path: root/src/project.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-30 17:21:38 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-30 17:21:38 -0400
commit2a2b5c4dbfe278e282b3d8ae0352a11da50c872a (patch)
treead0f61c521d2fe0f79a55a72e36af39161b25067 /src/project.cpp
parentf1d22f3fde0cb7bf201168a11774793b4efc98f7 (diff)
pke: entities: BucketContainer>pk_bkt_arr_t
Diffstat (limited to 'src/project.cpp')
-rw-r--r--src/project.cpp23
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);