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
@ -19,7 +19,6 @@ uses
|
|||||||
|
|
||||||
{$R *.res}
|
{$R *.res}
|
||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
MainForm: TMainForm;
|
MainForm: TMainForm;
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
@ -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
|
|
484
assets/Chivalry.MedievalWarfare.MapList.json
Normal 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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
41
setup/ChivalryServerLauncher.iss
Normal 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
|
||||||
|
|
@ -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';
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|