summaryrefslogtreecommitdiff
path: root/src/serialization.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-28 17:40:45 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-28 17:40:45 -0400
commitdfd1776e1af9b8da86005a294e4b086fbe6e7f4e (patch)
tree7271607e2a56343200df38341043584771350d1a /src/serialization.cpp
parent3a81898eed7eed7b220d280a8acc9c9cdceac7c0 (diff)
pke: camera: replace BucketContainer -> pk_bkt_arr
Diffstat (limited to 'src/serialization.cpp')
-rw-r--r--src/serialization.cpp18
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;