summaryrefslogtreecommitdiff
path: root/src/serialization.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-06-11 16:04:48 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-06-11 16:04:54 -0400
commit0f89d12e747b380b35143815a2c8e87c6ee752d4 (patch)
tree78617e7cb819093aa9c0ad107b5dc79891e8ff55 /src/serialization.cpp
parente478bae42cf886a12433331937887de4c4e85ce2 (diff)
pke: serialize PkeInput first-pass
Diffstat (limited to 'src/serialization.cpp')
-rw-r--r--src/serialization.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/serialization.cpp b/src/serialization.cpp
index e7e1d4c..3bd589d 100644
--- a/src/serialization.cpp
+++ b/src/serialization.cpp
@@ -2,11 +2,13 @@
#include "serialization.hpp"
#include "font.hpp"
#include "pk.h"
+#include "player-input.hpp"
#include "serialization-component.hpp"
#include "serialization-camera.hpp"
#include "camera.hpp"
#include "ecs.hpp"
#include "serialization-font.hpp"
+#include "serialization-input.hpp"
#include "serialization-static-ui.hpp"
#include "static-ui.hpp"
@@ -69,6 +71,14 @@ void pke_serialize_scene(srlztn_serialize_helper *h) {
CamIterFn cam_iter_cb{};
InstIterFn inst_iter_cb{};
+ pk_arr_t<PkeInputSet> &sets = PkeInput_GetInputSets();
+ for (uint32_t i = 0; i < sets.next; ++i) {
+ if (PK_HAS_FLAG(sets[i].flags, PKE_INPUT_ACTION_SET_FLAG_DO_NOT_SERIALIZE)) {
+ continue;
+ }
+ pke_serialize_input_set(h, &sets[i]);
+ }
+
FontTypeIndex font_type_count;
FontType *fonts = FontType_GetFonts(font_type_count);
for (FontTypeIndex_T b = 0; b < (FontTypeIndex_T)font_type_count; ++b) {
@@ -110,6 +120,10 @@ void pke_deserialize_scene(srlztn_deserialize_helper *h) {
for (i = 0; i < h->kvp_containers.next; ++i) {
kvec = &h->kvp_containers[i];
+ if (strcmp(kvec->type_code.val, SRLZTN_OBJ_INPUT_SET) == 0) {
+ pke_deserialize_input_set(h, kvec);
+ continue;
+ }
if (strcmp(kvec->type_code.val, SRLZTN_OBJ_FONT_RENDER) == 0) {
pke_deserialize_font_render(h, kvec);
continue;