summaryrefslogtreecommitdiff
path: root/src/level-types.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-09 16:05:14 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-09 16:05:14 -0400
commit5daa12fed0449a7811fc25ec62236bc060a56fa7 (patch)
tree5af5ff1c4de2ab49dd4d1db9934b3b4ee34a54c2 /src/level-types.hpp
parentc40277cd665e04d300ea839a1dd2ff675655f5fb (diff)
pke: first-pass promote pke_level over pke_scene
Major runtime ownership overhaul (scene -> level). Major ecs 'marked for removal' overhaul, ensuring that entities and their components are actually being removed when levels are unloaded.
Diffstat (limited to 'src/level-types.hpp')
-rw-r--r--src/level-types.hpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/level-types.hpp b/src/level-types.hpp
index ce0d060..46cbad2 100644
--- a/src/level-types.hpp
+++ b/src/level-types.hpp
@@ -1,8 +1,12 @@
#ifndef PKE_LEVEL_TYPES_HPP
#define PKE_LEVEL_TYPES_HPP
+#include "camera.hpp"
#include "components.hpp"
+#include "player-input.hpp"
+#include "static-ui.hpp"
#include "vendor-glm-include.hpp"
+
#include "pk.h"
struct scene_instance {
@@ -16,11 +20,17 @@ const uint8_t LEVEL_NAME_MAX_LEN = 16;
#define pke_level_name_printf_format "%16s"
struct pke_level : public Entity_Base {
- char *file_path = nullptr;
+ pk_cstr file_path = {};
struct pk_membucket *bkt = nullptr;
char name[LEVEL_NAME_MAX_LEN] = {'\0'};
LevelHandle levelHandle = LevelHandle_MAX;
pk_arr_t<scene_instance> scene_instances;
+ pk_arr_t<PkeCamera *> cameras;
+ pk_arr_t<pke_ui_box *> root_ui_boxes;
+ pk_arr_t<pke_input_action_set_handle> input_handles;
+ PkeCallback pke_cb_tick = {};
+ PkeCallback pke_cb_spinup = {};
+ PkeCallback pke_cb_teardown = {};
};
#endif /* PKE_LEVEL_TYPES_HPP */