mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
65 lines
1.7 KiB
Python
Executable File
65 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import logging
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
import dcs
|
|
|
|
import ui.corruptedsavemenu
|
|
import ui.mainmenu
|
|
import ui.newgamemenu
|
|
import ui.window
|
|
from game.game import Game
|
|
from userdata import persistency, logging as logging_module
|
|
|
|
assert len(sys.argv) >= 3, "__init__.py should be started with two mandatory arguments: %UserProfile% location and application version"
|
|
|
|
persistency.setup(sys.argv[1])
|
|
dcs.planes.FlyingType.payload_dirs = [os.path.join(os.path.dirname(os.path.realpath(__file__)), "resources\\payloads")]
|
|
|
|
VERSION_STRING = sys.argv[2]
|
|
logging_module.setup_version_string(VERSION_STRING)
|
|
logging.info("Using {} as userdata folder".format(persistency.base_path()))
|
|
|
|
|
|
def proceed_to_main_menu(game: Game):
|
|
m = ui.mainmenu.MainMenu(w, None, game)
|
|
m.display()
|
|
|
|
|
|
def is_version_compatible(save_version):
|
|
current_version_components = re.split(r"[\._]", VERSION_STRING)
|
|
save_version_components = re.split(r"[\._]", save_version)
|
|
|
|
if "--ignore-save" in sys.argv:
|
|
return False
|
|
|
|
if current_version_components == save_version_components:
|
|
return True
|
|
|
|
if save_version in ["1.4_rc1", "1.4_rc2", "1.4_rc3", "1.4_rc4", "1.4_rc5", "1.4_rc6"]:
|
|
return False
|
|
|
|
if current_version_components[:2] == save_version_components[:2]:
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
w = ui.window.Window()
|
|
|
|
try:
|
|
game = persistency.restore_game()
|
|
if not game or not is_version_compatible(game.settings.version):
|
|
ui.newgamemenu.NewGameMenu(w, w.start_new_game).display()
|
|
else:
|
|
game.settings.version = VERSION_STRING
|
|
proceed_to_main_menu(game)
|
|
except Exception as e:
|
|
logging.exception(e)
|
|
ui.corruptedsavemenu.CorruptedSaveMenu(w).display()
|
|
|
|
w.run()
|
|
|