diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-21 16:25:53 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-21 16:25:53 -0400 |
| commit | f42e0d2d433ae126a32a604835598a1d8b7150f1 (patch) | |
| tree | 40109c896005f8022531cd9a4c71b898983326d2 /src/serialization-font.cpp | |
| parent | 4b1615c76b5b4fe110eb01392c98eddaf03bb103 (diff) | |
pke: reference FontType via title over uuid
Diffstat (limited to 'src/serialization-font.cpp')
| -rw-r--r-- | src/serialization-font.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
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<char>(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<char>(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<char>(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<FontType *>(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); } |
