summaryrefslogtreecommitdiff
path: root/src/project.cpp
diff options
context:
space:
mode:
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);