1
0
forked from mirrors/0ad

17055 Commits

Author SHA1 Message Date
phosit e0c189a43e Fix string format in economy walkthrough
This has been introduced in 29ac569511.

Fixes: #8788
2026-03-05 20:20:19 +01:00
trompetin17 15076a4504 Relax font alias pattern to allow custom font families
Update the font alias regex pattern from:
    (mono|sans)-(bold-|italic-)?(stroke-)?[0-9]{1,3}
to:
    [a-z]+-(bold-|italic-)?(stroke-)?[0-9]{1,3}

Previously the pattern only allowed the `mono` and `sans` font families.
This change generalizes the pattern to accept any lowercase font family
name, making it compatible with the font alias convention described in:

https://gitea.wildfiregames.com/0ad/0ad/wiki/Adding_font_support

This allows new fonts to be registered through aliases without modifying
the regex each time a new family is introduced.
2026-03-05 11:58:52 -05:00
Vantha 64de934dd3 Revamp the cinema GUI code
This patch introduces a new class for managing the cinema overlay (two
black bars) and cutscene mode. This makes it more extensible for the
future, e.g. allowing to display text on the bars.
Since <include> elements can only be placed inside an <object>, this
patch needs to restructure session.xml a bit and also adds some
explanation comments while at it.
2026-03-03 11:25:52 +01:00
Vantha d882ab74a1 Revamp CinemaManager component
Clean up the the implementation, improve the naming, and
add some more documentation as well as more in-depth tests.
2026-03-03 11:25:52 +01:00
Vantha 1d3cdec48d Move cutscene mode to renderer
This patch splits "cutscene mode" (disabling silhouttes, territory
borders and other visual overlays) from the cinema manager component
and moves it to the renderer, since it doesn't influence the simulation
anyway. The mode can now be independently controlled by the GUI. This
is done so it can also be used for other narrative elements like speech
or dialogue in the future. Cutscene mode is still always enabled while
cinema paths are playing, though.
By design, this also fixes the issue that range overlays weren't hidden
during cutscene mode.
2026-03-03 11:25:52 +01:00
Vantha c7247936bf Introduce separate LosRevealWholeMapForAll flag
It was previously stored at the end of the array of per-player flags and
set by calling SetLosRevealWholeMap with the player ID -1. However, ever
since the introduction of observer mode in 883f307b40, -1 is the player
ID of observers everywhere else including for GetLosRevealWhole:
GetLosRevealWhole(-1) always returns true in order to reveal the map to
observers, however, the cinema manager, for example, called it meaning
to find out whether the whole map is revealed to all players.
To fix this and avoid confusion about this in the future, this patch
splits this flag from the per-player flag array and introduces new
functions to set and retrieve it.
2026-03-03 11:25:52 +01:00
Vantha 21a61721a7 LosRevealAll -> LosRevealWholeMap
This name is more descriptive.
And the plan is to split off the extra player value of the vector into
an own flag in the future, and LosRevealAllForAll would have been a poor
name for that.
2026-03-03 11:25:52 +01:00
Vantha ab378c016e Disable Han stockades in Survival of the Fittest
The other civs use structures/wallset_palisade, but the Han have a
special one, structures/han/wallset_palisade, which the trigger script
didn't disable.

Fixes #8763
2026-03-03 11:24:59 +01:00
guerringuerrin 6ca52a0b23 Reassign default hotkeys and add unit/building selection shortcuts
Add default hotkeys for unit selection by class and for placing common buildings,
building on the previous buildings and units hotkeys work.
Several existing bindings are reassigned to avoid conflicts and group related actions
on consistent key combinations.
2026-02-27 10:54:04 +01:00
ShadowOfHassen 9caaa37482 Update Splashcreen Message
Reword the text on the splashscreen to sound more inviting and increase
the dialog size to ensure there's enough space for the message in all
languages.

Fixes #8682
2026-02-25 10:18:34 +01:00
Vantha c799e4221a Add SpecificNames for the phases of the Germans
Sources:
https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/w%C4%ABhs%C4%85
https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/burgz
https://en.wiktionary.org/wiki/Reconstruction:Proto-Germanic/haimaz

See https://wildfiregames.com/forum/topic/140596-specific-phase-names-for-the-germans

