From 5f8b71b966dc05366cc35d0ee17c524a06073ff0 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 13:35:25 +0300 Subject: [PATCH 01/25] Rename TempSurface to LogicSurface in a few places that were missed --- src/extensions/tactical/tacticalext.cpp | 6 +++--- src/extensions/tactical/tacticalext_hooks.cpp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/extensions/tactical/tacticalext.cpp b/src/extensions/tactical/tacticalext.cpp index bf0e5d1d3..01c6b7059 100644 --- a/src/extensions/tactical/tacticalext.cpp +++ b/src/extensions/tactical/tacticalext.cpp @@ -311,7 +311,7 @@ bool TacticalExtension::Debug_Draw_Facings() screen.X += TacticalRect.X; screen.Y += TacticalRect.Y; - TempSurface->Fill_Rect(TacticalRect, Rect(screen.X, screen.Y, 2, 2), DSurface::RGB_To_Pixel(255,0,0)); + LogicSurface->Fill_Rect(TacticalRect, Rect(screen.X, screen.Y, 2, 2), DSurface::RGB_To_Pixel(255,0,0)); TextPrintType style = TPF_CENTER|TPF_FULLSHADOW|TPF_6POINT; WWFontClass *font = Font_Ptr(style); @@ -324,10 +324,10 @@ bool TacticalExtension::Debug_Draw_Facings() std::snprintf(buffer1, sizeof(buffer1), "%d", unit->PrimaryFacing.Current().Get_Dir()); std::snprintf(buffer2, sizeof(buffer2), "%d", unit->PrimaryFacing.Current().Get_Raw()); - Simple_Text_Print(buffer1, TempSurface, &TacticalRect, &screen, ColorScheme::As_Pointer("White"), style); + Simple_Text_Print(buffer1, LogicSurface, &TacticalRect, &screen, ColorScheme::As_Pointer("White"), style); screen.Y += 10; - Simple_Text_Print(buffer2, TempSurface, &TacticalRect, &screen, ColorScheme::As_Pointer("White"), style); + Simple_Text_Print(buffer2, LogicSurface, &TacticalRect, &screen, ColorScheme::As_Pointer("White"), style); return true; } diff --git a/src/extensions/tactical/tacticalext_hooks.cpp b/src/extensions/tactical/tacticalext_hooks.cpp index e10589d7f..b42929e96 100644 --- a/src/extensions/tactical/tacticalext_hooks.cpp +++ b/src/extensions/tactical/tacticalext_hooks.cpp @@ -98,7 +98,7 @@ DECLARE_PATCH(_Tactical_Draw_Rally_Points_NormaliseLineAnimation_Patch) /** * Draw the line line with the desired pattern. */ - TempSurface->entry_48(*start_pos, *end_pos, color, _pattern, offset, blit); + LogicSurface->entry_48(*start_pos, *end_pos, color, _pattern, offset, blit); #endif /** @@ -169,7 +169,7 @@ DECLARE_PATCH(_Tactical_Draw_Waypoint_Paths_NormaliseLineAnimation_Patch) /** * Draw the line line with the desired pattern. */ - TempSurface->entry_48(*start_pos, *end_pos, color, _pattern, offset, blit); + LogicSurface->entry_48(*start_pos, *end_pos, color, _pattern, offset, blit); #endif /** From 847e9aebba35fac9599832b5b4d650694b309eaa Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 21:15:29 +0300 Subject: [PATCH 02/25] Start filling in the docs --- docs/Bugfixes.md | 7 +++++ docs/Fixed-or-Improved-Logics.md | 37 ----------------------- docs/New-Features-and-Enhancements.md | 43 +++++++++++++++++++++++++++ docs/New-or-Enhanced-Logics.md | 23 -------------- docs/index.md | 4 +-- 5 files changed, 52 insertions(+), 62 deletions(-) create mode 100644 docs/Bugfixes.md delete mode 100644 docs/Fixed-or-Improved-Logics.md create mode 100644 docs/New-Features-and-Enhancements.md delete mode 100644 docs/New-or-Enhanced-Logics.md diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md new file mode 100644 index 000000000..aecc05b5b --- /dev/null +++ b/docs/Bugfixes.md @@ -0,0 +1,7 @@ +# Fixed / Improved Logics + +This page lists all vanilla bugs fixed by Vinifera. + +## Bugfixes and miscellaneous + + diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md deleted file mode 100644 index 1d1f97587..000000000 --- a/docs/Fixed-or-Improved-Logics.md +++ /dev/null @@ -1,37 +0,0 @@ -# Fixed / Improved Logics - -This page describes all ingame logics that are fixed or improved in Vinifera without adding anything significant. - -## Bugfixes and miscellaneous - -## Aircraft - -## Animations - -## Buildings - -## Particle systems - -## Particles - -## Projectiles - -## Technos - -## Terrains - -## Tiberiums (ores) - -## Vehicles - -## Veinholes & Weeds - -## VoxelAnims - -## Warheads - -## Weapons - -## Crate improvements - -## DropPod diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md new file mode 100644 index 000000000..e8361c4cf --- /dev/null +++ b/docs/New-Features-and-Enhancements.md @@ -0,0 +1,43 @@ +# New Features and Enhancements + +This page describes all the engine features that are either new and introduced by Vinifera or are otherwise enhanced. + +## Aircraft + +### CurleyShuffle + +- `[General]->CurleyShuffle`, which controls if the aircraft will shuffle its position between firing at its target, can now be overriden on a per-type basis. + +In `rulesmd.ini`: +```ini +[AircraftType] +CurleyShuffle= ; Should this aircraft shuffle its position between firing at its target? Defaults to the value of [General]->CurleyShuffle. +``` + +## Animations + +## Buildings + +## Crates + +## Infantry + +## Particle Systems + +## Particles + +## Projectiles + +## Super Weapons + +## Technos + +## Terrain + +## Tiberiums + +## Vehicles + +## Warheads + +## Weapons \ No newline at end of file diff --git a/docs/New-or-Enhanced-Logics.md b/docs/New-or-Enhanced-Logics.md deleted file mode 100644 index 0bcb48657..000000000 --- a/docs/New-or-Enhanced-Logics.md +++ /dev/null @@ -1,23 +0,0 @@ -# New / Enhanced Logics - -This page describes all the engine features that are either new and introduced by Vinifera or significantly extended or expanded. - -## New types / ingame entities - -## Animations - -## Buildings - -## Infantry - -## Projectiles - -## Super Weapons - -## Technos - -## Terrain - -## Warheads - -## Weapons \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 4fa20f18d..7b3463d15 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,8 +11,8 @@ License ```{toctree} :hidden: :caption: Extension Documentation -New / Enhanced Logics -Fixed / Improved Logics +Bugfixes +New Features and Enhancements AI Scripting and Mapping User Interface Miscellanous From 95b8df9f0d3f2075aa84741b463aaf47d62bc274 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 21:18:30 +0300 Subject: [PATCH 03/25] Update workflow --- .github/workflows/pr-doc-checker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-doc-checker.yml b/.github/workflows/pr-doc-checker.yml index 9e26e666a..623a980cd 100644 --- a/.github/workflows/pr-doc-checker.yml +++ b/.github/workflows/pr-doc-checker.yml @@ -64,8 +64,8 @@ jobs: # Check that Documentation has been updated if (git diff --name-only $(git merge-base origin/$BASE_BRANCH HEAD) | \ grep \ - -e ^docs/New-or-Enhanced-Logics.md$ \ - -e ^docs/Fixed-or-Improved-Logics.md$ \ + -e ^docs/Bugfixes.md$ \ + -e ^docs/New-or-Enhanced-Logics.md$ \ -e ^docs/AI-Scripting-and-Mapping.md$ \ -e ^docs/User-Interface.md$ \ -e ^docs/Miscellanous.md$ \ From a4fd62f35fc8b70fdd5f09405edb45ee5ad8ebde Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 21:25:07 +0300 Subject: [PATCH 04/25] Add credits/changelog data --- CREDITS.md | 3 +++ docs/Whats-New.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CREDITS.md b/CREDITS.md index 0b530cd85..8144c420f 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -5,5 +5,8 @@ This page lists all the individual contributions to the project by their author. - **Belonit (Gluk-v48)**: - Check for Changelog/Documentation/Credits in Pull Requests - Docs dark theme switcher +- **CCHyper/tomsons26**: + - Vinifera foundations: TS++, game.exe hooker, extension system and other core features + - Make CurleyShuffle customizable per AircraftType - **Kerbiter (Metadorius)**: - Initial doc setup diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 168fb7363..b213a53f3 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -41,7 +41,7 @@ This page lists the history of changes across stable Vinifera releases and also Click to show New: -- Added something (by someone) +- Make CurleyShuffle customizable per AircraftType (by CCHyper/tomsons26) Vanilla fixes: - Fixed something (by someone) From b1f5404205588bb95aa5ed78079b9e4c74f79c90 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 21:51:44 +0300 Subject: [PATCH 05/25] Start adding features --- CREDITS.md | 13 +++++++++- docs/AI-Scripting-and-Mapping.md | 3 ++- docs/New-Features-and-Enhancements.md | 34 +++++++++++++++++++++++++-- docs/Whats-New.md | 6 ++++- 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 8144c420f..513541c9e 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -7,6 +7,17 @@ This page lists all the individual contributions to the project by their author. - Docs dark theme switcher - **CCHyper/tomsons26**: - Vinifera foundations: TS++, game.exe hooker, extension system and other core features - - Make CurleyShuffle customizable per AircraftType + - Implement `CurleyShuffle` for AircraftTypes + - Implement `ReloadRate `for AircraftTypes + - Implement `AILegalTarget` for TechnoTypes + - Add support for up to 32767 waypoints to be used in scenarios. + - Implement the loading of Tutorial messages from scenarios. - **Kerbiter (Metadorius)**: - Initial doc setup +- **Rampastring**: + - Add `IceStrength` to Rules, and `IceDestructionEnabled` scenario option. +- **secsome**: + - Add support for up to 32767 waypoints to be used in scenarios. +- **ZivDero**: + - Filling the docs for previously implemented features + - Add support for up to 32767 waypoints to be used in scenarios. diff --git a/docs/AI-Scripting-and-Mapping.md b/docs/AI-Scripting-and-Mapping.md index 8fd117e83..6b75ca132 100644 --- a/docs/AI-Scripting-and-Mapping.md +++ b/docs/AI-Scripting-and-Mapping.md @@ -4,7 +4,8 @@ This page describes all AI scripting and mapping related additions and changes i ## Bugfixes and Miscellanous -TODO +- The game now supports reading and using up to 32767 waypoints in scenarios. +- Tutorial messages are now loaded from scenarios. This can be used to replace/update an existing entry from `TUTORIAL.INI`, or to add a new tutorial message index which can be used by trigger actions. ## Singleplayer Mission Maps diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index e8361c4cf..e4e9144d0 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -6,12 +6,22 @@ This page describes all the engine features that are either new and introduced b ### CurleyShuffle -- `[General]->CurleyShuffle`, which controls if the aircraft will shuffle its position between firing at its target, can now be overriden on a per-type basis. +- `[General]->CurleyShuffle`, which controls if the aircraft will shuffle its position between firing at its target, can now be overridden on a per-type basis. In `rulesmd.ini`: ```ini [AircraftType] -CurleyShuffle= ; Should this aircraft shuffle its position between firing at its target? Defaults to the value of [General]->CurleyShuffle. +CurleyShuffle= ; Should this aircraft shuffle its position between firing at its target? Defaults to [General]->CurleyShuffle. +``` + +### ReloadRate + +- `[General]->ReloadRate`, which controls the rate that aircraft will reload its ammo when docked with a helipad, can now be overridden on a per-type basis. + +In `rulesmd.ini`: +```ini +[AircraftType] +ReloadRate= ; The rate that this aircraft will reload its ammo when docked with a helipad. Defaults to [General]->ReloadRate. ``` ## Animations @@ -20,6 +30,16 @@ CurleyShuffle= ; Should this aircraft shuffle its position between fir ## Crates +## Ice + +- Ice strength can now be customized. +In `rulesmd.ini`: +```ini +[CombatDamage] +IceStrength= ; The strength of ice. Higher values make ice less likely to break from a shot. + ; 0 makes ice break from any shot. Defaults to 0. +``` + ## Infantry ## Particle Systems @@ -32,6 +52,16 @@ CurleyShuffle= ; Should this aircraft shuffle its position between fir ## Technos +### AILegalTarget + +- `AILegalTarget` can be used with TEchnoTypes to forbid the AI from performing a targeting evaluation on this object. It is subject to LegalTarget=yes. + +In `rulesmd.ini`: +```ini +[TechnoType] +AILegalTarget= ; Can this object be the target of an attack or move command by the computer? Defaults to yes. +``` + ## Terrain ## Tiberiums diff --git a/docs/Whats-New.md b/docs/Whats-New.md index b213a53f3..d1383dbab 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -41,7 +41,11 @@ This page lists the history of changes across stable Vinifera releases and also Click to show New: -- Make CurleyShuffle customizable per AircraftType (by CCHyper/tomsons26) +- Implement CurleyShuffle for AircraftTypes (by CCHyper/tomsons26) +- Implement ReloadRate for AircraftTypes (by CCHyper/tomsons26) +- Implement AILegalTarget for TechnoTypes (by CCHyper/tomsons26) +- Add support for up to 32767 waypoints to be used in scenarios (by CCHyper, tomsons26, ZivDero, secsome) +- Implement the loading of Tutorial messages from scenarios (by CCHyper/tomsons26) Vanilla fixes: - Fixed something (by someone) From 85594d9ff1920767a0664d7090e7bb1f1be115fe Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 22:22:34 +0300 Subject: [PATCH 06/25] Reorganized mapping section --- docs/AI-Scripting-and-Mapping.md | 30 --------------------------- docs/Mapping.md | 23 ++++++++++++++++++++ docs/New-Features-and-Enhancements.md | 1 + docs/Whats-New.md | 7 ++++--- docs/index.md | 2 +- 5 files changed, 29 insertions(+), 34 deletions(-) delete mode 100644 docs/AI-Scripting-and-Mapping.md create mode 100644 docs/Mapping.md diff --git a/docs/AI-Scripting-and-Mapping.md b/docs/AI-Scripting-and-Mapping.md deleted file mode 100644 index 6b75ca132..000000000 --- a/docs/AI-Scripting-and-Mapping.md +++ /dev/null @@ -1,30 +0,0 @@ -# AI Scripting and Mapping - -This page describes all AI scripting and mapping related additions and changes introduced by Vinifera. - -## Bugfixes and Miscellanous - -- The game now supports reading and using up to 32767 waypoints in scenarios. -- Tutorial messages are now loaded from scenarios. This can be used to replace/update an existing entry from `TUTORIAL.INI`, or to add a new tutorial message index which can be used by trigger actions. - -## Singleplayer Mission Maps - -TODO - -## Script Actions - -### `10000-10999` Some TODO range - -#### `10000-10049` Some TODO subrange - -TODO - -#### `10050` Some action - -TODO - -## Trigger Actions - -### `000` Some Action - -TODO \ No newline at end of file diff --git a/docs/Mapping.md b/docs/Mapping.md new file mode 100644 index 000000000..84e8f359f --- /dev/null +++ b/docs/Mapping.md @@ -0,0 +1,23 @@ +# Mapping + +This page describes all mapping-related additions and changes introduced by Vinifera. + +## Bugfixes and Miscellaneous + +- The game now supports reading and using up to 32767 waypoints in scenarios. +- Tutorial messages are now loaded from scenarios. This can be used to replace/update an existing entry from `TUTORIAL.INI`, or to add a new tutorial message index which can be used by trigger actions. + +## Scenario Settings + +### Ice Destruction +- Ice destruction can now be disabled. + +In a scenario file: +```ini +[Basic] +IceDestructionEnabled= ; Can ice tiles be destroyed in the scenario? Defaults to yes. +``` + +## Script Actions + +## Trigger Actions diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index e4e9144d0..d9fbc889b 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -33,6 +33,7 @@ ReloadRate= ; The rate that this aircraft will reload its ammo ## Ice - Ice strength can now be customized. + In `rulesmd.ini`: ```ini [CombatDamage] diff --git a/docs/Whats-New.md b/docs/Whats-New.md index d1383dbab..c2ac38c64 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -41,11 +41,12 @@ This page lists the history of changes across stable Vinifera releases and also Click to show New: -- Implement CurleyShuffle for AircraftTypes (by CCHyper/tomsons26) -- Implement ReloadRate for AircraftTypes (by CCHyper/tomsons26) -- Implement AILegalTarget for TechnoTypes (by CCHyper/tomsons26) +- Implement `CurleyShuffle` for AircraftTypes (by CCHyper/tomsons26) +- Implement `ReloadRate` for AircraftTypes (by CCHyper/tomsons26) +- Implement `AILegalTarget` for TechnoTypes (by CCHyper/tomsons26) - Add support for up to 32767 waypoints to be used in scenarios (by CCHyper, tomsons26, ZivDero, secsome) - Implement the loading of Tutorial messages from scenarios (by CCHyper/tomsons26) +- Add `IceStrength` to Rules, and `IceDestructionEnabled` scenario option (by Rampastring) Vanilla fixes: - Fixed something (by someone) diff --git a/docs/index.md b/docs/index.md index 7b3463d15..f82e18642 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,7 +13,7 @@ License :caption: Extension Documentation Bugfixes New Features and Enhancements -AI Scripting and Mapping +Mapping User Interface Miscellanous ``` From 62e2af9804a246b902aacee81c9777f66c2c8540 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Tue, 17 Sep 2024 22:53:10 +0300 Subject: [PATCH 07/25] 123 --- CREDITS.md | 8 ++++++++ docs/Bugfixes.md | 4 +++- docs/Mapping.md | 23 +++++++++++++++++++++++ docs/New-Features-and-Enhancements.md | 17 +++++++++++++---- docs/Whats-New.md | 12 ++++++++---- 5 files changed, 55 insertions(+), 9 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 513541c9e..0aa3a80f0 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -12,6 +12,14 @@ This page lists all the individual contributions to the project by their author. - Implement `AILegalTarget` for TechnoTypes - Add support for up to 32767 waypoints to be used in scenarios. - Implement the loading of Tutorial messages from scenarios. + - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively. + - Fix a bug where VQA files could not be loaded from the root directory or local search paths. + - Allow the remap color of `Neutral` and `Special` houses to be overridden in multiplayer games. + - Add RequiredAddon to Theme control types. + - Implement `IntroMovie` for Campaigns. + - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. + - Fixes a bug where the values of `RandomRate` were not stored correctly. + - Implement DebugOnly for Campaigns. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index aecc05b5b..dabef5f50 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -4,4 +4,6 @@ This page lists all vanilla bugs fixed by Vinifera. ## Bugfixes and miscellaneous - +- Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively. +- Fix a bug where VQA files could not be loaded from the root directory or local search paths. +- Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. diff --git a/docs/Mapping.md b/docs/Mapping.md index 84e8f359f..f81f3e916 100644 --- a/docs/Mapping.md +++ b/docs/Mapping.md @@ -6,10 +6,33 @@ This page describes all mapping-related additions and changes introduced by Vini - The game now supports reading and using up to 32767 waypoints in scenarios. - Tutorial messages are now loaded from scenarios. This can be used to replace/update an existing entry from `TUTORIAL.INI`, or to add a new tutorial message index which can be used by trigger actions. +- Remove a hardcoded limitation where the remap color of `Neutral` and `Special` could not be overridden in multiplayer games. Due to the inconsistencies between the official maps, values of `Grey` and `LightGrey` will be forced to `LightGrey`. + +## Campaign Settings + +### Intro Movie + +- `IntroMovie` can now be set for campaigns, allowing the customisation of the intro movie that plays before the campaign path starts. +In a `battle.ini`: +```ini +[Campaign] +IntroMovie= ; The intro movie name (without the .VQA extension) to play at the start of the campaign? Defaults to . +``` + +### DebugOnly + +- `DebugOnly` can now be set for campaigns, which adds the prefix of "[Debug]" to the campaign description. In addition to this, it also makes the campaign only available Developer mode. +In a `battle.ini`: +```ini +[Campaign] +DebugOnly= ; Is this campaign only available in Developer mode? Defaults to no. +``` +For testing/debugging versions of the Tiberian Sun and Firestorm campaigns, download [BATTLE_DEBUG_CAMPAIGN.INI](https://github.com/Vinifera-Developers/Vinifera-Files/blob/master/files/BATTLE_DEBUG_CAMPAIGN.INI) and place it in your game install directory. ## Scenario Settings ### Ice Destruction + - Ice destruction can now be disabled. In a scenario file: diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index d9fbc889b..92699743a 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -8,7 +8,7 @@ This page describes all the engine features that are either new and introduced b - `[General]->CurleyShuffle`, which controls if the aircraft will shuffle its position between firing at its target, can now be overridden on a per-type basis. -In `rulesmd.ini`: +In `rules.ini`: ```ini [AircraftType] CurleyShuffle= ; Should this aircraft shuffle its position between firing at its target? Defaults to [General]->CurleyShuffle. @@ -18,7 +18,7 @@ CurleyShuffle= ; Should this aircraft shuffle its position between fir - `[General]->ReloadRate`, which controls the rate that aircraft will reload its ammo when docked with a helipad, can now be overridden on a per-type basis. -In `rulesmd.ini`: +In `rules.ini`: ```ini [AircraftType] ReloadRate= ; The rate that this aircraft will reload its ammo when docked with a helipad. Defaults to [General]->ReloadRate. @@ -34,7 +34,7 @@ ReloadRate= ; The rate that this aircraft will reload its ammo - Ice strength can now be customized. -In `rulesmd.ini`: +In `rules.ini`: ```ini [CombatDamage] IceStrength= ; The strength of ice. Higher values make ice less likely to break from a shot. @@ -57,7 +57,7 @@ IceStrength= ; The strength of ice. Higher values make ice less likely - `AILegalTarget` can be used with TEchnoTypes to forbid the AI from performing a targeting evaluation on this object. It is subject to LegalTarget=yes. -In `rulesmd.ini`: +In `rules.ini`: ```ini [TechnoType] AILegalTarget= ; Can this object be the target of an attack or move command by the computer? Defaults to yes. @@ -65,6 +65,15 @@ AILegalTarget= ; Can this object be the target of an attack or move co ## Terrain +## Themes + +- `RequiredAddon` can be set to be limit new and existing themes to a specific addon (i. e., Firestorm). +In `theme.ini`: +```ini +[ThemeType] +RequiredAddon= ; The addon required to be active for this theme to be available. Currently, only 1 (Firestorm) is supported. Defaults to 0 (none). +``` + ## Tiberiums ## Vehicles diff --git a/docs/Whats-New.md b/docs/Whats-New.md index c2ac38c64..ecf56db23 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -47,12 +47,16 @@ New: - Add support for up to 32767 waypoints to be used in scenarios (by CCHyper, tomsons26, ZivDero, secsome) - Implement the loading of Tutorial messages from scenarios (by CCHyper/tomsons26) - Add `IceStrength` to Rules, and `IceDestructionEnabled` scenario option (by Rampastring) +- Allow the remap color of `Neutral` and `Special` houses to be overridden in multiplayer games (by CCHyper/tomsons26) +- Add `RequiredAddon` to Theme control types (by CCHyper/tomsons26) +- Implement `IntroMovie` for Campaigns (by CCHyper/tomsons26) +- Implements DebugOnly for Campaigns (by CCHyper/tomsons26) Vanilla fixes: -- Fixed something (by someone) - -Vinifera fixes: -- Fixed something (by someone) +- Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) +- Fix a bug where VQA files could not be loaded from the root directory or local search paths (by CCHyper/tomsons26) +- Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself (by CCHyper/tomsons26) +- Fixes a bug where the values of `RandomRate` were not stored correctly (by CCHyper/tomsons26) Fixes / interactions with TS Patches: - Fixed something (by someone) From dd577d487152ae645b1e7ac026e8940c90128bd7 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 00:37:12 +0300 Subject: [PATCH 08/25] 1234 --- CREDITS.md | 29 +++- docs/Bugfixes.md | 8 ++ docs/Mapping.md | 4 +- docs/Miscellanous.md | 99 ++++++++++++- docs/New-Features-and-Enhancements.md | 193 +++++++++++++++++++++++++- docs/User-Interface.md | 46 +++++- docs/Whats-New.md | 28 +++- 7 files changed, 392 insertions(+), 15 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 0aa3a80f0..7def52343 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -19,7 +19,34 @@ This page lists all the individual contributions to the project by their author. - Implement `IntroMovie` for Campaigns. - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. - Fixes a bug where the values of `RandomRate` were not stored correctly. - - Implement DebugOnly for Campaigns. + - Implement `DebugOnly` for Campaigns. + - Fix a bug where the `FSMENU` theme would incorrectly play instead of the `INTRO` theme when in Tiberian Sun mode after returning to the main menu. + - Implement developer commands for instant superweapon recharge. + - Add support for PNG images as an alternative to PCX images. + - Implement option to display the super weapon recharge timer on the tactical view. + - Implement `CanPassiveAcquire` for TechnoTypes. + - Implement `CanRetaliate` for TechnoTypes. + - Fix a bug where the game would crash when a trigger with the action "Wakeup group..." is executed and the requested Group was not found. + - Add loading of `MPLAYER.INI` and `MPLAYERFS.INI` to override Rules data for multiplayer games. + - Allow the game's Window title, Cursor and Icon to be overridden. + - Implement `IdleRate`, `StartIdleFrame` and `IdleFrames` for TechnoTypes. + - Add loading of `GENERIC.MIX` and `ISOGEN.MIX` mixfiles. + - The game will no longer fail to start if the startup mix files are not found. + - Implement support for new custom theater types. + - Add loading of `ELOCAL(00-99).MIX` expansion mixfiles. + - Fix a bug where animations with a `DetailLevel` value greater than 2 would not show in-game. + - Add Rules INI selection dialog for Developer Mode. + - Implement the "Build Off Ally" feature from Red Alert 2. + - Adds background fill behind in-game user typed messages. + - Fix a bug where `EngineerDamage` was incorrectly loaded with `EngineerCaptureLevel`. + - Fix a bug where `EngineerDamage` was not used to calculate the engineer damage. + - Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building. + - Fix a number of issues related to the "multi-engineer" logic. + - Implement JumpCamera (North, South, East and West) commands. + - Implement `EnterTransportSound` and `LeaveTransportSound` for TechnoTypes. + - Fix a bug where air transports are unable to land when given a move order. + - Hardcode shroud and fog graphics to circumvent cheating in multiplayer games. + - Implement `Mechanic` and `OmniHealer` for InfantryTypes. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index dabef5f50..7c797d4c1 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -7,3 +7,11 @@ This page lists all vanilla bugs fixed by Vinifera. - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively. - Fix a bug where VQA files could not be loaded from the root directory or local search paths. - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. +- Fix a bug where the values of `RandomRate` were not stored correctly. In addition to this, negative values will also be converted to absolute numbers. +- Fix a bug where the `FSMENU` theme would incorrectly play instead of the `INTRO` theme when in Tiberian Sun mode after returning to the main menu. +- Fix a bug where the game would crash when a trigger with the action "Wakeup group..." is executed and the requested Group was not found. +- Fix a bug where animations with a `DetailLevel` value greater than 2 would not show in-game. +- Fix a bug where `EngineerDamage` was incorrectly loaded with `EngineerCaptureLevel`. +- Fix a bug where `EngineerDamage` was not used to calculate the engineer damage. +- Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building. +- Fix a bug where air transports are unable to land when given a move order. diff --git a/docs/Mapping.md b/docs/Mapping.md index f81f3e916..0aa567915 100644 --- a/docs/Mapping.md +++ b/docs/Mapping.md @@ -13,7 +13,7 @@ This page describes all mapping-related additions and changes introduced by Vini ### Intro Movie - `IntroMovie` can now be set for campaigns, allowing the customisation of the intro movie that plays before the campaign path starts. -In a `battle.ini`: +In `BATTLE.INI`: ```ini [Campaign] IntroMovie= ; The intro movie name (without the .VQA extension) to play at the start of the campaign? Defaults to . @@ -22,7 +22,7 @@ IntroMovie= ; The intro movie name (without the .VQA extension) to play ### DebugOnly - `DebugOnly` can now be set for campaigns, which adds the prefix of "[Debug]" to the campaign description. In addition to this, it also makes the campaign only available Developer mode. -In a `battle.ini`: +In `BATTLE.INI`: ```ini [Campaign] DebugOnly= ; Is this campaign only available in Developer mode? Defaults to no. diff --git a/docs/Miscellanous.md b/docs/Miscellanous.md index 3e774aa59..f91bd35ef 100644 --- a/docs/Miscellanous.md +++ b/docs/Miscellanous.md @@ -2,6 +2,103 @@ This page describes every change in Vinifera that wasn't categorized into a proper category yet. -## Developer tools +- Vinifera hardcodes the shroud and fog graphics to circumvent cheating in multiplayer games. + +## Multi-Engineer + +- Vinifera fixes `EngineerDamage` and `EngineerCaptureLevel` to be considered by the game, like they were in Tiberian Dawn and Red Alert. + +In `RULES.INI`: +```ini +[General] +EngineerDamage= ; The engineer will damage a building by this percent of its full health each time it enters. Defaults to 0.0. +EngineerCaptureLevel= ; If the building’s health is equal to or below this percentage of its strength it can be captured by an engineer. Defaults to 1.0. +``` +```{warning} +Upon observing the values used in `FIRESTRM.INI`, this could potentially cause an issue with the vanilla game. `FIRESTRM.INI` has the values `EngineerCaptureLevel=1.0` and `EngineerDamage=0.0`. Below are some values to help test these bug fixes and their potential impact on the vanilla game. +``` + +Red Alert Default values: +```ini +EngineerDamage=0.33 +EngineerCaptureLevel=0.25 +``` + +Red Alert Multiplayer (MPLAYER.INI) values: +```ini +EngineerDamage=0.33 +EngineerCaptureLevel=0.66 +``` + +## Build off Ally + +- Vinifera implements the "Build Off Ally" feature from Red Alert 2 as a Quality of Life improvement. This is now the default behaviour for multiplayer games. + +In `RULES.INI`: +```ini +[MultiplayerDefaults] +BuildOffAlly= ; Can players build their own structures adjacent to structures owned by their allies? (Defaults to yes). + +[BuildingTypes] +EligibleForAllyBuilding= ; Is this building eligible for proximity checks by players who are its owner's allies? + ; For buildings with `ConstructionYard=yes` this defaults to yes, otherwise it defaults to no. +``` + +## Window title, Cursor and Icon + +- The game's Window title, Cursor and Icon can be overridden. These controls are loaded from a new INI file, `VINIFERA.INI`. +```{note} +While this is INI file is optional, it is recommended the `ProjectName` and `ProjectVersion` are set by the mod developer as this information is printed into debug logs and crash dumps to aid in the troubleshooting process. +``` + +In `VINIFERA.INI`: +```ini +[General] +ProjectName= ; The project's title name string. Limited to 64 characters. +ProjectVersion= ; The project's version string. Limited to 64 characters. +IconFile= ; The name of the icon file (including the .ICO extension) to use for the games window. Limited to 64 characters. +CursorFile= ; The name of the cursor file (including the .CUR extension) to use for the game's cursor. Limited to 64 characters. +``` +```{note} +The filenames also support subdirectories. +``` + +## MIX + +- `GENERIC.MIX` and `ISOGEN.MIX` mixfiles can now be used to place common assets between theaters. +- The game now loads `ELOCAL(00-99).MIX` expansion mixfiles. These can be used to override files normally found in `LOCAL.MIX`. + +## Developer Features + +- The game will no longer fail to start if the startup mix files are not found. +```{note} +It is not recommended that you modify or remove any of the original mix files, this could lead to undefined behaviour and the Vinifera developers will not be able to troubleshoot any issue related to these changes. +``` + +### Rule Selection + +- Vinifera re-enables a feature from Tiberian Sun's development which allows you to select the Rules file if multiple are found in the game directory. + +At startup, the game will scan for files in the root directory with the format **`RULE*.INI`**, with `*` being a wildcard for any character or string (for example, `RULE_VERSION1.INI` or `RULE_TEST_WEAPON.INI`). While it has no impact on the loading, it is advised to use the format `RULE_*.INI` to help with file sorting in Windows Explorer. + +The name shown in the dialog is the value of the `Name=` _(with a limit of 128 characters)_ entry under `[General]` in the Rule INI. If the user presses Cancel on the dialog, the game will load the standard `RULES.INI` file. + +```{note} +Due to the nature of its use, this feature is only available when Vinifera is running in Developer Mode +``` + +![image](https://user-images.githubusercontent.com/73803386/137135038-0a1e983f-d295-4723-86fb-1ab94ba8948b.png) + +### Developer Commands + +#### `[ ]` Instant Special Recharge (Player) + +- Toggles the instant recharge cheat for the player's superweapons. + +#### `[ ]` Instant Special Recharge (AI) + +- Toggles the instant recharge cheat for the AI player superweapons. ## INI + +- Add loading of `MPLAYER.INI` and `MPLAYERFS.INI` (Firestorm only) to override Rules data for multiplayer games (including Skirmish). Data contained in these INI's will not be loaded for the campaign and World Domination Tour games. \ No newline at end of file diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 92699743a..69ea4cca1 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -8,7 +8,7 @@ This page describes all the engine features that are either new and introduced b - `[General]->CurleyShuffle`, which controls if the aircraft will shuffle its position between firing at its target, can now be overridden on a per-type basis. -In `rules.ini`: +In `RULES.INI`: ```ini [AircraftType] CurleyShuffle= ; Should this aircraft shuffle its position between firing at its target? Defaults to [General]->CurleyShuffle. @@ -18,7 +18,7 @@ CurleyShuffle= ; Should this aircraft shuffle its position between fir - `[General]->ReloadRate`, which controls the rate that aircraft will reload its ammo when docked with a helipad, can now be overridden on a per-type basis. -In `rules.ini`: +In `RULES.INI`: ```ini [AircraftType] ReloadRate= ; The rate that this aircraft will reload its ammo when docked with a helipad. Defaults to [General]->ReloadRate. @@ -34,7 +34,7 @@ ReloadRate= ; The rate that this aircraft will reload its ammo - Ice strength can now be customized. -In `rules.ini`: +In `RULES.INI`: ```ini [CombatDamage] IceStrength= ; The strength of ice. Higher values make ice less likely to break from a shot. @@ -43,6 +43,25 @@ IceStrength= ; The strength of ice. Higher values make ice less likely ## Infantry +### Mechanic and OmniHealer + +- Vinifera reimplements the legacy `Mechanic` logic from Red Alert. In addition to this, a new key to allow the healing of both infantry and units has been added. + +```{note} +Both these systems require the warhead to deal negative damage. +``` + +In `RULES.INI`: +```ini +[InfantryType] +Mechanic= ; Should this infantry only consider unit and aircraft as valid targets? Defaults to no. +OmniHealer= ; Should this infantry consider other infantry, unit, and aircraft as valid targets? Defaults to no. +``` + +```{note} +When an infantry with `Mechanic=yes` and `OmniHealer=yes` is selected and the mouse is over a transport unit or aircraft, holding down the `Alt` key (Force Move) will allow you to enter the transport instead of healing it. +``` + ## Particle Systems ## Particles @@ -55,20 +74,182 @@ IceStrength= ; The strength of ice. Higher values make ice less likely ### AILegalTarget -- `AILegalTarget` can be used with TEchnoTypes to forbid the AI from performing a targeting evaluation on this object. It is subject to LegalTarget=yes. +- `AILegalTarget` can be used with TechnoTypes to forbid the AI from performing a targeting evaluation on this object. It is subject to LegalTarget=yes. -In `rules.ini`: +In `RULES.INI`: ```ini [TechnoType] AILegalTarget= ; Can this object be the target of an attack or move command by the computer? Defaults to yes. ``` +### CanPassiveAcquire + +- The `CanPassiveAcquire` key has been backported from Red Alert 2, which controls whether or not the object may acquire targets (within range) and attack them automatically, without player input. + +In `RULES.INI`: +```ini +[TechnoType] +CanPassiveAcquire= ; Can this object acquire targets that are within its weapons range and attack them automatically? Defaults to yes. +``` +```{note} +This key has a spelling error for "Acquire" and should be `CanPassiveAcquire`. +``` + +### CanRetaliate + +- The `CanRetaliate` key has been backported from Red Alert 2, which controls if the object may retaliate (if other conditions are met) when hit by enemy fire. + +In `RULES.INI`: +```ini +[TechnoType] +CanRetaliate= ; Can this unit retaliate (if general conditions are met) when hit by enemy fire? Defaults to yes. +``` + +### Idle Animation Improvements + +- The `IdleRate` key has been backported from Red Alert 2. This allows units with shape graphics to animate with their walk frames while idle (standing still). +```{note} +This key can be defined on either the `RULES.INI` section or the `ART.INI` image section, but the latter will take priority. +``` + +In `ART.INI`: +```ini +[TechnoType] +IdleRate= ; The rate at which this unit animates when it is standing idle (not moving). Defaults to 0. +``` + +- In addition to this, to help define custom idle animations, `StartIdleFrame` and `IdleFrames` has been added for UnitTypes. These will only be used if the UnitType has an `IdleRate` greater than 0. + +In `ART.INI`: +```ini +[TechnoType] +StartIdleFrame= ; The starting frame for the idle animation in the units shape file. Defaults to the value of StartWalkFrame. +IdleFrames= ; The number of image frames for each of the idle animation sequences. Defaults to the value of WalkFrames. +``` + +### EnterTransportSound/LeaveTransportSound + +- Vinifera implements EnterTransportSound and LeaveTransportSound from Red Alert 2 for TechnoTypes. + +In `RULES.INI`: +```ini +[TechnoType] +EnterTransportSound= ; The sound effect to play when a passenger enters this unit. Defaults to . +LeaveTransportSound= ; The sound effect to play when a passenger leaves this unit. Defaults to . +``` + ## Terrain +## Theaters + +- Vinifera allow the creation of new custom theater types. A new INI has been added to define these TheaterTypes, if the INI is not present, the game will default to the normal `TEMPERATE` and `SNOW` TheaterTypes. +```{warning} +The random map generator does not currently support new theater types. +``` +-
+ Basic `THEATERS.INI` + ```ini + ;============================================================================ + ; THEATER.INI + ; + ; This control file specifies the theater types that are in the game. + ; + ; $Author: $ + ; $Archive: $ + ; $Modtime: $ + ; $Revision: $ + ;============================================================================ + + + ; ******* Theater List ******* + ; Lists the theater types in this control file. Each + ; theater is given a unique (internal only) identifier name. + [TheaterTypes] + 1=TEMPERATE + 2=SNOW + + + ; ******* Individual Theater Data ******* + ; Each theater data lists its information in a section that + ; corresponds to its identifier theater name (see above). + ; + ; -- All fields are required! -- + + ; Root = The root name for the theater data and control INI. [9 characters max] + ; IsoRoot = The root name for the theater tileset data. [9 characters max] + ; Suffix = The file suffix for loading the theaters tilesets. [3 characters max] + ; MMSuffix = The suffix for the "marble madness" tiles. [3 characters max] + ; ImageLetter = The theater image letter, used to fixup graphics. [single characters only] + ; BiomeName = The name of this theater as it appears in the map generator. [32 characters max] + ; This only applies to new theater types, TEMPERATE and SNOW are ignored. + ; IsArctic = Is this theater the "arctic" theater set [used for deciding which occupy bits are used]? (def = false) + ; IsIceGrowthEnabled = Is the ice growth logic enabled for this theater? (def = false) + ; IsVeinGrowthEnabled = Is the vein growth logic enabled for this theater? (def = false) + ; IsAllowedInRMG = Is this theater allowed to be used in the map generator? (def = false) + ; IsGenerateVeinholesInRMG = Should the map generator produce veinholes for this theater? (def = false) + ; LowRadarBrightness = The brightness of the lowest height level cells when drawn on the radar. (def = 1.0) + ; HighRadarBrightness = The brightness of the highest height level cells when drawn on the radar. (def = 1.0) + + [TEMPERATE] + Root=TEMPERAT + IsoRoot=ISOTEMP + Suffix=TEM + MMSuffix=MMT + ImageLetter=T + IsArctic=false + IsIceGrowthEnabled=false + IsVeinGrowthEnabled=true + IsAllowedInRMG=true + IsGenerateVeinholesInRMG=true + LowRadarBrightness=1.0 + HighRadarBrightness=1.6 + + [SNOW] + Root=SNOW + IsoRoot=ISOSNOW + Suffix=SNO + MMSuffix=MMS + ImageLetter=A + IsArctic=true + IsIceGrowthEnabled=true + IsVeinGrowthEnabled=true + IsAllowedInRMG=true + IsGenerateVeinholesInRMG=true + LowRadarBrightness=0.8 + HighRadarBrightness=1.1 + ``` +
+ + -
+ Sample new theater + ```ini + [TheaterTypes] + 3=DESERT + + [DESERT] + Root=DESERT + IsoRoot=ISODES + Suffix=DES + MMSuffix=MMD + ImageLetter=D + BiomeName=New Desert + IsArctic=false + IsIceGrowthEnabled=false + IsVeinGrowthEnabled=false + IsAllowedInRMG=false + IsGenerateVeinholesInRMG=false + LowRadarBrightness=1.0 + HighRadarBrightness=1.6 + ``` + + Files following this format must exist otherwise the game could crash at any moment during gameplay. + `DESERT.MIX`, `ISODES.MIX`, `DES.MIX`, `DESERT.INI`, `ISODES.PAL`, `DESERT.PAL`, `UNITDES.PAL`, and `SLOP#Z.DES` (where # is 1 to 4). +
+ ## Themes - `RequiredAddon` can be set to be limit new and existing themes to a specific addon (i. e., Firestorm). -In `theme.ini`: +In `THEME.INI`: ```ini [ThemeType] RequiredAddon= ; The addon required to be active for this theme to be available. Currently, only 1 (Firestorm) is supported. Defaults to 0 (none). diff --git a/docs/User-Interface.md b/docs/User-Interface.md index dba0c9414..852ca7e89 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -4,20 +4,58 @@ This page lists all user interface additions, changes, fixes that are implemente ## Bugfixes and miscellanous -## Audio +- PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. +```{note} +This system only supports 8-bit PNG. All other formats such as Greyscale, Paletted, Alpha and 16-bit are not supported. +``` +Attached is a set of the original loading screens with a minor edit and saved as PNG for testing; +[PNG_Loading_Screens.zip](https://github.com/Vinifera-Developers/Vinifera/files/7392707/PNG_Loading_Screens.zip) -## Battle screen UI/UX +## Audio ## Hotkey Commands -### `[ ]` Example command +### `[ ]` Toggle Special Timers + +- Toggles the visibility of Super Weapon timers. + +### `[ ]` Jump Camera West + +- Jump the tactical map camera to the west edge of the map. Defaults to `Ctrl` + `Left Arrow`. + +### `[ ]` Jump Camera East -- Switches something. See [this](somewhere) for details. +- Jump the tactical map camera to the east edge of the map. Defaults to `Ctrl` + `Right Arrow`. + +### `[ ]` Jump Camera North + +- Jump the tactical map camera to the north edge of the map. Defaults to `Ctrl` + `Up Arrow`. + +### `[ ]` Jump Camera South + +- Jump the tactical map camera to the north edge of the map. Defaults to `Ctrl` + `Down Arrow`. ## Loading screen ## Sidebar / Battle UI +- Super Weapon timers, similar to those found in Red Alert 2, can now be displayed on the tactical view. This is disabled by default and each relevant SuperWeaponType must have it enabled. Superweapons that are offline due to low power or are disabled via other purposes will not show. +In `RULES.INI`: +```ini +[SuperWeaponType] +ShowTimer= ; When this superweapon is active, does its recharge timer display on the tactical view? Defaults to no. +``` + +- Vinifera adds a background behind the user typed messages that appear in-game to provide better readability. +![image](https://user-images.githubusercontent.com/73803386/137031682-3f265d48-7f28-410f-bf0d-3260e24f1748.png) + +In `UI.INI`: +```ini +[Ingame] +TextLabelOutline= ; Should the text be drawn with a black outline? Defaults to yes. +TextLabelBackgroundTransparency= ; The transparency of the text background fill. Ranged between 0 and 100. Defaults to 50. +``` + ## Tooltips ## Miscellanous diff --git a/docs/Whats-New.md b/docs/Whats-New.md index ecf56db23..b1e64e0eb 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -50,13 +50,39 @@ New: - Allow the remap color of `Neutral` and `Special` houses to be overridden in multiplayer games (by CCHyper/tomsons26) - Add `RequiredAddon` to Theme control types (by CCHyper/tomsons26) - Implement `IntroMovie` for Campaigns (by CCHyper/tomsons26) -- Implements DebugOnly for Campaigns (by CCHyper/tomsons26) +- Implement `DebugOnly` for Campaigns (by CCHyper/tomsons26) +- Implement developer commands for instant superweapon recharge (by CCHyper/tomsons26) +- Add support for PNG images as an alternative to PCX images (by CCHyper/tomsons26) +- Implement option to display the super weapon recharge timer on the tactical view (by CCHyper/tomsons26) +- Implement `CanPassiveAcquire` for TechnoTypes (by CCHyper/tomsons26) +- Implement `CanRetaliate` for TechnoTypes (by CCHyper/tomsons26) +- Add loading of `MPLAYER.INI` and `MPLAYERFS.INI` to override Rules data for multiplayer games (by CCHyper/tomsons26) +- Allow the game's Window title, Cursor and Icon to be overridden (by CCHyper/tomsons26) +- Implement `IdleRate`, `StartIdleFrame` and `IdleFrames` for TechnoTypes (by CCHyper/tomsons26) +- Add loading of `GENERIC.MIX` and `ISOGEN.MIX` mixfiles (by CCHyper/tomsons26) +- The game will no longer fail to start if the startup mix files are not found (by CCHyper/tomsons26) +- Implement support for new custom theater types (by CCHyper/tomsons26) +- Adds loading of `ELOCAL(00-99).MIX` expansion mixfiles (by CCHyper/tomsons26) +- Add Rules INI selection dialog for Developer Mode (by CCHyper/tomsons26) +- Implement the "Build Off Ally" feature from Red Alert 2 (by CCHyper/tomsons26) +- Add background fill behind in-game user typed messages (by CCHyper/tomsons26) +- Implement JumpCamera (North, South, East and West) commands (by CCHyper/tomsons26) +- Implement `EnterTransportSound` and `LeaveTransportSound` for TechnoTypes (by CCHyper/tomsons26) +- Hardcode shroud and fog graphics to circumvent cheating in multiplayer games (by CCHyper/tomsons26) +- Implement `Mechanic` and `OmniHealer` for InfantryTypes. Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) - Fix a bug where VQA files could not be loaded from the root directory or local search paths (by CCHyper/tomsons26) - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself (by CCHyper/tomsons26) - Fixes a bug where the values of `RandomRate` were not stored correctly (by CCHyper/tomsons26) +- Fix a bug where the `FSMENU` theme would incorrectly play instead of the `INTRO` theme when in Tiberian Sun mode after returning to the main menu (by CCHyper/tomsons26) +- Fix a bug where the game would crash when a trigger with the action "Wakeup group..." is executed and the requested Group was not found (by CCHyper/tomsons26) +- Fix a bug where animations with a `DetailLevel` value greater than 2 would not show in-game (by CCHyper/tomsons26) +- Fix a bug where `EngineerDamage` was incorrectly loaded with `EngineerCaptureLevel` (by CCHyper/tomsons26) +- Fix a bug where `EngineerDamage` was not used to calculate the engineer damage (by CCHyper/tomsons26) +- Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building (by CCHyper/tomsons26) +- Fix a bug where air transports are unable to land when given a move order (by CCHyper/tomsons26) Fixes / interactions with TS Patches: - Fixed something (by someone) From 8c321accd4201c2eb685484afac6b2239ff36c48 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 00:40:15 +0300 Subject: [PATCH 09/25] Fix header --- docs/Bugfixes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 7c797d4c1..12b36460e 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -1,8 +1,8 @@ -# Fixed / Improved Logics +# Bugfixes This page lists all vanilla bugs fixed by Vinifera. -## Bugfixes and miscellaneous +## Bugfixes - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively. - Fix a bug where VQA files could not be loaded from the root directory or local search paths. From ab1b304dff784a7e78d5675dd3248633ee482ea4 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 00:41:40 +0300 Subject: [PATCH 10/25] Try to fix spoiler --- docs/New-Features-and-Enhancements.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 69ea4cca1..ba3bc5a34 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -148,9 +148,10 @@ The random map generator does not currently support new theater types. ``` -
Basic `THEATERS.INI` + ```ini ;============================================================================ - ; THEATER.INI + ; THEATERS.INI ; ; This control file specifies the theater types that are in the game. ; @@ -220,8 +221,9 @@ The random map generator does not currently support new theater types. ```
- -
+-
Sample new theater + ```ini [TheaterTypes] 3=DESERT From 34991d48c79279bb4771699fdae06443d8f6a9d8 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 02:15:19 +0300 Subject: [PATCH 11/25] 60% --- CREDITS.md | 22 ++++++ docs/Bugfixes.md | 4 + docs/Mapping.md | 1 + docs/Miscellanous.md | 83 +++++++++++++++++--- docs/New-Features-and-Enhancements.md | 109 +++++++++++++++++++++++++- docs/User-Interface.md | 45 +++++++++-- docs/Whats-New.md | 27 ++++++- 7 files changed, 266 insertions(+), 25 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 7def52343..f79434aaa 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -47,6 +47,28 @@ This page lists all the individual contributions to the project by their author. - Fix a bug where air transports are unable to land when given a move order. - Hardcode shroud and fog graphics to circumvent cheating in multiplayer games. - Implement `Mechanic` and `OmniHealer` for InfantryTypes. + - Add support for 8-bit PCX and PNG cameos. + - Implement `Soylent` for TechnoTypes. + - Implement `SpawnDelay` for BulletTypes. + - Implements `Suicide` and `DeleteOnSuicide` for WeaponTypes. + - Implement`VoiceHarvest`, `VoiceDeploy`, `VoiceEnter`, and `VoiceCapture` for TechnoTypes. + - Implement various Red Alert 2 AnimType features. + - Add game options to allow MCV's to auto-deploy on game start and to pre-place construction yards instead of spawning an MCV. + - Add developer commands for placing and removing Tiberium from a cell. + - Implement Electric Bolts for WeaponTypes. + - Fix the position of the health bar graphic on unit selection boxes. + - Make the position of the health bar graphic on unit selection boxes customizable. + - Output screenshots to their own sub-directory. + - Echo the user's sent messages back to them as confirmation they were sent. + - Reimplement the command line argument `-CD` from Red Alert to allow file search path override logic. + - Allow the score screen to be skipped at the end of a multiplayer game. + - Add warning notification if a NULL house instance is detected during the game loading screen. + - Implement light sources for TerrainTypes. + - Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found. + - Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined. + - Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. + - Add command line options to skip to specific game modes and to skip startup movies. + - Implement diagonal scroll commands. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 12b36460e..17fd6f1d0 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -15,3 +15,7 @@ This page lists all vanilla bugs fixed by Vinifera. - Fix a bug where `EngineerDamage` was not used to calculate the engineer damage. - Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building. - Fix a bug where air transports are unable to land when given a move order. +- Fix the position of the health bar graphic on unit selection boxes. +- Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found. +- Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined. +- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. Now, all HouseTypes with `Multiplay=yes` will be considered. \ No newline at end of file diff --git a/docs/Mapping.md b/docs/Mapping.md index 0aa567915..61e510b03 100644 --- a/docs/Mapping.md +++ b/docs/Mapping.md @@ -7,6 +7,7 @@ This page describes all mapping-related additions and changes introduced by Vini - The game now supports reading and using up to 32767 waypoints in scenarios. - Tutorial messages are now loaded from scenarios. This can be used to replace/update an existing entry from `TUTORIAL.INI`, or to add a new tutorial message index which can be used by trigger actions. - Remove a hardcoded limitation where the remap color of `Neutral` and `Special` could not be overridden in multiplayer games. Due to the inconsistencies between the official maps, values of `Grey` and `LightGrey` will be forced to `LightGrey`. +- `[Basic]->SkipScore` is now considered when showing the multiplayer score screen. Setting to `SkipScore=yes` in the map file will now be all that is required for skip the score screen. ## Campaign Settings diff --git a/docs/Miscellanous.md b/docs/Miscellanous.md index f91bd35ef..d3a6f85fc 100644 --- a/docs/Miscellanous.md +++ b/docs/Miscellanous.md @@ -3,6 +3,20 @@ This page describes every change in Vinifera that wasn't categorized into a proper category yet. - Vinifera hardcodes the shroud and fog graphics to circumvent cheating in multiplayer games. +- Vinifera redirects saved screenshots using the keyboard command to a new sub-directory in the games folders, `Screenshots`. + +## MCV Auto-deploy + +- Vinifera allow you to start the game with the MCV deployed, or have the MCV auto-deploy on start. + +In `RULES.INI`: +```ini +[MultiplayerDefaults] +AutoDeployMCV= ; Player MCV's will auto-deploy on game start. (Defaults to no). + ; NOTE: This option only has an effect if the unit count is set to 1. +PrePlacedConYards= ; Pre-place construction yards instead of spawning an MCV. (Defaults to no). + ; NOTE: This option has priority over AutoDeployMCV. +``` ## Multi-Engineer @@ -16,18 +30,14 @@ EngineerCaptureLevel= ; If the building’s health is equal to or below ``` ```{warning} Upon observing the values used in `FIRESTRM.INI`, this could potentially cause an issue with the vanilla game. `FIRESTRM.INI` has the values `EngineerCaptureLevel=1.0` and `EngineerDamage=0.0`. Below are some values to help test these bug fixes and their potential impact on the vanilla game. -``` Red Alert Default values: -```ini -EngineerDamage=0.33 -EngineerCaptureLevel=0.25 -``` +`EngineerDamage=0.33` +`EngineerCaptureLevel=0.25` Red Alert Multiplayer (MPLAYER.INI) values: -```ini -EngineerDamage=0.33 -EngineerCaptureLevel=0.66 +`EngineerDamage=0.33` +`EngineerCaptureLevel=0.66` ``` ## Build off Ally @@ -63,11 +73,17 @@ CursorFile= ; The name of the cursor file (including the .CUR extension The filenames also support subdirectories. ``` -## MIX +## File System - `GENERIC.MIX` and `ISOGEN.MIX` mixfiles can now be used to place common assets between theaters. - The game now loads `ELOCAL(00-99).MIX` expansion mixfiles. These can be used to override files normally found in `LOCAL.MIX`. +- Vinifera reimplements the file search path override logic of `-CD` from Red Alert. This effectively allows the end-user to copy the CD contents to the game directory and run the game without any CD required to be inserted. +The argument supports multiple entries separated by the `;` character. Below are some examples: +`-CD.` - Sets the games root directory as the location to search for the CD contents. +`-CDcd_path` - Sets the `cd_path` sub-directory as the location to search for the CD contents. +`-CDcd1;cd2;cd3` - Sets the sub-directories `cd1`, `cd2`, and `cd3` as the search locations for the CD contents. + ## Developer Features - The game will no longer fail to start if the startup mix files are not found. @@ -79,9 +95,9 @@ It is not recommended that you modify or remove any of the original mix files, t - Vinifera re-enables a feature from Tiberian Sun's development which allows you to select the Rules file if multiple are found in the game directory. -At startup, the game will scan for files in the root directory with the format **`RULE*.INI`**, with `*` being a wildcard for any character or string (for example, `RULE_VERSION1.INI` or `RULE_TEST_WEAPON.INI`). While it has no impact on the loading, it is advised to use the format `RULE_*.INI` to help with file sorting in Windows Explorer. +- At startup, the game will scan for files in the root directory with the format **`RULE*.INI`**, with `*` being a wildcard for any character or string (for example, `RULE_VERSION1.INI` or `RULE_TEST_WEAPON.INI`). While it has no impact on the loading, it is advised to use the format `RULE_*.INI` to help with file sorting in Windows Explorer. -The name shown in the dialog is the value of the `Name=` _(with a limit of 128 characters)_ entry under `[General]` in the Rule INI. If the user presses Cancel on the dialog, the game will load the standard `RULES.INI` file. +- The name shown in the dialog is the value of the `Name=` _(with a limit of 128 characters)_ entry under `[General]` in the Rule INI. If the user presses Cancel on the dialog, the game will load the standard `RULES.INI` file. ```{note} Due to the nature of its use, this feature is only available when Vinifera is running in Developer Mode @@ -89,6 +105,43 @@ Due to the nature of its use, this feature is only available when Vinifera is ru ![image](https://user-images.githubusercontent.com/73803386/137135038-0a1e983f-d295-4723-86fb-1ab94ba8948b.png) +### NULL house warning + +- Vinifera adds a warning to the debug log output when a null house pointer is detected during the game loading screen. +- Also, if the user has Developer Mode enabled, then a dialog will be shown to notify the user of the offending objects name. + +![image](https://user-images.githubusercontent.com/73803386/129727642-8e929cc7-1b1c-4231-be44-abe4312ea265.png) + +### Command Line Options + +- Vinifera adds a number of command-line arguments allowing the user to skip the startup movies, or skip directly to a specific game mode and/or dialog. + +- `-NO_STARTUP_VIDEO` +Skips all startup movies. + +- `-SKIP_TO_TS_MENU` +Loads the game directly into the Tiberian Sun main menu (also skips startup movies). + +- `-SKIP_TO_FS_MENU` +Loads the game directly into the Firestorm main menu (also skips startup movies). This option has priority over the TS main menu argument. + +The following options will be affected by the choice of menu you skip to, otherwise, they default to the Tiberian Sun game mode. + +- `-SKIP_TO_LAN` +Loads the game directly into the LAN dialog. + +- `-SKIP_TO_CAMPAIGN` +Loads the game directly into the Campaign dialog. + +- `-SKIP_TO_SKIRMISH` +Loads the game directly into the Skirmish dialog. + +- `-SKIP_TO_INTERNET` +Loads the game directly into the Internet dialog. + +- `-EXIT_AFTER_SKIP` +This option tells the game to exit when you press Cancel or Back from the dialog you skipped to. + ### Developer Commands #### `[ ]` Instant Special Recharge (Player) @@ -99,6 +152,14 @@ Due to the nature of its use, this feature is only available when Vinifera is ru - Toggles the instant recharge cheat for the AI player superweapons. +#### `[ ]` Place Tiberium + +- Places Tiberium in a cell. + +#### `[ ]` Reduce Tiberium + +- TRemoves Tiberium from a cell. + ## INI - Add loading of `MPLAYER.INI` and `MPLAYERFS.INI` (Firestorm only) to override Rules data for multiplayer games (including Skirmish). Data contained in these INI's will not be loaded for the campaign and World Domination Tour games. \ No newline at end of file diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index ba3bc5a34..5f40190a5 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -26,6 +26,24 @@ ReloadRate= ; The rate that this aircraft will reload its ammo ## Animations +### Various keys ported from Red Alert 2 + +- Vinifera implements various AnimType keys from Red Alert 2. + +In `ART.INI`: +```ini +[AnimType] +HideIfNoTiberium= ; Should this animation be hidden if the holding cell does not contain Tiberium? Defaults to no. +ForceBigCraters= ; Are the craters spawned by this animation when it ends much larger than normal? Defaults to no. +ZAdjust= ; Fudge to this animations Z-axis (depth). Positive values move the animation "away from the screen"/"closer to the ground", negative values do the opposite. Defaults to 0. +Layer= ; The map layer this animation is in when attached to an object. Defaults to . + ;Available Options: underground, surface, ground, air, and top. + ;NOTE: This will override the value of Surface= which forces a layer of ground. +SpawnsParticle= ; The particle to spawn at the mid-point of this animation. Defaults to . + ; This accepts any entry from the [Particles] list from RULES.INI. +NumParticles= ; The number of particles to spawn (as defined by SpawnsParticle=). Defaults to 0. +``` + ## Buildings ## Crates @@ -68,6 +86,16 @@ When an infantry with `Mechanic=yes` and `OmniHealer=yes` is selected and the mo ## Projectiles +### SpawnDelay + +- Vinifera adds the `SpawnDelay` key from Red Alert 2. + +In `RULES.INI`: +```ini +[BulletType] +SpawnDelay= ; The number of frames between each of the spawned trailer animations. Defaults to 3. +``` + ## Super Weapons ## Technos @@ -129,7 +157,7 @@ IdleFrames= ; The number of image frames for each of the idle ### EnterTransportSound/LeaveTransportSound -- Vinifera implements EnterTransportSound and LeaveTransportSound from Red Alert 2 for TechnoTypes. +- Vinifera implements `EnterTransportSound` and `LeaveTransportSound` from Red Alert 2 for TechnoTypes. In `RULES.INI`: ```ini @@ -138,8 +166,46 @@ EnterTransportSound= ; The sound effect to play when a passenger enter LeaveTransportSound= ; The sound effect to play when a passenger leaves this unit. Defaults to . ``` +### Soylent + +- Vinifera adds the `Soylent` key from Red Alert 2. + +In `RULES.INI`: +```ini +[TechnoType] +Soylent= ; The refund value for the unit when it is sold at a Service Depot, or a building when sold by the player. Defaults to 0 (uses normal refund amount logic). +``` + +### New Voice Responses + +- Vinifera implements various TechnoTypes keys from Red Alert 2 for adding new voice responses. + +In `RULES.INI`: +```ini +[TechnoType] +VoiceCapture= ; List of voices to use when giving this object a capture order. Defaults to . +VoiceEnter= ; List of voices to use when giving this object an enter order (ie, transport, infiltrate building). Defaults to . +VoiceDeploy= ; List of voices to use when giving this object a unload order. Defaults to . +VoiceHarvest= ; List of voices to use when giving this object a harvest order. Defaults to . +``` + ## Terrain +### Light Sources + +- Vinifera implements light sources for TerrainTypes. + +In `RULES.INI`: +```ini +[TerrainType] +IsLightEnabled= ; Does this terrain object emit light? (default false). +LightVisibility= ; This terrain object radiates this amount of light (default 5000). +LightIntensity= ; The distance that this light is visible from (default 0). +LightRedTint= ; The red tint of this terrain objects light (default 1.0). +LightGreenTint= ; The green tint of this terrain objects light (default 1.0). +LightBlueTint= ; The blue tint of this terrain objects light (default 1.0). +``` + ## Theaters - Vinifera allow the creation of new custom theater types. A new INI has been added to define these TheaterTypes, if the INI is not present, the game will default to the normal `TEMPERATE` and `SNOW` TheaterTypes. @@ -263,4 +329,43 @@ RequiredAddon= ; The addon required to be active for this theme to b ## Warheads -## Weapons \ No newline at end of file +## Weapons + +### Electric Bolts + +- Vinifera implements the Electric Bolt (aka. "Tesla Bolts") weapon effect from Red Alert 2, with additional controls. + +In `RULES.INI`: +```ini +[WeaponType] +IsElectricBolt= ; Is this weapon an electric bolt? This is required to enable the drawing feature. Defaults to no. + ; Electric bolts are made up of 3 lines, these values define the colours for each of the lines. +EBoltColor1= ; Defaults to 255,255,255. +EBoltColor2= ; Defaults to 82,81,255. +EBoltColor3= ; Defaults to 82,81,255. +EBoltSegmentCount= ; How many segment blocks should the electric bolt be made up from. A larger number will give a more "wild" effect. Defaults to 8. +EBoltLifetime= ; The lifetime of the electric bolt graphic in game frames. Defaults to 17. +EBoltIterations= ; How many draw iterations should the system perform? Defaults to 1. +EBoltDeviation= ; The maximum deviation from a straight line the electric bolts can be. A value of 0.0 will draw straight lines. Defaults to 1.0. +``` + +```{warning} +Electric bolts are currently known to potentially cause issues on save/load. +``` + +![GIF 08-09-2021 19-17-13](https://user-images.githubusercontent.com/73803386/132563132-7ebb771f-8acf-4ee2-ba4b-8dfa8a01de8f.gif) + +### Suicide + +- Vinifera adds the `Suicide` key or WeaponTypes from Red Alert 2, and adds an additional control `DeleteOnSuicide` for alternative behaviour. + +In `RULES.INI`: +```ini +[WeaponType] +Suicide= ; Will the firing unit commit suicide when this weapon is fired? Defaults to no. +DeleteOnSuicide= ; Logical option for Suicide=yes which will instantly remove the unit from the game world instead of dealing full damage. Defaults to no. +``` + +```{note} +`DeleteOnSuicide=yes` mimicks Red Alert 2 behavior. +``` \ No newline at end of file diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 852ca7e89..7d98f8760 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -2,14 +2,9 @@ This page lists all user interface additions, changes, fixes that are implemented in Vinifera. -## Bugfixes and miscellanous +## Miscellanous -- PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. -```{note} -This system only supports 8-bit PNG. All other formats such as Greyscale, Paletted, Alpha and 16-bit are not supported. -``` -Attached is a set of the original loading screens with a minor edit and saved as PNG for testing; -[PNG_Loading_Screens.zip](https://github.com/Vinifera-Developers/Vinifera/files/7392707/PNG_Loading_Screens.zip) +- Vinifera adds support for 8-bit (paletted and non-paletted) PCX and 8-bit PNG cameos. This system auto-detects and prioritises the PNG or PCX file if found, no additional settings are required. ## Audio @@ -17,7 +12,7 @@ Attached is a set of the original loading screens with a minor edit and saved as ### `[ ]` Toggle Special Timers -- Toggles the visibility of Super Weapon timers. +- Toggles the visibility of Super Weapon timers. Defaults to ``. ### `[ ]` Jump Camera West @@ -35,8 +30,31 @@ Attached is a set of the original loading screens with a minor edit and saved as - Jump the tactical map camera to the north edge of the map. Defaults to `Ctrl` + `Down Arrow`. +### `[ ]` Scroll North-East + +- Scroll the camera North-East. Defaults to ``. + +### `[ ]` Scroll South-East + +- Scroll the camera South-East. Defaults to ``. + +### `[ ]` Scroll South-West + +- Scroll the camera South-West. Defaults to ``. + +### `[ ]` Scroll North-West + +- Scroll the camera North-West. Defaults to ``. + ## Loading screen +- PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. +```{note} +This system only supports 8-bit PNG. All other formats such as Greyscale, Paletted, Alpha and 16-bit are not supported. +``` +Attached is a set of the original loading screens with a minor edit and saved as PNG for testing; +[PNG_Loading_Screens.zip](https://github.com/Vinifera-Developers/Vinifera/files/7392707/PNG_Loading_Screens.zip) + ## Sidebar / Battle UI - Super Weapon timers, similar to those found in Red Alert 2, can now be displayed on the tactical view. This is disabled by default and each relevant SuperWeaponType must have it enabled. Superweapons that are offline due to low power or are disabled via other purposes will not show. @@ -47,8 +65,10 @@ ShowTimer= ; When this superweapon is active, does its recharge timer ``` - Vinifera adds a background behind the user typed messages that appear in-game to provide better readability. +- Additionally, Vinifera implements the system to echo the user's sent messages back to them in-game as a confirmation they were sent. This is an enhancement from Red Alert 2. ![image](https://user-images.githubusercontent.com/73803386/137031682-3f265d48-7f28-410f-bf0d-3260e24f1748.png) + In `UI.INI`: ```ini [Ingame] @@ -56,6 +76,15 @@ TextLabelOutline= ; Should the text be drawn with a black outline? Def TextLabelBackgroundTransparency= ; The transparency of the text background fill. Ranged between 0 and 100. Defaults to 50. ``` +- Vinifera allows customizing the position of the heath bar. + +In `UI.INI`: +```ini +[Ingame] +UnitHealthBarPos= ; The draw position of the unit health bar (Defaults to -25,-16) +InfantryHealthBarPos= ; The draw position of the infantry health bar (Defaults to -24,-5) +``` + ## Tooltips ## Miscellanous diff --git a/docs/Whats-New.md b/docs/Whats-New.md index b1e64e0eb..841dc130a 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -69,7 +69,28 @@ New: - Implement JumpCamera (North, South, East and West) commands (by CCHyper/tomsons26) - Implement `EnterTransportSound` and `LeaveTransportSound` for TechnoTypes (by CCHyper/tomsons26) - Hardcode shroud and fog graphics to circumvent cheating in multiplayer games (by CCHyper/tomsons26) -- Implement `Mechanic` and `OmniHealer` for InfantryTypes. +- Implement `Mechanic` and `OmniHealer` for InfantryTypes (by CCHyper/tomsons26) +- Add support for 8-bit PCX and PNG cameos (by CCHyper/tomsons26) +- Implement `Soylent` for TechnoTypes (by CCHyper/tomsons26) +- Implement `SpawnDelay` for BulletTypes (by CCHyper/tomsons26) +- Implement `Suicide` and `DeleteOnSuicide` for WeaponTypes (by CCHyper/tomsons26) +- Implement `VoiceHarvest`, `VoiceDeploy`, `VoiceEnter`, and `VoiceCapture` for TechnoTypes (by CCHyper/tomsons26) +- Implement various Red Alert 2 AnimType features (by CCHyper/tomsons26) +- Add game options to allow MCV's to auto-deploy on game start and to pre-place construction yards instead of spawning an MCV (by CCHyper/tomsons26) +- Add developer commands for placing and removing Tiberium from a cell (by CCHyper/tomsons26) +- Implement Electric Bolts for WeaponTypes (by CCHyper/tomsons26) +- Make the position of the health bar graphic on unit selection boxes customizable (by CCHyper/tomsons26) +- Output screenshots to their own sub-directory (by CCHyper/tomsons26) +- Echo the user's sent messages back to them as confirmation they were sent (by CCHyper/tomsons26) +- Reimplement the command line argument `-CD` from Red Alert to allow file search path override logic (by CCHyper/tomsons26) +- Allow the score screen to be skipped at the end of a multiplayer game (by CCHyper/tomsons26) +- Add warning notification if a NULL house instance is detected during the game loading screen (by CCHyper/tomsons26) +- Implement light sources for TerrainTypes (by CCHyper/tomsons26) +- Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found (by CCHyper/tomsons26) +- Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined (by CCHyper/tomsons26) +- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players (by CCHyper/tomsons26) +- Add command line options to skip to specific game modes and to skip startup movies (by CCHyper/tomsons26) +- Implement diagonal scroll commands (by CCHyper/tomsons26) Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) @@ -83,9 +104,7 @@ Vanilla fixes: - Fix a bug where `EngineerDamage` was not used to calculate the engineer damage (by CCHyper/tomsons26) - Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building (by CCHyper/tomsons26) - Fix a bug where air transports are unable to land when given a move order (by CCHyper/tomsons26) - -Fixes / interactions with TS Patches: -- Fixed something (by someone) +- Fix the position of the health bar graphic on unit selection boxes (by CCHyper/tomsons26)
From 30bdb2aad15d371c705711e9ebc2cc26be680e2b Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 02:25:11 +0300 Subject: [PATCH 12/25] 12345 --- CREDITS.md | 4 +++ docs/Bugfixes.md | 3 ++- docs/New-Features-and-Enhancements.md | 36 +++++++++++++++++++++++++++ docs/User-Interface.md | 8 ++++++ docs/Whats-New.md | 10 +++++--- 5 files changed, 57 insertions(+), 4 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index f79434aaa..27683ace3 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -69,6 +69,10 @@ This page lists all the individual contributions to the project by their author. - Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. - Add command line options to skip to specific game modes and to skip startup movies. - Implement diagonal scroll commands. + - Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes. + - Add keyboard commands for playing previous and next music tracks in the jukebox. + - Implement CloakSound and UncloakSound for TechnoTypes. + - Restore the screen shake when a strong unit or building is destroyed. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 17fd6f1d0..7a44b8484 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -18,4 +18,5 @@ This page lists all vanilla bugs fixed by Vinifera. - Fix the position of the health bar graphic on unit selection boxes. - Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found. - Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined. -- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. Now, all HouseTypes with `Multiplay=yes` will be considered. \ No newline at end of file +- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. Now, all HouseTypes with `Multiplay=yes` will be considered. +- Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes. \ No newline at end of file diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 5f40190a5..5991b9949 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -189,6 +189,42 @@ VoiceDeploy= ; List of voices to use when giving this object a un VoiceHarvest= ; List of voices to use when giving this object a harvest order. Defaults to . ``` +### Customizable Cloaking Sounds + +- Vinifera implements Cloaking and Uncloaking sound overrides to TechnoTypes. + +In `RULES.INI`: +```ini +[TechnoType] +CloakSound= ; The sound effect to play when the object is cloaking. Defaults to [AudioVisual]->CloakSound. +UncloakSound= ; The sound effect to play when the object is decloaking. Defaults to [AudioVisual]->CloakSound. +``` + +### Screen Shake on Destruction + +- Vinifera restores the screen shake when a strong unit or building is destroyed. In addition to this, it also implements new options to control the amount the screen moves. + +In `RULES.INI`: +```ini +[TechnoType] +CanShakeScreen= ; Can this unit or building cause the screen to shake the screen when it dies? Defaults to no. +``` + +```{note} +The object must meet the rules as specified by `[AudioVisual]->ShakeScreen`. +``` + +- Shake Screen Controls +These values are used to shake the screen when the unit or building is destroyed. All of these values default to 0 and do not support negative values. +In `RULES.INI`: +```ini +[TechnoType] +ShakeYhi= ; The maximum pixel Y value. +ShakeYlo= ; The minimum pixel Y value. +ShakeXhi= ; The maximum pixel X value. +ShakeXlo= ; The minimum pixel X value. +``` + ## Terrain ### Light Sources diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 7d98f8760..6f0d057cf 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -46,6 +46,14 @@ This page lists all user interface additions, changes, fixes that are implemente - Scroll the camera North-West. Defaults to ``. +### `[ ]` Previous Track + +- Plays the previous music track. Defaults to `[`. + +### `[ ]` Next Track + +- Plays the next music track. Defaults to `]`. + ## Loading screen - PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 841dc130a..8267ed0b3 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -86,11 +86,11 @@ New: - Allow the score screen to be skipped at the end of a multiplayer game (by CCHyper/tomsons26) - Add warning notification if a NULL house instance is detected during the game loading screen (by CCHyper/tomsons26) - Implement light sources for TerrainTypes (by CCHyper/tomsons26) -- Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found (by CCHyper/tomsons26) -- Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined (by CCHyper/tomsons26) -- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players (by CCHyper/tomsons26) - Add command line options to skip to specific game modes and to skip startup movies (by CCHyper/tomsons26) - Implement diagonal scroll commands (by CCHyper/tomsons26) +- Add keyboard commands for playing previous and next music tracks in the jukebox (by CCHyper/tomsons26) +- Implement CloakSound and UncloakSound for TechnoTypes (by CCHyper/tomsons26) +- Restore the screen shake when a strong unit or building is destroyed (by CCHyper/tomsons26) Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) @@ -105,6 +105,10 @@ Vanilla fixes: - Fix a bug where `EngineerCaptureLevel` was not considered when checking the target building (by CCHyper/tomsons26) - Fix a bug where air transports are unable to land when given a move order (by CCHyper/tomsons26) - Fix the position of the health bar graphic on unit selection boxes (by CCHyper/tomsons26) +- Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found (by CCHyper/tomsons26) +- Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined (by CCHyper/tomsons26) +- Fix a limitation where the game could only choose between the first two HouseTypes for the AI players (by CCHyper/tomsons26) +- Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes (by CCHyper/tomsons26)
From 884897951f28ade6e8f7487b4aad733920d7e2fd Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 03:15:02 +0300 Subject: [PATCH 13/25] 80% --- CREDITS.md | 21 +++++++ docs/Bugfixes.md | 10 ++- docs/Miscellanous.md | 23 ++++++- docs/New-Features-and-Enhancements.md | 91 ++++++++++++++++++++++++++- docs/User-Interface.md | 7 +++ docs/Whats-New.md | 21 +++++++ 6 files changed, 169 insertions(+), 4 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 27683ace3..840a9353d 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -73,10 +73,31 @@ This page lists all the individual contributions to the project by their author. - Add keyboard commands for playing previous and next music tracks in the jukebox. - Implement CloakSound and UncloakSound for TechnoTypes. - Restore the screen shake when a strong unit or building is destroyed. + - Implement various Red Alert 2 WarheadType features. + - Add reading of Weapons list from RULES.INI.\ + - Allow WalkRate to be optionally loaded from ART.INI image entries. + - Fix a bug where `CloakStop` had no effect on the cloaking behaviour. + - Add gate rising and lowering sound overrides for buildings. + - Add UnitType flag to prevent a vehicle from being picked up by a Carryall. + - Add support for a custom unloading class when a harvester is unloading at a refinery. + - Implement ToggleAIControlCommandClass. + - Add support for more graphic facings for UnitTypes and various associated items. + - Implement ToggleFrameStepCommandClass. + - Fix a bug where pre-placed crates and crates spawned by a destroyed truck will trigger a respawn when they are picked up. + - Increase the string buffer size from 128 to 2048 characters for when reading and writing Owners from INI. + - Thicken the waypoint and rally point lines and adds stroke/outline to the waypoint number. + - Fix bugs where the Jumpjet uses the wrong animation sequence when firing and in the air. + - Fix a bug where the wrong palette is used to draw the cameo above an enemy spied factory building. + - Fix the animation speed of Waypoint and Rally Point lines so they are normalised and no longer subjected to the game speed setting. + - Fix a limitation where returning to the Skirmish dialog after a game clamps the chosen side between 0 (GDI) and 1 (Nod). + - Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar. + - Implement hotkey command to enter the manual placement mode. + - Allow harvesters to be considered when executing the "Guard" command. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: - Add `IceStrength` to Rules, and `IceDestructionEnabled` scenario option. + - Add `ImmuneToEMP` to TechnoTypes. - **secsome**: - Add support for up to 32767 waypoints to be used in scenarios. - **ZivDero**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 7a44b8484..8ca2310f6 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -19,4 +19,12 @@ This page lists all vanilla bugs fixed by Vinifera. - Fix a bug where the agme would crash when attempting to generate a random map if the `Neutral` or `Special` HouseTypes are not found. - Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined. - Fix a limitation where the game could only choose between the first two HouseTypes for the AI players. Now, all HouseTypes with `Multiplay=yes` will be considered. -- Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes. \ No newline at end of file +- Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes. +- Fix a bug where `CloakStop` had no effect on the cloaking behaviour. +- Fix a bug where pre-placed crates and crates spawned by a destroyed truck will trigger a respawn when they are picked up. +- Increase the string buffer size from 128 to 2048 characters for when reading and writing Owners from INI. +- Fix bugs where the Jumpjet uses the wrong animation sequence when firing and in the air. +- Fix a bug where the wrong palette is used to draw the cameo above an enemy spied factory building. +- Fix the animation speed of Waypoint and Rally Point lines so they are normalised and no longer subjected to the game speed setting. +- Fix a limitation where returning to the Skirmish dialog after a game clamps the chosen side between 0 (GDI) and 1 (Nod). +- Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar. \ No newline at end of file diff --git a/docs/Miscellanous.md b/docs/Miscellanous.md index d3a6f85fc..c095857e1 100644 --- a/docs/Miscellanous.md +++ b/docs/Miscellanous.md @@ -4,6 +4,7 @@ This page describes every change in Vinifera that wasn't categorized into a prop - Vinifera hardcodes the shroud and fog graphics to circumvent cheating in multiplayer games. - Vinifera redirects saved screenshots using the keyboard command to a new sub-directory in the games folders, `Screenshots`. +- Harvesters are now considered when executing the "Guard" command. They have a special case when assigned with the Guard mission that tells them to find the nearest Tiberium patch and begin harvesting. ## MCV Auto-deploy @@ -158,7 +159,27 @@ This option tells the game to exit when you press Cancel or Back from the dialog #### `[ ]` Reduce Tiberium -- TRemoves Tiberium from a cell. +- Removes Tiberium from a cell. + +#### `[ ]` Toggle AI Control + +- Allows the user the toggle the player house between full control and automated AI control. + +#### `[ ]` Toggle Frame Step + +- Allows the user to pause the game and to step frame-by-frame. + +#### `[ ]` Step 1 Frame + +- Steps the game 1 frame forward. + +#### `[ ]` Step 5 Frame + +- Steps the game 5 frames forward. + +#### `[ ]` Step 10 Frame + +- Steps the game 10 frames forward. ## INI diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 5991b9949..5cc249ff4 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -26,7 +26,7 @@ ReloadRate= ; The rate that this aircraft will reload its ammo ## Animations -### Various keys ported from Red Alert 2 +### Various Keys Ported from Red Alert 2 - Vinifera implements various AnimType keys from Red Alert 2. @@ -46,6 +46,17 @@ NumParticles= ; The number of particles to spawn (as defined by Spawns ## Buildings +### Gate Sounds + +- Vinifera implements overrides for the gate rising and lowering sounds on BuildingTypes. + +In `RULES.INI`: +```ini +[BuildingType] +GateUpSound= ; Sound effect to play when the gate is rising. +GateDownSound= ; Sound effect to play when the gate is lowering. +``` + ## Crates ## Ice @@ -225,6 +236,20 @@ ShakeXhi= ; The maximum pixel X value. ShakeXlo= ; The minimum pixel X value. ``` +### WalkRate + +- Vinifera allows `WalkRate` to be optionally loaded from ART.INI image entries, overriding any value defined in RULES.INI. + +### ImmuneToEMP + +- Vinifera allows specific TEchnoTypes to be immune to EMP effects. + +In `RULES.INI`: +```ini +[TechnoType] +ImmuneToEMP= ; Is this Techno immune to EMP effects? Defaults to false. +``` + ## Terrain ### Light Sources @@ -363,8 +388,70 @@ RequiredAddon= ; The addon required to be active for this theme to b ## Vehicles +### Totable + +- Vinifera adds a new flag which can prevent a vehicle from being picked up by a Carryall. + +In `RULES.INI`: +```ini +[UnitType] +Totable= ; Can this unit be picked up by a Carryall? Defaults to yes. +``` + +### UnloadingClass + +- Vinifera adds support for a custom unloading class when a harvester is unloading at a refinery. In addition to this working for regular harvesters, this will now work on harvesters with `Weeder=yes` for when they dock at a building that has `Weeder=yes`. + +In `RULES.INI`: +```ini +[UnitType] +UnloadingClass= ; UnitType whose image will be used when this harvester is docked. Defaults to [AudioVisual]->UnloadingClass +``` + +### More Graphic Facings + +- The engine now supports 16, 32 and 64 graphic facings for UnitTypes. + +In `RULES.INI`: +```ini +[UnitType] +StartTurretFrame= ; The starting turret frame index, allowing them to be adjusted manually if required. Defaults to -1 (not used). +TurretFacings= ; The turret facing count. Defaults to 32. +``` + +- Additionally, the `Anim=` INI key for WeaponTypes will now read the number of entries that matches the firing objects Facings= entry. +- Because of the new extended facing support, it was observed that the buffer size was too small and has now been increased to allow a larger entry to accommodate a larger facing count. + ## Warheads +### `[Weapons]` Section + +- Vinifera implements the reading of a new `RULES.INI` section, `[Weapons]`, to allow the definition of WeaponTypes. +This is to fix the issue known as the "Weed Guy" hack, and ensure all weapons are allocated in the WeaponsType heaps before any weapon lookup or loading is performed. + +### Various Keys Ported from Red Alert 2 + +- Vinifera implements various WarheadType keys from Red Alert 2. + +In `RULES.INI`: +```ini +[WarheadType] +WallAbsoluteDestroyer= ; Does this warhead instantly destroy walls regardless of the warhead damage value? Defaults to no. +AffectsAllies= ; Can this warhead damage friendly units? Defaults to yes. +CombatLightSize= ; This is used to override the size of the combat light flash at the point of impact for Warheads with Bright=yes set (Bright=yes must also be set on the Weapon using this warhead). Defaults to 0.0. Ranges between 0.0 (uses the default behaviour seen with Bright=yes) and 1.0 (full size). +``` + +- Shake Screen Controls +These values are used to shake the screen when the projectile impacts. All of these values default to 0 and do not support negative values. +In `RULES.INI`: +```ini +[WarheadType] +ShakeXhi= ; Maxiumum Y pixel movement. +ShakeXlo= ; Minimum Y pixel movement. +ShakeXhi= ; Maxiumum X pixel movement. +ShakeXlo= ; Minimum X pixel movement. +``` + ## Weapons ### Electric Bolts @@ -403,5 +490,5 @@ DeleteOnSuicide= ; Logical option for Suicide=yes which will instantly ``` ```{note} -`DeleteOnSuicide=yes` mimicks Red Alert 2 behavior. +`DeleteOnSuicide=yes` mimics Red Alert 2 behavior. ``` \ No newline at end of file diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 6f0d057cf..044cea1f3 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -5,11 +5,16 @@ This page lists all user interface additions, changes, fixes that are implemente ## Miscellanous - Vinifera adds support for 8-bit (paletted and non-paletted) PCX and 8-bit PNG cameos. This system auto-detects and prioritises the PNG or PCX file if found, no additional settings are required. +- Vinifera thickens the waypoint and rally point lines and adds stroke/outline to the waypoint number. ## Audio ## Hotkey Commands +### `[ ]` Place Building + +- Enters the manual placement mode when a building is complete and pending on the sidebar. Defaults to `Z`. + ### `[ ]` Toggle Special Timers - Toggles the visibility of Super Weapon timers. Defaults to ``. @@ -54,6 +59,8 @@ This page lists all user interface additions, changes, fixes that are implemente - Plays the next music track. Defaults to `]`. +![image](https://user-images.githubusercontent.com/73803386/123566309-4ade4600-d7b7-11eb-9b77-5c9de7959822.png) + ## Loading screen - PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 8267ed0b3..72d151d58 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -91,6 +91,19 @@ New: - Add keyboard commands for playing previous and next music tracks in the jukebox (by CCHyper/tomsons26) - Implement CloakSound and UncloakSound for TechnoTypes (by CCHyper/tomsons26) - Restore the screen shake when a strong unit or building is destroyed (by CCHyper/tomsons26) +- Implement various Red Alert 2 WarheadType features (by CCHyper/tomsons26) +- Add reading of Weapons list from RULES.INI (by CCHyper/tomsons26) +- Allow WalkRate to be optionally loaded from ART.INI image entries (by CCHyper/tomsons26) +- Add gate rising and lowering sound overrides for buildings (by CCHyper/tomsons26) +- Add UnitType flag to prevent a vehicle from being picked up by a Carryall (by CCHyper/tomsons26) +- Add support for a custom unloading class when a harvester is unloading at a refinery (by CCHyper/tomsons26) +- Implement ToggleAIControlCommandClass (by CCHyper/tomsons26) +- Add support for more graphic facings for UnitTypes and various associated items (by CCHyper/tomsons26) +- Add `ImmuneToEMP` to TechnoTypes (by Rampastring) +- Implement ToggleFrameStepCommandClass (by CCHyper/tomsons26) +- Thicken the waypoint and rally point lines and adds stroke/outline to the waypoint number (by CCHyper/tomsons26) +- Implement hotkey command to enter the manual placement mode (by CCHyper/tomsons26) +- Allow harvesters to be considered when executing the "Guard" command (by CCHyper/tomsons26) Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) @@ -109,6 +122,14 @@ Vanilla fixes: - Fix a bug where the agme would crash when attempting to generate a random map if there are fewer than 4 HouseTypes defined (by CCHyper/tomsons26) - Fix a limitation where the game could only choose between the first two HouseTypes for the AI players (by CCHyper/tomsons26) - Fix a bug where the `Cloakable=yes` had no effect on AircraftTypes (by CCHyper/tomsons26) +- Fix a bug where `CloakStop` had no effect on the cloaking behaviour (by CCHyper/tomsons26) +- Fix a bug where pre-placed crates and crates spawned by a destroyed truck will trigger a respawn when they are picked up (by CCHyper/tomsons26) +- Increase the string buffer size from 128 to 2048 characters for when reading and writing Owners from INI (by CCHyper/tomsons26) +- Fix bugs where the Jumpjet uses the wrong animation sequence when firing and in the air (by CCHyper/tomsons26) +- Fix a bug where the wrong palette is used to draw the cameo above an enemy spied factory building (by CCHyper/tomsons26) +- Fix the animation speed of Waypoint and Rally Point lines so they are normalised and no longer subjected to the game speed setting (by CCHyper/tomsons26) +- Fix a limitation where returning to the Skirmish dialog after a game clamps the chosen side between 0 (GDI) and 1 (Nod) (by CCHyper/tomsons26) +- Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar (by CCHyper/tomsons26) From 0a847826566cc5895972452b37d50827532b7fa8 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 03:45:08 +0300 Subject: [PATCH 14/25] 100% --- CREDITS.md | 24 +++++ docs/Bugfixes.md | 16 ++- docs/Miscellanous.md | 144 +++++++++++++++++++++++++- docs/New-Features-and-Enhancements.md | 20 ++++ docs/User-Interface.md | 9 ++ docs/Whats-New.md | 24 +++++ 6 files changed, 235 insertions(+), 2 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 840a9353d..24d631f22 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -93,6 +93,30 @@ This page lists all the individual contributions to the project by their author. - Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar. - Implement hotkey command to enter the manual placement mode. - Allow harvesters to be considered when executing the "Guard" command. + - Fix division by zero crashes when ShakeScreen is set to 0. + - Increase the IsoMapPack5 buffer size when decoding a map. + - Fix a bug where looping animations incorrectly use the unsynchronized RNG. + - Fix a bug where `IsTrainable` is not checked when an object picks up a veteracy crate. + - Harvesters now auto harvest when built from the war factory. + - Patch to allow Skirmish games to be started with no AI house(s). + - Fix a bug where `IsInsignificant` was not checked when a unit dies. + - Implement the Produce Cash logic for BuildingTypes. + - Fix the incorrect (RA legacy) cell calculation for the "move to cell" team script. + - Fix a bug where the sidebar mouse wheel scrolling "error" sound can be heard at the main menu. + - Fix a bug with TriggerTypes not setting difficulty flags correctly when reading from INI. + - Fix a bug with triggers enabled via other triggers ignoring difficulty settings. + - Fix MultiMission `MaxPlayers` incorrectly loaded with `MinPlayers`. + - Fix to maintain aspect ratio when scaling movies/videos. + - Fix incorrect spelling of "Loser" on the multiplayer score screen debug output. + - Fix incorrect stretching of the main menu transition movies. + - Bugfixes and improvements for the Dropship Loadout menu. + - Add various developer mode hotkey commands. + - Add a "Load Game" button to the retry dialog on mission failure. + - Save screenshots as a PNG file instead of PCX file. + - Add support for playing the renamed intro movies from The First Decade and Freeware TS installations. + - Implement the Blowfish algorithm and removes the requirement for BLOWFISH.DLL. + - Allow the game to continue if the side specific mix files are not found. + - Change the default value of AllowHiResModes to true. - **Kerbiter (Metadorius)**: - Initial doc setup - **Rampastring**: diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 8ca2310f6..8ff542168 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -27,4 +27,18 @@ This page lists all vanilla bugs fixed by Vinifera. - Fix a bug where the wrong palette is used to draw the cameo above an enemy spied factory building. - Fix the animation speed of Waypoint and Rally Point lines so they are normalised and no longer subjected to the game speed setting. - Fix a limitation where returning to the Skirmish dialog after a game clamps the chosen side between 0 (GDI) and 1 (Nod). -- Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar. \ No newline at end of file +- Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar. +- Fix division by zero crashes when ShakeScreen is set to 0. +- Increase the IsoMapPack5 buffer size when decoding a map. +- Fix a bug where looping animations incorrectly use the unsynchronized RNG, which would cause the game to randomly crash during online games. +- Fix a bug where `IsTrainable` is not checked when an object picks up a veteracy crate. +- Fix a bug where `IsInsignificant` was not checked when a unit dies. +- Fix the incorrect (RA legacy) cell calculation for the "move to cell" team script. +- Fix a bug where the sidebar mouse wheel scrolling "error" sound can be heard at the main menu. +- Fix a bug with TriggerTypes not setting difficulty flags correctly when reading from INI. +- Fix a bug with triggers enabled via other triggers ignoring difficulty settings. +- Fix MultiMission `MaxPlayers` incorrectly loaded with `MinPlayers`. +- Fix to maintain aspect ratio when scaling movies/videos. +- Fix incorrect spelling of "Loser" on the multiplayer score screen debug output. +- Fix incorrect stretching of the main menu transition movies. +- Fix mouse cursor not being displayed in the Dropship Loadout menu. \ No newline at end of file diff --git a/docs/Miscellanous.md b/docs/Miscellanous.md index c095857e1..f479bc678 100644 --- a/docs/Miscellanous.md +++ b/docs/Miscellanous.md @@ -4,9 +4,17 @@ This page describes every change in Vinifera that wasn't categorized into a prop - Vinifera hardcodes the shroud and fog graphics to circumvent cheating in multiplayer games. - Vinifera redirects saved screenshots using the keyboard command to a new sub-directory in the games folders, `Screenshots`. +- Vinifera allows Skirmish games to be started with no AI house(s). +- Vinifera implements the Blowfish algorithm into the Vinifera DLL itself, removing the requirement for the external BLOWFISH.DLL library. As a result, this allows the game will run without BLOWFISH.DLL registered on the target system or present in the installation directory. The game can still load encrypted mix files to be loaded without any issues. + +## Quality of Life + - Harvesters are now considered when executing the "Guard" command. They have a special case when assigned with the Guard mission that tells them to find the nearest Tiberium patch and begin harvesting. +- Harvesters now auto harvest when built from the war factory. +- Vinifera changes the default value of `IsScoreShuffle` to true. +- Vinifera changes the default value of `AllowHiResModes` to true. -## MCV Auto-deploy +### MCV Auto-deploy - Vinifera allow you to start the game with the MCV deployed, or have the MCV auto-deploy on start. @@ -87,11 +95,17 @@ The argument supports multiple entries separated by the `;` character. Below are ## Developer Features +```{note} +You can enable the developer mode by running Vinifera (LaunchVinifera.exe) with the command line argument `-DEVELOPER`. +``` + - The game will no longer fail to start if the startup mix files are not found. ```{note} It is not recommended that you modify or remove any of the original mix files, this could lead to undefined behaviour and the Vinifera developers will not be able to troubleshoot any issue related to these changes. ``` +- The game will no longer fail if the side specific mix files are not found. + ### Rule Selection - Vinifera re-enables a feature from Tiberian Sun's development which allows you to select the Rules file if multiple are found in the game directory. @@ -181,6 +195,134 @@ This option tells the game to exit when you press Cancel or Back from the dialog - Steps the game 10 frames forward. +#### `[ ]` Build Cheat + +- Unlocks all available build options for the player house. + +#### `[ ]` Toggle Elite + +- Toggle the elite status of the selected objects. + +#### `[ ]` Damage + +- Apply damage to all selected objects. + +#### `[ ]` Spawn All + +- Spawn all buildable units and structures at mouse cursor location. + +#### `[ ]` Delete Object + +- Removes the selected object(s) from the game world. + +#### `[ ]` Map Snapshot + +- Saves a snapshot of the current scenario state. + +#### `[ ]` Ion Storm + +- Toggles the ion storm on/off. + +#### `[ ]` Bail Out + +- Exits the game completely. + +```{note} +`ExplosionCommandClass` and `SuperExplosionCommandClass` are currently disabled due to possible engine bug. +``` + +#### `[ ]` Explosion + +- Spawns an explosion at the mouse cursor location. + +#### `[ ]` Super Explosion + +- Spawns a large explosion at the mouse cursor location. + +#### `[ ]` Ion Blast + +- Fires an ion blast bolt at the current mouse cursor location. + +#### `[ ]` Lightning Bolt + +- Fires a lightning bolt at the current mouse cursor location. + +#### `[ ]` Free Money + +- Hands out free money to the player. + +#### `[ ]` Special Weapons + +- Grants all available special weapons to the player. + +#### `[ ]` Capture Object + +- Take ownership of any selected objects. + +#### `[ ]` Force Win + +- Forces the player to win the current game session. + +#### `[ ]` Force Lose + +- Forces the player to lose the current game session. + +#### `[ ]` Force Die + +- Forces the player to blowup and lose the current game session. + +#### `[ ]` Instant Build + +- Toggles the instant build cheat for the player. + +#### `[ ]` Instant Build (AI) + +- Toggles the instant build cheat for the AI. + +#### `[ ]` Toggle Shroud + +- Toggles the visibility of the map shroud. + +#### `[ ]` Heal + +- Heal the selected objects by 50 hit points. + +#### `[ ]` Toggle Inert + +- Toggles if weapons are inert or not. + +#### `[ ]` Dump AI Base Nodes + +- Dumps all the current AI house base node info to the log output. + +#### `[ ]` Toggle Alliance + +- Toggles alliance with the selected objects house. + +#### `[ ]` Encroach Fog + +- Increase the fog of war by one step (cell). + +#### `[ ]` Encroach Shadow + +- Increase the shroud darkness by one step (cell). + +#### `[ ]` Toggle Berzerk + +- Toggles the berzerk state of the selected infantry. + +#### `[ ]` Place Crate + +- Places a random crate at the mouse location. + +#### `[ ]` Add Power + +- Adds 2000 power units to the player. + +#### `[ ]` Cursor Position + +- Displays cell coordinates of the mouse cursor. + ## INI - Add loading of `MPLAYER.INI` and `MPLAYERFS.INI` (Firestorm only) to override Rules data for multiplayer games (including Skirmish). Data contained in these INI's will not be loaded for the campaign and World Domination Tour games. \ No newline at end of file diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 5cc249ff4..f14a98e83 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -57,6 +57,26 @@ GateUpSound= ; Sound effect to play when the gate is rising. GateDownSound= ; Sound effect to play when the gate is lowering. ``` +### ProduceCash + +- Vinifera implements the Produce Cash logic from Red Alert 2. + +- The system works exactly as it does in Red Alert 2, but with the following differences; + +- Ability to set a total budget available to the building. +- The logic is sensitive to Powered=yes, meaning it will stop when the house has low power. + +In `RULES.INI`: +```ini +[BuildingType] +ProduceCashStartup= ; Credits when captured from a house that has MultiplayPassive=yes set. Defaults to 0. +ProduceCashAmount= ; Amount every give to/take from the house every delay. This value supports negative values which will deduct money from the house which owns this building. Defaults to 0. +ProduceCashDelay= ; Frame delay between amounts. Defaults to 0 (instant). +ProduceCashBudget= ; The total cash budget for this building. Defaults to 0 (infinite budget). +ProduceCashResetOnCapture= ; Reset the buildings available budget when captured. Defaults to false. +ProduceCashStartupOneTime= ; Is the bonus on capture a "one one" special (further captures will not get the bonus)? Defaults to false. +``` + ## Crates ## Ice diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 044cea1f3..6b2f5902c 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -6,6 +6,8 @@ This page lists all user interface additions, changes, fixes that are implemente - Vinifera adds support for 8-bit (paletted and non-paletted) PCX and 8-bit PNG cameos. This system auto-detects and prioritises the PNG or PCX file if found, no additional settings are required. - Vinifera thickens the waypoint and rally point lines and adds stroke/outline to the waypoint number. +- Vinifera adds a "Load Game" button to the retry dialog shown after a failed mission. +- Vinifera changes the game to save screenshots as a PNG file instead of PCX file. In addition to this, it also changes the filename format to be unique. Instead of writing `SCRN[0000-9999].PNG`, the game now writes `SCRN_[date-time].PNG` (example, `SCRN_02-06-2021_12-51-40.PNG`). ## Audio @@ -61,6 +63,13 @@ This page lists all user interface additions, changes, fixes that are implemente ![image](https://user-images.githubusercontent.com/73803386/123566309-4ade4600-d7b7-11eb-9b77-5c9de7959822.png) +## Dropship Loadout + +- The Tiberian Sun Map theme is now played on the Dropship Loadout screen (`DSHPLOAD` can be defined in THEME.INI to customise this.) +- Help text is now shown on the screen to aid the user. + +![image](https://user-images.githubusercontent.com/73803386/120932514-13b3d200-c6ee-11eb-9538-3f812323cb9f.png) + ## Loading screen - PNG images can be used as an alternative to PCX images. This new system scans for the requested filename with the .PNG extension and use that if found, otherwise it will fall back to scanning and load the .PCX file. diff --git a/docs/Whats-New.md b/docs/Whats-New.md index 72d151d58..b02f5e306 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -104,6 +104,16 @@ New: - Thicken the waypoint and rally point lines and adds stroke/outline to the waypoint number (by CCHyper/tomsons26) - Implement hotkey command to enter the manual placement mode (by CCHyper/tomsons26) - Allow harvesters to be considered when executing the "Guard" command (by CCHyper/tomsons26) +- Harvesters now auto harvest when built from the war factory (by CCHyper/tomsons26) +- Patch to allow Skirmish games to be started with no AI house(s) (by CCHyper/tomsons26) +- Implement the Produce Cash logic for BuildingTypes (by CCHyper/tomsons26) +- Add various developer mode hotkey commands (by CCHyper/tomsons26) +- Add a "Load Game" button to the retry dialog on mission failure (by CCHyper/tomsons26) +- Save screenshots as a PNG file instead of PCX file (by CCHyper/tomsons26) +- Add support for playing the renamed intro movies from The First Decade and Freeware TS installations (by CCHyper/tomsons26) +- Implement the Blowfish algorithm and removes the requirement for BLOWFISH.DLL (by CCHyper/tomsons26) +- Allow the game to continue if the side specific mix files are not found (by CCHyper/tomsons26) +- Change the default value of AllowHiResModes to true (by CCHyper/tomsons26) Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) @@ -130,6 +140,20 @@ Vanilla fixes: - Fix the animation speed of Waypoint and Rally Point lines so they are normalised and no longer subjected to the game speed setting (by CCHyper/tomsons26) - Fix a limitation where returning to the Skirmish dialog after a game clamps the chosen side between 0 (GDI) and 1 (Nod) (by CCHyper/tomsons26) - Fix a bug where the user is able to place a building anywhere on the map by taking advantage of the sidebar (by CCHyper/tomsons26) +- Fix division by zero crashes when ShakeScreen is set to 0 (by CCHyper/tomsons26) +- Increase the IsoMapPack5 buffer size when decoding a map (by CCHyper/tomsons26) +- Fix a bug where looping animations incorrectly use the unsynchronized RNG (by CCHyper/tomsons26) +- Fix a bug where `IsTrainable` is not checked when an object picks up a veteracy crate (by CCHyper/tomsons26) +- Fix a bug where `IsInsignificant` was not checked when a unit dies (by CCHyper/tomsons26) +- Fix the incorrect (RA legacy) cell calculation for the "move to cell" team script (by CCHyper/tomsons26) +- Fix a bug where the sidebar mouse wheel scrolling "error" sound can be heard at the main menu (by CCHyper/tomsons26) +- Fix a bug with TriggerTypes not setting difficulty flags correctly when reading from INI (by CCHyper/tomsons26) +- Fix a bug with triggers enabled via other triggers ignoring difficulty settings (by CCHyper/tomsons26) +- Fix MultiMission `MaxPlayers` incorrectly loaded with `MinPlayers` (by CCHyper/tomsons26) +- Fix to maintain aspect ratio when scaling movies/videos (by CCHyper/tomsons26) +- Fix incorrect spelling of "Loser" on the multiplayer score screen debug output (by CCHyper/tomsons26) +- Fix incorrect stretching of the main menu transition movies (by CCHyper/tomsons26) +- Bugfixes and improvements for the Dropship Loadout menu (by CCHyper/tomsons26) From d9991f7b4aa60710453f05f9e72dd9b157d86005 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 03:50:49 +0300 Subject: [PATCH 15/25] Remove empty headers --- docs/Bugfixes.md | 2 -- docs/New-Features-and-Enhancements.md | 10 ---------- 2 files changed, 12 deletions(-) diff --git a/docs/Bugfixes.md b/docs/Bugfixes.md index 8ff542168..6229c9244 100644 --- a/docs/Bugfixes.md +++ b/docs/Bugfixes.md @@ -2,8 +2,6 @@ This page lists all vanilla bugs fixed by Vinifera. -## Bugfixes - - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively. - Fix a bug where VQA files could not be loaded from the root directory or local search paths. - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index f14a98e83..779ce7fe1 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -77,8 +77,6 @@ ProduceCashResetOnCapture= ; Reset the buildings available budget when ProduceCashStartupOneTime= ; Is the bonus on capture a "one one" special (further captures will not get the bonus)? Defaults to false. ``` -## Crates - ## Ice - Ice strength can now be customized. @@ -111,10 +109,6 @@ OmniHealer= ; Should this infantry consider other infantry, unit, and When an infantry with `Mechanic=yes` and `OmniHealer=yes` is selected and the mouse is over a transport unit or aircraft, holding down the `Alt` key (Force Move) will allow you to enter the transport instead of healing it. ``` -## Particle Systems - -## Particles - ## Projectiles ### SpawnDelay @@ -127,8 +121,6 @@ In `RULES.INI`: SpawnDelay= ; The number of frames between each of the spawned trailer animations. Defaults to 3. ``` -## Super Weapons - ## Technos ### AILegalTarget @@ -404,8 +396,6 @@ In `THEME.INI`: RequiredAddon= ; The addon required to be active for this theme to be available. Currently, only 1 (Firestorm) is supported. Defaults to 0 (none). ``` -## Tiberiums - ## Vehicles ### Totable From 3688878ef84a0790ee0504dca3167e27e923c498 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 04:06:33 +0300 Subject: [PATCH 16/25] Fix typo --- docs/New-Features-and-Enhancements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 779ce7fe1..36bbecd49 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -254,7 +254,7 @@ ShakeXlo= ; The minimum pixel X value. ### ImmuneToEMP -- Vinifera allows specific TEchnoTypes to be immune to EMP effects. +- Vinifera allows specific TechnoTypes to be immune to EMP effects. In `RULES.INI`: ```ini From 28180c41ca51a9323a73a9fe2538ff3612ad7b24 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 04:31:17 +0300 Subject: [PATCH 17/25] Update ProduceCash --- docs/New-Features-and-Enhancements.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index 36bbecd49..b3b6c47f3 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -59,12 +59,9 @@ GateDownSound= ; Sound effect to play when the gate is lowering. ### ProduceCash -- Vinifera implements the Produce Cash logic from Red Alert 2. - -- The system works exactly as it does in Red Alert 2, but with the following differences; - -- Ability to set a total budget available to the building. -- The logic is sensitive to Powered=yes, meaning it will stop when the house has low power. +- Vinifera implements the Produce Cash logic from Red Alert 2. The system works exactly as it does in Red Alert 2, but with the following differences: + - Ability to set a total budget available to the building. + - The logic is sensitive to `Powered=yes`, meaning it will stop when the house has low power. In `RULES.INI`: ```ini From 500e5668ab4e547aa06f2501d795fd4e53ab85fd Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 04:31:49 +0300 Subject: [PATCH 18/25] Add spaces to ini comment --- docs/New-Features-and-Enhancements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index b3b6c47f3..aa7e474fa 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -37,8 +37,8 @@ HideIfNoTiberium= ; Should this animation be hidden if the holding cel ForceBigCraters= ; Are the craters spawned by this animation when it ends much larger than normal? Defaults to no. ZAdjust= ; Fudge to this animations Z-axis (depth). Positive values move the animation "away from the screen"/"closer to the ground", negative values do the opposite. Defaults to 0. Layer= ; The map layer this animation is in when attached to an object. Defaults to . - ;Available Options: underground, surface, ground, air, and top. - ;NOTE: This will override the value of Surface= which forces a layer of ground. + ; Available Options: underground, surface, ground, air, and top. + ; NOTE: This will override the value of Surface= which forces a layer of ground. SpawnsParticle= ; The particle to spawn at the mid-point of this animation. Defaults to . ; This accepts any entry from the [Particles] list from RULES.INI. NumParticles= ; The number of particles to spawn (as defined by SpawnsParticle=). Defaults to 0. From 6791e8401da8095d8b7f5bd693335d81b50b6010 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 11:56:05 +0300 Subject: [PATCH 19/25] Prettify credits --- CREDITS.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CREDITS.md b/CREDITS.md index 24d631f22..a44da4fe0 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -3,8 +3,8 @@ This page lists all the individual contributions to the project by their author. - **Belonit (Gluk-v48)**: - - Check for Changelog/Documentation/Credits in Pull Requests - - Docs dark theme switcher + - Check for Changelog/Documentation/Credits in Pull Requests. + - Docs dark theme switcher. - **CCHyper/tomsons26**: - Vinifera foundations: TS++, game.exe hooker, extension system and other core features - Implement `CurleyShuffle` for AircraftTypes @@ -18,7 +18,7 @@ This page lists all the individual contributions to the project by their author. - Add RequiredAddon to Theme control types. - Implement `IntroMovie` for Campaigns. - Fix a bug where the player could issue a harvester to begin harvesting Tiberium that is below a bridge while the mouse is over the bridge itself. - - Fixes a bug where the values of `RandomRate` were not stored correctly. + - Fix a bug where the values of `RandomRate` were not stored correctly. - Implement `DebugOnly` for Campaigns. - Fix a bug where the `FSMENU` theme would incorrectly play instead of the `INTRO` theme when in Tiberian Sun mode after returning to the main menu. - Implement developer commands for instant superweapon recharge. @@ -118,12 +118,12 @@ This page lists all the individual contributions to the project by their author. - Allow the game to continue if the side specific mix files are not found. - Change the default value of AllowHiResModes to true. - **Kerbiter (Metadorius)**: - - Initial doc setup + - Initial documentation setup. - **Rampastring**: - Add `IceStrength` to Rules, and `IceDestructionEnabled` scenario option. - Add `ImmuneToEMP` to TechnoTypes. - **secsome**: - Add support for up to 32767 waypoints to be used in scenarios. - **ZivDero**: - - Filling the docs for previously implemented features + - Filling the documentation for previously implemented features. - Add support for up to 32767 waypoints to be used in scenarios. From 9b5a573493a09999d5922c18ce6014278793f8d8 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 12:13:09 +0300 Subject: [PATCH 20/25] Add missing line breaks --- docs/Mapping.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Mapping.md b/docs/Mapping.md index 61e510b03..a4ccfe78a 100644 --- a/docs/Mapping.md +++ b/docs/Mapping.md @@ -14,6 +14,7 @@ This page describes all mapping-related additions and changes introduced by Vini ### Intro Movie - `IntroMovie` can now be set for campaigns, allowing the customisation of the intro movie that plays before the campaign path starts. + In `BATTLE.INI`: ```ini [Campaign] @@ -23,6 +24,7 @@ IntroMovie= ; The intro movie name (without the .VQA extension) to play ### DebugOnly - `DebugOnly` can now be set for campaigns, which adds the prefix of "[Debug]" to the campaign description. In addition to this, it also makes the campaign only available Developer mode. + In `BATTLE.INI`: ```ini [Campaign] From 1d9778acaefb0ed68d2c1ea49b021efc83b4c737 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 12:15:54 +0300 Subject: [PATCH 21/25] Change section name that was too long --- docs/New-Features-and-Enhancements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/New-Features-and-Enhancements.md b/docs/New-Features-and-Enhancements.md index aa7e474fa..7e56ce729 100644 --- a/docs/New-Features-and-Enhancements.md +++ b/docs/New-Features-and-Enhancements.md @@ -175,7 +175,7 @@ StartIdleFrame= ; The starting frame for the idle animation i IdleFrames= ; The number of image frames for each of the idle animation sequences. Defaults to the value of WalkFrames. ``` -### EnterTransportSound/LeaveTransportSound +### Transport Sounds - Vinifera implements `EnterTransportSound` and `LeaveTransportSound` from Red Alert 2 for TechnoTypes. From e6b139f562e97136d398ebe053be6daf93ddbe62 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 12:28:59 +0300 Subject: [PATCH 22/25] Credits for CnCNet support --- CREDITS.md | 2 ++ docs/Whats-New.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/CREDITS.md b/CREDITS.md index a44da4fe0..95fe64489 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -117,6 +117,8 @@ This page lists all the individual contributions to the project by their author. - Implement the Blowfish algorithm and removes the requirement for BLOWFISH.DLL. - Allow the game to continue if the side specific mix files are not found. - Change the default value of AllowHiResModes to true. + - Implement CnCNet4 support. + - Implement CnCNet5 support. - **Kerbiter (Metadorius)**: - Initial documentation setup. - **Rampastring**: diff --git a/docs/Whats-New.md b/docs/Whats-New.md index b02f5e306..e584dc68f 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -114,6 +114,8 @@ New: - Implement the Blowfish algorithm and removes the requirement for BLOWFISH.DLL (by CCHyper/tomsons26) - Allow the game to continue if the side specific mix files are not found (by CCHyper/tomsons26) - Change the default value of AllowHiResModes to true (by CCHyper/tomsons26) +- Implement CnCNet4 support (by CCHyper/tomsons26) +- Implement CnCNet5 support (by CCHyper/tomsons26) Vanilla fixes: - Fix HouseType `Nod` having the `Prefix=B` and `Side=GDI` in vanilla `rules.ini` by setting them to `N` and `Nod`, respectively (by CCHyper/tomsons26) From 5470248997573752467fb8dd595cade25648fa4a Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 12:49:55 +0300 Subject: [PATCH 23/25] Fix misplaced space --- CREDITS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CREDITS.md b/CREDITS.md index 95fe64489..74e64c683 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -8,7 +8,7 @@ This page lists all the individual contributions to the project by their author. - **CCHyper/tomsons26**: - Vinifera foundations: TS++, game.exe hooker, extension system and other core features - Implement `CurleyShuffle` for AircraftTypes - - Implement `ReloadRate `for AircraftTypes + - Implement `ReloadRate` for AircraftTypes - Implement `AILegalTarget` for TechnoTypes - Add support for up to 32767 waypoints to be used in scenarios. - Implement the loading of Tutorial messages from scenarios. From 9e4ef3325f009a6d2224d45068299d2f31973ddf Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 13:03:16 +0300 Subject: [PATCH 24/25] Add sections in UI --- docs/User-Interface.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/User-Interface.md b/docs/User-Interface.md index 6b2f5902c..e50095e03 100644 --- a/docs/User-Interface.md +++ b/docs/User-Interface.md @@ -81,6 +81,8 @@ Attached is a set of the original loading screens with a minor edit and saved as ## Sidebar / Battle UI +### Super Weapon Timers + - Super Weapon timers, similar to those found in Red Alert 2, can now be displayed on the tactical view. This is disabled by default and each relevant SuperWeaponType must have it enabled. Superweapons that are offline due to low power or are disabled via other purposes will not show. In `RULES.INI`: ```ini @@ -88,6 +90,8 @@ In `RULES.INI`: ShowTimer= ; When this superweapon is active, does its recharge timer display on the tactical view? Defaults to no. ``` +### Chat Improvements + - Vinifera adds a background behind the user typed messages that appear in-game to provide better readability. - Additionally, Vinifera implements the system to echo the user's sent messages back to them in-game as a confirmation they were sent. This is an enhancement from Red Alert 2. ![image](https://user-images.githubusercontent.com/73803386/137031682-3f265d48-7f28-410f-bf0d-3260e24f1748.png) @@ -100,6 +104,8 @@ TextLabelOutline= ; Should the text be drawn with a black outline? Def TextLabelBackgroundTransparency= ; The transparency of the text background fill. Ranged between 0 and 100. Defaults to 50. ``` +### Unit Health Bar + - Vinifera allows customizing the position of the heath bar. In `UI.INI`: From 568eb6699a06a1206a07bd7fd9046f1f6dceefe3 Mon Sep 17 00:00:00 2001 From: ZivDero Date: Wed, 18 Sep 2024 14:03:09 +0300 Subject: [PATCH 25/25] Temporarily hide some sections --- docs/Contributing.md | 8 ++++---- docs/General-Info.md | 4 ---- docs/Whats-New.md | 46 ++++++++++++++++++++++---------------------- 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/docs/Contributing.md b/docs/Contributing.md index 2887bb79c..a4a056e4c 100644 --- a/docs/Contributing.md +++ b/docs/Contributing.md @@ -4,13 +4,13 @@ This page describes ways to help or contribute to Vinifera and lists the contrib ## Guidelines for contributors -### Project structure +% ### Project structure -TODO +% TODO -### Code styleguide +% ### Code styleguide -TODO +% TODO ### Git branching model diff --git a/docs/General-Info.md b/docs/General-Info.md index fe8e2922d..e718b298c 100644 --- a/docs/General-Info.md +++ b/docs/General-Info.md @@ -11,10 +11,6 @@ There are going to be three main types of Vinifera builds: So far the development is at the stage when only nightly builds are produced. -## Saved games filtering - -TODO - ## Compatibility Vinifera is designed to be used alongside [CnCNet TS patches and spawner](https://github.com/CnCNet/ts-patches) and eventually it's supposed to supersede them. diff --git a/docs/Whats-New.md b/docs/Whats-New.md index e584dc68f..7b3ec40af 100644 --- a/docs/Whats-New.md +++ b/docs/Whats-New.md @@ -2,40 +2,40 @@ This page lists the history of changes across stable Vinifera releases and also all the stuff that requires modders to change something in their mods to accommodate. -## Migrating +% ## Migrating % ```{hint} % You can use the migration utility (can be found on [Vinifera supplementaries repo](https://github.com/Vinifera-Developers/ViniferaSupplementaries)) to apply most of the changes automatically using a corresponding sed script file. % ``` -### From vanilla +% ### From vanilla -### When updating Vinifera +% ### When updating Vinifera -### From TS Patches +% ### From TS Patches -### New user settings in `SUN.ini` - -- These are new user setting keys added by various features in Vinifera. Most of them can be found in either in [user inteface](User-Interface.md) or [miscellaneous](Miscellanous.md) sections. Search functionality can be used to find them quickly if needed. - -```ini - -``` - -### For Map Editor (Final Sun) - -
- Click to show - - In `FAData.ini`: - ```ini - - ``` -
+% ### New user settings in `SUN.ini` +% +% - These are new user setting keys added by various features in Vinifera. Most of them can be found in either in [user inteface](User-Interface.md) or [miscellaneous](Miscellanous.md) sections. Search functionality can be used to find them quickly if % needed. +% +% ```ini +% +% ``` +% +% ### For Map Editor (Final Sun) +% +%
+% Click to show +% +% In `FAData.ini`: +% ```ini +% +% ``` +%
## Changelog -### 0.0 +### 0.1
Click to show