diff --git a/game/campaignloader/campaign.py b/game/campaignloader/campaign.py index 7f87bf1e..03b5a05a 100644 --- a/game/campaignloader/campaign.py +++ b/game/campaignloader/campaign.py @@ -31,7 +31,7 @@ DEFAULT_BUDGET = 2000 @dataclass(frozen=True) class Campaign: name: str - icon_name: str + menu_thumbnail_dcs_relative_path: Path authors: str description: str @@ -89,7 +89,7 @@ class Campaign: return cls( data["name"], - f"Terrain_{sanitized_theater}", + TheaterLoader(data["theater"].lower()).menu_thumbnail_dcs_relative_path, data.get("authors", "???"), data.get("description", ""), (version.major, version.minor), diff --git a/game/theater/theaterloader.py b/game/theater/theaterloader.py index d494715f..3dad8c19 100644 --- a/game/theater/theaterloader.py +++ b/game/theater/theaterloader.py @@ -73,6 +73,13 @@ class TheaterLoader: def landmap_path(self) -> Path: return self.descriptor_path.with_name("landmap.p") + @property + def menu_thumbnail_dcs_relative_path(self) -> Path: + with self.descriptor_path.open() as descriptor_file: + data = yaml.safe_load(descriptor_file) + name = data.get("pydcs_name", data["name"]) + return Path("Mods/terrains") / name / "Theme/icon.png" + def load(self) -> ConflictTheater: with self.descriptor_path.open() as descriptor_file: data = yaml.safe_load(descriptor_file) diff --git a/qt_ui/uiconstants.py b/qt_ui/uiconstants.py index 2dd8032c..4d239c16 100644 --- a/qt_ui/uiconstants.py +++ b/qt_ui/uiconstants.py @@ -63,16 +63,6 @@ def load_icons(): ICONS["Hangar"] = QPixmap("./resources/ui/misc/hangar.png") - ICONS["Terrain_Caucasus"] = QPixmap("./resources/ui/terrain_caucasus.gif") - ICONS["Terrain_PersianGulf"] = QPixmap("./resources/ui/terrain_pg.gif") - ICONS["Terrain_Nevada"] = QPixmap("./resources/ui/terrain_nevada.gif") - ICONS["Terrain_Normandy"] = QPixmap("./resources/ui/terrain_normandy.gif") - ICONS["Terrain_TheChannel"] = QPixmap("./resources/ui/terrain_channel.gif") - ICONS["Terrain_Syria"] = QPixmap("./resources/ui/terrain_syria.gif") - ICONS["Terrain_MarianaIslands"] = QPixmap("./resources/ui/terrain_marianas.gif") - # TODO - ICONS["Terrain_Falklands"] = QPixmap("./resources/ui/terrain_marianas.gif") - ICONS["Dawn"] = QPixmap("./resources/ui/conditions/timeofday/dawn.png") ICONS["Day"] = QPixmap("./resources/ui/conditions/timeofday/day.png") ICONS["Dusk"] = QPixmap("./resources/ui/conditions/timeofday/dusk.png") diff --git a/qt_ui/windows/newgame/QCampaignList.py b/qt_ui/windows/newgame/QCampaignList.py index a5fcf305..d21d33b7 100644 --- a/qt_ui/windows/newgame/QCampaignList.py +++ b/qt_ui/windows/newgame/QCampaignList.py @@ -4,18 +4,20 @@ from typing import Optional from PySide2 import QtGui from PySide2.QtCore import QItemSelectionModel, QModelIndex, Qt -from PySide2.QtGui import QStandardItem, QStandardItemModel +from PySide2.QtGui import QPixmap, QStandardItem, QStandardItemModel from PySide2.QtWidgets import QAbstractItemView, QListView -import qt_ui.uiconstants as CONST from game.campaignloader.campaign import Campaign +from qt_ui.liberation_install import get_dcs_install_directory class QCampaignItem(QStandardItem): def __init__(self, campaign: Campaign) -> None: super(QCampaignItem, self).__init__() self.setData(campaign, QCampaignList.CampaignRole) - self.setIcon(QtGui.QIcon(CONST.ICONS[campaign.icon_name])) + dcs_path = get_dcs_install_directory() + icon_path = dcs_path / campaign.menu_thumbnail_dcs_relative_path + self.setIcon(QtGui.QIcon(QPixmap(str(icon_path)))) self.setEditable(False) if campaign.is_compatible: name = campaign.name diff --git a/resources/ui/terrain_caucasus.gif b/resources/ui/terrain_caucasus.gif deleted file mode 100644 index 9fb79352..00000000 Binary files a/resources/ui/terrain_caucasus.gif and /dev/null differ diff --git a/resources/ui/terrain_channel.gif b/resources/ui/terrain_channel.gif deleted file mode 100644 index 97f4561a..00000000 Binary files a/resources/ui/terrain_channel.gif and /dev/null differ diff --git a/resources/ui/terrain_marianas.gif b/resources/ui/terrain_marianas.gif deleted file mode 100644 index 2546cb88..00000000 Binary files a/resources/ui/terrain_marianas.gif and /dev/null differ diff --git a/resources/ui/terrain_nevada.gif b/resources/ui/terrain_nevada.gif deleted file mode 100644 index de705d09..00000000 Binary files a/resources/ui/terrain_nevada.gif and /dev/null differ diff --git a/resources/ui/terrain_normandy.gif b/resources/ui/terrain_normandy.gif deleted file mode 100644 index 33686f05..00000000 Binary files a/resources/ui/terrain_normandy.gif and /dev/null differ diff --git a/resources/ui/terrain_pg.gif b/resources/ui/terrain_pg.gif deleted file mode 100644 index 0321cc9c..00000000 Binary files a/resources/ui/terrain_pg.gif and /dev/null differ diff --git a/resources/ui/terrain_syria.gif b/resources/ui/terrain_syria.gif deleted file mode 100644 index 1c261d57..00000000 Binary files a/resources/ui/terrain_syria.gif and /dev/null differ