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
2022-03-26 13:17:54 -04:00
committed by Julian Murgia
parent 7ff0176d62
commit 2508786cde
2 changed files with 14 additions and 11 deletions

View File

@@ -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()

View File

@@ -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]