Added a settings to control the amount smoke effects on frontlines. Default smoke spacing changed from 800 to 1600 (half the current amount)

This commit is contained in:
Khopa 2021-05-07 12:49:56 +02:00
parent b289e41a0d
commit af5584d244
3 changed files with 28 additions and 9 deletions

View File

@ -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

View File

@ -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

View File

@ -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()