This commit is contained in:
spencer-ki
2022-02-27 09:39:04 -08:00
parent 8160fc29ff
commit 0860dca3c7
6 changed files with 210 additions and 128 deletions

View File

@@ -6,6 +6,7 @@ import RotorOpsMission as ROps
import RotorOpsUtils
import RotorOpsUnits
import logging
import json
from PyQt5.QtWidgets import (
QApplication, QDialog, QMainWindow, QMessageBox
@@ -36,7 +37,7 @@ sys.excepthook = handle_exception
maj_version = 0
minor_version = 5
minor_version = 6
version_string = str(maj_version) + "." + str(minor_version)
scenarios = []
red_forces_files = []
@@ -76,6 +77,8 @@ class Window(QMainWindow, Ui_MainWindow):
self.version_label.setText("Version " + version_string)
self.prefs = None # holds json from scenario preference files
def connectSignalsSlots(self):
self.action_generateMission.triggered.connect(self.generateMissionAction)
@@ -109,6 +112,7 @@ class Window(QMainWindow, Ui_MainWindow):
self.slot_template_comboBox.addItem("Multiple Slots")
for type in RotorOpsUnits.client_helos:
self.slot_template_comboBox.addItem(type.id)
self.slot_template_comboBox.addItem("None")
def defensiveModeChanged(self):
if self.defense_checkBox.isChecked():
@@ -118,6 +122,46 @@ class Window(QMainWindow, Ui_MainWindow):
self.red_forces_label.setText(defenders_text)
self.blue_forces_label.setText(attackers_text)
self.applyScenarioPrefs()
def loadScenarioPrefs(self, filename):
try:
j = open(filename)
prefs = json.load(j)
j.close()
return prefs
except:
return None
def lockedSlot(self):
return self.slot_template_comboBox.findText("Locked to Scenario")
def clearScenarioPrefs(self):
# reset default states
self.defense_checkBox.setEnabled(True)
if self.lockedSlot():
self.slot_template_comboBox.removeItem(self.lockedSlot())
self.slot_template_comboBox.setEnabled(True)
self.slot_template_comboBox.setCurrentIndex(0)
def applyScenarioPrefs(self):
if self.prefs['defense']['allowed'] == False:
self.defense_checkBox.setChecked(False)
self.defense_checkBox.setEnabled(False)
elif self.prefs['offense']['allowed'] == False:
self.defense_checkBox.setChecked(True)
self.defense_checkBox.setEnabled(False)
if self.prefs['defense']['player_spawn'] == "fixed":
self.slot_template_comboBox.addItem("Locked to Scenario")
self.slot_template_comboBox.setCurrentIndex(self.lockedSlot())
self.slot_template_comboBox.setEnabled(False)
def scenarioChanged(self):
os.chdir(self.m.scenarios_dir)
@@ -136,6 +180,13 @@ class Window(QMainWindow, Ui_MainWindow):
friendly_airports = True
enemy_airports = True
self.clearScenarioPrefs()
prefs_filename = filename.removesuffix(".miz") + ".json"
self.prefs = self.loadScenarioPrefs(prefs_filename)
if self.prefs:
self.applyScenarioPrefs()
for zone in zones:
if zone.name == "STAGING":
staging_zones += 1
@@ -174,7 +225,6 @@ class Window(QMainWindow, Ui_MainWindow):
+ "\n== BRIEFING ==\n\n"
+ source_mission.description_text()
)
#self.description_textBrowser.setText("File error occured.")
def generateMissionAction(self):