diff --git a/ChivalryServerLauncher.dpr b/ChivalryServerLauncher.dpr index c9d7227..0f3dc2e 100644 --- a/ChivalryServerLauncher.dpr +++ b/ChivalryServerLauncher.dpr @@ -19,7 +19,6 @@ uses {$R *.res} - var MainForm: TMainForm; diff --git a/ChivalryServerLauncher.dproj b/ChivalryServerLauncher.dproj index 92a2677..938711f 100644 --- a/ChivalryServerLauncher.dproj +++ b/ChivalryServerLauncher.dproj @@ -41,11 +41,14 @@ true - CompanyName=X²Software;FileDescription=Chivalry Server Launcher;FileVersion=0.1.0.0;InternalName=;LegalCopyright=Copyright (c) 2014 X²Software;LegalTrademarks=;OriginalFilename=ChivalryServerLauncher.exe;ProductName=Chivalry Server Launcher;ProductVersion=0.1 - 1 + false + 0 + false + false + true true + CompanyName=X²Software;FileDescription=Chivalry Server Launcher;FileVersion=1.0.0.0;InternalName=;LegalCopyright=Copyright (c) 2014 X²Software;LegalTrademarks=;OriginalFilename=ChivalryServerLauncher.exe;ProductName=Chivalry Server Launcher;ProductVersion=1.0 1033 - 0 resources\icons\MainIcon.ico None fmx;IndySystem;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapServer;DataSnapProviderClient;DbxCommonDriver;dbxcds;DBXOracleDriver;CustomIPTransport;dsnap;fmxase;IndyCore;CloudService;FmxTeeUI;inetdbxpress;IPIndyImpl;bindcompfmx;rtl;dbrtl;DbxClientDriver;bindcomp;inetdb;xmlrtl;ibxpress;IndyProtocols;DBXMySQLDriver;soaprtl;bindengine;FMXTee;DBXInformixDriver;DBXFirebirdDriver;inet;fmxobj;DBXSybaseASADriver;fmxdae;dbexpress;DataSnapIndy10ServerTransport;$(DCC_UsePackage) @@ -150,20 +153,6 @@ ChivalryServerLauncher.dpr - ExpressCoreLibrary by Developer Express Inc. - Express Cross Platform Library by Developer Express Inc. - ExpressPageControl by Developer Express Inc. - ExpressDataController Server Mode by Developer Express Inc. - ExpressEditors Library by Developer Express Inc. - ExpressWizardControl by Developer Express Inc. - ExpressBars by Developer Express Inc. - ExpressScheduler by Developer Express Inc. - ExpressQuantumGrid by Developer Express Inc. - ExpressPrinting System by Developer Express Inc. - ExpressPrinting System ReportLink for TeeChart by Developer Express Inc. - ExpressPivotGrid by Developer Express Inc. - ExpressOrgChart by Developer Express Inc. - ExpressPrinting System ReportLink for ExpressLayoutControl by Developer Express Inc. dbExpress Data Source for ExpressDataController Server Mode by Developer Express Inc. ADO Data Source for ExpressDataController Server Mode by Developer Express Inc. ExpressEditors FieldLink by Developer Express Inc. diff --git a/ChivalryServerLauncher.res b/ChivalryServerLauncher.res index 2d30be7..cfc0286 100644 Binary files a/ChivalryServerLauncher.res and b/ChivalryServerLauncher.res differ diff --git a/assets/Chivalry.MedievalWarfare.MapList.ini b/assets/Chivalry.MedievalWarfare.MapList.ini deleted file mode 100644 index 099e7f6..0000000 --- a/assets/Chivalry.MedievalWarfare.MapList.ini +++ /dev/null @@ -1,101 +0,0 @@ -[Team Objective] -AOCTO-Battlegrounds_v3_P=Battlegrounds -AOCTO-Darkforest_p=Dark forest -AOCTO-Hillside_P=Hillside -AOCTO-Stoneshill_P=Stoneshill -AOCTO-Citadel_p=Citadel -AOCTO-Coldfront_p=Coldfront -AOCTO-Outpost_p=Outpost - -[Capture the Flag] -AOCCTF-Frigid_p=Frigid -AOCCTF-Moor_p=Moor -AOCCTF-Ruins_Large_P=Ruins Large -AOCCTF-Ruins_P=Ruins - -[Duel] -AOCDuel-Arena_Flat_p=Arena Flat -AOCDuel-Arena_p=Arena -AOCDuel-Bridge_p=Bridge -AOCDuel-Cistern_p=Cistern -AOCDuel-Courtyard_p=Courtyard -AOCDuel-Dininghall_p=Dining hall -AOCDuel-FrostPeak_p=Frost Peak -AOCDuel-Mines_p=Mines -AOCDuel-Moor_p=Moor -AOCDuel-Shaft_p=Shaft -AOCDuel-Shipyard_p=Shipyard -AOCDuel-ThroneRoom_p=Throne Room -AOCDuel-Tower_p=Tower - -[King of the Hill] -AOCKOTH-Arena3_p=Arena -AOCKOTH-Hillside_P=Hillside -AOCKOTH-Moor_p=Moor -AOCKOTH-Darkforest_Valley_p=Dark forest Valley - -[Last Team Standing] -AOCLTS-Frigid_p=Frigid -AOCLTS-ArgonsWall_p=Argons Wall -AOCLTS-Arena3_p=Arena -AOCLTS-Battlegrounds_Farm_p=Battlegrounds Farm -AOCLTS-Battlegrounds_p=Battlegrounds -AOCLTS-Darkforest_XL_p=Dark forest -AOCLTS-Darkforest_Valley_p=Dark forest Valley -AOCLTS-Hillside_P=Hillside -AOCLTS-HillsidePyre_P=Hillside Pyre -AOCLTS-Moor_p=Moor -AOCLTS-Moor_Large_p=Moor Large -AOCLTS-Ruins_P=Ruins -AOCLTS-Ruins_Large_P=Ruins Large -AOCLTS-StoneshillVillage_P=Stoneshill Village -AOCLTS-ThroneRoom_P=Throne Room -AOCLTS-Bridge_p=Bridge -AOCLTS-Cistern_p=Cistern -AOCLTS-Courtyard_p=Courtyard -AOCLTS-Dininghall_p=Dining Hall -AOCLTS-FrostPeak_p=Frostpeak -AOCLTS-Mines_p=Mines -AOCLTS-Shipyard_p=Shipyard - -[Free for All] -AOCFFA-Arena3_p=Arena -AOCFFA-Darkforest_Cistern_p=Dark forest Cistern -AOCFFA-Darkforest_Valley_p=Dark forest Valley -AOCFFA-HillsidePyre_P=Hillside Pyre -AOCFFA-Hillside_P=Hillside -AOCFFA-Moor_p=Moor -AOCFFA-Ruins_P=Ruins -AOCFFA-Tavern_p=Tavern -AOCFFA-ThroneRoomXL_P=Throne Room XL -AOCFFA-StoneshillVillage_P=Stoneshill Village -AOCFFA-Bridge_p=Bridge -AOCFFA-Cistern_p=Cistern -AOCFFA-Courtyard_p=Courtyard -AOCFFA-Dininghall_p=Dining Hall -AOCFFA-FrostPeak_p=Frostpeak -AOCFFA-Mines_p=Mines -AOCFFA-Shipyard_p=Shipyard - -[Team Deathmatch] -AOCTD-Frigid_p=Frigid -AOCTD-ArgonsWall_p=Argons Wall -AOCTD-Ruins_P=Ruins -AOCTD-ThroneRoom_P=Throne Room -AOCTD-StoneshillVillage_P=Stoneshill Village -AOCTD-Moor_p=Moor -AOCTD-Battlegrounds_Farm_p=Battlegrounds Farm -AOCTD-Battlegrounds_p=Battlegrounds -AOCTD-Hillside_P=Hillside -AOCTD-HillsidePyre_P=Hillside Pyre -AOCTD-Darkforest_XL_p=Dark forest XL -AOCTD-Darkforest_Valley_p=Dark forest Valley -AOCTD-Moor_Large_p=Moor Large -AOCTD-Ruins_Large_P=Ruins Large -AOCTD-Bridge_p=Bridge -AOCTD-Cistern_p=Cistern -AOCTD-Courtyard_p=Courtyard -AOCTD-Dininghall_p=Dining Hall -AOCTD-FrostPeak_p=Frostpeak -AOCTD-Mines_p=Mines -AOCTD-Shipyard_p=Shipyard \ No newline at end of file diff --git a/assets/Chivalry.MedievalWarfare.MapList.json b/assets/Chivalry.MedievalWarfare.MapList.json new file mode 100644 index 0000000..e5f291a --- /dev/null +++ b/assets/Chivalry.MedievalWarfare.MapList.json @@ -0,0 +1,484 @@ +[ + { + "category": "Team Objective", + "maps": + [ + { + "name": "AOCTO-Battlegrounds_v3_P", + "displayName": "Battlegrounds", + "preview": "CMW.Battlegrounds" + }, + { + "name": "AOCTO-Darkforest_p", + "displayName": "Dark forest", + "preview": "CMW.Darkforest" + }, + { + "name": "AOCTO-Hillside_P", + "displayName": "Hillside", + "preview": "CMW.Hillside" + }, + { + "name": "AOCTO-Stoneshill_P", + "displayName": "Stoneshill", + "preview": "CMW.Stoneshill.Village" + }, + { + "name": "AOCTO-Citadel_p", + "displayName": "Citadel", + "preview": "CMW.Citadel" + }, + { + "name": "AOCTO-Coldfront_p", + "displayName": "Coldfront", + "preview": "CMW.Coldfront" + }, + { + "name": "AOCTO-Outpost_p", + "displayName": "Outpost", + "preview": "CMW.Outpost" + } + ] + }, + { + "category": "Capture the Flag", + "maps": + [ + { + "name": "AOCCTF-Frigid_p", + "displayName": "Frigid", + "preview": "CMW.Frigid" + }, + { + "name": "AOCCTF-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCCTF-Ruins_Large_P", + "displayName": "Ruins Large", + "preview": "CMW.Ruins" + }, + { + "name": "AOCCTF-Ruins_P", + "displayName": "Ruins", + "preview": "CMW.Ruins" + } + ] + }, + { + "category": "Duel", + "maps": + [ + { + "name": "AOCDuel-Arena_Flat_p", + "displayName": "Arena Flat", + "preview": "CMW.Arena" + }, + { + "name": "AOCDuel-Arena_p", + "displayName": "Arena", + "preview": "CMW.Arena" + }, + { + "name": "AOCDuel-Bridge_p", + "displayName": "Bridge", + "preview": "CMW.Bridge" + }, + { + "name": "AOCDuel-Cistern_p", + "displayName": "Cistern", + "preview": "CMW.Cistern" + }, + { + "name": "AOCDuel-Courtyard_p", + "displayName": "Courtyard", + "preview": "CMW.Courtyard" + }, + { + "name": "AOCDuel-Dininghall_p", + "displayName": "Dining Hall", + "preview": "CMW.DiningHall" + }, + { + "name": "AOCDuel-FrostPeak_p", + "displayName": "Frost Peak", + "preview": "CMW.FrostPeak" + }, + { + "name": "AOCDuel-Mines_p", + "displayName": "Mines", + "preview": "CMW.Mines" + }, + { + "name": "AOCDuel-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCDuel-Shaft_p", + "displayName": "Shaft", + "preview": "CMW.Shaft" + }, + { + "name": "AOCDuel-Shipyard_p", + "displayName": "Shipyard", + "preview": "CMW.Shipyard" + }, + { + "name": "AOCDuel-ThroneRoom_p", + "displayName": "Throne Room", + "preview": "CMW.ThroneRoom" + }, + { + "name": "AOCDuel-Tower_p", + "displayName": "Tower", + "preview": "CMW.Tower" + } + ] + }, + { + "category": "King of the Hill", + "maps": + [ + { + "name": "AOCKOTH-Arena3_p", + "displayName": "Arena", + "preview": "CMW.Arena" + }, + { + "name": "AOCKOTH-Hillside_P", + "displayName": "Hillside", + "preview": "CMW.Hillside" + }, + { + "name": "AOCKOTH-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCKOTH-Darkforest_Valley_p", + "displayName": "Dark forest Valley", + "preview": "CMW.Darkforest.Valley" + } + ] + }, + { + "category": "Last Team Standing", + "maps": + [ + { + "name": "AOCLTS-Frigid_p", + "displayName": "Frigid", + "preview": "CMW.Frigid" + }, + { + "name": "AOCLTS-ArgonsWall_p", + "displayName": "Argons Wall", + "preview": "CMW.ArgonsWall" + }, + { + "name": "AOCLTS-Arena3_p", + "displayName": "Arena", + "preview": "CMW.Arena" + }, + { + "name": "AOCLTS-Battlegrounds_Farm_p", + "displayName": "Battlegrounds Farm", + "preview": "CMW.Battlegrounds.Farm" + }, + { + "name": "AOCLTS-Battlegrounds_p", + "displayName": "Battlegrounds", + "preview": "CMW.Battlegrounds" + }, + { + "name": "AOCLTS-Darkforest_XL_p", + "displayName": "Dark forest", + "preview": "CMW.Darkforest.XL" + }, + { + "name": "AOCLTS-Darkforest_Valley_p", + "displayName": "Dark forest Valley", + "preview": "CMW.Darkforest.Valley" + }, + { + "name": "AOCLTS-Hillside_P", + "displayName": "Hillside", + "preview": "CMW.Hillside" + }, + { + "name": "AOCLTS-HillsidePyre_P", + "displayName": "Hillside Pyre", + "preview": "CMW.Hillside.Pyre" + }, + { + "name": "AOCLTS-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCLTS-Moor_Large_p", + "displayName": "Moor Large", + "preview": "CMW.Moor" + }, + { + "name": "AOCLTS-Ruins_P", + "displayName": "Ruins", + "preview": "CMW.Ruins" + }, + { + "name": "AOCLTS-Ruins_Large_P", + "displayName": "Ruins Large", + "preview": "CMW.Ruins" + }, + { + "name": "AOCLTS-StoneshillVillage_P", + "displayName": "Stoneshill Village", + "preview": "CMW.Stoneshill.Village" + }, + { + "name": "AOCLTS-ThroneRoom_P", + "displayName": "Throne Room", + "preview": "CMW.ThroneRoom" + }, + { + "name": "AOCLTS-Bridge_p", + "displayName": "Bridge", + "preview": "CMW.Bridge" + }, + { + "name": "AOCLTS-Cistern_p", + "displayName": "Cistern", + "preview": "CMW.Cistern" + }, + { + "name": "AOCLTS-Courtyard_p", + "displayName": "Courtyard", + "preview": "CMW.Courtyard" + }, + { + "name": "AOCLTS-Dininghall_p", + "displayName": "Dining Hall", + "preview": "CMW.DiningHall" + }, + { + "name": "AOCLTS-FrostPeak_p", + "displayName": "Frostpeak", + "preview": "CMW.FrostPeak" + }, + { + "name": "AOCLTS-Mines_p", + "displayName": "Mines", + "preview": "CMW.Mines" + }, + { + "name": "AOCLTS-Shipyard_p", + "displayName": "Shipyard", + "preview": "CMW.Shipyard" + } + ] + }, + { + "category": "Free For All", + "maps": + [ + { + "name": "AOCFFA-Arena3_p", + "displayName": "Arena", + "preview": "CMW.Arena" + }, + { + "name": "AOCFFA-Darkforest_Cistern_p", + "displayName": "Dark forest Cistern", + "preview": "CMW.Darkforest.Cistern" + }, + { + "name": "AOCFFA-Darkforest_Valley_p", + "displayName": "Dark forest Valley", + "preview": "CMW.Darkforest.Valley" + }, + { + "name": "AOCFFA-HillsidePyre_P", + "displayName": "Hillside Pyre", + "preview": "CMW.Hillside.Pyre" + }, + { + "name": "AOCFFA-Hillside_P", + "displayName": "Hillside", + "preview": "CMW.Hillside" + }, + { + "name": "AOCFFA-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCFFA-Ruins_P", + "displayName": "Ruins", + "preview": "CMW.Ruins" + }, + { + "name": "AOCFFA-Tavern_p", + "displayName": "Tavern", + "preview": "CMW.Tavern" + }, + { + "name": "AOCFFA-ThroneRoomXL_P", + "displayName": "Throne Room XL", + "preview": "CMW.ThroneRoom" + }, + { + "name": "AOCFFA-StoneshillVillage_P", + "displayName": "Stoneshill Village", + "preview": "CMW.Stoneshill.Village" + }, + { + "name": "AOCFFA-Bridge_p", + "displayName": "Bridge", + "preview": "CMW.Bridge" + }, + { + "name": "AOCFFA-Cistern_p", + "displayName": "Cistern", + "preview": "CMW.Cistern" + }, + { + "name": "AOCFFA-Courtyard_p", + "displayName": "Courtyard", + "preview": "CMW.Courtyard" + }, + { + "name": "AOCFFA-Dininghall_p", + "displayName": "Dining Hall", + "preview": "CMW.DiningHall" + }, + { + "name": "AOCFFA-FrostPeak_p", + "displayName": "Frostpeak", + "preview": "CMW.FrostPeak" + }, + { + "name": "AOCFFA-Mines_p", + "displayName": "Mines", + "preview": "CMW.Mines" + }, + { + "name": "AOCFFA-Shipyard_p", + "displayName": "Shipyard", + "preview": "CMW.Shipyard" + } + ] + }, + { + "category": "Team Deathmatch", + "maps": + [ + { + "name": "AOCTD-Frigid_p", + "displayName": "Frigid", + "preview": "CMW.Frigid" + }, + { + "name": "AOCTD-ArgonsWall_p", + "displayName": "Argons Wall", + "preview": "CMW.ArgonsWall" + }, + { + "name": "AOCTD-Ruins_P", + "displayName": "Ruins", + "preview": "CMW.Ruins" + }, + { + "name": "AOCTD-ThroneRoom_P", + "displayName": "Throne Room", + "preview": "CMW.ThroneRoom" + }, + { + "name": "AOCTD-StoneshillVillage_P", + "displayName": "Stoneshill Village", + "preview": "CMW.Stoneshill.Village" + }, + { + "name": "AOCTD-Moor_p", + "displayName": "Moor", + "preview": "CMW.Moor" + }, + { + "name": "AOCTD-Battlegrounds_Farm_p", + "displayName": "Battlegrounds Farm", + "preview": "CMW.Battlegrounds.Farm" + }, + { + "name": "AOCTD-Battlegrounds_p", + "displayName": "Battlegrounds", + "preview": "CMW.Battlegrounds" + }, + { + "name": "AOCTD-Hillside_P", + "displayName": "Hillside", + "preview": "CMW.Hillside" + }, + { + "name": "AOCTD-HillsidePyre_P", + "displayName": "Hillside Pyre", + "preview": "CMW.Hillside.Pyre" + }, + { + "name": "AOCTD-Darkforest_XL_p", + "displayName": "Dark forest XL", + "preview": "CMW.Darkforest.XL" + }, + { + "name": "AOCTD-Darkforest_Valley_p", + "displayName": "Dark forest Valley", + "preview": "CMW.Darkforest.Valley" + }, + { + "name": "AOCTD-Moor_Large_p", + "displayName": "Moor Large", + "preview": "CMW.Moor" + }, + { + "name": "AOCTD-Ruins_Large_P", + "displayName": "Ruins Large", + "preview": "CMW.Ruins" + }, + { + "name": "AOCTD-Bridge_p", + "displayName": "Bridge", + "preview": "CMW.Bridge" + }, + { + "name": "AOCTD-Cistern_p", + "displayName": "Cistern", + "preview": "CMW.Cistern" + }, + { + "name": "AOCTD-Courtyard_p", + "displayName": "Courtyard", + "preview": "CMW.Courtyard" + }, + { + "name": "AOCTD-Dininghall_p", + "displayName": "Dining Hall", + "preview": "CMW.Dininghall" + }, + { + "name": "AOCTD-FrostPeak_p", + "displayName": "Frostpeak", + "preview": "CMW.FrostPeak" + }, + { + "name": "AOCTD-Mines_p", + "displayName": "Mines", + "preview": "CMW.Mines" + }, + { + "name": "AOCTD-Shipyard_p", + "displayName": "Shipyard", + "preview": "CMW.Shipyard" + } + ] + } +] \ No newline at end of file diff --git a/assets/maps/AOCCTF-Ruins_P.jpg b/assets/maps/AOCCTF-Ruins_P.jpg deleted file mode 100644 index 39865ab..0000000 Binary files a/assets/maps/AOCCTF-Ruins_P.jpg and /dev/null differ diff --git a/assets/maps/AOCDuel-Arena_p.jpg b/assets/maps/AOCDuel-Arena_p.jpg deleted file mode 100644 index 2981a0c..0000000 Binary files a/assets/maps/AOCDuel-Arena_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Arena3_p.jpg b/assets/maps/AOCFFA-Arena3_p.jpg deleted file mode 100644 index 2981a0c..0000000 Binary files a/assets/maps/AOCFFA-Arena3_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Bridge_p.jpg b/assets/maps/AOCFFA-Bridge_p.jpg deleted file mode 100644 index 9183e19..0000000 Binary files a/assets/maps/AOCFFA-Bridge_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Cistern_p.jpg b/assets/maps/AOCFFA-Cistern_p.jpg deleted file mode 100644 index f33fd9a..0000000 Binary files a/assets/maps/AOCFFA-Cistern_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Courtyard_p.jpg b/assets/maps/AOCFFA-Courtyard_p.jpg deleted file mode 100644 index 6fc606b..0000000 Binary files a/assets/maps/AOCFFA-Courtyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Dininghall_p.jpg b/assets/maps/AOCFFA-Dininghall_p.jpg deleted file mode 100644 index 08ff463..0000000 Binary files a/assets/maps/AOCFFA-Dininghall_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-FrostPeak_p.jpg b/assets/maps/AOCFFA-FrostPeak_p.jpg deleted file mode 100644 index 3e3c4e6..0000000 Binary files a/assets/maps/AOCFFA-FrostPeak_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Mines_p.jpg b/assets/maps/AOCFFA-Mines_p.jpg deleted file mode 100644 index 6cacc86..0000000 Binary files a/assets/maps/AOCFFA-Mines_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Moor_p.jpg b/assets/maps/AOCFFA-Moor_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCFFA-Moor_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Ruins_P.jpg b/assets/maps/AOCFFA-Ruins_P.jpg deleted file mode 100644 index 39865ab..0000000 Binary files a/assets/maps/AOCFFA-Ruins_P.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-Shipyard_p.jpg b/assets/maps/AOCFFA-Shipyard_p.jpg deleted file mode 100644 index c0693e8..0000000 Binary files a/assets/maps/AOCFFA-Shipyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCFFA-ThroneRoomXL_P.jpg b/assets/maps/AOCFFA-ThroneRoomXL_P.jpg deleted file mode 100644 index 7778712..0000000 Binary files a/assets/maps/AOCFFA-ThroneRoomXL_P.jpg and /dev/null differ diff --git a/assets/maps/AOCKOTH-Arena3_p.jpg b/assets/maps/AOCKOTH-Arena3_p.jpg deleted file mode 100644 index 2981a0c..0000000 Binary files a/assets/maps/AOCKOTH-Arena3_p.jpg and /dev/null differ diff --git a/assets/maps/AOCKOTH-Darkforest_Valley_p.jpg b/assets/maps/AOCKOTH-Darkforest_Valley_p.jpg deleted file mode 100644 index 495e9ff..0000000 Binary files a/assets/maps/AOCKOTH-Darkforest_Valley_p.jpg and /dev/null differ diff --git a/assets/maps/AOCKOTH-Hillside_P.jpg b/assets/maps/AOCKOTH-Hillside_P.jpg deleted file mode 100644 index 7f5f557..0000000 Binary files a/assets/maps/AOCKOTH-Hillside_P.jpg and /dev/null differ diff --git a/assets/maps/AOCKOTH-Moor_p.jpg b/assets/maps/AOCKOTH-Moor_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCKOTH-Moor_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Arena3_p.jpg b/assets/maps/AOCLTS-Arena3_p.jpg deleted file mode 100644 index 2981a0c..0000000 Binary files a/assets/maps/AOCLTS-Arena3_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Bridge_p.jpg b/assets/maps/AOCLTS-Bridge_p.jpg deleted file mode 100644 index 9183e19..0000000 Binary files a/assets/maps/AOCLTS-Bridge_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Cistern_p.jpg b/assets/maps/AOCLTS-Cistern_p.jpg deleted file mode 100644 index f33fd9a..0000000 Binary files a/assets/maps/AOCLTS-Cistern_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Courtyard_p.jpg b/assets/maps/AOCLTS-Courtyard_p.jpg deleted file mode 100644 index 6fc606b..0000000 Binary files a/assets/maps/AOCLTS-Courtyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Darkforest_Valley_p.jpg b/assets/maps/AOCLTS-Darkforest_Valley_p.jpg deleted file mode 100644 index 495e9ff..0000000 Binary files a/assets/maps/AOCLTS-Darkforest_Valley_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Dininghall_p.jpg b/assets/maps/AOCLTS-Dininghall_p.jpg deleted file mode 100644 index 08ff463..0000000 Binary files a/assets/maps/AOCLTS-Dininghall_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Frigid_p.jpg b/assets/maps/AOCLTS-Frigid_p.jpg deleted file mode 100644 index 6188420..0000000 Binary files a/assets/maps/AOCLTS-Frigid_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-FrostPeak_p.jpg b/assets/maps/AOCLTS-FrostPeak_p.jpg deleted file mode 100644 index 3e3c4e6..0000000 Binary files a/assets/maps/AOCLTS-FrostPeak_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-HillsidePyre_P.jpg b/assets/maps/AOCLTS-HillsidePyre_P.jpg deleted file mode 100644 index 7f5f557..0000000 Binary files a/assets/maps/AOCLTS-HillsidePyre_P.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Hillside_P.jpg b/assets/maps/AOCLTS-Hillside_P.jpg deleted file mode 100644 index 36b1fcd..0000000 Binary files a/assets/maps/AOCLTS-Hillside_P.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Mines_p.jpg b/assets/maps/AOCLTS-Mines_p.jpg deleted file mode 100644 index 6cacc86..0000000 Binary files a/assets/maps/AOCLTS-Mines_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Moor_Large_p.jpg b/assets/maps/AOCLTS-Moor_Large_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCLTS-Moor_Large_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Moor_p.jpg b/assets/maps/AOCLTS-Moor_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCLTS-Moor_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Ruins_Large_P.jpg b/assets/maps/AOCLTS-Ruins_Large_P.jpg deleted file mode 100644 index 39865ab..0000000 Binary files a/assets/maps/AOCLTS-Ruins_Large_P.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Ruins_P.jpg b/assets/maps/AOCLTS-Ruins_P.jpg deleted file mode 100644 index 39865ab..0000000 Binary files a/assets/maps/AOCLTS-Ruins_P.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-Shipyard_p.jpg b/assets/maps/AOCLTS-Shipyard_p.jpg deleted file mode 100644 index c0693e8..0000000 Binary files a/assets/maps/AOCLTS-Shipyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-StoneshillVillage_P.jpg b/assets/maps/AOCLTS-StoneshillVillage_P.jpg deleted file mode 100644 index 66c9af3..0000000 Binary files a/assets/maps/AOCLTS-StoneshillVillage_P.jpg and /dev/null differ diff --git a/assets/maps/AOCLTS-ThroneRoom_P.jpg b/assets/maps/AOCLTS-ThroneRoom_P.jpg deleted file mode 100644 index 7778712..0000000 Binary files a/assets/maps/AOCLTS-ThroneRoom_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-ArgonsWall_p.jpg b/assets/maps/AOCTD-ArgonsWall_p.jpg deleted file mode 100644 index e419ed1..0000000 Binary files a/assets/maps/AOCTD-ArgonsWall_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Battlegrounds_Farm_p.jpg b/assets/maps/AOCTD-Battlegrounds_Farm_p.jpg deleted file mode 100644 index 06534ec..0000000 Binary files a/assets/maps/AOCTD-Battlegrounds_Farm_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Battlegrounds_p.jpg b/assets/maps/AOCTD-Battlegrounds_p.jpg deleted file mode 100644 index 7231226..0000000 Binary files a/assets/maps/AOCTD-Battlegrounds_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Bridge_p.jpg b/assets/maps/AOCTD-Bridge_p.jpg deleted file mode 100644 index 9183e19..0000000 Binary files a/assets/maps/AOCTD-Bridge_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Cistern_p.jpg b/assets/maps/AOCTD-Cistern_p.jpg deleted file mode 100644 index f33fd9a..0000000 Binary files a/assets/maps/AOCTD-Cistern_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Courtyard_p.jpg b/assets/maps/AOCTD-Courtyard_p.jpg deleted file mode 100644 index 6fc606b..0000000 Binary files a/assets/maps/AOCTD-Courtyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Darkforest_Valley_p.jpg b/assets/maps/AOCTD-Darkforest_Valley_p.jpg deleted file mode 100644 index 495e9ff..0000000 Binary files a/assets/maps/AOCTD-Darkforest_Valley_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Darkforest_XL_p.jpg b/assets/maps/AOCTD-Darkforest_XL_p.jpg deleted file mode 100644 index e155320..0000000 Binary files a/assets/maps/AOCTD-Darkforest_XL_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Dininghall_p.jpg b/assets/maps/AOCTD-Dininghall_p.jpg deleted file mode 100644 index 08ff463..0000000 Binary files a/assets/maps/AOCTD-Dininghall_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Frigid_p.jpg b/assets/maps/AOCTD-Frigid_p.jpg deleted file mode 100644 index 6188420..0000000 Binary files a/assets/maps/AOCTD-Frigid_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-FrostPeak_p.jpg b/assets/maps/AOCTD-FrostPeak_p.jpg deleted file mode 100644 index 3e3c4e6..0000000 Binary files a/assets/maps/AOCTD-FrostPeak_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-HillsidePyre_P.jpg b/assets/maps/AOCTD-HillsidePyre_P.jpg deleted file mode 100644 index 7f5f557..0000000 Binary files a/assets/maps/AOCTD-HillsidePyre_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Hillside_P.jpg b/assets/maps/AOCTD-Hillside_P.jpg deleted file mode 100644 index 36b1fcd..0000000 Binary files a/assets/maps/AOCTD-Hillside_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Mines_p.jpg b/assets/maps/AOCTD-Mines_p.jpg deleted file mode 100644 index 6cacc86..0000000 Binary files a/assets/maps/AOCTD-Mines_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Moor_Large_p.jpg b/assets/maps/AOCTD-Moor_Large_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCTD-Moor_Large_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Moor_p.jpg b/assets/maps/AOCTD-Moor_p.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCTD-Moor_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Ruins_Large_P.jpg b/assets/maps/AOCTD-Ruins_Large_P.jpg deleted file mode 100644 index 86b8d13..0000000 Binary files a/assets/maps/AOCTD-Ruins_Large_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Ruins_P.jpg b/assets/maps/AOCTD-Ruins_P.jpg deleted file mode 100644 index 39865ab..0000000 Binary files a/assets/maps/AOCTD-Ruins_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-Shipyard_p.jpg b/assets/maps/AOCTD-Shipyard_p.jpg deleted file mode 100644 index c0693e8..0000000 Binary files a/assets/maps/AOCTD-Shipyard_p.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-StoneshillVillage_P.jpg b/assets/maps/AOCTD-StoneshillVillage_P.jpg deleted file mode 100644 index 66c9af3..0000000 Binary files a/assets/maps/AOCTD-StoneshillVillage_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTD-ThroneRoom_P.jpg b/assets/maps/AOCTD-ThroneRoom_P.jpg deleted file mode 100644 index 7778712..0000000 Binary files a/assets/maps/AOCTD-ThroneRoom_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTO-Battlegrounds_v3_P.jpg b/assets/maps/AOCTO-Battlegrounds_v3_P.jpg deleted file mode 100644 index 06534ec..0000000 Binary files a/assets/maps/AOCTO-Battlegrounds_v3_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTO-Hillside_P.jpg b/assets/maps/AOCTO-Hillside_P.jpg deleted file mode 100644 index 7f5f557..0000000 Binary files a/assets/maps/AOCTO-Hillside_P.jpg and /dev/null differ diff --git a/assets/maps/AOCTO-Stoneshill_P.jpg b/assets/maps/AOCTO-Stoneshill_P.jpg deleted file mode 100644 index 66c9af3..0000000 Binary files a/assets/maps/AOCTO-Stoneshill_P.jpg and /dev/null differ diff --git a/assets/maps/AOCDuel-Arena_Flat_p.jpg b/assets/maps/CMW.Arena.jpg similarity index 100% rename from assets/maps/AOCDuel-Arena_Flat_p.jpg rename to assets/maps/CMW.Arena.jpg diff --git a/assets/maps/AOCLTS-ArgonsWall_p.jpg b/assets/maps/CMW.ArgonsWall.jpg similarity index 100% rename from assets/maps/AOCLTS-ArgonsWall_p.jpg rename to assets/maps/CMW.ArgonsWall.jpg diff --git a/assets/maps/AOCLTS-Battlegrounds_Farm_p.jpg b/assets/maps/CMW.Battlegrounds.Farm.jpg similarity index 100% rename from assets/maps/AOCLTS-Battlegrounds_Farm_p.jpg rename to assets/maps/CMW.Battlegrounds.Farm.jpg diff --git a/assets/maps/AOCLTS-Battlegrounds_p.jpg b/assets/maps/CMW.Battlegrounds.jpg similarity index 100% rename from assets/maps/AOCLTS-Battlegrounds_p.jpg rename to assets/maps/CMW.Battlegrounds.jpg diff --git a/assets/maps/AOCDuel-Bridge_p.jpg b/assets/maps/CMW.Bridge.jpg similarity index 100% rename from assets/maps/AOCDuel-Bridge_p.jpg rename to assets/maps/CMW.Bridge.jpg diff --git a/assets/maps/AOCDuel-Cistern_p.jpg b/assets/maps/CMW.Cistern.jpg similarity index 100% rename from assets/maps/AOCDuel-Cistern_p.jpg rename to assets/maps/CMW.Cistern.jpg diff --git a/assets/maps/AOCTO-Citadel_p.jpg b/assets/maps/CMW.Citadel.jpg similarity index 100% rename from assets/maps/AOCTO-Citadel_p.jpg rename to assets/maps/CMW.Citadel.jpg diff --git a/assets/maps/AOCDuel-Courtyard_p.jpg b/assets/maps/CMW.Courtyard.jpg similarity index 100% rename from assets/maps/AOCDuel-Courtyard_p.jpg rename to assets/maps/CMW.Courtyard.jpg diff --git a/assets/maps/AOCFFA-Darkforest_Cistern_p.jpg b/assets/maps/CMW.Darkforest.Cistern.jpg similarity index 100% rename from assets/maps/AOCFFA-Darkforest_Cistern_p.jpg rename to assets/maps/CMW.Darkforest.Cistern.jpg diff --git a/assets/maps/AOCFFA-Darkforest_Valley_p.jpg b/assets/maps/CMW.Darkforest.Valley.jpg similarity index 100% rename from assets/maps/AOCFFA-Darkforest_Valley_p.jpg rename to assets/maps/CMW.Darkforest.Valley.jpg diff --git a/assets/maps/AOCLTS-Darkforest_XL_p.jpg b/assets/maps/CMW.Darkforest.XL.jpg similarity index 100% rename from assets/maps/AOCLTS-Darkforest_XL_p.jpg rename to assets/maps/CMW.Darkforest.XL.jpg diff --git a/assets/maps/AOCTO-Darkforest_p.jpg b/assets/maps/CMW.Darkforest.jpg similarity index 100% rename from assets/maps/AOCTO-Darkforest_p.jpg rename to assets/maps/CMW.Darkforest.jpg diff --git a/assets/maps/AOCDuel-Dininghall_p.jpg b/assets/maps/CMW.DiningHall.jpg similarity index 100% rename from assets/maps/AOCDuel-Dininghall_p.jpg rename to assets/maps/CMW.DiningHall.jpg diff --git a/assets/maps/AOCCTF-Frigid_p.jpg b/assets/maps/CMW.Frigid.jpg similarity index 100% rename from assets/maps/AOCCTF-Frigid_p.jpg rename to assets/maps/CMW.Frigid.jpg diff --git a/assets/maps/AOCDuel-FrostPeak_p.jpg b/assets/maps/CMW.FrostPeak.jpg similarity index 100% rename from assets/maps/AOCDuel-FrostPeak_p.jpg rename to assets/maps/CMW.FrostPeak.jpg diff --git a/assets/maps/AOCFFA-HillsidePyre_P.jpg b/assets/maps/CMW.Hillside.Pyre.jpg similarity index 100% rename from assets/maps/AOCFFA-HillsidePyre_P.jpg rename to assets/maps/CMW.Hillside.Pyre.jpg diff --git a/assets/maps/AOCFFA-Hillside_P.jpg b/assets/maps/CMW.Hillside.jpg similarity index 100% rename from assets/maps/AOCFFA-Hillside_P.jpg rename to assets/maps/CMW.Hillside.jpg diff --git a/assets/maps/AOCDuel-Mines_p.jpg b/assets/maps/CMW.Mines.jpg similarity index 100% rename from assets/maps/AOCDuel-Mines_p.jpg rename to assets/maps/CMW.Mines.jpg diff --git a/assets/maps/AOCCTF-Moor_p.jpg b/assets/maps/CMW.Moor.jpg similarity index 100% rename from assets/maps/AOCCTF-Moor_p.jpg rename to assets/maps/CMW.Moor.jpg diff --git a/assets/maps/AOCCTF-Ruins_Large_P.jpg b/assets/maps/CMW.Ruins.jpg similarity index 100% rename from assets/maps/AOCCTF-Ruins_Large_P.jpg rename to assets/maps/CMW.Ruins.jpg diff --git a/assets/maps/AOCDuel-Shaft_p.jpg b/assets/maps/CMW.Shaft.jpg similarity index 100% rename from assets/maps/AOCDuel-Shaft_p.jpg rename to assets/maps/CMW.Shaft.jpg diff --git a/assets/maps/AOCDuel-Shipyard_p.jpg b/assets/maps/CMW.Shipyard.jpg similarity index 100% rename from assets/maps/AOCDuel-Shipyard_p.jpg rename to assets/maps/CMW.Shipyard.jpg diff --git a/assets/maps/AOCFFA-StoneshillVillage_P.jpg b/assets/maps/CMW.Stoneshill.Village.jpg similarity index 100% rename from assets/maps/AOCFFA-StoneshillVillage_P.jpg rename to assets/maps/CMW.Stoneshill.Village.jpg diff --git a/assets/maps/AOCDuel-ThroneRoom_p.jpg b/assets/maps/CMW.ThroneRoom.jpg similarity index 100% rename from assets/maps/AOCDuel-ThroneRoom_p.jpg rename to assets/maps/CMW.ThroneRoom.jpg diff --git a/assets/maps/AOCDuel-Tower_p.jpg b/assets/maps/CMW.Tower.jpg similarity index 100% rename from assets/maps/AOCDuel-Tower_p.jpg rename to assets/maps/CMW.Tower.jpg diff --git a/setup/ChivalryServerLauncher.iss b/setup/ChivalryServerLauncher.iss new file mode 100644 index 0000000..c3fd6ab --- /dev/null +++ b/setup/ChivalryServerLauncher.iss @@ -0,0 +1,41 @@ +#define AppName "Chivalry Server Launcher" +#define AppExeName "ChivalryServerLauncher.exe" +#define AppVersion GetFileVersion("..\bin\win32\" + AppExeName) +#define AppPublisher "X²Software" +#define AppURL "http://wiki.x2software.net/chivalryserverlauncher" + +[Setup] +AppId={{6481B635-328D-4EF3-B841-99EB695A4174} +AppName={#AppName} +AppVersion={#AppVersion} +AppPublisher={#AppPublisher} +AppPublisherURL={#AppURL} +AppSupportURL={#AppURL} +AppUpdatesURL={#AppURL} +DefaultDirName={pf}\{#AppName} +DefaultGroupName={#AppName} +AllowNoIcons=yes +;LicenseFile=..\license.txt +OutputDir=output +OutputBaseFilename=ChivalryServerLauncherSetup +Compression=lzma +SolidCompression=yes + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +Source: "..\bin\win32\{#AppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode +Source: "..\bin\win64\{#AppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode +Source: "..\assets\*"; DestDir: "{app}\assets\"; Flags: ignoreversion recursesubdirs createallsubdirs + +[Icons] +Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}" +Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#AppName}}"; Flags: nowait postinstall skipifsilent + diff --git a/source/Resources.pas b/source/Resources.pas index b861966..bec95fa 100644 --- a/source/Resources.pas +++ b/source/Resources.pas @@ -3,7 +3,7 @@ unit Resources; interface const AssetsPath = 'assets\'; - AssetChivalryMedievalWarfareMapListFileName = 'Chivalry.MedievalWarfare.MapList.ini'; + AssetChivalryMedievalWarfareMapListFileName = 'Chivalry.MedievalWarfare.MapList.json'; AssetMapPreviewPath = 'maps\'; AssetMapPreviewExtension = '.jpg'; diff --git a/source/model/Game.Chivalry.MedievalWarfare.pas b/source/model/Game.Chivalry.MedievalWarfare.pas index 6d7c639..b88d19e 100644 --- a/source/model/Game.Chivalry.MedievalWarfare.pas +++ b/source/model/Game.Chivalry.MedievalWarfare.pas @@ -25,11 +25,13 @@ type implementation uses System.Classes, - System.IniFiles, + System.IOUtils, System.SysUtils, System.Win.Registry, Winapi.Windows, + superobject, + Resources, Game.Registry; @@ -84,43 +86,42 @@ end; procedure TChivalryMedievalWarfareGame.LoadPredefinedMapList(AList: TList); var mapListFileName: string; - mapList: TMemIniFile; - categories: TStringList; + mapList: ISuperObject; + category: ISuperObject; categoryName: string; - maps: TStringList; - mapIndex: Integer; + maps: ISuperObject; + map: ISuperObject; + mapName: string; + displayName: string; + previewName: string; begin mapListFileName := Resources.GetAssetPath(Resources.AssetChivalryMedievalWarfareMapListFileName); if not FileExists(mapListFileName) then exit; - mapList := TMemIniFile.Create(mapListFileName); - try - categories := nil; - maps := nil; - try - categories := TStringList.Create; - maps := TStringList.Create; + mapList := SO(TFile.ReadAllText(mapListFileName)); + if not Assigned(mapList) then + exit; - mapList.ReadSections(categories); - - for categoryName in categories do + for category in mapList do + begin + categoryName := Trim(category.S['category']); + if Length(categoryName) > 0 then + begin + maps := category.O['maps']; + if Assigned(maps) then begin - maps.Clear; - mapList.ReadSectionValues(categoryName, maps); + for map in maps do + begin + mapName := Trim(map.S['name']); + displayName := Trim(map.S['displayName']); + previewName := Trim(map.S['preview']); - for mapIndex := 0 to Pred(maps.Count) do - AList.Add(TGameMap.Create(Trim(maps.Names[mapIndex]), - Trim(maps.ValueFromIndex[mapIndex]), - Trim(categoryName))); + AList.Add(TGameMap.Create(mapName, displayname, categoryName, previewName)); + end; end; - finally - FreeAndNil(maps); - FreeAndNil(categories); end; - finally - FreeAndNil(mapList); end; end; diff --git a/source/model/Game.Intf.pas b/source/model/Game.Intf.pas index fbbc401..ff36d81 100644 --- a/source/model/Game.Intf.pas +++ b/source/model/Game.Intf.pas @@ -53,15 +53,21 @@ type FCategory: string; FName: string; FDisplayName: string; + FPreviewName: string; + function GetPreviewName: string; protected function GetDisplayName: string; virtual; + + property ActualDisplayName: string read FDisplayName; + property ActualPreviewName: string read FPreviewName; public - constructor Create(const AName: string; const ADisplayName, ACategory: string); overload; + constructor Create(const AName: string; const ADisplayName, ACategory: string; const APreviewName: string = ''); overload; constructor Create(AClone: TGameMap); overload; property Category: string read FCategory; property Name: string read FName; property DisplayName: string read GetDisplayName; + property PreviewName: string read GetPreviewName; end; @@ -88,30 +94,41 @@ type implementation -uses - System.StrUtils; { TGameMap } -constructor TGameMap.Create(const AName, ADisplayName, ACategory: string); +constructor TGameMap.Create(const AName, ADisplayName, ACategory, APreviewName: string); begin inherited Create; FName := AName; - FDisplayName := IfThen(Length(ADisplayName) > 0, ADisplayName, AName); + FDisplayName := ADisplayName; FCategory := ACategory; + FPreviewName := APreviewName end; constructor TGameMap.Create(AClone: TGameMap); begin - Create(AClone.Name, AClone.DisplayName, AClone.Category); + Create(AClone.Name, AClone.ActualDisplayName, AClone.Category, AClone.ActualPreviewName); end; function TGameMap.GetDisplayName: string; begin - Result := FDisplayName; + if Length(FDisplayName) > 0 then + Result := FDisplayName + else + Result := FName; +end; + + +function TGameMap.GetPreviewName: string; +begin + if Length(FPreviewName) > 0 then + Result := FPreviewName + else + Result := FName; end; end. diff --git a/source/view/Forms.Main.dfm b/source/view/Forms.Main.dfm index 1f4b97b..7ae19d4 100644 --- a/source/view/Forms.Main.dfm +++ b/source/view/Forms.Main.dfm @@ -66,7 +66,7 @@ object MainForm: TMainForm Top = 76 Width = 565 Height = 428 - ActivePage = tsMapList + ActivePage = tsAbout Align = alClient Style = tsButtons TabOrder = 2 @@ -105,7 +105,7 @@ object MainForm: TMainForm Columns = < item Position = 0 - Width = 199 + Width = 203 WideText = 'Map name' end item @@ -331,6 +331,10 @@ object MainForm: TMainForm end object tsNetwork: TTabSheet Caption = 'Server - Network' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object gbPorts: TGroupBox AlignWithMargins = True Left = 8 @@ -401,6 +405,10 @@ object MainForm: TMainForm object tsGames: TTabSheet Caption = 'Launcher - Game locations' ImageIndex = 3 + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 object vstGames: TVirtualStringTree AlignWithMargins = True Left = 8 @@ -434,7 +442,7 @@ object MainForm: TMainForm end item Position = 1 - Width = 337 + Width = 341 WideText = 'Location' end> end diff --git a/source/view/Forms.Main.pas b/source/view/Forms.Main.pas index 09211ac..a7f187f 100644 --- a/source/view/Forms.Main.pas +++ b/source/view/Forms.Main.pas @@ -226,6 +226,7 @@ type implementation uses System.Bindings.Helper, + System.DateUtils, System.Math, System.StrUtils, System.SysUtils, @@ -275,6 +276,13 @@ const { TMainForm } procedure TMainForm.FormCreate(Sender: TObject); + + function GetVersionDate: TDateTime; + begin + Result := EncodeDate(2000, 1, 1) + Pred(App.Version.Release); + end; + + var lightBtnFace: TColor; pageIndex: Integer; @@ -312,7 +320,12 @@ begin lightBtnFace := BlendColors(clBtnFace, clWindow, 196); pnlGamesWarning.Color := lightBtnFace; - lblProductName.Caption := App.Version.FormatVersion(False, True); + lblProductName.Caption := Format('%s v%d.%d - %s', + [App.Version.Strings.ProductName, + App.Version.Major, + App.Version.Minor, + FormatDateTime('yyyy.mm.dd', GetVersionDate)]); + lblCopyright.Caption := App.Version.Strings.LegalCopyright; @@ -923,7 +936,7 @@ begin exit; if Assigned(Node) then - frmMapPreview.Load(gameMapList.Map[Node^.Index].Name) + frmMapPreview.Load(gameMapList.Map[Node^.Index].PreviewName) else frmMapPreview.Clear; end; diff --git a/source/view/Forms.Map.pas b/source/view/Forms.Map.pas index e89adea..6ea31bc 100644 --- a/source/view/Forms.Map.pas +++ b/source/view/Forms.Map.pas @@ -288,7 +288,7 @@ begin if Assigned(Node) then begin nodeData := Sender.GetNodeData(Node); - frmMapPreview.Load(nodeData^.Name); + frmMapPreview.Load(nodeData^.PreviewName); FLockMapChange := True; try diff --git a/source/view/Frame.MapPreview.pas b/source/view/Frame.MapPreview.pas index c890e4a..1d37308 100644 --- a/source/view/Frame.MapPreview.pas +++ b/source/view/Frame.MapPreview.pas @@ -22,7 +22,7 @@ type constructor Create(AOwner: TComponent); override; procedure Clear; - procedure Load(const AMapName: string); + procedure Load(const APreviewName: string); end; @@ -56,7 +56,7 @@ begin end; -procedure TMapPreviewFrame.Load(const AMapName: string); +procedure TMapPreviewFrame.Load(const APreviewName: string); var preview: TPicture; fileName: string; @@ -65,17 +65,17 @@ var begin preview := nil; - if Length(AMapName) > 0 then + if Length(APreviewName) > 0 then begin - preview := gcMapPreview.PictureByName(AMapName); + preview := gcMapPreview.PictureByName(APreviewName); if not Assigned(preview) then begin previewItem := TX2GraphicContainerItem.Create(Self); previewItem.Container := gcMapPreview; - previewItem.PictureName := AMapName; + previewItem.PictureName := APreviewName; preview := previewItem.Picture; - fileName := GetAssetPath(AssetMapPreviewPath + AMapName + AssetMapPreviewExtension); + fileName := GetAssetPath(AssetMapPreviewPath + APreviewName + AssetMapPreviewExtension); if FileExists(fileName) then begin try