mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Fine-tune "save payload" logic
This commit is contained in:
parent
64f6a10ced
commit
15be9e3ce1
@ -79,17 +79,19 @@ class QLoadoutEditor(QGroupBox):
|
|||||||
ac_type = self.flight.unit_type.dcs_unit_type
|
ac_type = self.flight.unit_type.dcs_unit_type
|
||||||
ac_id = ac_type.id
|
ac_id = ac_type.id
|
||||||
payload_file = dcs.payloads.PayloadDirectories.user() / f"{ac_id}.lua"
|
payload_file = dcs.payloads.PayloadDirectories.user() / f"{ac_id}.lua"
|
||||||
ac_type.payloads.update(
|
ac_type.payloads[payload_name] = DcsPayload.from_flight(
|
||||||
key=payload_name,
|
self.flight, payload_name
|
||||||
value=DcsPayload.from_flight(self.flight, payload_name).to_dict(),
|
).to_dict()
|
||||||
)
|
|
||||||
if payload_file.exists():
|
if payload_file.exists():
|
||||||
self._create_backup_if_needed(ac_id)
|
self._create_backup_if_needed(ac_id)
|
||||||
with payload_file.open("r", encoding="utf-8") as f:
|
with payload_file.open("r", encoding="utf-8") as f:
|
||||||
payloads = dcs.lua.loads(f.read())
|
payloads = dcs.lua.loads(f.read())
|
||||||
if payloads:
|
if payloads:
|
||||||
pdict = payloads["unitPayloads"]["payloads"]
|
pdict = payloads["unitPayloads"]["payloads"]
|
||||||
next_key = max(pdict.keys()) + 1
|
next_key = len(pdict) + 1
|
||||||
|
for p in pdict:
|
||||||
|
if pdict[p]["name"] == payload_name:
|
||||||
|
next_key = p
|
||||||
pdict[next_key] = DcsPayload.from_flight(
|
pdict[next_key] = DcsPayload.from_flight(
|
||||||
self.flight, payload_name
|
self.flight, payload_name
|
||||||
).to_dict()
|
).to_dict()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user