fix: break loading up into two batches so objects can be loaded and accessed by other code in the loading method here

This commit is contained in:
Duncan Brown authored and Julian Murgia committed 2022-04-08 21:18:57 +02:00
1 parent 7ff0176d62
commit 2508786cde
2 files changed
+14 -11

No files matched your search

@@ -52,17 +52,6 @@ var current_room_key: ESCRoomObjectsKey
# To avoid having to look this up all the time, we hold a reference.
var reserved_objects_container: ESCRoomObjects
# To avoid having to look this up all the time, we hold a reference.
var reserved_objects_container: ESCRoomObjects
func _init() -> void:
reserved_objects_container = ESCRoomObjects.new()
reserved_objects_container.is_reserved = true
reserved_objects_container.objects = {}
room_objects.push_back(reserved_objects_container)
current_room_key = ESCRoomObjectsKey.new()
func _init() -> void:
reserved_objects_container = ESCRoomObjects.new()
@@ -291,6 +291,20 @@ func load_game(id: int):
)
)
load_event.statements = load_statements
escoria.set_game_paused(false)
escoria.event_manager.queue_event(load_event)
# Wait for the scene to be loaded so we have access to objects, etc.
var rc = yield(escoria.event_manager, "event_finished")
while rc[1] != escoria.event_manager.EVENT_LOAD:
rc = yield(escoria.event_manager, "event_finished")
# We then carry on with other "load"-related commands.
escoria.set_game_paused(true)
load_statements = []
## GLOBALS
for k in save_game.globals.keys():
var global_value = save_game.globals[k]