Fixes #4667
2026-02-23 23:17:09 +01:00
obelix ed6075c222 Fix wrong value for the Aura of Kush Hero Arakamani
The wrong value leaded to the aura having no effect.
Reported by @Atrik
Investigated by @Vantha

Fixes #8725
2026-02-21 13:16:16 +01:00
Atrik adb435b405 Fix inconsistent chat line spacing
Chat lines with different text heights were being positioned incorrectly
because each line's position was calculated using its own height rather
than the cumulative height of all previous lines.

This caused overlapping text and inconsistent vertical spacing when
messages had varying font sizes or line counts.

Now properly track cumulative height as we iterate through lines to
ensure each message appears at the correct vertical position regardless
of individual line heights.
2026-02-21 08:48:17 +01:00
Vladislav Belov 975d1cb5fa Makes default rain a bit more natural 2026-02-20 22:46:50 +01:00
Vladislav Belov f1d62f348c Adds simple samples for new particle features 2026-02-20 22:46:50 +01:00
Vladislav Belov aae957ec7b Adds fixed orientation to particles
New features:

* Relative position
* Relative and absolute fixed axis
* Local space
* Axis along velocity vector
2026-02-20 22:46:49 +01:00
Vladislav Belov 6e9b94d3fc Removes ARB backend from options 2026-02-20 22:07:39 +01:00
Vladislav Belov 145e1c116d Removes ARB shaders 2026-02-20 22:07:39 +01:00
Vladislav Belov 0432b86de7 Removes ARB (legacy OpenGL) backend
ARB is a legacy backend which uses old assembly shaders. It makes
writing shaders more complex. According to the stats
https://feedback.wildfiregames.com we small amount of players with
ARB.

Fixes #8533
2026-02-20 22:07:38 +01:00
Vantha 963fed0036 Fix request timeout error dialog
The error dialog only showed "Failed to connect to server. The
connection request timed out." while since 78900842b1 it was supposed to
display a longer, more detailed message with a link to the FAQ. But this
never worked.
2026-02-20 21:26:52 +01:00
Vantha 0168ad9cbe Support setting multiply and add to 0 in techs
Previously (only) setting `multiply` and/or `add` to zero in a tech
modification caused warnings saying the format wasn't recognised.
With this patch, those cases are now handled as one would expect.
2026-02-20 21:26:19 +01:00
phosit 38eb999ff9 Use a slider for population cap
To allow Unlimited / Infinity the slider can't be linear.

Refs: #2593
2026-02-20 20:02:37 +01:00
Atrik 0ad6d36049 Fix Trainer-ProductionQueue sync OnOwnershipChange
Use ProductionQueue.RemoveItem() instead of direct StopBatch() calls
to ensure both components stay in sync when entity training lists
change due to ownership changes.

Fixes #8691
2026-02-17 16:07:24 +01:00
Vladislav Belov 2e0c34d479 Adds sort mode to particles 2026-02-09 21:29:42 +01:00
ShadowOfHassen 88dc947b6a Update Petra Description
Update Petra Description to be more generic

Fixes #7545
2026-02-09 15:52:06 +01:00
wowgetoffyourcellphone eba1fb0e10 A Mild Edit to the White Cliffs of Dover description
Adds historical clarification and removes language that sounds a bit right-wingy to modern ears.
2026-02-09 00:06:01 +01:00
obelix fe9c0f6c2f Fix the SpecificName for Athenian Hero Hippocrates
The SpecificName was a copy of GenericName.
2026-02-07 23:28:03 +01:00
ShadowOfHassen 81e5b973c8 Fix spelling of Philip II of Macedon 2026-02-06 10:41:28 +01:00
ShadowOfHassen 2b4e0c46f0 Fix mixed up date
Reported by @Dunedan on the forum in
https://wildfiregames.com/forum/topic/137892-release-28-branch
2026-02-06 10:41:28 +01:00
guerringuerrin 1b814afd6c Integration of AutoCiv hotkeys for placing buildings, cycling through buildings, and selecting all units of certain class.
Simplify building selection hotkeys to use template basename instead of full path
Allow Shift hotkey to add buildings in cyclic selection hotkeys and also units in unit class selection hotkeys
Add support for remove unit class from selection
2026-02-04 08:09:45 -03:00
guerringuerrin 8c917ad240 Added myself to the programming credits 2026-02-04 11:09:58 +01:00
Atrik 498e7c896a Remove non-existent animation variant references
Fixes #8676
2026-02-04 11:05:07 +01:00
Atrik 99e3799883 Fix formation reshuffling after entity rename
When entities in formations were renamed (e.g., during promotion),
the formation would immediately recalculate all member positions,
and queue movement orders causing visible shuffling.

