load_scene now set the loaded scene as the current scene by default. It is opt-out with make_current=false
This commit is contained in:
@@ -44,11 +44,16 @@ visitor :: (info : *File_Visit_Info, files: *[..] Entity_File_Info) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
load_scene :: (name: string) -> *Scene {
|
load_scene :: (name: string, make_current: bool = true) -> *Scene {
|
||||||
scene := create_scene(name, 1024);
|
scene := create_scene(name, 1024);
|
||||||
|
|
||||||
|
if make_current {
|
||||||
|
engine.current_scene = scene;
|
||||||
|
}
|
||||||
|
|
||||||
scene.mode = engine.mode;
|
scene.mode = engine.mode;
|
||||||
|
|
||||||
if engine.procs.on_scene_loaded != null {
|
if engine.procs.on_pre_scene_loaded != null {
|
||||||
engine.procs.on_pre_scene_loaded(scene, engine.mode);
|
engine.procs.on_pre_scene_loaded(scene, engine.mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,17 +148,15 @@ unload_scene :: (scene: *Scene) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch_to_scene :: (scene_name: string) {
|
switch_to_scene :: (scene_name: string) {
|
||||||
|
prev := engine.current_scene;
|
||||||
new_scene := load_scene(scene_name);
|
new_scene := load_scene(scene_name);
|
||||||
|
unload_scene(prev);
|
||||||
unload_scene(engine.current_scene);
|
|
||||||
|
|
||||||
engine.current_scene = new_scene;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reload_scene :: (scene: *Scene) {
|
reload_scene :: (scene: *Scene) {
|
||||||
name := copy_temporary_string(scene.name);
|
name := copy_temporary_string(scene.name);
|
||||||
unload_scene(engine.current_scene);
|
unload_scene(engine.current_scene);
|
||||||
engine.current_scene = load_scene(name);
|
load_scene(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
create_scene :: (name: string = "", max_entities: s64 = 256) -> *Scene {
|
create_scene :: (name: string = "", max_entities: s64 = 256) -> *Scene {
|
||||||
|
|||||||
Reference in New Issue
Block a user