summaryrefslogtreecommitdiff
path: root/src/serialization.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
commitf7bd0793424ed8e024520a941cc4cfcf4eb84de2 (patch)
tree37519eced8f4f66973d88b822513c7841d29a9fe /src/serialization.cpp
parent3583af4e1c7979e8d309693d53fbe9184e067a50 (diff)
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'src/serialization.cpp')
-rw-r--r--src/serialization.cpp39
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;