gitextract_dgog0ci0/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.yml │ │ ├── config.yml │ │ └── feature-request.yml │ ├── copilot-coding-agent-setup.md │ ├── copilot-instructions.md │ └── workflows/ │ ├── build.yml │ ├── copilot-setup-steps.yml │ ├── pr-build-comment.yml │ └── release-build.yml ├── .gitignore ├── .gitmodules ├── AdditionalFiles/ │ ├── UpdateServerScripts/ │ │ ├── preupdateexec │ │ └── updateexec │ └── VersionFileWriter/ │ └── VersionConfig.ini ├── ClientCore/ │ ├── CCIniFile.cs │ ├── ClientConfiguration.cs │ ├── ClientCore.csproj │ ├── Enums/ │ │ ├── AllowPrivateMessagesFromEnum.cs │ │ ├── ClientType.cs │ │ ├── ClientTypeHelper.cs │ │ └── SortDirection.cs │ ├── Extensions/ │ │ ├── ArrayExtensions.cs │ │ ├── EnumExtensions.cs │ │ ├── EnumerableExtensions.cs │ │ ├── FileExtensions.cs │ │ ├── IniFileExtensions.cs │ │ └── StringExtensions.cs │ ├── I18N/ │ │ ├── Translation.cs │ │ └── TranslationGameFile.cs │ ├── INIProcessing/ │ │ ├── IniPreprocessInfoStore.cs │ │ ├── IniPreprocessor.cs │ │ └── PreprocessorBackgroundTask.cs │ ├── LoadingScreenController.cs │ ├── OSVersion.cs │ ├── PlatformShim/ │ │ └── EncodingExt.cs │ ├── ProcessLauncher.cs │ ├── ProfanityFilter.cs │ ├── ProgramConstants.cs │ ├── SavedGameManager.cs │ ├── Settings/ │ │ ├── BoolSetting.cs │ │ ├── DoubleSetting.cs │ │ ├── IIniSetting.cs │ │ ├── INISetting.cs │ │ ├── IntRangeSetting.cs │ │ ├── IntSetting.cs │ │ ├── StringListSetting.cs │ │ ├── StringSetting.cs │ │ └── UserINISettings.cs │ └── Statistics/ │ ├── DataWriter.cs │ ├── GameParsers/ │ │ └── LogFileStatisticsParser.cs │ ├── GenericMatchParser.cs │ ├── GenericStatisticsManager.cs │ ├── MatchStatistics.cs │ ├── PlayerStatistics.cs │ └── StatisticsManager.cs ├── ClientGUI/ │ ├── ClientGUI.csproj │ ├── ClientGUICreator.cs │ ├── DarkeningPanel.cs │ ├── GameProcessLogic.cs │ ├── HotkeyConfigurationWindow.cs │ ├── ICompositeControl.cs │ ├── IME/ │ │ ├── DummyIMEHandler.cs │ │ ├── IMEHandler.cs │ │ ├── SdlIMEHandler.cs │ │ └── WinFormsIMEHandler.cs │ ├── INIConfigException.cs │ ├── INItializableWindow.cs │ ├── IToolTipContainer.cs │ ├── Parser.cs │ ├── ScreenResolution.cs │ ├── Settings/ │ │ ├── FileSettingCheckBox.cs │ │ ├── FileSettingDropDown.cs │ │ ├── FileSourceDestinationInfo.cs │ │ ├── IFileSetting.cs │ │ ├── IUserSetting.cs │ │ ├── SettingCheckBox.cs │ │ ├── SettingCheckBoxBase.cs │ │ ├── SettingDropDown.cs │ │ └── SettingDropDownBase.cs │ ├── ToolTip.cs │ ├── TranslationGUIExtensions.cs │ ├── TranslationINIParser.cs │ ├── UIDesignConstants.cs │ ├── XNAChatTextBox.cs │ ├── XNAClientButton.cs │ ├── XNAClientCheckBox.cs │ ├── XNAClientColorDropDown.cs │ ├── XNAClientDropDown.cs │ ├── XNAClientLinkLabel.cs │ ├── XNAClientPreferredItemDropDown.cs │ ├── XNAClientStateButton.cs │ ├── XNAClientTabControl.cs │ ├── XNAClientToggleButton.cs │ ├── XNAExtraPanel.cs │ ├── XNALinkButton.cs │ ├── XNAMessageBox.cs │ ├── XNAOptionsPanel.cs │ ├── XNAPlayerSlotIndicator.cs │ ├── XNAWindow.cs │ └── XNAWindowBase.cs ├── ClientUpdater/ │ ├── ClientUpdater.csproj │ ├── Compression/ │ │ ├── Common/ │ │ │ ├── CRC.cs │ │ │ ├── CommandLineParser.cs │ │ │ ├── InBuffer.cs │ │ │ └── OutBuffer.cs │ │ ├── CompressionHelper.cs │ │ ├── ICoder.cs │ │ ├── LZ/ │ │ │ ├── IMatchFinder.cs │ │ │ ├── LzBinTree.cs │ │ │ ├── LzInWindow.cs │ │ │ └── LzOutWindow.cs │ │ ├── LZMA/ │ │ │ ├── LzmaBase.cs │ │ │ ├── LzmaDecoder.cs │ │ │ └── LzmaEncoder.cs │ │ └── RangeCoder/ │ │ ├── RangeCoder.cs │ │ ├── RangeCoderBit.cs │ │ └── RangeCoderBitTree.cs │ ├── CustomComponent.cs │ ├── UpdateMirror.cs │ ├── Updater.cs │ ├── UpdaterFileInfo.cs │ └── VersionState.cs ├── CommonAssemblies.txt ├── CommonAssembliesNetFx.txt ├── Contributing.md ├── DXClient.slnx ├── DXMainClient/ │ ├── AdminRestarter.cs │ ├── DXGUI/ │ │ ├── Campaign/ │ │ │ ├── CampaignCheckBox.cs │ │ │ ├── CampaignDropDown.cs │ │ │ ├── CampaignSelector.cs │ │ │ ├── CampaignTagSelector.cs │ │ │ └── CheaterWindow.cs │ │ ├── GameClass.cs │ │ ├── Generic/ │ │ │ ├── DropDownDataWriteMode.cs │ │ │ ├── ExtrasWindow.cs │ │ │ ├── GameInProgressWindow.cs │ │ │ ├── GameLoadingWindow.cs │ │ │ ├── GameSessionCheckBox.cs │ │ │ ├── GameSessionDropDown.cs │ │ │ ├── LoadingScreen.cs │ │ │ ├── MainMenu.cs │ │ │ ├── ManualUpdateQueryWindow.cs │ │ │ ├── OptionPanels/ │ │ │ │ ├── AudioOptionsPanel.cs │ │ │ │ ├── CnCNetOptionsPanel.cs │ │ │ │ ├── ComponentsPanel.cs │ │ │ │ ├── DisplayOptionsPanel.cs │ │ │ │ ├── GameOptionsPanel.cs │ │ │ │ └── UpdaterOptionsPanel.cs │ │ │ ├── OptionsWindow.cs │ │ │ ├── PrivacyNotification.cs │ │ │ ├── StatisticsWindow.cs │ │ │ ├── TopBar.cs │ │ │ ├── URLHandler.cs │ │ │ ├── UpdateQueryWindow.cs │ │ │ └── UpdateWindow.cs │ │ ├── IGameSessionSetting.cs │ │ ├── IMessageView.cs │ │ ├── ISwitchable.cs │ │ └── Multiplayer/ │ │ ├── ChatListBox.cs │ │ ├── CnCNet/ │ │ │ ├── ChoiceNotificationBox.cs │ │ │ ├── CnCNetGameLoadingLobby.cs │ │ │ ├── CnCNetLobby.cs │ │ │ ├── CnCNetLoginWindow.cs │ │ │ ├── GameCreationEventArgs.cs │ │ │ ├── GameCreationWindow.cs │ │ │ ├── GlobalContextMenu.cs │ │ │ ├── GlobalContextMenuData.cs │ │ │ ├── LoadOrSaveGameOptionPresetWindow.cs │ │ │ ├── MapSharingConfirmationPanel.cs │ │ │ ├── PasswordRequestWindow.cs │ │ │ ├── PrivateMessageNotificationBox.cs │ │ │ ├── PrivateMessagingPanel.cs │ │ │ ├── PrivateMessagingWindow.cs │ │ │ ├── RecentPlayerTable.cs │ │ │ ├── RecentPlayerTableRightClickEventArgs.cs │ │ │ ├── TunnelListBox.cs │ │ │ └── TunnelSelectionWindow.cs │ │ ├── GameFiltersPanel.cs │ │ ├── GameInformationIconOnlyPanel.cs │ │ ├── GameInformationIconPanel.cs │ │ ├── GameInformationPanel.cs │ │ ├── GameListBox.cs │ │ ├── GameLoadingLobbyBase.cs │ │ ├── GameLobby/ │ │ │ ├── ChatBoxCommand.cs │ │ │ ├── CnCNetGameLobby.cs │ │ │ ├── CommandHandlers/ │ │ │ │ ├── CommandHandlerBase.cs │ │ │ │ ├── IntCommandHandler.cs │ │ │ │ ├── IntNotificationHandler.cs │ │ │ │ ├── NoParamCommandHandler.cs │ │ │ │ ├── NotificationHandler.cs │ │ │ │ └── StringCommandHandler.cs │ │ │ ├── CoopBriefingBox.cs │ │ │ ├── GameHostInactiveChecker.cs │ │ │ ├── GameLaunchButton.cs │ │ │ ├── GameLeftEventArgs.cs │ │ │ ├── GameLobbyBase.cs │ │ │ ├── GameLobbyCheckBox.cs │ │ │ ├── GameLobbyDropDown.cs │ │ │ ├── GameLobbySettingsEventArgs.cs │ │ │ ├── GameLobbySettingsWindow.cs │ │ │ ├── GameModeMapFilter.cs │ │ │ ├── GameType.cs │ │ │ ├── LANGameLobby.cs │ │ │ ├── MapCodeHelper.cs │ │ │ ├── MapPreviewBox.cs │ │ │ ├── MultiplayerGameLobby.cs │ │ │ ├── PlayerLocationIndicator.cs │ │ │ └── SkirmishLobby.cs │ │ ├── LANGameCreationWindow.cs │ │ ├── LANGameLoadingLobby.cs │ │ ├── LANLobby.cs │ │ ├── LANLobbyBroadcastManager.cs │ │ ├── LANLobbyBroadcastMessageReceivedEventArgs.cs │ │ ├── LANMessageDeduplicator.cs │ │ ├── LANPlayerManager.cs │ │ ├── PlayerExtraOptionsPanel.cs │ │ ├── PlayerListBox.cs │ │ ├── TeamStartMappingPanel.cs │ │ └── TeamStartMappingsPanel.cs │ ├── DXMainClient.csproj │ ├── Domain/ │ │ ├── CustomMissionHelper.cs │ │ ├── DirectDrawCompatibilityChecker.cs │ │ ├── DirectDrawWrapper.cs │ │ ├── DirectDrawWrapperManager.cs │ │ ├── DiscordHandler.cs │ │ ├── FinalSunSettings.cs │ │ ├── MainClientConstants.cs │ │ ├── Mission.cs │ │ ├── Multiplayer/ │ │ │ ├── AllianceHolder.cs │ │ │ ├── CacheManagerBase.cs │ │ │ ├── CnCNet/ │ │ │ │ ├── CnCNetGame.cs │ │ │ │ ├── CnCNetPlayerCountTask.cs │ │ │ │ ├── CnCNetTunnel.cs │ │ │ │ ├── CustomCnCNetGame.cs │ │ │ │ ├── DefaultCnCNetGame.cs │ │ │ │ ├── GameCollection.cs │ │ │ │ ├── HostedCnCNetGame.cs │ │ │ │ ├── MapEventArgs.cs │ │ │ │ ├── MapSharer.cs │ │ │ │ ├── NameValidator.cs │ │ │ │ ├── SHA1EventArgs.cs │ │ │ │ ├── TimedHttpClient.cs │ │ │ │ └── TunnelHandler.cs │ │ │ ├── CoopHouseInfo.cs │ │ │ ├── CoopMapInfo.cs │ │ │ ├── CustomMapCache.cs │ │ │ ├── GameMode.cs │ │ │ ├── GameModeMap.cs │ │ │ ├── GameModeMapBase.cs │ │ │ ├── GameModeMapCollection.cs │ │ │ ├── GameOptionPresets.cs │ │ │ ├── GenericHostedGame.cs │ │ │ ├── ICacheManager.cs │ │ │ ├── IGameModeMap.cs │ │ │ ├── IMapPreviewCacheManager.cs │ │ │ ├── IReadOnlyGameModeMapCollection.cs │ │ │ ├── LAN/ │ │ │ │ ├── ClientIntCommandHandler.cs │ │ │ │ ├── ClientNoParamCommandHandler.cs │ │ │ │ ├── ClientStringCommandHandler.cs │ │ │ │ ├── HostedLANGame.cs │ │ │ │ ├── LANClientCommandHandler.cs │ │ │ │ ├── LANColor.cs │ │ │ │ ├── LANLobbyUser.cs │ │ │ │ ├── LANPlayerInfo.cs │ │ │ │ ├── LANServerCommandHandler.cs │ │ │ │ ├── NetworkMessageEventArgs.cs │ │ │ │ ├── ServerNoParamCommandHandler.cs │ │ │ │ └── ServerStringCommandHandler.cs │ │ │ ├── Map.cs │ │ │ ├── MapChangeEventArgs.cs │ │ │ ├── MapFileEventArgs.cs │ │ │ ├── MapFileWatcher.cs │ │ │ ├── MapLoader.cs │ │ │ ├── MapPreviewCacheManager.cs │ │ │ ├── MapPreviewExtractor.cs │ │ │ ├── MultiplayerColor.cs │ │ │ ├── PlayerExtraOptions.cs │ │ │ ├── PlayerHouseInfo.cs │ │ │ ├── PlayerInfo.cs │ │ │ ├── SavedGamePlayer.cs │ │ │ ├── TeamStartMapping.cs │ │ │ └── TeamStartMappingPreset.cs │ │ └── SavedGame.cs │ ├── Online/ │ │ ├── Channel.cs │ │ ├── ChannelUser.cs │ │ ├── ChatMessage.cs │ │ ├── CnCNetGameCheck.cs │ │ ├── CnCNetManager.cs │ │ ├── CnCNetUserData.cs │ │ ├── Connection.cs │ │ ├── EventArguments/ │ │ │ ├── AttemptedServerEventArgs.cs │ │ │ ├── CTCPEventArgs.cs │ │ │ ├── ChannelCTCPEventArgs.cs │ │ │ ├── ChannelEventArgs.cs │ │ │ ├── ChannelModeEventArgs.cs │ │ │ ├── ChannelTopicEventArgs.cs │ │ │ ├── CnCNetPrivateMessageEventArgs.cs │ │ │ ├── ConnectionLostEventArgs.cs │ │ │ ├── FavoriteMapEventArgs.cs │ │ │ ├── GameOptionPresetEventArgs.cs │ │ │ ├── JoinUserEventArgs.cs │ │ │ ├── KickEventArgs.cs │ │ │ ├── MultiplayerNameRightClickedEventArgs.cs │ │ │ ├── PrivateCTCPEventArgs.cs │ │ │ ├── PrivateMessageEventArgs.cs │ │ │ ├── ServerMessageEventArgs.cs │ │ │ ├── UnreadMessageCountEventArgs.cs │ │ │ ├── UserAwayEventArgs.cs │ │ │ ├── UserListEventArgs.cs │ │ │ └── WhoEventArgs.cs │ │ ├── FileHashCalculator.cs │ │ ├── IConnectionManager.cs │ │ ├── IRCColor.cs │ │ ├── IRCUser.cs │ │ ├── IUserCollection.cs │ │ ├── PrivateMessageHandler.cs │ │ ├── PrivateMessageUser.cs │ │ ├── QueuedMessage.cs │ │ ├── QueuedMessageType.cs │ │ ├── RecentPlayer.cs │ │ ├── Server.cs │ │ ├── SortedUserCollection.cs │ │ └── UnsortedUserCollection.cs │ ├── PreStartup.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Resources/ │ │ ├── ClientDefinitions.ini │ │ ├── DTA/ │ │ │ ├── CampaignSelector.ini │ │ │ ├── CheaterScreen.ini │ │ │ ├── CnCNetGameLobby.ini │ │ │ ├── CnCNetLobby.ini │ │ │ ├── Compatibility/ │ │ │ │ ├── Configs/ │ │ │ │ │ ├── aqrit.cfg │ │ │ │ │ ├── cnc-ddraw.ini │ │ │ │ │ ├── ddraw-auto.ini │ │ │ │ │ ├── ddraw-gdi.ini │ │ │ │ │ ├── ddraw-opengl.ini │ │ │ │ │ └── dxwnd.ini │ │ │ │ └── Unix/ │ │ │ │ ├── wine-game.bat │ │ │ │ ├── wine-game.sh │ │ │ │ ├── wine-mapedit.bat │ │ │ │ └── wine-mapedit.sh │ │ │ ├── Default Theme/ │ │ │ │ ├── DTACnCNetClient.ini │ │ │ │ ├── MainMenuTheme.bak │ │ │ │ ├── MainMenuTheme.ogg │ │ │ │ ├── MainMenuTheme.wma │ │ │ │ └── MainMenuTheme.xnb │ │ │ ├── ExtrasWindow.ini │ │ │ ├── FScompatfix.sdb │ │ │ ├── GameCollectionConfig.ini │ │ │ ├── GameLobbyBase.ini │ │ │ ├── GameOptions.ini │ │ │ ├── GenericWindow.ini │ │ │ ├── KeyboardCommands.ini │ │ │ ├── LANGameLobby.ini │ │ │ ├── LANLobby.ini │ │ │ ├── LoadingScreen.ini │ │ │ ├── MainMenu.ini │ │ │ ├── MultiplayerGameLobby.ini │ │ │ ├── OptionsWindow.ini │ │ │ ├── ReShade Files/ │ │ │ │ └── ReShade.ini │ │ │ ├── Renderers.ini │ │ │ ├── SkirmishLobby.ini │ │ │ ├── SpriteFont0.xnb │ │ │ ├── SpriteFont1.xnb │ │ │ ├── SpriteFont2.xnb │ │ │ ├── SpriteFont3.xnb │ │ │ ├── SpriteFont4.xnb │ │ │ ├── StatisticsWindow.ini │ │ │ ├── UpdaterConfig.ini │ │ │ ├── UserDefaults.ini │ │ │ ├── ZLIB.License.txt │ │ │ ├── ZLIB.Ms-PL.txt │ │ │ ├── arrow.cur │ │ │ ├── cnc-ddraw.ini │ │ │ ├── compatfix.sdb │ │ │ ├── cursor.cur │ │ │ ├── ddrawcompat.ini │ │ │ ├── l480s01.pcx │ │ │ ├── l480s02.pcx │ │ │ ├── l480s11.pcx │ │ │ ├── l480s12.pcx │ │ │ ├── l600s01.pcx │ │ │ ├── l600s02.pcx │ │ │ ├── l600s11.pcx │ │ │ ├── l600s12.pcx │ │ │ ├── qres license.txt │ │ │ ├── ts-ddraw-gdi.ini │ │ │ └── ts-ddraw.ini │ │ ├── INI/ │ │ │ ├── Base/ │ │ │ │ └── Instructions.txt │ │ │ ├── Battle.ini │ │ │ ├── Default.ini │ │ │ ├── FSR.ini │ │ │ ├── Game Options/ │ │ │ │ ├── Auto Deploy MCV.ini │ │ │ │ ├── Disable Super Weapons.ini │ │ │ │ ├── Disable Unit Queueing.ini │ │ │ │ ├── Disable Visceroids.ini │ │ │ │ ├── Extreme AI.ini │ │ │ │ ├── Harder AI.ini │ │ │ │ ├── Immune Harvesters.ini │ │ │ │ ├── Infinite Tiberium.ini │ │ │ │ ├── Ingame Allying.ini │ │ │ │ ├── Instant Harvester Unload.ini │ │ │ │ ├── Naval.ini │ │ │ │ ├── No Baddy Crates.ini │ │ │ │ ├── No Crew.ini │ │ │ │ ├── No Silos.ini │ │ │ │ ├── Replace Tiberium With Ore.ini │ │ │ │ ├── Reveal Shroud.ini │ │ │ │ ├── Shroud Regrows.ini │ │ │ │ ├── Starting Units.ini │ │ │ │ ├── Storms.ini │ │ │ │ ├── Turbo Vehicles.ini │ │ │ │ ├── Turtling AI.ini │ │ │ │ ├── Uncrushable Infantry.ini │ │ │ │ └── Veteran Balance Patch.ini │ │ │ ├── MPMaps.ini │ │ │ ├── Map Code/ │ │ │ │ ├── Difficulty Easy.ini │ │ │ │ ├── Difficulty Hard.ini │ │ │ │ ├── Difficulty Medium.ini │ │ │ │ ├── King of the Hill.ini │ │ │ │ ├── Naval Only AI.ini │ │ │ │ ├── Scavenger.ini │ │ │ │ └── Survivor.ini │ │ │ ├── MapSel.ini │ │ │ ├── MapSel01.ini │ │ │ ├── Menu.ini │ │ │ ├── ai.ini │ │ │ ├── aifs.ini │ │ │ ├── art.ini │ │ │ ├── artfs.ini │ │ │ ├── day.ini │ │ │ ├── dusk.ini │ │ │ ├── firestrm.ini │ │ │ ├── ion.ini │ │ │ ├── keyboard.ini │ │ │ ├── morning.ini │ │ │ ├── night.ini │ │ │ ├── rules.ini │ │ │ ├── snow.ini │ │ │ ├── sound.ini │ │ │ ├── sound01.ini │ │ │ ├── temperat.ini │ │ │ ├── theme.ini │ │ │ └── tutorial.ini │ │ ├── Map Editor/ │ │ │ └── test.txt │ │ ├── Maps/ │ │ │ └── Custom/ │ │ │ └── custom maps.txt │ │ └── SUN.ini │ ├── Startup.cs │ ├── app.PerMonitorV2.manifest │ └── app.SystemAware.manifest ├── Directory.Build.props ├── Directory.Build.targets ├── Directory.Packages.props ├── Docs/ │ ├── Build.md │ ├── DiscordRichPresence.md │ ├── HowToUpdate.md │ ├── INISystem.md │ ├── Migration-INI.md │ ├── Migration.md │ ├── NewFeatures.md │ ├── Translation.md │ └── Updater.md ├── GitVersion.yml ├── LICENSE ├── NuGet.config ├── README.md ├── References/ │ ├── .gitkeep │ └── Facepunch.Steamworks.2.4.1.nupkg ├── Scripts/ │ ├── Build.bat │ ├── ClearBinAndObjDirs.bat │ ├── Get-CommonAssemblyList.ps1 │ ├── README.md │ └── build.ps1 ├── SecondStageUpdater/ │ ├── Program.cs │ └── SecondStageUpdater.csproj ├── TranslationNotifierGenerator/ │ ├── StringExtensions.cs │ ├── TranslationNotifierGenerator.cs │ └── TranslationNotifierGenerator.csproj └── global.json