Added: Inno Setup script

Changed: MapList now uses JSON format, preview filename parameter added
Changed: cleaned up preview folder, no more duplicates
Changed: version number now uses XE2's auto generated date numbers
This commit is contained in:
Mark van Renswoude 2014-08-02 12:15:14 +00:00
parent ce399ab45a
commit 9c720f5922
97 changed files with 616 additions and 165 deletions

View File

@ -19,7 +19,6 @@ uses
{$R *.res} {$R *.res}
var var
MainForm: TMainForm; MainForm: TMainForm;

View File

@ -41,11 +41,14 @@
<Base>true</Base> <Base>true</Base>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Base)'!=''"> <PropertyGroup Condition="'$(Base)'!=''">
<VerInfo_Keys>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</VerInfo_Keys> <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>
<VerInfo_MinorVer>1</VerInfo_MinorVer> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_DebugInformation>false</DCC_DebugInformation>
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
<VerInfo_AutoGenVersion>true</VerInfo_AutoGenVersion>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<VerInfo_Keys>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</VerInfo_Keys>
<VerInfo_Locale>1033</VerInfo_Locale> <VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_MajorVer>0</VerInfo_MajorVer>
<Icon_MainIcon>resources\icons\MainIcon.ico</Icon_MainIcon> <Icon_MainIcon>resources\icons\MainIcon.ico</Icon_MainIcon>
<Manifest_File>None</Manifest_File> <Manifest_File>None</Manifest_File>
<DCC_UsePackage>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)</DCC_UsePackage> <DCC_UsePackage>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)</DCC_UsePackage>
@ -150,20 +153,6 @@
<Source Name="MainSource">ChivalryServerLauncher.dpr</Source> <Source Name="MainSource">ChivalryServerLauncher.dpr</Source>
</Source> </Source>
<Excluded_Packages> <Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxCoreRS16.bpl">ExpressCoreLibrary by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxLibraryRS16.bpl">Express Cross Platform Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxPageControlRS16.bpl">ExpressPageControl by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxServerModeRS16.bpl">ExpressDataController Server Mode by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxEditorsRS16.bpl">ExpressEditors Library by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxWizardControlRS16.bpl">ExpressWizardControl by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxBarRS16.bpl">ExpressBars by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxSchedulerRS16.bpl">ExpressScheduler by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxGridRS16.bpl">ExpressQuantumGrid by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxPSCoreRS16.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxPSTeeChartRS16.bpl">ExpressPrinting System ReportLink for TeeChart by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxPivotGridRS16.bpl">ExpressPivotGrid by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxOrgCRS16.bpl">ExpressOrgChart by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxPSdxLCLnkRS16.bpl">ExpressPrinting System ReportLink for ExpressLayoutControl by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxDBXServerModeRS16.bpl">dbExpress Data Source for ExpressDataController Server Mode by Developer Express Inc.</Excluded_Packages> <Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxDBXServerModeRS16.bpl">dbExpress Data Source for ExpressDataController Server Mode by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxADOServerModeRS16.bpl">ADO Data Source for ExpressDataController Server Mode by Developer Express Inc.</Excluded_Packages> <Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dcldxADOServerModeRS16.bpl">ADO Data Source for ExpressDataController Server Mode by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxEditorFieldLinkRS16.bpl">ExpressEditors FieldLink by Developer Express Inc.</Excluded_Packages> <Excluded_Packages Name="D:\Program Files\Developer Express.VCL\Library\RS16\dclcxEditorFieldLinkRS16.bpl">ExpressEditors FieldLink by Developer Express Inc.</Excluded_Packages>

Binary file not shown.

View File

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

View File

@ -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"
}
]
}
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

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

View File

@ -3,7 +3,7 @@ unit Resources;
interface interface
const const
AssetsPath = 'assets\'; AssetsPath = 'assets\';
AssetChivalryMedievalWarfareMapListFileName = 'Chivalry.MedievalWarfare.MapList.ini'; AssetChivalryMedievalWarfareMapListFileName = 'Chivalry.MedievalWarfare.MapList.json';
AssetMapPreviewPath = 'maps\'; AssetMapPreviewPath = 'maps\';
AssetMapPreviewExtension = '.jpg'; AssetMapPreviewExtension = '.jpg';

View File

