diff options
Diffstat (limited to 'game/src/Game/GameStart.gd')
-rw-r--r-- | game/src/Game/GameStart.gd | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/game/src/Game/GameStart.gd b/game/src/Game/GameStart.gd index 723086e..422a42a 100644 --- a/game/src/Game/GameStart.gd +++ b/game/src/Game/GameStart.gd @@ -25,39 +25,42 @@ func _ready() -> void: loading_screen.start_loading_screen(_initialize_game) -# REQUIREMENTS -# * FS-333, FS-334, FS-335, FS-341 -func _initialize_game() -> void: - GameSingleton.setup_logger() - loading_screen.try_update_loading_screen(5) - +func _load_compatibility_mode(): # Set this to your Vic2 install dir or a mod's dir to enable compatibility mode # (this won't work for mods which rely on vanilla map assets, copy missing assets # into the mod's dir for a temporary fix) # Usage: OpenVic --compatibility-mode <path> - var compatibility_mode_path : String = ArgumentParser.get_argument(&"compatibility-mode") + var compatibility_mode_path : String = ArgumentParser.get_argument(&"compatibility-mode", "") + + if not compatibility_mode_path: + # TODO - non-Windows default paths + const default_path : String = "C:/Program Files (x86)/Steam/steamapps/common/Victoria 2" + compatibility_mode_path = default_path + + var compatibility_mode_paths : PackedStringArray = [compatibility_mode_path] + + # Example for adding mod paths + #compatibility_mode_paths.push_back("C:/Program Files (x86)/Steam/steamapps/common/Victoria 2/mod/TGC") + if GameSingleton.load_defines_compatibility_mode(compatibility_mode_paths) != OK: + push_error("Errors loading game defines!") + +# REQUIREMENTS +# * FS-333, FS-334, FS-335, FS-341 +func _initialize_game() -> void: var start := Time.get_ticks_usec() + loading_screen.try_update_loading_screen(0) + GameSingleton.setup_logger() - loading_screen.try_update_loading_screen(15) - loading_screen.try_update_loading_screen(25) Localisation.initialize() - loading_screen.try_update_loading_screen(45) - loading_screen.try_update_loading_screen(50, true) - - # TODO: Loading takes way too long to keep the LoadingScreen at 50% - # Should either split this up or seperately multithread the compatibility mode loader - # Or both and emit a signal that allows us to add percentages to the LoadingScreen - if compatibility_mode_path: - if GameSingleton.load_defines_compatibility_mode(compatibility_mode_path) != OK: - push_error("Errors loading game defines!") - else: - GameLoader.define_filepaths_dict.make_read_only() - if GameSingleton.load_defines(GameLoader.define_filepaths_dict) != OK: - push_error("Errors loading game defines!") + loading_screen.try_update_loading_screen(15, true) + + _load_compatibility_mode() + loading_screen.try_update_loading_screen(75, true) loading_screen.try_update_loading_screen(100) + var end := Time.get_ticks_usec() print("Loading took ", float(end - start) / 1000000, " seconds") |