diff options
Diffstat (limited to 'src/serialization.cpp')
| -rw-r--r-- | src/serialization.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/serialization.cpp b/src/serialization.cpp index a09a332..ac6aebc 100644 --- a/src/serialization.cpp +++ b/src/serialization.cpp @@ -69,6 +69,7 @@ void pke_deserialize_project_from_stream(std::istream &i, srlztn_deserialize_hel void pke_serialize_scene(srlztn_serialize_helper *h) { bool b; pk_bkt_arr *bkt_arr_instance; + pk_iter_t<FontType> iter_ft{}; pk_iter_t<CompInstance> iter_instance{}; pk_iter_t<PkeCamera> iter_cam{}; @@ -80,16 +81,15 @@ void pke_serialize_scene(srlztn_serialize_helper *h) { pke_serialize_input_set(h, &sets[i]); } - uint64_t idx_unused; - FontType *fonts = FontType_GetFonts(idx_unused); - for (FontTypeIndex_T b = 0; b < PKE_FONT_MAX_FONT_TYPES; ++b) { - if ((idx_unused & (1llu << b)) != 0) continue; - FontType *ft = &fonts[b]; + pk_bkt_arr_t<FontType> *fonts = static_cast<pk_bkt_arr_t<FontType>*>(FontType_GetFonts()); + b = pk_bkt_arr_iter_begin(fonts, &iter_ft); + while(b) { pk_bkt_arr_t<FontRender>::FN_Iter iter_fn{}; iter_fn.func = [&h](FontRender *fr) { pke_serialize_font_render(h, fr); }; - pk_bkt_arr_iterate(&ft->renders, iter_fn.invoke, &iter_fn); + pk_bkt_arr_iterate(&iter_ft->renders, iter_fn.invoke, &iter_fn); + b = pk_bkt_arr_iter_increment(fonts, &iter_ft); } pke_ui_box_count_T box_count; |
