* Improved game checking mechanism
* Some code refactor
* Updated .gitignore

Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
2024-12-06 23:23:53 +07:00
parent 2a20b50943
commit 13e3e0e1b8
5 changed files with 46 additions and 43 deletions

2
.gitignore vendored
View File

@@ -14,7 +14,7 @@
/upx /upx
## Ignore build from cx_Freeze ## Ignore build from cx_Freeze
/prog_build /app_build
## Ignore build files from PyInstaller ## Ignore build files from PyInstaller
/build /build

View File

@@ -109,6 +109,9 @@ class MainWindow(QDialog, Ui_MainWindow):
return adr_list return adr_list
def check_config(self): def check_config(self):
if self.selected_game is None:
self.owns = False
return
cfg_path = "configs/{}/dlc.json".format(self.selected_game) cfg_path = "configs/{}/dlc.json".format(self.selected_game)
if dataIO.is_valid_json(cfg_path) is False: if dataIO.is_valid_json(cfg_path) is False:
self.owns = False self.owns = False
@@ -152,10 +155,12 @@ class MainWindow(QDialog, Ui_MainWindow):
self.old_file = f.read() self.old_file = f.read()
util.set_lines(self.old_file.split("\n")) util.set_lines(self.old_file.split("\n"))
if util.search_line("company.volatile.eurogoodies.magdeburg"): if util.search_line("company.volatile.eurogoodies.dortmund"):
self.selected_game = "ets2" self.selected_game = "ets2"
else: elif util.search_line("company.volatile.ed_mkt.elko"):
self.selected_game = "ats" self.selected_game = "ats"
else:
self.selected_game = None
self.check_config() self.check_config()
if self.owns is not False: if self.owns is not False:
@@ -186,11 +191,10 @@ class MainWindow(QDialog, Ui_MainWindow):
caption=self.tr("Choose your save file..."), caption=self.tr("Choose your save file..."),
filter=self.tr("game.sii")) filter=self.tr("game.sii"))
self.clear_form_data() self.clear_form_data()
if file_path != "": if file_path == "":
self.file_path = file_path
self.get_file_data(file_path)
else:
return return
self.file_path = file_path
self.get_file_data(file_path)
def update_on_startup(self): def update_on_startup(self):
with open(update_config_name, "w") as f: with open(update_config_name, "w") as f:

View File

@@ -54,7 +54,7 @@ def update_configs():
update_list = check_remote_hashes() update_list = check_remote_hashes()
if not update_list or len(update_list) == 0: if not update_list or len(update_list) == 0:
return return
progress_bar = util.show_progress_bar("Download progress", "Downloading configs...", len(update_list)) progress_bar = util.show_progress_bar("Download progress", "Downloading configs", len(update_list))
for cfg in update_list: for cfg in update_list:
check_path(cfg) check_path(cfg)
response_status, response = get_response_result(github_link + cfg) response_status, response = get_response_result(github_link + cfg)

View File

