From af5584d2441589bd9736b04499c72c1ed13d0432 Mon Sep 17 00:00:00 2001 From: Khopa Date: Fri, 7 May 2021 12:49:56 +0200 Subject: [PATCH] Added a settings to control the amount smoke effects on frontlines. Default smoke spacing changed from 800 to 1600 (half the current amount) --- game/settings.py | 1 + gen/visualgen.py | 3 ++- qt_ui/windows/settings/QSettingsWindow.py | 33 +++++++++++++++++------ 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/game/settings.py b/game/settings.py index d6338610..7d7bc0d1 100644 --- a/game/settings.py +++ b/game/settings.py @@ -41,6 +41,7 @@ class Settings: # Performance oriented perf_red_alert_state: bool = True perf_smoke_gen: bool = True + perf_smoke_spacing = 1600 perf_artillery: bool = True perf_moving_units: bool = True perf_infantry: bool = True diff --git a/gen/visualgen.py b/gen/visualgen.py index 8c1982fa..74d768a5 100644 --- a/gen/visualgen.py +++ b/gen/visualgen.py @@ -109,7 +109,7 @@ class VisualGenerator: if not plane_start: continue - for offset in range(0, distance, FRONT_SMOKE_SPACING): + for offset in range(0, distance, self.game.settings.perf_smoke_spacing): position = plane_start.point_from_heading(heading, offset) for k, v in FRONT_SMOKE_TYPE_CHANCES.items(): @@ -162,6 +162,7 @@ class VisualGenerator: "", _type=v, position=position, + hidden=True, ) break diff --git a/qt_ui/windows/settings/QSettingsWindow.py b/qt_ui/windows/settings/QSettingsWindow.py index af3f7e8e..7b42a44d 100644 --- a/qt_ui/windows/settings/QSettingsWindow.py +++ b/qt_ui/windows/settings/QSettingsWindow.py @@ -17,6 +17,7 @@ from PySide2.QtWidgets import ( QStackedLayout, QVBoxLayout, QWidget, + QSlider, ) from dcs.forcedoptions import ForcedOptions @@ -518,6 +519,12 @@ class QSettingsWindow(QDialog): self.smoke.setChecked(self.game.settings.perf_smoke_gen) self.smoke.toggled.connect(self.applySettings) + self.smoke_spacing = QSpinBox() + self.smoke_spacing.setMinimum(800) + self.smoke_spacing.setMaximum(24000) + self.smoke_spacing.setValue(self.game.settings.perf_smoke_spacing) + self.smoke_spacing.valueChanged.connect(self.applySettings) + self.red_alert = QCheckBox() self.red_alert.setChecked(self.game.settings.perf_red_alert_state) self.red_alert.toggled.connect(self.applySettings) @@ -558,18 +565,27 @@ class QSettingsWindow(QDialog): QLabel("Smoke visual effect on frontline"), 0, 0 ) self.performanceLayout.addWidget(self.smoke, 0, 1, alignment=Qt.AlignRight) - self.performanceLayout.addWidget(QLabel("SAM starts in RED alert mode"), 1, 0) - self.performanceLayout.addWidget(self.red_alert, 1, 1, alignment=Qt.AlignRight) - self.performanceLayout.addWidget(QLabel("Artillery strikes"), 2, 0) - self.performanceLayout.addWidget(self.arti, 2, 1, alignment=Qt.AlignRight) - self.performanceLayout.addWidget(QLabel("Moving ground units"), 3, 0) self.performanceLayout.addWidget( - self.moving_units, 3, 1, alignment=Qt.AlignRight + QLabel("Smoke generator spacing (higher means less smoke)"), + 1, + 0, + alignment=Qt.AlignRight, ) self.performanceLayout.addWidget( - QLabel("Generate infantry squads along vehicles"), 4, 0 + self.smoke_spacing, 1, 1, alignment=Qt.AlignRight ) - self.performanceLayout.addWidget(self.infantry, 4, 1, alignment=Qt.AlignRight) + self.performanceLayout.addWidget(QLabel("SAM starts in RED alert mode"), 2, 0) + self.performanceLayout.addWidget(self.red_alert, 2, 1, alignment=Qt.AlignRight) + self.performanceLayout.addWidget(QLabel("Artillery strikes"), 3, 0) + self.performanceLayout.addWidget(self.arti, 3, 1, alignment=Qt.AlignRight) + self.performanceLayout.addWidget(QLabel("Moving ground units"), 4, 0) + self.performanceLayout.addWidget( + self.moving_units, 4, 1, alignment=Qt.AlignRight + ) + self.performanceLayout.addWidget( + QLabel("Generate infantry squads along vehicles"), 5, 0 + ) + self.performanceLayout.addWidget(self.infantry, 5, 1, alignment=Qt.AlignRight) self.performanceLayout.addWidget( QLabel("Include destroyed units carcass"), 6, 0 ) @@ -681,6 +697,7 @@ class QSettingsWindow(QDialog): self.game.settings.perf_red_alert_state = self.red_alert.isChecked() self.game.settings.perf_smoke_gen = self.smoke.isChecked() + self.game.settings.perf_smoke_spacing = self.smoke_spacing.value() self.game.settings.perf_artillery = self.arti.isChecked() self.game.settings.perf_moving_units = self.moving_units.isChecked() self.game.settings.perf_infantry = self.infantry.isChecked()