summaryrefslogtreecommitdiff
path: root/src/project.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-01-31 19:31:10 -0500
committerJonathan Bradley <jcb@pikum.xyz>2025-01-31 19:31:10 -0500
commit47d3d48ad76d6a4e40da1d945cbc8940ae2922c7 (patch)
tree233963233206323b11e440394d61d97ee68b34f3 /src/project.cpp
parent61cb835291af07cfc59c123241c3641a2fba185f (diff)
pke: first-pass font serialization
Diffstat (limited to 'src/project.cpp')
-rw-r--r--src/project.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/project.cpp b/src/project.cpp
index ee8a0b1..891e5ea 100644
--- a/src/project.cpp
+++ b/src/project.cpp
@@ -4,6 +4,7 @@
#include "plugins.hpp"
#include "entities.hpp"
#include "helpers.hpp"
+#include "font.hpp"
#include <fstream>
#include <ostream>
@@ -18,6 +19,7 @@ const char* const PKE_PROJ_FILE_OBJ_END = "";
const char* const PKE_PROJ_FILE_OBJ_PROJECT_SETTINGS = "ProjectSettings:";
const char* const PKE_PROJ_FILE_OBJ_ENTITY_TYPE = "EntityType:";
const char* const PKE_PROJ_FILE_OBJ_ASSET = "Asset:";
+const char* const PKE_PROJ_FILE_OBJ_FONT = "Font:";
const char* const PKE_PROJ_FILE_PROJ_SETTINGS_DEFAULT_SCENE_NAME = "PkeSet::DefaultSceneName: ";
const char* const PKE_PROJ_FILE_PROJ_SETTINGS_SCENE_COUNT = "PkeSet::SceneCount: ";
@@ -332,6 +334,10 @@ void PkeProject_Load(const char *filePath) {
Proj_ParseEntityType(f);
continue;
}
+ if (strcmp(PKE_PROJ_FILE_OBJ_FONT, projReadLine) == 0) {
+ FontType_Deserialize(f);
+ continue;
+ }
}
f.close();
@@ -388,6 +394,16 @@ void PkeProject_Save(const char *filePath) {
}
}
+ FontTypeIndex font_count;
+ FontType *fonts = FontType_GetFonts(font_count);
+ for (FontTypeIndex b = FontTypeIndex{0}; b < font_count; ++b) {
+ FontType *ft = &fonts[(FontTypeIndex_T)b];
+ if (ft->title.val == nullptr) continue;
+ f << PKE_PROJ_FILE_OBJ_FONT << std::endl;
+ FontType_Serialize(f, ft);
+ f << PKE_PROJ_FILE_OBJ_END << std::endl;
+ }
+
f << PKE_PROJ_FILE_END << std::endl;
f.flush();