@ -25,11 +25,13 @@ type
implementation implementation
uses uses
System.Classes, System.Classes,
System.IniFiles, System.IOUtils,
System.SysUtils, System.SysUtils,
System.Win.Registry, System.Win.Registry,
Winapi.Windows, Winapi.Windows,
superobject,
Resources, Resources,
Game.Registry; Game.Registry;
@ -84,43 +86,42 @@ end;
procedure TChivalryMedievalWarfareGame.LoadPredefinedMapList(AList: TList<TGameMap>); procedure TChivalryMedievalWarfareGame.LoadPredefinedMapList(AList: TList<TGameMap>);
var var
mapListFileName: string; mapListFileName: string;
mapList: TMemIniFile; mapList: ISuperObject;
categories: TStringList; category: ISuperObject;
categoryName: string; categoryName: string;
maps: TStringList; maps: ISuperObject;
mapIndex: Integer; map: ISuperObject;
mapName: string;
displayName: string;
previewName: string;
begin begin
mapListFileName := Resources.GetAssetPath(Resources.AssetChivalryMedievalWarfareMapListFileName); mapListFileName := Resources.GetAssetPath(Resources.AssetChivalryMedievalWarfareMapListFileName);
if not FileExists(mapListFileName) then if not FileExists(mapListFileName) then
exit; exit;
mapList := TMemIniFile.Create(mapListFileName); mapList := SO(TFile.ReadAllText(mapListFileName));
try if not Assigned(mapList) then
categories := nil; exit;
maps := nil;
try
categories := TStringList.Create;
maps := TStringList.Create;
mapList.ReadSections(categories); for category in mapList do
begin
for categoryName in categories do categoryName := Trim(category.S['category']);
if Length(categoryName) > 0 then
begin
maps := category.O['maps'];
if Assigned(maps) then
begin begin
maps.Clear; for map in maps do
mapList.ReadSectionValues(categoryName, maps); 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(mapName, displayname, categoryName, previewName));
AList.Add(TGameMap.Create(Trim(maps.Names[mapIndex]), end;
Trim(maps.ValueFromIndex[mapIndex]),
Trim(categoryName)));
end; end;
finally
FreeAndNil(maps);
FreeAndNil(categories);
end; end;
finally
FreeAndNil(mapList);
end; end;
end; end;

View File

@ -53,15 +53,21 @@ type
FCategory: string; FCategory: string;
FName: string; FName: string;
FDisplayName: string; FDisplayName: string;
FPreviewName: string;
function GetPreviewName: string;
protected protected
function GetDisplayName: string; virtual; function GetDisplayName: string; virtual;
property ActualDisplayName: string read FDisplayName;
property ActualPreviewName: string read FPreviewName;
public 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; constructor Create(AClone: TGameMap); overload;
property Category: string read FCategory; property Category: string read FCategory;
property Name: string read FName; property Name: string read FName;
property DisplayName: string read GetDisplayName; property DisplayName: string read GetDisplayName;
property PreviewName: string read GetPreviewName;
end; end;
@ -88,30 +94,41 @@ type
implementation implementation
uses
System.StrUtils;
{ TGameMap } { TGameMap }
constructor TGameMap.Create(const AName, ADisplayName, ACategory: string); constructor TGameMap.Create(const AName, ADisplayName, ACategory, APreviewName: string);
begin begin
inherited Create; inherited Create;
FName := AName; FName := AName;
FDisplayName := IfThen(Length(ADisplayName) > 0, ADisplayName, AName); FDisplayName := ADisplayName;
FCategory := ACategory; FCategory := ACategory;
FPreviewName := APreviewName
end; end;
constructor TGameMap.Create(AClone: TGameMap); constructor TGameMap.Create(AClone: TGameMap);
begin begin
Create(AClone.Name, AClone.DisplayName, AClone.Category); Create(AClone.Name, AClone.ActualDisplayName, AClone.Category, AClone.ActualPreviewName);
end; end;
function TGameMap.GetDisplayName: string; function TGameMap.GetDisplayName: string;
begin 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;
end. end.

View File

