summaryrefslogtreecommitdiff
path: root/src/serialization-font.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-21 16:25:53 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-21 16:25:53 -0400
commitf42e0d2d433ae126a32a604835598a1d8b7150f1 (patch)
tree40109c896005f8022531cd9a4c71b898983326d2 /src/serialization-font.cpp
parent4b1615c76b5b4fe110eb01392c98eddaf03bb103 (diff)
pke: reference FontType via title over uuid
Diffstat (limited to 'src/serialization-font.cpp')
-rw-r--r--src/serialization-font.cpp22
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);
}