Added: option to open the server config folder in Windows Explorer

Fixed: updated map list
Fixed: disable manual map name input when multiselecting
This commit is contained in:
Mark van Renswoude 2014-07-31 21:24:18 +00:00
parent 2452ce7108
commit adda5932e7
28 changed files with 77 additions and 3 deletions

View File

@ -4,6 +4,8 @@ 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
@ -47,6 +49,13 @@ 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
@ -58,6 +67,13 @@ AOCFFA-Moor_p=Moor
AOCFFA-Ruins_P=Ruins
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
@ -73,4 +89,11 @@ 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-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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -28,6 +28,7 @@ type
function GetExecutable: string; virtual; abstract;
function GetParameters: string; virtual;
function GetCommandLine: string; virtual;
function GetConfigPath: string; virtual;
property Loaded: Boolean read FLoaded;
property Location: string read FLocation;
@ -108,6 +109,12 @@ begin
end;
function TCustomGame.GetConfigPath: string;
begin
Result := ExtractFilePath(GetExecutable);
end;
procedure TCustomGame.PropertyChanged(const APropertyName: string);
begin
if not FModified then

View File

@ -36,6 +36,7 @@ type
function GetExecutable: string; override;
function GetParameters: string; override;
function GetConfigPath: string; override;
{ IGameNetwork }
function GetServerPort: Integer;
@ -102,7 +103,9 @@ uses
const
GameSettingsFileName = 'UDKGame\Config\PCServer-UDKGame.ini';
GameSettingsPath = 'UDKGame\Config\';
GameSettingsFileName = GameSettingsPath + 'PCServer-UDKGame.ini';
GameURL = 'URL';
GameURLPort = 'Port'; GameURLPortDefault = 7777;
GameURLPeerPort = 'PeerPort'; GameURLPeerPortDefault = 7778;
@ -119,7 +122,7 @@ const
GameAccessControlAdminPassword = 'AdminPassword';
EngineSettingsFileName = 'UDKGame\Config\PCServer-UDKEngine.ini';
EngineSettingsFileName = GameSettingsPath + 'PCServer-UDKEngine.ini';
EngineSteam = 'OnlineSubsystemSteamworks.OnlineSubsystemSteamworks';
EngineSteamQueryPort = 'QueryPort'; EngineSteamQueryPortDefault = 27015;
@ -181,6 +184,12 @@ begin
end;
function TChivalryGame.GetConfigPath: string;
begin
Result := Location + GameSettingsPath;
end;
procedure TChivalryGame.DoLoad;
var
gameSettings: TUDKIniFile;

View File

@ -2581,6 +2581,10 @@ object MainForm: TMainForm
Caption = '&Revert changes'
OnExecute = actRevertExecute
end
object actOpenConfigFolder: TAction
Caption = '&Open server configuration folder'
OnExecute = actOpenConfigFolderExecute
end
end
object pmnLaunch: TPopupMenu
Left = 144
@ -2588,6 +2592,12 @@ object MainForm: TMainForm
object pmnLaunchCopyCmdLine: TMenuItem
Action = actCopyCmdLine
end
object pmnLaunchSep1: TMenuItem
Caption = '-'
end
object pmnLaunchOpenConfigFolder: TMenuItem
Action = actOpenConfigFolder
end
end
object alMapList: TActionList
Images = glToolbar

View File

@ -145,6 +145,9 @@ type
lblAdminPassword: TLabel;
edtAdminPassword: TEdit;
cbShowPasswords: TCheckBox;
pmnLaunchSep1: TMenuItem;
actOpenConfigFolder: TAction;
pmnLaunchOpenConfigFolder: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
@ -176,6 +179,7 @@ type
procedure actMapUpExecute(Sender: TObject);
procedure actMapDownExecute(Sender: TObject);
procedure cbShowPasswordsClick(Sender: TObject);
procedure actOpenConfigFolderExecute(Sender: TObject);
private type
TBindingExpressionList = TList<TBindingExpression>;
TPageMenuDictionary = TDictionary<TTabSheet, TX2MenuBarItem>;
@ -946,6 +950,15 @@ begin
end;
procedure TMainForm.actOpenConfigFolderExecute(Sender: TObject);
begin
if not Assigned(ActiveGame) then
exit;
ShellExecute(Self.Handle, 'explore', PChar(ActiveGame.GetConfigPath), nil, nil, SW_SHOWNORMAL);
end;
procedure TMainForm.actMapAddExecute(Sender: TObject);
var
gameMapList: IGameMapList;

View File

@ -81,6 +81,7 @@ object MapForm: TMapForm
TabOrder = 1
TreeOptions.PaintOptions = [toHideFocusRect, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect]
OnChange = vstMapChange
OnCollapsing = vstMapCollapsing
OnCompareNodes = vstMapCompareNodes
OnFocusChanged = vstMapFocusChanged

View File

@ -39,6 +39,7 @@ type
procedure vstMapPaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType);
procedure vstMapFocusChanging(Sender: TBaseVirtualTree; OldNode, NewNode: PVirtualNode; OldColumn, NewColumn: TColumnIndex; var Allowed: Boolean);
procedure vstMapFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex);
procedure vstMapChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstMapCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean);
procedure vstMapCompareNodes(Sender: TBaseVirtualTree; Node1, Node2: PVirtualNode; Column: TColumnIndex; var Result: Integer);
procedure edtMapNameChange(Sender: TObject);
@ -300,6 +301,16 @@ begin
end;
procedure TMapForm.vstMapChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
const
EditColor: array[Boolean] of TColor = (clBtnFace, clWindow);
begin
edtMapName.Enabled := (Sender.selectedCount <= 1);
edtMapName.Color := EditColor[edtMapName.Enabled];
end;
procedure TMapForm.vstMapCollapsing(Sender: TBaseVirtualTree; Node: PVirtualNode; var Allowed: Boolean);
begin
Allowed := False;