summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-10-01 15:13:16 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-10-01 15:13:16 -0400
commit784aafce17590613543f7042357bb1c8def87cd4 (patch)
treeb0f36d77217b15396b4351686e949867db57c434 /src
parent1877193d6cbf8193f1231b082e99c5f14acfbf44 (diff)
pke: actually deserialize scene passed as arg
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/game.cpp b/src/game.cpp
index ef3f2fb..c4a023d 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -170,10 +170,11 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) {
if (!pkeSettings.args.levelName) {
// TODO uuids
pke_level *lvl = pke_level_create("faux-level", pk_uuid_zed, pk_uuid_zed);
+ fprintf(stdout, "[Game_Main] Creating faux level.\n");
pkeSettings.rt.activeLevel = lvl;
}
- if (!pkeSettings.args.levelName && pkeSettings.args.sceneName) {
+ if (pkeSettings.args.levelName == nullptr && pkeSettings.args.sceneName != nullptr) {
scene_instance si{};
pke_scene *scene;
std::ifstream f(pkeSettings.args.sceneName);
@@ -181,11 +182,13 @@ void Game_Main(PKEWindowProperties windowProps, const char *executablePath) {
fprintf(stdout, "[Game_Main] Did not find scene by name specified in arg: '%s'\n", pkeSettings.args.sceneName);
goto GAME_SHUTDOWN;
}
+ fprintf(stdout, "[Game_Main] loading scene from arg (expecting path): %s\n", pkeSettings.args.sceneName);
srlztn_deserialize_helper *h = pke_deserialize_init(pkeSettings.rt.activeLevel, pkeSettings.mem_bkt.game_transient);
// 2025-09-09 JCB Scenes no longer contain anything so I'm not sure there's a reason to create one here.
// spit-balling here, maybe "scene" files should be assets and not much more.
scene = pke_scene_create(pkeSettings.args.sceneName);
pke_deserialize_scene_from_stream(f, h);
+ pke_deserialize_scene(h);
pke_deserialize_teardown(h);
si.scene_handle = scene->scene_handle;
pk_arr_append_t(&pkeSettings.rt.activeLevel->scene_instances, si);