@@ -21,33 +21,32 @@ class SecondWindow(QDialog, Ui_SecondWindow):
self.ui = Ui_SecondWindow() self.ui = Ui_SecondWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
self.owns = owns_list # From main window
# Checking config files # Checking config files
cfg_path = "configs/{}".format(selected_game) if selected_game is not None:
dealers_path = "{}/dealers.json".format(cfg_path) cfg_path = "configs/{}".format(selected_game)
if dataIO.is_valid_json(dealers_path) is False: dealers_path = "{}/dealers.json".format(cfg_path)
self.dealers = False if dataIO.is_valid_json(dealers_path) is False:
self.ui.dealer_edit.setEnabled(False) self.dealers = False
self.ui.dealer_add.setEnabled(False) self.ui.dealer_edit.setEnabled(False)
self.ui.dealer_add_all.setEnabled(False) self.ui.dealer_add.setEnabled(False)
QMessageBox.warning(self, "Warning", "'dealers.json' from '{}' have errors or not found.\n" self.ui.dealer_add_all.setEnabled(False)
"Dealers editing has been disabled".format(selected_game)) QMessageBox.warning(self, "Warning", "'dealers.json' from '{}' have errors or not found.\n"
else: "Dealers editing has been disabled".format(selected_game))
self.dealers = [] else:
self.dealers_file = dataIO.load_json(dealers_path) self.dealers = []
self.dealers_file = dataIO.load_json(dealers_path)
agencies_path = "{}/agencies.json".format(cfg_path) agencies_path = "{}/agencies.json".format(cfg_path)
if dataIO.is_valid_json(agencies_path) is False: if dataIO.is_valid_json(agencies_path) is False:
self.agencies = False self.agencies = False
self.ui.agency_edit.setEnabled(False) self.ui.agency_edit.setEnabled(False)
self.ui.agency_add.setEnabled(False) self.ui.agency_add.setEnabled(False)
self.ui.agency_add_all.setEnabled(False) self.ui.agency_add_all.setEnabled(False)
QMessageBox.warning(self, "Warning", "'agencies.json' from '{}' have errors or not found.\n" QMessageBox.warning(self, "Warning", "'agencies.json' from '{}' have errors or not found.\n"
"Agencies editing has been disabled".format(selected_game)) "Agencies editing has been disabled".format(selected_game))
else: else:
self.agencies = [] self.agencies = []
self.agencies_file = dataIO.load_json(agencies_path) self.agencies_file = dataIO.load_json(agencies_path)
self.ui.garage_size.addItem("Small") self.ui.garage_size.addItem("Small")
self.ui.garage_size.addItem("Medium") self.ui.garage_size.addItem("Medium")
@@ -101,9 +100,9 @@ class SecondWindow(QDialog, Ui_SecondWindow):
self.ui.dealer_add_all.clicked.connect(self.add_all_da_clicked) self.ui.dealer_add_all.clicked.connect(self.add_all_da_clicked)
self.ui.agency_add_all.clicked.connect(self.add_all_da_clicked) self.ui.agency_add_all.clicked.connect(self.add_all_da_clicked)
if self.owns: if isinstance(owns_list, dict):
self.fill_list(self.owns, self.dealers, self.dealers_file) self.fill_list(owns_list, self.dealers, self.dealers_file)
self.fill_list(self.owns, self.agencies, self.agencies_file) self.fill_list(owns_list, self.agencies, self.agencies_file)
# Checking save-file # Checking save-file
self.check_cities() self.check_cities()
@@ -228,7 +227,7 @@ class SecondWindow(QDialog, Ui_SecondWindow):
def add_all_cities(self): def add_all_cities(self):
all_cities = self.all_cities() all_cities = self.all_cities()
visited_cities = util.get_array_items(util.search_line("visited_cities:")) visited_cities = util.get_array_items(util.search_line("visited_cities:"))
progress = util.show_progress_bar("Visiting cities", "Visiting cities...", len(all_cities)-len(visited_cities)) progress = util.show_progress_bar("Visiting cities", "Visiting cities", len(all_cities)-len(visited_cities))
for city in all_cities: for city in all_cities:
if city not in visited_cities: if city not in visited_cities:
util.add_array_value(util.search_line("visited_cities:"), city) util.add_array_value(util.search_line("visited_cities:"), city)
@@ -284,13 +283,13 @@ class SecondWindow(QDialog, Ui_SecondWindow):
if da_arr is None: if da_arr is None:
return return
static_key, success_message, progress_message = da_arr static_key, success_message, progress_message = da_arr
city_list, line_to_search, check_func = self.da_statics.get(static_key) cities_to_unlock, line_to_search, check_func = self.da_statics.get(static_key)
all_cities = self.all_cities() all_cities = self.all_cities()
array_line = util.search_line(line_to_search) array_line = util.search_line(line_to_search)
visited_cities = util.get_array_items(array_line) unlocked_cities = util.get_array_items(array_line)
progress = util.show_progress_bar(progress_message, progress_message+"...", len(all_cities)-len(visited_cities)) progress = util.show_progress_bar(progress_message, progress_message, len(all_cities)-len(unlocked_cities))
for element in city_list: for element in cities_to_unlock:
if (element in all_cities) and (element not in visited_cities): if (element not in unlocked_cities) and (element in all_cities):
util.add_array_value(array_line, element) util.add_array_value(array_line, element)
util.update_progress_bar(progress) util.update_progress_bar(progress)
QMessageBox.information(self, "Success", success_message) QMessageBox.information(self, "Success", success_message)

View File

@@ -39,7 +39,7 @@ class CustomFuncs:
def show_progress_bar(title, text, length): def show_progress_bar(title, text, length):
if (not title) or (not text) or (not length) or (length <= 0): if (not title) or (not text) or (not length) or (length <= 0):
return return
progress_bar = QProgressDialog(text, None, 0, length, flags=Qt.Window | Qt.WindowTitleHint) progress_bar = QProgressDialog(text + "...", None, 0, length, flags=Qt.Window | Qt.WindowTitleHint)
progress_bar.setWindowTitle(title) progress_bar.setWindowTitle(title)
progress_bar.setWindowModality(Qt.WindowModal) progress_bar.setWindowModality(Qt.WindowModal)
progress_bar.show() progress_bar.show()