Changes:
1. Transfer existing offsets movement to the renamed entity
   to maintain current formation structure
2. Schedule offset recalculation for the next tick to allow proper
   reordering after all systems have updated

This preserves formation integrity during renames while allowing
eventual optimal position recalculation.

Fixes #8656
2026-02-04 11:05:07 +01:00
Atrik 8e15b9c000 Fix unit acceleration reset on upgrade
Fixes #7625
2026-02-04 11:05:07 +01:00
Atrik fb1c0d2a82 Fix renamed entities on TurretPoint
Some units would retain an undue HeightOffset after renaming
while being on a TurretPoint.

Fixes #8651
Fixes #2004
2026-02-04 11:05:07 +01:00
real_tabasco_sauce 87ed9c8092 German balance emergency changes
-Seeresses "Soldier" class removed as they are support units.
-Seeresses given correct vision value.
-Seeresses are unaffected by healer discount.
-germans no longer access archery spread tech since they have no archers.
2026-01-31 18:38:08 -07:00
Ralph Sennhauser 958e6de9d3 Cleanly fail autostart for invalid map type
As for any invalid argument reject them and cleanly exit with failure
status.

Fixes: #7687
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-29 20:03:56 +01:00
Ralph Sennhauser 0d60bdfd2e Readd JS API function Engine.Exit()
Requested in #8244 for scripting purposes and automated testing. Extend
the original design by adding a means to pass an exit status. This also
comes in handy in case one wants to cleanly error out from JS on parsing
errors of command line arguments as reported in #7967.

Fixes: #8244
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-29 20:03:56 +01:00
Vantha b5c4a4635c Revert temporary workarounds for font baseline issues
Those workarounds were added in order to hide issues with the font
rendering in the short term for R28 and will hopefully be properly fixed
for R29.
2026-01-29 19:05:34 +01:00
Vantha 2483e7172b Temporary workaround for font baseline issue
Quick temporary fix for #8505 for the release of R28.
2026-01-29 19:05:34 +01:00
Atrik 68e625ab7a Fix errors if promoted units change attack range
While in combat, if units are promoted and the promotion results
in a change in their attack range, this could trigger some errors
as 'this.template[type]' had a chance to be undefined when performing
a 'RepeatRangeCheck'.

Fixes #8670
2026-01-29 11:47:16 +01:00
obelix 8129b8ffc1 Fix a typo in Seleucid team bonus description
reported by @GurkenKhan in the forums on January 9:
https://wildfiregames.com/forum/topic/137892-release-28-branch
2026-01-27 17:55:11 +01:00
Chrzanof 5daae13525 Pass device command context by reference in DebugRenderer
Improve the DebugRenderer API by passing the IDeviceCommandContext
as a reference instead of calling g_Renderer.

Fixes: #6650
2026-01-24 11:54:01 +01:00
Atrik 2735cdc156 Add unit tests for multi-level class sorting 2026-01-23 17:20:11 +01:00
Atrik be2de39238 Use multi-level sorting in the default formation 2026-01-23 17:20:11 +01:00
Atrik 065ecdbdf8 Implement level class sorting for formations
Add support for multi-level priority sorting of entity classes
in formations.

fixes #7547

Change formation template's default sorting order
using multi-level sorting.

fixes #6873
2026-01-23 17:20:11 +01:00
Vantha 40dfde9890 Add the Germans to the fireship tip
Fixes #8660
2026-01-22 12:55:03 +01:00
phosit a6357322e9 Serialize canPlay property in Petra
This was forgotten in 7b1d4426aa.

Fixes: #8674
2026-01-21 19:40:38 +01:00
Vantha b93634fb28 Clean some rebase oversights of 832501fc9b 2026-01-21 19:05:58 +01:00
Dunedan f4c52e49a7 Fix string extraction of new game settings
5741f77c6e and b5256ce014 added new translatable strings for game
settings, but missed adding them to
binaries/data/mods/public/l10n/messages.json to get them properly
extracted into the PO-templates for translation. This commit fixes that.
2026-01-14 22:02:02 +01:00