From f42e0d2d433ae126a32a604835598a1d8b7150f1 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Wed, 21 May 2025 16:25:53 -0400 Subject: pke: reference FontType via title over uuid --- src/serialization-font.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/serialization-font.cpp') diff --git a/src/serialization-font.cpp b/src/serialization-font.cpp index b57e6e7..c0a9471 100644 --- a/src/serialization-font.cpp +++ b/src/serialization-font.cpp @@ -10,6 +10,7 @@ pk_handle pke_serialize_font_render(srlztn_serialize_helper *h, FontRender *fr) assert(h != nullptr); assert(fr != nullptr); char *s; + int len; pk_handle font_render_settings_handle; pke_kve kve{}; pke_kve_container kvec{}; @@ -38,10 +39,11 @@ pk_handle pke_serialize_font_render(srlztn_serialize_helper *h, FontRender *fr) pk_arr_append_t(&kvec.arr, kve); } { - kve.key = SRLZTN_UI_FONT_RENDER_FONT_TYPE_UUID; - s = pk_new(37, h->bkt); + kve.key = SRLZTN_UI_FONT_RENDER_FONT_TYPE_TITLE; FontType *ft = FontType_Get(fr->fr_handle.index_ft); - sprintf(s, pk_uuid_printf_format, pk_uuid_printf_var(ft->uuid)); + len = snprintf(nullptr, 0, "%s", ft->title.val); + s = pk_new(len+1, h->bkt); + sprintf(s, "%s", ft->title.val); kve.val = s; kve.end = SRLZTN_KVE_END; pk_arr_append_t(&kvec.arr, kve); @@ -69,8 +71,8 @@ void pke_deserialize_font_render(srlztn_deserialize_helper *h, pke_kve_container pke_kve *kve = nullptr; pk_uuid uuid; - pk_uuid font_type_uuid; pk_cstr str; + FontType *font_type_ent; FontRenderSettings frs{}; pke_deserialize_font_render_settings(h, kvec->children[0], &frs); @@ -82,8 +84,14 @@ void pke_deserialize_font_render(srlztn_deserialize_helper *h, pke_kve_container kve->val >> uuid; continue; } - if (strcmp(kve->key, SRLZTN_UI_FONT_RENDER_FONT_TYPE_UUID) == 0) { - kve->val >> font_type_uuid; + if (strcmp(kve->key, SRLZTN_UI_FONT_RENDER_FONT_TYPE_TITLE) == 0) { + pk_cstr font_type_title; + font_type_title.length = strlen(kve->val) + 1; + font_type_title.reserved = font_type_title.length + 1; + s = pk_new(font_type_title.reserved, h->bkt); + sprintf(s, "%s", kve->val); + font_type_title.val = s; + font_type_ent = FontType_GetByTitle(font_type_title); continue; } if (strcmp(kve->key, SRLZTN_UI_FONT_RENDER_TEXT_BEGIN) == 0) { @@ -97,8 +105,8 @@ void pke_deserialize_font_render(srlztn_deserialize_helper *h, pke_kve_container } } - FontType *font_type_ent = static_cast(ECS_GetEntityByUUID(font_type_uuid)); // parent is set later - up to the parent to take ownership + assert(font_type_ent != nullptr); FontType_AddStringRender(font_type_ent->index_ft, std::move(str), &frs, nullptr, uuid); } -- cgit v1.2.3