mirror of
https://github.com/spencershepard/RotorOps.git
synced 2025-11-10 15:45:30 +00:00
..
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user