diff --git a/OpenRA.Mods.Mobius/FileSystem/RemasterFileSystemLoader.cs b/OpenRA.Mods.Mobius/FileSystem/RemasterFileSystemLoader.cs index 02f426c..1272f42 100644 --- a/OpenRA.Mods.Mobius/FileSystem/RemasterFileSystemLoader.cs +++ b/OpenRA.Mods.Mobius/FileSystem/RemasterFileSystemLoader.cs @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using OpenRA.Mods.Common; using OpenRA.Mods.Common.FileSystem; using OpenRA.Mods.Common.Installer; @@ -21,7 +22,7 @@ public class RemasterFileSystemLoader : IFileSystemLoader, IFileSystemExternalCo { [FieldLoader.Require] public readonly string RemasterDataMount = null; - public readonly string InstallPromptMod = "cnccontent"; + public readonly string InstallPromptMod = "remaster-content"; public readonly Dictionary Packages = null; public readonly Dictionary RemasterPackages = null; @@ -33,7 +34,7 @@ static object LoadSources(MiniYaml yaml) var ret = new Dictionary(); var sourcesNode = yaml.Nodes.Single(n => n.Key == "Sources"); foreach (var s in sourcesNode.Value.Nodes) - ret.Add(s.Key, new ModContent.ModSource(s.Value, null)); + ret.Add(s.Key, new ModContent.ModSource(s.Value)); return ret; } diff --git a/OpenRA.Mods.Mobius/RemasterContentPromptLogic.cs b/OpenRA.Mods.Mobius/RemasterContentPromptLogic.cs index fc40837..5f990fd 100644 --- a/OpenRA.Mods.Mobius/RemasterContentPromptLogic.cs +++ b/OpenRA.Mods.Mobius/RemasterContentPromptLogic.cs @@ -18,7 +18,6 @@ public class RemasterContentPromptLogic : ChromeLogic [ObjectCreator.UseCtor] public RemasterContentPromptLogic(Widget widget, ModData modData) { - widget.Get("VERSION_LABEL").Text = modData.Manifest.Metadata.Version; widget.Get("QUIT_BUTTON").OnClick = Game.Exit; } } diff --git a/OpenRA.Mods.Mobius/RemasterInstallPromptLoadScreen.cs b/OpenRA.Mods.Mobius/RemasterInstallPromptLoadScreen.cs deleted file mode 100644 index f473de0..0000000 --- a/OpenRA.Mods.Mobius/RemasterInstallPromptLoadScreen.cs +++ /dev/null @@ -1,24 +0,0 @@ -#region Copyright & License Information -/* - * Copyright (c) The OpenRA Developers and Contributors - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. For more - * information, see COPYING. - */ -#endregion - -using OpenRA.Mods.Cnc; -using OpenRA.Widgets; - -namespace OpenRA.Mods.Mobius -{ - public sealed class RemasterInstallPromptLoadScreen : CncLoadScreen - { - public override void StartGame(Arguments args) - { - Ui.OpenWindow("PROMPT_CONTAINER", new WidgetArgs()); - } - } -} diff --git a/mod.config b/mod.config index 8d00ef7..c37c0a5 100644 --- a/mod.config +++ b/mod.config @@ -9,7 +9,7 @@ MOD_ID="cnc" # The OpenRA engine version to use for this project. -ENGINE_VERSION="78e02a7f9e" +ENGINE_VERSION="85fd77f6be" ############################################################################## # Packaging diff --git a/mods/cnc/chrome/mainmenu-prerelease-notification.yaml b/mods/cnc/chrome/mainmenu-prerelease-notification.yaml deleted file mode 100644 index be6b401..0000000 --- a/mods/cnc/chrome/mainmenu-prerelease-notification.yaml +++ /dev/null @@ -1,96 +0,0 @@ -Container@MAINMENU_PRERELEASE_NOTIFICATION: - Width: WINDOW_RIGHT - Height: WINDOW_BOTTOM - Logic: PreReleaseWarningPrompt - Children: - LogicKeyListener@GLOBAL_KEYHANDLER: - Logic: MusicHotkeyLogic, ScreenshotHotkeyLogic, MuteHotkeyLogic - StopMusicKey: StopMusic - PauseMusicKey: PauseMusic - PrevMusicKey: PrevMusic - NextMusicKey: NextMusic - TakeScreenshotKey: TakeScreenshot - MuteAudioKey: ToggleMute - Container@SHELLMAP_DECORATIONS: - Children: - Image@NOD: - X: WINDOW_RIGHT / 2 - 384 - Y: (WINDOW_BOTTOM - 256) / 2 - ImageCollection: logos - ImageName: nod-load - Image@GDI: - X: WINDOW_RIGHT / 2 + 128 - Y: (WINDOW_BOTTOM - 256) / 2 - ImageCollection: logos - ImageName: gdi-load - Image@EVA: - X: WINDOW_RIGHT - 128 - 43 - Y: 43 - Width: 128 - Height: 64 - ImageCollection: logos - ImageName: eva - Label@VERSION_LABEL: - X: WINDOW_RIGHT - 128 - 43 - Y: 116 - Width: 128 - Align: Center - Shadow: true - Background@BORDER: - Width: WINDOW_RIGHT - Height: WINDOW_BOTTOM - Background: shellmapborder - Container@dialog: - X: (WINDOW_RIGHT - WIDTH) / 2 - Y: (WINDOW_BOTTOM - HEIGHT) / 2 - Width: 550 - Height: 120 - Children: - Label@TITLE: - Width: PARENT_RIGHT - Y: 0 - 25 - Font: BigBold - Contrast: true - Align: Center - Text: prerelease-notification-title - Background@bg: - Width: PARENT_RIGHT - Height: PARENT_BOTTOM - Background: panel-black - Children: - Label@PROMPT_TEXT_A: - X: 15 - Y: 15 - Width: PARENT_RIGHT - 30 - Height: 16 - Align: Center - Text: prerelease-notification-desca - Label@PROMPT_TEXT_B: - X: 15 - Y: 15 + 18 - Width: PARENT_RIGHT - 30 - Height: 16 - Align: Center - Text: prerelease-notification-descb - Label@PROMPT_TEXT_C: - X: 15 - Y: 15 + 3 * 18 - Width: PARENT_RIGHT - 30 - Height: 16 - Align: Center - Text: prerelease-notification-descc - Label@PROMPT_TEXT_D: - X: 15 - Y: 15 + 4 * 18 - Width: PARENT_RIGHT - 30 - Height: 16 - Align: Center - Text: prerelease-notification-descd - Button@CONTINUE_BUTTON: - X: PARENT_RIGHT - WIDTH - Y: PARENT_BOTTOM - 1 - Width: 140 - Height: 35 - Text: prerelease-notification-confirm - Font: Bold - Key: return diff --git a/mods/cnc/languages/campaign/en.ftl b/mods/cnc/fluent/campaign.ftl similarity index 82% rename from mods/cnc/languages/campaign/en.ftl rename to mods/cnc/fluent/campaign.ftl index 5735ca3..ef59a23 100644 --- a/mods/cnc/languages/campaign/en.ftl +++ b/mods/cnc/fluent/campaign.ftl @@ -1,13 +1,17 @@ ## world dropdown-difficulty = .label = Difficulty - .description = The difficulty of the mission + .description = The difficulty of the mission. options-difficulty = .easy = Easy .normal = Normal .hard = Hard +## player +bot-campaign-ai = + .name = Campaign Player AI + ## campaign-maprules.yaml actor-moneycrate-name = Money Crate diff --git a/mods/cnc/languages/lua/en.ftl b/mods/cnc/fluent/lua.ftl similarity index 76% rename from mods/cnc/languages/lua/en.ftl rename to mods/cnc/fluent/lua.ftl index 4d02df4..c997475 100644 --- a/mods/cnc/languages/lua/en.ftl +++ b/mods/cnc/fluent/lua.ftl @@ -1,12 +1,12 @@ ## campaign -objective-failed = Objective failed -objective-completed = Objective completed +objective-failed = Objective Failed +objective-completed = Objective Completed primary = Primary secondary = Secondary -new-primary-objective = New primary objective -new-secondary-objective = New secondary objective +new-primary-objective = New Primary Objective +new-secondary-objective = New Secondary Objective # cnc64gdi01 destroy-obelisk-sams = Destroy the SAM sites protecting the Obelisk. @@ -59,7 +59,7 @@ destroy-nod-force = Destroy the Nod strike force. ## gdi08b protect-mobius = Protect Dr. Mobius. protect-hospital = Protect the Hospital. -keep-civilians-alive = Keep at least { $civilians } out of 14 Civilians alive. +keep-civilians-alive = Keep at least { $civilians } out of 14 civilians alive. destroy-nod-bases = Destroy the Nod bases. ## gdi09 @@ -105,8 +105,8 @@ destroy-gdi-supporter-houses = Destroy the houses of the GDI supporters in the village. ## nod06c -infiltrate-barracks-factory-conyard = Infiltrate the barracks, weapon factory and - the construction yard. +infiltrate-barracks-factory-conyard = Infiltrate the barracks, weapons factory and + construction yard. ## nod07a find-nod-base = Find the Nod base. @@ -116,9 +116,9 @@ eliminate-gdi-forces = Eliminate all GDI forces in the area. ## nod07c capture-gdi-helipad = Capture the GDI helipad. -dont-capture-or-destroy = Don't capture or destroy any other +do-not-capture-or-destroy = Do not capture or destroy any other GDI main building. -orca-wreak-havoc = Use the GDI orca to wreak havoc at the village. +orca-wreak-havoc = Use the GDI Orca to wreak havoc in the village. distract-guards = Distract the guards by attacking the main entrance with your vehicles. @@ -134,29 +134,24 @@ secure-second-landing-zone = Secure the second landing zone. ## nod10a kill-gdi-scientist = Kill the GDI scientist. -destroy-tech-center = Destroy the GDI R&D center. +destroy-tech-center = Destroy the GDI Research Base. ## nod10b destroy-capture-warfactory = Destroy or capture the Weapons Factory. -destroy-mammoth-tanks = Destroy the Mammoth tanks in the R&D base. +destroy-mammoth-tanks = Destroy the Mammoth tanks in the Research Base. keep-commando-alive = Keep your Commando alive. ## eviction-notice -take-civilians-money-crates = Find all the civilians' money. - They won't need it anymore. -quickly-destroy-ion-cannon = Disable GDI Ion Cannon before - it fires two times. +take-civilians-money-crates = Find all the civilians' money; they won't be needing it anymore. +quickly-destroy-ion-cannon = Disable the GDI Ion Cannon before it fires twice. nod-soldier = Nod Soldier -civilians-runs = Hey, those civilians... where are they going? -destroy-ion-cannon-advise = The GDI are preparing their ion cannon. Don't let them get used to it. -village-destruction-warning = Be careful, commander. The GDI won't stand still while we burn the entire village. +civilians-running = Hey, those civilians... where are they going? +destroy-ion-cannon-advice = The GDI are preparing their Ion Cannon. Don't let them get comfortable using it. +village-destruction-warning = Be careful, commander. The GDI won't stay idle while we burn the entire village. ## twist-of-fate -clear-path = Repel the ambush and clear the way - for our MCV. -recover-old-base = Capture the Construction Yard in our recon - post to regain control. -air-strikes-intel-report = Nod airstrikes are being directed by a Communications Center, located northwest. We may gain useful information from its capture. -capture-nod-communications-center = Capture the Nod Communications Center to - the northwest. +clear-path = Repel the ambush and clear the way for our MCV. +recover-old-base = Capture the Construction Yard at our recon post to regain control. +air-strikes-intel-report = Nod airstrikes are being directed by a Communications Center to the northwest. We may gain useful information from its capture. +capture-nod-communications-center = Capture the Nod Communications Center to the northwest. communications-center-captured-sams-located = Our engineers located Nod SAM sites. They also disarmed an unusual trap on the Construction Yard to the south. diff --git a/mods/cnc/languages/overrides/en.ftl b/mods/cnc/languages/overrides/en.ftl deleted file mode 100644 index 5a05b0e..0000000 --- a/mods/cnc/languages/overrides/en.ftl +++ /dev/null @@ -1,6 +0,0 @@ -prerelease-notification-title = Tiberian Dawn: Remastered preview -prerelease-notification-desca = This pre-release build is made available as a proof of concept demonstrating -prerelease-notification-descb = the capabilities of OpenRA using the C&C Remastered Collection assets. -prerelease-notification-descc = Performance, memory usage, and loading times have not been optimized, and do -prerelease-notification-descd = not reflect the expected final requirements. A dedicated GPU is recommended. -prerelease-notification-confirm = I Understand \ No newline at end of file diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml index a7c3dfa..8750831 100644 --- a/mods/cnc/mod.yaml +++ b/mods/cnc/mod.yaml @@ -3,7 +3,7 @@ Metadata: Version: {DEV_VERSION} Website: https://www.openra.net WebIcon32: https://www.openra.net/images/icons/cnc_32x32.png - WindowTitle: OpenRA - Tiberian Dawn + WindowTitle: OpenRA - Tiberian Dawn HD PackageFormats: Mix, MegV3, ZipFile @@ -118,7 +118,6 @@ Assemblies: OpenRA.Mods.Common.dll, OpenRA.Mods.Cnc.dll, OpenRA.Mods.Mobius.dll ChromeLayout: base|chrome/mainmenu.yaml - cnc|chrome/mainmenu-prerelease-notification.yaml base|chrome/mainmenu-prompts.yaml base|chrome/playerprofile.yaml base|chrome/encyclopedia.yaml @@ -168,14 +167,16 @@ ChromeLayout: base|chrome/editor.yaml common|chrome/text-notifications.yaml -Translations: - common|languages/en.ftl - common|languages/rules/en.ftl - base|languages/chrome/en.ftl - base|languages/rules/en.ftl - cnc|languages/overrides/en.ftl +FluentMessages: + common|fluent/common.ftl + common|fluent/hotkeys.ftl + common|fluent/rules.ftl + base|fluent/cnc.ftl + base|fluent/chrome.ftl + base|fluent/hotkeys.ftl + base|fluent/rules.ftl -AllowUnusedTranslationsInExternalPackages: false +AllowUnusedFluentMessagesInExternalPackages: false Voices: cnc|audio/voices.yaml @@ -190,7 +191,6 @@ Hotkeys: common|hotkeys/game.yaml common|hotkeys/observer.yaml common|hotkeys/production-common.yaml - common|hotkeys/production-peractor.yaml common|hotkeys/supportpowers.yaml common|hotkeys/viewport.yaml common|hotkeys/chat.yaml @@ -202,7 +202,6 @@ LoadScreen: CncLoadScreen Image: base|uibits/chrome.png Image2x: base|uibits/chrome-2x.png Image3x: base|uibits/chrome-3x.png - Text: Loading ServerTraits: LobbyCommands @@ -268,7 +267,7 @@ SoundFormats: Aud, Wav SpriteFormats: Tga, ShpTD, TmpTD, ShpTS, TmpRA, ShpRemastered, Dds, PngSheet -VideoFormats: Vqa +VideoFormats: Vqa, Wsa TerrainFormat: RemasterTerrain diff --git a/mods/cnc/rules/overrides.yaml b/mods/cnc/rules/overrides.yaml index ba5b262..9c01e80 100644 --- a/mods/cnc/rules/overrides.yaml +++ b/mods/cnc/rules/overrides.yaml @@ -7,10 +7,6 @@ FogVariants: fog-typea, fog-typeb, fog-typec, fog-typed OverrideFullFog: fog-full -World: - LoadWidgetAtGameStart: - ShellmapRoot: MAINMENU_PRERELEASE_NOTIFICATION - V19: RenderSprites: PlayerPalette: derrick diff --git a/mods/cnccontent/prompt.yaml b/mods/cnccontent/prompt.yaml deleted file mode 100644 index cab8519..0000000 --- a/mods/cnccontent/prompt.yaml +++ /dev/null @@ -1,73 +0,0 @@ -Container@PROMPT_CONTAINER: - Width: WINDOW_RIGHT - Height: WINDOW_BOTTOM - Logic: RemasterContentPromptLogic - Children: - Container@SHELLMAP_DECORATIONS: - Children: - Image@NOD: - X: WINDOW_RIGHT / 2 - 384 - Y: (WINDOW_BOTTOM - 256) / 2 - ImageCollection: logos - ImageName: nod-load - Image@GDI: - X: WINDOW_RIGHT / 2 + 128 - Y: (WINDOW_BOTTOM - 256) / 2 - ImageCollection: logos - ImageName: gdi-load - Image@EVA: - X: WINDOW_RIGHT - 128 - 43 - Y: 43 - Width: 128 - Height: 64 - ImageCollection: logos - ImageName: eva - Label@VERSION_LABEL: - X: WINDOW_RIGHT - 128 - 43 - Y: 116 - Width: 128 - Align: Center - Shadow: true - Background@BORDER: - Width: WINDOW_RIGHT - Height: WINDOW_BOTTOM - Background: shellmapborder - Container@PROMPT_PANEL: - X: (WINDOW_RIGHT - WIDTH) / 2 - Y: (WINDOW_BOTTOM - 90) / 2 - Width: 600 - Height: 105 - Children: - Label@TITLE: - Width: PARENT_RIGHT - Y: 0 - 22 - Font: BigBold - Contrast: true - Align: Center - Text: Install Content - Background@bg: - Width: PARENT_RIGHT - Height: 70 - Background: panel-black - Children: - Label@DESC_A: - Y: (PARENT_BOTTOM - HEIGHT) / 2 - 10 - Width: PARENT_RIGHT - Height: 25 - Text: Tiberian Dawn requires artwork and audio from the C&C Remastered Collection. - Font: Bold - Align: Center - Label@DESC_B: - Y: (PARENT_BOTTOM - HEIGHT) / 2 + 10 - Width: PARENT_RIGHT - Height: 25 - Text: Please purchase and install the collection through Steam or Origin and try again. - Font: Bold - Align: Center - Button@QUIT_BUTTON: - X: PARENT_RIGHT - 140 - Y: 69 - Width: 140 - Height: 35 - Text: Quit - Key: escape diff --git a/mods/cnccontent/mod.yaml b/mods/remaster-content/mod.yaml similarity index 63% rename from mods/cnccontent/mod.yaml rename to mods/remaster-content/mod.yaml index 45db0b8..1579a2b 100644 --- a/mods/cnccontent/mod.yaml +++ b/mods/remaster-content/mod.yaml @@ -6,20 +6,19 @@ Metadata: FileSystem: DefaultFileSystem Packages: ^EngineDir - $cnccontent: cnccontent - ^EngineDir|mods/cnc: cnc - ^EngineDir|mods/modcontent: modcontent + ^EngineDir|mods/common-content: content ^EngineDir|mods/common: common - cnc|uibits + $remaster-content: cnccontent + Rules: - modcontent|rules.yaml + content|rules.yaml Cursors: - modcontent|cursors.yaml + content|cursors.yaml Chrome: - cnc|chrome.yaml + content|chrome.yaml Assemblies: OpenRA.Mods.Common.dll, OpenRA.Mods.Cnc.dll, OpenRA.Mods.Mobius.dll @@ -27,17 +26,22 @@ ChromeLayout: cnccontent|prompt.yaml Notifications: - modcontent|notifications.yaml + content|notifications.yaml -LoadScreen: RemasterInstallPromptLoadScreen - Image: cnc|uibits/chrome.png - Image2x: cnc|uibits/chrome-2x.png - Image3x: cnc|uibits/chrome-3x.png - Text: Loading +LoadScreen: ModContentLoadScreen + Image: ^EngineDir|mods/common-content/chrome.png + Image2x: ^EngineDir|mods/common-content/chrome-2x.png + Image3x: ^EngineDir|mods/common-content/chrome-3x.png ChromeMetrics: common|metrics.yaml - modcontent|metrics.yaml + content|metrics.yaml + +FluentMessages: + common|fluent/common.ftl + content|fluent/content.ftl + content|fluent/chrome.ftl + cnccontent|prompt.ftl Fonts: Tiny: diff --git a/mods/remaster-content/prompt.ftl b/mods/remaster-content/prompt.ftl new file mode 100644 index 0000000..bda3f9a --- /dev/null +++ b/mods/remaster-content/prompt.ftl @@ -0,0 +1,4 @@ +label-content-prompt-panel-title = Install Content +modcontent-installprompt = + Tiberian Dawn requires artwork and audio from the C&C Remastered Collection. + Please purchase and install the collection through Steam or Origin and try again. \ No newline at end of file diff --git a/mods/remaster-content/prompt.yaml b/mods/remaster-content/prompt.yaml new file mode 100644 index 0000000..373f2eb --- /dev/null +++ b/mods/remaster-content/prompt.yaml @@ -0,0 +1,44 @@ +Background@MODCONTENT_BACKGROUND: + Logic: RemasterContentPromptLogic + Background: background + Width: WINDOW_WIDTH + Height: WINDOW_HEIGHT + Children: + Background@CONTENT_PROMPT_PANEL: + X: (WINDOW_WIDTH - WIDTH) / 2 + Y: (WINDOW_HEIGHT - HEIGHT) / 2 + Width: 600 + Height: 160 + Background: panel-bg + Children: + Label@TITLE: + X: 0 + Y: 12 + Width: PARENT_WIDTH + Height: 25 + Text: label-content-prompt-panel-title + Align: Center + Font: MediumBold + Background@RULE: + X: 30 + Y: 50 + Width: 540 + Height: 150 + Background: panel-rule + Label@HEADER_LABEL: + X: 30 + Y: 65 + Width: PARENT_WIDTH - 60 + Height: 16 + Text: modcontent-installprompt + Align: Center + WordWrap: true + Button@QUIT_BUTTON: + X: PARENT_WIDTH - WIDTH - 30 + Y: PARENT_HEIGHT - 52 + Background: button-highlighted + Width: 110 + Height: 32 + Text: button-quit + Font: Bold + Key: escape