diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-28 14:04:12 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-08-28 14:04:12 -0400 |
| commit | f7bd0793424ed8e024520a941cc4cfcf4eb84de2 (patch) | |
| tree | 37519eced8f4f66973d88b822513c7841d29a9fe /src/serialization.cpp | |
| parent | 3583af4e1c7979e8d309693d53fbe9184e067a50 (diff) | |
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'src/serialization.cpp')
| -rw-r--r-- | src/serialization.cpp | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/serialization.cpp b/src/serialization.cpp index 0d8f2e1..96dd5b5 100644 --- a/src/serialization.cpp +++ b/src/serialization.cpp @@ -66,10 +66,10 @@ 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*>; - using InstIterFn = pk_tmpln_1<void, CompInstance*, void*>; - CamIterFn cam_iter_cb{}; - InstIterFn inst_iter_cb{}; + bool b; + pk_bkt_arr *bkt_arr_instance; + pk_iter_t<CompInstance> iter_instance{}; + pk_iter_t<PkeCamera> iter_cam{}; pk_arr_t<pke_input_set> &sets = pke_input_get_input_sets(); for (uint32_t i = 0; i < sets.next; ++i) { @@ -97,22 +97,27 @@ void pke_serialize_scene(srlztn_serialize_helper *h) { pke_serialize_ui_box(h, ui_boxes[i]); } - inst_iter_cb.func = [&h](CompInstance *instance_ptr) { - const auto &instance = *instance_ptr; - if (PK_HAS_FLAG(instance.comp_instance_flags, COMPONENT_INSTANCE_FLAG_DO_NOT_SERIALIZE)) { - return; + bkt_arr_instance = ECS_GetInstances(); + b = pk_bkt_arr_iter_begin(bkt_arr_instance, &iter_instance); + while (b == true) { + if (PK_HAS_FLAG(iter_instance->comp_instance_flags, COMPONENT_INSTANCE_FLAG_DO_NOT_SERIALIZE)) { + b = pk_bkt_arr_iter_increment(bkt_arr_instance, &iter_instance); + continue; } - pke_serialize_instance(h, &instance); - }; - pk_bkt_arr_iterate(ECS_GetInstances(), &InstIterFn::invoke, &inst_iter_cb); + pke_serialize_instance(h, iter_instance); + b = pk_bkt_arr_iter_increment(bkt_arr_instance, &iter_instance); + } - cam_iter_cb.func = [&h](PkeCamera *cam_ptr) { - if (cam_ptr->camHandle == CameraHandle_MAX) { - return; + pk_bkt_arr &bkt_arr_cams = PkeCamera_GetPkBktArr(); + b = pk_bkt_arr_iter_begin(&bkt_arr_cams, &iter_cam); + while (b == true) { + if (iter_cam->camHandle == CameraHandle_MAX) { + b = pk_bkt_arr_iter_increment(&bkt_arr_cams, &iter_cam); + continue; } - pke_serialize_camera(h, cam_ptr); - }; - pk_bkt_arr_iterate(&PkeCamera_GetPkBktArr(), &CamIterFn::invoke, &cam_iter_cb); + pke_serialize_camera(h, iter_cam); + b = pk_bkt_arr_iter_increment(&bkt_arr_cams, &iter_cam); + } } void pke_deserialize_scene(srlztn_deserialize_helper *h) { uint32_t i; |
