diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-28 17:40:45 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-28 17:40:45 -0400 |
| commit | dfd1776e1af9b8da86005a294e4b086fbe6e7f4e (patch) | |
| tree | 7271607e2a56343200df38341043584771350d1a /src/serialization.cpp | |
| parent | 3a81898eed7eed7b220d280a8acc9c9cdceac7c0 (diff) | |
pke: camera: replace BucketContainer -> pk_bkt_arr
Diffstat (limited to 'src/serialization.cpp')
| -rw-r--r-- | src/serialization.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/serialization.cpp b/src/serialization.cpp index 66a0f4b..b7691fd 100644 --- a/src/serialization.cpp +++ b/src/serialization.cpp @@ -64,6 +64,8 @@ void pke_deserialize_project_from_stream(std::istream &i, srlztn_deserialize_hel } void pke_serialize_scene(srlztn_serialize_helper *h) { + using CamIterFn = pk_tmpln_1<void, PkeCamera*, void*>; + CamIterFn cam_iter_cb{}; FontTypeIndex font_type_count; FontType *fonts = FontType_GetFonts(font_type_count); for (FontTypeIndex_T b = 0; b < (FontTypeIndex_T)font_type_count; ++b) { @@ -95,17 +97,13 @@ void pke_serialize_scene(srlztn_serialize_helper *h) { } } - pk_handle_bucket_index_T cameraBucketCount = PkeCamera_GetBucketCount(); - for (pk_handle_bucket_index_T b = 0; b < cameraBucketCount; ++b) { - pk_handle_item_index_T count; - auto *cameras = PkeCamera_GetCameras(b, count); - for (pk_handle_item_index_T i = 0; i < count; ++i) { - const auto &cam = cameras[i]; - if (cam.handle == CameraHandle_MAX) - continue; - pke_serialize_camera(h, &cam); + cam_iter_cb.func = [&h](PkeCamera *cam_ptr) { + if (cam_ptr->camHandle == CameraHandle_MAX) { + return; } - } + pke_serialize_camera(h, cam_ptr); + }; + pk_bkt_arr_iterate(&PkeCamera_GetPkBktArr(), &CamIterFn::invoke, &cam_iter_cb); } void pke_deserialize_scene(srlztn_deserialize_helper *h) { uint32_t i; |