@ -66,7 +66,7 @@ object MainForm: TMainForm
Top = 76 Top = 76
Width = 565 Width = 565
Height = 428 Height = 428
ActivePage = tsMapList ActivePage = tsAbout
Align = alClient Align = alClient
Style = tsButtons Style = tsButtons
TabOrder = 2 TabOrder = 2
@ -105,7 +105,7 @@ object MainForm: TMainForm
Columns = < Columns = <
item item
Position = 0 Position = 0
Width = 199 Width = 203
WideText = 'Map name' WideText = 'Map name'
end end
item item
@ -331,6 +331,10 @@ object MainForm: TMainForm
end end
object tsNetwork: TTabSheet object tsNetwork: TTabSheet
Caption = 'Server - Network' Caption = 'Server - Network'
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object gbPorts: TGroupBox object gbPorts: TGroupBox
AlignWithMargins = True AlignWithMargins = True
Left = 8 Left = 8
@ -401,6 +405,10 @@ object MainForm: TMainForm
object tsGames: TTabSheet object tsGames: TTabSheet
Caption = 'Launcher - Game locations' Caption = 'Launcher - Game locations'
ImageIndex = 3 ImageIndex = 3
ExplicitLeft = 0
ExplicitTop = 0
ExplicitWidth = 0
ExplicitHeight = 0
object vstGames: TVirtualStringTree object vstGames: TVirtualStringTree
AlignWithMargins = True AlignWithMargins = True
Left = 8 Left = 8
@ -434,7 +442,7 @@ object MainForm: TMainForm
end end
item item
Position = 1 Position = 1
Width = 337 Width = 341
WideText = 'Location' WideText = 'Location'
end> end>
end end

View File

@ -226,6 +226,7 @@ type
implementation implementation
uses uses
System.Bindings.Helper, System.Bindings.Helper,
System.DateUtils,
System.Math, System.Math,
System.StrUtils, System.StrUtils,
System.SysUtils, System.SysUtils,
@ -275,6 +276,13 @@ const
{ TMainForm } { TMainForm }
procedure TMainForm.FormCreate(Sender: TObject); procedure TMainForm.FormCreate(Sender: TObject);
function GetVersionDate: TDateTime;
begin
Result := EncodeDate(2000, 1, 1) + Pred(App.Version.Release);
end;
var var
lightBtnFace: TColor; lightBtnFace: TColor;
pageIndex: Integer; pageIndex: Integer;
@ -312,7 +320,12 @@ begin
lightBtnFace := BlendColors(clBtnFace, clWindow, 196); lightBtnFace := BlendColors(clBtnFace, clWindow, 196);
pnlGamesWarning.Color := lightBtnFace; 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; lblCopyright.Caption := App.Version.Strings.LegalCopyright;
@ -923,7 +936,7 @@ begin
exit; exit;
if Assigned(Node) then if Assigned(Node) then
frmMapPreview.Load(gameMapList.Map[Node^.Index].Name) frmMapPreview.Load(gameMapList.Map[Node^.Index].PreviewName)
else else
frmMapPreview.Clear; frmMapPreview.Clear;
end; end;

View File

@ -288,7 +288,7 @@ begin
if Assigned(Node) then if Assigned(Node) then
begin begin
nodeData := Sender.GetNodeData(Node); nodeData := Sender.GetNodeData(Node);
frmMapPreview.Load(nodeData^.Name); frmMapPreview.Load(nodeData^.PreviewName);
FLockMapChange := True; FLockMapChange := True;
try try

View File

@ -22,7 +22,7 @@ type
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
procedure Clear; procedure Clear;
procedure Load(const AMapName: string); procedure Load(const APreviewName: string);
end; end;
@ -56,7 +56,7 @@ begin
end; end;
procedure TMapPreviewFrame.Load(const AMapName: string); procedure TMapPreviewFrame.Load(const APreviewName: string);
var var
preview: TPicture; preview: TPicture;
fileName: string; fileName: string;
@ -65,17 +65,17 @@ var
begin begin
preview := nil; preview := nil;
if Length(AMapName) > 0 then if Length(APreviewName) > 0 then
begin begin
preview := gcMapPreview.PictureByName(AMapName); preview := gcMapPreview.PictureByName(APreviewName);
if not Assigned(preview) then if not Assigned(preview) then
begin begin
previewItem := TX2GraphicContainerItem.Create(Self); previewItem := TX2GraphicContainerItem.Create(Self);
previewItem.Container := gcMapPreview; previewItem.Container := gcMapPreview;
previewItem.PictureName := AMapName; previewItem.PictureName := APreviewName;
preview := previewItem.Picture; preview := previewItem.Picture;
fileName := GetAssetPath(AssetMapPreviewPath + AMapName + AssetMapPreviewExtension); fileName := GetAssetPath(AssetMapPreviewPath + APreviewName + AssetMapPreviewExtension);
if FileExists(fileName) then if FileExists(fileName) then
begin begin
try try