25737 Commits

Author SHA1 Message Date
DesertRose a6a634c7ae Fix Ptolemies Military Colony inability to produce Civilians
The Ptolemies Military Cololy can now produce Civilians as intended

Fixes: #8802
2026-03-20 10:14:06 +01:00
phosit 46b27f22ca Wait for autostart by promise
Since the completion is checked using the promise the `onTick` function
can be removed.
This replaces the `AutoStart` `AutoStartClient` and `AutoStartHost` by
async functions.
The functions can now return something to the engine. That is used to
inform the engine which page to open. That was previously done in
JavaScript. Which is ugly because it doesn't know whether it's in
visual-mode.
2026-03-19 18:44:52 +01:00
DesertRose 6805efc08a Correct Germans Cimbrian Clubman visible classes
In-Game the Germans Cimbrian Clubman unit is erroneously declared
Builder and Worker

This removes these two Classes from the visible Classes

Fixes: #8806
2026-03-19 00:00:43 +01:00
Ximirun 5104c81e9d Introduce Boundary & Adjust Height Properly
Code is implemented relating to selecting the building starting from the surface and making Height functional.
Inbefore Height does not do anything and it is set by how tall the building is 3D wise.

Fixes: #8781
2026-03-16 20:22:37 +01:00
wowgetoffyourcellphone 67ee5aaeb5 Erechtheion & Caryatids by @nifa
Hence, my suggested title for Release 29 is "Caryatid"
2026-03-15 22:12:15 +01:00
Atrik 6f645fa48f Fix formation ordering oversight
Fixes #8827
2026-03-13 22:59:59 +01:00
phosit 262c5c037e Use promises to fetch net messages
Refs: #5585
2026-03-13 18:07:56 +01:00
Atrik 56107e4e39 Fix formation controller flag reset during patrol
0ace1b44b2 added setting some animation into a controller state,
but formation controllers don't have any animations.
Probably some code intended for individuals has been copied there
by mistake.

This likely caused the visual system to reevaluate the actor somehow
because the animation didn't exist.

Fixes #8817
2026-03-13 12:22:31 +01:00
phosit d29890efb0 Split NetSession into two files
Refs: #5212
2026-03-11 21:03:52 +01:00
phosit 789d24aa1c Initialize members net-sessions in the class
With this members of `CNetClientSession` and `CNetServerSession` get
initialized within the class instead of the constructor.
2026-03-11 21:00:05 +01:00
ShadowOfHassen 0c4bcd9139 Update gitignore to add rules.json
Fixes #7133
2026-03-11 19:24:17 +01:00
Lancelot de Ferrière 25fd3aa93c Small optimisation for VertexPathfinder edge handling.
Previously, edges where bundled collected first then sorted in 4 AA and 1 unaligned bucket. We can separate the unaligned edges right away, which is a little faster.

Also make sure Vertex::pred is initialized.
2026-03-11 18:45:23 +01:00
Lancelot de Ferrière a6e0a623b4 Avoid constructing temporaries for Edge objects in VertexPathfinder 2026-03-11 18:45:20 +01:00
wowgetoffyourcellphone 666685645b Athēna Parthenos by @nifa
Athēna Parthenos by @nifa
2026-03-10 21:58:17 +01:00
phosit e2dbcea487 Remove INetSession
This was only used in the `CNetFileTransferer`. Only one function is
called. That can also be a `std::function`.
2026-03-05 21:09:14 +01:00
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 01476b9836 Only render the minimap texture if it'll be displayed
This patch implements a way for minimap-type GUI objects to request the rendering
of the minimap texture each frame. If it wasn't requested the minimap
texture isn't rendered at all and the objects only request it while they are
being displayed. This saves unnecessary work and fixes a bug where the
minimap briefly showed the revealed map after a cinema path ended
playing, since it isn't updated every frame (only 2x per second).
2026-03-03 11:25:52 +01:00
Vantha 67c96094f0 Disable smooth LOS during cinema paths
The whole map is revealed when starting to play a cinema path and
then hidden again when it finished (if necessary).
This patch fixes the ugly fade in at the start and fade out after
the end previously caused by this.
2026-03-03 11:25:52 +01:00
Vantha 004fdfdb58 Initialise m_DrawPaths inside the class
Default values like this are better set inside the class already rather
than in the constructor.
2026-03-03 11:25:52 +01: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 d7eafb8c5d Fix wrong cinema path duration at nondefault sim rates
For example, at 2x, the cutscenes were cut off in half -- by the cinema
manager disabling itself to early.

Refs #3814
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 4dff44ac9b Removes GL extensions for ARB backend 2026-02-20 22:07:40 +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
phosit e79f8ea327 Without entities, don't require a simulation
Since 067a7abc72 a simulation is required when loading a non generated
map.
This breaks the serializationtest as it doesn't pass the simulation to
the secondary map-reader.
2026-02-17 20:37:21 +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
Ralph Sennhauser 38939040e5 Set indent value for switch statement
Old and documented default is 0, tho the implementation changed at some
point to 1 in it's default config. As such explicitly set it to 0 so it
stays as is independent of stylistic version.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-02-16 14:19:19 +01:00
Ralph Sennhauser d4ec54a461 Update LICENSE files for cpp-httplib
Drop mongoose and add cpp-httplib instead.

Refs: #7140
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-02-15 19:47:30 +01:00
phosit a2c59cf87f Update appdata for next RC 2026-02-15 17:31:57 +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