From 0acae6b2bc2af8468572286d81576e74704c5425 Mon Sep 17 00:00:00 2001 From: mah_boi Date: Tue, 5 May 2026 02:40:09 +0300 Subject: [PATCH] Test --- CMakeLists.txt | 7 ++++ docs/TechTreeJson.md | 4 +-- src/CMakeLists.txt | 15 ++++++++- src/GUI/CMakeLists.txt | 18 ++--------- src/GUI/WindowManager.cpp | 25 +++++++++------ src/Main.cpp | 12 +++++++ src/ProgramConstants.hpp | 26 +++++++++------ .../Profiles/Generals/Images/.gitkeep | 1 + src/Resources/Profiles/Generals/TechTree.json | 3 ++ .../Profiles/Generals/Theme/Styles.css | 1 + .../GeneralsZH/Images}/AirGuard.webp | Bin .../GeneralsZH/Images}/AttackMove.webp | Bin .../GeneralsZH/Images}/CaptureBuilding.webp | Bin .../Images}/DisarmMinesAtPosition.webp | Bin .../GeneralsZH/Images}/EmergencyRepair.webp | Bin .../GeneralsZH/Images}/Evacuate.webp | Bin .../Images}/GLA/DMLAdvancedDemoTrap.webp | Bin .../Images}/GLA/DMLDetonateCharges.webp | Bin .../Images}/GLA/DMLRemoteDemoCharge.webp | Bin .../GeneralsZH/Images}/GLA/DMLSuicide.webp | Bin .../Images}/GLA/DMLTimedDemoCharge.webp | Bin .../GeneralsZH/Images}/GLA/GLAAPBullets.webp | Bin .../GeneralsZH/Images}/GLA/GLAAPRockets.webp | Bin .../GeneralsZH/Images}/GLA/GLAAngryMob.webp | Bin .../Images}/GLA/GLAAnthraxBeta.webp | Bin .../Images}/GLA/GLAAnthraxBomb.webp | Bin .../Images}/GLA/GLAAnthraxShells.webp | Bin .../Images}/GLA/GLAAnthraxWarhead.webp | Bin .../GeneralsZH/Images}/GLA/GLAArmTheMob.webp | Bin .../GeneralsZH/Images}/GLA/GLAArmsDealer.webp | Bin .../GeneralsZH/Images}/GLA/GLABarracks.webp | Bin .../GeneralsZH/Images}/GLA/GLABattleBus.webp | Bin .../GeneralsZH/Images}/GLA/GLABecomeReal.webp | Bin .../GeneralsZH/Images}/GLA/GLABioBomb.webp | Bin .../Images}/GLA/GLABlackMarket.webp | Bin .../GeneralsZH/Images}/GLA/GLABombTruck.webp | Bin .../GeneralsZH/Images}/GLA/GLABoobyTraps.webp | Bin .../Images}/GLA/GLACamoNetting.webp | Bin .../GeneralsZH/Images}/GLA/GLACamouflage.webp | Bin .../GeneralsZH/Images}/GLA/GLACarBomb.webp | Bin .../GeneralsZH/Images}/GLA/GLACombatBike.webp | Bin .../Images}/GLA/GLACommandCenter.webp | Bin .../Images}/GLA/GLAContaminate.webp | Bin .../GeneralsZH/Images}/GLA/GLADemoTrap.webp | Bin .../GeneralsZH/Images}/GLA/GLADetonate.webp | Bin .../GeneralsZH/Images}/GLA/GLADisguise.webp | Bin .../Images}/GLA/GLAExplosiveWarhead.webp | Bin .../Images}/GLA/GLAFakeArmsDealer.webp | Bin .../Images}/GLA/GLAFakeBarracks.webp | Bin .../Images}/GLA/GLAFakeBlackMarket.webp | Bin .../Images}/GLA/GLAFakeCommandCenter.webp | Bin .../Images}/GLA/GLAFakeCommandSet.webp | Bin .../Images}/GLA/GLAFakeSupplyStash.webp | Bin .../Images}/GLA/GLAFortifiedStructure.webp | Bin .../Images}/GLA/GLAGPSScrambler.webp | Bin .../Images}/GLA/GLAHighExplosiveBomb.webp | Bin .../GeneralsZH/Images}/GLA/GLAHijack.webp | Bin .../GeneralsZH/Images}/GLA/GLAHijacker.webp | Bin .../GeneralsZH/Images}/GLA/GLAHole.webp | Bin .../GeneralsZH/Images}/GLA/GLAJarmenKell.webp | Bin .../GeneralsZH/Images}/GLA/GLAJunkRepair.webp | Bin .../Images}/GLA/GLAManualControl.webp | Bin .../Images}/GLA/GLAMarauderTank.webp | Bin .../GeneralsZH/Images}/GLA/GLAPalace.webp | Bin .../GeneralsZH/Images}/GLA/GLAPilotKill.webp | Bin .../Images}/GLA/GLAProximityFuse.webp | Bin .../GeneralsZH/Images}/GLA/GLAQuadCannon.webp | Bin .../GeneralsZH/Images}/GLA/GLARPGTrooper.webp | Bin .../GeneralsZH/Images}/GLA/GLARadarVan.webp | Bin .../Images}/GLA/GLARadarVanScan.webp | Bin .../GeneralsZH/Images}/GLA/GLARebel.webp | Bin .../Images}/GLA/GLARebelAmbush.webp | Bin .../Images}/GLA/GLARocketBuggy.webp | Bin .../Images}/GLA/GLARocketBuggyAmmo.webp | Bin .../GeneralsZH/Images}/GLA/GLASaboteur.webp | Bin .../Images}/GLA/GLAScorpionRocket.webp | Bin .../Images}/GLA/GLAScorpionTank.webp | Bin .../Images}/GLA/GLAScudLauncher.webp | Bin .../GeneralsZH/Images}/GLA/GLAScudStorm.webp | Bin .../Images}/GLA/GLAScudStormLaunch.webp | Bin .../Images}/GLA/GLASneakAttack.webp | Bin .../Images}/GLA/GLAStingerSite.webp | Bin .../Images}/GLA/GLASupplyStash.webp | Bin .../GeneralsZH/Images}/GLA/GLATechnical.webp | Bin .../GeneralsZH/Images}/GLA/GLATerrorist.webp | Bin .../Images}/GLA/GLAToxinTractor.webp | Bin .../Images}/GLA/GLATunnelNetwork.webp | Bin .../GeneralsZH/Images}/GLA/GLAWorker.webp | Bin .../Images}/GLA/GLAWorkerShoes.webp | Bin .../Images}/GLA/TOXAnthraxGamma.webp | Bin .../GeneralsZH/Images}/GLA/TOXRebel.webp | Bin .../Images}/GLA/TOXTunnelNetwork.webp | Bin .../GeneralsZH/Images}/Guard.webp | Bin .../Images}/PRC/INFAssaultTroopTransport.webp | Bin .../Images}/PRC/INFFortifiedBunker.webp | Bin .../GeneralsZH/Images}/PRC/INFMiniGunner.webp | Bin .../GeneralsZH/Images}/PRC/INFSuperLotus.webp | Bin .../GeneralsZH/Images}/PRC/NUKCarpetBomb.webp | Bin .../Images}/PRC/NUKIsotopeStability.webp | Bin .../Images}/PRC/NUKTacticalNukeMig.webp | Bin .../PRC/PRCAdvancedNuclearReactor.webp | Bin .../GeneralsZH/Images}/PRC/PRCAirfield.webp | Bin .../Images}/PRC/PRCArtilleryBarrage.webp | Bin .../GeneralsZH/Images}/PRC/PRCBarracks.webp | Bin .../Images}/PRC/PRCBattlemaster.webp | Bin .../GeneralsZH/Images}/PRC/PRCBlackLotus.webp | Bin .../PRC/PRCBlackLotusCaptureBuilding.webp | Bin .../Images}/PRC/PRCBlackLotusCashHack.webp | Bin .../PRC/PRCBlackLotusDisableVehicle.webp | Bin .../Images}/PRC/PRCBlackNapalm.webp | Bin .../GeneralsZH/Images}/PRC/PRCBunker.webp | Bin .../GeneralsZH/Images}/PRC/PRCCarpetBomb.webp | Bin .../GeneralsZH/Images}/PRC/PRCChainguns.webp | Bin .../Images}/PRC/PRCClusterMine.webp | Bin .../Images}/PRC/PRCCommandCenter.webp | Bin .../Images}/PRC/PRCDisableBuilding.webp | Bin .../Images}/PRC/PRCDisableVehicle.webp | Bin .../GeneralsZH/Images}/PRC/PRCDozer.webp | Bin .../GeneralsZH/Images}/PRC/PRCDragonTank.webp | Bin .../Images}/PRC/PRCDropNapalmBomb.webp | Bin .../Images}/PRC/PRCDropNukeBomb.webp | Bin .../GeneralsZH/Images}/PRC/PRCECMTank.webp | Bin .../GeneralsZH/Images}/PRC/PRCEMPPulse.webp | Bin .../GeneralsZH/Images}/PRC/PRCFireWall.webp | Bin .../GeneralsZH/Images}/PRC/PRCFrenzy.webp | Bin .../Images}/PRC/PRCGattlingCannon.webp | Bin .../Images}/PRC/PRCGattlingTank.webp | Bin .../Images}/PRC/PRCHackInternet.webp | Bin .../GeneralsZH/Images}/PRC/PRCHacker.webp | Bin .../GeneralsZH/Images}/PRC/PRCHelix.webp | Bin .../Images}/PRC/PRCHelixBattleBunker.webp | Bin .../Images}/PRC/PRCHelixGattlingCannon.webp | Bin .../Images}/PRC/PRCHelixSpeakerTower.webp | Bin .../Images}/PRC/PRCInfernoCannon.webp | Bin .../Images}/PRC/PRCInternetCenter.webp | Bin .../GeneralsZH/Images}/PRC/PRCLandMine.webp | Bin .../Images}/PRC/PRCListeningOutpost.webp | Bin .../GeneralsZH/Images}/PRC/PRCMIG.webp | Bin .../GeneralsZH/Images}/PRC/PRCMiGArmour.webp | Bin .../GeneralsZH/Images}/PRC/PRCNapalmBomb.webp | Bin .../Images}/PRC/PRCNationalismIcon.webp | Bin .../Images}/PRC/PRCNeutronMines.webp | Bin .../Images}/PRC/PRCNeutronShells.webp | Bin .../Images}/PRC/PRCNuclearMissile.webp | Bin .../Images}/PRC/PRCNuclearMissileSilo.webp | Bin .../Images}/PRC/PRCNuclearReactor.webp | Bin .../Images}/PRC/PRCNuclearShells.webp | Bin .../Images}/PRC/PRCNuclearTanks.webp | Bin .../GeneralsZH/Images}/PRC/PRCNukeBomb.webp | Bin .../GeneralsZH/Images}/PRC/PRCNukeCannon.webp | Bin .../GeneralsZH/Images}/PRC/PRCOvercharge.webp | Bin .../Images}/PRC/PRCOverlordBattleBunker.webp | Bin .../Images}/PRC/PRCOverlordGatlingCannon.webp | Bin .../PRC/PRCOverlordPropagandaTower.webp | Bin .../Images}/PRC/PRCOverlordTank.webp | Bin .../Images}/PRC/PRCPropagandaCenter.webp | Bin .../Images}/PRC/PRCRadarUpgrade.webp | Bin .../GeneralsZH/Images}/PRC/PRCRedGuard.webp | Bin .../Images}/PRC/PRCSatelliteHack1.webp | Bin .../Images}/PRC/PRCSatelliteHack2.webp | Bin .../Images}/PRC/PRCSpeakerTower.webp | Bin .../Images}/PRC/PRCSubliminalMessaging.webp | Bin .../Images}/PRC/PRCSupplyCenter.webp | Bin .../Images}/PRC/PRCSupplyTruck.webp | Bin .../GeneralsZH/Images}/PRC/PRCTNTAttack.webp | Bin .../GeneralsZH/Images}/PRC/PRCTankHunter.webp | Bin .../Images}/PRC/PRCTroopCrawler.webp | Bin .../Images}/PRC/PRCUraniumShells.webp | Bin .../GeneralsZH/Images}/PRC/PRCWarFactory.webp | Bin .../GeneralsZH/Images}/PRC/TNKAutoloader.webp | Bin .../Images}/PRC/TNKEmperorOverlordTank.webp | Bin .../GeneralsZH/Images}/PRC/TNKTankDrop.webp | Bin .../GeneralsZH/Images}/Paradrop.webp | Bin .../GeneralsZH/Images}/Sell.webp | Bin .../GeneralsZH/Images}/Stop.webp | Bin .../GeneralsZH/Images}/USA/AIRCarpetBomb.webp | Bin .../Images}/USA/AIRCombatChinook.webp | Bin .../GeneralsZH/Images}/USA/AIRKingRaptor.webp | Bin .../USA/AIRStealthComancheUpgrade.webp | Bin .../GeneralsZH/Images}/USA/LSRLaserTank.webp | Bin .../GeneralsZH/Images}/USA/LSRPatriot.webp | Bin .../Images}/USA/SWGAdvancedControlRods.webp | Bin .../Images}/USA/SWGAuroraAlpha.webp | Bin .../Images}/USA/SWGColdFusionReactor.webp | Bin .../GeneralsZH/Images}/USA/SWGPatriot.webp | Bin .../USA/USAA10ThunderboltMissileStrike.webp | Bin .../Images}/USA/USAAdvancedTraining.webp | Bin .../GeneralsZH/Images}/USA/USAAirfield.webp | Bin .../GeneralsZH/Images}/USA/USAAmbulance.webp | Bin .../Images}/USA/USAAmbulanceCleanupArea.webp | Bin .../GeneralsZH/Images}/USA/USAAurora.webp | Bin .../GeneralsZH/Images}/USA/USAAvenger.webp | Bin .../GeneralsZH/Images}/USA/USABarracks.webp | Bin .../Images}/USA/USABattleDrone.webp | Bin .../Images}/USA/USABombardment.webp | Bin .../Images}/USA/USABunkerBusters.webp | Bin .../GeneralsZH/Images}/USA/USABurton.webp | Bin .../Images}/USA/USAChemicalSuits.webp | Bin .../GeneralsZH/Images}/USA/USAChinook.webp | Bin .../Images}/USA/USAColdFusionReactor.webp | Bin .../GeneralsZH/Images}/USA/USAComanche.webp | Bin .../GeneralsZH/Images}/USA/USACombatDrop.webp | Bin .../Images}/USA/USACommandCenter.webp | Bin .../Images}/USA/USACompositeArmour.webp | Bin .../Images}/USA/USAControlRods.webp | Bin .../Images}/USA/USACountermeasures.webp | Bin .../Images}/USA/USACrusaderTank.webp | Bin .../Images}/USA/USADaisyCutter.webp | Bin .../Images}/USA/USADetentionCamp.webp | Bin .../Images}/USA/USADetonateCharges.webp | Bin .../GeneralsZH/Images}/USA/USADozer.webp | Bin .../GeneralsZH/Images}/USA/USADrone.webp | Bin .../GeneralsZH/Images}/USA/USADroneArmor.webp | Bin .../GeneralsZH/Images}/USA/USADropZone.webp | Bin .../GeneralsZH/Images}/USA/USAEvacuate.webp | Bin .../GeneralsZH/Images}/USA/USAFireBase.webp | Bin .../Images}/USA/USAFireRocketPods.webp | Bin .../GeneralsZH/Images}/USA/USAFlashbangs.webp | Bin .../Images}/USA/USAHellfireDrone.webp | Bin .../Images}/USA/USAHoldTheLine.webp | Bin .../GeneralsZH/Images}/USA/USAHumvee.webp | Bin .../Images}/USA/USAIntelligence.webp | Bin .../Images}/USA/USAKnifeAttack.webp | Bin .../Images}/USA/USALaserGuidedMissiles.webp | Bin .../GeneralsZH/Images}/USA/USALaserLock.webp | Bin .../Images}/USA/USALeafletDrop.webp | Bin .../GeneralsZH/Images}/USA/USAMOAB.webp | Bin .../GeneralsZH/Images}/USA/USAMicrowave.webp | Bin .../Images}/USA/USAMissileDefender.webp | Bin .../Images}/USA/USAPaladinTank.webp | Bin .../Images}/USA/USAParticleCannon.webp | Bin .../Images}/USA/USAParticleCannonFire.webp | Bin .../GeneralsZH/Images}/USA/USAPathfinder.webp | Bin .../GeneralsZH/Images}/USA/USAPatriot.webp | Bin .../GeneralsZH/Images}/USA/USAPilot.webp | Bin .../GeneralsZH/Images}/USA/USARanger.webp | Bin .../Images}/USA/USARangerMachineGun.webp | Bin .../GeneralsZH/Images}/USA/USARaptor.webp | Bin .../Images}/USA/USARemoteDemoCharge.webp | Bin .../GeneralsZH/Images}/USA/USARocketPods.webp | Bin .../Images}/USA/USASearchAndDestroy.webp | Bin .../Images}/USA/USASentryDrone.webp | Bin .../Images}/USA/USASentryDroneGun.webp | Bin .../Images}/USA/USASpectreGunship.webp | Bin .../Images}/USA/USASpySattelite.webp | Bin .../Images}/USA/USAStealthFighter.webp | Bin .../Images}/USA/USAStrategyCenter.webp | Bin .../Images}/USA/USASupplyCenter.webp | Bin .../Images}/USA/USASupplyDropZone.webp | Bin .../Images}/USA/USASupplyLines.webp | Bin .../GeneralsZH/Images}/USA/USATOWMissile.webp | Bin .../Images}/USA/USATimedDemoCharge.webp | Bin .../Images}/USA/USATomahawkLauncher.webp | Bin .../GeneralsZH/Images}/USA/USAWarFactory.webp | Bin .../{ => Profiles/GeneralsZH}/TechTree.json | 0 .../GeneralsZH}/Theme/DropArrowDown.webp | Bin .../GeneralsZH}/Theme/DropArrowRight.webp | Bin .../GeneralsZH}/Theme/EditorBackground.webp | Bin .../Theme/EditorBackgroundWithPicture.webp | Bin .../GeneralsZH}/Theme/ScrollArrowDown.webp | Bin .../GeneralsZH}/Theme/ScrollArrowUp.webp | Bin .../Theme/StartMenuBackground.webp | Bin .../GeneralsZH}/Theme/Styles.css | 30 ++++-------------- src/Resources/Profiles/GlobalStyles.css | 15 +++++++++ 264 files changed, 96 insertions(+), 61 deletions(-) create mode 100644 src/Resources/Profiles/Generals/Images/.gitkeep create mode 100644 src/Resources/Profiles/Generals/TechTree.json create mode 100644 src/Resources/Profiles/Generals/Theme/Styles.css rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/AirGuard.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/AttackMove.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/CaptureBuilding.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/DisarmMinesAtPosition.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/EmergencyRepair.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/Evacuate.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/DMLAdvancedDemoTrap.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/DMLDetonateCharges.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/DMLRemoteDemoCharge.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/DMLSuicide.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/DMLTimedDemoCharge.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAPBullets.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAPRockets.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAngryMob.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAnthraxBeta.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAnthraxBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAnthraxShells.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAAnthraxWarhead.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAArmTheMob.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAArmsDealer.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABarracks.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABattleBus.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABecomeReal.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABioBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABlackMarket.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABombTruck.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLABoobyTraps.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLACamoNetting.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLACamouflage.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLACarBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLACombatBike.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLACommandCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAContaminate.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLADemoTrap.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLADetonate.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLADisguise.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAExplosiveWarhead.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeArmsDealer.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeBarracks.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeBlackMarket.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeCommandCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeCommandSet.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFakeSupplyStash.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAFortifiedStructure.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAGPSScrambler.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAHighExplosiveBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAHijack.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAHijacker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAHole.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAJarmenKell.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAJunkRepair.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAManualControl.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAMarauderTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAPalace.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAPilotKill.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAProximityFuse.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAQuadCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARPGTrooper.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARadarVan.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARadarVanScan.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARebel.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARebelAmbush.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARocketBuggy.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLARocketBuggyAmmo.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLASaboteur.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAScorpionRocket.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAScorpionTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAScudLauncher.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAScudStorm.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAScudStormLaunch.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLASneakAttack.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAStingerSite.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLASupplyStash.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLATechnical.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLATerrorist.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAToxinTractor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLATunnelNetwork.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAWorker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/GLAWorkerShoes.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/TOXAnthraxGamma.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/TOXRebel.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/GLA/TOXTunnelNetwork.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/Guard.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/INFAssaultTroopTransport.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/INFFortifiedBunker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/INFMiniGunner.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/INFSuperLotus.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/NUKCarpetBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/NUKIsotopeStability.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/NUKTacticalNukeMig.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCAdvancedNuclearReactor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCAirfield.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCArtilleryBarrage.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBarracks.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBattlemaster.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBlackLotus.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBlackLotusCaptureBuilding.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBlackLotusCashHack.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBlackLotusDisableVehicle.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBlackNapalm.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCBunker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCCarpetBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCChainguns.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCClusterMine.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCCommandCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDisableBuilding.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDisableVehicle.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDozer.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDragonTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDropNapalmBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCDropNukeBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCECMTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCEMPPulse.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCFireWall.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCFrenzy.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCGattlingCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCGattlingTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHackInternet.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHacker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHelix.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHelixBattleBunker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHelixGattlingCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCHelixSpeakerTower.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCInfernoCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCInternetCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCLandMine.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCListeningOutpost.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCMIG.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCMiGArmour.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNapalmBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNationalismIcon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNeutronMines.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNeutronShells.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNuclearMissile.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNuclearMissileSilo.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNuclearReactor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNuclearShells.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNuclearTanks.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNukeBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCNukeCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCOvercharge.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCOverlordBattleBunker.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCOverlordGatlingCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCOverlordPropagandaTower.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCOverlordTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCPropagandaCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCRadarUpgrade.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCRedGuard.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSatelliteHack1.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSatelliteHack2.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSpeakerTower.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSubliminalMessaging.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSupplyCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCSupplyTruck.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCTNTAttack.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCTankHunter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCTroopCrawler.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCUraniumShells.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/PRCWarFactory.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/TNKAutoloader.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/TNKEmperorOverlordTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/PRC/TNKTankDrop.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/Paradrop.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/Sell.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/Stop.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/AIRCarpetBomb.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/AIRCombatChinook.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/AIRKingRaptor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/AIRStealthComancheUpgrade.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/LSRLaserTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/LSRPatriot.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/SWGAdvancedControlRods.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/SWGAuroraAlpha.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/SWGColdFusionReactor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/SWGPatriot.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAA10ThunderboltMissileStrike.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAdvancedTraining.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAirfield.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAmbulance.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAmbulanceCleanupArea.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAurora.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAAvenger.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USABarracks.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USABattleDrone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USABombardment.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USABunkerBusters.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USABurton.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAChemicalSuits.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAChinook.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAColdFusionReactor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAComanche.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USACombatDrop.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USACommandCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USACompositeArmour.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAControlRods.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USACountermeasures.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USACrusaderTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADaisyCutter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADetentionCamp.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADetonateCharges.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADozer.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADrone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADroneArmor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USADropZone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAEvacuate.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAFireBase.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAFireRocketPods.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAFlashbangs.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAHellfireDrone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAHoldTheLine.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAHumvee.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAIntelligence.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAKnifeAttack.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USALaserGuidedMissiles.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USALaserLock.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USALeafletDrop.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAMOAB.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAMicrowave.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAMissileDefender.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAPaladinTank.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAParticleCannon.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAParticleCannonFire.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAPathfinder.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAPatriot.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAPilot.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USARanger.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USARangerMachineGun.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USARaptor.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USARemoteDemoCharge.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USARocketPods.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASearchAndDestroy.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASentryDrone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASentryDroneGun.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASpectreGunship.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASpySattelite.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAStealthFighter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAStrategyCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASupplyCenter.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASupplyDropZone.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USASupplyLines.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USATOWMissile.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USATimedDemoCharge.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USATomahawkLauncher.webp (100%) rename src/Resources/{Icons => Profiles/GeneralsZH/Images}/USA/USAWarFactory.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/TechTree.json (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/DropArrowDown.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/DropArrowRight.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/EditorBackground.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/EditorBackgroundWithPicture.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/ScrollArrowDown.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/ScrollArrowUp.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/StartMenuBackground.webp (100%) rename src/Resources/{ => Profiles/GeneralsZH}/Theme/Styles.css (85%) create mode 100644 src/Resources/Profiles/GlobalStyles.css diff --git a/CMakeLists.txt b/CMakeLists.txt index 097b8cc..72ff167 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,13 @@ file(MAKE_DIRECTORY ${PROJECT_DESTINATION_RESOURCES_FOLDER}) file(MAKE_DIRECTORY ${PROJECT_DESTINATION_BIN_FOLDER}) file(MAKE_DIRECTORY ${PROJECT_DESTINATION_LOGS_FOLDER}) +set_property(GLOBAL PROPERTY PROJECT_LIBS_FOLDER "${PROJECT_LIBS_FOLDER}") +set_property(GLOBAL PROPERTY PROJECT_RESOURCE_FOLDER "${PROJECT_RESOURCE_FOLDER}") +set_property(GLOBAL PROPERTY PROJECT_DESTINATION_FOLDER "${PROJECT_DESTINATION_FOLDER}") +set_property(GLOBAL PROPERTY PROJECT_DESTINATION_RESOURCES_FOLDER "${PROJECT_DESTINATION_RESOURCES_FOLDER}") +set_property(GLOBAL PROPERTY PROJECT_DESTINATION_BIN_FOLDER "${PROJECT_DESTINATION_BIN_FOLDER}") +set_property(GLOBAL PROPERTY PROJECT_DESTINATION_LOGS_FOLDER "${PROJECT_DESTINATION_LOGS_FOLDER}") + # TODO: temporary Qt paths set(CMAKE_PREFIX_PATH "C:/Qt/5.15.2/mingw81_64" "C:/Qt/Tools/mingw_64") diff --git a/docs/TechTreeJson.md b/docs/TechTreeJson.md index 209e8c3..340fa39 100644 --- a/docs/TechTreeJson.md +++ b/docs/TechTreeJson.md @@ -1,8 +1,8 @@ # Tech Tree File Format -The tech tree for Generals Zero Hour in GenHotkeys UI is built from the information in the `TechTree.json` file, rather than from the game's ini files, due to the simplification of information retrieval and data loading. +The tech tree for Generals Zero Hour in GenHotkeys UI is built from the information in the `Resources\Profiles\GeneralsZH\TechTree.json` file, rather than from the game's ini files, due to the simplification of information retrieval and data loading. -The tech tree description file is a JSON structure containing a list of factions called `TechTree`, each of which consists of the following fields: `ShortName`, `DisplayName`, `DisplayNameDescription`, and the following lists: `Buildings`, `Infantry`, `Vehicles`, `Aircraft`. Each element in these lists is also a structure with fields `Name` (defines which .webp file should be loaded from the `Resources\Icons` directory), `IngameName` (defines which string from the .csf file should be taken as the object name) and a list of lists `KeyboardLayouts`. These layouts represent the possible combinations of the GUI for a unit or building. Each element in a layout is a structure with two fields: `IconName` (which defines which .webp file should be loaded from the `Resources/Icons` directory) and `HotkeyString` (which defines which string from the .csf file should be used for the hotkey of the action). +The tech tree description file is a JSON structure containing a list of factions called `TechTree`, each of which consists of the following fields: `ShortName`, `DisplayName`, `DisplayNameDescription`, and the following lists: `Buildings`, `Infantry`, `Vehicles`, `Aircraft`. Each element in these lists is also a structure with fields `Name` (defines which .webp file should be loaded from the `Resources\Profiles\GeneralsZH\Images` directory), `IngameName` (defines which string from the .csf file should be taken as the object name) and a list of lists `KeyboardLayouts`. These layouts represent the possible combinations of the GUI for a unit or building. Each element in a layout is a structure with two fields: `IconName` (which defines which .webp file should be loaded from the `Resources\Profiles\GeneralsZH\Images` directory) and `HotkeyString` (which defines which string from the .csf file should be used for the hotkey of the action). Example: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e57f676..63ba698 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -150,7 +150,6 @@ # Declare json files set( ADDITIONAL_RESOURCES - "${PROJECT_RESOURCE_FOLDER}/TechTree.json" "${PROJECT_RESOURCE_FOLDER}/Settings.json" ) @@ -163,6 +162,20 @@ ) endforeach() + # Copy profiles + file( + REMOVE_RECURSE + "${PROJECT_DESTINATION_RESOURCES_FOLDER}/Profiles" + "${PROJECT_DESTINATION_RESOURCES_FOLDER}/Icons" + "${PROJECT_DESTINATION_RESOURCES_FOLDER}/Theme" + "${PROJECT_DESTINATION_RESOURCES_FOLDER}/TechTree.json" + ) + + file( + COPY "${PROJECT_RESOURCE_FOLDER}/Profiles" + DESTINATION ${PROJECT_DESTINATION_RESOURCES_FOLDER} + ) + # Create hotkey preset directory file(MAKE_DIRECTORY ${PROJECT_DESTINATION_RESOURCES_FOLDER}/Presets) diff --git a/src/GUI/CMakeLists.txt b/src/GUI/CMakeLists.txt index ed5e083..e2bf297 100644 --- a/src/GUI/CMakeLists.txt +++ b/src/GUI/CMakeLists.txt @@ -1,6 +1,6 @@ # General settings # Definitions from ../CMakeLists.txt - get_property(PROJECT_DESTINATION_RESOURCES_FOLDER GLOBAL PROPERTY PROJECT_DESTINATION_SOURCES_FOLDER) + get_property(PROJECT_DESTINATION_RESOURCES_FOLDER GLOBAL PROPERTY PROJECT_DESTINATION_RESOURCES_FOLDER) get_property(PROJECT_RESOURCE_FOLDER GLOBAL PROPERTY PROJECT_RESOURCE_FOLDER) get_property(PROJECT_LIBS_FOLDER GLOBAL PROPERTY PROJECT_LIBS_FOLDER) @@ -121,18 +121,4 @@ # Link the libwebp target to the GUI target target_link_libraries(${TARGET_NAME} PRIVATE ${LIB_WEBP_TARGET_NAME}) -# Copying folders with configs, but without update - # Copy icons - file( - COPY "${PROJECT_RESOURCE_FOLDER}/Icons" - DESTINATION ${PROJECT_DESTINATION_RESOURCES_FOLDER} - ) - - # Copy theme files - file( - COPY "${PROJECT_RESOURCE_FOLDER}/Theme" - DESTINATION ${PROJECT_DESTINATION_RESOURCES_FOLDER} - ) - -# Copy Styles.css with updates - configure_file("${PROJECT_RESOURCE_FOLDER}/Theme/Styles.css" "${PROJECT_DESTINATION_RESOURCES_FOLDER}/Theme/Styles.css") +# Profile resources are copied by the root src CMakeLists.txt. diff --git a/src/GUI/WindowManager.cpp b/src/GUI/WindowManager.cpp index a128fa7..7f20ad1 100644 --- a/src/GUI/WindowManager.cpp +++ b/src/GUI/WindowManager.cpp @@ -20,18 +20,23 @@ WindowManager::WindowManager() qApp->setWindowIcon(QIcon(QPixmap::fromImage(ImageManager::DecodeEditorWebpIcon()))); - LOGMSG("Loading \"" + PROGRAM_CONSTANTS->STYLES_SHEET_FILE + "\"..."); - QFile css{PROGRAM_CONSTANTS->STYLES_SHEET_FILE}; - if (css.open(QIODevice::ReadOnly)) + QString styleSheet; + for (const QString& styleSheetFile : {PROGRAM_CONSTANTS->GLOBAL_STYLES_SHEET_FILE, PROGRAM_CONSTANTS->STYLES_SHEET_FILE}) { - qApp->setStyleSheet(css.readAll()); - css.close(); - LOGMSG("Styles sheet has been loaded"); - } - else - { - LOGMSG("Unable to read the style file"); + LOGMSG("Loading \"" + styleSheetFile + "\"..."); + QFile css{styleSheetFile}; + if (css.open(QIODevice::ReadOnly)) + { + styleSheet += QString::fromUtf8(css.readAll()) + "\n"; + css.close(); + LOGMSG("Styles sheet has been loaded"); + } + else + { + LOGMSG("Unable to read the style file"); + } } + qApp->setStyleSheet(styleSheet); LOGMSG("Loading launch window..."); pStartUpWindow = new SetUpWindowsWrapper(); diff --git a/src/Main.cpp b/src/Main.cpp index aeaf0e7..c8d7587 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -49,6 +49,12 @@ int main(int argc, const char** argv) if (!filesystem::exists(PROGRAM_CONSTANTS->SETTINGS_FILE.toStdString().c_str())) return ShowErrorMessage(PROGRAM_CONSTANTS->SETTINGS_NO_FOUND); + if (!filesystem::exists(PROGRAM_CONSTANTS->PROFILES_FOLDER.toStdString().c_str())) + return ShowErrorMessage(PROGRAM_CONSTANTS->PROFILES_FOLDER_NO_FOUND); + + if (!filesystem::exists(PROGRAM_CONSTANTS->PROFILE_FOLDER.toStdString().c_str())) + return ShowErrorMessage(PROGRAM_CONSTANTS->PROFILE_FOLDER_NO_FOUND); + if (!filesystem::exists(PROGRAM_CONSTANTS->TECH_TREE_FILE.toStdString().c_str())) return ShowErrorMessage(PROGRAM_CONSTANTS->TECH_TREE_NO_FOUND); @@ -58,6 +64,12 @@ int main(int argc, const char** argv) if (!filesystem::exists(PROGRAM_CONSTANTS->THEME_FOLDER.toStdString().c_str())) return ShowErrorMessage(PROGRAM_CONSTANTS->THEME_FOLDER_NO_FOUND); + if (!filesystem::exists(PROGRAM_CONSTANTS->GLOBAL_STYLES_SHEET_FILE.toStdString().c_str())) + return ShowErrorMessage(PROGRAM_CONSTANTS->GLOBAL_STYLES_SHEET_NO_FOUND); + + if (!filesystem::exists(PROGRAM_CONSTANTS->STYLES_SHEET_FILE.toStdString().c_str())) + return ShowErrorMessage(PROGRAM_CONSTANTS->STYLES_SHEET_NO_FOUND); + if (!filesystem::exists(PROGRAM_CONSTANTS->TRANSLATIONS_FOLDER.toStdString().c_str())) return ShowErrorMessage(PROGRAM_CONSTANTS->TRANSLATIONS_NO_FOUND); diff --git a/src/ProgramConstants.hpp b/src/ProgramConstants.hpp index 66f1fad..ddb8232 100644 --- a/src/ProgramConstants.hpp +++ b/src/ProgramConstants.hpp @@ -39,14 +39,18 @@ class ProgramConstants const QString RESOURCE_FOLDER = "Resources"; const QString BINARIES_FOLDER = RESOURCE_FOLDER + "\\Binaries"; const QString TRANSLATIONS_FOLDER = RESOURCE_FOLDER + "/Translations"; - const QString ICONS_FOLDER = RESOURCE_FOLDER + "/Icons"; - const QString THEME_FOLDER = RESOURCE_FOLDER + "/Theme"; + const QString PROFILES_FOLDER = RESOURCE_FOLDER + "/Profiles"; + const QString DEFAULT_PROFILE_NAME = "GeneralsZH"; + const QString PROFILE_FOLDER = PROFILES_FOLDER + "/" + DEFAULT_PROFILE_NAME; + const QString ICONS_FOLDER = PROFILE_FOLDER + "/Images"; + const QString THEME_FOLDER = PROFILE_FOLDER + "/Theme"; const QString QT_ICONS_FOLDER = ":/icons"; // Resource files - const QString TECH_TREE_FILE = RESOURCE_FOLDER + "/TechTree.json"; + const QString TECH_TREE_FILE = PROFILE_FOLDER + "/TechTree.json"; const QString SETTINGS_FILE = RESOURCE_FOLDER + "/Settings.json"; - const QString STYLES_SHEET_FILE = THEME_FOLDER + "/Styles.css"; + const QString GLOBAL_STYLES_SHEET_FILE = PROFILES_FOLDER + "/GlobalStyles.css"; + const QString STYLES_SHEET_FILE = THEME_FOLDER + "/Styles.css"; // Build-in files const QString MISSING_ICON_FILE = QT_ICONS_FOLDER + "/NoImageSmall.webp"; @@ -80,11 +84,15 @@ class ProgramConstants const QSize EDITOR_INITIAL_WINDOW_SIZE = QSize(1200, 800); // Error strings - const QString SETTINGS_NO_FOUND = "Unable to find \"Settings.json\" in \"Resource\" folder."; - const QString TECH_TREE_NO_FOUND = "Unable to find \"TechTree.json\" in \"Resource\" folder."; - const QString THEME_FOLDER_NO_FOUND = "Unable to find \"Resource/Theme\" folder."; - const QString ICONS_FOLDER_NO_FOUND = "Unable to find \"Resource/Icons\" folder."; - const QString TRANSLATIONS_NO_FOUND = "Unable to find \"Resource/Translations\" folder."; + const QString SETTINGS_NO_FOUND = "Unable to find \"" + SETTINGS_FILE + "\"."; + const QString PROFILES_FOLDER_NO_FOUND = "Unable to find \"" + PROFILES_FOLDER + "\" folder."; + const QString PROFILE_FOLDER_NO_FOUND = "Unable to find default profile folder \"" + PROFILE_FOLDER + "\"."; + const QString TECH_TREE_NO_FOUND = "Unable to find \"" + TECH_TREE_FILE + "\"."; + const QString THEME_FOLDER_NO_FOUND = "Unable to find \"" + THEME_FOLDER + "\" folder."; + const QString ICONS_FOLDER_NO_FOUND = "Unable to find \"" + ICONS_FOLDER + "\" folder."; + const QString GLOBAL_STYLES_SHEET_NO_FOUND = "Unable to find \"" + GLOBAL_STYLES_SHEET_FILE + "\"."; + const QString STYLES_SHEET_NO_FOUND = "Unable to find \"" + STYLES_SHEET_FILE + "\"."; + const QString TRANSLATIONS_NO_FOUND = "Unable to find \"" + TRANSLATIONS_FOLDER + "\" folder."; const QString UNKNOWN_ERROR = "Unknown error has been occured."; // Translated error strings diff --git a/src/Resources/Profiles/Generals/Images/.gitkeep b/src/Resources/Profiles/Generals/Images/.gitkeep new file mode 100644 index 0000000..2408b2c --- /dev/null +++ b/src/Resources/Profiles/Generals/Images/.gitkeep @@ -0,0 +1 @@ +Keep the empty profile image directory in source control. diff --git a/src/Resources/Profiles/Generals/TechTree.json b/src/Resources/Profiles/Generals/TechTree.json new file mode 100644 index 0000000..aacf522 --- /dev/null +++ b/src/Resources/Profiles/Generals/TechTree.json @@ -0,0 +1,3 @@ +{ + "TechTree" : [] +} diff --git a/src/Resources/Profiles/Generals/Theme/Styles.css b/src/Resources/Profiles/Generals/Theme/Styles.css new file mode 100644 index 0000000..20eee07 --- /dev/null +++ b/src/Resources/Profiles/Generals/Theme/Styles.css @@ -0,0 +1 @@ +/* Profile-specific styles for C&C: Generals can be added here. */ diff --git a/src/Resources/Icons/AirGuard.webp b/src/Resources/Profiles/GeneralsZH/Images/AirGuard.webp similarity index 100% rename from src/Resources/Icons/AirGuard.webp rename to src/Resources/Profiles/GeneralsZH/Images/AirGuard.webp diff --git a/src/Resources/Icons/AttackMove.webp b/src/Resources/Profiles/GeneralsZH/Images/AttackMove.webp similarity index 100% rename from src/Resources/Icons/AttackMove.webp rename to src/Resources/Profiles/GeneralsZH/Images/AttackMove.webp diff --git a/src/Resources/Icons/CaptureBuilding.webp b/src/Resources/Profiles/GeneralsZH/Images/CaptureBuilding.webp similarity index 100% rename from src/Resources/Icons/CaptureBuilding.webp rename to src/Resources/Profiles/GeneralsZH/Images/CaptureBuilding.webp diff --git a/src/Resources/Icons/DisarmMinesAtPosition.webp b/src/Resources/Profiles/GeneralsZH/Images/DisarmMinesAtPosition.webp similarity index 100% rename from src/Resources/Icons/DisarmMinesAtPosition.webp rename to src/Resources/Profiles/GeneralsZH/Images/DisarmMinesAtPosition.webp diff --git a/src/Resources/Icons/EmergencyRepair.webp b/src/Resources/Profiles/GeneralsZH/Images/EmergencyRepair.webp similarity index 100% rename from src/Resources/Icons/EmergencyRepair.webp rename to src/Resources/Profiles/GeneralsZH/Images/EmergencyRepair.webp diff --git a/src/Resources/Icons/Evacuate.webp b/src/Resources/Profiles/GeneralsZH/Images/Evacuate.webp similarity index 100% rename from src/Resources/Icons/Evacuate.webp rename to src/Resources/Profiles/GeneralsZH/Images/Evacuate.webp diff --git a/src/Resources/Icons/GLA/DMLAdvancedDemoTrap.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/DMLAdvancedDemoTrap.webp similarity index 100% rename from src/Resources/Icons/GLA/DMLAdvancedDemoTrap.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/DMLAdvancedDemoTrap.webp diff --git a/src/Resources/Icons/GLA/DMLDetonateCharges.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/DMLDetonateCharges.webp similarity index 100% rename from src/Resources/Icons/GLA/DMLDetonateCharges.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/DMLDetonateCharges.webp diff --git a/src/Resources/Icons/GLA/DMLRemoteDemoCharge.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/DMLRemoteDemoCharge.webp similarity index 100% rename from src/Resources/Icons/GLA/DMLRemoteDemoCharge.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/DMLRemoteDemoCharge.webp diff --git a/src/Resources/Icons/GLA/DMLSuicide.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/DMLSuicide.webp similarity index 100% rename from src/Resources/Icons/GLA/DMLSuicide.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/DMLSuicide.webp diff --git a/src/Resources/Icons/GLA/DMLTimedDemoCharge.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/DMLTimedDemoCharge.webp similarity index 100% rename from src/Resources/Icons/GLA/DMLTimedDemoCharge.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/DMLTimedDemoCharge.webp diff --git a/src/Resources/Icons/GLA/GLAAPBullets.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAPBullets.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAPBullets.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAPBullets.webp diff --git a/src/Resources/Icons/GLA/GLAAPRockets.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAPRockets.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAPRockets.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAPRockets.webp diff --git a/src/Resources/Icons/GLA/GLAAngryMob.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAngryMob.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAngryMob.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAngryMob.webp diff --git a/src/Resources/Icons/GLA/GLAAnthraxBeta.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxBeta.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAnthraxBeta.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxBeta.webp diff --git a/src/Resources/Icons/GLA/GLAAnthraxBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxBomb.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAnthraxBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxBomb.webp diff --git a/src/Resources/Icons/GLA/GLAAnthraxShells.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxShells.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAnthraxShells.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxShells.webp diff --git a/src/Resources/Icons/GLA/GLAAnthraxWarhead.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxWarhead.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAAnthraxWarhead.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAAnthraxWarhead.webp diff --git a/src/Resources/Icons/GLA/GLAArmTheMob.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAArmTheMob.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAArmTheMob.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAArmTheMob.webp diff --git a/src/Resources/Icons/GLA/GLAArmsDealer.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAArmsDealer.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAArmsDealer.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAArmsDealer.webp diff --git a/src/Resources/Icons/GLA/GLABarracks.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABarracks.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABarracks.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABarracks.webp diff --git a/src/Resources/Icons/GLA/GLABattleBus.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABattleBus.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABattleBus.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABattleBus.webp diff --git a/src/Resources/Icons/GLA/GLABecomeReal.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABecomeReal.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABecomeReal.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABecomeReal.webp diff --git a/src/Resources/Icons/GLA/GLABioBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABioBomb.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABioBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABioBomb.webp diff --git a/src/Resources/Icons/GLA/GLABlackMarket.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABlackMarket.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABlackMarket.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABlackMarket.webp diff --git a/src/Resources/Icons/GLA/GLABombTruck.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABombTruck.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABombTruck.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABombTruck.webp diff --git a/src/Resources/Icons/GLA/GLABoobyTraps.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLABoobyTraps.webp similarity index 100% rename from src/Resources/Icons/GLA/GLABoobyTraps.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLABoobyTraps.webp diff --git a/src/Resources/Icons/GLA/GLACamoNetting.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLACamoNetting.webp similarity index 100% rename from src/Resources/Icons/GLA/GLACamoNetting.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLACamoNetting.webp diff --git a/src/Resources/Icons/GLA/GLACamouflage.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLACamouflage.webp similarity index 100% rename from src/Resources/Icons/GLA/GLACamouflage.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLACamouflage.webp diff --git a/src/Resources/Icons/GLA/GLACarBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLACarBomb.webp similarity index 100% rename from src/Resources/Icons/GLA/GLACarBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLACarBomb.webp diff --git a/src/Resources/Icons/GLA/GLACombatBike.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLACombatBike.webp similarity index 100% rename from src/Resources/Icons/GLA/GLACombatBike.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLACombatBike.webp diff --git a/src/Resources/Icons/GLA/GLACommandCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLACommandCenter.webp similarity index 100% rename from src/Resources/Icons/GLA/GLACommandCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLACommandCenter.webp diff --git a/src/Resources/Icons/GLA/GLAContaminate.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAContaminate.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAContaminate.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAContaminate.webp diff --git a/src/Resources/Icons/GLA/GLADemoTrap.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLADemoTrap.webp similarity index 100% rename from src/Resources/Icons/GLA/GLADemoTrap.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLADemoTrap.webp diff --git a/src/Resources/Icons/GLA/GLADetonate.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLADetonate.webp similarity index 100% rename from src/Resources/Icons/GLA/GLADetonate.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLADetonate.webp diff --git a/src/Resources/Icons/GLA/GLADisguise.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLADisguise.webp similarity index 100% rename from src/Resources/Icons/GLA/GLADisguise.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLADisguise.webp diff --git a/src/Resources/Icons/GLA/GLAExplosiveWarhead.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAExplosiveWarhead.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAExplosiveWarhead.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAExplosiveWarhead.webp diff --git a/src/Resources/Icons/GLA/GLAFakeArmsDealer.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeArmsDealer.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeArmsDealer.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeArmsDealer.webp diff --git a/src/Resources/Icons/GLA/GLAFakeBarracks.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeBarracks.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeBarracks.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeBarracks.webp diff --git a/src/Resources/Icons/GLA/GLAFakeBlackMarket.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeBlackMarket.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeBlackMarket.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeBlackMarket.webp diff --git a/src/Resources/Icons/GLA/GLAFakeCommandCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeCommandCenter.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeCommandCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeCommandCenter.webp diff --git a/src/Resources/Icons/GLA/GLAFakeCommandSet.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeCommandSet.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeCommandSet.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeCommandSet.webp diff --git a/src/Resources/Icons/GLA/GLAFakeSupplyStash.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeSupplyStash.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFakeSupplyStash.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFakeSupplyStash.webp diff --git a/src/Resources/Icons/GLA/GLAFortifiedStructure.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFortifiedStructure.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAFortifiedStructure.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAFortifiedStructure.webp diff --git a/src/Resources/Icons/GLA/GLAGPSScrambler.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAGPSScrambler.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAGPSScrambler.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAGPSScrambler.webp diff --git a/src/Resources/Icons/GLA/GLAHighExplosiveBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHighExplosiveBomb.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAHighExplosiveBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHighExplosiveBomb.webp diff --git a/src/Resources/Icons/GLA/GLAHijack.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHijack.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAHijack.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHijack.webp diff --git a/src/Resources/Icons/GLA/GLAHijacker.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHijacker.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAHijacker.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHijacker.webp diff --git a/src/Resources/Icons/GLA/GLAHole.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHole.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAHole.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAHole.webp diff --git a/src/Resources/Icons/GLA/GLAJarmenKell.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAJarmenKell.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAJarmenKell.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAJarmenKell.webp diff --git a/src/Resources/Icons/GLA/GLAJunkRepair.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAJunkRepair.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAJunkRepair.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAJunkRepair.webp diff --git a/src/Resources/Icons/GLA/GLAManualControl.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAManualControl.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAManualControl.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAManualControl.webp diff --git a/src/Resources/Icons/GLA/GLAMarauderTank.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAMarauderTank.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAMarauderTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAMarauderTank.webp diff --git a/src/Resources/Icons/GLA/GLAPalace.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAPalace.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAPalace.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAPalace.webp diff --git a/src/Resources/Icons/GLA/GLAPilotKill.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAPilotKill.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAPilotKill.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAPilotKill.webp diff --git a/src/Resources/Icons/GLA/GLAProximityFuse.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAProximityFuse.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAProximityFuse.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAProximityFuse.webp diff --git a/src/Resources/Icons/GLA/GLAQuadCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAQuadCannon.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAQuadCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAQuadCannon.webp diff --git a/src/Resources/Icons/GLA/GLARPGTrooper.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARPGTrooper.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARPGTrooper.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARPGTrooper.webp diff --git a/src/Resources/Icons/GLA/GLARadarVan.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARadarVan.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARadarVan.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARadarVan.webp diff --git a/src/Resources/Icons/GLA/GLARadarVanScan.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARadarVanScan.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARadarVanScan.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARadarVanScan.webp diff --git a/src/Resources/Icons/GLA/GLARebel.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARebel.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARebel.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARebel.webp diff --git a/src/Resources/Icons/GLA/GLARebelAmbush.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARebelAmbush.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARebelAmbush.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARebelAmbush.webp diff --git a/src/Resources/Icons/GLA/GLARocketBuggy.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARocketBuggy.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARocketBuggy.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARocketBuggy.webp diff --git a/src/Resources/Icons/GLA/GLARocketBuggyAmmo.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLARocketBuggyAmmo.webp similarity index 100% rename from src/Resources/Icons/GLA/GLARocketBuggyAmmo.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLARocketBuggyAmmo.webp diff --git a/src/Resources/Icons/GLA/GLASaboteur.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLASaboteur.webp similarity index 100% rename from src/Resources/Icons/GLA/GLASaboteur.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLASaboteur.webp diff --git a/src/Resources/Icons/GLA/GLAScorpionRocket.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScorpionRocket.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAScorpionRocket.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScorpionRocket.webp diff --git a/src/Resources/Icons/GLA/GLAScorpionTank.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScorpionTank.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAScorpionTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScorpionTank.webp diff --git a/src/Resources/Icons/GLA/GLAScudLauncher.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudLauncher.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAScudLauncher.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudLauncher.webp diff --git a/src/Resources/Icons/GLA/GLAScudStorm.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudStorm.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAScudStorm.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudStorm.webp diff --git a/src/Resources/Icons/GLA/GLAScudStormLaunch.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudStormLaunch.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAScudStormLaunch.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAScudStormLaunch.webp diff --git a/src/Resources/Icons/GLA/GLASneakAttack.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLASneakAttack.webp similarity index 100% rename from src/Resources/Icons/GLA/GLASneakAttack.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLASneakAttack.webp diff --git a/src/Resources/Icons/GLA/GLAStingerSite.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAStingerSite.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAStingerSite.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAStingerSite.webp diff --git a/src/Resources/Icons/GLA/GLASupplyStash.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLASupplyStash.webp similarity index 100% rename from src/Resources/Icons/GLA/GLASupplyStash.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLASupplyStash.webp diff --git a/src/Resources/Icons/GLA/GLATechnical.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLATechnical.webp similarity index 100% rename from src/Resources/Icons/GLA/GLATechnical.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLATechnical.webp diff --git a/src/Resources/Icons/GLA/GLATerrorist.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLATerrorist.webp similarity index 100% rename from src/Resources/Icons/GLA/GLATerrorist.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLATerrorist.webp diff --git a/src/Resources/Icons/GLA/GLAToxinTractor.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAToxinTractor.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAToxinTractor.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAToxinTractor.webp diff --git a/src/Resources/Icons/GLA/GLATunnelNetwork.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLATunnelNetwork.webp similarity index 100% rename from src/Resources/Icons/GLA/GLATunnelNetwork.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLATunnelNetwork.webp diff --git a/src/Resources/Icons/GLA/GLAWorker.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAWorker.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAWorker.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAWorker.webp diff --git a/src/Resources/Icons/GLA/GLAWorkerShoes.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/GLAWorkerShoes.webp similarity index 100% rename from src/Resources/Icons/GLA/GLAWorkerShoes.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/GLAWorkerShoes.webp diff --git a/src/Resources/Icons/GLA/TOXAnthraxGamma.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/TOXAnthraxGamma.webp similarity index 100% rename from src/Resources/Icons/GLA/TOXAnthraxGamma.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/TOXAnthraxGamma.webp diff --git a/src/Resources/Icons/GLA/TOXRebel.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/TOXRebel.webp similarity index 100% rename from src/Resources/Icons/GLA/TOXRebel.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/TOXRebel.webp diff --git a/src/Resources/Icons/GLA/TOXTunnelNetwork.webp b/src/Resources/Profiles/GeneralsZH/Images/GLA/TOXTunnelNetwork.webp similarity index 100% rename from src/Resources/Icons/GLA/TOXTunnelNetwork.webp rename to src/Resources/Profiles/GeneralsZH/Images/GLA/TOXTunnelNetwork.webp diff --git a/src/Resources/Icons/Guard.webp b/src/Resources/Profiles/GeneralsZH/Images/Guard.webp similarity index 100% rename from src/Resources/Icons/Guard.webp rename to src/Resources/Profiles/GeneralsZH/Images/Guard.webp diff --git a/src/Resources/Icons/PRC/INFAssaultTroopTransport.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/INFAssaultTroopTransport.webp similarity index 100% rename from src/Resources/Icons/PRC/INFAssaultTroopTransport.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/INFAssaultTroopTransport.webp diff --git a/src/Resources/Icons/PRC/INFFortifiedBunker.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/INFFortifiedBunker.webp similarity index 100% rename from src/Resources/Icons/PRC/INFFortifiedBunker.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/INFFortifiedBunker.webp diff --git a/src/Resources/Icons/PRC/INFMiniGunner.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/INFMiniGunner.webp similarity index 100% rename from src/Resources/Icons/PRC/INFMiniGunner.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/INFMiniGunner.webp diff --git a/src/Resources/Icons/PRC/INFSuperLotus.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/INFSuperLotus.webp similarity index 100% rename from src/Resources/Icons/PRC/INFSuperLotus.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/INFSuperLotus.webp diff --git a/src/Resources/Icons/PRC/NUKCarpetBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/NUKCarpetBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/NUKCarpetBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/NUKCarpetBomb.webp diff --git a/src/Resources/Icons/PRC/NUKIsotopeStability.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/NUKIsotopeStability.webp similarity index 100% rename from src/Resources/Icons/PRC/NUKIsotopeStability.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/NUKIsotopeStability.webp diff --git a/src/Resources/Icons/PRC/NUKTacticalNukeMig.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/NUKTacticalNukeMig.webp similarity index 100% rename from src/Resources/Icons/PRC/NUKTacticalNukeMig.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/NUKTacticalNukeMig.webp diff --git a/src/Resources/Icons/PRC/PRCAdvancedNuclearReactor.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCAdvancedNuclearReactor.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCAdvancedNuclearReactor.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCAdvancedNuclearReactor.webp diff --git a/src/Resources/Icons/PRC/PRCAirfield.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCAirfield.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCAirfield.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCAirfield.webp diff --git a/src/Resources/Icons/PRC/PRCArtilleryBarrage.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCArtilleryBarrage.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCArtilleryBarrage.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCArtilleryBarrage.webp diff --git a/src/Resources/Icons/PRC/PRCBarracks.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBarracks.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBarracks.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBarracks.webp diff --git a/src/Resources/Icons/PRC/PRCBattlemaster.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBattlemaster.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBattlemaster.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBattlemaster.webp diff --git a/src/Resources/Icons/PRC/PRCBlackLotus.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotus.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBlackLotus.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotus.webp diff --git a/src/Resources/Icons/PRC/PRCBlackLotusCaptureBuilding.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusCaptureBuilding.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBlackLotusCaptureBuilding.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusCaptureBuilding.webp diff --git a/src/Resources/Icons/PRC/PRCBlackLotusCashHack.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusCashHack.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBlackLotusCashHack.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusCashHack.webp diff --git a/src/Resources/Icons/PRC/PRCBlackLotusDisableVehicle.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusDisableVehicle.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBlackLotusDisableVehicle.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackLotusDisableVehicle.webp diff --git a/src/Resources/Icons/PRC/PRCBlackNapalm.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackNapalm.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBlackNapalm.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBlackNapalm.webp diff --git a/src/Resources/Icons/PRC/PRCBunker.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBunker.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCBunker.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCBunker.webp diff --git a/src/Resources/Icons/PRC/PRCCarpetBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCCarpetBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCCarpetBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCCarpetBomb.webp diff --git a/src/Resources/Icons/PRC/PRCChainguns.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCChainguns.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCChainguns.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCChainguns.webp diff --git a/src/Resources/Icons/PRC/PRCClusterMine.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCClusterMine.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCClusterMine.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCClusterMine.webp diff --git a/src/Resources/Icons/PRC/PRCCommandCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCCommandCenter.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCCommandCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCCommandCenter.webp diff --git a/src/Resources/Icons/PRC/PRCDisableBuilding.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDisableBuilding.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDisableBuilding.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDisableBuilding.webp diff --git a/src/Resources/Icons/PRC/PRCDisableVehicle.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDisableVehicle.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDisableVehicle.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDisableVehicle.webp diff --git a/src/Resources/Icons/PRC/PRCDozer.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDozer.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDozer.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDozer.webp diff --git a/src/Resources/Icons/PRC/PRCDragonTank.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDragonTank.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDragonTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDragonTank.webp diff --git a/src/Resources/Icons/PRC/PRCDropNapalmBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDropNapalmBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDropNapalmBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDropNapalmBomb.webp diff --git a/src/Resources/Icons/PRC/PRCDropNukeBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDropNukeBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCDropNukeBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCDropNukeBomb.webp diff --git a/src/Resources/Icons/PRC/PRCECMTank.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCECMTank.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCECMTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCECMTank.webp diff --git a/src/Resources/Icons/PRC/PRCEMPPulse.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCEMPPulse.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCEMPPulse.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCEMPPulse.webp diff --git a/src/Resources/Icons/PRC/PRCFireWall.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCFireWall.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCFireWall.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCFireWall.webp diff --git a/src/Resources/Icons/PRC/PRCFrenzy.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCFrenzy.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCFrenzy.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCFrenzy.webp diff --git a/src/Resources/Icons/PRC/PRCGattlingCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCGattlingCannon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCGattlingCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCGattlingCannon.webp diff --git a/src/Resources/Icons/PRC/PRCGattlingTank.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCGattlingTank.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCGattlingTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCGattlingTank.webp diff --git a/src/Resources/Icons/PRC/PRCHackInternet.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHackInternet.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHackInternet.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHackInternet.webp diff --git a/src/Resources/Icons/PRC/PRCHacker.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHacker.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHacker.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHacker.webp diff --git a/src/Resources/Icons/PRC/PRCHelix.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelix.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHelix.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelix.webp diff --git a/src/Resources/Icons/PRC/PRCHelixBattleBunker.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixBattleBunker.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHelixBattleBunker.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixBattleBunker.webp diff --git a/src/Resources/Icons/PRC/PRCHelixGattlingCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixGattlingCannon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHelixGattlingCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixGattlingCannon.webp diff --git a/src/Resources/Icons/PRC/PRCHelixSpeakerTower.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixSpeakerTower.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCHelixSpeakerTower.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCHelixSpeakerTower.webp diff --git a/src/Resources/Icons/PRC/PRCInfernoCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCInfernoCannon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCInfernoCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCInfernoCannon.webp diff --git a/src/Resources/Icons/PRC/PRCInternetCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCInternetCenter.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCInternetCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCInternetCenter.webp diff --git a/src/Resources/Icons/PRC/PRCLandMine.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCLandMine.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCLandMine.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCLandMine.webp diff --git a/src/Resources/Icons/PRC/PRCListeningOutpost.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCListeningOutpost.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCListeningOutpost.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCListeningOutpost.webp diff --git a/src/Resources/Icons/PRC/PRCMIG.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCMIG.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCMIG.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCMIG.webp diff --git a/src/Resources/Icons/PRC/PRCMiGArmour.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCMiGArmour.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCMiGArmour.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCMiGArmour.webp diff --git a/src/Resources/Icons/PRC/PRCNapalmBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNapalmBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNapalmBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNapalmBomb.webp diff --git a/src/Resources/Icons/PRC/PRCNationalismIcon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNationalismIcon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNationalismIcon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNationalismIcon.webp diff --git a/src/Resources/Icons/PRC/PRCNeutronMines.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNeutronMines.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNeutronMines.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNeutronMines.webp diff --git a/src/Resources/Icons/PRC/PRCNeutronShells.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNeutronShells.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNeutronShells.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNeutronShells.webp diff --git a/src/Resources/Icons/PRC/PRCNuclearMissile.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearMissile.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNuclearMissile.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearMissile.webp diff --git a/src/Resources/Icons/PRC/PRCNuclearMissileSilo.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearMissileSilo.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNuclearMissileSilo.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearMissileSilo.webp diff --git a/src/Resources/Icons/PRC/PRCNuclearReactor.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearReactor.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNuclearReactor.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearReactor.webp diff --git a/src/Resources/Icons/PRC/PRCNuclearShells.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearShells.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNuclearShells.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearShells.webp diff --git a/src/Resources/Icons/PRC/PRCNuclearTanks.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearTanks.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNuclearTanks.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNuclearTanks.webp diff --git a/src/Resources/Icons/PRC/PRCNukeBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNukeBomb.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNukeBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNukeBomb.webp diff --git a/src/Resources/Icons/PRC/PRCNukeCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNukeCannon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCNukeCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCNukeCannon.webp diff --git a/src/Resources/Icons/PRC/PRCOvercharge.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOvercharge.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCOvercharge.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOvercharge.webp diff --git a/src/Resources/Icons/PRC/PRCOverlordBattleBunker.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordBattleBunker.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCOverlordBattleBunker.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordBattleBunker.webp diff --git a/src/Resources/Icons/PRC/PRCOverlordGatlingCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordGatlingCannon.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCOverlordGatlingCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordGatlingCannon.webp diff --git a/src/Resources/Icons/PRC/PRCOverlordPropagandaTower.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordPropagandaTower.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCOverlordPropagandaTower.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordPropagandaTower.webp diff --git a/src/Resources/Icons/PRC/PRCOverlordTank.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordTank.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCOverlordTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCOverlordTank.webp diff --git a/src/Resources/Icons/PRC/PRCPropagandaCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCPropagandaCenter.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCPropagandaCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCPropagandaCenter.webp diff --git a/src/Resources/Icons/PRC/PRCRadarUpgrade.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCRadarUpgrade.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCRadarUpgrade.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCRadarUpgrade.webp diff --git a/src/Resources/Icons/PRC/PRCRedGuard.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCRedGuard.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCRedGuard.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCRedGuard.webp diff --git a/src/Resources/Icons/PRC/PRCSatelliteHack1.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSatelliteHack1.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSatelliteHack1.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSatelliteHack1.webp diff --git a/src/Resources/Icons/PRC/PRCSatelliteHack2.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSatelliteHack2.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSatelliteHack2.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSatelliteHack2.webp diff --git a/src/Resources/Icons/PRC/PRCSpeakerTower.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSpeakerTower.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSpeakerTower.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSpeakerTower.webp diff --git a/src/Resources/Icons/PRC/PRCSubliminalMessaging.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSubliminalMessaging.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSubliminalMessaging.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSubliminalMessaging.webp diff --git a/src/Resources/Icons/PRC/PRCSupplyCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSupplyCenter.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSupplyCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSupplyCenter.webp diff --git a/src/Resources/Icons/PRC/PRCSupplyTruck.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSupplyTruck.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCSupplyTruck.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCSupplyTruck.webp diff --git a/src/Resources/Icons/PRC/PRCTNTAttack.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTNTAttack.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCTNTAttack.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTNTAttack.webp diff --git a/src/Resources/Icons/PRC/PRCTankHunter.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTankHunter.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCTankHunter.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTankHunter.webp diff --git a/src/Resources/Icons/PRC/PRCTroopCrawler.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTroopCrawler.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCTroopCrawler.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCTroopCrawler.webp diff --git a/src/Resources/Icons/PRC/PRCUraniumShells.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCUraniumShells.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCUraniumShells.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCUraniumShells.webp diff --git a/src/Resources/Icons/PRC/PRCWarFactory.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/PRCWarFactory.webp similarity index 100% rename from src/Resources/Icons/PRC/PRCWarFactory.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/PRCWarFactory.webp diff --git a/src/Resources/Icons/PRC/TNKAutoloader.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/TNKAutoloader.webp similarity index 100% rename from src/Resources/Icons/PRC/TNKAutoloader.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/TNKAutoloader.webp diff --git a/src/Resources/Icons/PRC/TNKEmperorOverlordTank.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/TNKEmperorOverlordTank.webp similarity index 100% rename from src/Resources/Icons/PRC/TNKEmperorOverlordTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/TNKEmperorOverlordTank.webp diff --git a/src/Resources/Icons/PRC/TNKTankDrop.webp b/src/Resources/Profiles/GeneralsZH/Images/PRC/TNKTankDrop.webp similarity index 100% rename from src/Resources/Icons/PRC/TNKTankDrop.webp rename to src/Resources/Profiles/GeneralsZH/Images/PRC/TNKTankDrop.webp diff --git a/src/Resources/Icons/Paradrop.webp b/src/Resources/Profiles/GeneralsZH/Images/Paradrop.webp similarity index 100% rename from src/Resources/Icons/Paradrop.webp rename to src/Resources/Profiles/GeneralsZH/Images/Paradrop.webp diff --git a/src/Resources/Icons/Sell.webp b/src/Resources/Profiles/GeneralsZH/Images/Sell.webp similarity index 100% rename from src/Resources/Icons/Sell.webp rename to src/Resources/Profiles/GeneralsZH/Images/Sell.webp diff --git a/src/Resources/Icons/Stop.webp b/src/Resources/Profiles/GeneralsZH/Images/Stop.webp similarity index 100% rename from src/Resources/Icons/Stop.webp rename to src/Resources/Profiles/GeneralsZH/Images/Stop.webp diff --git a/src/Resources/Icons/USA/AIRCarpetBomb.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/AIRCarpetBomb.webp similarity index 100% rename from src/Resources/Icons/USA/AIRCarpetBomb.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/AIRCarpetBomb.webp diff --git a/src/Resources/Icons/USA/AIRCombatChinook.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/AIRCombatChinook.webp similarity index 100% rename from src/Resources/Icons/USA/AIRCombatChinook.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/AIRCombatChinook.webp diff --git a/src/Resources/Icons/USA/AIRKingRaptor.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/AIRKingRaptor.webp similarity index 100% rename from src/Resources/Icons/USA/AIRKingRaptor.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/AIRKingRaptor.webp diff --git a/src/Resources/Icons/USA/AIRStealthComancheUpgrade.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/AIRStealthComancheUpgrade.webp similarity index 100% rename from src/Resources/Icons/USA/AIRStealthComancheUpgrade.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/AIRStealthComancheUpgrade.webp diff --git a/src/Resources/Icons/USA/LSRLaserTank.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/LSRLaserTank.webp similarity index 100% rename from src/Resources/Icons/USA/LSRLaserTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/LSRLaserTank.webp diff --git a/src/Resources/Icons/USA/LSRPatriot.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/LSRPatriot.webp similarity index 100% rename from src/Resources/Icons/USA/LSRPatriot.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/LSRPatriot.webp diff --git a/src/Resources/Icons/USA/SWGAdvancedControlRods.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/SWGAdvancedControlRods.webp similarity index 100% rename from src/Resources/Icons/USA/SWGAdvancedControlRods.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/SWGAdvancedControlRods.webp diff --git a/src/Resources/Icons/USA/SWGAuroraAlpha.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/SWGAuroraAlpha.webp similarity index 100% rename from src/Resources/Icons/USA/SWGAuroraAlpha.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/SWGAuroraAlpha.webp diff --git a/src/Resources/Icons/USA/SWGColdFusionReactor.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/SWGColdFusionReactor.webp similarity index 100% rename from src/Resources/Icons/USA/SWGColdFusionReactor.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/SWGColdFusionReactor.webp diff --git a/src/Resources/Icons/USA/SWGPatriot.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/SWGPatriot.webp similarity index 100% rename from src/Resources/Icons/USA/SWGPatriot.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/SWGPatriot.webp diff --git a/src/Resources/Icons/USA/USAA10ThunderboltMissileStrike.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAA10ThunderboltMissileStrike.webp similarity index 100% rename from src/Resources/Icons/USA/USAA10ThunderboltMissileStrike.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAA10ThunderboltMissileStrike.webp diff --git a/src/Resources/Icons/USA/USAAdvancedTraining.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAdvancedTraining.webp similarity index 100% rename from src/Resources/Icons/USA/USAAdvancedTraining.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAdvancedTraining.webp diff --git a/src/Resources/Icons/USA/USAAirfield.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAirfield.webp similarity index 100% rename from src/Resources/Icons/USA/USAAirfield.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAirfield.webp diff --git a/src/Resources/Icons/USA/USAAmbulance.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAmbulance.webp similarity index 100% rename from src/Resources/Icons/USA/USAAmbulance.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAmbulance.webp diff --git a/src/Resources/Icons/USA/USAAmbulanceCleanupArea.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAmbulanceCleanupArea.webp similarity index 100% rename from src/Resources/Icons/USA/USAAmbulanceCleanupArea.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAmbulanceCleanupArea.webp diff --git a/src/Resources/Icons/USA/USAAurora.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAurora.webp similarity index 100% rename from src/Resources/Icons/USA/USAAurora.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAurora.webp diff --git a/src/Resources/Icons/USA/USAAvenger.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAAvenger.webp similarity index 100% rename from src/Resources/Icons/USA/USAAvenger.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAAvenger.webp diff --git a/src/Resources/Icons/USA/USABarracks.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USABarracks.webp similarity index 100% rename from src/Resources/Icons/USA/USABarracks.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USABarracks.webp diff --git a/src/Resources/Icons/USA/USABattleDrone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USABattleDrone.webp similarity index 100% rename from src/Resources/Icons/USA/USABattleDrone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USABattleDrone.webp diff --git a/src/Resources/Icons/USA/USABombardment.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USABombardment.webp similarity index 100% rename from src/Resources/Icons/USA/USABombardment.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USABombardment.webp diff --git a/src/Resources/Icons/USA/USABunkerBusters.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USABunkerBusters.webp similarity index 100% rename from src/Resources/Icons/USA/USABunkerBusters.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USABunkerBusters.webp diff --git a/src/Resources/Icons/USA/USABurton.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USABurton.webp similarity index 100% rename from src/Resources/Icons/USA/USABurton.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USABurton.webp diff --git a/src/Resources/Icons/USA/USAChemicalSuits.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAChemicalSuits.webp similarity index 100% rename from src/Resources/Icons/USA/USAChemicalSuits.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAChemicalSuits.webp diff --git a/src/Resources/Icons/USA/USAChinook.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAChinook.webp similarity index 100% rename from src/Resources/Icons/USA/USAChinook.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAChinook.webp diff --git a/src/Resources/Icons/USA/USAColdFusionReactor.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAColdFusionReactor.webp similarity index 100% rename from src/Resources/Icons/USA/USAColdFusionReactor.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAColdFusionReactor.webp diff --git a/src/Resources/Icons/USA/USAComanche.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAComanche.webp similarity index 100% rename from src/Resources/Icons/USA/USAComanche.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAComanche.webp diff --git a/src/Resources/Icons/USA/USACombatDrop.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USACombatDrop.webp similarity index 100% rename from src/Resources/Icons/USA/USACombatDrop.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USACombatDrop.webp diff --git a/src/Resources/Icons/USA/USACommandCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USACommandCenter.webp similarity index 100% rename from src/Resources/Icons/USA/USACommandCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USACommandCenter.webp diff --git a/src/Resources/Icons/USA/USACompositeArmour.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USACompositeArmour.webp similarity index 100% rename from src/Resources/Icons/USA/USACompositeArmour.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USACompositeArmour.webp diff --git a/src/Resources/Icons/USA/USAControlRods.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAControlRods.webp similarity index 100% rename from src/Resources/Icons/USA/USAControlRods.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAControlRods.webp diff --git a/src/Resources/Icons/USA/USACountermeasures.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USACountermeasures.webp similarity index 100% rename from src/Resources/Icons/USA/USACountermeasures.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USACountermeasures.webp diff --git a/src/Resources/Icons/USA/USACrusaderTank.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USACrusaderTank.webp similarity index 100% rename from src/Resources/Icons/USA/USACrusaderTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USACrusaderTank.webp diff --git a/src/Resources/Icons/USA/USADaisyCutter.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADaisyCutter.webp similarity index 100% rename from src/Resources/Icons/USA/USADaisyCutter.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADaisyCutter.webp diff --git a/src/Resources/Icons/USA/USADetentionCamp.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADetentionCamp.webp similarity index 100% rename from src/Resources/Icons/USA/USADetentionCamp.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADetentionCamp.webp diff --git a/src/Resources/Icons/USA/USADetonateCharges.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADetonateCharges.webp similarity index 100% rename from src/Resources/Icons/USA/USADetonateCharges.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADetonateCharges.webp diff --git a/src/Resources/Icons/USA/USADozer.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADozer.webp similarity index 100% rename from src/Resources/Icons/USA/USADozer.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADozer.webp diff --git a/src/Resources/Icons/USA/USADrone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADrone.webp similarity index 100% rename from src/Resources/Icons/USA/USADrone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADrone.webp diff --git a/src/Resources/Icons/USA/USADroneArmor.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADroneArmor.webp similarity index 100% rename from src/Resources/Icons/USA/USADroneArmor.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADroneArmor.webp diff --git a/src/Resources/Icons/USA/USADropZone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USADropZone.webp similarity index 100% rename from src/Resources/Icons/USA/USADropZone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USADropZone.webp diff --git a/src/Resources/Icons/USA/USAEvacuate.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAEvacuate.webp similarity index 100% rename from src/Resources/Icons/USA/USAEvacuate.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAEvacuate.webp diff --git a/src/Resources/Icons/USA/USAFireBase.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAFireBase.webp similarity index 100% rename from src/Resources/Icons/USA/USAFireBase.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAFireBase.webp diff --git a/src/Resources/Icons/USA/USAFireRocketPods.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAFireRocketPods.webp similarity index 100% rename from src/Resources/Icons/USA/USAFireRocketPods.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAFireRocketPods.webp diff --git a/src/Resources/Icons/USA/USAFlashbangs.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAFlashbangs.webp similarity index 100% rename from src/Resources/Icons/USA/USAFlashbangs.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAFlashbangs.webp diff --git a/src/Resources/Icons/USA/USAHellfireDrone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAHellfireDrone.webp similarity index 100% rename from src/Resources/Icons/USA/USAHellfireDrone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAHellfireDrone.webp diff --git a/src/Resources/Icons/USA/USAHoldTheLine.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAHoldTheLine.webp similarity index 100% rename from src/Resources/Icons/USA/USAHoldTheLine.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAHoldTheLine.webp diff --git a/src/Resources/Icons/USA/USAHumvee.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAHumvee.webp similarity index 100% rename from src/Resources/Icons/USA/USAHumvee.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAHumvee.webp diff --git a/src/Resources/Icons/USA/USAIntelligence.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAIntelligence.webp similarity index 100% rename from src/Resources/Icons/USA/USAIntelligence.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAIntelligence.webp diff --git a/src/Resources/Icons/USA/USAKnifeAttack.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAKnifeAttack.webp similarity index 100% rename from src/Resources/Icons/USA/USAKnifeAttack.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAKnifeAttack.webp diff --git a/src/Resources/Icons/USA/USALaserGuidedMissiles.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USALaserGuidedMissiles.webp similarity index 100% rename from src/Resources/Icons/USA/USALaserGuidedMissiles.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USALaserGuidedMissiles.webp diff --git a/src/Resources/Icons/USA/USALaserLock.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USALaserLock.webp similarity index 100% rename from src/Resources/Icons/USA/USALaserLock.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USALaserLock.webp diff --git a/src/Resources/Icons/USA/USALeafletDrop.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USALeafletDrop.webp similarity index 100% rename from src/Resources/Icons/USA/USALeafletDrop.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USALeafletDrop.webp diff --git a/src/Resources/Icons/USA/USAMOAB.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAMOAB.webp similarity index 100% rename from src/Resources/Icons/USA/USAMOAB.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAMOAB.webp diff --git a/src/Resources/Icons/USA/USAMicrowave.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAMicrowave.webp similarity index 100% rename from src/Resources/Icons/USA/USAMicrowave.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAMicrowave.webp diff --git a/src/Resources/Icons/USA/USAMissileDefender.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAMissileDefender.webp similarity index 100% rename from src/Resources/Icons/USA/USAMissileDefender.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAMissileDefender.webp diff --git a/src/Resources/Icons/USA/USAPaladinTank.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAPaladinTank.webp similarity index 100% rename from src/Resources/Icons/USA/USAPaladinTank.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAPaladinTank.webp diff --git a/src/Resources/Icons/USA/USAParticleCannon.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAParticleCannon.webp similarity index 100% rename from src/Resources/Icons/USA/USAParticleCannon.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAParticleCannon.webp diff --git a/src/Resources/Icons/USA/USAParticleCannonFire.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAParticleCannonFire.webp similarity index 100% rename from src/Resources/Icons/USA/USAParticleCannonFire.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAParticleCannonFire.webp diff --git a/src/Resources/Icons/USA/USAPathfinder.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAPathfinder.webp similarity index 100% rename from src/Resources/Icons/USA/USAPathfinder.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAPathfinder.webp diff --git a/src/Resources/Icons/USA/USAPatriot.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAPatriot.webp similarity index 100% rename from src/Resources/Icons/USA/USAPatriot.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAPatriot.webp diff --git a/src/Resources/Icons/USA/USAPilot.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAPilot.webp similarity index 100% rename from src/Resources/Icons/USA/USAPilot.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAPilot.webp diff --git a/src/Resources/Icons/USA/USARanger.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USARanger.webp similarity index 100% rename from src/Resources/Icons/USA/USARanger.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USARanger.webp diff --git a/src/Resources/Icons/USA/USARangerMachineGun.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USARangerMachineGun.webp similarity index 100% rename from src/Resources/Icons/USA/USARangerMachineGun.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USARangerMachineGun.webp diff --git a/src/Resources/Icons/USA/USARaptor.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USARaptor.webp similarity index 100% rename from src/Resources/Icons/USA/USARaptor.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USARaptor.webp diff --git a/src/Resources/Icons/USA/USARemoteDemoCharge.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USARemoteDemoCharge.webp similarity index 100% rename from src/Resources/Icons/USA/USARemoteDemoCharge.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USARemoteDemoCharge.webp diff --git a/src/Resources/Icons/USA/USARocketPods.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USARocketPods.webp similarity index 100% rename from src/Resources/Icons/USA/USARocketPods.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USARocketPods.webp diff --git a/src/Resources/Icons/USA/USASearchAndDestroy.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASearchAndDestroy.webp similarity index 100% rename from src/Resources/Icons/USA/USASearchAndDestroy.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASearchAndDestroy.webp diff --git a/src/Resources/Icons/USA/USASentryDrone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASentryDrone.webp similarity index 100% rename from src/Resources/Icons/USA/USASentryDrone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASentryDrone.webp diff --git a/src/Resources/Icons/USA/USASentryDroneGun.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASentryDroneGun.webp similarity index 100% rename from src/Resources/Icons/USA/USASentryDroneGun.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASentryDroneGun.webp diff --git a/src/Resources/Icons/USA/USASpectreGunship.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASpectreGunship.webp similarity index 100% rename from src/Resources/Icons/USA/USASpectreGunship.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASpectreGunship.webp diff --git a/src/Resources/Icons/USA/USASpySattelite.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASpySattelite.webp similarity index 100% rename from src/Resources/Icons/USA/USASpySattelite.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASpySattelite.webp diff --git a/src/Resources/Icons/USA/USAStealthFighter.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAStealthFighter.webp similarity index 100% rename from src/Resources/Icons/USA/USAStealthFighter.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAStealthFighter.webp diff --git a/src/Resources/Icons/USA/USAStrategyCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAStrategyCenter.webp similarity index 100% rename from src/Resources/Icons/USA/USAStrategyCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAStrategyCenter.webp diff --git a/src/Resources/Icons/USA/USASupplyCenter.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyCenter.webp similarity index 100% rename from src/Resources/Icons/USA/USASupplyCenter.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyCenter.webp diff --git a/src/Resources/Icons/USA/USASupplyDropZone.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyDropZone.webp similarity index 100% rename from src/Resources/Icons/USA/USASupplyDropZone.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyDropZone.webp diff --git a/src/Resources/Icons/USA/USASupplyLines.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyLines.webp similarity index 100% rename from src/Resources/Icons/USA/USASupplyLines.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USASupplyLines.webp diff --git a/src/Resources/Icons/USA/USATOWMissile.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USATOWMissile.webp similarity index 100% rename from src/Resources/Icons/USA/USATOWMissile.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USATOWMissile.webp diff --git a/src/Resources/Icons/USA/USATimedDemoCharge.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USATimedDemoCharge.webp similarity index 100% rename from src/Resources/Icons/USA/USATimedDemoCharge.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USATimedDemoCharge.webp diff --git a/src/Resources/Icons/USA/USATomahawkLauncher.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USATomahawkLauncher.webp similarity index 100% rename from src/Resources/Icons/USA/USATomahawkLauncher.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USATomahawkLauncher.webp diff --git a/src/Resources/Icons/USA/USAWarFactory.webp b/src/Resources/Profiles/GeneralsZH/Images/USA/USAWarFactory.webp similarity index 100% rename from src/Resources/Icons/USA/USAWarFactory.webp rename to src/Resources/Profiles/GeneralsZH/Images/USA/USAWarFactory.webp diff --git a/src/Resources/TechTree.json b/src/Resources/Profiles/GeneralsZH/TechTree.json similarity index 100% rename from src/Resources/TechTree.json rename to src/Resources/Profiles/GeneralsZH/TechTree.json diff --git a/src/Resources/Theme/DropArrowDown.webp b/src/Resources/Profiles/GeneralsZH/Theme/DropArrowDown.webp similarity index 100% rename from src/Resources/Theme/DropArrowDown.webp rename to src/Resources/Profiles/GeneralsZH/Theme/DropArrowDown.webp diff --git a/src/Resources/Theme/DropArrowRight.webp b/src/Resources/Profiles/GeneralsZH/Theme/DropArrowRight.webp similarity index 100% rename from src/Resources/Theme/DropArrowRight.webp rename to src/Resources/Profiles/GeneralsZH/Theme/DropArrowRight.webp diff --git a/src/Resources/Theme/EditorBackground.webp b/src/Resources/Profiles/GeneralsZH/Theme/EditorBackground.webp similarity index 100% rename from src/Resources/Theme/EditorBackground.webp rename to src/Resources/Profiles/GeneralsZH/Theme/EditorBackground.webp diff --git a/src/Resources/Theme/EditorBackgroundWithPicture.webp b/src/Resources/Profiles/GeneralsZH/Theme/EditorBackgroundWithPicture.webp similarity index 100% rename from src/Resources/Theme/EditorBackgroundWithPicture.webp rename to src/Resources/Profiles/GeneralsZH/Theme/EditorBackgroundWithPicture.webp diff --git a/src/Resources/Theme/ScrollArrowDown.webp b/src/Resources/Profiles/GeneralsZH/Theme/ScrollArrowDown.webp similarity index 100% rename from src/Resources/Theme/ScrollArrowDown.webp rename to src/Resources/Profiles/GeneralsZH/Theme/ScrollArrowDown.webp diff --git a/src/Resources/Theme/ScrollArrowUp.webp b/src/Resources/Profiles/GeneralsZH/Theme/ScrollArrowUp.webp similarity index 100% rename from src/Resources/Theme/ScrollArrowUp.webp rename to src/Resources/Profiles/GeneralsZH/Theme/ScrollArrowUp.webp diff --git a/src/Resources/Theme/StartMenuBackground.webp b/src/Resources/Profiles/GeneralsZH/Theme/StartMenuBackground.webp similarity index 100% rename from src/Resources/Theme/StartMenuBackground.webp rename to src/Resources/Profiles/GeneralsZH/Theme/StartMenuBackground.webp diff --git a/src/Resources/Theme/Styles.css b/src/Resources/Profiles/GeneralsZH/Theme/Styles.css similarity index 85% rename from src/Resources/Theme/Styles.css rename to src/Resources/Profiles/GeneralsZH/Theme/Styles.css index 5b9ff1e..f004412 100644 --- a/src/Resources/Theme/Styles.css +++ b/src/Resources/Profiles/GeneralsZH/Theme/Styles.css @@ -1,19 +1,3 @@ -/* See more about Qt .css support in documentation and questions: */ -/* 1. https://doc.qt.io/qt-5/stylesheet-syntax.html */ -/* 2. https://doc.qt.io/qt-5/stylesheet-reference.html */ -/* 3. https://doc.qt.io/qt-5/stylesheet-examples.html */ -/* 4. https://forum.qt.io/topic/40151/solved-scaled-background-image-using-stylesheet/3 */ -/* 5. https://www.qtcentre.org/threads/55152-Is-it-possible-to-logically-combine-dynamic-properties-in-a-Qt-Stylesheet */ -/* 6. https://stackoverflow.com/questions/9536725/css-multiple-attribute-selectors/9536746#9536746 */ - -/* Global style setting */ -* -{ - font-family: Calibri; - font-size: 10pt; - color: black; -} - QComboBox { width: 70px; @@ -52,8 +36,8 @@ QComboBox::drop-down padding-left: 10px; } -QComboBox::down-arrow { image: url(Resources/Theme/ScrollArrowDown.webp); } -QComboBox::up-arrow { image: url(Resources/Theme/ScrollArrowUp.webp); } +QComboBox::down-arrow { image: url(Resources/Profiles/GeneralsZH/Theme/ScrollArrowDown.webp); } +QComboBox::up-arrow { image: url(Resources/Profiles/GeneralsZH/Theme/ScrollArrowUp.webp); } /* ↓ Doesn't work */ QComboBox#cmbLanguage { height: 25px; } @@ -132,14 +116,14 @@ QPushButton#btnOk /* Start widgets and SettingsWindow style settings */ LoadFromTheFileWindow, SetUpWindowsWrapper, LoadFromTheGameWindow, SettingsWindow, QWidget#pSettingsWindow { - border-image: url(Resources/Theme/StartMenuBackground.webp) 0 0 0 0 stretch stretch; + border-image: url(Resources/Profiles/GeneralsZH/Theme/StartMenuBackground.webp) 0 0 0 0 stretch stretch; background-color: black; } /* Editor window style settings */ EditorWindow { - border-image: url(Resources/Theme/EditorBackground.webp) 0 0 0 0 stretch stretch; + border-image: url(Resources/Profiles/GeneralsZH/Theme/EditorBackground.webp) 0 0 0 0 stretch stretch; background-color: black; } @@ -195,8 +179,8 @@ QTreeWidget::item QTreeWidget::item:selected, QTreeWidget::item:selected:!active { background-color: #3543e7; color: white; } -QTreeWidget::branch:open:has-children { background-image: url(Resources/Theme/DropArrowDown.webp); } -QTreeWidget::branch:closed:has-children { background-image: url(Resources/Theme/DropArrowRight.webp); } +QTreeWidget::branch:open:has-children { background-image: url(Resources/Profiles/GeneralsZH/Theme/DropArrowDown.webp); } +QTreeWidget::branch:closed:has-children { background-image: url(Resources/Profiles/GeneralsZH/Theme/DropArrowRight.webp); } QTabWidget QWidget { @@ -273,7 +257,7 @@ QScrollBar::add-page, QScrollBar::sub-page QDialog { - border-image: url(Resources/Theme/StartMenuBackground.webp) 0 0 0 0 stretch stretch; + border-image: url(Resources/Profiles/GeneralsZH/Theme/StartMenuBackground.webp) 0 0 0 0 stretch stretch; background-color: black; } diff --git a/src/Resources/Profiles/GlobalStyles.css b/src/Resources/Profiles/GlobalStyles.css new file mode 100644 index 0000000..2f500c8 --- /dev/null +++ b/src/Resources/Profiles/GlobalStyles.css @@ -0,0 +1,15 @@ +/* See more about Qt .css support in documentation and questions: */ +/* 1. https://doc.qt.io/qt-5/stylesheet-syntax.html */ +/* 2. https://doc.qt.io/qt-5/stylesheet-reference.html */ +/* 3. https://doc.qt.io/qt-5/stylesheet-examples.html */ +/* 4. https://forum.qt.io/topic/40151/solved-scaled-background-image-using-stylesheet/3 */ +/* 5. https://www.qtcentre.org/threads/55152-Is-it-possible-to-logically-combine-dynamic-properties-in-a-Qt-Stylesheet */ +/* 6. https://stackoverflow.com/questions/9536725/css-multiple-attribute-selectors/9536746#9536746 */ + +/* Global style setting */ +* +{ + font-family: Calibri; + font-size: 10pt; + color: black; +}