diff --git a/ClientFiles/Resources/Binaries/ClientUpdater.dll b/ClientFiles/Resources/Binaries/ClientUpdater.dll new file mode 100644 index 0000000..96542bf Binary files /dev/null and b/ClientFiles/Resources/Binaries/ClientUpdater.dll differ diff --git a/ClientFiles/Resources/Binaries/DTAUpdater.dll b/ClientFiles/Resources/Binaries/DTAUpdater.dll deleted file mode 100644 index 79ca28d..0000000 Binary files a/ClientFiles/Resources/Binaries/DTAUpdater.dll and /dev/null differ diff --git a/ClientFiles/Resources/Binaries/OpenGL/ClientCore.dll b/ClientFiles/Resources/Binaries/OpenGL/ClientCore.dll index e70b82a..5b49823 100644 Binary files a/ClientFiles/Resources/Binaries/OpenGL/ClientCore.dll and b/ClientFiles/Resources/Binaries/OpenGL/ClientCore.dll differ diff --git a/ClientFiles/Resources/Binaries/OpenGL/ClientGUI.dll b/ClientFiles/Resources/Binaries/OpenGL/ClientGUI.dll index c6907b9..1ce772a 100644 Binary files a/ClientFiles/Resources/Binaries/OpenGL/ClientGUI.dll and b/ClientFiles/Resources/Binaries/OpenGL/ClientGUI.dll differ diff --git a/ClientFiles/Resources/Binaries/OpenGL/DTAConfig.dll b/ClientFiles/Resources/Binaries/OpenGL/DTAConfig.dll index 868619e..52b94c3 100644 Binary files a/ClientFiles/Resources/Binaries/OpenGL/DTAConfig.dll and b/ClientFiles/Resources/Binaries/OpenGL/DTAConfig.dll differ diff --git a/ClientFiles/Resources/Binaries/OpenGL/Localization.dll b/ClientFiles/Resources/Binaries/OpenGL/Localization.dll new file mode 100644 index 0000000..11a0979 Binary files /dev/null and b/ClientFiles/Resources/Binaries/OpenGL/Localization.dll differ diff --git a/ClientFiles/Resources/Binaries/OpenGL/Rampastring.XNAUI.dll b/ClientFiles/Resources/Binaries/OpenGL/Rampastring.XNAUI.dll index 20ea654..38b51af 100644 Binary files a/ClientFiles/Resources/Binaries/OpenGL/Rampastring.XNAUI.dll and b/ClientFiles/Resources/Binaries/OpenGL/Rampastring.XNAUI.dll differ diff --git a/ClientFiles/Resources/Binaries/Windows/ClientCore.dll b/ClientFiles/Resources/Binaries/Windows/ClientCore.dll index 0985c00..9084e8c 100644 Binary files a/ClientFiles/Resources/Binaries/Windows/ClientCore.dll and b/ClientFiles/Resources/Binaries/Windows/ClientCore.dll differ diff --git a/ClientFiles/Resources/Binaries/Windows/ClientGUI.dll b/ClientFiles/Resources/Binaries/Windows/ClientGUI.dll index 3d91c32..6e834c1 100644 Binary files a/ClientFiles/Resources/Binaries/Windows/ClientGUI.dll and b/ClientFiles/Resources/Binaries/Windows/ClientGUI.dll differ diff --git a/ClientFiles/Resources/Binaries/Windows/DTAConfig.dll b/ClientFiles/Resources/Binaries/Windows/DTAConfig.dll index aa560e4..cf0f293 100644 Binary files a/ClientFiles/Resources/Binaries/Windows/DTAConfig.dll and b/ClientFiles/Resources/Binaries/Windows/DTAConfig.dll differ diff --git a/ClientFiles/Resources/Binaries/Windows/Localization.dll b/ClientFiles/Resources/Binaries/Windows/Localization.dll new file mode 100644 index 0000000..11a0979 Binary files /dev/null and b/ClientFiles/Resources/Binaries/Windows/Localization.dll differ diff --git a/ClientFiles/Resources/Binaries/Windows/Rampastring.XNAUI.dll b/ClientFiles/Resources/Binaries/Windows/Rampastring.XNAUI.dll index 834ccd8..33d9520 100644 Binary files a/ClientFiles/Resources/Binaries/Windows/Rampastring.XNAUI.dll and b/ClientFiles/Resources/Binaries/Windows/Rampastring.XNAUI.dll differ diff --git a/ClientFiles/Resources/Binaries/XNA/ClientCore.dll b/ClientFiles/Resources/Binaries/XNA/ClientCore.dll index b6077d8..d3d6acf 100644 Binary files a/ClientFiles/Resources/Binaries/XNA/ClientCore.dll and b/ClientFiles/Resources/Binaries/XNA/ClientCore.dll differ diff --git a/ClientFiles/Resources/Binaries/XNA/ClientGUI.dll b/ClientFiles/Resources/Binaries/XNA/ClientGUI.dll index bcf727b..d8ed58f 100644 Binary files a/ClientFiles/Resources/Binaries/XNA/ClientGUI.dll and b/ClientFiles/Resources/Binaries/XNA/ClientGUI.dll differ diff --git a/ClientFiles/Resources/Binaries/XNA/DTAConfig.dll b/ClientFiles/Resources/Binaries/XNA/DTAConfig.dll index 8d6a6d5..162b6e4 100644 Binary files a/ClientFiles/Resources/Binaries/XNA/DTAConfig.dll and b/ClientFiles/Resources/Binaries/XNA/DTAConfig.dll differ diff --git a/ClientFiles/Resources/Binaries/XNA/Localization.dll b/ClientFiles/Resources/Binaries/XNA/Localization.dll new file mode 100644 index 0000000..11a0979 Binary files /dev/null and b/ClientFiles/Resources/Binaries/XNA/Localization.dll differ diff --git a/ClientFiles/Resources/Binaries/XNA/Rampastring.XNAUI.dll b/ClientFiles/Resources/Binaries/XNA/Rampastring.XNAUI.dll index 39aaa2f..c336a2d 100644 Binary files a/ClientFiles/Resources/Binaries/XNA/Rampastring.XNAUI.dll and b/ClientFiles/Resources/Binaries/XNA/Rampastring.XNAUI.dll differ diff --git a/ClientFiles/Resources/CnCNetGameLobby.ini b/ClientFiles/Resources/CnCNetGameLobby.ini new file mode 100644 index 0000000..83c678a --- /dev/null +++ b/ClientFiles/Resources/CnCNetGameLobby.ini @@ -0,0 +1,12 @@ +[INISystem] +BasedOn=LANGameLobby.ini + +[MultiplayerGameLobby] +$CCMP99=btnChangeTunnel:XNAClientButton + +[btnChangeTunnel] +Text=Change Tunnel +$Width=BUTTON_WIDTH_133 +$Height=DEFAULT_BUTTON_HEIGHT +$X=getX(btnLeaveGame) - getWidth($Self) - LOBBY_PANEL_SPACING +$Y=getY(btnLeaveGame) diff --git a/ClientFiles/Resources/GameOptions.ini b/ClientFiles/Resources/GameOptions.ini index d6c38a7..030f35e 100644 --- a/ClientFiles/Resources/GameOptions.ini +++ b/ClientFiles/Resources/GameOptions.ini @@ -221,8 +221,7 @@ Reversed=yes [chkBrutalAI] Text=Brutal AI -CustomIniPath=INI/Game Options/MultiEngineer.ini -SpawnIniOption=MultiEngineer +CustomIniPath=INI/Game Options/BrutalAI.ini Checked=False Location=1060,108 ToolTip=Makes the AI harder across all levels. diff --git a/ClientFiles/Resources/GenericWindow.ini b/ClientFiles/Resources/GenericWindow.ini index 2ba6516..dcf4275 100644 --- a/ClientFiles/Resources/GenericWindow.ini +++ b/ClientFiles/Resources/GenericWindow.ini @@ -22,11 +22,6 @@ BackgroundTexture=gamelobbybg.png DrawBorders=true ;false Size=1230,750 -[MultiplayerGameLobby] -BackgroundTexture=gamelobbybg.png -DrawBorders=true ;false -Size=1230,750 - [CnCNetLobby] BackgroundTexture=cncnetlobbybg.png DrawBorders=true ;false diff --git a/ClientFiles/Resources/GlobalThemeSettings.ini b/ClientFiles/Resources/GlobalThemeSettings.ini index c4c1abb..1844919 100644 --- a/ClientFiles/Resources/GlobalThemeSettings.ini +++ b/ClientFiles/Resources/GlobalThemeSettings.ini @@ -59,3 +59,28 @@ ToolTipOffsetY=-5 ToolTipMargin=4 ToolTipDelay=0.67 ToolTipAlphaRate=100.0 ;4.0 + +[ParserConstants] +DEFAULT_LBL_HEIGHT=12 +DEFAULT_CONTROL_HEIGHT=21 +DEFAULT_BUTTON_HEIGHT=23 + +BUTTON_WIDTH_133=133 + +OPEN_BUTTON_WIDTH=18 +OPEN_BUTTON_HEIGHT=22 ;18 + +EMPTY_SPACE_TOP=12 +EMPTY_SPACE_BOTTOM=12 +EMPTY_SPACE_SIDES=12 +BUTTON_SPACING=12 +LABEL_SPACING=6 +CHECKBOX_SPACING=24 + +LOBBY_EMPTY_SPACE_SIDES=12 +LOBBY_PANEL_SPACING=10 + +GAME_OPTION_COLUMN_SPACING=160 +GAME_OPTION_ROW_SPACING=6 +GAME_OPTION_DD_WIDTH=132 +GAME_OPTION_DD_HEIGHT=22 diff --git a/ClientFiles/Resources/LANGameLobby.ini b/ClientFiles/Resources/LANGameLobby.ini new file mode 100644 index 0000000..cca5b5d --- /dev/null +++ b/ClientFiles/Resources/LANGameLobby.ini @@ -0,0 +1,76 @@ +[INISystem] +BasedOn=SkirmishLobby.ini + +[MultiplayerGameLobby] +$BaseSection=SkirmishLobby +PlayerReadyBoxY=2 +PlayerReadyBoxX=6 +PlayerOptionLocationX=29 +PlayerOptionLocationY=25 ; def=24 +PlayerOptionVerticalMargin=9 ; def=12 +PlayerOptionHorizontalMargin=5 ; def=3 +PlayerOptionCaptionLocationY=6 ; def=6 +PlayerNameWidth=135 ; def=136 +SideWidth=110 ; def=91 +ColorWidth=80 ; def=79 +StartWidth=45 ; def=49 +TeamWidth=35 ; def=46 + +; controls +$CCMP00=btnLockGame:XNAClientButton +$CCMP01=chkAutoReady:XNAClientCheckBox + +[lbMapList] +$Height=291 + +[btnPickRandomMap] +$Y=getBottom(lbMapList) + LOBBY_PANEL_SPACING + +[tbMapSearch] +$X=getRight(btnPickRandomMap) + LOBBY_PANEL_SPACING +$Y=getY(btnPickRandomMap) + +[lbChatMessagesBase] +SolidColorBackgroundTexture=0,0,0,128 +$Width=getWidth(lbMapList) +$X=LOBBY_EMPTY_SPACE_SIDES + +[lbChatMessages_Host] +$BaseSection=lbChatMessagesBase +$Y=getBottom(btnPickRandomMap) + LOBBY_PANEL_SPACING +$Height=getBottom(MapPreviewBox) - (getBottom(btnPickRandomMap) + LOBBY_PANEL_SPACING) + +[lbChatMessages_Player] +$BaseSection=lbChatMessagesBase +$Y=EMPTY_SPACE_TOP +$Height=getBottom(MapPreviewBox) - (getY($Self) + +[tbChatInputBase] +Suggestion=Type here to chat... +$Width=getWidth(lbMapList) +$Height=DEFAULT_CONTROL_HEIGHT +$X=LOBBY_EMPTY_SPACE_SIDES +$Y=getBottom(MapPreviewBox) + LOBBY_PANEL_SPACING + +[tbChatInput_Host] +$BaseSection=tbChatInputBase + +[tbChatInput_Player] +$BaseSection=tbChatInputBase + +[btnLockGame] +$Width=BUTTON_WIDTH_133 +$Height=DEFAULT_BUTTON_HEIGHT +$X=getRight(btnLaunchGame) + LOBBY_PANEL_SPACING +$Y=getY(btnLaunchGame) + +[chkAutoReady] +Text=Auto-Ready +$X=getRight(btnLaunchGame) + LOBBY_PANEL_SPACING +$Y=getY(btnLaunchGame) + 2 +Enabled=true +Visible=true + +[cmbGameSpeedCap] +Items=Fastest (60 FPS),Faster (45 FPS),Fast (30 FPS),Medium (20 FPS),Slow (15 FPS),Slower (12 FPS),Slowest (10 FPS) + diff --git a/ClientFiles/Resources/ManualUpdateQueryWindow.ini b/ClientFiles/Resources/ManualUpdateQueryWindow.ini new file mode 100644 index 0000000..0155725 --- /dev/null +++ b/ClientFiles/Resources/ManualUpdateQueryWindow.ini @@ -0,0 +1,5 @@ +[INISystem] +BasedOn=GenericWindow.ini + +[btnClose] +Location=176,110 diff --git a/ClientFiles/Resources/MultiplayerGameLobby.ini b/ClientFiles/Resources/MultiplayerGameLobby.ini deleted file mode 100644 index a16fe55..0000000 --- a/ClientFiles/Resources/MultiplayerGameLobby.ini +++ /dev/null @@ -1,156 +0,0 @@ -[INISystem] -BasedOn=GenericWindow.ini - -[lblName] - -[lblSide] - -[lblStart] -Visible=true - -[lblColor] - -[lblTeam] - -[ddPlayerStart0] -Enabled=true -Visible=true - -[ddPlayerStart1] -Enabled=true -Visible=true - -[ddPlayerStart2] -Enabled=true -Visible=true - -[ddPlayerStart3] -Enabled=true -Visible=true - -[ddPlayerStart4] -Enabled=true -Visible=true - -[ddPlayerStart5] -Enabled=true -Visible=true - -[ddPlayerStart6] -Enabled=true -Visible=true - -[ddPlayerStart7] -Enabled=true -Visible=true - -[lbChatMessages_Host] -Location=12,378 -Size=359,0 -FillHeight=77 - -[lbChatMessages_Player] -Location=12,14 -Size=359,0 -FillHeight=77 - -[tbChatInput_Host] -Location=12,0 -Size=359,21 -DistanceFromBottomBorder=46 - -[tbChatInput_Player] -Location=12,0 -Size=359,21 -DistanceFromBottomBorder=46 - -[lblGameModeSelect] -Location=130,16 - -[ddGameMode] -Location=221,14 - -[lbMapList] -Location=12,46 -Size=359,291 -DrawMode=Stretched -BackgroundTexture=50.png - -[tbMapSearch] -Location=155,347 -Size=216,21 - -[btnPickRandomMap] -Location=12,346 -Size=133,23 -Visible=true -Enabled=true - -[PlayerOptionsPanel] -Location=381,14 -Size=500,269 -DrawMode=Stretched -BackgroundTexture=50.png - -[PlayerExtraOptionsPanel] -Location=381,14 -Size=500,269 - -[btnPlayerExtraOptionsOpen] -Location=0,0 -Visible=false - -[GameOptionsPanel] -Location=891,14 -Size=327,269 -DrawMode=Stretched -BackgroundTexture=50.png - -[BtnSaveLoadGameOptions] -Location=1200,14 - -[MapPreviewBox] -Location=381,293 -Size=837,380 -DrawMode=Stretched -BackgroundTexture=50.png - -[lblMapName] -Location=381,714 -DistanceFromBottomBorder=54 - -[lblMapAuthor] -Location=591,714 -DistanceFromBottomBorder=54 - -[lblGameMode] -Location=381,731 -DistanceFromBottomBorder=33 - -[lblMapSize] -Location=381,731 -DistanceFromBottomBorder=12 -Visible=true - -[btnLaunchGame] -Location=12,0 -DistanceFromBottomBorder=12 - -[btnLockGame] -Location=157,0 -DistanceFromBottomBorder=12 - -[chkAutoReady] -Location=157,0 -DistanceFromBottomBorder=14 -Visible=true -Enabled=true - -[btnChangeTunnel] -Location=925,740 -DistanceFromBottomBorder=12 - -[btnLeaveGame] -Location=1085,740 -DistanceFromBottomBorder=12 - diff --git a/ClientFiles/Resources/OptionsWindow.ini b/ClientFiles/Resources/OptionsWindow.ini index 4a502c3..88b939b 100644 --- a/ClientFiles/Resources/OptionsWindow.ini +++ b/ClientFiles/Resources/OptionsWindow.ini @@ -3,6 +3,15 @@ BasedOn=GenericWindow.ini [ExtraControls] +[DisplayOptionsPanelExtraControls] +0=chkMEDDraw:FileSettingCheckBox + +[GameOptionsPanelExtraControls] +; Enable if using Phobos +;0=chkTooltipsExtra:SettingCheckBox +;1=chkPrioritySelection:SettingCheckBox +;2=chkBuildingPlacement:SettingCheckBox + [OptionsWindow] DrawMode=Stretched BackgroundTexture=optionsbg.png @@ -21,11 +30,57 @@ BackgroundTexture=optionsbg.png [ComponentsPanel] +[chkMEDDraw] +Location=285,114 +Text=Enable DDWrapper for map editor +ToolTip=Enables DirectDraw wrapper & emulation for map editor.@Turning this option on can help if you are encountering problems with editor viewport not displaying or being laggy. +EnabledFile0=Resources/Compatibility/DLL/ddwrapper.dll,Map Editor/ddraw32.dll,OverwriteOnMismatch +EnabledFile1=Resources/Compatibility/Configs/aqrit.cfg,Map Editor/aqrit.cfg,KeepChanges +DefaultValue=false +SettingSection=Video +SettingKey=UseDDWrapperForMapEditor + +[chkTooltipsExtra] +Location=24,151, ;12,151 +Text=Sidebar Tooltip Descriptions +ToolTip=Enables additional information in sidebar tooltips. +DefaultValue=true +ParentCheckBoxName=chkTooltips +ParentCheckBoxRequiredValue=true +SettingSection=Phobos +SettingKey=ToolTipDescriptions + +[chkPrioritySelection] +Location=242,54 +Text=Mass Selection Filtering +ToolTip=If enabled, non-combat units are not selected if mass-selecting together with combat units. +DefaultValue=false +SettingSection=Phobos +SettingKey=PrioritySelectionFiltering + +[chkBuildingPlacement] +Location=242,78 +Text=Show Building Placement Preview +ToolTip=If enabled, shows a preview image of the building when placing it. +DefaultValue=false +SettingSection=Phobos +SettingKey=ShowBuildingPlacementPreview + [ddClientResolution] PreferredItemLabel=(Rec.) ToolTip=Resolutions marked with (Rec.) are recommended default resolutions. -[chkPingUnofficialTunnels] +[lblPlayerName] +Location=12,195 + +[tbPlayerName] +Location=113,193 + +[lblNotice] +Location=12,220 + +[btnConfigureHotkeys] +Location=12,290 [chkWriteInstallPathToRegistry] Enabled=false @@ -65,4 +120,7 @@ Location=276,138 Location=470,137 [gameListPanel] -Location=0,200 \ No newline at end of file +Location=0,200 + +[btnForceUpdate] + diff --git a/ClientFiles/Resources/PlayerExtraOptionsPanel.ini b/ClientFiles/Resources/PlayerExtraOptionsPanel.ini new file mode 100644 index 0000000..0c9226c --- /dev/null +++ b/ClientFiles/Resources/PlayerExtraOptionsPanel.ini @@ -0,0 +1,36 @@ +[btnClose] +Location=220,0 +Size=18,18 + +[lblHeader] +Location=12,6 + +[chkBoxForceRandomSides] +Location=12,28 + +[chkBoxForceRandomColors] +Location=12,50 + +[chkBoxForceRandomTeams] +Location=12,72 + +[chkBoxForceRandomStarts] +Location=12,94 + +[chkBoxUseTeamStartMappings] +Location=12,130 + +[btnHelp] +Location=160,130 + +[lblPreset] +Location=12,156 + +[ddTeamStartMappingPreset] +Size=157,21 +Location=65,154 + +[teamStartMappingsPanel] +Location=12,189 + + diff --git a/ClientFiles/Resources/SecondStageUpdater.exe b/ClientFiles/Resources/SecondStageUpdater.exe new file mode 100644 index 0000000..1a43bdd Binary files /dev/null and b/ClientFiles/Resources/SecondStageUpdater.exe differ diff --git a/ClientFiles/Resources/SkirmishLobby.ini b/ClientFiles/Resources/SkirmishLobby.ini index aef9dba..59619cc 100644 --- a/ClientFiles/Resources/SkirmishLobby.ini +++ b/ClientFiles/Resources/SkirmishLobby.ini @@ -1,13 +1,479 @@ [INISystem] -BasedOn=MultiplayerGameLobby.ini +BasedOn=GenericWindow.ini + +[SkirmishLobby] +PlayerOptionLocationX=12 ; def=25 +PlayerOptionLocationY=25 ; def=24 +PlayerOptionVerticalMargin=9 ; def=12 +PlayerOptionHorizontalMargin=5 ; def=3 +PlayerOptionCaptionLocationY=6 ; def=6 +PlayerNameWidth=120 ; def=136 +SideWidth=120 ; def=91 +ColorWidth=80 ; def=79 +StartWidth=50 ; def=49 +TeamWidth=50 ; def=46 + +; controls +$CC00=btnLaunchGame:GameLaunchButton +$CC01=btnLeaveGame:XNAClientButton +$CC03=MapPreviewBox:MapPreviewBox +$CC04=GameOptionsPanel:XNAPanel +$CC05=PlayerOptionsPanel:XNAPanel +$CC06=lblMapName:XNALabel +$CC07=lblMapAuthor:XNALabel +$CC08=lblGameMode:XNALabel +$CC09=lblMapSize:XNALabel +$CC12=lbMapList:XNAMultiColumnListBox +$CC13=ddGameMode:XNAClientDropDown +$CC14=lblGameModeSelect:XNALabel +$CC15=btnPickRandomMap:XNAClientButton +$CC16=tbMapSearch:XNASuggestionTextBox +$CC17=PlayerExtraOptionsPanel:PlayerExtraOptionsPanel +$CC18=lbChatMessages:ChatListBox +$CC19=tbChatInput:XNAChatTextBox +$CC20=panelBorderTop:XNAExtraPanel +$CC21=panelBorderBottom:XNAExtraPanel +$CC22=panelBorderLeft:XNAExtraPanel +$CC23=panelBorderRight:XNAExtraPanel +$CC24=panelBorderCornerTL:XNAExtraPanel +$CC25=panelBorderCornerTR:XNAExtraPanel +$CC26=panelBorderCornerBL:XNAExtraPanel +$CC27=panelBorderCornerBR:XNAExtraPanel + +[lblName] +Text=Players; in the game its Players, makes more sense than Name actually, eh + +[lblSide] +Text=Side + +[lblStart] +Text=Start +Visible=true + +[lblColor] +Text=Color + +[lblTeam] +Text=Team + +[ddPlayerStartBase] +Enabled=true +Visible=true + +[ddPlayerStart0] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart1] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart2] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart3] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart4] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart5] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart6] +$BaseSection=ddPlayerStartBase + +[ddPlayerStart7] +$BaseSection=ddPlayerStartBase [lbMapList] -Location=12,46 -Size=359,0 -FillHeight=77 +$X=LOBBY_EMPTY_SPACE_SIDES +$Y=EMPTY_SPACE_TOP + 33 +$Width=getWidth($ParentControl) - (getX($Self) + (getWidth(MapPreviewBox) + LOBBY_EMPTY_SPACE_SIDES + LOBBY_PANEL_SPACING) +$Height=getBottom(MapPreviewBox) - getY($Self) +SolidColorBackgroundTexture=0,0,0,128 -[tbMapSearch] -DistanceFromBottomBorder=46 +[ddGameMode] +$Width=180 +$Height=DEFAULT_CONTROL_HEIGHT +$X=getRight(lbMapList) - getWidth($Self) +$Y=getY(lbMapList) - getHeight($Self) - EMPTY_SPACE_TOP + +[lblGameModeSelect] +Text=Game mode: +$X=getX(ddGameMode) - getWidth($Self) - LABEL_SPACING +$Y=getY(ddGameMode) + 1 + +[btnMapSortAlphabetically] +Visible=false +Enabled=false + +[btnLaunchGame] +Text=Launch Game +$Width=BUTTON_WIDTH_133 +$Height=DEFAULT_BUTTON_HEIGHT +$X=LOBBY_EMPTY_SPACE_SIDES +$Y=getHeight($ParentControl) - getHeight($Self) - EMPTY_SPACE_BOTTOM [btnPickRandomMap] -DistanceFromBottomBorder=44 +Text=Pick Random Map +$Width=BUTTON_WIDTH_133 +$Height=DEFAULT_BUTTON_HEIGHT +$X=LOBBY_EMPTY_SPACE_SIDES +$Y=getY(btnLaunchGame) - getHeight($Self) - LOBBY_PANEL_SPACING + +[tbMapSearch] +Suggestion=Search map... +$Width=getRight(lbMapList) - getRight(btnPickRandomMap) - LOBBY_PANEL_SPACING +$Height=DEFAULT_BUTTON_HEIGHT ;DEFAULT_CONTROL_HEIGHT +$X=getRight(btnPickRandomMap) + LOBBY_PANEL_SPACING +$Y=getY(btnPickRandomMap) ; + 1 +BackColor=255,255,255 +;SolidColorBackgroundTexture=0,0,0,128 + +[MapPreviewBox] +$Width=812 +$Height=380 +$X=getWidth($ParentControl) - getWidth($Self) - LOBBY_EMPTY_SPACE_SIDES +$Y=292 +SolidColorBackgroundTexture=0,0,0,128 + +[lblMapName] +$Height=DEFAULT_LBL_HEIGHT +$X=getX(MapPreviewBox) +$Y=getBottom(MapPreviewBox) + LABEL_SPACING + +[lblMapAuthor] +$TextAnchor=LEFT +$AnchorPoint=getRight(MapPreviewBox),getY(lblMapName) + +[lblGameMode] +$Height=DEFAULT_LBL_HEIGHT +$X=getX(lblMapName) +$Y=getBottom(lblMapName) + LABEL_SPACING + +[lblMapSize] +$Height=DEFAULT_LBL_HEIGHT +$X=getX(lblGameMode) +$Y=getBottom(lblGameMode) + LABEL_SPACING + +[btnLeaveGame] +Text=Leave Game +$Width=BUTTON_WIDTH_133 +$Height=DEFAULT_BUTTON_HEIGHT +$X=getWidth($ParentControl) - getWidth($Self) - LOBBY_EMPTY_SPACE_SIDES +$Y=getY(btnLaunchGame) + +[PlayerOptionsPanel] +$X=getX(MapPreviewBox) +$Y=EMPTY_SPACE_TOP +$Width=getWidth($ParentControl) - (getX($Self) + (getWidth(GameOptionsPanel) + LOBBY_EMPTY_SPACE_SIDES + LOBBY_PANEL_SPACING) +$Height=getHeight(GameOptionsPanel) +SolidColorBackgroundTexture=0,0,0,128 + +$CC00=btnPlayerExtraOptionsOpen:XNAClientButton + +[PlayerExtraOptionsPanel] +$Width=238 +$Height=247 +$X=getRight(PlayerOptionsPanel) - getWidth($Self) +$Y=getY(PlayerOptionsPanel) +SolidColorBackgroundTexture=0,0,0,128 + +[btnPlayerExtraOptionsOpen] +$Width=OPEN_BUTTON_WIDTH +$Height=OPEN_BUTTON_HEIGHT +$X=getWidth($ParentControl) - getWidth($Self) +$Y=0 +IdleTexture=optionsButton.png +HoverTexture=optionsButton_c.png + +[GameOptionsPanel] +$Width=337 +$Height=270 +$X=getWidth($ParentControl) - getWidth($Self) - LOBBY_EMPTY_SPACE_SIDES +$Y=EMPTY_SPACE_TOP +SolidColorBackgroundTexture=0,0,0,128 + +; Left column checkboxes +$CC-GO01=chkShortGame:GameLobbyCheckBox +$CC-GO02=chkRedeplMCV:GameLobbyCheckBox +$CC-GO03=chkSuperWeapons:GameLobbyCheckBox +$CC-GO04=chkCrates:GameLobbyCheckBox +$CC-GO05=chkBuildOffAlly:GameLobbyCheckBox +$CC-GO06=chkMultiEngineer:GameLobbyCheckBox + +; Right column checkboxes +$CC-GO07=chkIngameAllying:GameLobbyCheckBox +$CC-GO08=chkStolenTech:GameLobbyCheckBox +$CC-GO09=chkNavalCombat:GameLobbyCheckBox +$CC-GO10=chkDestroyableBridges:GameLobbyCheckBox +$CC-GO11=chkBrutalAI:GameLobbyCheckBox +$CC-GO12=chkNoSpawnPreview:GameLobbyCheckBox + +; Dropdowns +$CC-GODD01=cmbCredits:GameLobbyDropDown +$CC-GODD02=lblCredits:XNALabel +$CC-GODD03=cmbGameSpeedCap:GameLobbyDropDown +$CC-GODD04=lblGameSpeedCap:XNALabel +$CC-GODD05=cmbTechLevel:GameLobbyDropDown +$CC-GODD06=lblTechLevel:XNALabel +$CC-GODD07=cmbStartingUnits:GameLobbyDropDown +$CC-GODD08=lblStartingUnits:XNALabel + +$CC01=BtnSaveLoadGameOptions:XNAClientButton + +[BtnSaveLoadGameOptions] +$Width=OPEN_BUTTON_WIDTH +$Height=OPEN_BUTTON_HEIGHT +$X=getWidth($ParentControl) - getWidth($Self) +$Y=0 +IdleTexture=optionsButton.png +HoverTexture=optionsButton_c.png + +;============================ +; LEFT Column Checkboxes +;============================ + +[chkShortGame] +Text=Short Game +SpawnIniOption=ShortGame +Checked=True +ToolTip=Players win when all enemy buildings are destroyed. +$X=EMPTY_SPACE_SIDES +$Y=EMPTY_SPACE_TOP + +[chkRedeplMCV] +Text=MCV Repacks +SpawnIniOption=MCVRedeploy +Checked=True +ToolTip=Players have the ability to move their command center after it's deployed. +$X=getX(chkShortGame) +$Y=getBottom(chkShortGame) + GAME_OPTION_ROW_SPACING + +[chkSuperWeapons] +Text=Superweapons +SpawnIniOption=Superweapons +Checked=False +ToolTip=Allow superweapons to be built. +$X=getX(chkShortGame) +$Y=getBottom(chkRedeplMCV) + GAME_OPTION_ROW_SPACING + +[chkCrates] +Text=Crates Appear +SpawnIniOption=Crates +Checked=False +ToolTip=Random power-up crates will appear. +$X=getX(chkShortGame) +$Y=getBottom(chkSuperWeapons) + GAME_OPTION_ROW_SPACING + +[chkBuildOffAlly] +Text=Build Off Allies +SpawnIniOption=BuildOffAlly +Checked=True +ToolTip=Allow players to build near their allies' Construction Yards. +$X=getX(chkShortGame) +$Y=getBottom(chkCrates) + GAME_OPTION_ROW_SPACING + +[chkMultiEngineer] +Text=Multi Engineer +SpawnIniOption=MultiEngineer +Checked=False +ToolTip=Capturing structures requires 3 Engineers instead of 1. +$X=getX(chkShortGame) +$Y=getBottom(chkBuildOffAlly) + GAME_OPTION_ROW_SPACING + +;============================ +; Right Column Checkboxes +;============================ + +[chkIngameAllying] +Text=Ingame Allying +SpawnIniOption=AlliesAllowed +CustomIniPath=INI/Game Options/AlliesAllowed.ini +Checked=True +ToolTip=Players can form and break alliances in game. +$X=getX(chkShortGame) + GAME_OPTION_COLUMN_SPACING +$Y=getY(chkShortGame) + +[chkStolenTech] +Text=Stolen Tech +CustomIniPath=INI/Game Options/StolenTech.ini +Checked=True +ToolTip=Allow infiltration of battle labs for stolen tech infantry. +Reversed=yes +$X=getX(chkIngameAllying) +$Y=getBottom(chkIngameAllying) + GAME_OPTION_ROW_SPACING + +[chkNavalCombat] +Text=Naval Combat +CustomIniPath=INI/Game Options/NavalCombat.ini +Checked=True +ToolTip=Allow shipyards and naval units to be built. +Reversed=yes +$X=getX(chkIngameAllying) +$Y=getBottom(chkStolenTech) + GAME_OPTION_ROW_SPACING + +[chkDestroyableBridges] +Text=Destroyable Bridges +CustomIniPath=INI/Game Options/DestroyableBridges.ini +Checked=True +Location=1038,86 +ToolTip=Allow bridges to be destroyed by conventional weapons & force firing. +Reversed=yes +$X=getX(chkIngameAllying) +$Y=getBottom(chkNavalCombat) + GAME_OPTION_ROW_SPACING + +[chkBrutalAI] +Text=Brutal AI +CustomIniPath=INI/Game Options/BrutalAI.ini +Checked=False +Location=1038,107 +ToolTip=Makes the AI harder across all levels. +$X=getX(chkIngameAllying) +$Y=getBottom(chkDestroyableBridges) + GAME_OPTION_ROW_SPACING + +[chkNoSpawnPreview] +Text=No Spawn Previews +CustomIniPath=INI/Game Options/NoSpawnPreview.ini +Checked=True +Location=1038,128 +ToolTip=Do not display players' starting locations in loading screen map preview. +$X=getX(chkIngameAllying) +$Y=getBottom(chkBrutalAI) + GAME_OPTION_ROW_SPACING + + +;============================ +; Dropdowns +;============================ + +[lblCredits] +Text=Credits: +$Height=DEFAULT_LBL_HEIGHT +$X=getX(cmbCredits) +$Y=getY(cmbCredits) - LABEL_SPACING - DEFAULT_LBL_HEIGHT + +[cmbCredits] +OptionName=Starting Credits +Items=50000,45000,40000,35000,30000,25000,20000,15000,10000 +DefaultIndex=7 +SpawnIniOption=Credits +DataWriteMode=String +ToolTip=Changes how many credits players start with. +$Width=GAME_OPTION_DD_WIDTH +$Height=GAME_OPTION_DD_HEIGHT +$X=EMPTY_SPACE_SIDES +$Y=getHeight($ParentControl) - (getHeight($Self) + EMPTY_SPACE_BOTTOM) + +[lblGameSpeedCap] +Text=Game Speed: +$Height=DEFAULT_LBL_HEIGHT +$X=getX(cmbGameSpeedCap) +$Y=getY(cmbGameSpeedCap) - LABEL_SPACING - DEFAULT_LBL_HEIGHT + +[cmbGameSpeedCap] +OptionName=Game Speed +Items=Fastest (MAX),Faster (60 FPS),Fast (30 FPS),Medium (20 FPS),Slow (15 FPS),Slower (12 FPS),Slowest (10 FPS) +DefaultIndex=2 +SpawnIniOption=GameSpeed +DataWriteMode=Index +ToolTip=Changes game speed cap. +$Width=GAME_OPTION_DD_WIDTH +$Height=GAME_OPTION_DD_HEIGHT +$X=getX(cmbCredits) +$Y=getY(lblCredits) - LOBBY_PANEL_SPACING - GAME_OPTION_DD_HEIGHT + +[lblTechLevel] +Text=Tech Level: +$X=getX(cmbTechLevel) +$Y=getY(cmbTechLevel) - LABEL_SPACING - DEFAULT_LBL_HEIGHT +Enabled=no +Visible=no + +[cmbTechLevel] +OptionName=Tech Level +Items=10,9,8,7,6,5,4,3,2,1 +DefaultIndex=0 +SpawnIniOption=TechLevel +DataWriteMode=String +ToolTip=Changes maximum tech level for all players. +$Width=GAME_OPTION_DD_WIDTH +$Height=GAME_OPTION_DD_HEIGHT +$X=EMPTY_SPACE_SIDES + GAME_OPTION_COLUMN_SPACING +$Y=getY(cmbCredits) +Enabled=no +Visible=no + +[lblStartingUnits] +Text=Starting Units: +$X=getX(cmbStartingUnits) +$Y=getY(cmbStartingUnits) - LABEL_SPACING - DEFAULT_LBL_HEIGHT + +[cmbStartingUnits] +OptionName=Starting Units +Items=10,9,8,7,6,5,4,3,2,1,0 +DefaultIndex=10 +SpawnIniOption=UnitCount +DataWriteMode=String +ToolTip=Changes how many infantry units players start with. +$Width=GAME_OPTION_DD_WIDTH +$Height=GAME_OPTION_DD_HEIGHT +$X=getX(cmbTechLevel) +$Y=getY(lblTechLevel) - LOBBY_PANEL_SPACING - GAME_OPTION_DD_HEIGHT + +; Window Border Sides + +[panelBorderTop] +Location=0,-8 +BackgroundTexture=border-top.png +DrawMode=Stretched +Size=0,9 +FillWidth=0 + +[panelBorderBottom] +Location=0,999 +BackgroundTexture=border-bottom.png +DrawMode=Stretched +Size=0,9 +FillWidth=0 +DistanceFromBottomBorder=-8 + +[panelBorderLeft] +Location=-8,0 +BackgroundTexture=border-left.png +DrawMode=Stretched +Size=9,0 +FillHeight=0 + +[panelBorderRight] +Location=999,0 +BackgroundTexture=border-right.png +DrawMode=Stretched +Size=9,0 +FillHeight=0 +DistanceFromRightBorder=-8 + +; Window Border Corners + +[panelBorderCornerTL] +Location=-8,-8 +BackgroundTexture=border-corner-tl.png +Size=9,9 + +[panelBorderCornerTR] +Location=999,-8 +BackgroundTexture=border-corner-tr.png +Size=9,9 +DistanceFromRightBorder=-8 + +[panelBorderCornerBL] +Location=-8,999 +BackgroundTexture=border-corner-bl.png +Size=9,9 +DistanceFromBottomBorder=-8 + +[panelBorderCornerBR] +Location=999,999 +BackgroundTexture=border-corner-br.png +Size=9,9 +DistanceFromRightBorder=-8 +DistanceFromRightBorder=-8 +DistanceFromBottomBorder=-8 \ No newline at end of file diff --git a/ClientFiles/Resources/ThemeDefault/133pxbtn_c.png b/ClientFiles/Resources/ThemeDefault/133pxbtn_c.png index 1c8fdc6..07cc3ba 100644 Binary files a/ClientFiles/Resources/ThemeDefault/133pxbtn_c.png and b/ClientFiles/Resources/ThemeDefault/133pxbtn_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/133pxtab_c.png b/ClientFiles/Resources/ThemeDefault/133pxtab_c.png index 1c8fdc6..07cc3ba 100644 Binary files a/ClientFiles/Resources/ThemeDefault/133pxtab_c.png and b/ClientFiles/Resources/ThemeDefault/133pxtab_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/142pxbtn_c.png b/ClientFiles/Resources/ThemeDefault/142pxbtn_c.png index ce92cc9..25dfb0e 100644 Binary files a/ClientFiles/Resources/ThemeDefault/142pxbtn_c.png and b/ClientFiles/Resources/ThemeDefault/142pxbtn_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/ban.png b/ClientFiles/Resources/ThemeDefault/ban.png index 546f08f..301260f 100644 Binary files a/ClientFiles/Resources/ThemeDefault/ban.png and b/ClientFiles/Resources/ThemeDefault/ban.png differ diff --git a/ClientFiles/Resources/ThemeDefault/border-left.png b/ClientFiles/Resources/ThemeDefault/border-left.png index 6a456d0..773841e 100644 Binary files a/ClientFiles/Resources/ThemeDefault/border-left.png and b/ClientFiles/Resources/ThemeDefault/border-left.png differ diff --git a/ClientFiles/Resources/ThemeDefault/border-top.png b/ClientFiles/Resources/ThemeDefault/border-top.png index 4d0e361..c4b8e2a 100644 Binary files a/ClientFiles/Resources/ThemeDefault/border-top.png and b/ClientFiles/Resources/ThemeDefault/border-top.png differ diff --git a/ClientFiles/Resources/ThemeDefault/kick_c.png b/ClientFiles/Resources/ThemeDefault/kick_c.png index deaca3c..23f7a7e 100644 Binary files a/ClientFiles/Resources/ThemeDefault/kick_c.png and b/ClientFiles/Resources/ThemeDefault/kick_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButton.png b/ClientFiles/Resources/ThemeDefault/optionsButton.png new file mode 100644 index 0000000..a0016d8 Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButton.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButtonActive.png b/ClientFiles/Resources/ThemeDefault/optionsButtonActive.png new file mode 100644 index 0000000..71933cd Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButtonActive.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButtonActive_c.png b/ClientFiles/Resources/ThemeDefault/optionsButtonActive_c.png new file mode 100644 index 0000000..72d5cb8 Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButtonActive_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButtonClose.png b/ClientFiles/Resources/ThemeDefault/optionsButtonClose.png new file mode 100644 index 0000000..a51c9de Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButtonClose.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButtonClose_c.png b/ClientFiles/Resources/ThemeDefault/optionsButtonClose_c.png new file mode 100644 index 0000000..6bfbcab Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButtonClose_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/optionsButton_c.png b/ClientFiles/Resources/ThemeDefault/optionsButton_c.png new file mode 100644 index 0000000..0fa7d5f Binary files /dev/null and b/ClientFiles/Resources/ThemeDefault/optionsButton_c.png differ diff --git a/ClientFiles/Resources/ThemeDefault/questionMark.png b/ClientFiles/Resources/ThemeDefault/questionMark.png index 1dc6c75..2ad6101 100644 Binary files a/ClientFiles/Resources/ThemeDefault/questionMark.png and b/ClientFiles/Resources/ThemeDefault/questionMark.png differ diff --git a/ClientFiles/Resources/clientdx.exe b/ClientFiles/Resources/clientdx.exe index 9a4814e..51f2ea9 100644 Binary files a/ClientFiles/Resources/clientdx.exe and b/ClientFiles/Resources/clientdx.exe differ diff --git a/ClientFiles/Resources/clientogl.exe b/ClientFiles/Resources/clientogl.exe index 075f6ab..312c5ab 100644 Binary files a/ClientFiles/Resources/clientogl.exe and b/ClientFiles/Resources/clientogl.exe differ diff --git a/ClientFiles/Resources/clientxna.exe b/ClientFiles/Resources/clientxna.exe index 5265e19..5c4cbe4 100644 Binary files a/ClientFiles/Resources/clientxna.exe and b/ClientFiles/Resources/clientxna.exe differ diff --git a/ClientFiles/clientupdt.dat b/ClientFiles/clientupdt.dat deleted file mode 100644 index f7fcc5d..0000000 Binary files a/ClientFiles/clientupdt.dat and /dev/null differ diff --git a/Documentation/Updater.md b/Documentation/Updater.md index 8dcfdf6..bf6c085 100644 --- a/Documentation/Updater.md +++ b/Documentation/Updater.md @@ -1,7 +1,4 @@ -# Extended CnCNet Client Updater # - -This document attempts to explain the usage and features of the extended CnCnet Client updater that is included with the client files in this repository. Some of the details may overlap with the regular CnCNet Client updater, however many features presented here are absent in it. - +# Instructions on how to use the updater functionality of the XNA CnCNet client Updater-Related Files ------------------- @@ -15,7 +12,7 @@ Updater-Related Files ### Distributable Files - **Updater Configuration File** (`Resources/UpdaterConfig.ini`): Client [updater configuration](#updater-configuration) file which sets the download mirrors for the updater and available custom component info. Requires [a client with extended updater support](#client-support). If no such file is found, client falls back to using `updateconfig.ini` that is used by the original XNA CnCNet Client which uses a different syntax and does not allow setting custom component info. -- **Second-Stage Updater** (`clientupdt.dat`): A second-stage updater executable that copies the files to their correct places after they've all been downloaded and then launches the client again after it is done. Normally it has a hardcoded list of launcher executable names it looks for, and if it doesn't find any it won't launch the client again. The executable included here will attempt to read the launcher executable name from `LauncherExe` key in `Resources/ClientDefinitions.ini` if none from the hardcoded list are present. +- **Second-Stage Updater** (`Resources/SecondStageUpdater.exe`): A second-stage updater executable that copies the files to their correct places after they've all been downloaded and then launches the client again after it is done. Client launcher executable is read from `LauncherExe` key in `Resources/ClientDefinitions.ini`, if it is not present or cannot be read for any other reason the client will not automatically restart after the second-stage updater has finished. Basic Usage ----------- @@ -39,16 +36,21 @@ Features ------- ### Version File Writer -The example `VersionConfig.ini` included with the version writer contains comments explaining most of the functionality and features. +Version file writer is a program that writes the `version` file used by the client and its updater. It reads a file called `VersionConfig.ini` from its working directory for settings and list of files to include. + +The example `VersionConfig.ini` included with the version file writer in client repository contains comments explaining most of the functionality and features. + +`VersionWriter.exe` accepts command-line arguments that start with `/` or `-` as switches. Following switches are accepted: +- `-LOG`: Generates log file in the program directory. +- `-QUIET`: Does not generate console output. +- `-SUPRESSINPUTS`: Does not ask for user input to confirm actions. -`VersionWriter.exe` accepts a single command-line argument that can be used to set its working directory - this allows running VersionWriter from outside the mod directory itself. + Additionally a single non-switch argument can be provided that can be used to set the program's working directory - this allows running VersionWriter from outside the mod directory itself. #### Options These are set under `[Options]` in `VersionConfig.ini`. -- `EnableExtendedUpdaterFeatures`: If set, enables the extended updater features such as compressed archives, updater version and manual download URL. +- `EnableExtendedUpdaterFeatures`: If set, enables additional updater features such as compressed archives, updater version and manual download URL. - `RecursiveDirectorySearch`: If set, will go through every subdirectory recursively for directories given in `[Include]`. -; If set, will always create two version files - one with everything included (version_base) and the proper, actual version file with only changed files (version). -; version_base should be kept around as it is used to compare which files have been changed next time VersionWriter is ran. - `IncludeOnlyChangedFiles`: If set, version file writer will always create two version files - one with everything included (`version_base`) and the proper, actual version file with only changed files (`version`). Note that `version_base` should be kept around as it is used to compare which files have been changed next time version file writer is ran. - `CopyArchivedOriginalFiles`: If set, original versions of archived files will also be copied to copied files directory. @@ -84,13 +86,3 @@ Download path / URL supports absolute URLs, allowing custom components to be dow Download path archive file extension disable flag is a boolean value (yes/no, true/false), is optional and defaults to false. Omitting the custom components list will default to the hardcoded list for currently set mod / game if available. Custom components and the Components tab in client options will be unavailable if no custom component info is found. - - -Client Support --------------- - -It's recommended to use one of the following client forks which include the extended updater features: -- Client included in this repository - source code available [here](https://github.com/Starkku/xna-cncnet-client/tree/modified-updater) -- [Kerbiter's modified client](https://github.com/Metadorius/xna-cncnet-client) - -The extended updater library (`DTAUpdater.dll`) should theoretically be backwards compatible with all modern XNA CnCNet client variants, though not all of the extended updater features will be available. Not using it with a corresponding client version is generally speaking advised against and not really supported in any real capacity.