1
0
forked from mirrors/0ad

Compare commits

...

3306 Commits

Author SHA1 Message Date
vyordan 843f39ba55 Use dynamic budget for progressive load timeout
The progressive load timeout was hardcoded to 10ms, causing the CPU
to be mostly idle during map loading. This commit replaces the fixed
value with a dynamic budget derived from the display refresh rate
when VSync is enabled, or from the configured adaptivefps.menu limit
otherwise.

Fixes: #8774
2026-05-07 19:38:31 +02:00
phosit f38b956eb3 Update code owners 2026-05-04 18:47:53 +02:00
Jonny McCullagh e903506f13 More ai names for the germans
Fixes: #8408

Forum thread: https://wildfiregames.com/forum/topic/140675-more-ai-names-for-the-germans/
2026-05-02 13:13:01 +01:00
wowgetoffyourcellphone 5268cb62a6 Persians -> Achaemenids
Persians -> Achaemenids
Pers -> Achae

Addressing Checkrefs

Internal Achaemenid and Persian references

Reported by @Stan`

Update unit_tables.py
2026-05-02 02:50:39 +02:00
Ralph Sennhauser 6514230330 Allow building without lobby
Commit 6a8366b99a added additional
libraries to the report but didn't consider gloox be optional. Address
this false assumption allowing to build pyrogenesis without lobby
support.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-05-01 08:20:38 +02:00
Vladislav Belov a7967d4ad9 Adds PBR output texture to PostProc 2026-04-29 19:25:14 +02:00
Vladislav Belov 25df2d8a02 Adds resolve PBR compute shader
Also fixes sky shader as it was writing negative values for -Y
direction.
2026-04-29 19:25:12 +02:00
Vladislav Belov 1a277269d3 Adds floating point textures to backends
R8G8B8A8_UNORM isn't enough to store HDR data as the scene can brighter
than 1.0 especially when looking into sun speculars.
2026-04-29 19:25:11 +02:00
Vladislav Belov c4fb0eed3a Adds slider to developer overlay
Also adds PBR config values. Refs #8535
2026-04-29 19:25:03 +02:00
phosit 0f7417bb47 Remove Engine.SwitchGuiPage
This function isn't used by JavaScript anymore.

Fixes: #6929
2026-04-26 12:44:41 +02:00
phosit bb714c89ef Remove Engine.SwitchGuiPage from summary 2026-04-26 12:44:41 +02:00
phosit 2415b41438 Remove Engine.SwitchGuiPage from session 2026-04-26 12:44:41 +02:00
phosit 76b6725272 Remove Engine.SwitchGuiPage from campaigns 2026-04-26 12:44:41 +02:00
phosit 434a1a1905 Remove Engine.SwitchGuiPage from mod 2026-04-26 12:44:41 +02:00
phosit 3126a249d2 Remove Engine.SwitchGuiPage from locale 2026-04-26 12:44:41 +02:00
phosit 340a4d64ca Remove Engine.SwitchGuiPage from lobby
Since the page now isn't closed immediately, the `onTick` has to be
cleared.
2026-04-26 12:44:40 +02:00
phosit 3edda64566 Remove Engine.SwitchGuiPage from gamesetup 2026-04-26 12:44:40 +02:00
phosit 2f1bf9531b Remove Engine.SwitchGuiPage from replay menu 2026-04-26 12:44:40 +02:00
phosit d842a134f9 Remove Engine.SwitchGuiPage from loading 2026-04-26 12:44:40 +02:00
phosit 02a4cf6aff Remove Engine.SwitchGuiPage from autostart 2026-04-26 12:44:40 +02:00
phosit 5b5a7f9dc8 Remove Engine.SwitchGuiPage from gamesetup_mp 2026-04-26 12:44:40 +02:00
phosit 4ff3abf203 Remove Engine.SwitchGuiPage from prelobby 2026-04-26 12:44:40 +02:00
phosit c1a50c7012 Remove Engine.SwitchGuiPage from main menu 2026-04-26 12:44:40 +02:00
phosit 3d8971daca Remove pageLoop
That functionality is now built in to the engine.
2026-04-26 12:44:39 +02:00
phosit 6ead0d2f92 Add Engine.openRequest
Pages can replace themselfe by another (continuation) page.
2026-04-26 12:44:39 +02:00
Vladislav Belov 456e2a0b56 Removes dummy GL functions as replaced by core 2026-04-25 17:47:06 +02:00
Vladislav Belov 9b79fb3793 Fixes particle solid axes after aae957ec7b 2026-04-25 15:58:25 +02:00
Vladislav Belov dd9124ae99 Fixes Vulkan uniform buffer size after 9e371824c2
32 was accidentally added during debugging.
2026-04-25 11:55:12 +02:00
Atrik 68d8604c51 Do not follow rally point commands for observers
When observing a player with camera follow enabled, the camera would
jump to newly trained units as they executed their
rally point commands, which were just rendering the "Follow Player"
feature frustrating.
2026-04-22 10:19:44 +02:00
joeybadz 77a53121e0 Handle module attributes in checkrefs
Prevents GUI modules from being incorrectly reported as unused files

Fixes #8147
2026-04-20 21:09:25 +02:00
Dunedan 10d8269365 Remove TLS option from in-game settings
This removes the `lobby.tls` option from the in-game settings, as
connecting to the official lobby without TLS isn't possible anymore. The
`lobby.tls` setting itself stays available for debugging purposes and
can still be set via the command line or in the user.cfg configuration
file.
2026-04-19 21:07:58 +02:00
Stan b63d0a546b Add vcs browser to appdata 2026-04-19 19:28:40 +02:00
phosit 6f82cec51f Use std::unique_ptr for stats-table 2026-04-18 14:38:38 +02:00
phosit b71c1c3e8c Use std::unique_ptr for ENetPeer 2026-04-18 14:38:38 +02:00
phosit e7a583adc0 Use std::unique_ptr for server-session 2026-04-18 14:38:38 +02:00
phosit 0642153abc Use std::unique_ptr for ENetHost 2026-04-18 14:38:38 +02:00
phosit 74255b49c0 Use std::unique_ptr for the server turn manager 2026-04-18 14:38:38 +02:00
phosit 2b1b1dc1e3 Store the server-worker inside the server
This becomes possible by reordering the class definition.
2026-04-18 14:38:38 +02:00
Atrik 0171a58f26 Handle empty Auras reference in checkrefs 2026-04-17 12:32:08 +02:00
Atrik eb2ff98883 Display aura range overlay during building preview
Fixes #8868
2026-04-17 12:32:08 +02:00
phosit 7758c98e7c Remove IXmppClient.h
This is now possible after 0a455fbe2d.
2026-04-14 19:38:05 +02:00
phosit 1da954d455 Store the glooxRegistration inside the XmppClient 2026-04-14 18:58:57 +02:00
phosit 4a5b5ddfad Store the gloox::MUCRoom inside the XmppClient 2026-04-14 18:58:57 +02:00
phosit 783525dd73 Store the SessionManager inside of XmppClient 2026-04-14 18:58:57 +02:00
phosit b1b31b0929 Store the gloox::Client inside the XmppClient 2026-04-14 18:58:57 +02:00
phosit 5a5c7b4f12 Use unique_ptr for glox::Tag in XmppClient 2026-04-14 18:58:57 +02:00
phosit 09c1cc4ec7 Use RootedValueVector in XmppClient
This removes the manual tracing.
2026-04-14 18:58:57 +02:00
phosit 3d866fe7a1 Move ComputeTimestamp to XmppClient.cpp
It is only used there.
2026-04-14 18:58:57 +02:00
phosit 13a0dc4859 Move the gloox conversion to a dedicated file
"GlooxScriptConversions.cpp doesn't need the whole "XmppClient.h". This
will decrease build time.
2026-04-14 18:58:57 +02:00
Vantha 5a92c22d90 Compute actual size of GUI objects lazily
This shifts the responsibility of updating the actual size more towards
IGUIObject, and enables only ever doing it when the value is actually
needed. This allows us to remove the delay of size changed
notifications, since the value is now already recalculated as
infrequently as possible anyways.

All of that ensures that the actual size (returned by GetActualSize) is
always up-to-date e.g. when reading it from the parent, which was
previously broken.

Fixes #8200
2026-04-12 00:17:02 +02:00
phosit d5384ad742 FindPublicIP in the CNetServer constructor
When using the lobby, after constructing `CNetServer` the public IP has
to be queried. The consructor knows whether the lobby is used, so do it
in the constructor.
2026-04-11 13:46:34 +02:00
phosit bc17e212bb Launch session at construction of Net*
This way it's statically assured that the session aren't launched
multiple times.
2026-04-11 13:46:33 +02:00
phosit 314e2a58cf Remove UpdateInitAttributes from CNetClient
The init-attributes can only be changed before the worker runs. It isn't
used before the worker runs. This changes it so that it has to be passed
when the server starts.
With this the `m_InitAttributesQueue` can be removed.
2026-04-11 13:45:00 +02:00
phosit 578aea3b09 Remove CNetClient::SetupServerData
It has to be called before `SetupConnection` is called. Now the
server-data is setup during the constructor.
When connecting using the lobby, the data isn't known at construction
time. Then it is done at the start of  `TryToConnectWithSTUN`.
2026-04-11 13:41:43 +02:00
phosit 19c6977872 Request connection-data in the client constructor
This way it doesn't has to be requested manually and it can't be
requested to late.
2026-04-11 13:41:43 +02:00
phosit dbe89d10ae Pass the controllerSecret to the CNet* constructor
It wasn't clear when to call `SetControllerSecret` now it can't be done
wrong. Also the mutex has to be locked less often.
2026-04-11 13:41:23 +02:00
phosit d33fb147bc Pass the game password at construction to Net*
CNetClient and CNetServer are constructed for a single match. The
password of a game can not be changed after creating the match. When the
password is passed to the constructor it's not possible to invoke the
functions in the wrong order and the `ENSURE` can be "checked at
compile-time" so to say.
2026-04-11 13:38:58 +02:00
phosit 040e0b29a2 Initialize members in the class of CNet*
Sometimes the order was wrong.
2026-04-11 13:38:53 +02:00
emholt1 96c0d45b14 Fixes for the proto-Germanic names of some units
Fixes #8870
2026-04-11 11:01:22 +02:00
Vladislav Belov cb1fe07540 Removes GetDeviceCommandContext call from CFont
We need remove all occurences of GetDeviceCommandContext to be able to
add multithreading support in the future.
2026-04-10 23:53:23 +02:00
Vladislav Belov 68091177ac Removes ArrayDeleter 2026-04-10 23:03:00 +02:00
phosit 6893654cfc Do the gamestate compression in the task-manager
This reduces the stutter when a client joins.
The decompression isn't put on the task manager. As the client would
have to wait for that either way. Also a new polling loop would have to
be introduced.

The compression code is moved to the file transferer so all data send
through it gits compressed.

Refs: #4210
2026-04-09 19:03:46 +02:00
Rodrigo Vegas Sánchez-Ferrero 6a3da535f3 Remove wrong newline in splashscreen.xml
The last new line character is not needed and is in conflict with the translation texts.
2026-04-08 11:21:12 +02:00
Atrik 17b9b6af2a Remove trainer from wagon
This was creating an entity that had a trainer component
without production queue. Which is hazardous.
2026-04-07 10:55:50 +02:00
Vantha 8a2a450686 Align text as usual if the scrollbar is invisible
Previously, while `scrollbar` was set to true, the text was always
vertically aligned to the top, no matter what its `text_valign` was, by
the scrolling logic. However, this was done even when the text's caption
was so short that no scrollbar was required in the first place (and not
rendered). Falling back to the specified `text_valign` value in that case
instead seems like the expected behavior.

On a few occasions in the GUI, the text was supposed to be aligned to
the top in either case, but still set `text_valign` to a different value
(for whatever reason), which didn't have any effect previously. But
now since it does, the values have to be corrected to specify what is
actually desired.
2026-04-06 21:39:18 +02:00
wowgetoffyourcellphone 15cabcf8fc Add waypoint/rally point feedback sound
Update unit_actions.js
Add author of rally sound to credits
Two rally click options
Use new rally_click sound.
2026-04-04 03:49:55 +02:00
Vantha 56a98fa5ee Fix error when toggling session GUI
A typo caused errors when toggling the in-game UI with the hotkey,
because GetGUIObjectByName failed. The issue was introduced in
64de934dd3.
2026-04-03 11:01:22 +02:00
Vantha 9ff42ccae6 Fix unresponsiveness after campaign game ends
Presumably since 094a7c2268, when a game played as part of a campaign
ended (by the player winning or loosing), after closing the victory
dialog by pressing "Stay", the session UI became completely unresponsive,
so that no buttons could be clicked. The cause for this was that the
child page campaigns/default_menu/endgame/page.xml was never closed, so
remained invisibly open above the session GUI and blocked all of the
inputs.
Additionally the Campaign session class tried to close the
page_session.xml page, which was not supposed to happen, it was
introduced by mistake in 094a7c2268 replacing the logic to close the
campaigns/default_menu/endgame/page.xml child page again.
2026-04-01 13:03:56 +02:00
obelix 54764733dd Fix incorrect Germ tech tooltip
Since ec19e5d663 German Support Wagons cannot train Units anymore so 
that Wagon Trains cannot unlock this ability as well.

Reported by @xordspar0
Fixes #8799
2026-03-31 20:43:33 +02:00
obelix dec3f9ab62 Add Generic name for German Catafalque
The Catafalques of the other Civilizations have proper Generic names.

Refs. #8755
2026-03-31 10:01:03 +02:00
obelix 7af2210a4f Fix incorrect Spart CivBonus description
Introduced with 3592814aa8, reported by forum user Emacz
2026-03-31 01:47:12 +02:00
Stan b23c0794a5 New song for the germans.
Song by: @skymx
Reviewed by: Omri Lahav, @samulis
2026-03-29 22:30:24 +01:00
Vantha e0db65ba1b Remove pointless const's from ICmpCinemaManager.h
Were mistakenly introduced in d882ab74a1
2026-03-24 11:15:27 +01:00
Atrik 73f7884b4a Fix oversight from 832501fc9b and b93634fb28
When merging twin formations, the calls to AddMembers()
and RemoveMembers() got inverted. RemoveMembers()
calls UnsetFormationController() on each member, which overwrites
the formation controller reference just set by AddMembers() to
INVALID_ENTITY.
2026-03-23 14:50:12 +01:00
Daniel Richard G. 8a9dd76bc0 Add "iskunk" (myself) to the list of contributors 2026-03-23 08:20:10 +01:00
Daniel Richard G. 4050c645ac Avoid SIGBUS error in the MD5 implementation on ARMv7 (armhf)
Encountered in the test-suite run. This is just a workaround; the
implementation needs to be reworked/replaced to accommodate
alignment-sensitive architectures.
2026-03-23 08:20:10 +01:00
Daniel Richard G. eab11c247c Add nominal support for LoongArch64 and RISC-V 64
Fixes #6584, #6834
2026-03-23 08:20:10 +01:00
Vladislav Belov b52fbb7c62 Fixes particle shader compilation
The problem was only in case of USE_DESCRIPTOR_INDEXING. Because it adds
additional data for textures to the end of draw uniforms.

Fixes #8780
2026-03-22 00:53:30 +01:00
DesertRose 19fe52f328 Allow Romans to produce civilian_house from start
Fix that Romans to produce Civilians from the start of a match

Fixes: #8735
2026-03-20 10:14:35 +01:00
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
phosit 00f173685a Use std::optional for m_RejoinTestTurn
This removes a `-1` from #8468.
2026-02-08 19:56:01 +01:00
phosit df18e22277 Remove Script::CreateArray
It's better to construct a js-array from a `JS::RootedValueVector`.
Because it is more strongly typed and the index doesn't has to be
specified when appending an element.
Some usages are replaced with `JS::RootedValueArray`.

Fixes: #8702
2026-02-08 19:27:50 +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
Vladislav Belov 70c15abadb Fixes Atlas Terrain panel in dark mode 2026-02-06 15:21:15 +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
phosit 45c3a03a2e Update appdata for next RC 2026-02-04 19:12:52 +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 6cdbdae87c Add tolerance to offset destination checks
The 0 tolerance to prevent the "waltzing" that was set before this
cannot happen anymore as we now since check for being at destination
before sending a move request in UnitAI. Adding a new small tolerance
now prevents some small movement adjustments of formation members
near their destination.

Fixes #8592
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
phosit 72591b7608 Update appdata for next RC 2026-01-29 20:51:48 +01: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
Vantha 7fd788af0f Temporary workaround for icon misalignment
Quick temporary fix for #8194 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
Ralph Sennhauser 0691e7f0ff Workaround renamed property in gamereport
The gendered citizen feature changed stat counter names in
3592814aa8 which are submitted to echelon
for rated games with the game report, the change in name for the property
means it no longer matches the database column name effectively breaking
rated games.

Translate the property name on the fly.

Fixes: #8687
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-26 08:57:42 +01:00
Vladislav Belov cce01f4d6c Fixes compilation after #8621
Fixes #8685
2026-01-25 16:29:16 +01:00
Olivier Tilloy 6436ba3af9 Spidermonkey build: cherry-pick an upstream commit to create thin archives
This saves a sizeable amount of disk space during the build, by not creating
a very large libjs_static.a (~1.5 GB) that contains a copy of all the symbols
in the object files generated during the build.

Upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=2008085
Upstream commit: https://hg.mozilla.org/mozilla-central/rev/a924182c4e55

Note that the upstream commit doesn't apply cleanly to Spidermonkey 128.13.0,
it had to be rebased.
2026-01-25 10:58:33 +01:00
phosit 13453a3c7b Remove ScriptContext::CreateContext
This function nudges one into using it instead of the constructor. Even
though a `std::shared_ptr` isn't required.
2026-01-24 12:03:05 +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
Ralph Sennhauser 8962e066c9 Remove mongoose
Remove sources and references in premake build script as it's no longer
used.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-24 10:45:48 +01:00
Ralph Sennhauser ba4ef61c15 Use cpp-httplib instead of mongoose
Use cpp-httplib for Profiler2 and RLInterface instead of mongoose.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-24 10:45:48 +01:00
Ralph Sennhauser 7e575aa855 Enable use of cpp-httplib
Add cpp-httplib to library build scripts and enable it's use in premake.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-24 10:45:48 +01:00
Ralph Sennhauser 9c1f133118 Package cpp-httplib
Intended as replacment for mongoose, which due to license change can't
be updated anymore.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-24 10:45:48 +01:00
phosit 03a5198ed3 Remove g_GUI usage in simulation2/*
This is the last remaining inclusion of a gui file in simulation2/.
2026-01-23 21:05:18 +01:00
phosit 153dfe7ef1 Don't use g_GUI in TurnManager
The turn-manager shouldn't know about the gui.
2026-01-23 21:05:14 +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
Vantha 6a5baa1a68 Remove unused pop cap type appendage
Unused ever since they were added in 5741f77c6e.
2026-01-14 11:22:31 +01:00
Dunedan 93ce94655d Use @stylistic/brace-style for eslint
Up to now `eslint-plugin-brace-rules` was used to enforce a common brace
style for JavaScript code. This plugin was however updated the last time
over 9 years ago and will be incompatible with ESLint v10, as that
[removes `context.getSourceCode()`][1], the plugin relies on.

To keep the eslint config working with ESLint v10, this replaces
`eslint-plugin-brace-rules` with the [`@stylistic/brace-style`][2] rule
from `@stylistic/eslint-plugin`, a package we already use.

While `@stylistic/brace-style` doesn't offer an option to format braces
in exactly the same way as before, the "allman" style seems to be the
one closest to the existing code.

[1]: https://eslint.org/blog/2025/11/eslint-v10.0.0-alpha.0-released/#removed-deprecated-rule-context-members
[2]: https://eslint.style/rules/brace-style
2026-01-12 21:33:52 +01:00
Dunedan 8f8d1195c2 Fix translatable strings in XML files
Some translatable strings in XML files have leading and trailing line
breaks and tabs. As these characters are significant in text in XML
files, they don't belong there.

Refs: #8649
2026-01-12 07:59:59 +01:00
Ralph Sennhauser d070bf66b3 List reason for role change in MUC
Shows the reason for the role change in the status message. This is
mostly relevant for communicating the reason and possibly duration for a
moderator or bot muting a user.

Refs: #5679
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-09 19:07:45 +01:00
phosit 5255b919d9 Remove g_ServerId in gamesetup_mp.js
This variable was unused.
2026-01-08 20:23:42 +01:00
phosit 5325e6d00d Use exceptions in gamesetup_mp.js
In some places `false` was used to represent an error. In other places
`true` was used for that. With exceptions it's obvious which is the
error.
2026-01-08 20:23:42 +01:00
Cayleb-Ordo 4536190ab4 Update Icon handling of ActorEditor
Previously on non Windows Platforms the Programm would not get its
icon, as the *.rc is not used on e.g. Linux.
Use an xpm File for non Windows Platforms. Use the convenience macro
from wxWidgets to load the icon in a single call.

The icon was converted using GIMP 3.0.6. To avoid `-Wwrite-strings` the
static char* was converted to a const char*.
2026-01-08 11:12:24 +01:00
phosit b77ee3c5dc Update appdata for next RC 2026-01-05 20:48:20 +01:00
Ralph Sennhauser e92972d51c Simplify exchange in XMPPClient
Prime usecase for std::excahnge.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-03 20:30:31 +01:00
Ralph Sennhauser dcd12183e4 Label XMPP debug output
Prefix output of DbgXMPP so it is clearly assosiated. Furhter avoid
newlines in debug statements.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-03 20:30:31 +01:00
Vantha bb31e6b6b1 Prevent invalid GetEntityState GuiInterface calls
As long as there's no entity under the cursor, 11 calls were made per
tick with an undefined entity ID, which are now caught.

In general, an "entity state" can very well be null if the passed ID
is undefined, invalid or no entity with the ID exists (anymore). This
last case is only noticed by the GuiInterface and currently used to
detect destroyed entities.
2026-01-02 11:49:28 +01:00
phosit ba2351611c Remove LoadScripts from CSimualation2
`LoadScripts` and `LoadDefaultScripts` have to be called imediately
after the `CSimulation2` constructor.

By doing the necesarry work in the constructor and removing
`LoadScripts` and `LoadDefaultScripts` the interface of `CSimulation2`
is simplified.
2026-01-01 17:27:54 +01:00
phosit 0b83e24065 Close register-page before opening login-page
The `onTick` of the register-page was still running when connecting to
the lobby. This lead to an error when the `connect` message was
received.
With this commit returning from the login-page will always return to the
entrance-page. Previously it returned to the register-page when it was
opened by through that page.
2026-01-01 14:53:45 +01:00
Ralph Sennhauser bc021863af Query XMPP client for connection state
Instead of tracking the connection state separately just query the
client directly.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-01-01 11:42:23 +01:00
Olivier Tilloy 7f0486e18e Add myself to the community credits (for packaging work) 2025-12-31 13:35:03 +01:00
Olivier Tilloy 8bd0d0b84f Spidermonkey build: do not unpack unneeded test files
This change reduces the disk space requirement by 50%, from 1.1 GB down to 564 MB.
It is relevant when building 0AD in resource-constrained environments (e.g. in CI).
2025-12-31 13:34:09 +01:00
Itms d1319179f8 Build the Actor Editor during the nightly build
This is a regression of a fix in 7e481b73cd,
lost during the git migration. Refs #1819
2025-12-30 22:23:12 +01:00
Vantha 9b8ff77265 Complete the per-player pop cap implementation
The 'PopulationLimit' attribute of each player seems to have been
without effect for a long time, but this patch fixes it.

Fixes #7850
2025-12-29 21:29:34 +01:00
Vantha 3a73dffc1c Add fallback values for pop cap and pop cap type
Make InitGame.js responsible for providing proper (defined) values.

Refs #7850
Fixes #7695
2025-12-29 21:29:34 +01:00
Atrik f856565de9 Add formations paths to UnitMotionDebugOverlay
Formation controllers now display their movement paths when enabling
UnitMotion debug overlay.

Key changes:
- Formation controllers show long paths in blue and short paths in green
- Formation controllers path are rendered if selecting
  some of the formation's members
- Prevent the gui from making redundant calls to SetMotionDebugOverlay

Existing limitations (not regressions):
- Paths are often cleared before entities complete them
- Formation members have short paths that rarely get rendered
2025-12-29 14:30:14 +01:00
Vantha 2e450f0f52 Remove inconsistent override in CDropdown.h
It was added in 670f1e5d42 and, while not illegal, was inconsistent with the
rest of the header file, which caused compiler warnings.
As a quick solution the override keyword is simply removed again.
In the long run, it would be good to still modernise the style of all files
in that directory (at once).
2025-12-29 13:46:47 +01:00
trompetin17 8e820a988e Fix exceeding input boundaries in console
After 734386ce9f the new font system calculate height and cap height,
previously was having some magic number. Now we are using cap height
divide 2 to give a more nice space.

Remove an extra pixel in the buffer and improves background color for
better reading and eye care.

This also support the change console font option added in d549cbeeaa

Fixes: #8351
2025-12-28 20:35:20 +01:00
Vladislav Belov df9c6f510c Fixes ProfilerViewer when drawing empty cells
Currently CalculateStringSize can't handle empty string (see #8630).
As a simple fix for RC just avoid drawing empty texts.

Refs: #8630
2025-12-28 17:36:36 +01:00
Itms 771bf0ba08 Fix NSIS auto-uninstall
The NSIS script incorrectly passes the default installation dir as
argument for the auto-uninstaller of previous installs.

This is supposed to avoid moving the uninstaller to a temp file, but it
is unclear why that was done, as this leaves the uninstaller behind.

More importantly, now that we have changed the default installation
directory, the auto-uninstall tries to remove the previous install from
the new location, which does nothing and leaves behind several GB on the
disk.
2025-12-28 16:26:41 +01:00
Vladislav Belov cea77c497c Fixes TerrainTextureManager after refactoring
In fb98f5059a the manager was refactored
and the order of deinitialization was incorrectly changed.
2025-12-28 12:34:26 +01:00
real_tabasco_sauce 621b4f96cc update scenario map to account for changed template name for clubman 2025-12-27 23:25:07 +01:00
real_tabasco_sauce ec19e5d663 mixed improvements to germans
-Make clubmen champion macemen and remove buiding ability to ensure they are not mistaken for CS units.
-Decrease obstruction size of houses (clunky to place in staff match)
-Encampents only allowed in own/neutral territory
-'fear' icon used for Lugius vision aura instead of movement speed.
- Make covered wagons unable to research house techs and train civilians.
2025-12-27 23:25:07 +01:00
Vladislav Belov f43e98da09 Fixes uninitialized GPUSkinning in Atlas
Currently CRenderingOptions are initialized only once on the application
start. It means changed m_GPUSkinning wasn't reset on the switch to Atlas.

Fixes #8596
2025-12-27 21:02:48 +01:00
phosit e62eb96092 Allow swapped in pages to close themselves
This wasn't possible because init functions are called inside each
other and the outer one overwrites the result of the inner one.
Now the outer result doesn't overwrite the inner result but stores it to
the pointed to location.
2025-12-27 18:21:18 +01:00
phosit 426ec45751 Don't suspend loader after each finished task
By moving the common `goto done;` ouf of the if-block 5586802b86 changed
the code so that the loader suspend after each task.
This normally isn't a problem as it will continue in the next frame. But
when entering atlas it is treated as an error.
2025-12-27 17:17:06 +01:00
obelix b7247ae7fb Rename Neareastern Badlands to Cappadocian Badlands
A discussion on the forums had the result, that the name Neareastern
Badlands should be changed as it contains an eurocentric view on Anatolia.

Fixes #8590
2025-12-27 15:49:44 +01:00
Vantha 832501fc9b Remove columnar walking behavior of formations
This behavior is a remnant of the very first implementaion of
formations, when there weren't different types of yet, only
box for fighting and column for walking.
Now that we have different types of selectable formations, however, this
behavior is no longer desired, it also caused a lot of ugly reordering
when giving walk commands. See the issue for more details.

Fixes #8580
2025-12-26 10:54:00 +01:00
Vantha 4d08446285 Improve Engine.GetTextSize deprecation message 2025-12-23 14:37:23 +01:00
Vantha 670f1e5d42 Fix warnings on the charts tab of summary screen
Engine.GetTextWidth has been deprecated since e845da025a

Idea:
If you look at a dropdown as just a text field (its header) that can
change caption like any other, then getPreferredHeaderTextSize is the
equivalent to getPreferredTextSize (present on buttons and text fields).

Fixes #8493
2025-12-23 10:28:22 +01:00
Vantha fbb6052c30 Fix oversight in 83f4d8789b 2025-12-23 10:28:22 +01:00
phosit 067a7abc72 Don't use PS::Loader::Task outside of Loader
PS::Loader::Task is made for the Loader and it's combersome to use it
outside. Also there is an overhead.
2025-12-21 15:51:58 +01:00
phosit 2fc61dd172 Remove ProgressiveLoadEntities
It's a coroutine. The resumer can decide whether it's loaded
progressively or not.
2025-12-21 15:51:58 +01:00
phosit 5586802b86 Use a coroutine for Loader tasks
Some tasks are invoked multiple times. Normally those tasks are broken
up inside a loop and had to be continued there. With coroutines that is
easier as it's possible to suspend inside a loop.

Coroutines which are lambdas should not capture anythig as the lifetime
of the captured values might end before the coroutine completes. For
that purpose `std::bind_front` is used.
2025-12-21 15:51:46 +01:00
phosit b67faf35c3 Switch main branch to Release 29 2025-12-18 18:16:11 +01:00
Atrik d14ee373bf Remove PostMessage for transitions IDLE to IDLE
Co-authored-by: @Vantha

Add 'isIdleConfirmed' flag to distinguish between
entering IDLE state and being confirmed idle.
Only send 'MT_UnitIdleChanged' messages after the
100ms timer elapses while still idle,
preventing spurious notifications for units
that instantaneously enter and leave IDLE.
This prevent the GUI to display a flickering idle count
in most cases, for example.

Refs : #8591
2025-12-18 10:22:27 +01:00
Atrik a670656212 Add Atrik to Programming Credits 2025-12-18 10:22:27 +01:00
Atrik 0f58a8511c Add a test for IsRearrangementAllowed 2025-12-18 10:22:27 +01:00
Atrik 45fd632cef Add a test for AttemptObstructionMitigation 2025-12-18 10:22:27 +01:00
Atrik b98e7f3b5b Fix formation combat stop command bug
Remove the ResetIdle method that was causing issues with the
'Stop units' command in formation combat

The method was originally added to prevent formation members
from appearing idle during patrol waypoints, but formation
controllers or its members no longer enter idle states
even without it

The ResetIdle method was sending MT_UnitIdleChanged messages
causing formation members to bug when using stop commands

Fixes: #8546
2025-12-18 10:22:27 +01:00
Atrik be6670df89 Add a test for GetClosestMemberFunctions 2025-12-18 10:22:27 +01:00
Atrik 06c40946eb Simplify calls for moving units into formation
Co-authored-by: @Vantha

Centralize all calls to move units into formation in UnitAI
Allowing additional checks to be done
before calling members to reform formation

Fixes : #8545

Revised Formation methods and when they do call
on reforming formation

Fixes : #7328

Don't order formation members to go to a point
if the controller is stuck
Instead make the controller jump to the member
who is closest to the destination

Fixes : #8543

Correct 'filter(member)' instead of 'filter(ent)'
in GetClosestMemberToPosition (ex GetClosestMember)

Fixes :	#5120
2025-12-18 10:22:27 +01:00
phosit cfb742c914 Return the value from GuiPoll 2025-12-17 13:39:17 +01:00
phosit f23dde2f73 Use StructuredClone in m_GuiMessageQueue
The elements have to be cloned either way. Now they don't have to be
traced when they are in the queue.
2025-12-17 13:39:16 +01:00
phosit 2a2d5de350 Replace LDR_* with PS::Loader::* in comments
This has been forgoten in 1917d034fd.
2025-12-16 19:35:25 +01:00
phosit ca0d6d3768 Remove references to InitEverything in Loader.h
This function seems to be removed a long time ago.
2025-12-16 19:29:05 +01:00
phosit 14a5ccee52 Propagate error from autostart
The JavaScript error wasn't propagated leading to an infinite loop.

Fixes: #7967
2025-12-14 19:07:01 +01:00
phosit f03be7b568 Initialize more members of CNetClient
The username and the jid have to be set before the client is connected.
With this commit it's not possible to initialize them to late.
2025-12-14 17:23:05 +01:00
phosit b686dfa047 Use range based for loop in TestSerializerPerf
CppCheck warned that `i` might be out of bound.
2025-12-13 18:58:17 +01:00
phosit 9911615e62 Always set scenario members in rl-interface reset 2025-12-13 18:58:17 +01:00
phosit 1917d034fd Introduce a namespace in Loader
All functions had a `LDR_` prefix. The prefix is removed.
Functions and globals which are only used in Loader.cpp are now
contained in an anonymous namespace.
2025-12-13 18:58:17 +01:00
phosit f257ce8f9c Remove the unused time_left parameter
The `time_left` was passed to the registered functions but it was never
used.
2025-12-13 18:58:17 +01:00
phosit de841d30e4 Return description and progress from loader
There was a comment implying that `wchar_t*` is more iteroperable then
`std::wstring`. When there is no allocator `std::wstring` won't work,
sure. But when there is no allocator other things in Pyrogenisis will
also not work.

And for the progress there was just no reason to use a return parameter.
2025-12-13 18:58:17 +01:00
phosit 873b91774b Use std::unique_ptr for xml_reader in CMapReader
With this the destructor can be defaulted. Also the `SAVE_DELETE` can be
changed to a `.reset()` with that it's header doesn't has to be
included.
2025-12-13 18:58:17 +01:00
phosit efe0ed598f Apply rule of five to CMapReader 2025-12-13 18:58:17 +01:00
Itms ac36758b21 Do not use Jenkins custom SVN client on Windows
It is extremely prone to timeouts and failures in this environment.
2025-12-13 11:00:09 +01:00
phosit c02764e17a Increase home island size on River Archipelago
With some settings mines weren't able to be placed.
Refs: #8579
2025-12-09 18:49:34 +01:00
real_tabasco_sauce e96d981319 buff new carthage unique mercenary slinger with increased crush damage and greater accuracy. 2025-12-06 19:24:09 +01:00
cube002 cb3fecfce9 Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json 2025-12-05 18:10:46 +01:00
cube002 91baeeb94e Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json 2025-12-05 18:10:46 +01:00
cube002 9c836d39e6 Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json 2025-12-05 18:10:46 +01:00
cube002 f30271e955 Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_03.json 2025-12-05 18:10:46 +01:00
cube002 a03b01c935 Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_02.json 2025-12-05 18:10:46 +01:00
cube002 8d38ecda26 Update binaries/data/mods/public/simulation/data/technologies/civbonuses/cart_stone_01.json 2025-12-05 18:10:46 +01:00
phosit 759406dd77 Update appdata for the next RC 2025-12-02 18:49:14 +01:00
Ralph Sennhauser 31a262ff7e Fix autostart-host
Commit b90280855f added support for
multiplayer saved games changing the signature of StartNetworkHost
without updating all callers.

Fixes: #7684
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-30 15:30:46 +01:00
phosit a1ba9e34c4 Remove unused m_DeltaTime
Seems to be unused since c684c211a2
2025-11-30 13:49:31 +01:00
Dunedan 0086f005d4 Add Vietnamese as supported language
As 0 A.D. supports full unicode now and Vietnamese language coverage is
at a good level, let's include Vietnamese as supported language.
2025-11-29 15:59:07 +01:00
Dunedan ed1bd1d75b Re-add Catalan as supported language
While Catalan got removed for Alpha 27 because of low coverage, its
coverage is now good enough again to get re-added as supported language.
2025-11-29 09:20:24 +01:00
Atrik 426693ebef Default hotkeys changes
Reassign 'Toggle mouse grab' to F3 to avoid conflicts with gameplay hotkeys

Unassign 'Show status bars' often toggled by mistake by new players and confused for a selection bug

Assign 'Bird eye view' to Shift+Tab
2025-11-26 16:42:18 +01:00
Vantha ccd1046d67 Parallelize the execution of range queries
Use futures to spawn several threads that concurrently work through the
active range queries each turn instead of doing everything serially on
the main thread -- similar to how the pathfinder computes pathfinding
requests asynchronously. This significantly increases performance.
Note: It still can't run in parallel to the rest of the simulation update since
the range computations depend on the state of the simulation (like the
position of units).
2025-11-26 16:10:29 +01:00
real_tabasco_sauce a32a28a5e3 Add capture animations for citizens
Fixes #8557
2025-11-25 17:41:55 +01:00
Vantha ab49af1b1c Correct the name of the Germans' sandbox map 2025-11-25 10:52:37 +01:00
Vantha 36e93989d4 Correct some settings of the Germans' sandbox map 2025-11-25 10:29:30 +01:00
Ralph Sennhauser 7452bf882f Add test for loading players templates
Checks that those templates can be loaded, i.e. are adhering to the
schema.

Refs: #8540
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-22 08:41:02 +01:00
phosit 9a526bcae1 Throw error when simulation script can't be loaded
When a script in "simulation/helpers/" contained an error. Files in
"simulation/components" aren't loaded. The return value of
`LoadDefaultScripts` indicated an error but was ignored. The simulation
still tried to start.

Now instead of returning a ignoreable error code the error is thrown. In
the common path the error is implicitly rethrown to the JS-function
which tried to start the game.

fixes: #8133
2025-11-20 19:38:36 +01:00
phosit 977bf5c0d1 Don't pass the AppHooks as pointer
It's not permitted to pass a nullptr to the `app_hooks_update`. So a
reference should be used.

CppCheck says one shouldn't take pointer to a temporary.
2025-11-20 19:38:33 +01:00
phosit b17c2fb80f Use designatet initializers for AppHooks
CppCheck wasn't able to handle `{0}`. C++20 allows to use designated
initializers.
2025-11-20 19:37:50 +01:00
phosit 3c9b4b922e Make getCameraProperty a lambda
A lambda is more explicit which argument it takes.
2025-11-18 20:02:06 +01:00
phosit 5b1ce0957d Make getEnvironmentProperty a lambda
A lambda is more explicit which argument it takes.
2025-11-18 20:02:06 +01:00
phosit 3d26b9123a Make getTerrainProperty a lambda
A lambda is more explicit which argument it takes.
2025-11-18 20:02:06 +01:00
Vantha 44984699f1 Remove some invalid entries from messages.json
'StatusName', 'ApplierTooltip' and 'ReceiverTooltip' are attributes of status
effects, which are defined in JSON files (and already extracted
correctly from there), not XMLs.
2025-11-18 11:34:10 +01:00
Vantha 7032293207 Add context and comment attributes where useful
Add context and comment attributes to all translated XML elements in the
simulation that can specify any string -- unlike "Rank", which has to be
"Basic", "Advanced", or "Elite".
Most of them aren't used right now, but they can be in the
future and by mods, without touching the schemas again.

Fixes #8540
2025-11-18 11:34:10 +01:00
Stan 84d4dbc506 Use Future for the userreporter
Previously we relied on a raw thread.
Pull Request: #8537
Reviewed by: @phosit
Refs: #5874
2025-11-17 21:45:00 +01:00
Ralph Sennhauser 5609492731 Add Atlas support to Appimage
Include the shared library libAtlasUI.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-15 16:29:01 +01:00
Vantha faa049fe4b Don't set up command and selection panels twice
In the (common) case that the player controls all selected units or is
an observer, the 'Selection' and 'Command' panels were set up ahead and
then in the for loop again, which was wasteful.
2025-11-14 10:59:45 +01:00
Vantha 83fc0dbca8 Only load command buttons that will be displayed
There are currently 19 entity commands in total, but only the first 6
possible (depends on the active selection, e.g. patrolling isn't
possible if no units are selected) ones are ever displayed as buttons
(defined by g_SelectionPanels.Command.getMaxNumberOfItems)  However,
when updating (once per turn or whenever the selection changes),
g_SelectionPanels.Command.getItems always called `getInfo` on all of
them, even though all data computed after the first 6 wasn't read or
used anywhere later. So, stopping immediately after the 6th and never
returning an array longer than 6 saves all of the dead time without
affecting the outcome in any way.

It's important to mention, that this issue isn't exclusive to the
'Command' selection panel: the getItems methods of the other panels can
also return an array longer than their getMaxNumbertOfItems value
(that's why they specify it in the first place). However, for the
command panel this happens for many common selections and seemingly to
by far the largest extent. For the other panels it happens much more
rarely, only for especially large and obscure selections, and even then
does not have nearly as big of an impact. So, modifying the other
getItems methods as well (to never return too many items) is probably
not worth it, and the more robust solution is to instead keep the
safeguard system of getMaxNumbertOfItems.
2025-11-14 10:59:45 +01:00
phosit 6bdcab11b9 Don't forward declare CompiledModule
When using `std::unordered_map` it's types have to be complete.
2025-11-13 19:50:38 +01:00
Ralph Sennhauser 68a7abb3b3 Add C++ feature test pipeline
This adds the feature check code found on cppreference [1] and a Jenkins
pipeline to generate a feature status list for all platforms.

Aggregate a summary and upload it to docs.wildfiregames.com

[1] https://en.cppreference.com/w/cpp/experimental/feature_test.html

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-12 18:28:59 +01:00
Ralph Sennhauser 9ffbf15ee1 Fix -Wunnecessary-virtual-specifier warnings
Commit 3eee3a444d added final keyword to
simulation classes but left virtual keywords in place.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-11 21:35:01 +01:00
Ralph Sennhauser 66738c12a1 Suppress false positive in cppcheck
```
source/simulation2/components/CCmpRangeManager.cpp:1953:18: error: Out of bounds access in 'm_LosRevealAll[MAX_LOS_PLAYER_ID+1]', if 'm_LosRevealAll' size is 16 and 'MAX_LOS_PLAYER_ID+1' is 17 [containerOutOfBounds]
   m_LosRevealAll[MAX_LOS_PLAYER_ID+1] = enabled;
                 ^
source/simulation2/components/CCmpRangeManager.cpp:1967:21: error: Out of bounds access in 'm_LosRevealAll[MAX_LOS_PLAYER_ID+1]', if 'm_LosRevealAll' size is 16 and 'MAX_LOS_PLAYER_ID+1' is 17 [containerOutOfBounds]
  if (m_LosRevealAll[MAX_LOS_PLAYER_ID+1] || player == -1)
                    ^
```

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-11 21:35:01 +01:00
Ralph Sennhauser 9ea5a789a7 Fix EntityMap::iterator
Fixes cppcheck error
```
source/simulation2/system/EntityMap.h:104:11: error: Reference to local variable returned. [returnReference]
   return ptr;
```

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-11 21:35:01 +01:00
phosit 354ed957dc Extend appdata.xml for 0.28.0 2025-11-11 18:09:41 +01:00
joeybadz c6b8593bdf Remove duplicate fertility festival tech in German tech tree 2025-11-11 02:50:33 +01:00
Vladislav Belov c0ea17f06e Replaces choosedDeviceIt by chosenDeviceIt 2025-11-11 01:51:16 +01:00
Vladislav Belov 485200342d Disables Vulkan devices sorting by default
Currently we always choose the best device. But it's not always
desirable. A more safe approach is to use the default device (with
index 0). The only downside of that is if a user didn't adjust
settings then the game might run on an integrated GPU instead of a
discrete one. In the future it'll be solved by selecting GPU in
options: #8529

Fixes #8455
2025-11-11 01:50:58 +01:00
obelix 479995bc6f Change BuildTime of Gaul Arrow Ship 2025-11-11 00:14:34 +01:00
obelix 90847e0591 Change BuildTime of Brit Arrow Ship 2025-11-11 00:14:34 +01:00
Vantha 19f6dd031d Improve the SpecificName of Celtic civilians
While "Brogiacos" and "Tegesacos" fit in terms of meaning, they are only
reconstructed words, "Ambactos" on the other hand is attested and
actually historically relevant.
2025-11-10 22:55:42 +01:00
Ralph Sennhauser 4f6d4a91b0 Fix -Wtautological-overlap-compare in stun test
Fix the minimal check for an invalid IP returned.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-10 11:41:52 +01:00
Ralph Sennhauser 32edc28cda Fix reloading config for cinema
This fixes 7df7566d7c, which added
automatic switching off silhouettes in cinema mode while resetting the
value when leaving cinema mode. Reloading can only be done for a given
config namespace.

Fixes: #7552
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-10 06:45:24 +01:00
Vladislav Belov c4bc6c9627 Adds an option to destroy Vulkan old swapchain before
Now it's possible to destroy the old swapchain before creating a new
one. It might make the swapchain creation a bit slower but with a
lower memory peak.
2025-11-10 00:06:52 +01:00
Vladislav Belov 8a64182ca2 Waits Vulkan device idle also on window resize
Fixes the case when a swapchain was recreated on resize rather than
by VK_ERROR_OUT_OF_DATE_KHR.
2025-11-10 00:06:51 +01:00
Vladislav Belov de36c75023 Deletes Vulkan resources on swapchain recreation
The change tries to minimize a memory peak during a window resizing.

Refs #6864
2025-11-10 00:06:41 +01:00
Vantha be83ba4029 Provide context for the translation of "Germans" 2025-11-09 22:52:32 +01:00
Vantha 5d4eab73f9 Improve the description of the Germans' civ bonus
Importantly, the word "Germans" is removed since it is prone to being
translated incorrectly and the other civ bonus descriptions don't
contain the civ's name either.
2025-11-09 22:52:32 +01:00
Vantha f38bc89611 Add SpecificNames to the Germanic units
The names are in Proto-Germanic and mostly taken from Wiktionary.
They can be confirmed by directly searching the individual
Proto-Germanic terms online.

Champion Cavalry: "Aþalaridjô" (noble+rider)
Cavalry Spearman: "Gaizaridjô" (spear+rider)
Cavalry Javelineer: "Skeutaridjô" (quick+rider)
Worker: "Būraz" (dweller, farmer) -- deliberately decided against the most literal translation,
	which would be "Arbijaz", because that seems to be more connected to serfdom and the unit
	rather represents a generic commoner.
Infantry Swordsman: "Swerdamannaz" (sword+man)
Infantry Spearman: "Gaizamannaz" (spear+man)
Infantry Clubman: "Kulbawigô" (staff/club+warrior)
Infantry Javelineer: "Gaizawerpanaz" (spear/javelin+thrower)
Infantry Slinger: "Slingwanaz" (swinger/slinger)
Scout Ship: "Skeutabaitaz" (quick+boat)
Fishing Boat: "Fiskārijaz" (fisherman)
Fire Ship: "Brandabaitaz" (fire+boat)
Arrow Ship: "Harjaskipą" (army/war+ship)
Wagon: "Wagnaz" (direct translation)
Priest: "Gudjô" (direct translation)
Ram: "Rammabagmaz" (strong+tree/beam)
Trader: "Kaupô" (direct translation, also part of the word used for the market)
Merchant(ship): "Mangārī" (direct translation, very similar to "Kaupô")
2025-11-09 22:52:32 +01:00
Vantha 05b1ac4559 Correct an overlooked 'Women' to 'Workers' 2025-11-09 22:52:32 +01:00
Vantha a71688fc2c Remove incorrect Germanic SpecificName
The SpecificName tag is meant to contain the name in the civ's native
language, Proto-Germanic for the Germans.
"Kriegsschiff", "Übungsbereich" and "Stadttor" on the other hand are
modern German words.
2025-11-09 22:52:32 +01:00
Vantha 4d9fc0bb53 Convert wrong Germanic SpecificNames to GenericNames
SpecificNames are meant to contain the names in the civ's native
language. The English names are supposed to in be the GenericName tag.
2025-11-09 22:52:32 +01:00
Vladislav Belov 8b1b1d28f8 Fixes missing Vulkan application version
Missing after dc830ccf55.
2025-11-09 12:58:16 +01:00
Stan 93706ae37c Add credits for Obskurias 2025-11-07 21:42:00 +00:00
phosit 2748a45fc6 Remove ScriptEvent with only one parameter
The effect is the same when the second parameter is defaulted.
2025-11-05 14:39:44 +01:00
phosit 7ccea4ace9 Remove *WithReturn duplication
This has been introduced in 1ed64439ea.
2025-11-05 14:39:44 +01:00
Vantha 75feace618 Add a sandbox map for the Germans 2025-11-04 11:09:34 +01:00
phosit 9588da1d94 Add Boiorix as the codename for Release 28 2025-11-02 21:18:44 +01:00
phosit d786ac2dce Suppress wrong positive of cppcheck in Game.cpp 2025-11-01 17:52:35 +01:00
phosit ef016884ab Pass debugOptions on construction of CSimulation2
The functions to set them explicitly are removed. This makes the
interface of `CSimulation2` smaller.

Also serializationtest and rejointest can't be active at the same time.
Add a warning about that and use a `std::variant`.
2025-11-01 17:31:54 +01:00
phosit 10afb7d856 Pass ooslog-activate flag on construction
This deduplicates the activation logic and removes the only
`m_EnableOOSLog` mutation.
2025-11-01 16:35:39 +01:00
Ralph Sennhauser 0fe18e1d84 Enable test loading all templates
The test takes about 0.5s in release build and about 2s in debug build,
hardly qualifying as slow. As such enable it.

About the noise, it's of little interest anyway so don't spam.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-11-01 16:15:31 +01:00
real_tabasco_sauce 83dba854e5 adjust corsica vs sard 2025-11-01 15:16:48 +01:00
Ralph Sennhauser 16c9795cd1 Remove generic cache
The removal of the VFS cache in 89e339dd16
meant there is no longer a user. As such also clean out the generic
parts with the Landlord and a LRU policies.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-31 17:03:34 +01:00
real_tabasco_sauce c79cd4c733 allow Ashoka to build edict pillars quickly. 2025-10-30 07:18:50 +01:00
real_tabasco_sauce 2306140192 allow pillars of ashoka to be built in allied territory. 2025-10-30 07:18:50 +01:00
real_tabasco_sauce 94d3699ce4 Fix market exploit by basing the price change on the amount purchased.
Fix credit to Atrik
Credit for test fix goes to Itms

Fixes #6760
2025-10-29 15:29:28 +01:00
Ralph Sennhauser eba8439295 Replace boost::filesystem std::filyestem
Bumping the minimum version of macOS to 10.15 for spidermonky [1] also
allows us to use std::filesystem instead of boosts implementation.

[1] f14a98e26f

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-29 09:56:32 +01:00
Ralph Sennhauser 618ffc7bf9 Require boost-1.69, drop boost_system lib
Boost 1.89 no longer offers the deprecated library for boost_system [1], so
drop it from the list of libraries to link against. This effectively
bumps the minimum required boost version to 1.69 [2].

[1] https://github.com/boostorg/system/commit/7a495bb46d7ccd808e4be2a6589260839b0fd3a3
[1] https://github.com/boostorg/system/commit/2fa0a00583a3a791092568d2ade793314181926e

Fixes: #8471
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-29 09:56:32 +01:00
Ralph Sennhauser e97f43b692 Do not require literal message ids in Atlas
In >=wxWidgets-3.3 there is a new static check for literal message
ids[1] so that xgettext would reliable work to extract strings to
translate. As we don't translate Atlas at all nor use xgettext just
disable the check to allow building against >=wxWidgets-3.3.

[1] https://wxwidgets.org/help/msgid-literals/

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-29 09:08:12 +01:00
phosit 75805f4b23 Remove the relaypoint before training units
While not as efficient this order is easier to reason and let's player
pause.
2025-10-28 09:52:53 +01:00
phosit e195c52e30 Rewrite the phrase about production availability
It's easier to understand and to translate in a language where a
formulation with "Respectively" is not common.
2025-10-28 09:52:53 +01:00
phosit c3727a6a79 Rewrite the phrase about building multiple houses
It was hard to understand.
2025-10-28 09:52:53 +01:00
phosit 727be2fb45 Replace hunt by slaughter in phrase about chicken
It's not really hunting when nobody flees.
"Slaughter" is used later when talking about the same action.
2025-10-28 09:52:53 +01:00
phosit a6e4e22ca2 Replace civ by player in phrase about color
The color is not specivic to the civ but to the player.
2025-10-28 09:52:53 +01:00
phosit 29ac569511 Don't hardcode Shift as a hotkey in tutorial
It's not possible to format warnings. "a hotkey" is used instead.

Also when the hoplite icon is pressed, without using batches, the
warning doesn't restate that the hopplite should be pressed.
2025-10-28 09:52:53 +01:00
phosit 4f38600c39 Replace "I" with the hotkey in eco walkthrough 2025-10-28 09:52:53 +01:00
phosit e0481b283b Only make existing Civilians invulnerable
On "Survival of the Fittest" the treasure-collector are made
invulnerable.
Thous Civilian might not exist when the player is removed.

Fixes: #8421
2025-10-28 09:14:28 +01:00
fahad-accordion-19 56d7be5334 Remove <type> from minimap schema and templates
The <minimap> element in resource templates previously included a <type>
child element that was required by CCmpMinimap.cpp. This commit removes
the <type> field from the minimap schema in CCmpMinimap.cpp and from all
affected templates, making the minimap component resource-agnostic and
simplifying template definitions.

Refs: #8170
2025-10-26 21:43:25 +01:00
Itms 4716a230ab Store NSIS registry keys under a consistent root
Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8476
2025-10-26 20:58:55 +01:00
Itms 18df61517c Wipe NSIS install preferences when uninstalling
The user language and start menu folder name were saved, which goes
against recommendations in the NSIS documentation.

The installation directory was also saved, which might make sense,
but prevents us from dropping the "alpha" label.

Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8476
Fixes: #7594
2025-10-26 20:58:54 +01:00
Itms f772181501 Fix install and Start Menu folder names on Windows
Those cannot end with a period.

Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8476
2025-10-26 20:58:49 +01:00
Itms 866d6f0527 Add an engine "compatible" version
When a patch version is released, it must declare compatibility with the
previous patch versions of the same main release. This allows players to
keep replaying their games and to keep playing online with users of
other patches of the same main release.

This should have anticipated for dae7a8c394
2025-10-26 09:16:46 +01:00
Itms 50f6da2a13 Use the PYROGENESIS_VERSION macro instead of a global
Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8222
2025-10-26 09:16:44 +01:00
Itms f0c8db6422 Address cppcheck uninitialized warning
Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8222
2025-10-26 09:16:43 +01:00
Vladislav Belov cb58116270 Fixes lseek for big files on Windows
It was broken in ef69c37f66, before that we were using _lseeki64.

Fixes #8459
2025-10-25 13:35:59 +02:00
Vantha 7b1d4426aa PetraBot: Never play when the region analysis fails
If the region analysis at the start of the game fails, the bot can't
actually play and the managers aren't initialised. And to prevent errors
from the update functions, the OnUpdate at the root had an early return
if the entity count was 0. However, in some edge cases the region
analysis can fail even if the AI has entities.
This patch fixes this potential error by storing the result of the
region analysis directly and checking that instead.
2025-10-23 22:09:30 +02:00
Vantha a25750f62d Fix a crash when the Petrabot region analysis fails
When the region analysis fails, that's usually because the AI doesn't
have any units or CCs at all.
Previously, the whole game crashed when serializing because this.noBase
was still undefined.
2025-10-23 22:09:30 +02:00
Vantha ce512e383f Move PlayerRemoved.js to gamesettings/attributes/
All other gamesettings are placed in that directory already.
Having one script somewhere else risks breaking stuff like autostart.
2025-10-22 09:54:34 +02:00
Itms 59d28fed9b Lock Linux CI cbindgen version and dependencies
This allows us to keep testing building with the minimal supported
Rust version.
2025-10-21 21:12:12 +02:00
abian 95467c2327 Hide Abort Unit Order button when idle or guarding
Reviewed-By: bb
Fixes #6854
2025-10-18 09:35:58 +02:00
Timothy Pearson 2c9928e4cb Fix FTBFS on ppc64le systems
Tested to compile and function normally under Debian Trixie ppc64le / POWER9

Signed-off-by: Timothy Pearson <tpearson@raptorcs.com>
2025-10-16 20:53:14 -05:00
Vladislav Belov 99bf50cd4e Reduces boost usage for strings 2025-10-16 09:17:05 +02:00
Vladislav Belov e8d9a8db67 Adds Vulkan timestamp limits to report 2025-10-16 00:36:02 +02:00
Ralph Sennhauser 0b55f44c5e Use return instead of exit in testrunner
On request by phoist replace exit with return statements.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-15 18:17:24 +02:00
Ralph Sennhauser a7d65d4a34 Support running individual tests or suites
Add back some functionality that got dropped with the move to a custom
runner in 39ea3b6ea5

Add option --list to print all available test grouped by suite.

Add option --suite to limit the run to a specific testsuite.

Add option --test to limit the run to a specific test.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-15 18:17:24 +02:00
phosit 019374d5c7 Bump copyright year for windows build 2025-10-15 12:36:00 +02:00
Vladislav Belov 1441c971f5 Uses SDL workaround only for GL 2025-10-15 00:52:25 +02:00
Vladislav Belov f2752f7230 Removes ARBShader capability 2025-10-14 13:04:16 +02:00
phosit e2ed4afe00 SoundManager: reintroduce manual memory management
This reverts commit 94c907342a.

It introduced multiple errors and is to big to find the actual errors.

Fixes: #8342
Fixes: #8426
2025-10-13 20:42:32 +02:00
Vladislav Belov 70893b6a32 Adds ARM Neon to report 2025-10-13 19:57:52 +02:00
Ralph Sennhauser dc4785ece6 Fix win64 artifact name in bundles pipeline
The extra space is part of the name and prevents the build tarball to be
excluded from archived artifacts.

Reported-By: Itms <itms@wildfiregames.com>
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-13 19:03:42 +02:00
Ralph Sennhauser aa601de72c Set owner and group when creating tar archive
tar --no-same-owner is only default for non root users, therefore if
extracting as root owner ship is by the user id creating the archive.
This is an issue if extracting happens in a container and cleanup
outside the container by a non root user like on our CI when building
the appimage. Therefore package the tar archives for fcollada and nvtt
with owner and group root.

Fixes: #8440
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-13 19:03:42 +02:00
phosit a730ab65a3 RecomputeActorName when required
533429e800 relied on a later `RecomputeActorName` which was removed in
the same commit.

Fixes: #7590
2025-10-13 18:15:06 +02:00
Hector Gomez 3142b7cbaa Change expert Kushite cavalry spearman model when gathering meat
Kushite expert cavalry spearman uses advanced cavalry spearman rider mo
del when gathering meat.

This commit changes so its expert counterpart is used instead of advanc
ed and art looks consistent.

Fixes #7649
2025-10-13 17:34:21 +02:00
Vladislav Belov c99345a24b Adds MapReader to cppcheck ignore. 2025-10-13 16:57:15 +02:00
Vladislav Belov fb94cc704f Makes loading terrain textures more smooth 2025-10-13 00:14:45 +02:00
Vladislav Belov fb98f5059a Refactors TerrainTextureManager 2025-10-13 00:14:43 +02:00
Vladislav Belov 5bbb2c0b76 Makes parsing entities more smooth 2025-10-13 00:14:29 +02:00
Vantha 7dab8d3f02 Erase the lamdba from the Germanic big hall icon
The great hall of the Germans used the icon of the syssition, which contains
the Spartan civ emblem, which in turn contains a red Greek uppercase
lambda (Λ) for "Lacedaemon". This is obviously incorrect to use for the Germans.
So this patch instead creates a new, generic hall icon for the great
hall out of the syssition icon by just removing the lambda from it. That
way they remain similar and players can recognise them both as
halls and champion-training structures.
2025-10-12 21:36:04 +02:00
phosit a0e4c61565 Don't list removed player when loading a savegame
Removing all entities when loading a game isn't implemented. So the
setting should not be selectable: #8413.
It seems this was tried in b36782388b. But it removed the ai-item
instead of the removed-player-item. That lead to an additional error:
#8425.

Fixes: #8413
Fixes: #8425
2025-10-12 14:25:53 +02:00
elexis 2ccd10e566 Fix missing returns after disconnect in 95179c5e46.
Patch by @elexis.

The package sent in fa85527baf / #2420 plus this missing return causes the NetServerTurnManager
to be stalled forever if a client succeeds to send this package on disconnect.

In NotifyFinishedClientCommands, Disconnect calls OnDisconnect calls UninitialiseClient calls m_ClientsData.erase,
but then m_ClientsData[client].readyTurn = turn; reinserts the disconnected client, making the turnmanager wait forever for the disconnected client.

refs https://wildfiregames.com/forum/topic/134742-bug-game-incredibly-slowfreeze-at-start-because-because-of-1-player/
2025-10-12 12:39:41 +02:00
Vladislav Belov 893f192eaa Makes TextRenderer allocates using LinearAllocator
Also replaces DynamicArena for model and terrain rendering by
LinearAllocator.
2025-10-12 00:53:12 +02:00
Vladislav Belov e4de94415e Removes unused pointer from the allocate function
Also allows to compare ProxyAllocator. For example, it might be
required for containers to compare iterators.
2025-10-12 00:53:10 +02:00
Vladislav Belov 53ff6f0d50 Adds LinearAllocator for faster allocations.
LinearAllocator (also known as bump allocator) allows to reuse the
same memory across the frame for short lifetime allocations.
2025-10-12 00:53:08 +02:00
Itms 29922d254b Fix libicu build for Windows amd64 2025-10-12 00:48:33 +02:00
Itms acf0ccc8dc Create a 64-bit Windows installer in bundles 2025-10-12 00:48:33 +02:00
Itms 78eba9f8c7 Patch win32 binaries as part of bundling 2025-10-12 00:48:33 +02:00
Itms 5826074374 Split building Unix tarballs and Win installer 2025-10-12 00:48:33 +02:00
Vladislav Belov bedb6129f2 Reduces string allocations in GUI and maths. 2025-10-11 19:44:22 +02:00
Ralph Sennhauser 4bf107352f Fix building spidermonkey with python 3.14
Fixes: #8427
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-11 15:47:45 +02:00
Ralph Sennhauser 39ea3b6ea5 Use custom runner for tests
The --libdir switch got lost at some point, which is useful for running
tests with a system build.

Further allow to switch the type of output at runtime avoiding an
unnecessary rebuild.

Finally allow to specify an output file, this means there is no need to
redirect stdout which might break the CI in case the tests write
something to stdout like in case of LOGERROR resulting the test result
not being valid xml.

Ref: #7534
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-11 11:34:38 +02:00
Vantha 48d8238354 Reset 'removed' flag before autoassigning players
Fixes #8396
2025-10-11 09:49:26 +02:00
Vladislav Belov 3ffb5ec5a0 Removes USE_FOG define and switches to a shader parameter.
Refs #8385
2025-10-11 08:11:35 +02:00
real_tabasco_sauce fbc324d97d fix athen marines selection of dock and regular variants
fixes #8128
2025-10-11 06:40:43 +02:00
phosit 81e6e78dac Use the isSavedGame member variable
The `isSavedGame` attribute has been introduced in ea12766834. The
variable has been turned in a member variable in 3a6540110b this
occurrence was missed when rebasing.

Fixes: #8417
2025-10-08 19:34:15 +02:00
real_tabasco_sauce fd1b7c046c nerf infantry champs and adjust seer and teutobod auras 2025-10-08 17:04:26 +02:00
real_tabasco_sauce c43aa1d609 fix debug build by directly setting probability for the inverse binomial in Decay.cpp 2025-10-08 17:00:09 +02:00
Vladislav Belov 8f4aa8ddbd Adds a script to modify rules and tests to it. 2025-10-08 13:56:48 +02:00
Ralph Sennhauser 0baafb5375 Don't set animation for production with UnitAi
Entities with a production queue when queueing or unqueueing items for
will set an appropriate animation which is desired for structures, like
the forge producing smoke, but not so for units as it interferes with
UnitAi animation state.

Units don't have animations for training or researching so the idle
animation will be set in that case instead. If such a unit is in motion
this results in the unit gliding. To avoid this just skip setting an
animation for entities having a UnitAI.

Reported-by: wowgetoffyourcellphone
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-07 19:25:21 +02:00
Ralph Sennhauser ef007b9e5a Fix gliding healers when group attack order
In case a healer is currently healing and is part of a selection ordered
to attack the healer gets moved along but the fsm state isn't changed
which leads to healer healing while gliding to the target.

Introduce a WalkToTargetRange function which does transition state in
addition by issuing an order instead.

Fixes: #6134
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-07 19:25:21 +02:00
phosit 3a6540110b Don't save matchsettings when loading a savegame
When loading a savegame more settings are loaded then normally. Thous
settings (such as TriggerScripts) can't be changed from the
matchsetting-screen.
With this commit the saved matchsettings.mp.json isn't overritten when
loading a savegame.

Fixes: #7632
2025-10-07 19:08:25 +02:00
phosit ea12766834 Don't filter when a saved game is loading
Filtering the maps sometimes changes the selection. Also it's not
required to filter the maps as the setting is already selected and
frozen.
This reuses the code which is used by campains since there the map might
also be frozen.

Fixes: #7682
2025-10-07 19:07:20 +02:00
wowgetoffyourcellphone 3ae3c7ad3b Attempt to fix the Han Great Tower max arrows bug
Tis a minor bug, but worth fixing.
2025-10-07 05:29:35 +02:00
Ralph Sennhauser 788708ed8c Add AppImage support
Add a Dockerfile having all needed tooling. Using a container also means
those are the libs that will end up being used in the AppImage.

Then add a script for building pyrogenesis either form git or from
extracted source tarballs and for assembling the AppImage and finally
creating the AppImage.

Add building the AppImage to the "bundles" pipeline.

Also add a wrapper script to use podman to drive the whole process
for convenience for local builds.

Ref: #7577
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-05 20:35:43 +02:00
Vladislav Belov 199f4cb666 Fixes uninitialized water textures.
Fixes #8052
2025-10-05 14:13:49 +02:00
Vladislav Belov e1d5e92c2a Restores minimap entities size and adds options.
Restores minimap entities size to size they have in A25.
Adds minimap options.

Fixes #6782.
2025-10-05 12:04:21 +02:00
real_tabasco_sauce 3dfd4b0d3e Differentiate cataphract as a stronger, but much slower unit, nerf the HP bonus technology. 2025-10-05 04:26:47 +02:00
real_tabasco_sauce 12be6a0e59 reduce melee champ cav HP from 300 to 260 2025-10-05 04:26:47 +02:00
real_tabasco_sauce 4ba618563c Add civ bonuses for Carth and differentiate embassies and their mercenaries. 2025-10-05 03:55:58 +02:00
real_tabasco_sauce 22ed1fcdef let athens civilians build their unique buildings
Fixes #8393
2025-10-05 03:01:02 +02:00
Vladislav Belov e63c80c613 Reduces string allocations in paths. 2025-10-05 01:31:27 +02:00
Ralph Sennhauser d22d8776e6 Fix layouting of texture preview in atlas
Commit fe192fe58f added one extra level,
so we have to layout the parent of the parent now to actually layout the
sidebar.

Fixes: #8388
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-10-01 14:40:30 +02:00
Kate 1e3f849816 Increase aura range for Kushite buildings
Temple of Amun's healing range increases from 40m to 70m.

Large Pyramid's aura range is increased to 100m.
2025-09-29 21:52:22 +02:00
phosit 2a25ef11b8 Import getHolder in startingStrategy.js
This was forgotten in 4da78788c8. The error only occurs when a PetraAI
wins.
2025-09-29 19:25:25 +02:00
Vladislav Belov 13b988cecb Removes shader effect duplications. 2025-09-29 12:04:53 +02:00
Vladislav Belov 275f6631c4 Allows to use the same technique for multiple shaders. 2025-09-29 12:04:42 +02:00
Vantha f65e839ac5 Add a new button style: 'BrownButton'
Each sprite is comprised of dynamically scaled 9 slices stored in a designated directory.
Base, over, pressed, and disabled variants are combined into a button style called
'BrownButton'.

The sprites have a native/maximum total resolution of 266 x 74 pixels.
(which is larger than any other button sprites)

Brightness of the base sprite is kept neutral so that it fits on both
light and dark backgrounds.

Disable compression and mipmapping as they don't work well with sliced
sprites.
2025-09-28 22:59:27 +02:00
real_tabasco_sauce 18ef4b6a1a Let units attacking low preference units without direction check for high preference units
-During each attack on a low preference target unless player-directed, update the range query and find a new target.
-Adjust behavior for elephants to work better versus infantry.
fixes #1488
2025-09-28 21:28:30 +02:00
real_tabasco_sauce 3b0bf7fe75 let legionary bonuses from centurion apply to first cohort champs 2025-09-28 20:18:40 +02:00
real_tabasco_sauce 1b0af6902e rework Han ministers 2025-09-28 19:43:24 +02:00
real_tabasco_sauce 0046de8840 differentiate maury maiden units into unique units 2025-09-28 19:39:03 +02:00
real_tabasco_sauce e5de43ef47 increase longsword splash damage while decreasing direct damage. Increase splash range. 2025-09-28 19:38:27 +02:00
real_tabasco_sauce f3ee09f196 buff elephants by adding a pierce armor and slightly increasing splash range 2025-09-28 19:38:27 +02:00
real_tabasco_sauce 7e10d50c0d increase default building capture regen 2025-09-28 19:36:52 +02:00
real_tabasco_sauce 8a9a180a50 add a capture attack of 1 for civilian units 2025-09-28 19:36:52 +02:00
real_tabasco_sauce 865b587b9a buff fort accuracy to improve lethality at longer ranges. 2025-09-28 19:26:37 +02:00
elexis 1f58836cf1 Fix NetServerTurnManager hanging if a client passed handshake but not authentication on gamestart.
Fixes #5201.
2025-09-27 10:02:46 +02:00
phosit 27b5368f1b Iterate once to search texture to convert
Use `std::ranges::max` so that only one iteration is needed to find the
texture of highest priority.

Using `std::ranges::max` with an empty range is undefined behavior. So
there has to be a special case.
2025-09-25 20:42:50 +02:00
real_tabasco_sauce 51767f3888 Optimize corpse decay parameters for faster clearance of corpses
Increase corpse acceleration so corpses spend less time below ground
Decrease decay delay and decay rate to improve percieved smoothness
Fixes #7548
2025-09-23 17:11:12 +02:00
real_tabasco_sauce f8e0a78d6d Add a random chance for a decay sinking event to occur.
Adds a 1/125 chance for a corpse to undergo a decay movement in a given frame.
This allows a probability passed from the template to determine the sinking behavior of the entity.
Fixes #7548
2025-09-23 17:11:12 +02:00
wowgetoffyourcellphone 90505c29ee Fix Roman aux cavalry attack animation
Fixes #8296
2025-09-20 21:00:49 +02:00
phosit 2098bf726a Seperate continue and onTick promises
Confirmation that the connection should start can't occour at the same
time then message exchange.
Rewriting it makes it easier to read.
2025-09-20 10:04:25 +02:00
phosit ec15ca6fee Split waitOnEvent from init in gamesetup_mp 2025-09-20 10:04:25 +02:00
phosit 0eca28f6b4 Common path of password and passwordless option
When no password was entered, it didn't stant to connect. So
`cancelSetup` isn't required.
2025-09-20 10:04:25 +02:00
Vladislav Belov 9884317d33 Fixes non-PCH builds after e8a5103f8c. 2025-09-18 13:26:20 +02:00
Ralph Sennhauser 59cb3cd67b Bump premake to 5.0.0-beta7
Fixes: #8362
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-09-18 12:06:29 +02:00
Itms 2386eb00a1 Update code owners 2025-09-18 08:56:46 +02:00
Itms fdbe3e17e6 Provide sha256 checksums for bundles 2025-09-18 08:51:14 +02:00
Vladislav Belov e8a5103f8c Fixes #8057 by properly initializing atlas texture.
Fixes #8057
Fixes #8184
Fixes #8345
2025-09-17 14:31:16 +02:00
Vladislav Belov 3eca24ed11 Fixes CC for fonts. 2025-09-17 12:32:12 +02:00
Vladislav Belov e2d9450d0d Revert "Font: make atlas uploads queue-aware on Vulkan"
This reverts commit 256dff7fd4.
2025-09-17 12:32:08 +02:00
wowgetoffyourcellphone 5be2d7d9ed Naval Redux 2.1
Naval Redux 2.1

1 Greatly streamline the tech tree after some criticism it was too lengthy.
2 Move Scout ship to Village Phase
3 Tweak some ship costs
4 Implement some ideas from @Real_T_S
5 Acquiesce to all of @Real's demands
2025-09-17 05:48:38 +02:00
Vantha 2fd624260f Remove some invalid GetGUIObjectByName calls
Their return values (undefined) were unused since 2cccd9825d, which is why they
didn't break anything. But due to the latest GetGUIObjectByName API
changes, they triggered some errors. They can be fully removed safely
now.

Fixes #8340
2025-09-16 08:52:11 +02:00
Jonny McCullagh b4ad152df3 escape opening square bracket in quotes.txt 2025-09-15 22:59:54 +02:00
trompetin17 4ef2bb77f2 Add ToJSVAL overload template for array of uknown bound
this commit fix and error in HWDetect when the libraries versions use
only MAJOR.MINOR like zlib in some linux os that is "1.3" that need
char[4] (1.3\0) conversion from Script::ToJSVal.

this commit create an overload template that matches "references  to
array of uknown bound" and forward it to existing const char* / const
wchar_t* specializations.

this bug was reported by Vantha.
2025-09-14 08:46:21 -05:00
Itms 9150c20818 Remove ScriptTypes and ScriptExtraHeaders headers
The first header was used to include the SpiderMonkey JS API at once,
with safeguards and preprocessor defines. Nowadays, SpiderMonkey
provides modular headers allowing us to include what we use, refs #8086.

Some defines have to be moved to compiler options but it is apparently
a mistake from the SM developers:
https://bugzilla.mozilla.org/show_bug.cgi?id=1987876
2025-09-14 13:17:18 +02:00
Itms c4762e22cc Remove obsolete signbit GCC workaround
Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8324
2025-09-14 13:17:05 +02:00
Itms 7b1d2fcb51 Remove obsolete GC defines, removed in ESR 38
https://bugzilla.mozilla.org/show_bug.cgi?id=914402
https://bugzilla.mozilla.org/show_bug.cgi?id=1107349

Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8324
2025-09-14 13:16:45 +02:00
wowgetoffyourcellphone 3413969b4c 3 new/updated structure portraits 2025-09-13 20:07:50 +02:00
trompetin17 423ba82837 Fix text right alignment with GUI Scale
Now that size uses float when emulating positioning, it was getting a
different value, like 0.008. This commit fixed that issue by using
std::floor to remove small noise.

Symmetrical for LEFT with std::ceil.
2025-09-13 10:01:51 -05:00
trompetin17 93f4c5cf22 Fix resizing GUI object to use ceiling values for width and height
The size is now float number, because of this code calculates the
required size, we should always ceiling the value to the next int to
remove any error or unwanted behavior in images or subpixel
calculations.
2025-09-13 09:58:27 -05:00
trompetin17 7027655864 Fix clipping logic in PutString to properly handle vertical boundaries
This commit enable "contains" or "intersects" to be visible instead of
hide.
2025-09-13 09:58:27 -05:00
trompetin17 b5e2ca7300 Fix GUI text clipping when scaling interface
When scaling the GUI, GetCapHeight was incorrectly accounting for
m_Scale which caused text to be hidden due to improper clipping
calculations.
This commit corrects the CapHeight calculation by ensuring that the
division by m_Scale is applied, allowing text to be displayed correctly
at all GUI scale levels.
2025-09-13 09:58:09 -05:00
Jonny McCullagh 5d8debe676 Add more tips 2025-09-13 15:18:30 +02:00
Itms 7c51013ef0 Remove incorrect default for autostart-players
When not provided, the number of players on autostart was set to 2,
which is incorrect for skirmishes and scenarios. This commit makes this
parameter ignored for non-random maps, as well as the other parameters
specific to random maps.

Furthermore, 2 is already set as a default number of players for random
maps (in the `PlayerCount` gamesettings attribute), setting it in
autostart code is redundant.

Fixes #8325
Refs #7269
2025-09-10 10:34:45 +02:00
Vantha a5b5331fa4 Fix chat line button sizing
The issue was that the rright value was 100%.
That's why the buttons would always extend across the full width of the
screen.
Replacing the value right in the XML would result in an invalid size, so
we can remove it from there and create a full, separate size in the code
each time (Object.assign just edits it), since the top and bottom values
specified in the XML were overwritten anyway.
And since the left margin of 3 is fixed, we better move it to the parent
object to avoid a constant like that in the code.

Fixes #8322
2025-09-10 08:55:02 +02:00
real_tabasco_sauce eac96dbcbd Add Germans Civilization 2025-09-08 22:20:13 +02:00
Itms 24b47b0e3a Fix strategic campaign city templates
The gendered civilian change made this unit native to its civil center,
but inherited templates in the proof-of-concept strategic map were not
adapted.

Fixes #8337
2025-09-08 17:24:20 +02:00
phosit 760ad169fe Steadily increase strongholds size with team size
`groupedDistance` is the "distance between neighboring players" but it
was used as the radius.
Then there was a special case when the team size is big and the
`groupedDistance` was to small.

With this commit the `groupedDistance` is actually used as
"distance between neighboring players" and removes the special casing.
2025-09-07 16:29:17 +02:00
phosit 94a0dde58a Equalize space between stronghold
Change the stronghold placement.
Preqiously the angle between the center of the strongholds where equal.
Now the distance between strongholds is equal.

This is done so that big teams have more space.
2025-09-07 16:29:17 +02:00
real_tabasco_sauce 89f4fc7e99 correct civilian train time after #8062 2025-09-06 11:31:39 -07:00
Ralph Sennhauser f44855126e Fix scrolling with GTK/QT wxWidgets backends
wxWidgets can use X11 APIs or the GUI toolkits GTK or QT on Linux, with
pure Wayland only the option to use the toolkits remains for
wxGetKeyState().

wxGetKeyState() is only usable for modifier keys with either toolkit and
so we need to bookkeep ourself.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-09-06 17:59:32 +02:00
obelix c963711667 Fix the tooltip of Giant maps
Tooltips for map sizes were introduced in 8cfd494b88 when 'Giant' 
received the same sentence as 'Very Large'.

This commit fixes the tooltip for Giant Maps by giving them a proper 
sentence, which might avoid confusion.
2025-09-06 14:43:49 +02:00
Ralph Sennhauser 4136b2f6f7 Clone InitAttributes for serialization test
Commit 8b11f6a151 requires InitAttributes to be available, which isn't
the case for the secondary context in serialization test. So clone
InitAttributes to make it available.

```
ERROR: JavaScript error: simulation/helpers/Commands.js line 89
InitAttributes is not defined
  reveal-map@simulation/helpers/Commands.js:89:7
  ProcessCommand@simulation/helpers/Commands.js:932:23
ERROR: Failed to call ProcessCommand() global script function
```

Reported-by: phosit <phosit@autistici.org>
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-09-06 13:13:25 +02:00
wowgetoffyourcellphone 3592814aa8 Gendered Civilians
Adds a randomly male and female Civilian unit which replaces the old "Female Citizen" for each civ.
New actors, new portraits, some new body textures, but the same stats as the old Female Citizen.
Updates maps, technologies, skirmish templates, et al. including the Tutorials.

Co-Authored By: Itms
Reviewed By: Vantha
2025-09-02 10:23:44 +02:00
wowgetoffyourcellphone 18818fd31c Create 24x24 obstructors for #8304
@phosit
2025-08-30 00:40:02 -04:00
phosit d85eef067b Make TaskManager independent of Future
`TaskManager` and `Future` where coupled together. When a task is pushed
a future is returned. Also the `Future::Wrap` function was inconvenient
to use.
Now `TaskManager::PushTask` doesn't return a `Future` anymore. This
alows to use different `Future`-like types.
Also it's possible to easily use the `Future` with a different type that
implements a `PushTask` function.
2025-08-28 20:01:39 +02:00
phosit 8abe9f6cea Rename warn to aiWarn in utils.js
There is a call to `warn` in this function. That caused infinite
recursion.
Everywhere the function is imported it's aliased as `aiWarn`. So just
export it with that name and remove the aliasing.

Introduced in: #8255
2025-08-25 21:44:32 +02:00
elexis 8b11f6a151 Delete redundant per player CheatsEnable property
We do not see benefit in enabling cheats for certain players but not for the rest.
The AI cheats irrespective of the CheatsEnable property.

This patch uses InitAttributes to check if cheats are enabled making it
slightly harder to workaround it from js.

See SetLosRevealAll in CCmpAIManager and PETRA.Config.prototype.Cheat.

refs 996a32125c / #879 (AI reveal los);
refs 202a02568b /  #1555 (cheat codes, cheatsEnable for AI);
refs 25293ce0cc  (AIDiff GatherRateMultiplier),
refs f6e0c4c5a4  / #2019 (no more cheatsEnable for AI),
refs 3246b02cda  (SetTradeRateMultiplier)
refs de72510c60  / #6302 (move from InitGame.js to petra/config.js)
2025-08-25 20:41:31 +02:00
trompetin17 94c907342a SoundManager: Replace manual memory with unorderedmap
Remove manual memory management throughout the SoundManager subsystem
in favor of unorderedmap.

Key changes:
- Eliminate manual new/delete calls and potential memory leaks
- Update all sound item classes to use SoundManager factory
- Modernize resource management in OggData and related components
- Ensure exception-safe memory handling across the audio pipeline

This refactoring improves code maintainability, reduces crash risk from
memory errors, and aligns with modern C++ best practices.
2025-08-25 09:45:14 -05:00
Ralph Sennhauser fe192fe58f Make wxStaticBox' content children
As per the docs[1]: Note that since wxWidgets 2.9.1 you are strongly
encouraged to create the windows which are added to wxStaticBoxSizer as
children of wxStaticBox itself.

wxWigets 3.3 added a warning to that end.

[1] https://docs.wxwidgets.org/3.2/classwx_static_box_sizer.html

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 18:27:30 +02:00
phosit ac25071a2e Fix typo in "Headquaters" introduced in 4da78788c8
There is another usage which was wrongly spelled. It was spelled
differently so it wasn't found in 835f59a604.

Fixes: #8291
2025-08-24 16:28:56 +02:00
Ralph Sennhauser ceb491c599 Make cppcheck happy wrt std::span usage
We don't gain anything using a span here, so just don't.

```
source/graphics/Font.cpp:535:35: error: Out of bounds access in 'tempDstRow[3]', if 'tempDstRow' size is 2 and '3' is 3 [containerOutOfBounds]
   const float dstAlpha{tempDstRow[3] / 255.0f};
                                  ^
source/graphics/Font.cpp:543:14: error: Out of bounds access in 'tempDstRow[2]', if 'tempDstRow' size is 2 and '2' is 2 [containerOutOfBounds]
   tempDstRow[2] = static_cast<u8>(std::round(((b * srcAlpha + tempDstRow[2] * dstAlpha * (1.0f - srcAlpha)) / outAlpha)));
             ^
source/graphics/Font.cpp:544:14: error: Out of bounds access in 'tempDstRow[3]', if 'tempDstRow' size is 2 and '3' is 3 [containerOutOfBounds]
   tempDstRow[3] = static_cast<u8>(std::round(outAlpha * 255.0f));
             ^
```

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 11:09:57 +02:00
Ralph Sennhauser 77e05ca26d Convert span with dynamic extent to static extent
In some places we know the size at compile time, so use that knowlage.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 11:09:57 +02:00
Ralph Sennhauser 2cedb48de2 Remove custom span and use std::span
With C++20 the custom container PS:span, which was a backport of
std::span is no longer needed.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 11:09:57 +02:00
Ralph Sennhauser 2daa5385a8 Remove obsolete warning suppression
This was needed for old Visualstudio and is no longer needed with
VS2022.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 11:09:57 +02:00
Vantha 83f4d8789b Lift window width constraint of .getPreferredTextSize
The method's point is to calculate a text's height and width if it was written
in a single line -- no matter how long the caption, even if it's wider
than the window.
2025-08-24 11:03:34 +02:00
phosit 835f59a604 Fix typo in "Headquaters" introduced in 4da78788c8
Fixes: #8291
2025-08-24 07:32:24 +02:00
elexis 2413d13483 Place bigger placeblock on survival of the fittest
This reverts 50b76acdd5 As it places to many entities on giant maps
2025-08-23 20:08:37 +02:00
Dunedan f43f4ae1b1 Update the pre-commit hooks
With v3.12.0 shfmt changed the behavior of the `--simplify` option to
ignore any EditorConfig when it's provided. Therefore, this option is
now moved to the EditorConfig as suggested by the shfmt author. See
https://github.com/mvdan/sh/issues/1173 for details.
2025-08-22 13:04:38 +02:00
Vantha 4dace890cf Fix some 'Failed to get GUI object by name' errors
Fixes #8297
2025-08-22 10:50:28 +02:00
Ralph Sennhauser e22c5bd05e Fix some includes in atlas
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.

Update premake script to include missing deps and drop various extra
paths for simplification.

Don't always include wx/wx.h via precompiled.h in case PCH is disabled.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-21 14:18:38 +02:00
Itms 7fde47e1f3 Fix linker invocation on macOS Sequoia 2025-08-15 19:43:36 +02:00
Itms 758229558e Fix segfault during GUI GC 2025-08-15 19:43:36 +02:00
Itms 7038d87454 Update SpiderMonkey to ESR 128.13
Fixes #7662
2025-08-15 19:43:34 +02:00
Itms 733297a038 Fix use of pkg-config when building SM on macOS 2025-08-15 11:32:33 +02:00
trompetin17 ecfa5be686 Fix undefined difficulty reference in config.js
Fix ERROR: JavaScript error where 'difficulty' is not defined on line
247 of config.js.

The bug was introduced in commit 062be89694 where two issues occurred:

this.difficulty was incorrectly set to the entire difficultyLevel module
instead of the difficulty parameter value.
Later comparisons used undefined difficulty variable instead of the
imported difficultyLevel module
2025-08-15 01:39:39 -05:00
Ralph Sennhauser 5b5f678e3f Fix some includes all over the place
Make include-what-you-use happy with some files in source and fix what
needs to be fixed.

Add markers to precompiled.h header includes to avoid
include-what-you-use wanting them to be removed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-14 20:15:30 +02:00
Vincent Cheng 390a2f473e Fix nvtt build failure on Debian i386 2025-08-14 20:14:21 +02:00
Vantha 2026a5fece Clean up Engine.GetGUIObjectByName calls
GetGUIObjectByName was previously made stricter, logging an
error if it doesn't find the target object.
This commit deals with the resulting error-causing (invalid) calls,
by deleting them if they're unnecessary or converting them to the new
TryGetGUIObjectByName (which doesn't log any errors).
2025-08-14 10:22:56 +02:00
Vantha 6515c3fb1f Show an error when Engine.GetGUIObjectByName fails
It previously failed silently and just returned undefined which would often
only cause errors later on. Printing an error as soon as that happens helps
with debugging, by directly catching typos, for example.

For cases where the queried object may not exist, a new Engine function
called TryGetGUIObjectByName is introduced. It doesn't log any errors
and behaves exactly as GetGUIObjectByName used to.
2025-08-14 10:22:56 +02:00
Ralph Sennhauser 3647921bed Fix some includes all over the place
Make include-what-you-use happy with some files in source and fix what
needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-13 19:38:21 +02:00
Ralph Sennhauser 827116cd35 Fix issues pointed out by cppcheck
For the memleak warning actually wx will free it for us, so just
suppress the warning.

```
source/soundmanager/data/SoundData.cpp:48:29: error: Iterators of different containers 'CSoundData::sSoundData' and 'sSoundData' are used together. [mismatchingContainers]
  if ((itemFind = CSoundData::sSoundData.find( theData->GetFileName().string() )) != sSoundData.end())
                            ^
source/soundmanager/data/SoundData.cpp:62:28: error: Iterators of different containers 'CSoundData::sSoundData' and 'sSoundData' are used together. [mismatchingContainers]
 if ((itemFind = CSoundData::sSoundData.find(itemPath.string())) != sSoundData.end())
                           ^
source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Terrain/Terrain.cpp:145:3: error: Memory leak: buf [memleak]
  }
  ^
```

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-13 17:09:36 +02:00
phosit 062be89694 Move enums to own files in ai
This way they don't accidentally get mutated.
2025-08-13 14:04:16 +02:00
phosit 0a2bd6a5a4 Use proper js-modules for ai common-api
The common-api already used a coding pattern which was called modules.
That is replaced with native js-modules.

Refs: #8081
2025-08-13 14:04:16 +02:00
phosit 4da78788c8 Use proper js-modules for petra
Petra already used a coding pattern which was called modules. That is
replaced with native js-modules.

Refs: #8081
Fixes: #1024
2025-08-13 14:04:16 +02:00
Ralph Sennhauser 0368a1b391 Make requirements sufficient in StunClient
While std::is_pod is required it is not sufficient so use
std::is_integral as condition which is.

Further replace the static_assert with a requires and use the new endian
support to avoid use preprocessor.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:16 +02:00
Ralph Sennhauser 65d0561d70 Switch to using C++20
Obviously for shiny new features.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:16 +02:00
Ralph Sennhauser c4848dbe9c Require wxWidgets 3.2
wxWigets 3.0 does stuff that is deprecated in C++20, namely bitwise
operation between different enumeration types. wxWidgets 3.2 has
widespread support and in fact 3.3 was release recently so 3.4 won't be
that far off anymore either. Requiring 3.2 will allow us to do several
cleanups.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:16 +02:00
Ralph Sennhauser 9381ea50df Suppress warnings on old GCC
Current GCC doesn't warn here, so add -Wno-stringop-overflow,
-Wno-attribute-warning, -Wno-restrict and -Wno-array-bounds to the list
of warnings for old GCC.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:16 +02:00
Ralph Sennhauser c12d52b8c3 Define __PRETTY_FUNCTION__ for Windows
mozilla/LinkedList.h uses __PRETTY_FUNCTION__ in debug builds, even when
using MSVC, so just define it to allow building with C++20.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser af3f7acfe7 Explicitly const_cast string literal for C API
The implicit conversion form sting literal to char* for C compatibility
was removed with C++11, seems MSVC caught up with this in C++20.

Use explicit cast instead where needed and change API to const char*
otherwise.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser 6ed56954ab Add missing const in ModuleLoader
Add the required const to operator == and != as required and warned
about with C++20.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser 58f697f227 Don't define main as extern "C"
Was done for Android support but the cleanup didn't revert to the
original version and at least clang-20 warns -Wmain

Ref: f4625e69af
Ref: 20d23eb340
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser f8a2d5ddaa Silence mongoose warnings
C++20 removed a sizable portion of valid places to use volatile
specifier. As mongoose is on the way out just add the warning to the
list of suppressed warnings. Further add a warning already suppressed
when using GCC to the list of suppressed warnings with Clang.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser 27caf4b87d Add mising const in Ogre
Add the required const to operator == as required and warned about
with C++20.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser 4a14e382d5 Replace deprecated std::is_pod
std::is_pod is deprecated in C++20 and as such triggers
-Wdeprecated-declarations when built with C++20, "is_standard_layout &&
is_trivial" is the equivalent, so migrate to that.

While at it replace runtime dispatch with compile time and reduce the
required trait for memcpy to what is really needed.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 20:45:15 +02:00
Ralph Sennhauser d6b0198bab Fix some includes in atlas
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.

Define ATLASDLLIMPEXP in a regular header instead of a PCH header and
dedupe its definition.

wxWidgets uses WX_ATTRIBUTE_PRINTF this days, so remove the workaround
for ATTRIBUTE_PRINTF.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-12 19:52:40 +02:00
Itms cea708ac91 Cleanup of IGUIObject classes
- Explicitly delete move constructor and move assignment operator to
  avoid risk of memory leaks
- Remove unused class and typo
- Use same invocation of ScriptInterface as elsewhere
2025-08-11 18:38:01 +02:00
Itms 74bbdca25f Remove default dtors of IGUIObject derived classes 2025-08-11 18:38:01 +02:00
Stan 6a8366b99a Add more libraries to the report 2025-08-11 14:00:14 +02:00
Itms 2fc12e9fe9 Remove obsolete comment, closes #5128
The wish I expressed there was fulfilled in D3210 / 0406c4dfde
2025-08-10 23:32:07 +02:00
real_tabasco_sauce 55c17a905d Use footprint for fish selection box
The addition of seagulls made fish selection boxes large, leading to clumbsiness when trying to select fish. Using the footprint for the selection box makes for a more intuitive selection.
2025-08-10 13:00:51 +02:00
Ralph Sennhauser 45afefa961 Rename wcsnlen and strnlen to C11 names
Those functions were added to the C11 standard as an extension under the
name wcsnlen_s and strnlen_s. Also supported under that name in Windows.

Renaming avoids a possible name conflict with the posix functions of the
same name. Further this new name follows the pattern of names of the
other "secure" functions.

Fixes: #8274
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-10 07:33:00 +02:00
Ralph Sennhauser fbc74482db Fix some includes in atlas
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.

Drop the wxWidgets specific handling of precompiled headers in some
places, it isn't consistently used which it would have to to have meaning
and was mostly for early VS implementation of precompiled headers and a
lot of time has gone by since.

Drop Borland C++ compiler specific quirk, that compiler was
discontinued long ago and doesn't support modern C++.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-09 18:28:46 +02:00
Stan 0dc9477109 Fix missing this call
Reported by: @trompetin17
Pull Request: #8265
Fixes: e35fce8524
2025-08-09 16:32:09 +02:00
Ralph Sennhauser 73ca3d303b Fix some includes in atlas
Make include-what-you-use happy with some files in source/tools/atlas
and fix what needs to be fixed.

Add "source" to include path for AtlasUI target to allow for absolute
includes. In the future all but one should be removed.

Drop check for at least boost 1.40.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-09 06:52:41 +02:00
Ralph Sennhauser cc7a165365 Fix includes in source/simulation2
Make include-what-you-use happy with some files in source/simulatation2
and fix what needs to be fixed.

source/simulation2/system/ComponentTest.h uses cxxtest, so add cxxtest
to the deps for simulation2 target.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-08 07:10:11 +02:00
Ralph Sennhauser 2bad15b4c2 Fix includes in source/simulation2
Make include-what-you-use happy with some files in source/simulation2
and fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-07 20:00:49 +02:00
Ralph Sennhauser b066bb0b99 Fix includes in source/scriptinterface
Make include-what-you-use happy with files in source/scriptinterface and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-07 11:45:19 +02:00
Ralph Sennhauser 32fd10691d Fix includes in source/simulation2
Make include-what-you-use happy with some files in source/simulation2
and fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-07 08:38:40 +02:00
Stan 94a7dbacdc Build molten vk instead of relying on a prebuilt version 2025-08-06 21:21:30 +02:00
Jonny McCullagh aee2aa4cfd Add new historical quotes 2025-08-05 22:27:12 +02:00
Kate 96ab6ecb41 Rename "Join game" to "Connect by IP" in main menu 2025-08-05 22:04:13 +02:00
phosit b1196fc94f Use promises to update the colormixer
Callbacks introduce indirections which are harder to understand.
2025-08-05 19:15:01 +02:00
phosit 17338daaaa Groupe a chanels in the collor-mixer
It's easyier to construct and iterate chanel by chanel instead of
iterating three arrays at once.
2025-08-05 19:15:01 +02:00
phosit 6c481d4811 Make the colormixer a module
Modules don't expose global symbols. Because of that not all functions
have to be cramed in to one class. The functions can now be split in a
more readable way.

Ref: #8081
2025-08-05 19:15:01 +02:00
Ralph Sennhauser 46d44bbc14 Fix includes in source/ps
Make include-what-you-use happy with some files in source/ps and fix
what needs to be fixed.

Delete source/ps/FutureForward.h as it is no longer used.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-05 07:21:22 +02:00
Itms 03fff3572f Use conforming preprocessor with modern MSVC
https://learn.microsoft.com/en-us/cpp/preprocessor/preprocessor-experimental-overview
2025-08-04 17:35:48 +02:00
trompetin17 251f6bfc86 Enhance language selection by applying CJK font styles 2025-08-04 09:35:46 -05:00
trompetin17 690838e3dc Add [locale] inline tag for per-locale fonts
New `[locale='xx']...[/locale]` markup lets GUI text sections render
with a locale-specific font (e.g. CJK) while the rest of the caption
keeps the current game font.

guiObject.caption = "Hello [locale='ja']世界[/locale], how do you
[locale='zh']感覺[/locale]" This is ideal for language pickers and
similar UI where you want the language name shown in its own script.

This commit unlocks richer, self-explanatory international UI while
keeping the legacy text behaviour unchanged.
2025-08-04 09:35:41 -05:00
trompetin17 47454a592e Fix casing for debug box configuration keys in default.cfg and TextRenderer.cpp 2025-08-04 07:44:12 -05:00
Itms ed55976c6c Set pyrogenesis as start project in Visual Studio
Fixes #7218
Refs #3729, #404
2025-08-04 12:39:55 +02:00
phosit 9f15df2831 Calculate baseResourceConstraint only once
`baseResourceConstraint` was calculated for every resource.
2025-08-03 21:05:14 +02:00
phosit 0cf1697594 Allow maps to not specify BaseResourceClass
There was already a check to handle no `BaseResourceClass` but it's
handled in a way that could lead to errors later on.
2025-08-03 21:05:14 +02:00
phosit 0c96ef7906 Add stronghold placement to Cantabrian Highlands
With stronghold each team is placed on a hill.

With stronghold placement the hills are bigger. On tiny maps the ramps
might overlap and enemies might not be reachable. To prevent that the
ramps are shortened and the angle is changed to point more towards the
center of the map.

Refs: #7717
2025-08-03 19:08:04 +02:00
phosit ecb2db1dcd Return objects from placement-functions
An alternative to 6a43f91630 which doesn't restrict
`playerPlacementByPattern` to return exactly two values.
2025-08-03 19:08:04 +02:00
Ralph Sennhauser 86255ed66f Fix includes in source/simulation2
Make include-what-you-use happy with some files in source/simulation2
and fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-03 17:16:27 +02:00
phosit eee48b74dd Store IGUIObjects in std::unique_ptr in CGUI
The object are automatically deleted. The destructor can now be
defaulted.
2025-08-03 16:55:43 +02:00
phosit 6eac128f12 Pass IGUIObject as reference
Where nullptr isn't allowed references should be used.
2025-08-03 16:55:43 +02:00
phosit f2dfb94b88 Return void from CGUI::Xeromyces_ReadObject
The returned value was never used.
Now all CGUI::Xeromyces_Read* functions return void.
2025-08-03 16:55:43 +02:00
phosit 50b76acdd5 Restrict foundations on survival of the fittest
Units which are able to build can't reach the center, to build the
placed foundation and the collectors can't build.

This might help Petra a bit and avoid players placing foundations that
cannot be built.
2025-08-03 16:50:43 +02:00
Ralph Sennhauser 8a6d7b6c65 Fix includes in source/ps
Make include-what-you-use happy with some iles in source/ps and fix what
needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-03 15:57:56 +02:00
Ralph Sennhauser 7dece41990 Fix includes in source/lib
Make include-what-you-use happy with some files in source/lib and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-03 10:15:37 +02:00
rene 35db768ae5 Remove incorrect tech requirement for Kushites
Naval Ballistae cannot be researched by the Kushites, who don't have
access to siege ships. Hence their unique Flaming Projectiles technology
cannot depend upon Naval Ballistae.

This removes the dependency and increases the cost of the unique tech.

Fixes: #8046
Patch-By: rene
Reviewed-By: Itms
Reviewed-At: https://gitea.wildfiregames.com/0ad/0ad/pulls/8056
2025-08-03 00:29:51 +02:00
Ralph Sennhauser 621a9c422f Fix includes in source/graphics
Make include-what-you-use happy with files in source/graphics and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-02 21:39:39 +02:00
phosit 07309450fc Make also dap respect 'no-useless-assignment'
Forgotten in #8163 due to rebase.
2025-08-01 15:57:27 +02:00
phosit 582541ea80 Enable eslint rule 'no-useless-assignment'
Enable rule 'no-useless-assignment' [1] and fix violations.

[1] https://eslint.org/docs/latest/rules/no-useless-assignment
2025-08-01 11:26:40 +02:00
phosit 27a0c22a23 Remove TIMER debug_filter
There are now no "TIMER" messages printed anymore. So the filter can be
removed.

Refs: #1003
2025-07-29 18:19:59 +02:00
phosit 971525a41b Remove TIMER_BEGIN and TIMER_END
`TIMER` messages where printed to stdout which lead to noise.

Refs: #1003
2025-07-29 18:19:59 +02:00
phosit f721f56ad4 Replace TIMER with PROFILE2
`TIMER` messages where printed to stdout which lead to noise.

Refs: #1003
2025-07-29 18:19:49 +02:00
Ralph Sennhauser aed1570040 Fix some includes in source/ps
Make include-what-you-use happy with some files in source/ps and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-28 16:59:04 +02:00
phosit 08d8f0f61c Remove UNUSED2
The remaining uses can be changed to `std::ignore`.
Fix #7760
2025-07-28 13:16:37 +02:00
phosit eb3f0166f8 Prefer [[maybe_unused]] over UNUSED2
`[[maybe_unused]]` is in the C++ standard.
2025-07-28 13:16:37 +02:00
phosit 5be02743fa Don't use UNUSED2 on always unused variables
Not introducing a variable enforces that the variable is not used.
`UNUSED2` on the other hand is used to silence the warning.
2025-07-28 13:16:37 +02:00
phosit c0f20171f8 Remove wrong UNUSED2
Some variable are marked unused even though they are used.
2025-07-28 13:16:37 +02:00
Stan e35fce8524 Move globals to the PopCapManager prototype. 2025-07-27 19:00:04 +02:00
Ralph Sennhauser f9e1e742bf Fix includes in source/renderer
Make include-what-you-use happy with files in source/renderer and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-27 16:07:14 +02:00
Ralph Sennhauser 27f7216be7 Use proper units for time conversion
On *nix the conversion of timeval and timespec to double needs to use
the actual unit in use instead of the unrelated clock resolution.

Fixes: aa3bd08513
Fixes: #8215
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-27 14:11:52 +02:00
Ralph Sennhauser 70b8c6eb52 Prefer standard int types
<cstdint> since C++11 defines all those int types and macros, therefore
drop extra definitions in source/lib.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-25 15:53:40 +02:00
Ralph Sennhauser 9c7bbd531f Fix some includes in source/lib
Make include-what-you-use happy with some files in source/lib and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-25 07:11:21 +02:00
Ralph Sennhauser 3c1a37985a Fix includes in source/network
Make include-what-you-use happy with files in source/network and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-23 18:18:47 +02:00
Ralph Sennhauser 41c65b972b Print all copyright violations at once
If there are multiple commits with bad copyrights then only the results
for one was printed and immediately returned failure. This change
collects all and returns success or failure after.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-23 17:19:07 +02:00
Ralph Sennhauser c373334b90 Use fixed fetch-depth for copyright linter
The old trick to get needed commits doesn't work anymore. The context in
gitea unlike on github doesn't carry the number of commits, therefore
just fetch a fixed depth of 100 which is to reason should be enough.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-23 17:19:07 +02:00
trompetin17 df7b2fcd2a Win: include <cctype> for isalpha without PCH
Building the workspace with `--without-pch` fails on MSVC:

    source/lib/sysdep/os/win/acpi.cpp(123): error C3861: 'isalpha':
    identifier not found

The pre-compiled header normally brings in `<cctype>`, but when PCH
generation is disabled the translation unit must include the header
explicitly.

Add the missing `#include <cctype>` to
`source/lib/sysdep/os/win/acpi.cpp`.

No functional change; the code now compiles cleanly with or without PCH.
2025-07-23 09:17:27 -05:00
Itms 8ccba254fe Remove modmod dependency in test_CGUIText.h
The test loading the `mod` mod uses the bold variant that is present in
`_test.minimal`. Removing the need for the `mod` mod allows packagers to
build and run tests from the `unix-build` tarball without needing the
`unix-data` one.

The setup for this test suite defines the italic variant of the sans
serif font, but this variant is not present in `_test.minimal` and is
not used in any test, so remove that as well.
2025-07-23 12:20:19 +02:00
Itms 781d2b6ab6 Throw exception, detected by C4834 warning 2025-07-23 10:21:27 +02:00
Itms 2d6d510ffa Hide compiler warnings from external includes 2025-07-23 10:21:26 +02:00
Itms aca798b318 Adapt the build infrastructure to VS2022 2025-07-23 10:21:25 +02:00
Stan ef69c37f66 Add VS2022 support with the v143 toolset 2025-07-23 09:19:29 +02:00
trompetin17 8ed40553c8 Update SetFormatAndFreq method to use ALenum type in format parameter 2025-07-22 08:41:03 -05:00
trompetin17 019514a9cf Refactor COggData class: make destructor non-virtual, adjust method declarations for consistency 2025-07-22 08:41:02 -05:00
trompetin17 000304a402 Rename m_BuffersUsed to m_BuffersCount for consistency in COggData class 2025-07-22 08:41:02 -05:00
trompetin17 ef28d5222a Use 'using' instead of 'typedef' for OggStreamPtr definition 2025-07-22 08:41:01 -05:00
trompetin17 c40aada404 Rename atFileEOF to AtFileEOF for consistency in Ogg classes 2025-07-22 08:41:01 -05:00
trompetin17 586d02838a Refactor Ogg buffer logic to use span and vector
Modernized COggData::FetchDataIntoBuffer and OggStream
interface:

- Replaced raw buffer pointer with std::vector<u8> in COggData
- Updated GetNextChunk to use PS::span<u8>
- Removed manual new/delete and memset usage
- Replaced long with ALsizei for m_Frequency to match OpenAL API
- Simplified type usage with size_t where appropriate
- Eliminated unnecessary casting and improved code clarity

These changes improve safety, readability, and bring the
code closer to modern C++ standards.
2025-07-22 08:41:00 -05:00
trompetin17 325bedcf3f Use std::array for OggData buffer handling
Replaced the raw C array for m_Buffer with std::array
to improve bounds safety and code clarity.

- Used .data() and .at() for buffer access
- Added check for bufferCount exceeding OGG_MAX_BUFFER_COUNT
- Left FetchDataIntoBuffer unchanged to avoid breaking external usage
  (e.g. CStreamItem)

This refactor improves safety while keeping external API stable.
2025-07-22 08:41:00 -05:00
trompetin17 21f26455f5 Decouple buffer config from SoundManager
OggData now manages its own buffer size and count directly,
instead of relying on SoundManager to provide those values.

- Removed unused GetBufferCount() and GetBufferSize()
- Use default values for buffer size and count in OggData
- Documented buffer settings for clarity

This change centralizes control in OggData and improves encapsulation.
2025-07-22 08:40:59 -05:00
trompetin17 50dbd5ca2d Remove unused AddDataBuffer declaration
The AddDataBuffer method was declared but never defined
in any implementation of CSoundData or its derived classes.

It is also not used anywhere in the codebase, so this
commit removes the dead declaration to clean up the
interface.
2025-07-22 08:40:59 -05:00
trompetin17 95fc9bd2ed Standardize OggData fields and variable naming
This commit renames ogg to m_OggStreamPtr for clarity and consistency
with naming conventions. Additionally, it moves the m_Format and
m_Frequency fields to the private section to ensure proper
encapsulation.

Local variables like pcmout have been renamed to PCMOut to match style
conventions, and all member fields now follow a consistent m_ prefix
style, placed at the end of the class definition for clarity.

These changes help improve code readability, enforce privacy, and align
with the rest of the codebase's naming standards.
2025-07-22 08:40:58 -05:00
trompetin17 e95829494c Ensure brace initialization variables in OggData
This commit updates the OggData-related classes to use uniform brace
initialization ({}) for member variables where applicable. Brace
initialization improves clarity and prevents potential narrowing
conversions or unintended behavior caused by default constructor
ambiguity.

This change improves consistency and aligns with modern C++ best
practices, especially in C++11 and later where brace initialization is
recommended for safer initialization semantics.
2025-07-22 08:40:57 -05:00
trompetin17 e97292430d Remove manual Close method from OggStream
The OggStream interface no longer needs the Close() method.
OpenOggNonstream returns a smart pointer (OggStreamPtr),
so resource cleanup is automatically handled by the destructor.

OggStreamImpl now calls ov_clear in its destructor, making
manual cleanup unnecessary. This commit removes the Close()
method from the interface and its implementation.
2025-07-22 08:40:48 -05:00
phosit e03b6ae657 Remove isNomad in unknown.js
`isNomad` got removed in 6bb7f3fd39 this use was missed.

It wasn't called. So it always evaluated to true.
2025-07-21 11:07:57 +02:00
Ralph Sennhauser 8398f1baf4 Fix some includes in source/graphics
Make include-what-you-use happy with some files in source/graphics and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-20 17:28:48 +02:00
Ralph Sennhauser 0dc52a4d43 Drop GetWstringFromWpath helper function
657be906fe allowed the use of boost filesystem v4, so this should have
been updated as well. As boost filesystem v2 is irrelevant as it was
removed in boost-1.50 so just remove the wrapper function altogether.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-20 07:24:35 +02:00
Stan 0d60ecbf96 Remove OS_MAC macro
It hasn't been used in a while, and we shouldn't pretend to support macOS < 10.9.
2025-07-19 18:16:14 +02:00
Ralph Sennhauser 6f2f8c13bf Replace boost::mt19937 with std::mt19937
Available since C++11 and already used in the codebase.

Ref: #8210
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-19 10:46:02 +02:00
Ralph Sennhauser a2f15bae4e Fix some includes in source/graphics
Make include-what-you-use happy with some files in source/graphics and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-18 07:30:04 +02:00
Ralph Sennhauser 4324dc1447 Fix some includes in source/lib
Make include-what-you-use happy with some files in source/lib and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-17 20:07:25 +02:00
trompetin17 b32b018769 Fix chat session incorrect width calc
Refs: #8188
2025-07-17 09:46:31 -05:00
trompetin17 ffdf527d90 Fix label resizing in Map Browser
Refs: #8188
2025-07-17 09:46:18 -05:00
trompetin17 01d2481f55 Fix Structure Tree misplaced phase icons
Refs: #8188
2025-07-17 09:45:35 -05:00
Ralph Sennhauser 1c9d4508f7 Cleanup of premake pkgconfig module
Split public and private stuff into their own sections and do parsing of
libs in a helper function analog to the parse helper function for
includes and document public funcions using LDoc. Finally make setting
the static flag a function.

Ref: #8135
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-17 11:22:05 +02:00
Ralph Sennhauser 0a78acf4dd Drop header lib/posix/posix_time.h
Only used for timespec which is in <ctime> since C++17. All other uses
were already obsolete with C++11 so remove the header wrapper.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-16 18:28:05 +02:00
Ralph Sennhauser 826dba847c Make wfilesystem.cpp freestanding
Copy some wtime internals to wfilesystem.cpp with internal linkage only,
this code has had no use outside of wfilesystem and was only added to
wtime in case other use cases could be found. This will allow removing
posix_time and affiliated code.

wfilesystem will become obsolete with the move to <filesystem>

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-16 18:28:05 +02:00
Ralph Sennhauser 2e6f62dcf9 Use clock_gettime on macOS
Is a Posix function and available on macOS since version 10.12, has better
granularity than gettimeofday. Add missing header <time.h> where
clock_gettime is specified.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-16 18:28:05 +02:00
Ralph Sennhauser a03268ebae Drop header lib/posix/posix_errno.h
Does only include <errno.h> with the exception on Windows but only if
not using MSVC and even then depends on whether boost is included first
or not.

Use <cerrno> which was added in C++11 and is based of of Posix instead
of a particular cerrno.h of a particular C library.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-15 19:42:34 +02:00
trompetin17 4fd3533f37 Fix wrapping by passing window width to text size
Why
Passing 0 as the width to `CGUIText` meant "no wrapping".
Buttons and text objects therefore treated every caption as a
single unbroken line, ignoring embedded new-line characters and
overflowing their allotted space.

What
`GetPreferredTextSize` in both `CButton` and `CText` now forwards
`m_pGUI.GetWindowSize().Width` instead of 0.
With a real width the underlying `CGUIText::GetSize()` can measure
the caption using normal word-wrap rules, restoring correct
multi-line behaviour and preventing layout glitches.

Fixes: #8193
2025-07-14 15:02:13 -05:00
trompetin17 b2fc1d6943 DapInterface: shutdown sockets on Unix
FreeBSD could hang indefinitely when the debug-adapter process
terminated because we closed the TCP socket without first calling
`shutdown()`.  On that platform (and similarly on Linux and macOS)
a peer that is still blocked in `recv` will not be woken up unless
a full‐duplex shutdown is performed.

This patch adds `shutdown(fd, SHUT_RDWR)` in `DapInterface.cpp`
for Linux, *BSD, and macOS builds, preventing the observed hang.
2025-07-14 13:53:17 -05:00
phosit 8f9c92f30c Utilize minDist in placePlayerBaseBerries
Only maps where `minDist` and `maxDist` differ get changed by this
commit. That is only "Deep Forest".

This has been around since `placePlayerBaseBerries` got introduced in
921850cdef.
2025-07-13 20:29:54 +02:00
phosit 6bb7f3fd39 Remove isNomad from rmgen-common
This removes a usage of the global `g_MapSettings`.

The conversion to bool isn't required.
`mapSettings` (non-global) is available since e01ea16ae5.
2025-07-13 20:29:54 +02:00
phosit aa0c195332 Remove get function in placePlayerBase
`get` is used to get a property of `args` or a default if the property
doesn't exist.
`args` was bound to `get` so it obscured dataflow.

`get` was usefull when there wasn't a `??` operator.
2025-07-13 20:29:54 +02:00
phosit bb76a4f711 Remove trivial playerPosition
`playerPosition` is the same as `args.playerPosition` so it isn't of
much value and does obscure dataflow.
2025-07-13 20:29:54 +02:00
trompetin17 c1353d665a Add missing includes for fmt and CLogger in test_DapInterface.h 2025-07-13 07:27:56 -05:00
Itms 16bcc5a870 Bump build date of A27.1 RC2 2025-07-12 15:25:10 +02:00
Itms b362f0537a Fixup SpiderMonkey DLL for Windows 7 on Win32
Pulling the DLL from SVN is performed separately to allow backporting
to A27.

Accepted-By: sera
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8175
2025-07-12 14:26:30 +02:00
Ralph Sennhauser 47b2733183 Fix some includes in source/renderer
Make include-what-you-use happy with some files in source/renderer and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-12 12:19:41 +02:00
trompetin17 0f156e3544 GUIProxy: Support property introspection for debugging
This commit enables proper property enumeration and inspection for GUI
proxy objects in debugging sessions using the SpiderMonkey Debugger API.

Interface (IGUIProxyObject):
- Added a pure virtual method getPropsNames() to expose cached property
  names from the GUI object implementation.

Proxy handler (JSI_GUIProxy):
- Implemented ownPropertyKeys() to enumerate all visible properties of
  the proxy, including: -- Built-in GUI fields: "name", "parent",
  "children". -- Dynamic settings stored in m_Settings. -- Script event
  handlers prefixed with "on" from m_ScriptHandlers. -- Function
  properties returned by getPropsNames().
- Implemented getOwnPropertyDescriptor() to synthesize descriptors for
  debugger queries: -- Returns undefined if the property is not defined.
  -- Returns a read-only enumerable descriptor otherwise.
- Both methods are marked final and override SpiderMonkey's
  BaseProxyHandler.

Why:
- SpiderMonkey’s Debugger API requires ownPropertyKeys and
  getOwnPropertyDescriptor for proxy objects to be introspectable in dev
  tools like VS Code.
- Without these, properties of GUI objects are hidden during debugging.
- This change improves the developer experience by making all meaningful
  GUI object fields visible and explorable at runtime.
2025-07-11 11:06:06 -05:00
trompetin17 20b7c3f9b8 Implement Debug Adapter Protocol (DAP) Interface in debugger.js
Adds initial support for the Debug Adapter Protocol (DAP) to
SpiderMonkey via debugger.js. This JavaScript-based implementation
enables external debuggers (e.g., VS Code) to interact with the JS
runtime using the DAP interface.

Implemented DAP requests and events:

- attach
- initialize (capabilities)
- stopped event
- threads
- scopes
- variables (globalThis pending)
- continue
- stepIn
- stepOut
- setBreakpoints
- Handling of debugger statements

This forms the foundation for interactive debugging of in-game scripts,
providing smoother integration with developer tools.
2025-07-11 11:06:05 -05:00
trompetin17 678a33c100 Dap Interface with Spidermonkey debug
Spidermonkey provide a mechanics to debug all comportaments and real
from a different place with JS code this allow us to reuse the current
scriptinterface but addind the new Debugger object definition only for
debugging without change any code from other place like GUI &
simulation.

Debugger Adapter Interface is a protocol that commons IDE implement to
being able for debugging, the concept is to provide sockets connections
with c++ but the Dap implementation in JS that allow us to extend for
more Request / Events that DAP provide.

Because Dap Interface its implemented with JS we need to handle message
in the main thread so we are calling in the main loop before GUI
messages
2025-07-11 11:06:04 -05:00
Ralph Sennhauser 91105657d9 Update FreeBSD Jenkins pipline
Drop reference build as it makes no sense for incremental builds, fix
warnings in test reporting and finally log build warnings per run which
prevents third partly library builds to leak into the report and failing
the CI.

Ref: #7367
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-10 08:19:58 +02:00
Ralph Sennhauser b2e379b841 Update MacOS Jenkins pipline
Make use of build matrix, drop reference build as it makes no sense for
incremental builds, fix warnings in test reporting and finally log build
warnings per run which prevents third partly library builds to leak into
the report and failing the CI.

Ref: #7367
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-10 08:19:58 +02:00
trompetin17 256dff7fd4 Font: make atlas uploads queue-aware on Vulkan
Goal
----
Avoid corrupting the dynamic font-atlas on Vulkan by blocking any
re-uploads until the command buffer that created / last updated the
texture has actually been submitted.

What changed
------------
* **Queue-aware textures**
  * Added `queueSubmitAware` flag to `IDevice::CreateTexture*` APIs.
  * `Vulkan::CTexture` now stores two booleans:
      - `m_QueueSubmitAware` – opt-in per texture.
      - `m_PendingQueueSubmit` – set to *true* the moment an upload
        is recorded, cleared once the submit scheduler has flushed.
  * `CRingCommandContext::ScheduleUpload` marks the texture as
    pending (`SetPendingQueueSubmit(true)`).

* **Device-side watcher**
  * `Vulkan::CDevice` keeps a
    `m_TextureUploadWatcherQueue`. Each frame it checks textures that
    were uploaded ≥ `NUMBER_OF_FRAMES_IN_FLIGHT` frames ago and
    clears their pending flag.
  * New helpers
    `ScheduleTextureUploadWatch `,
    `ProcessTextureUploadWatchQueue()`.

* **Font code**
  * Atlas texture is now created with
    `queueSubmitAware = true`.
  * `CFont::UploadTextureAtlasToGPU()` early-outs when
    `IsPendingQueueSubmit()` returns *true*, instead of tracking a
    submit-handle or the manual `m_IsLoadingTextureToGPU` flag
    (removed).

Why this is better
------------------
The logic to wait for a flush is localised inside the rendering
backend, so `CFont` only needs to ask *“is my texture busy?”*.
This removes the fragile submit-handle bookkeeping and works even if
the scheduler issues multiple submits per frame in future.

Result
------
Atlas uploads are deferred until the previous submit completes,
eliminating the intermittent glyph corruption on the Vulkan backend
while leaving GL and the dummy backend unchanged.
2025-07-09 13:09:46 -05:00
Ralph Sennhauser ddcb844bcc Redirect stderr into build.log in Windows pipeline
The build.log is created and found, but no warnings are collected.
Redirect stderr so the warnings end up in the log in the first place.

Fixes: #8159
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-09 19:24:51 +02:00
Ralph Sennhauser 8a8f2596ea Fix a warning on Windows
5e4b49f65f introduced a warning, silence it as it's in spidermonkey and
only leaks while on vs2017.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-09 19:24:51 +02:00
Ralph Sennhauser e7f44ca6ca Fix some includes in source/renderer
Make include-what-you-use happy with some files in source/renderer and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-09 09:04:50 +02:00
Ralph Sennhauser c2cc762616 Better handling of PKG_CONFIG_PATH
Allow override PKG_CONFIG_PATH via env, making it possible to easily
inject alternative library builds for testing or bisecting. This was
only possible when the premake script didn't override it which it
unconditionally did on macos.

Also don't expose the variable holding the path directly but offer a
function to append to the path instead.

Ref: #8135
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-09 07:48:49 +02:00
Ralph Sennhauser ad3f6e3119 Dissolve external_libraries/openal.h
This header was used to overcome macos openal vs openal-soft header name
difference, for the migration to openal 1.1 and to pass arguments to the
linker on windows in the past. None of this is used anymore so dissolve
the header.

Also fix related headers so one can run include-what-you-use on the
changed files.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-08 19:33:36 +02:00
phosit 9822a22573 Replace ScriptException::Raise in Engine functions
Now exceptions can be thrown. The function throwing exceptions becomes
cleaner and doesn't require a `ScriptRequest` anymore.
2025-07-08 19:11:49 +02:00
phosit 616fa4a006 Handle C++ exceptions in Engine functions
`JSNatives` passed to SpiderMonkey must not throw exceptions. Most
callbacks are wrapped in `ScriptFunction::ToJSNative`.
This commit adds exception handling to `ScriptFunction::ToJSNative` so
that exceptions thrown in the wrapped callbacks are catched and rethrown
as JavaScript `Error`s.
2025-07-08 19:11:49 +02:00
phosit eeeba977ea Don't crash if rl-interface port is already in use
Replace `ENSURE` with recoverable error handling. Introduce a new error
type so that it's distinguishable from other errors.

When such an error occurs the program exits with `EXIT_FAILURE`.

Fixes: #7475
2025-07-07 21:38:52 +02:00
Ralph Sennhauser 5e4b49f65f Fix some includes in source/renderer
Make include-what-you-use happy with some files in source/renderer and
fix what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-07 17:45:54 +02:00
trompetin17 251f599ad2 Expand summary GUI resource columns
Mods can add more resources than the summary screen’s fixed layout
handled, which crashed with:

ERROR: JavaScript error: gui/summary/layout.js:269 headerGUI is null

This patch doubles the column templates (9 → 18) and updates the
iteration logic so extra headers no longer resolve to null. It removes
the need for copy-paste XML edits when mods grow the resource list.

Known limitations
-----------------
* Column count is still static; a future change should generate the
  layout from g_Resources at run-time.
* UI tested at 1080p and 4 K; very small resolutions might require a
  horizontal scroll solution.
2025-07-06 22:33:25 -05:00
Ralph Sennhauser ed4e2587c2 Fix includes in source/maths
Make include-what-you-use happy with files in source/maths and fix what
needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-06 18:24:31 +02:00
obelix 9970706deb Fixes typo in gerousia.xml 2025-07-06 05:57:43 +02:00
obelix bf25c463c5 Correction of the tooltip in gerousia.xml
Add 'and heroes' to the tooltip as this building trains three of them.
2025-07-06 05:57:43 +02:00
wowgetoffyourcellphone af84640a0c Update cape_long_gaul.xml
Fixes the cape not animating while the Gallic skirmisher attacks.
Also has a small formatting improvement.

Fixes #7970
2025-07-05 18:57:15 +02:00
Ralph Sennhauser 461ff6c20c Fix most headers in gui
Make include-what-you-use happy with most of the files in source/gui and
fix what needs to be fixed after including missing compile flags.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-05 12:42:34 +02:00
Ralph Sennhauser 2b5830e82a Add support for specifying pkg-config via env
For cross compiling there is a need to specify an alternative binary for
pkg-config. It's customary to use the environment variable PKG_CONFIG for
this.

Ref: #8135
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-05 09:20:37 +02:00
trompetin17 11a108d00c GameSettingsController: clear stale “Removed” flag
If a human player is set to “Removed” in Game Setup, leaves to the
main menu, and re-enters, they are auto-assigned back to the same
slot but still flagged as removed, triggering an instant defeat when
the match starts.

GameSettingsController::onLoad already reconciles **playerAI** against
current player assignments, but the analogous check for the new
**playerRemoved** setting was missing. The flag therefore survived
persisted-settings reloads.

This mirrors the existing AI-conflict logic and resets the flag
whenever a human player occupies the slot.

Bug reported by *elexis*.
2025-07-03 20:41:39 -05:00
phosit 1ca4dc08fd Enable eslint rule 'no-duplicate-imports'
Enable rule 'no-duplicate-imports' [1] before we use modules heavily.
There where no violations.

[1] https://eslint.org/docs/latest/rules/no-duplicate-imports
2025-07-03 19:19:30 +02:00
Ralph Sennhauser 8227e76845 Restore includes for suppressing warnings on vs2017
Commit d888b10931 remove those headers which have the side effect of
suppressing some warnings on Windows using vs2017. Keep those headers
around for till vs2019+.

Add additional suppressions where needed for spidermonkey headers.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 17:40:27 +02:00
Ralph Sennhauser 61326cfca6 Fix some headers in gui
Make include-what-you-use happy with a part of the files in source/gui
and fix what needs to be fixed after including missing compile flags.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 13:20:13 +02:00
Ralph Sennhauser 707abee34d Don't export HOSTTYPE in update-workspace.sh
Exporting HOSTTYPE prevents cross compilation as HOSTTYPE is used to
override target host arch instead of detecting it from chosen compiler.
This then results in the wrong arch specific source files to be
included. So just don't set it by default and let it to the user to set
it if he so chooses.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 12:58:46 +02:00
Ralph Sennhauser 904957c50f Allow --fix in copyright linter wrapper
Sometimes doing it manually is cumbersome.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 12:45:58 +02:00
Ralph Sennhauser 0f39dcf2c3 Fix white-space error in 8b5bcf05d7
The workflow was run before the addition of white-space error check, so
the trailing white-space made it in.

This commit unblocks the CI.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-02 11:56:09 +02:00
Langbart 8b5bcf05d7 fix: adjusts the tooltip for the fire ship
ref: https://gitea.wildfiregames.com/0ad/0ad/pulls/7510#issuecomment-110923
2025-07-02 07:23:03 +02:00
Langbart 86077bc97f fix: remove 'Heroes' in the spart/syssiton tooltip
ref: https://gitea.wildfiregames.com/0ad/0ad/pulls/7510#issuecomment-114268
2025-07-02 07:23:03 +02:00
Langbart 1aae83f20a fix: wrongly owned entities on the skirmishes/isthmus_of_corinth_2p map
ref #6688
2025-07-02 07:23:03 +02:00
Langbart 091e865243 fix: remove redundant splash tooltip
ref 22b72a362b
2025-07-02 07:23:03 +02:00
Langbart 1f074862cd fix: remove unsupported modifications in ram_garrison.json
ref: #6884
2025-07-02 07:23:03 +02:00
Langbart 26a3f4e8aa fix: increase kennel vision
Default vision of 4 is too low when standing in FOW.
2025-07-02 07:23:03 +02:00
Langbart 1e72caa0f6 fix: increase vision for onager
Increase vision range to avoid continuous firing for most structures.
Ref: #6708

Rename onager template to 'siege_onager_unpacked' to follow existing
naming conventions.
2025-07-02 07:23:03 +02:00
Langbart 1f32412e8d docs: update entity classes and categories
checked for missing, redundant and duplicates classes, Removed 'Fire' no tech uses it and classification value is zero
2025-07-02 07:23:03 +02:00
Langbart 834fff776c fix: delist promoted entities on training panel
promoted entities dont need to be listed if the subset unit is present
2025-07-02 07:23:03 +02:00
Langbart db57e58fd5 fix: add missing civ tags to templates
ref: #7438
2025-07-02 07:23:03 +02:00
Vantha 9c8c8bc42a Enable normal-map-specific compression for skins and terrains
Normal maps contain redundant color information and the engine supports
compression algorithms (like DXT5n) optimized for that.
It has previously only been enabled for the water normal maps.

Pull Request: #8114
2025-07-01 13:42:53 +02:00
Dunedan 31d7e4c97f Improve styling of the header of the profiler2 UI
This improves the styling of the header of the profiler2 UI, by applying
the following changes:

- change the spinner animation to actually look like a spinner
- ensure open reports don't overflow the nav bar
- reduce the size of the server port input field
- add some paddings to make everything look more pleasing
2025-07-01 09:56:28 +02:00
Dunedan 07845b0ff5 Apply graph smoothing changes immediately
`onchange()` triggers only when an element looses focus. For the graph
smoothing in the profiler2 UI we want to have the smoothing applied
immediately when modifying the slider, so let's use `oninput()` instead.
2025-07-01 09:35:18 +02:00
Ralph Sennhauser 863b0b90b7 Update headers in i18n
Remove external_libraries headers for icu and tinygettext, as they
neither add any workarounds needed and as quite a few other libraries
don't have such a header either. As for the warnings suppressed, this is
no longer needed as they were fixed and with vs2019 added support for
-isystem or equivalent would make this useless eitherway.

Further make include-what-you-use happy with files in source/118n and
fix what needs to be fixed after.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-01 09:01:00 +02:00
Ralph Sennhauser a606fbf1a5 Fix headers for XML/XMB
Declare "lib/posix/posix.h" as source for <strings.h>

Make include-what-you-use happy with files in source/ps/{XMB,XML} and
fix what needs to be fixed after including missing compile flags.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-01 07:44:06 +02:00
Ralph Sennhauser 758d901883 more objecttype 2025-06-30 21:18:16 +02:00
Ralph Sennhauser af582b09aa fixup! Fix headers for gui/ObjectTypes 2025-06-30 21:09:46 +02:00
Ralph Sennhauser 00f9d887b1 fixup! Fix headers for gui/ObjectTypes 2025-06-30 21:07:53 +02:00
Ralph Sennhauser 49863da3b4 Fix headers for gui/ObjectTypes
Make include-what-you-use happy with files in source/gui/ObjectTypes and
fix what needs to be fixed after.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-30 20:38:16 +02:00
Ralph Sennhauser d888b10931 Fix headers for gui/ObjectBases
Make include-what-you-use happy with files in source/gui/ObjectBases and
fix what needs to be fixed after.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-30 19:56:41 +02:00
trompetin17 571b536e1f Log GUISize/GetTextSize deprecations once
Replace repeated LOGWARNING calls with ONCE(LOGWARNING) in
JSInterface_CGUISize.cpp and JSInterface_Main.cpp.

Why – The old behaviour printed a warning every time the deprecated
API was used, cluttering the log and annoying modders. We still want to
nudge them toward the new APIs (object.size = {...} and
guiObject.GetPreferedTextSize/getTextSize), but a single reminder is
enough.

What changed

CGUISimpleSetting<CGUISize>::DoFromJSVal now wraps the deprecation
message in ONCE(...).

Engine.GetTextSize warning is likewise wrapped.

Impact – Functionality is unchanged; only the frequency of the
warnings is throttled to one per session, making the transition less
intrusive and more user-friendly.
2025-06-29 09:12:21 -05:00
Ralph Sennhauser d8af7b9416 Improve reporting of build environment for premake
Various environment variables may have an impact on what premake will
do, properly report them in the output and consolidate others.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-29 13:58:14 +02:00
Ralph Sennhauser 3a38fcb17c Update lfsconfig comment
Use a colon instead of a backslash to seperate domain from repo. The
backslash only works for pushing and for pulling lfs will complain about
"batch request: missing protocol"

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-29 08:31:50 +02:00
rene 3c457457cd Add tip about lost resources when gathering
Illustration by: Vantha
Feedback by: Vantha, Langbart
Fixes #7652.
2025-06-28 10:39:52 +02:00
trompetin17 3db465587f Fix chat input size assignment typo
Fixes a typo introduced in fd847c2a23 where the code
incorrectly modified chatSubmitButton.size instead of
chatInput.size, effectively collapsing the input field's
width to zero.

This change ensures the chat input field resizes correctly
based on the button's position.

Thanks to Langbarg for noticing the issue.

Refs: #8138
2025-06-27 08:38:38 -05:00
trompetin17 22d3a52b38 Fix chat wrapping by replacing Object.assign
Fixes a bug where chat overlay text wrapping changed
unexpectedly when earlier messages expired.

The issue was caused by Object.assign modifying the size
object in place, which did not trigger proper recalculation
for getTextSize in subsequent frames.

Replacing it with direct assignment ensures the size object
is recompute, allowing correct layout behavior.

Bisected to: fd847c2a23

Thanks to Langbarg for identifying the root cause.

Ref: #8043
Fixes: #8138
2025-06-27 08:38:37 -05:00
Vantha bef29e4af5 Add some new tips 2025-06-27 15:34:44 +02:00
Ralph Sennhauser aabb5854aa Add note for ssh users to .lfsconfig
Users using ssh are suddenly asked for a username and password for lfs,
add a note as to why that is and how to avoid it to the .lfsconfig in
hope they will see it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-27 15:23:30 +02:00
Dunedan e6c479e956 Show report statistics for single reports as well 2025-06-27 10:04:11 +02:00
Dunedan 7e531ec6fe Add minimum, sum and percentile columns to reports 2025-06-27 10:03:38 +02:00
trompetin17 e845da025a Add deprecation warning to GetTextSize API
Adds a runtime warning to `Engine.GetTextSize` indicating that the API
is deprecated and will be removed in a future version.

This API does not simulate GUI rendering accurately, as it treats markup
tags like [color], [font], or [icon] as visible characters. This leads
to incorrect size measurements in modern GUI layouts.

New recommended alternatives:
- Use `Engine.GetGUITextSize(...)` for accurate measurement of raw text
  blocks, fully simulating GUI rendering.
- Use `guiObject.getTextSize()` when working within a specific GUI
  object, as it accounts for maxWidth, padding (bufferZone), and object
  constraints.

A warning is now emitted at runtime to guide developers toward these
updated APIs.
2025-06-26 17:11:24 -05:00
trompetin17 b42a2b9adb Apply correct use of TextSize APIs in GUI
Updates GUI code to apply the correct usage of `guiObject.getTextSize()`
and `guiObject.GetPreferedTextSize()`.

- `guiObject.getPreferedTextSize()` is now used when the goal is to compute the
  bounding box of a text string to dynamically resize or layout a GUI
  object accordingly. It simulates how the text would be rendered,
  accounting for markup and layout rules.

- `guiObject.getTextSize()` remains in use when text is being measured
  within a fixed-size GUI element (e.g., a button or label). It respects
  internal constraints like buffer zone and maxWidth, and is typically
  used to align other elements based on its visual appearance.

These changes ensure more accurate text sizing and consistent layout
behavior across GUI components.
2025-06-26 17:11:24 -05:00
trompetin17 19e82ebceb Add getPreferredTextSize to calculate unconstrained text width
Introduces (CButton|CText).getPreferredTextSize, a new method for estimating
the natural width of a caption if the object had no width constraints.

Unlike .getTextSize, which reports the size after applying current
layout constraints (e.g., fixed width or anchors), getPreferredTextSize
answers the question: "How wide would this object need to be to display
the caption on a single line?"

This is particularly useful for modders and layout logic that wants to
dynamically size elements *before* assigning a fixed width or anchoring.
2025-06-26 16:58:32 -05:00
Ralph Sennhauser 7eaea3d181 Update headers in collada
Make include-what-you-use happy with files in source/collada and
fix what needs to be fixed after. Also switch quote with bracket include
where appropriate.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-26 20:05:53 +02:00
phosit 891908b801 Remove UNUSED
The `UNUSED` macro is used to mark a variable as unused but with a name.
Those usages are replaced with comments so that `UNUSED` can be removed.

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-unused
2025-06-26 17:25:05 +02:00
phosit dd26f3a802 Restrict param type of FSM events
Previously the param type was `void*` now the type has to be specified
as template parameter of the `CFsm`.
With this commit some casts can be removed.
2025-06-26 16:42:04 +02:00
Ralph Sennhauser 7f67bab7c8 Fix -Wrange-loop-construct in ModIo.cpp
Gcc 15 generates the following warning:

../../../source/ps/ModIo.cpp: In static member function ‘static bool ModIo::ParseModsResponse(const ScriptInterface&, const std::string&, std::vector<ModIoModData>&, const PKStruct&, std::string&)’:
../../../source/ps/ModIo.cpp:738:41: warning: loop variable ‘prop’ of type ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  738 |                 COPY_STRINGS_ELSE_CONTINUE("", el, "name", "name_id", "summary")
      |                                         ^~~~
../../../source/ps/ModIo.cpp:738:41: note: use non-reference type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
../../../source/ps/ModIo.cpp:749:41: warning: loop variable ‘prop’ of type ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  749 |                 COPY_STRINGS_ELSE_CONTINUE("", modFile, "version", "filesize");
      |                                         ^~~~
../../../source/ps/ModIo.cpp:749:41: note: use non-reference type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
../../../source/ps/ModIo.cpp:756:41: warning: loop variable ‘prop’ of type ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  756 |                 COPY_STRINGS_ELSE_CONTINUE("filehash_", filehash, "md5");
      |                                         ^~~~
../../../source/ps/ModIo.cpp:756:41: note: use non-reference type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying
../../../source/ps/ModIo.cpp:762:41: warning: loop variable ‘prop’ of type ‘const std::string&’ {aka ‘const std::__cxx11::basic_string<char>&’} binds to a temporary constructed from type ‘const char* const’ [-Wrange-loop-construct]
  762 |                 COPY_STRINGS_ELSE_CONTINUE("", download, "binary_url");
      |                                         ^~~~
../../../source/ps/ModIo.cpp:762:41: note: use non-reference type ‘const std::string’ {aka ‘const std::__cxx11::basic_string<char>’} to make the copy explicit or ‘const char* const&’ to prevent copying

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-26 12:39:48 +02:00
Stan dc04f3f432 Fix autofixable eslint warnings for eqeqeq
Ref: #7812
Pull Request: #8129
2025-06-26 11:03:19 +02:00
phosit 0fcc4f5fc5 Split the main-menu into modules
Ref: #8081
2025-06-26 10:50:21 +02:00
phosit dd9ba2fd26 Make the splashscreen a module
Ref: #8081
2025-06-26 10:50:21 +02:00
phosit 77b1addb45 Enable modules in the GUI
Doesn't actually change a GUI-page to use modules. Adopting a GUI-page
now only requires JS and XML changes.

Ref: #8081
2025-06-26 10:50:21 +02:00
phosit b8348bec55 Store the ScriptInterface& in ModuleLoader::Result
During hotloading the `ScriptRequest` was constructed from a
`JSContext*`. That requires that already an other `ScriptRequest` is
active. Which isn't always the case.
Now The `ScriptRequest` is constructed from a `ScriptInterface&`.

Storing a `ScriptInterface&` in the `ModuleLoader::Result` allows to
remove the `m_Result` as it is retrieved from the `ScriptInterface`.
2025-06-26 10:50:21 +02:00
Ralph Sennhauser 25c53cb0ac Enable eslint style rule 'keyword-spacing'
After Stan suggesting change in a review comment just enable the rule
'keyword-spacing' [1] and fix violations so this is no longer a topic in
spirit of #7812.

[1] https://eslint.style/rules/keyword-spacing

Ref: #7245
Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-25 14:34:12 +02:00
Ralph Sennhauser b6e66a5d43 Update headers in lobby
Some gloox headers need workarounds to be included, so mark the header
"lib/external_libraries/gloox.h" as source for all gloox symbols and
collect all headers we use under it.

Further make include-what-you-use happy with files in source/lobby and
fix what needs to be fixed after.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-25 14:00:44 +02:00
Ralph Sennhauser 4720033ef9 Don't use premake for setting Wextra on Unix
Move -Wall to where the other warnings are enabled so everything is in
one place.

Fixes: #5329
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-21 19:24:12 +02:00
Ralph Sennhauser 24a5b72020 Cleanup compiler warnings declarations
Remove '-Wno-switch' and '-Wno-invalid-offsetof' as they do no longer
suppress any existing warnings. Also group warning disablers together.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-21 19:24:12 +02:00
Ralph Sennhauser f2b2222284 Fix msvc truncation warning
The CI warns but doesn't fail, explicitly cast to float and while at it
use constant for PI/2.

```
source\graphics\cameracontroller.cpp(303): warning C4305: 'argument': truncation from 'double' to 'float'
```

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-21 08:27:45 +02:00
trompetin17 0ebcc45237 Refactor GetNextChunk for clarity and safety
Replaces the for(;;) loop in GetNextChunk with a clearer while
(bytesRead < size) loop for better readability and intent.

Other improvements:
- Uses constexpr for constant audio format parameters
- Replaces C-style cast with reinterpret_cast
- Ensures consistent use of static_cast for type conversions
- Improves comment formatting

This refactor maintains the original logic while aligning with modern
C++ best practices.
2025-06-20 10:49:23 -05:00
trompetin17 0396d67d26 Apply consistent naming to member variables in ogg.cpp
Renames local variables in the class to follow the member naming
convention using the m_ prefix (e.g., m_Adapter, m_VF, m_FileEOF).
2025-06-20 10:49:16 -05:00
trompetin17 6b9652050c Use std::copy_n in VorbisBufferAdapter::Read
Replaces a raw memcpy call with std::copy_n in VorbisBufferAdapter::Read
for improved type safety and readability. This ensures cleaner buffer
copying using standard C++ algorithms, avoiding manual pointer
arithmetic on void*.

The change is functionally equivalent but aligns better with modern
C++17 practices.
2025-06-20 09:04:09 -05:00
trompetin17 1d20adc3b9 Ensure brace initialization for member variables in Ogg classes
This commit updates the Ogg-related classes to use uniform brace
initialization ({}) for member variables where applicable. Brace
initialization improves clarity and prevents potential narrowing
conversions or unintended behavior caused by default constructor
ambiguity.

This change improves consistency and aligns with modern C++ best
practices, especially in C++11 and later where brace initialization is
recommended for safer initialization semantics.
2025-06-20 09:04:01 -05:00
trompetin17 2ae95d3c49 Refactor OggStreamImpl to use exceptions for error handling
Introduce a new `Open` method in `OggStreamImpl` that encapsulates the
logic for opening Ogg Vorbis files. This method replaces the previous
`Open` method and utilizes `std::runtime_error` for error reporting
instead of returning error codes. The constructor has been updated to
call this new method, ensuring files are opened upon instantiation. The
changes streamline the code and improve error handling.
2025-06-20 08:51:39 -05:00
trompetin17 336ff333ed Remove unused OpenOggStream method
OpenOggStream was previously used to stream Ogg files directly from the
file system. It operated on raw file paths (OsPath) and assumed
uncompressed, unarchived files, which made it unsuitable for working
with files inside archives or VFS layers.

However, its usage has been fully replaced by OpenOggNonstream, which:
- Reads the entire file into memory (non-streaming),
- Works with virtual file systems (VFS),
- Supports both archived and compressed assets,

Is already used consistently across debug and release builds.

There are no remaining references to OpenOggStream in the codebase, so
this commit removes the unused function and its associated logic.
2025-06-20 08:41:39 -05:00
Itms 406565f3c4 New appdata entry for A27.1
Fixes #7986
2025-06-20 11:48:53 +02:00
Ralph Sennhauser 4c165dd208 Update some includes for iwyu part 1
First batch of fixes to please include-what-you-use.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-20 09:01:19 +02:00
phosit 1652e82021 Use std::unique_ptr for CSimulation2Impl
Using a `std::unique_ptr` it's explicit that the data is owned by the
`CSimulation2`.
2025-06-19 22:12:52 +02:00
phosit 2d43ca6462 Make rmgen2 modules
As rmgen2 depends on rmgen it has to be converted to modules before
that.
rmgen2 contains some globals which don't have to be exposed.

Refs: #8081
2025-06-19 19:07:08 +02:00
phosit 93666d8628 Remove ignore_result
`std::ignore` serves the same purpose and is C++ standard.
2025-06-19 19:05:56 +02:00
trompetin17 5b8cb7f34b Support std::optional in FromJSVal
This commit introduces support for std::optional<T> in
Script::FromJSVal. When a JavaScript value is undefined or null, the
resulting optional is set to std::nullopt; otherwise, the value is
converted and wrapped.

This change allows components to cleanly handle optional script values
without needing manual null checks or exception handling in C++.

As a direct application of this feature, the Identity component now uses
std::optional<std::wstring> for the return value of GetCiv(). This
resolves a bug where formation templates (e.g., those inheriting from
template_formation.xml) do not explicitly define a civ. After commit
03f7903fec, the code assumed GetCiv() would always return a valid
string, leading to undefined behavior when it was missing.

With this update:
- GetCiv() returning undefined results in an empty optional.
- The Identity component defaults to an empty civilization string ("")
  when the civ is not defined.
- This avoids crashes or actor parsing errors for civ-less templates and
  improves robustness in script-C++ interaction.

Closes: #8107
Fixes: #8091
2025-06-19 08:52:24 -05:00
trompetin17 007b4f5db7 Improve error logging for failed JS-to-C++ script conversions
Previously, if a JavaScript function returned a value that failed to
convert to the requested C++ type (e.g., from JS undefined to
std::wstring), the ScriptInterface would fail silently, making debugging
difficult.

This commit improves the error reporting in the script system by logging
the name of the JavaScript function being called when a type conversion
failure occurs. This makes it easier to trace and fix issues arising
from script-side inconsistencies or missing return values.

The improved logging is particularly useful for debugging errors such as
undefined civ values from GetCiv() when used via m_Script.Call<T>().
2025-06-19 08:52:23 -05:00
Itms aaccd6ba97 Explictly set the LFS remote URL for all forks
As the Gitea LFS server does not abstract access to LFS remotes
(see https://github.com/go-gitea/gitea/issues/17715), it is necessary to
explicitly set the main repository as LFS storage, including for forks.
2025-06-19 12:53:26 +02:00
Ralph Sennhauser ddb738b17d Remove empty cpp file vfs_path.cpp
Once upon time there was content but no more, so remove it.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-19 09:03:38 +02:00
Ralph Sennhauser 0108ff51f4 Fix no-pch build after b34f4b79aa
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-18 21:12:33 +02:00
phosit 11b92f784f Decrease interval of hotload check on mac
There are 8 hotloads in the tests. When each takes 1 second that adds 8
seconds to the tests. Decrease the interval value to an acceptable
number.
2025-06-18 14:42:13 +02:00
Stan 85bb494c17 Catch more file changes on mac 2025-06-18 14:42:13 +02:00
Stan 6a0dfa6dc1 Test whether some files are reloaded more directly
Add a way to tell whether `ReloadChangedFiles` actually catched events
by returning `INFO::SKIPPED` when it didn't.
Unlike GUI apps, you have to explicitely tell macOS to punp events in
console apps thus add a loop in the tests.
2025-06-18 14:42:13 +02:00
Stan 2a47bbf096 Use a mutex to syncronize g_QueuedDirs
`g_QueuedDirs is accessed by multiple threads. It has to be syncronized.
2025-06-18 14:42:13 +02:00
Stan 8b58d8865c Don't use ".." to get the data-directory
`sys_ExecutablePathname().Parent()/".."/"data";` was causing realpath to
pail on macOS, because ".." doesn't match any directory.
2025-06-18 14:42:13 +02:00
phosit 0698243dd1 Don't skip tests on mac
The tests where accidetally skipped on mac because it's treated as BSD.
2025-06-18 14:42:13 +02:00
phosit d9795d29fe Remove the name of some unused arguments
Remove some usage of the `UNUSED` macro. Remove only those cases where
the names can be deduced from their type.

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-unused
2025-06-18 12:49:59 +02:00
trompetin17 084b141ecc Fix MatchSettingsDialog after b34f4b79aa
Reported by wow on irc:
ERROR: JavaScript error:
gui/session/match_settings/MatchSettingsDialog.js line 55 undefined has
no properties
rebuild@gui/session/match_settings/MatchSettingsDialog.js:55:3
init@gui/session/session.js:320:3
reallyStartGame@gui/loading/loading.js:22:9  ERROR: GUI page
'page_session.xml': Failed to call init() function
2025-06-17 23:27:18 -05:00
Ralph Sennhauser 657be906fe Cleanup use of boost::filesystem
Suppressing boost warnings is already covered by how we include
libraries if there are actually still any of them relevant.

Then the v2 vs v3 stuff is obsolete as boost ships with filesystem v4
this days.

Lastly injecting a namespace alias via pch header is questionable, so
just don't.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 21:56:04 +02:00
Vantha fd847c2a23 Refactor GUI object resizing JS code passages
It is possible to modify sizes by setting the properties directly.
(Without having to create a copy of it)
This allows to shorten those passages quite a bit without any functional change.
2025-06-17 12:57:37 -05:00
trompetin17 b34f4b79aa Allow setting CGUISize properties directly
Previously, modifying individual CGUISize properties (left, top, right,
bottom) via JavaScript had no effect unless the entire size object was
copied, modified, and reassigned—resulting in verbose and error-prone
code.

This update introduces proper JavaScript property accessors, enabling
direct reading and writing of CGUISize members. The result is a more
intuitive and scriptable API.

Key Changes:
- Implemented JavaScript get/set accessors for each CGUISize property,
  directly interacting with the native object.
- Retained support for string assignments to CGUISize
- Maintained the GUISize JS object for backward compatibility, also
  marked as deprecated.
- Improved CGUISimpleSetting<CGUISize> to allow partial updates via
  direct property access.
- allow assigning size from object with pixel and percent values

You can now assign size using an object with properties like:
size = {
  left: number, right: number, top: number, bottom: number,
  rleft: number, rright: number, rtop: number, rbottom: number
}

- One or more properties can be specified, the missing properties with
  fill as zero.
- Assignment triggers an immediate update event.

Delayed Setting Notifications:
- Introduced a mechanism for delayed setting notifications, currently
  only used in CGUISimpleSetting<CGUISize>, to avoid redundant
  recalculations.
- Ensured that getComputedSize triggers any pending delayed
  notifications before returning the size.

This change significantly enhances the developer experience and brings
the behavior in line with typical expectations for direct property
manipulation in JavaScript.
2025-06-17 12:57:33 -05:00
Ralph Sennhauser b382a4c47a Enable eslint rule 'no-sparse-arrays'
Enable recommended rule 'no-sparse-arrays' [1] and manually fix
violations. Solution proposed by elexis.

[1] https://eslint.org/docs/latest/rules/no-sparse-arrays

Fixes: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 19:21:19 +02:00
trompetin17 9a4708cb71 Remove ignore LNK4098 2025-06-17 11:26:06 -05:00
trompetin17 8d957ec91d Remove hardcoded library linking pragmas from vorbis.h 2025-06-17 11:26:05 -05:00
trompetin17 ba67208b22 Remove zlib library linking pragma 2025-06-17 11:26:04 -05:00
trompetin17 c1751cd8e8 Remove libpng library linking pragma 2025-06-17 11:26:04 -05:00
trompetin17 cd4aebbb90 Remove unnecessary pragma comment for OpenAL 2025-06-17 11:26:03 -05:00
trompetin17 c375d9ba67 Add SDL2 linking configuration to premake 2025-06-17 11:26:03 -05:00
trompetin17 6fc46c16f4 Update SVN revision to 28262 in get-windows-libs.bat 2025-06-17 11:26:02 -05:00
trompetin17 59ff5d912f Add oleaut32 library support and remove unnecessary pragma comment 2025-06-17 11:25:54 -05:00
Ralph Sennhauser 91df65d64c Enable eslint rule 'require-yield'
Enable recommended rule 'require-yield' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/require-yield

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 16:26:49 +02:00
Ralph Sennhauser 14bb7730fe Enable eslint rule 'no-useless-escape'
Enable recommended rule 'no-useless-escape' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-useless-escape

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 15:20:06 +02:00
Ralph Sennhauser f29f0b7fd1 Enable eslint rule 'no-prototype-builtins'
Enable recommended rule 'no-prototype-builtins' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-prototype-builtins

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 13:47:11 +02:00
Ralph Sennhauser f87d266e4e Enable eslint rule 'no-fallthrough'
Enable recommended rule 'no-fallthrough' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-fallthrough

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 12:20:51 +02:00
Ralph Sennhauser 57e72b01ae Enable eslint rule 'no-case-declarations'
Enable recommended rule 'no-case-declarations' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-case-declarations

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-17 11:44:28 +02:00
Mentula 0 A.D. cb2717faba Add support for bird's eye camera view
A new hotkey "hotkey.camera.togglebirdseyeview" allows to switch
between regular view and bird's eye (top-down) view.

When bird's eye view gets toggled on, the camera moves above the scene;
When bird's eye view gets toggled off, the camera moves back to the
default vertical rotation angle;
When bird's eye view is on, vertical rotation is disallowed.
2025-06-16 20:01:07 +02:00
Ralph Sennhauser 617e438fad Enable all recommended eslint rules that are clean
This rules can all be enabled without any code changes, meaning we
already follow them properly.

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-16 19:07:53 +02:00
trompetin17 8e255af185 Fix mods configuration stacking and mergin per mod
Previously, the engine only loaded the last mod’s `config/mod.cfg` file,
causing earlier mods' configuration settings to be ignored. This broke
the expectation of stackable mod behavior and affected features relying
on custom config, such as font overrides.

This commit updates the mod mounting and configuration process to:

- Mount each mod's files before attempting to load its config.
- Reload each mod's `config/modname.cfg` via `g_ConfigDB.Reload(CFG_MOD)`
  after mounting.
- Merge configuration keys into the CFG_MOD namespace:
  - If a key exists, its value is updated.
  - If not, the key is added.

This behavior now aligns with the VFS override system, where later mods
take precedence but earlier mods still contribute.

Also adds `_test.mods` for validation.

Fixes edge cases for mod authors who rely on consistent and layered
configuration overrides.

Related: #6383, #1810
Fixes: #8060
2025-06-16 11:03:09 -05:00
trompetin17 7ccda26f34 Use cppdialect "C++17" instead of per-action buildoptions
Premake 5.0.0-alpha12 (released in August 2017) introduced the
`cppdialect` directive, which provides a cleaner and more portable way
to specify the C++ standard across compilers and platforms.

Previously, we used manual per-action buildoptions:

filter "action:vs*" buildoptions { "/std:c++17" }
filter "action:not vs*" buildoptions { "-std=c++17" }

This workaround was necessary due to the limitations of older Premake
versions (particularly Premake 4), which lacked built-in support for
setting the C++ language standard.

Now that we're using a newer version of Premake 5, we can simplify this
setup by using:

cppdialect "C++17"

This results in cleaner, more maintainable build scripts with consistent
behavior across toolchains.
2025-06-16 07:35:43 -05:00
Dunedan bd15b87be6 Remove the limit of the available graph colors
Previously the number of graph colors was limited, which resulted in the
reuse of colors if many different profiling regions or reports were
displayed. This commit changes so unique colors are generated for
each region/graph, by utilizing the beauty of the golden ratio.
2025-06-16 08:17:38 +02:00
Dunedan 1a65267b83 Remove unnecessary hslToRgb() utility function
We can use the `hsl()` function provided by CSS directly in the
profiler2 UI, instead of using a custom utility function.
2025-06-16 08:16:34 +02:00
Dunedan 256e3819df Use other composition for multiple graphs
"lighten" would result in a disappearing graph when too many graphs
overlapped, "exclusion" looks much better in this situation.
2025-06-16 08:16:24 +02:00
Lancelot de Ferrière ff754b8bb1 Reset modifiers properly when changing ownership
The ModifiersManagers needs to reset caches and recompute modifiers when changing ownership. However, the code only did this for global modifiers for the new player entity, not the old player entity. This meant we would not reset all modifiers, and could OOS (#7996) or lead to incorrect values.

Fixes #7996

Reported by: Itms
2025-06-15 21:37:00 +02:00
Ralph Sennhauser 58219b974c Fix trailing whitespace and add pre-commit hook
Some have their editor configured to remove trailing whitespace and
editing such a file would "fix" it, adding an unrelated change.

Fix whitespace violations excluding third party libs and generated files
like glad or patches.

Enable pre-commit hook trailing-whitespace to enforce it in the future.

Fixes: #8016
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-15 20:08:48 +02:00
Langbart e6ad1141fd fix(atlas): Fix ship placement in Atlas
- Changed the obstruction check to use the unit's passability class.
Ref: https://code.wildfiregames.com/rP16149

Fix: #8053
2025-06-15 19:24:49 +02:00
Vantha 7938a120d1 Rename the 'Objectives' dialog to 'Match Settings' 2025-06-15 19:24:03 +02:00
Ralph Sennhauser 2f54155219 Don't list disabled rules in eslint extra
Disabled rules are the same as not listed rules of which there are many,
keep them out of the config.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-15 18:42:54 +02:00
Ralph Sennhauser 782443c543 Explicitly disable eslint rule 'no-unused-vars'
They way the project is structured this isn't really usable for now but
might change with move to ESM modules.

See: https://eslint.org/docs/latest/rules/no-unused-vars

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-15 18:42:54 +02:00
Ralph Sennhauser 10f331271e Explicitly disable eslint rule 'no-undef'
They way the project is structured this isn't really usable for now but
might change with move to ESM modules.

See: https://eslint.org/docs/latest/rules/no-undef

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-15 18:42:54 +02:00
trompetin17 c0a3f2d885 Preload common glyphs after font load to reduce rendering delay
To improve visual consistency during dynamic font rendering, especially
on lower-end machines or during low FPS moments, we now preload a set of
common Latin letters, digits, and punctuation glyphs immediately after a
font is loaded by the FontManager.

This reduces the likelihood of users seeing empty or missing characters
on the first frame after a font is used, minimizing visual glitches
during simulation.

The preloaded characters include:
- Uppercase and lowercase Latin letters (A–Z, a–z)
- Digits (0–9)
- Common punctuation and symbols (e.g., .,;:!?()[]{}<> etc.)

This change helps smooth the user experience and avoids blank spaces
during the initial rendering of text in performance-constrained
scenarios.
2025-06-15 08:05:12 -05:00
Stan 03f7903fec Make rallypoints moddable.
Allow use of {civ} tags in templates to simplify mod dependencies and inheritance.

Reviewed-On: #8038
Reviewed-By: @phosit
2025-06-15 07:43:08 +02:00
Dunedan 92ef4ffa19 Improve profiler2 analysis graphs
This removes the padding from the start and the end of the frequency
graphs, to remove the inaccurate steps it caused.

It also improves the smoothness of the frequency and frame-to-frame
graphs by painting each graph as a single line, instead of one line per
data point.
2025-06-14 15:02:44 +02:00
Ralph Sennhauser 97a82cbc4a Enable eslint rule 'no-redeclare'
Enable recommended rule 'no-redeclare' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-redeclare

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 14:53:10 +02:00
Ralph Sennhauser d5f4c812ea Improve CC detection using premake
Before premake 5.0.0-beta3 if --cc wasn't specified the gnu make default
was used unless overridden via env.

Now premake always chooses a compiler sidestepping gnu make choice. So
use the premake pick unless explicitly overridden via CC in env or via
option to premake.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 14:13:16 +02:00
Ralph Sennhauser ead2fbc115 Improve clang default toolset on BSD
The gmake action has a separate idea as to what the default toolset
should be, add that to the patch fixing the default for BSD.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 14:13:09 +02:00
Ralph Sennhauser 8b98a7a27c Enable eslint rule 'no-extra-boolean-cast'
Enable https://eslint.org/docs/latest/rules/no-extra-boolean-cast

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 12:03:06 +02:00
Ralph Sennhauser 6a62dae166 Split eslint rules into recommended and extra
Eslint maintains a list of rules it recommends, split them into own
section for easy identification.

Further sort the rules and don't use magic values for severity.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 12:03:06 +02:00
phosit df5cdbe8f1 Load map scripts as modules
Because its a function `GenerateMap` is renamed to `generateMap`.

Allows to rewrite the libraries as modules and to remove the costum
`Engine.LoadLibrary` mechanism in the future.
2025-06-14 09:10:47 +02:00
Ralph Sennhauser 086e8ec09d Replace deprecated eslint rule 'no-negated-in-lhs'
The rule 'no-negated-in-lhs' was deprecated in eslint 3 [1], replace it
according to recommendation with 'no-unsafe-negation' and enable all
extras as our code already conforms.

[1] https://eslint.org/docs/latest/rules/no-negated-in-lhs.html

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-13 06:32:07 +02:00
Ralph Sennhauser 638c04987e Bump premake to version 5.0.0-beta6
This makes 5.0.0-beta5 the minimally supported version as the gmake2
action was renamed to gmake while gmake was renamed to gmakelegacy. So
from now on gmake action is to be used.

Clear out all old version dependent code.

Fixes: #7789
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-12 20:57:54 +02:00
Ralph Sennhauser f1d577be62 Add semver.lua for use by premake
Also extend it by compairsion operators <= and >=

This will probably also be useful for checking versions of dependencies.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-12 20:57:54 +02:00
trompetin17 4524460d9c Increase text size for capture, health, and resource stats in GUI panels
After FreeType integration in dfb4598186 font height and line spacing
were incorrectly applied. That caused UI elements like capture, health,
and resource stats to appear misaligned or invisible.

Commit c2d529b975 standardized font height usage, removed lineSpace, and
introduced GetCapHeight + Descender for better vertical alignment.

However, affected texts used a font-stroke-12 with a GUI size of 12,
which now renders lower in the container due to stroke and metric
offset. Increasing the size to 14 ensures the text is properly visible
and aligned.

This adjusts for the actual space font-stroke-12 occupies in rendering.

Fixes: #7962
2025-06-11 08:34:42 -05:00
trompetin17 79104db2c5 Revert "Fix position of the ingame release label"
This reverts commit dc156c3f24.

The original commit addressed incorrect UI alignment caused by improper
handling of font height and linespacing after FreeType integration
(introduced in 734386ce9f).

However, commit c2d529b975 corrected the root issue by standardizing
font metrics:
- Proper use of FreeType's height
- Removal of lineSpace
- Introduction of getCapHeight and Descender for accurate vertical
  alignment

As a result, the UI offset workaround is now obsolete and must be
reverted to reflect the correct baseline behavior.
2025-06-11 08:10:57 -05:00
trompetin17 b1123ff259 Revert "Fix element positions after new font rendering"
This reverts commit 52ee6ad470.

The original commit addressed incorrect UI alignment caused by improper
handling of font height and linespacing after FreeType integration
(introduced in 734386ce9f).

However, commit c2d529b975 corrected the root issue by standardizing
font metrics:
- Proper use of FreeType's height
- Removal of lineSpace
- Introduction of getCapHeight and Descender for accurate vertical
  alignment

As a result, the UI offset workaround is now obsolete and must be
reverted to reflect the correct baseline behavior.
2025-06-11 08:10:57 -05:00
trompetin17 dfb4598186 Align font height, capHeight to FreeType metrics
Previously, `height` was derived from a manually chosen glyph (typically
"I", Standard Cap Height) using FontBuilder, and `lineSpacing` was used
inconsistently for layout logic as a height.

Now, with the FreeType-based system:
- `height` uses `face->size->metrics.height`, which includes the
  recommended line height with internal leading/line gap as defined by
  the font designer.
- `lineSpacing` was removed
- `GetCapHeight` uses the standard cap height + ascender to have a
  visual virtual alignment

This change standardizes font metric usage:
- Use `height` for vertical layout and line progression.
- Use `GetCapheight` in layout engines like `CGUIText` or `CGUIString`,

This ensures better alignment across fonts and consistent spacing in
multiline text rendering.

Fixes: #7962
2025-06-11 08:10:18 -05:00
Dunedan 638d4d28d2 Use the official eslint pre-commit hook
Recently eslint added official support for pre-commit, so let's use
their official pre-commit hook instead of a third-party one.
2025-06-11 13:22:44 +02:00
Itms 994645930c Move maps XML files out of LFS
Fixes #7519.

Reviewed-By: Dunedan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8014
2025-06-11 10:33:57 +02:00
Carl-O a2830603b4 Capitalize first letter in ancient Egyptian
Reviewed-By: Stan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8041
2025-06-10 23:12:59 +02:00
Carl-O c772b3ad89 Fix gaul Assembly SoundGroups
Make the sound consistent with its Athenian and Spartan counterparts.

Reviewed-By: Stan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8040
2025-06-10 23:07:17 +02:00
Vantha 6a7ad264e4 Add pitch-rolling to some bush and grass props
Fixes the issue that they noticably stick out horizontally when placed on slopes.

(thanks to the previous commit these values will be adopted by the "special/actor" template when loading it in)

Reviewed-By: Itms
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/7542
2025-06-10 23:01:09 +02:00
Vantha eb2f59eeaa Allow actors to override the entity's anchor type
Optionally let actor templates define their own anchor types.
These override the default value defined in the template.
Useful for actors without their own entity template.

Reviewed-By: Itms
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/7542
2025-06-10 23:01:09 +02:00
Ralph Sennhauser 0ce889ca6d Use stylistic for deprecated eslint rules
During the eslint 8 cycle the formatting rules were split out [1],
deprecating the corresponding rules in core.

This replaces all rules that where moved to @stylistic/eslint-plugin [2]
and accounts for the difference in the indenting rule behaviour.

To allow the pre-commit import hack to continue to work with the
stylisitc plugin for a recent nodejs version to be used.

[1] https://eslint.org/blog/2023/10/deprecating-formatting-rules/
[2] https://eslint.style/packages/default

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-10 21:23:23 +02:00
Stan ff03dd45c4 Adjust log path to use XDG_STATE_HOME
Also move logs/ log/ so that it's more in line with /var/log/

Fixes: #7960
Pull Request: #8045
2025-06-07 12:39:03 +02:00
phosit 05869454e5 Disalow importing some files
Not all modules should be able to load all other modules. A predicate
function can to be passed to the `ScriptInterface`. That function
returns whether the module is allowed to loat the module. If no
predicate is passed in no modules can be loaded through that
`ScriptInterface`.
2025-06-06 17:36:35 +02:00
phosit 6492bc705a Allow modules to be hotloaded
Reload a module when it's script file got changed or when one of it's
imported modules got reloaded.

This doesn't work for dynamic `import`s.
2025-06-06 17:36:35 +02:00
phosit 4043f954a7 Allow mods to write appendices
Module local values are visible to Appendixes. This mechanism can be
used for mods.
2025-06-06 17:36:35 +02:00
phosit d76e107dca Support the import.meta property
Through the `import.meta` property the engine can pass some values to
the module. Currently only the `path` of the script file is exposed.
2025-06-06 17:36:35 +02:00
phosit a40caaffc4 Support dynamic import
The static `import` should be prefered over the dynamic but it might be
usefull when loading an object from a json file.
2025-06-06 17:36:35 +02:00
phosit 252df0a1db Return the namespace of a module
To make it easy for the engine to access the exported values the
namespace is returned from the future.
2025-06-06 17:36:35 +02:00
phosit d26d9b9b2b Rethrow exceptions from the top level of a module 2025-06-06 17:36:35 +02:00
phosit ce01bdddf6 Allow to check whether modules finished evaluating 2025-06-06 17:36:35 +02:00
phosit 32ef4fd0fa Normalize module-path
Modules indipendant of the path, should only be evaluated once.
2025-06-06 17:36:35 +02:00
phosit c6d42ebbd5 Support JavaScript modules
- With modules JavaScript code can be split up into multiple files. We
	already implemented such a mechanism (`Engine.LoadLibrary`) in
	multiple parts of the engine. The advantage of using modules is
	that it's standart (JS-devs are familiar with it) and it doesn't
	has to be implemented multiple times.
	Note that `Engine.LoadLibrary` loads all files in a directory
	while the new `import` only loads one file.

- With modules seemingly global variables are local to that
	script/module. We already implemented such a mechanism
	(`ScriptInterface::LoadScript`).
2025-06-06 17:36:35 +02:00
Ralph Sennhauser 475053ea7c Fix copyright linter invocation
Requires HEAD to point to --to <commitish> for the files to be in the
state for copyright.py to produce expected results. Which isn't the case
in the gitea workflow.

Also use plumbing commands to on one hand make it more robust and on the
other hand to avoid bad files only in --from <commitish> to leak into
the check.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-04 21:12:25 +02:00
trompetin17 c3d3943047 Fix incorrect shadow behavior in VisualActors
This commit primarily corrects an inaccurate comment and resolves a
hidden bug in the VisualActor shadow logic, while preserving the current
behavior.

Previously, the DisableShadows option removed both casting and receiving
shadows. However, the internal logic ignored this setting in some cases,
causing shadows to appear even when explicitly disabled in XML
templates.

This change introduces the ability to control CastShadows and
ReceiveShadows independently via template settings, defaulting both to
true unless explicitly specified.

In addition, previews are updated to receive shadows but not cast them,
improving visual volume effects without affecting lighting behavior.
2025-06-03 19:30:10 -05:00
Ralph Sennhauser 8ec21aac53 Group documentation pages
All documentation pages are made subpages of a page Documentation, this
helps browse documentation not directly tied to source code.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-03 20:44:39 +02:00
trompetin17 4dc686564e Fix FreeType font loading from zipped mods
The FreeType font loader was directly passing filesystem-style paths
(e.g., mod.zip/...) to FT_New_Face, which does not support paths inside
ZIP archives. As a result, FreeType failed to open the font, triggering
a crash when the engine attempted to use an invalid face object.

This patch changes the font loading logic to:

Use the VFS to read the .ttf font file into memory (shared_ptr<u8> and
size).

Load the font using FT_New_Memory_Face with the in-memory buffer,
ensuring compatibility with zipped mods.
2025-06-03 11:20:56 -05:00
elexis 67eaa8f1a9 Fix change perspective in replays
Fixes change perspective features of multiplayer replays following cheat
protection in 023527e56e.

Fixes: #8020
2025-06-03 13:52:26 +02:00
trompetin17 81dfd51eb3 Fix hard crash when terrain is missing from map
Previously, opening a map that referenced a deleted or missing terrain
caused a severe crash with multiple error dialogs, forcing users to kill
the process. This change restores the previous behavior where missing
terrains are gracefully handled: a warning is logged and the terrain is
substituted with a fallback placeholder (ErrorTexture from
TextureManager).

This significantly improves UX for developers and modders working with
outdated or broken maps, aligning behavior with expectations from
earlier versions of the editor.
2025-06-02 00:29:03 -05:00
Ralph Sennhauser 9dfc638b80 Add Win64 pipeline support
Extends the current Windows pipeline to also build for AMD64. While at
it use a matrix build.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:39 +02:00
Ralph Sennhauser 623e7f7a47 Disable warning LNK4098
Even with lots of effort [1] to isolate the offending library there is
little to be had, as such disable the warning.

[1] https://gitea.wildfiregames.com/0ad/0ad/pulls/7798#issuecomment-119332

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:39 +02:00
Ralph Sennhauser 241b9f0952 Add missing Win64 dbghelp dlls
Bump svn libs version to get dbghelp.dll and dbgcore.dll.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:39 +02:00
Ralph Sennhauser a8e0e50ae5 Use Bit instead of BIT
The BIT macro is compile time only anyway. Takes care of the warning
"C4334 - <<': result of 32-bit shift implicitly converted to 64 bits".

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:39 +02:00
Ralph Sennhauser 06e2f0bcc3 Fix cast to void for Win64
Make what could be considered a legendary hack less brittle.

    C4312: 'reinterpret_cast': conversion from 'long' to 'void *' of greater size

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:39 +02:00
Ralph Sennhauser e1e1e42939 Update fmt and libxml2 for Wind64
Bump svn rev for libs to get fmt and libxml2 fixes.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:38 +02:00
Ralph Sennhauser b527e6b870 Fix check for availability of wxWidgets for Win64
In premake we check for wxWidgets on Windows to see if we can build
Atlas, this check wasn't adopted when adding support for Win64.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:38 +02:00
Ralph Sennhauser fb56668dd9 Fix size mismatch in shift operation for Win64
Msvc complains about C4334 - 32bit/64bit shift.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:38 +02:00
Ralph Sennhauser 58b70719be Disable conversion warnings on Win64
Those warnings aren't enabled for gcc and clang currently either, so
just disable them for msvc as well.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:38 +02:00
Ralph Sennhauser 904dffdaba Disable warnings for Mongoose on Win64
Mongoose is on the way out, and it's not like the same issue isn't
present for other 64bit platforms, we just don't have those warnings
enable there.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:51:38 +02:00
Ralph Sennhauser ef7f1d336c Move errorlist.pl from build to tools
The target file is checked in into vcs so this tool isn't used during
build and as such better lives in source/tools.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 20:42:44 +02:00
Ralph Sennhauser 4463e9480a Remove leftovers of arclint
All linting was ported to pre-commit or gitea workflows, the only thing
left is an adapter to output to Phabricator which is no longer in use.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-01 13:25:24 +02:00
Ralph Sennhauser 895cb63c4a Add --build-archive to spidermonkey build.sh
This option allows to build the spidermonky archive hosted by WFG from
the upstream firefox tarball.

First this serves as documentation as to how the taball is created and
by integrating it into the regular build process allows to easely bump
spidermonky version for local testing.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-31 17:10:10 +02:00
Stan 167020c05c Fix broken build restrictions
In f3ac9e9669 the fail condition was broken causing it to allow building on restricted areas.

Add a test to ensure correct behavior for this case.

Reported by: @wowgetoffyourcellphone
Pull Request: #8021
2025-05-31 10:58:14 +02:00
Stan d3017b6f9c Fix error spam in Atlas
Atlas has no notion of player removal. Each entity would trigger an error in Player.js

Reported by: @trompetin17
Reviewed by: @trompetin17
Pull Request: #8006
2025-05-30 19:23:32 +02:00
Ralph Sennhauser 02e15da51b Add eslint pre-commit hook
This replaces the old arclint eslint setup 1:1 rule wise, only porting
the configuration to a format recent eslint can read.

Further remove the arclint setup as it is no longer of use.

Thanks to Stan for reviewing all needed fixes to Javascript code to
allow for adding this without compromises.

Fixes: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-30 17:30:25 +02:00
Ralph Sennhauser 666ffb0f18 Fix new and profiler eslint warnings
This fixes 'no-trailing-spaces', 'semi', 'prefer-const' that made it in
since and 'no-shadow', 'no-multi-assign', 'no-invalid-this' as well as
'no-undef-init' in profiler.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-30 15:25:54 +02:00
phosit d98a205feb Don't pass report explicitly in ReportDraw
The function declaration binds `report` implicitly.

Ref: #7812
2025-05-30 14:16:32 +02:00
phosit e0ed2ae0c8 Replace var in inner scopes from ReportDraw
Variables declared with `var` are also accible after accessing the
scope. This lead to shadowing because variables with the same name are
declared in a later scope.

Ref: #7812
2025-05-30 14:16:31 +02:00
phosit 07ed959422 Remove IIFE in ReportDraw
Since variables declared with `var` don't respect all scopes, when used
in a loop it doesn't create a new variable each iteration. The
initializer value is always assigned to the same variable. That makes
problems when the variable is used in a callback. To work around that
the variable is copied in to a IIFE.
When not using `var` the iife isn't required.

Ref: #7812
2025-05-30 14:16:18 +02:00
phosit 61de7ccbfc Don't use this in do_zoom callbacks
Ref: #7812
2025-05-30 13:22:06 +02:00
phosit 0e9d2a8d5e Remove outInterface from ReportDraw
Only return the one function which is actually used.

Ref: #7812
2025-05-30 13:21:59 +02:00
phosit 83f2a34a50 Make canvas local in ReportDraw
Ref: #7812
2025-05-30 13:21:41 +02:00
trompetin17 d323797d98 Add glyph debug box rendering for font system
This commit introduces optional debugging visuals for font glyph
rendering. When enabled, each glyph is drawn with a surrounding debug
box to aid in visual inspection of glyph layout, spacing, and atlas
behavior.

Usage examples (via console):

// Enable debug box rendering
Engine.ConfigDB_CreateValue("user","fonts.debugBox", true);

// Set debug box color (R G B)
Engine.ConfigDB_CreateValue("user","fonts.debugBoxColor", "35 0 35");

This feature is intended for developers working on font layout or atlas
generation logic, and has no effect on normal gameplay or UI rendering
when disabled.
2025-05-29 06:23:20 -05:00
Ralph Sennhauser 8b1c6c76b6 Make Profiler2Report a class and make eslint happy
This removes all global code and fixes eslint warnings 'no-shadow' and
'no-undef-init'. Leave other possible improvement style wise for an
other time.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-29 11:03:13 +02:00
Stan b36782388b Allow removing player entities when starting a match. 2025-05-28 23:05:36 +02:00
Ralph Sennhauser e4e80a2504 Use trigger hook to init map Flood
Eslint doesn't like the global return and fails to parse the trigger
script file. Rewrite the script to avoid this and any globals while at
it. Also use OnInitGame as the execution with an IIFE in global scope
wouldn't guarantee when it will be executed or whether the timer
component is already registered.

Further don't concat the warning string as the extraction script for
translation expects a literal.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 20:21:24 +02:00
Ralph Sennhauser 7583c4f241 Fix remaining eslint warnings
Fix instances of semi, no-unreachable, space-unary-ops, and no-invalid-this.

Manual fixes needed for:
eslint --config full.mjs

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:51:10 +02:00
Ralph Sennhauser 97d76b1495 Fix eslint rule 'prefer-const'
Manual fixes needed for:
eslint --no-config-lookup --rule '"prefer-const": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:34:46 +02:00
Ralph Sennhauser f3ac9e9669 Fix eslint rule 'default-case'
Manual fixes needed for:
eslint --no-config-lookup --rule '"default-case": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:24:50 +02:00
Ralph Sennhauser d37811d42c Fix eslint rule 'no-invalid-this'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-invalid-this": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 17:18:33 +02:00
Lancelot de Ferrière e930cf893e Align SM GC time budget with manual GC time budget
6 milliseconds now used everywhere.
2025-05-28 10:14:34 +02:00
Lancelot de Ferrière e3e542b1f9 Always allow last-ditch GCs
As noted on #7979, we run into OOMs since commit af32d386b9. The reason is that the default incremental GC budget is unlimited, which actually doesn't perform incremental GCs. Our settings can lead to situation where the incremental GCs don't actually sweep, thus not freeing memory.
SM has a mechanism to avoid OOM anyways with LAST_DITCH GCs, but by default these can only occur ever 30 seconds. Turn this off.

Reported by: langbart
2025-05-28 10:14:20 +02:00
trompetin17 2781d9a6a3 Add Fallback Font support
In previous fontbuilder.py we have the capacity to specified chain fonts
when a glyph is missed from one font.

This commit enable that behavior.
2025-05-28 01:01:03 -05:00
trompetin17 e024f5c88b Fix blurry text by aligning glyph positions
Text rendering appeared blurry due to subpixel positioning when using
LINEAR filtering. Replaced glyph position calculation with std::ceilf()
to ensure integer-aligned drawing coordinates and crisper text.
2025-05-27 21:30:57 -05:00
Vantha b772ebc262 Small normal map improvement 2025-05-27 22:19:24 +02:00
Ralph Sennhauser 03fd1acd5d Fix memory leak wrt renderer instance
The renderer instance is created with new, so use delete.

Direct leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7fd3c932870b in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/15/libasan.so.8+0x12870b)
    #1 0x55bbedf25fb0 in InitGraphics(CmdLineArgs const&, int, std::vector<CStr8, std::allocator<CStr8> > const&, ScriptContext&, ScriptInterface&) ../../../source/ps/GameSetup/GameSetup.cpp:654
    #2 0x55bbed2bb95e in RunGameOrAtlas ../../../source/main.cpp:684
    #3 0x55bbed271b28 in main ../../../source/main.cpp:759
    #4 0x7fd3c665f3ed in __libc_start_call_main (/lib64/libc.so.6+0x263ed)

Fixes: #7951
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-27 20:36:48 +02:00
Ralph Sennhauser ba9dcd8146 Fix eslint warnings for 'gamestate.js'
Fixes 'no-invalid-this' by converting to arrow function as thisArg is
only accepted by eslint for inlined function, "free" function might be
used in another context.

Also fixes 'consistent-return' and 'default-case' adn while at it
simplify the logic a bit.

Manual fixes needed for:
eslint --config full.mjs binaries/data/mods/public/simulation/ai/common-api/gamestate.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-27 19:25:30 +02:00
Dunedan f00dff380d Refactor validate_dae.py for more speed
This refactors validate_dae.py to utilize multiple CPU cores. This makes
it significantly faster. It also improves code quality and adds commands
line options.
2025-05-27 08:05:13 +02:00
Dunedan 4b3d7f018b Improve find_files implementation
Instead of listing files recursively for each directory manually, this
uses the built-in glob functionality of Python's pathlib.Path. As
part of this the found paths are returned as generator instead of a
list. Together this results in easier to read code and better
performance.
2025-05-27 07:32:51 +02:00
Vantha 279233aca1 Two improved normal maps 2025-05-27 07:26:33 +02:00
trompetin17 bdd94bd264 Add font engine aware of Gui.scale
This commit enhances text rendering by leveraging FreeType and a dynamic
font atlas. Previously, GUI scaling relied on bitmap fonts, which led to
blurry and distorted text when scaling up. Now, we scale the font size
directly using FreeType, resulting in much sharper and more readable
text at any GUI scale.

Key improvements:
- Replaced bitmap font scaling with true font size scaling via FreeType.
- Reduced glyph cache dependency on fixed positions, relying on shader
  scaling instead.
- Switched to float-based glyph positioning for more accurate rendering
  and scaling.

These changes ensure clean and consistent text appearance across
different GUI scales.
2025-05-26 13:12:47 -05:00
Ralph Sennhauser 189ec6a7eb Fix eslint rule 'brace-rules'
Manual fixes needed for temporary config braces-rules due to setting up
required plugin:
eslint --no-config-lookup --config brace-rules.mjs

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-26 19:23:19 +02:00
Ralph Sennhauser 8b13be3b03 Fix eslint rule 'consistent-return'
Manual fixes needed for:
eslint --no-config-lookup --rule '"consistent-return": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-26 18:54:52 +02:00
Dunedan b42ea94c3c Update the pre-commit hooks 2025-05-26 17:19:03 +02:00
Dunedan d111d4cc84 Specify the NodeJS version for markdownlint
Running the markdownlint pre-commit hook as Gitea Action fails for
markdownlint >=0.38.0, as the NodeJS version available in the Act Runner
Docker image so too old for that. To solve this, this commit specifies a
newer NodeJS version to use.
2025-05-26 17:18:58 +02:00
Dunedan 782bab293b Fix pre-commit workflow to work with Ubuntu 24.04 2025-05-26 16:42:05 +02:00
Dunedan a109b3973c Remove the need to change the working directory 2025-05-26 08:48:42 +02:00
Dunedan 5758430962 Simplify and speed up parent retrieval
This skips recursive parsing of the parents of an entity, as just its
direct parents are required by the implmentation. It also simplifies how
such calls are cached. This leads to much cleaner and faster code.
2025-05-26 08:48:42 +02:00
Dunedan 927165e1e5 Make unit_tables.py callable from other places 2025-05-26 08:48:42 +02:00
Dunedan 2b54697862 Fix overwriting previous error state
This fixes a problem where the previous error state got overwritten by
the result of validating meshes in checkrefs.py.
2025-05-25 12:23:58 +02:00
Dunedan 71c02cf658 Fix checkrefs.py return code
A typo in the assignment of the error state lead to checkrefs.py
existing with return code 0, while it should've returned 1 in some
cases. This commit fixes that.
2025-05-25 12:23:58 +02:00
Dunedan b4f076effb Don't report errors for empty attribute values
Let checkrefs.py skip reporting errors for empty attribute values.

Fixes #7966
2025-05-25 12:12:45 +02:00
Dunedan 99b9a0cb86 Add support for new font handling for checkrefs.py
As the fonts specified in the GUI templates don't exist as files on disk
anymore after 734386ce9f we can't check if they're specified correctly
the same way as before anymore. Instead, this commit adds validation
of font names to the GUI Relax NG schema and adds a check whether all
fonts referenced in default.cfg exist in the proper location.
2025-05-25 11:21:51 +02:00
Dunedan 6c85951d53 Combine duplicate profiler2 config sections
default.cfg contained two sections named "profiler2". That's something
which might be confusing and is not supported by all implementations of
ini file parsers. To remove that ambiguity, this combines these two
sections into one.
2025-05-25 11:21:47 +02:00
trompetin17 1aea9f2d32 Add CJK languages to release/installer
After 734386ce9f, CJK fonts are included in mods/mod folder, removing the
need for CJK mods. This commit enables those languages in the release
and the installer.
2025-05-24 12:15:14 -05:00
Lancelot de Ferrière a7330cf469 Improve group movement by distributing units around the target.
This improves pathfinding feel as units no longer try to clump on a particular point. However, can lead to oddities if there's a lot of impassable terrain around.

Closes #7791
2025-05-24 14:34:09 +02:00
Dunedan efdc1fab0a Add a pre-commit hook to check for large files
This checks there are no large files being committed, which aren't
stored in git-lfs.
2025-05-22 20:43:52 +02:00
Dunedan 1985fefcbd Fix a crash of the debug console
This fixes a crash when pyrogenesis got compiled with certain
compilers, whenever a command is entered in the console, while no
console.txt log exists.

Fixes #7964
2025-05-22 20:31:28 +02:00
Ralph Sennhauser 72be06fd7f Fix AttackEntityInZone after eslint 'no-shadow'
Fix for 7b4cf11e25

Fixes: #7965
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-22 19:16:28 +02:00
trompetin17 8c85f32327 Remove fontbuilder & files
After 734386ce9f (that introduce freetype as a core of text rendering
engine), we dont need fontbuilder.py, neither files generated by that
tool.
2025-05-22 19:06:53 +02:00
trompetin17 c8c1522953 Fix memory leak from Font
FreeType’s FT_Glyph_To_Bitmap mutates the FT_Glyph by allocating a new
glyph object and overwriting the input pointer. This creates a risk of
memory leaks if the old glyph isn’t released or if ownership is unclear.

To avoid this, we now store the glyph in a UniqueFTGlyph and explicitly
pass it by reference to FT_Glyph_To_Bitmap. After the mutation,
ownership continues to reside in the smart pointer, and cleanup is
guaranteed even in error branches.

For temporary glyphs (e.g., strokes), we still manually call
FT_Done_Glyph, since they are not managed by UniqueFTGlyph. These
changes ensure all glyph memory is correctly released and reduce the
need for repetitive error-path cleanup code.
2025-05-22 11:35:12 -05:00
Ralph Sennhauser 1fac3461f9 Never strip binaries automatically
Striping is trivial, getting the debug symbols if premake just strips
them silently is a pain tho.

Stripping should optionally be done during install, as we don't have an
install target nor an install-strip target, make it a configure option
which is off by default.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-22 17:32:39 +02:00
Dunedan b3de44c37d Increase range of Ptolemaic lighthouse
The Ptolemaic lighthouse is a pretty unique building. Ever since it got
changed to not reveal all coasts anymore in 04240f05a7 it hasn't been
very useful anymore, as its visibility range was too low to justify
spending the resources on it. To make the lighthouse more attractive
again, this commit increases its visibility range from 200 to 325.
2025-05-22 08:18:24 +02:00
Ralph Sennhauser fb470ffa35 Add options for sanitizers to premake5.lua
Given that Valgrind is not yet avx512 ready [1] all the more reason to
have easy access to ASAN and friends for compilers that support it.

This commit adds options for ASAN, TSAN and UBSAN. [2]

[1] https://bugs.kde.org/show_bug.cgi?id=383010
[2] https://github.com/google/sanitizers/wiki

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-21 20:44:19 +02:00
trompetin17 a1d13c1cf8 Add CJK fonts for Text Engine
This PR removes the need for separate mods that previously provided CJK
support, and reduce the step for release process as mentioned here:
https://gitea.wildfiregames.com/0ad/0ad/wiki/ReleaseProcess
2025-05-21 16:16:36 +02:00
Lancelot de Ferrière 75421ef27c Disable system libs for WxWidgets
This is needed on recent wxWidgets versions to prevent fetching native libraries on the system while we are cross-compiling for Intel bundles.
2025-05-21 08:54:45 +02:00
Ralph Sennhauser 622f477ae9 Fix eslint rule 'no-new'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-new": 1'

Make the handlers that aren't actually handlers calss functions and for
the HotkeyPage suppress the warning as the global init is prone to be
removed at some point.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-20 14:17:13 +02:00
Ralph Sennhauser 382b732515 Update test_root path in update-workspace
After 8d993b9250 the generated test_root.cpp is no longer in the source
tree but generated in workspace. The issue of there bing no source is
still valid, so update the path.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-19 17:43:21 +02:00
Dunedan 638391d7ab Fix password change for certain usernames
This fixes the ability for users with uppercase letters in their
username to change their passwords, which wasn't possible before on
non-Windows platforms. The underlying issue for that is
https://github.com/processone/ejabberd/issues/4377 and in addition some
inconsistent normalization of usernames in password change requests
by gloox. This commit works around that by always using the local JID
part as username for password requests, which got the nodeprep string
profile already applied.

It also fixes a problem that Windows users which were able to change
their passwords, weren't able to login afterwards anymore, unless they
typed their username in all lowercase in the login form. This was caused
by using the all lowercase username as input for the password hash
function, instead of using the username in the user supplied case.

Fixes #7796
2025-05-19 17:05:41 +02:00
ShadowOfHassen 231c38d28d Improved Civ Overviews 2025-05-19 10:35:27 +02:00
Ralph Sennhauser 5445aaaf59 Allow no files for copyright checks
If a commit just removes files for cleanup purpose for example the list
of files to check would be empty. Therefore allow no files as arguments
for use in CI.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-18 20:18:08 +02:00
Dunedan f28ca5d684 Fix bold and italic fonts
A last minute change in #7787 caused the bold and italic identifiers of
fonts to be ignored once it got merged in 734386ce9f and all fonts to
be rendered as regular fonts. This commit fixes that.
2025-05-18 18:41:25 +02:00
Dunedan b1a638dfdc Remove the sprites of the player color dropdown
This makes the arrow of the player color dropdown look like in a27
again.
2025-05-17 18:54:22 +02:00
Dunedan dc156c3f24 Fix position of the ingame release label
This commit fixes the vertical position of the release label in the
in-game top menu, which broke with 734386ce9f.
2025-05-17 18:54:22 +02:00
Dunedan ec95ee96d4 Improve player color dropdown
This properly centers the colors in the player color dropdown.
2025-05-17 18:54:22 +02:00
Dunedan 58a58bc25d Improve layout of the civ and structree pages
This contains some small layout fixes and improvements for the
civilization overview and structure tree pages. Some of these fixes have
fix regressions introduced with 37065ebc71.
2025-05-17 18:54:12 +02:00
Ralph Sennhauser 4e5cdc87b9 Fix eslint rule 'spaced-comment'
Manual fixes needed for:
eslint --no-config-lookup --rule '"spaced-comment": ["warn", "always"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-17 12:08:47 +02:00
Dunedan 52ee6ad470 Fix element positions after new font rendering
This fixes the positions of elements which changed as part of
734386ce9f.
2025-05-17 10:02:25 +02:00
Ralph Sennhauser 7b4cf11e25 Fix eslint rule 'no-shadow'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-shadow": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-17 09:48:36 +02:00
Ralph Sennhauser dcda4187be Fix parsing of graph.js for eslint
The perl script extract.pl just checks for a line matching
'-- include data json--', so making it valid js is can be done just
fine.

Also fix eslint warning is graph.js.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-17 06:29:29 +02:00
trompetin17 734386ce9f Use freetype for font rendering
Replace premade bitmap fonts with FreeType2 and dynamic texture atlas.

Switched from static, premade bitmap fonts to runtime-generated glyphs using FreeType2.
Glyphs are rendered on demand into a dynamic texture atlas, improving scalability,
font quality, and support for internationalization.

Currently using RGBA format for compatibility across all render
paths while initial support for R8_UNORM is being added.
This prepares for future optimizations in VRAM and performance

Includes groundwork for gamma-corrected blending and future swizzling support.
2025-05-16 14:57:59 -05:00
Dunedan 45340a2e32 Don't store consecutive console commands twice
This adds an option to disable storing consecutive console commands
twice and enables it by default.
2025-05-16 17:38:41 +02:00
Dunedan d549cbeeaa Make the console font configurable 2025-05-16 17:38:41 +02:00
Dunedan 13c00d1869 Add missing console.history.size to default.cfg 2025-05-16 17:38:29 +02:00
Kate a91a8594c2 remove whitespace on line 317 through 321 2025-05-16 12:11:18 +02:00
Kate 750b10a966 Update binaries/data/mods/public/simulation/ai/petra/config.js 2025-05-16 01:51:06 +02:00
Kate 517916c4d6 Update binaries/data/mods/public/simulation/ai/petra/config.js 2025-05-16 00:50:49 +02:00
Itms 416ba3fc2b Fix Gitea actions syntax on push events
The Github documentation is difficult to parse, but there is an
asymmetry in the API:
- for a PR event, the event object contains a `pull_request` object
  containing `base` and `head` objects
- for a push event, the `before` and `after` SHAs are immediate
  children of the event object

<https://docs.github.com/en/webhooks/webhook-events-and-payloads>

Fixes #7730.
2025-05-15 11:45:25 +02:00
Itms 83674e1d1b Fix lfscheck action syntax on push 2025-05-15 10:54:46 +02:00
Itms 2889170a09 Check LFS pointers integrity in an action
Running the checks here instead of in repository hooks will prevent
Gitea from hanging during pushes.
2025-05-15 09:33:50 +02:00
Ralph Sennhauser a9987868c4 Fix eslint rule 'no-use-before-define'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-use-before-define": ["error", "nofunc"]

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-14 16:35:58 +02:00
Ralph Sennhauser 3a2d75af65 Fix eslint rule 'no-irregular-whitespace'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-irregular-whitespace": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-14 13:52:12 +02:00
Itms 56e268d82b Update the issue template for release processes 2025-05-14 11:14:13 +02:00
Itms 51ab929926 Implement pipeline for generating patch releases
The new patch-release pipeline takes a git branch originating from a
release tag, applies the changes since the tag onto the nightly build of
the release, and rebuilds the Windows binary.

All resulting changes are sent to the bundling pipeline which builds for
macOS and creates the tarballs and installers.

There will be two instances of the bundles pipeline: the main one will
keep tracking the main branch and providing biweekly bundles of the next
release, while a new patched-bundles pipeline will be manually used to
generate patch releases.
2025-05-14 10:49:02 +02:00
Itms c38b40cda8 Allow downloading Windows libraries into nightly 2025-05-14 10:48:43 +02:00
Ralph Sennhauser 74f475f9fd Fix eslint rule 'no-return-assign'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-return-assign": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 20:12:35 +02:00
phosit 429fb672a0 Move the argument validation to PlayerPlacement
Only `PlayerPlacement` itself should know how to validate it's value.
Fix: #7686
2025-05-13 17:52:57 +02:00
Ralph Sennhauser 406d0c90ca Fix eslint rule 'operator-linebreak'
eslint --no-config-lookup --fix --rule '"operator-linebreak": ["warn", "after"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 16:06:50 +02:00
Ralph Sennhauser bc2e16afc2 Fix eslint rule 'no-mixed-spaces-and-tabs'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-mixed-spaces-and-tabs": ["warn", "smart-tabs"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 15:48:23 +02:00
Ralph Sennhauser 40f1340e60 Fix eslint rule 'space-before-function-paren'
eslint --no-config-lookup --fix --rule '"space-before-function-paren": ["warn", "never"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 15:21:57 +02:00
Ralph Sennhauser 8e71be511b Fix eslint rule 'space-in-parens'
eslint--no-config-lookup --fix --rule '"space-in-parens": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 14:29:29 +02:00
Ralph Sennhauser 76a50d1828 Fix eslint rule 'no-floating-decimal'
eslint --no-config-lookup --fix --rule '"no-floating-decimal": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 14:09:58 +02:00
Ralph Sennhauser d2222ee0ac Fix eslint rule 'prefer-const'
The remaining ones that can be fixed automatically.

eslint --no-config-lookup --fix --rule '"prefer-const": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 18:44:28 +02:00
Ralph Sennhauser c24bf321d6 Fix eslint rule 'prefer-const' in gui/[c-p]
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/[c-p]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 14:15:40 +02:00
Ralph Sennhauser e7f1406c37 Fix eslint rule 'prefer-const' in components/[T-V]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[T-V]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 13:12:45 +02:00
Ralph Sennhauser 4b3124e364 Fix eslint rule 'prefer-const' in components/unitai
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/UnitAI.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 08:23:10 +02:00
Ralph Sennhauser 9d791de2eb Fix eslint rule 'prefer-const' in components/[R-S]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[R-S]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 08:02:53 +02:00
Ralph Sennhauser fd27f39c20 Fix eslint rule 'prefer-const' in components/[H-P]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[H-P]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 19:24:03 +02:00
Ralph Sennhauser eb75835ce4 Fix eslint rule 'prefer-const' in components/G*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/G*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 17:53:23 +02:00
Ralph Sennhauser b80c222b96 Fix eslint rule 'prefer-const' in components/[C-F]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/C* \
    binaries/data/mods/public/simulation/components/D* \
    binaries/data/mods/public/simulation/components/E* \
    binaries/data/mods/public/simulation/components/F*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 14:27:12 +02:00
Dunedan ea4de39faa Direct support requests to the forums
This disables the default issue type in Gitea and replaces it with a
link to the help and feedback section in the forums. That's a measure to
discourage players to use Gitea as a tool to seek support.
2025-05-11 12:24:49 +02:00
Lancelot de Ferrière dd74892463 Fix no-pch build following #7829 2025-05-11 11:24:50 +02:00
Ralph Sennhauser 4c4f787c63 Fix eslint rule 'prefer-const' in components/[A-B]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/A* \
    binaries/data/mods/public/simulation/components/B* \

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 10:40:23 +02:00
Ralph Sennhauser 88eea5c7e3 Fix eslint rule 'prefer-const' in components/tests
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/tests

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 10:03:30 +02:00
Lancelot de Ferrière cf952b34e4 Fix silhouette calculation after 8a40673
Fixes #7804
2025-05-11 09:56:24 +02:00
Ralph Sennhauser 2e090c2daa Fix eslint rule 'prefer-const' in components/tests/[A-R]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/tests

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 09:06:57 +02:00
Ralph Sennhauser 5a9968f88d Fix eslint rule 'prefer-const' in simulation/helpers
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/helpers

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 08:50:27 +02:00
Ralph Sennhauser bebc72a3c7 Fix eslint rule 'prefer-const' in sim/helpers/commands
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/helpers/Commands.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 19:41:45 +02:00
Ralph Sennhauser 62ee1c34ac Fix eslint rule 'prefer-const' in simulation/ai
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 19:16:52 +02:00
Ralph Sennhauser ac3f56fa9e Fix eslint rule 'prefer-const' in ai/[a-f]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/common-api/class.js \
    binaries/data/mods/public/simulation/ai/common-api/entity.js \
    binaries/data/mods/public/simulation/ai/common-api/entitycollection.js \
    binaries/data/mods/public/simulation/ai/common-api/filters.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:55:13 +02:00
Ralph Sennhauser 93668e8447 Fix eslint rule 'prefer-const' in gui/reference
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/reference

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:40:28 +02:00
Ralph Sennhauser 50a5d4b366 Fix eslint rule 'prefer-const' in gui/session
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:05:22 +02:00
Ralph Sennhauser 9f489b748f Fix eslint rule 'prefer-const' in gui/session/[m-t]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/message_box \
    binaries/data/mods/public/gui/session/messages.js \
    binaries/data/mods/public/gui/session/minimap/MiniMap.js \
    binaries/data/mods/public/gui/session/objectives \
    binaries/data/mods/public/gui/session/top_panel \
    binaries/data/mods/public/gui/session/trade

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 17:38:23 +02:00
Lancelot de Ferrière 9eccf1f27d Iterate the component map only once on serialization 2025-05-10 17:08:49 +02:00
Lancelot de Ferrière ea34960249 Skip UTF8 conversions in prototype name 2025-05-10 17:08:49 +02:00
Lancelot de Ferrière bcd0e12cc3 BinarySerializer: avoid creating unnecessary ScriptRequest 2025-05-10 17:08:49 +02:00
Lancelot de Ferrière ab6a420f78 Cache property keys during component serialization 2025-05-10 17:08:49 +02:00
Lancelot de Ferrière 83bf2eb22e Skip redundant HasProperty in GetObjectClassName 2025-05-10 17:08:49 +02:00
Ralph Sennhauser 8c20405274 Fix eslint rule 'prefer-const' in gui/session/[a-l]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/campaigns \
    binaries/data/mods/public/gui/session/chat \
    binaries/data/mods/public/gui/session/developer_overlay \
    binaries/data/mods/public/gui/session/diplomacy \
    binaries/data/mods/public/gui/session/lobby

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:52:52 +02:00
Ralph Sennhauser 7eeb8a6f9f Fix eslint rule 'prefer-const' in gui/session/input+
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/input.js \
    binaries/data/mods/public/gui/session/session.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:43:01 +02:00
Ralph Sennhauser b5227e03f7 Fix eslint rule 'prefer-const' in gui/session/selection
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/selection*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:22:11 +02:00
Ralph Sennhauser 6e4e4b681e Fix eslint rule 'prefer-const' in maps/random
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/random

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 12:40:32 +02:00
Ralph Sennhauser 5373c2e10c Fix eslint rule 'prefer-const' in maps/rmgen
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/random/rmgen*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 12:10:24 +02:00
Ralph Sennhauser c92e300c20 Fix eslint rule 'prefer-const' in maps/scenarios
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/scenarios

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 08:11:32 +02:00
Ralph Sennhauser 60fc382bd8 Fix eslint rule 'prefer-const' in maps/scripts
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/scripts

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 19:46:31 +02:00
Ralph Sennhauser 519a215e1c Fix eslint rule 'prefer-const' in gui/common
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/common

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 19:32:43 +02:00
Ralph Sennhauser c8f3455458 Fix eslint rule 'prefer-const' in gui/campaigns
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/campaigns

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 15:37:01 +02:00
Vantha fa046392bb Adjust the resource icon placement in tooltips 2025-05-09 13:20:19 +02:00
Vantha 314088af14 Center all small resource icons 2025-05-09 13:16:43 +02:00
Ralph Sennhauser 5221b81bff Fix eslint rule 'prefer-const' in petra
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 11:16:53 +02:00
Ralph Sennhauser 6a16b18795 Fix eslint rule 'prefer-const' in petra/trade+
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/startingStrategy.js \
    binaries/data/mods/public/simulation/ai/petra/tradeManager.js \
    binaries/data/mods/public/simulation/ai/petra/transportPlan.js \

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 10:42:16 +02:00
Ralph Sennhauser fb5ae32e4b Fix eslint rule 'prefer-const' in petra/victoryManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/victoryManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-08 21:45:45 +02:00
Stan c960e6efd4 Fix linting jenkins file
The main branch wasn't pulled causing the diff to fail.
2025-05-08 21:01:54 +02:00
Stan 934ca601d7 Add a Jenkinsfile linter 2025-05-08 19:50:21 +02:00
Itms 1adab34511 Generate signatures and hashes in the bundles job 2025-05-08 19:08:56 +02:00
Ralph Sennhauser 5378f452cf Fix eslint rule 'prefer-const' in petra/worker
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/worker.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-08 18:31:51 +02:00
Ralph Sennhauser 08e21f3186 Fix eslint rule 'prefer-const' in petra/navalManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/navalManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 19:36:47 +02:00
Ralph Sennhauser c6b14fbb2c Fix eslint rule 'prefer-const' in petra/defense
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/defense*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 18:49:03 +02:00
Ralph Sennhauser 06b8857c04 Fix eslint rule 'prefer-const' in petra/queueplan
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/queueplan*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 15:36:02 +02:00
Ralph Sennhauser baa8d99be3 Fix eslint rule 'prefer-const' in petra/headquarters
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/headquarters.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 14:04:48 +02:00
Ralph Sennhauser e83d5069f0 Fix eslint rule 'prefer-const' in petra/baseManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/baseManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 13:24:54 +02:00
Ralph Sennhauser 0d59444401 Fix eslint rule 'prefer-const' in petra/attackPlan
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/attackPlan.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 12:56:45 +02:00
Itms 5b7feb360e Fix nightly pipeline syntax mistake in 2659efdb38 2025-05-07 12:49:51 +02:00
Itms 2659efdb38 Speed up nightly build generation
New files in the repository are naively added using `svn add --force`
which adds all unversioned files according to the documentation.

However, this iterates through the entire repository and takes about 12
minutes. Using `svn status` and parsing through the results only takes a
couple seconds.
2025-05-06 22:02:21 +02:00
Itms b58ea2698e Fix bug in nightly pipeline on spaces in filenames
The call to `svn delete` on deleted files does not work if filenames
contain spaces. This happens in particular when we fix spaces in
filenames, as the pipeline doesn't understand file renames.
2025-05-06 22:02:01 +02:00
Ralph Sennhauser a800441783 Fix eslint rule 'prefer-const' in petra/attackManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/attackManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 18:43:37 +02:00
Ralph Sennhauser 7df1bd1a42 Fix eslint rule 'prefer-const' in gui/gamesetup
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/gamesetup

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 18:12:37 +02:00
Ralph Sennhauser 7e73841d50 Fix eslint rule 'prefer-const' in gui/maps
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/maps

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 17:18:12 +02:00
Ralph Sennhauser 0791504491 Fix eslint rule 'prefer-const' in globalscripts
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/globalscripts

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 14:16:42 +02:00
Ralph Sennhauser 7684e12717 Fix eslint rule 'prefer-const' in modmod
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/mod

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 13:49:13 +02:00
Ralph Sennhauser 6aeb09228a Fix eslint rule 'no-multi-assign'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-multi-assign": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 13:15:10 +02:00
Ralph Sennhauser 1ee51e2d86 Fix eslint rule 'prefer-const' in gui/lobby
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/lobby

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 09:48:52 +02:00
Lancelot de Ferrière 6931aca983 Switch to -fstack-protector-strong
This allows the compiler to skip stack guards on some functions, leading to better performance at limited security expanse.
Examples of such functions include isqrt64 and ComponentManager::PostMessage.
2025-05-06 08:47:30 +02:00
Ralph Sennhauser dc16f1ce82 Fix eslint rule 'prefer-const' in gamesettings
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gamesettings

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-05 19:35:16 +02:00
Ralph Sennhauser bc5f42d4a4 Fix eslint rule 'no-else-return'
Use ternary expressions instead.

eslint--no-config-lookup --fix --rule '"no-else-return": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 22:34:54 +02:00
scuti 0e1c881fef Check for broken animated meshes in checkrefs.
Added and integrated P293 by @trompetin17 and @Stan
Addresses #6714
2025-05-04 22:25:47 +02:00
Ralph Sennhauser e218cfa170 Fix eslint rule 'dot-notation'
For consistency with other commandline args containing '-' which can't
make use of the dot notation disable the rule for affected lines.

eslint --no-config-lookup --fix --rule '"dot-notation": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 21:31:21 +02:00
Ralph Sennhauser 3916fab66f Fix eslint rule 'no-undef-init'
Manual fix needed, remove all assignments to undefined and rely on the
default state.

eslint --no-config-lookup --rule '""no-undef-init: 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 20:34:40 +02:00
Ralph Sennhauser 08a5f4405f Fix eslint rule 'no-empty'
Manual fix needed, using 'noop' comment to silence warnings and convert
for loop to a probably more readable while loop.

eslint --no-config-lookup --rule '"no-empty": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 20:05:02 +02:00
Lancelot de Ferrière 7cc495ec91 Fix UnitMotion 'path prediction' to not trigger if following a short path
This is needed otherwise units might never go around pure unit obstructions.

Adds a small test map.

Fixes def0f57365
2025-05-04 11:22:31 +02:00
Ralph Sennhauser dc6544a6c4 Fix eslint rule 'operator-assignment'
eslint --no-config-lookup --fix --rule '"operator-assignment": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 19:02:10 +02:00
Ralph Sennhauser 2b67499e05 Fix eslint rule 'no-trailing-spaces'
eslint --no-config-lookup --fix --rule '"no-trailing-spaces": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 17:31:47 +02:00
Ralph Sennhauser 1da93a6d2f Fix eslint rule 'object-curly-spacing'
eslint --no-config-lookup --fix --rule '"object-curly-spacing": ["warn", "always"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 17:17:35 +02:00
Ralph Sennhauser 12640ad63e Fix eslint rule 'brace-on-same-line'
eslint --no-config-lookup --fix --plugin eslint-plugin-brace-rules \
    --rule '"brace-rules/brace-on-same-line": [
                "warn",
                {
                    "FunctionDeclaration": "never",
                    "FunctionExpression": "ignore",
                    "ArrowFunctionExpression": "always",
                    "IfStatement": "never",
                    "TryStatement": "ignore",
                    "CatchClause": "ignore",
                    "DoWhileStatement": "never",
                    "WhileStatement": "never",
                    "ForStatement": "never",
                    "ForInStatement": "never",
                    "ForOfStatement": "never",
                    "SwitchStatement": "never",
                },
                {
                    "allowSingleLine": true,
                }
            ]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 16:16:44 +02:00
Ralph Sennhauser 27c70de8ae Fix eslint rule 'key-spacing'
eslint --no-config-lookup --fix --rule '"key-spacing": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 15:44:04 +02:00
Ralph Sennhauser fd0f7cc270 Fix eslint rule 'comma-spacing'
eslint --no-config-lookup --fix --rule '""comma-spacing: 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 15:12:53 +02:00
Ralph Sennhauser 7ab9416acc Fix eslint rule 'quote-props'
eslint --no-config-lookup --fix --rule '"quote-props": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 14:31:11 +02:00
Ralph Sennhauser 81c119bf39 Fix eslint rule 'semi'
eslint --no-config-lookup --fix --rule '"semi": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 14:13:14 +02:00
Ralph Sennhauser ddba1ceabd Fix eslint rule 'no-extra-semi'
eslint --no-config-lookup --fix --rule '"no-extra-semi": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 11:18:16 +02:00
Ralph Sennhauser 24c47c81c7 Fix eslint rule 'no-multi-spaces'
eslint --no-config-lookup --fix --rule '"no-multi-spaces": ["warn", { "ignoreEOLComments": true, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 10:50:50 +02:00
Ralph Sennhauser b6df170303 Fix eslint indent rule
eslint --no-config-lookup --fix --rule 'indent:  ["warn", "tab", { "outerIIFEBody": 0, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Ralph Sennhauser 57cf9578a7 Fix schema for TurretHolder
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Lancelot de Ferrière 1f2156adcc Fix library build on MacOS Sonoma 2025-05-02 21:05:31 +02:00
Stan 00793d2918 Add rooster model and template. 2025-05-02 14:41:29 +02:00
Ralph Sennhauser 9038b555fe Eslint auto-fix JS in profiler2 webui
This fixes all issues eslint can safely do automatically. Drastically
reducing the number of open style issues reported.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-02 13:25:23 +02:00
Ralph Sennhauser 545cf99a0c Add JS to editorconfig
Uses tabs for JS files

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-02 13:25:23 +02:00
abian 853ae057dd Do not require Traders for Diaspora
Remove the need to train 3 Traders before researching Diaspora, which
will now be researched directly from the Market instead of the Civic
Center. To compensate, increase cost by +100 food, +200 metal, and
+10 research time, matching the three resources used to produce
Traders, but in smaller quantities.

Fixes #7381
2025-05-01 22:01:32 +02:00
Pio 7f684cbcd3 Fix incorrect shaders path in LICENSE.md
The two shaders are actually located in mods/mod/shaders/glsl
2025-05-01 17:13:37 +02:00
fiftydinar 26acb9df22 Add StartupWMClass to desktop file
This fixes the potential edge-cases of icon not showing, like in Gnome's dash for example.
2025-04-29 15:18:41 +02:00
Dunedan d79c05f10e Allow loading multiple profiling reports at once
This allows selecting multiple reports to load at once in the file
chooser dialog. Reports will be loaded in parallel and the last one to
finish loading will be the active one.
2025-04-29 12:40:31 +02:00
Dunedan 1e276bb4ad Remove duplicate call of on_report_loaded()
This removes a duplicate call of on_report_loaded() when loading a
profiling report. This second call caused loading reports to fail,
whenever it took longer than 5 seconds. While that was probably a
measure to prevent reports loading too long and taking up too much
resources, it didn't achieve that goal, as the actual loading of the
report din't get aborted.
2025-04-29 12:40:31 +02:00
Ralph Sennhauser 19d568d506 Add linter to check for copyright year
This replaces the previous arclint linter for checking the copyright
year in license headers with a gitea workflow job.

As the date of last edit might differ from commit date due to reverts
the copyright linter is run against a base commit.

The python script doing the heavy lifting is written by @Dunedan.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Co-Authored-by: Dunedan <dunedan@phoenitydawn.de>
2025-04-28 16:14:34 +02:00
Ralph Sennhauser 263b481442 Cmake-4 support for nvtt
Fix nvtt build to support cmake-4, while at it also fix other
related outstanding cmake issues in nvtt.

Fixes: #7538
Fixes: #7764
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-04-27 09:58:23 +02:00
Vladislav Belov 7275f590e9 Fixes wxWidgets on 64bits. 2025-04-26 20:53:24 +02:00
Vladislav Belov d049a09f81 Adds libraries/win64 to .gitignore. 2025-04-26 20:53:22 +02:00
Vladislav Belov f2fcc12859 Restores iconv dependency for collada. 2025-04-26 20:53:20 +02:00
Vladislav Belov c46593149b Adds amd64 support to get-windows-libs. 2025-04-26 20:53:18 +02:00
Vladislav Belov 479cdbfc82 Removes unapplied arch_suffix for now. 2025-04-26 20:53:16 +02:00
Vladislav Belov b0160d0ece Adds 64bits support. 2025-04-26 20:53:09 +02:00
Lancelot de Ferrière 8a40673dab Avoid overflow in silhouette occluder bounds
This triggered a debug_warn in some cases.
2025-04-26 16:48:06 +02:00
Vladislav Belov 2264807ad0 Fixes runtime switch of the GPU skinning.
Fixes #7572, #7630.
2025-04-25 20:13:59 +02:00
Vladislav Belov 0180faa1f2 Adds fixed frame frequency.
Adds possibility to control the frame time by setting the frame
frequency by a command line argument (`-fixed-frame-frequency`). It's
mostly useful for a trailer recording and graphics debugging.
2025-04-25 19:15:57 +02:00
Dunedan d78e46ba26 Fix positioning of bottom minimap tooltips 2025-04-24 18:49:11 +02:00
Dunedan 680efb147d Unify tooltip style of top menu items 2025-04-24 18:49:10 +02:00
Dunedan dee2b73c7d Remove pointless content from counter tooltips
This removes the static text "Gatherers: current" from the
resource and population counter tooltips. This string was static and
only changed its color depending on whether units were assigned to
collect a certain resource. That information is however already
available in the counter display itself.
2025-04-24 18:49:10 +02:00
Vladislav Belov 0bf3ff5ad6 Reduce allocations for GUI and Hotkeys.
It allows to reduce the number of allocations per-frame for GUI and
during initialization for Hotkeys.
2025-04-24 15:11:22 +02:00
Vladislav Belov bdd3cac051 Reduces allocations for ShaderDefines.
It allows to reduce the number of allocations per-frame for
ShaderDefines. For example, on Acropolis Bay it goes down from
2.7k to 0.9k for the whole map view.
We don't really need std::vector for it. Because materials and
particularly shaders shouldn't have so many parameters.
2025-04-24 01:05:34 +02:00
Ralph Sennhauser 25ef6107e0 Make get-windows-libs fail on error
Don't try to muddle through, if the files expected to be present can't
be copied it's a hard failure.

Further abort with error code for failed commands so it can be caught by
the CI.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-04-22 19:34:18 +02:00
Ralph Sennhauser e2511cfbac Propagate error for failed update-workspace.bat
If running premake fails during update workspace then update workspace
needs to exit with an error as well so the CI will actually report an
error.

According to Itms testing with powershell passing the original error is
unreliable, so just exit with one.

Fixes: #7642
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-04-22 19:34:11 +02:00
Lancelot de Ferrière af32d386b9 Stop running shrinking gcs & simplify GC logic.
Shrinking GCs dump the JITted code, which leads to redundant recompilations, lowers performance, and makes profiling JS more difficult.
They may still happen if the runtime is at risk of OOM.
2025-04-22 17:03:29 +02:00
Lancelot de Ferrière d262eb8757 Remove log scale in profiler2
It showed incorrect values and was simply not very useful.
2025-04-21 09:05:34 +02:00
Vladislav Belov 9306aae297 Fixes PS::StaticVector insert and adds more tests
There was an incorrect mutable iterator construction missed in
ca242239f1.
2025-04-20 17:13:40 +02:00
Lancelot de Ferrière ea5a350f83 Cache JS component wrappers 2025-04-19 14:41:45 +02:00
Lancelot de Ferrière 0a4bfefb1e Fix modifiersManager cache incorrectly storing values with player-wide modifier
The cache would take the value post-player-modification, which is incorrect. This would usually just make caching fail, but could trigger worse problems if the post-player value is also used in other situations.

One such situation leads to an OOS for britons.

Thanks to elexis for the thorough investigation.

Fixes #7634
2025-04-19 12:37:24 +02:00
Vladislav Belov e65879bdbf Fixes non-PCH compilation after 0b33921c06. 2025-04-17 23:26:23 +02:00
Dunedan 280dcd3a1c Tweak probabilities of tip categories
With the introduction of multiplayer loading screen tips, categories of
tips and probabilities of how often to show tips from a certain category
got introduced. The original probabilities ended up showing multiplayer
tips in 60% of the cases. As the number of multiplayer tips is still
fairly small, this resulted in very repetitive occurrence of the same
multiplayer tips over and over when loading multiplayer matches.

This commit changes that to give single-player tips a higher probability
for multiplayer matches. It also adds showing tips from the "Beginner"
category for multiplayer games, as there are regularly new players who
start their experience with 0 A.D. by playing multiplayer matches with
friends, instead of playing single-player matches and who'll therefore
benefit from those tips being shown for multiplayer matches as well.
2025-04-17 17:15:43 +02:00
phosit 44605c1297 Add a class to register stateful callbacks to JS
Use the class in autostart as an example.
2025-04-17 15:02:05 +02:00
phosit 0afb5f3d06 Use std::string_view in ConfigDB
Now no `std::string` has to be constructed to get a config-value.
To accomplish that the map has to have a "transparent" comparator.
2025-04-17 12:35:40 +02:00
Vladislav Belov 0b33921c06 Removes GL code from the common GPU profiler. 2025-04-16 22:38:34 +02:00
Vladislav Belov 6ef6a87287 Adds queries implementation to renderer backends. 2025-04-16 22:38:32 +02:00
Vladislav Belov 0e7d193fcc Adds an interface for queries. 2025-04-16 22:38:24 +02:00
wowgetoffyourcellphone 8da6c758fc Add small metal/ore mine objects to the game.
New small metal mine models and actors.
New sparkle particles.
Remove refs to old metal ore mines from existing maps.

Fix refs to temperate_small_01_01, which should have been temperate_small_01
2025-04-15 18:14:37 +02:00
Vladislav Belov 9c560c36af Removes ARBShadersShadow IDevice capability.
According to our stats `GL_ARB_fragment_program_shadow` is supported
by all our GL users. Also we're going to remove OpenGL ARB in A29. So
I remove ARBShadersShadow completely.
2025-04-12 23:14:28 +02:00
Vladislav Belov fa3fb5d064 Allows compute shaders for GL only since 4.3.
It seems current checks for GL 4.2 aren't enough so just disable
compute shaders for GL 4.2. Fixes #7734.
2025-04-12 16:56:18 +02:00
Vladislav Belov bce6e2c238 Fixes out of bounds during GL buffer binding.
There was an out of bounds access during binding a uniform buffer on
GL. Fixes #7567, #7598.
2025-04-12 16:27:52 +02:00
ramtzok1 1b797ce0a0 Add specific tips for multiplayer sessions
A multi player loading screen will have possibility of showing single
and multi player tips while multi player tips are in favor.

Tips are now separated by categories. During loading those category
have an occurrence probability, where we are choosing a random category
based on chance and not by complete randomness. From there we just
picking a random tip from that category.
2025-04-12 10:38:57 +02:00
Dunedan 8482f25800 Fix a bunch of spelling mistakes
This fixes a bunch of spelling mistakes found in user facing strings.

Fixes #7716
2025-04-11 06:24:32 +02:00
Dunedan 9bae3c86d6 Fix LFS pull in checkrefs workflow
This fixes the pulling of objects from LFS in the checkrefs workflow. To
do so three steps were necessary:

- Don't fail immediately when encountering missing objects in LFS
- Fix the remote URL of the fork repository
- Fix the authentication for the LFS storage of the fork repository
2025-04-11 06:17:45 +02:00
Feldfeld 6224223807 Add myself (Feldfeld) to the programming credits 2025-04-10 18:57:40 +02:00
Feldfeld b5256ce014 Include Player Placement setting in Game Description
The option was missing, so player placement was not shown in the game
description part of the game setup, and it was not shown in the objectives
page in-game.
2025-04-10 18:57:40 +02:00
Viktor Semenov 683a9cb06e Not send redundant argument to StartNetworkGame
Engine part does not expect third argument to StartNetworkGame function.
All network games save replays by default.
2025-04-09 16:11:11 +00:00
Dunedan 11dd480b67 Add workaround to turn off nursery size heuristic
SpiderMonkey 98 introduced a size heuristic for the nursery GC region
(https://phabricator.services.mozilla.com/D136637). As this heuristic
uses a wall-clock time duration, it results in a severe performance
regression on slower systems for our use case.

This commit adds a workaround to turn off that heuristic, by telling
SpiderMonkey that a "page load" (something which doesn't have a meaning
in the context of pyrogenesis) is in progress, as that heuristic is
disabled for page loads.

Co-Authored by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
Fixes #7714
2025-04-09 16:53:45 +02:00
phosit 56abf84da2 Catch all std::exception from a map in atlas
Since 0eed117e6d exceptions from the map generation script are rethrown
in the main thread but not all of them are catched.

This defect is already fixed in the engine with 82513c9104

Fixes: #7620
2025-04-09 15:02:33 +02:00
phosit 1a8757660f Get config values without using return parameters
Many temporaries can be removed.
2025-04-09 12:51:21 +02:00
Lancelot de Ferrière 874c4d1c59 Use __framestart only as frame references
Profiler2 currently explicitly considers 'frame' for frames, which is a bit annoying in replays as state hashes are computed outside of these. It's better to just rely on RecordFrameStart() calls.
2025-04-06 11:14:31 +02:00
Dunedan a917d393e1 Only autocomplete unambiguous words
Up to now the chat autocompletion did complete words, even if there were
multiple candidates which matched available. So if for example the
autocomplete list contained "bar" and "baz" and a user typed "ba",
autocompletion would complete it to "bar", ignoring that "baz" was
available as possibly desired result as well. In practice this lead to
people regularly getting completions they didn't intend to get. This
commit fixes that by only completing text, if there is only a single
candidate available.
2025-04-05 08:14:09 +02:00
Dunedan 312c6e8165 Properly terminate the XMPP connection
This ensures the XMPP connection gets properly terminated when leaving
the lobby.

Fixes #7504
2025-04-05 08:01:18 +02:00
Vantha 4d323177b8 Correct error message when the host disconnects
After 78900842b1, the following message was shown to clients when the
host disconnected during game setup:
"Lost connection to the server.
[Invalid value undefined]"

This patch fixes that.
2025-04-02 08:36:38 +02:00
Ralph Sennhauser 933f49722e Use js compiler option for strict-mode
The context option enabling strict mode was removed in sm-117 [1]
requiring to use the compiler option for the same purpose instead.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1621603

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-04-01 21:15:33 +02:00
Ralph Sennhauser 2ed912ae88 Disable push trigger for lint workflow
The event property github.event.push.before seems to not be supported
and therefore the workflow as is fails on main.

Ignoring the trigger means a slight loss in coverage but as it still
fully checks PRs we are mostly good.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-31 20:23:41 +02:00
Ralph Sennhauser 6562faa559 Simplify workflow expression
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-31 19:28:55 +02:00
Ralph Sennhauser 3c3c57d673 Fix base sha for lint workflow
The base sha for push events is determined differently than for pr.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-31 17:20:42 +02:00
Ralph Sennhauser 6da4e606d4 Add cppcheck workflow
Add a workflow for linting and add a cppcheck job.

The job is using cppcheck provided by package manager. Existing errors
are suppressed to get going with CI linting, ideally tho the suppression
list would be empty. Some of the suppressed errors are only found with
more recent cppcheck than what is available in the runner.

Also remove old arclint cppcheck setup.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-30 18:06:01 +02:00
Ralph Sennhauser 387ea927ac Add util.sh shell library
A shell utilities function library starting with a first utility
function for getting the number of online CPUs.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-30 18:05:56 +02:00
phosit 2d206708cd Start Atlas by closing the root page
Theere is now an  `Engine.startAtlas` property that will start Atlas
when it's returned from the root page. The `Engine.RestartInAtlas`
function is removed.
2025-03-26 13:07:57 +01:00
Itms c2d3595777 Remove LCC compiler defines 2025-03-25 12:30:01 +01:00
Itms 8f43dd53fc Remove ICC code paths 2025-03-25 12:29:51 +01:00
Itms 3f3bb8300e Remove ICC compiler support
The ICC compiler has not been used to our knowledge to build the game in
a decade, and is nowadays just a part of LLVM.

Fixes #2994
2025-03-25 12:22:04 +01:00
Stanislas Dolcini a8d7a3312c Pull LFS from forks as well. 2025-03-23 23:20:24 +01:00
Ralph Sennhauser a09b2cc242 Disable deprecation warning for old boost
There are a few version of boost which deprecated global placeholders
but do not yet support std placeholders. Simply suppress warning for
those cases.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:43 +01:00
Ralph Sennhauser 7494602de5 Avoid maybe uninitialized warning with gcc
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:43 +01:00
Ralph Sennhauser 9ef1bff6aa Disable dangling-pointer warning whith gcc-12
This is only an issue with gcc-12 to gcc-14, supress the warning on the
CI.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Ralph Sennhauser a2fdc3427e Remove unused Dockerfiles
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Ralph Sennhauser 84f626d2b5 Use Debian 12 in Linux pipeline
Use the single Debian 12 container image and inject CC, CXX and LDFLAGS
instead.

Further do the lfs checkout on the agent instead of inside the container
avoiding full rebuilds due to version mismatch.

Then split the debug and release builds using separate workspaces and
record warnings by build preventing gcc warnings leaking into clang
warnings.

Based on zero warning policy and incremental builds using a reference
build doesn't make sense. Removing that we can also drop an additional
generic workspace.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Ralph Sennhauser 0481f13fff Add Debian 12 Dockerfile
Debian 12 (bookworm) will soon be oldstable.

Most importantly this version comes with cmake-3.25, which will allow us
to use SDL3, cpp-httplib, fcollada fork and possibly others in the
future.

This also comes with gcc-12 and clang-14 by default, both implementing
almost all of c++17 and most of c++20.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Ralph Sennhauser 038decb12e Add Dockerfile to editorconfig
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Stan f3948fb9db Add more badges to the UI. 2025-03-22 14:11:24 +01:00
Dunedan e755ef7155 Improve performance and output of entvalidate.py
The most notable changes are:

- improved performance thanks to using `lxml` instead of `xmllint` for
  validating the templates
- improved performance by parallelizing the validation across multiple
  threads
- more meaningful output for detected validation errors
- easier to call from other scripts (like checkrefs.py)
2025-03-18 12:57:01 +01:00
Dunedan f68a8c2532 Verify the lobby certificate by default
When TLS for XMPP connections to the multiplayer lobby got implemented,
there was a bug in gloox [1] preventing the certificate verification to
succeed. This bug got fixed in gloox 1.0.22 five years ago, so it's safe
to enable certificate verification by default now.

[1]: https://web.archive.org/web/20200522184941/https://bugs.camaya.net/ticket/?id=280
2025-03-18 08:58:45 +01:00
phosit 771e33f462 Fix g_MainMenuItems "onPress"
Since 40762c257d there is a callback passed to the "onPress" function of
the `g_MainMenuItems`. If the "onPress" function is a bound
`Engine.OpenChildPage` with only the filename bound to it, the callback
becomes the second argument.
The second argument is cloned to pass it to the child page. Cloning the
callback crashed the engine.
2025-03-17 18:47:43 +01:00
Dunedan f4baf8944c Fix the import of datetime.UTC in bundle script 2025-03-17 13:39:38 +01:00
Ralph Sennhauser f10526284f Don't map unknown scancodes to hotkeys
Users may generate key presses that don't map to a distinct SDL scancode
and will be mapped SDL_SCANCODE_UNKNOWN instead. Using the same ID for
unmapped hotkeys means any such key press will execute unset hotkeys. As
luck would have it in #7644 this leads to calling "Custom exit to
desktop" if the hotkey is unbound as is the default.

So simply use a code for unused hotkeys that doesn't map to any SDL
scancodes.

Fixes: #7644
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-15 20:33:03 +01:00
Sanctorum Thomas 75f414c665 Clear filter when closing Map Browser 2025-03-15 09:27:29 +01:00
Vantha 78900842b1 Improve the "UDP port 20595" connection error dialog
Add a unique disconnect reason for timeouts of connection attempts.
Rewrite the displayed error message and provide a link directly to the FAQ entry.
(The old message was very misleading and only brought players on the
wrong track during troubleshooting)
2025-03-13 15:34:20 +01:00
phosit 40762c257d Quit Engine by closing the root page
When the root page gets closed the engine quits instead or crashing.
The root pages are changed to use that mechanism to quit the engine.
This removes the need of `Engine.Exit` for the GUI.
2025-03-12 12:07:37 +01:00
Ralph Sennhauser 71f78eb2ce Use JOBS var instead of hardcoding on Windows
Don't hardcode the number of parallel jobs in Windows based pipelines
but allow setting the desired number in the environment.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-09 11:14:16 +01:00
Ralph Sennhauser 2a0817d930 Add JOBS support to Unix build pipelines
Allow the number of concurrent build jobs in Unix build pipelines be
specified in the environment via the JOBS variable.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-09 11:14:16 +01:00
phosit df5fee6103 Rename PushGuiPage to OpenChildPage
There is no `PopGuiPage` anymore. For symmetry there should also be no
`PushGuiPage`.
2025-03-09 10:39:20 +01:00
phosit d0ab2cb783 Remove Engine.PopGuiPage
Remove the old now unused interface.
2025-03-09 10:39:20 +01:00
phosit 094a7c2268 Return a promise from most page-inits
Adopt the new interface by all pages which close themself. (Not thous
using `Engine.SwitchGuiPage`.)
2025-03-09 10:39:20 +01:00
phosit 4f62e9f6f0 Change the GuiManager tests to use promises
Adopt the new interface by the tests: as an example and to show that
it's sound.
2025-03-09 10:39:20 +01:00
phosit d3bc5bc802 Enable page-inits to return a Promise
Allows to return the page-completion-value instead of passing it to an
`Engine` function.

Closes: #7000
2025-03-09 10:39:20 +01:00
Vantha 5741f77c6e Add a 'team population' gamesetting
Remove the world population setting from the game setup.
Add a dropdown for choosing the "Population Cap Type".
(-> containing Player Population, World Population, Team Population)

Use a single "Population Cap" dropdown adapting to the pop cap types.
Move all population data into a single .json file.

New system component "PopulationCapManager" for distributing pop caps.

Resolves: #6918
2025-03-06 13:25:43 +01:00
Dunedan c448973398 Remove a bunch of unused scripts
Some of them were simply unused, while others got replaced by Python
scripts.
2025-03-03 20:57:49 +01:00
Dunedan 03cb24d400 Move xmlvalidator code to entity directory
The xmlvalidator logic is only used by the checkrefs.py script, so this
moves it to the same directory to have it co-located and avoid having to
modify sys.path to import it.
2025-03-03 17:45:08 +01:00
Dunedan 118ea18a58 Enable a few more ruff rules 2025-03-03 14:18:40 +01:00
Dunedan 3c57fdb4a9 Fix ruff linting for scripts in source/tools/dist/
By default ruff excludes all files in directories named "dist" from
linting (https://docs.astral.sh/ruff/settings/#exclude). This caused the
Python scripts in `source/tools/dist/` to not get linted. This commit
fixes that and adjusts their style to fit our ruff rules.
2025-03-03 12:45:33 +01:00
Itms b831b1f559 Fix Jenkins pipelines on Linux agent
The Linux agent now runs Docker in rootless mode for additional
security. Operations inside containers must be run as root to match the
underprivileged user running Docker.
2025-03-01 22:08:50 +01:00
Ralph Sennhauser 6738fdbab7 Remove root check in update-workspace.sh
If you run as root then created files will be owned by root, this is
expected behaviour and not messing with permissions as stated in the
error message.

Running in a container the root user may map to the user starting the
container while all other users would need mapping to be able to work
with a bind mounted a checkout.

Further Debian patches out the root check to be able to build on their
builder.

Given the above remove the check.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-01 18:36:44 +01:00
Vantha 13dd7c0bb7 Remove empty and invalid sprite assignments
(They were overwritten by the code anyway)
2025-02-26 16:20:27 +01:00
Vantha 0177b97c69 Complete the GUI XML checks in checkrefs.py
Add checks for sprites, styles, scrollbars, tooltips, and colors.
And too for entire objects referenced by the "use_object" attribute.
(even though that is currently unused)
2025-02-26 16:20:27 +01:00
Vantha 734f8e1192 Add an "OnAttackDetected" trigger 2025-02-26 11:56:52 +01:00
Stan 288f125178 Add three options to the autostart CLI.
- a speed option
- a placement option
- a map visibility option
2025-02-24 22:45:23 +01:00
phosit 40fe7df654 Silence dangling pointer warning for JS::Rooted
With much help by @sera.
2025-02-24 21:30:56 +01:00
Dunedan 18d7746c84 Fix adding port forwardings using UPnP
The UPnP implementation included a combination of two subtle bugs, which
resulted in failure to create port forwardings every time after the
first one.

When using UPnP, the internet gateway to create the port forwardings at
needs to discovered. As that takes a while, the its root descriptor URL
was supposed to be cached after successful discovery in the user config
in "network.upnprootdescurl". However, instead of caching the root
descriptor URL, the control URL got cached. That caused following
requests to the root descriptor URL to fail, as they ended up at the
control URL instead. As such requests might also fail when the network
topology changed, the code was supposed to fall back to discovering the
internet gateway again when the cached one didn't work. However, due to
the inner workings of miniupnpc the request using the cached root
descriptor URL didn't result in an error, so the new discovery was never
triggered. As the wrong value was persisted in the user config there was
also no way to get out of this situation again.

This commit fixes both of these bugs.

As far as I can tell these bugs existed since the introduction of the
caching of the root descriptor URL in 0ba25e9968, which means creating
port forwardings using UPnP has been broken since Alpha 15.
2025-02-24 08:23:07 +01:00
Dunedan 5696f063f5 Reduce time to discover the internet gateway
When adding a port forwarding via UPnP, pyrogenesis first needs to
discover the internet gateway to create the forwarding at. To do so, it
utilizes miniupnpc to send an SSDP request and waits 10 seconds until it
processes the responses and continues to add the port forwarding.
As that happens asynchronously it means if players hosting games rely on
UPnP for port forwarding and if their pyrogenesis instance doesn't have
the address of their internet gateway cached, it takes more than 10
seconds after starting to host a game, before players can join. However,
waiting for 10 seconds is completely unnecessary, because the internet
gateway responds immediately to the SSDP request. Therefore, this commit
reduces the time to wait for responses from 10 seconds to 2 seconds,
which is the timeout miniupnpc uses internally as well, when discovering
internet gateways.
2025-02-23 04:41:43 +01:00
Dunedan fcd3fc2aa3 Create port forwarding for correct port with UPnP
Up to know the UPnP logic ignored the port a user was hosting a game on
and always added a port forwarding for the default port UDP 20595. This
commit fixes that, so a port forwarding is added for the actual port a
game is hosted on.
2025-02-22 20:26:30 +01:00
Dunedan 75d343293f Remove "useLongStrings" logic
As it turns out we don't need that special logic for handling the "long"
locale properly and everything continues to work as before without it.

The only difference is that the number format not being the one from
en_us anymore when using the "long" locale, but the one of the
system-wide configured language, which should be an even better user
experience than before.
2025-02-22 18:18:42 +01:00
Lancelot de Ferrière c475cc2265 Cleaner debug serializer output
The debug serializer currently outputs data even for components where `Serialize = null`.
This leads to useless data being output, especially in OOS debug states which makes diffing more annoying.

Noted in #7634
2025-02-21 18:20:56 +01:00
Vantha aec5bf42da Layout and code improvements on the welcome screen
Move the lines from the .txt to the .xml .
Add separate objects for each paragraph and icon.
Position the icons depending on the paragraph length in the current
language.

This eliminates potential for breakage during translation.

Fixes #7484
2025-02-20 11:15:57 +01:00
Ralph Sennhauser 9a43c43a33 Avoid gcc warning in json_spirit
Gcc-14 triggers a warning for substitute_esc_chars in
json_spirit_reader_template.h if optimizations are enabled.

../../../source/third_party/jsonspirit/json_spirit_reader_template.h:138:62:
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/char_traits.h:427:56: warning: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775808 or more bytes at offsets 0 and 0 may overlap up to 9223372036854775809 bytes at offset -1 [-Wrestrict]
  427 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));

for with lto enabled

/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/char_traits.h:427:56: warning: ‘__builtin_memcpy’ specified bound between 9223372036854775808 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
  427 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));

This looks like another incarnation of bugs like:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100366

Add quirk to avoid the warning

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-19 21:52:50 +01:00
Ralph Sennhauser 8baff65e95 Bump Windows libs for premake5 beta4
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-18 17:42:42 +01:00
Ralph Sennhauser df38d4e899 Use new premake lto api if available
Premake v5.0.0-beta4 replaces the LinkTimeOptimization flag with a
function linktimeoptimization, use it if available to avoid deprecation
warning.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-18 17:42:42 +01:00
Ralph Sennhauser 84b407aa35 Update premake to v5.0.0-beta4
https://github.com/premake/premake-core/releases/tag/v5.0.0-beta4

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-18 17:42:42 +01:00
Ralph Sennhauser 77256c8d32 Fix profiler2 webui html
Cleanup some bogus tags and outdated css attribute.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-17 21:22:30 +01:00
Ralph Sennhauser 4b59d6b739 Update jquery used by profiler2 webui
jquery 1 is for support of old version of browsers not even maintained
this days.

Updating prevents occasional hangs for me.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-17 21:22:30 +01:00
AFCMS 51bbdc6537 Improve the software center display of the application
- OARS content rating have been updated to version 1.1
- Touch Screens, Keyboard, Mouse have been marked as supported
- Laptop screens and bigger are marked as required to the minimum width of 1024 required by the game
- Fixes the device compatibility page on GNOME Software.
- added a "0AD" keyword to  fix an issue with Flathub search feature where searching for "0AD" instead of "0 A.D." returns no results.
2025-02-17 21:07:17 +01:00
Stan cf0c285d8e Patch metainfo file to to match the new requirements 2025-02-17 21:07:12 +01:00
Sanctorum Thomas 37065ebc71 Harmonized design between civinfo and structree 2025-02-16 09:10:16 +01:00
Vincent Cheng 026a668a0f Make sure mozjs patch FixFpNormIssue.diff applies cleanly on i386 2025-02-15 12:46:08 +01:00
Ralph Sennhauser 82ff0ea90b Remove CONFIG_ENABLE_BOOST
Code within CONFIG_ENABLE_BOOST is required to compile pyrogenesis.

As boost is required in many other places, making it truly optional in
the one case where there is currently a guard is meaningless.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-02-14 20:35:04 +01:00
scuti a9819e9865 Created hotkey to grab and release mouse.
Addresses #6790
2025-02-14 20:18:49 +01:00
phosit a786a1f3d8 Use std::variant in Future
Either a return value or an exception has to be stored. With
`std::variant` it's more explicit.
Also the return value is never empty, so there is no need for
`std::optional` anymore.
2025-02-10 18:11:02 +01:00
scuti e87d3e4137 Check if online before calling engine command. 2025-02-09 18:50:15 +01:00
scuti 490c3eb22b Fixed messages of type 'system' not-printing. 2025-02-09 18:50:15 +01:00
scuti 7d616763a4 Fix /kick or /ban segfaulting in singleplayer
Addresses #7467
2025-02-09 18:50:15 +01:00
Andreas Traber 33f332047d Add atraber to list of contributors. 2025-02-09 16:00:22 +01:00
Andreas Traber 05f31300a1 Fix multiple bugs where a wrong variable is used.
Those bugs stood out to me as I was experimenting with migrating petra
to ES6 classes. Since this give the code stronger typing, those kind of
errors stand out immediately.
For example, autoResearch is a function, thus referring to it by name
will always return the same result. In other cases the referenced
variables simply don't exist.
2025-02-09 16:00:22 +01:00
Langbart dffa892c60 fix: rlclient update resource gathering and map name
fix: #7540
2025-02-09 14:38:55 +01:00
Martijn van Duren 064ab14577 OpenBSD supports pkg-config 2025-02-09 14:32:38 +01:00
Martijn van Duren 2338473da1 Make libraries/*/build.sh use "${TAR}" instead of tar directly.
This allows systems using a tar version not supporting all the required
flags to easily switch to gnu tar.
2025-02-09 14:31:10 +01:00
Lancelot de Ferrière 5f117532a4 Map generation: speed up ParseEntities
When marking a tag dirty, the obstruction manager checks it has not already done so. This is un-necessary when the global state is marked dirty, and this check is rather slow since we do it once per entity, effectively leading to an o(n^2) runtime.
2025-02-09 11:30:35 +01:00
Feldfeld 5dcef8c17a Uniformize Han farming technologies
Reported by stevenlau in https://wildfiregames.com/forum/topic/127586-a27-disadvantageous-farming-tech-upgrade-time-cost-for-han/

Missed in b4155900d3 / D4720
2025-02-01 23:23:18 +01:00
Ștefan Talpalaru 3ff3f72890 build-source-libs.sh: fix "--with-system-premake" 2025-01-31 13:01:40 +01:00
Ralph Sennhauser bccd3db231 Add missing header in KeyName
Reported-by: @svenstaro
Ref: #7564
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-30 21:15:28 +01:00
drh 03ceb27e90 Add camera pan inversion option
Fixes: #6539
2025-01-30 18:42:59 +01:00
Carl-O 7d4a6c5d07 Capitalization of first letter of word 2025-01-29 22:58:51 +01:00
phosit b41ca5ad78 Replace FALLTHROUGH by the standard attribute 2025-01-29 19:34:12 +01:00
phosit 473f8ca72e Remove FALLTHROUGH on empty cases
`#include "lib/code_annotation.h"` can be removed in some places.
2025-01-29 19:34:12 +01:00
Langbart 2fe7555002 fix: git diff to work on LFS files for map xml files
Users can enable this by setting:
git config diff.lfs-xml.textconv cat

Ref: #7519
PR: https://gitea.wildfiregames.com/0ad/0ad/pulls/7539
2025-01-29 08:37:16 +01:00
Dunedan db35a8494c Update supported languages for the NSI installer
235ea5cfb4 updated the languages supported by 0 A.D., but missed
updating them for the installer. This commit makes up for that and
updates the languages for the installer as well.
2025-01-28 19:14:16 +01:00
Vladislav Belov a7ead4cf4c Disables compute shaders for GL ARB backend. 2025-01-28 18:56:15 +01:00
Vantha 1a7947f9c9 Remove empty duplicate of TipDisplay.js
It was accidentally only emptied instead of removed in 38b71c1bac.
2025-01-28 08:40:00 +01:00
Vladislav Belov 635a268dd9 Disables GL storage buffers on Mesa.
This is a workaround to avoid disabling GL storage buffers completely.
Because they might not work or might lead to a decreased performance.
We need to investigate that further when we have a local reproduce.
2025-01-28 01:40:47 +01:00
phosit ec6ed7f224 Remove deprecated functions in map generator
Map generation scripts should use the new interface introduced in
6ce2fc53ea.
2025-01-27 17:50:39 +01:00
phosit d3fc3c221e Remove last usage of Engine.SetProgress
On Danubius removing the usages was forgotten in e01ea16ae5.
In Coast Range and Migration they were newly introduced.

There are also some whitespace changes in Coast Range.
2025-01-27 17:50:39 +01:00
Itms 6ac5c376ea Fix crash when trying to join games in lobby dialog
This fixes an oversight from d655455304. During a code deduplication, a
check was removed. When looking at the lobby as a dialog (while in
gamesetup), it should be impossible to try to join a game.
2025-01-27 10:15:45 +01:00
Itms ffa11b37a8 Fix oversight from 726b07e209
This does not cause any actual bug, as the handler is called again when
a game is selected.
2025-01-27 10:14:17 +01:00
Langbart 1a154a5704 Bump OpenAL to 1.24.2 on macOS
Fixes #5978
2025-01-25 14:19:08 +01:00
Stan 6df98d8ed6 Fix broken ceasefire autostart option
Fixes: #7495
2025-01-25 12:41:30 +01:00
Paul Robinson 5b98a647dc Adding Engine Version and Mod name/version checks to multiplayer handshake.
Incrementing protocol version as handshake messages have changed.
2025-01-25 07:39:32 +01:00
real_tabasco_sauce 60d388804a Add gathering animations to the marian legionary
Fixes #7438
2025-01-22 15:01:23 +01:00
Dunedan 2ea183d744 Allow to check multiple locales at once 2025-01-21 11:01:42 +01:00
Dunedan bcdbe2e580 Add the ability to specify which rules to check 2025-01-21 11:01:40 +01:00
Dunedan 25e83d603f Check for wrong whitespaces in project name
This adds checks to check for missing non-breaking space in "0 A.D.".
2025-01-21 11:01:37 +01:00
Itms e1ecc4a743 Fix unix-build tarball inclusion of text files
The .txt were wrongly send to a subdirectory named `.` and the files
converted to Markdown were forgotten.
2025-01-20 22:03:07 +01:00
Itms 95fb0f9ed0 Remove unused Ptolemaic Juggernaut prop template
This is an oversight from 415304db8a and #6660.

This forgotten template cropped up in #7525. It does not contain the
needed components to interact correctly with the player.
2025-01-20 20:33:27 +01:00
Ralph Sennhauser efc9c09280 Remove spurious fi in build-source-libs.sh
d15f1c29e4 added an extra fi, remove it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-20 16:58:37 +01:00
Ralph Sennhauser 3aa95b7a28 Prefetch tarballs in bundle pipline
Fetch third party tarballs for source packages so they will be bundled
in source release tarballs.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-20 16:58:37 +01:00
Ralph Sennhauser f9a43c8c40 Add support for fetch-only for libraries
Used to prefetch all required tarballs to build pyrogenesis later
without network access as is common for Linux package build and some
other CI environments.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-20 16:58:37 +01:00
Dunedan 4d19935f48 Ensure buttons on summary screen are always on top
On low vertical resolutions when playing games with 8 players in 4
different teams, the summary will overflow the available vertical space.
This commit ensures that in such a case the buttons below the summary
are still clickable by ensuring they stay always on top of the summary.
2025-01-20 15:55:41 +01:00
Dunedan 8b40ce59ad Fix vertical alignment of team summary
This fixes the vertical alignment of the team summarized values on the
summary screen.

Fixes #7527
2025-01-20 15:55:41 +01:00
Daniel Roschka 274500eb37 Always use STUN for hosting games using the lobby
This makes using STUN mandatory for games hosted using the multiplayer
lobby. The motivation for that is a reduction in complexity, because
right now if STUN is disabled we use a home-grown STUN-like logic, which
got implemented before Pyrogenesis got STUN support.

That home-grown logic relies on a custom ejabberd module (mod_ipstamp),
which inserts the external IP-address of a host in the response messages
when a host registers a game. Originally mod_ipstamp was also used to
inform all potential players of a hosts IP-address, however that has
already been removed to let hosts to only share their IP-address with
players actually joining their game.

Removing the home-grown logic and instead always relying on STUN removes
complexity in Pyrogenesis and the lobby server and also eases hosting
games for players, as they don't have to figure out anymore whether they
need to enable STUN or not.

These changes shouldn't negatively impact the ability of Pyrogenesis to
handle different types of NAT or broken networks. There is one
difference though: While the custom logic using mod_ipstamp utilized TCP
as transport protocol, the STUN implementation in Pyrogenesis currently
uses UDP. That doesn't allow hosts with UDP-connectivity issues to
resolve their external IP-address anymore, however without
UDP-connectivity they aren't able to successfully host games anyway, as
the actual game updates are transferred using UDP as well.
2025-01-20 06:52:14 +01:00
Vantha 7485b37ba3 Fix alignment issue with 'imgleft' and 'imgright'
Bug was introduced by f8d2927748.

Fixes #7397
2025-01-19 17:50:16 +01:00
Lancelot de Ferrière 1b1e00d6c4 Remove profiler 2 spike/aggregated regions
This code is unused and was never actually useful.
Fixes #6620.
2025-01-18 12:36:20 +01:00
Lancelot de Ferrière 34844ca9a4 Speedup StartProcessingMoves when mostly idle and many threads 2025-01-18 12:32:28 +01:00
Lancelot de Ferrière fed028a386 Prevent GameSettings from setting more players than the map supports 2025-01-18 12:18:33 +01:00
phosit 3a94cb0bfe Fix maybe-uninitialized warning in EntityMap test
Reading `second` on the end of the range is undefined behavior. Invoking
`test.find` in the test never evaluates to the past the end iterator.
GCC doesn't know that and issues a "maybe-uninitialized" warning.
2025-01-16 21:12:28 +01:00
phosit eb07f20f2f Translate "Changing password…"
Introduced in d0ebcbe038.
Reported-by: @elexis
2025-01-16 21:09:57 +01:00
phosit 068346b502 Always early return if no receiver is found
This lead to an error because `addressee` is `undefined`.

Defect introduced in dcb8ef9b52.
Fixes #7466
Reported-by: @Langbart
2025-01-16 18:27:55 +01:00
Stan 117b9ed9d4 Check more things in checkrefs hook 2025-01-16 09:27:11 +01:00
freagarach 1d6f7f3837 Always mark 'PromotedEntity' on transform
If the new entity did not have Promotion, we would fail to do so.
Not doing this caused ghost units to appear when promoting inside a GarrisonHolder.

Fixes #7472, reported by Langbart.
2025-01-15 19:22:54 +01:00
phosit 4be8e0bcfb Tell GCC the maximum value of m_BufLen
GCC thinks `m_Buf + m_BufLen` can be outside the bound of `m_Buf`.
That is because `m_BufLen + len < CHUNK_SIZE` can evaluate to `true`
even if `m_BufLen` is bigger than `CHUNK_SIZE` due to wrapping. Tell GCC
that it's not possible.
2025-01-13 20:05:43 +01:00
Dunedan b2f50519fa Remove one last mention of Trac 2025-01-13 16:28:46 +01:00
ramtzok1 11f4672fa5 None will be shown as the first option 2025-01-12 11:32:42 +01:00
Itms dc830ccf55 Switch main branch to Release 28 2025-01-12 01:27:02 +01:00
Dunedan 60c469bb64 Improve variable naming in check_diff.py 2025-01-11 21:44:52 +01:00
Dunedan a92a4ff45c Update the pre-commit hooks 2025-01-11 21:44:52 +01:00
Dunedan 5aa96cd282 Fix vertical alignment of main menu submenu items 2025-01-11 17:45:55 +01:00
Dunedan 5f086a7851 Improve colormixer layout 2025-01-11 17:45:55 +01:00
Dunedan 205cb812ea Refinement of space for multiplayer login 2025-01-11 17:45:55 +01:00
Dunedan 9a276c04ff Improve layout of the mod selection help window 2025-01-11 17:45:55 +01:00
Dunedan 5645aa7e97 Fix size of red buttons in options window 2025-01-11 17:45:55 +01:00
Dunedan 8a3719dc54 Fix size of red buttons on summary screen 2025-01-11 17:45:54 +01:00
Dunedan 4efc04e5dc Fix vertical alignment of dialog title 2025-01-11 17:45:54 +01:00
Dunedan a53cf7b963 Remove some white space around the tips window 2025-01-11 17:45:54 +01:00
Dunedan c7b6b5147f Improve spacing in the structure tree window 2025-01-11 17:45:32 +01:00
Dunedan 34ba0d1092 Improve spacing in the unit detail window 2025-01-11 17:45:22 +01:00
phosit 8292b0c646 Don't show warning on aichat messages
AI's chat messages are always received by every client. It's not
necesarry to warn about them.

Defect introduced in e04506814a.
Refs: #7466
2025-01-10 22:30:26 +01:00
phosit fde696a401 Don't show warning on ai -> ai messages
AI's can't receive chat messages. AI's sometimes send chat messages to
other AI's.

Defect introduced in e04506814a.
Refs: #7466
2025-01-10 22:30:26 +01:00
Dunedan 235ea5cfb4 Update supported languages for Alpha 27
This removes Catalan and Scottish Gaelic as supported languages, as they
now both have a coverage of less than 80% and adds Galician and
Portugese which both have 100% coverage right now.
2025-01-10 05:52:02 +01:00
Vladislav Belov cf9bc03ee9 Adds a temporary hack for grass lighting.
The hack uses per-vertex lighting for translucent objects. In the
future we need to use a separate shader.
2025-01-09 01:48:56 +01:00
Itms 3727c9dd3d Small improvement to JS props iteration
Based on a suggestion by phosit on #7404.
2025-01-08 17:55:56 +01:00
Dunedan 73af7e61dd Make more room for tooltips in game setup
b90280855f added an additional label to the bottom of the game setup
page for indicating that a game is started from a saved state. This
reduced the space available for tooltips and looked oddly placed.

This commit changes that, by resizing the `SavedGameLabel` and
`GameSettingWarning` objects dynamically so they only take the space
necessary to display their caption. It also tweaks the vertical margins
of the tooltip to allow more lines to be shown at once.

While this still doesn't allow to show all tooltips on low resolutions,
it's now better than with Alpha 26.
2025-01-08 14:04:21 +01:00
Langbart 6b87a9b932 fix: reset promoted worker metadata
fix: #7471
2025-01-08 13:46:00 +01:00
Itms e48b9ea106 Only freeze once the cached JS values of templates
CParamNodes can be quite large, thus we usually cache the JS::Value when
converting them. The AIInterface makes heavy use of it as detected in #7404.

However, the cached values are re-frozen everytime, which is a
significant waste of time on a large number of templates.
2025-01-08 11:39:17 +01:00
Ralph Sennhauser f97a1f1c54 Fix spidermonkey profiling build
Instruments is macOS only, so don't try to enable it on other platforms.

Also don't quote ${JOBS} as it might be unset and passing an empty
string to "mach build" may result in configure failing.

Fixes: #7470
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-08 07:32:59 +01:00
Lancelot de Ferrière e5c2193313 Fixup 6ab5483550 - handle unset values correctly 2025-01-07 18:14:59 +01:00
Itms 9f023825e0 Export a 10-char commit hash in the build version
This avoids collisions in the user report, fixes #7174.
Update the user report version to account for the new build version
format, fixes #7173.

The build version displayed in the GUI is kept at 5 characters for
main menu clutter concerns.
2025-01-07 13:51:45 +01:00
Vladislav Belov 8ee48a164a Fixes missing SPIR-V shader combinations.
We have multiple renderer backends for a while. So we can't rely on
a single CONFIG_GLES2 macro for disabling features.
2025-01-07 02:49:38 +01:00
phosit 16c0db12a9 Remove leftover from 113fefeeb7
The string literal was implicitly converted to `true`.
This is likely a leftover from testing.
2025-01-06 21:40:15 +01:00
phosit 9637fcdb56 Remove comment on the constructor of CNetServer
The second line was forgotten to remove in 8eecc39e71.
The first line is useless.
2025-01-06 21:40:15 +01:00
Ralph Sennhauser edde9fb4ee Avoid segfault with curl 8.10/8.11
With curl 8.10 [1] calling curl_multi_remove_handle retruns
CURLM_BAD_EASY_HANDLE iff the handle was removed already and no other
easy handle were registered. This resulted in ENUSRE triggering a
segfault during shutdown as reported. This was fixed upstream after
8.11.1 [2].

Do a runtime version check and for affected version allow
CURLM_BAD_EASY_HANDLE.

[1] curl ba235ab269080dc66e35835c829f7ac4290dbc1d
[2] curl 713182bd196bba014ba77f71176fea3de2236724

Fixes: #7295
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-01-06 06:59:14 +01:00
wowgetoffyourcellphone c798a12815 Fix projectile modifier oversight and references
Update trigger script
Update Attack.js component
Update the relevant techs
Update unit_tables.py
2025-01-05 22:49:18 +01:00
phosit 7c1a566d3e Consistent coment length to seperate message-types 2025-01-05 19:57:12 +01:00
phosit c32a747873 Use early return when there is no message 2025-01-05 19:57:12 +01:00
elexis c9e76efe7b Store whether a player is activ in C++
This prevents mods from mutating this value and revealing the map.

Part of this commit is written by @phosit.
2025-01-05 19:57:12 +01:00
elexis f932b8b9cc Fix subscription time of script component wrapper
Script component wrapper attempted to subscribe to messages before the
script component has been registered.
This defect existed since 7c2e9027c2 but was never noticed since there
is no script component wrapper which subscribes to messages. (Only the
script component it wrapps does.)
2025-01-05 19:57:12 +01:00
Cayleb-Ordo 90d276b0dc Make windows batch-scripts independent of calling directory
Change dir to batch-script location as first action. This
allows to run the script from outside the directory its stored.
2025-01-05 19:38:37 +01:00
phosit 21eddf0d39 Silence maybe-uninitialized warning in mongoose
Additionally list warnings in alphabetical order.
2025-01-05 15:30:41 +01:00
elexis e19a5eda9f Fix changing view to observer
`id` was compared to the wrong player.
This defect was introduced in 023527e56e.
2025-01-05 15:16:41 +01:00
Vladislav Belov 0467d27b07 Fixes slow-path texture conversion on RPI4.
RPI4 returns `false` for `textureCompressionBC` because it doesn't
support formats above BC3. As the Vulkan specification requires to
support all BC formats to have `true` for `textureCompressionBC`.
2025-01-05 00:27:02 +01:00
Vladislav Belov 54701868da Fixes GLES compilation. 2025-01-04 18:22:23 +01:00
elexis 88df5ec95f Don't focus on spies for non-following observers
Missing since introduction in e14ad3c771.
2025-01-04 18:01:29 +01:00
elexis 015aa0349b Fix vulnerability in spy-request
Introduced in d9d1f1bbeb.
This allowed draining an enemies metal resources by ordering spy-request
for that player.
Fixes #7230.
2025-01-04 18:01:29 +01:00
Lancelot de Ferrière c20ca02911 Fix AI errors when promoting an athenian spearman to champion.
Ideally the AI would try to carry on and recover gracefully but the code is setup in such a way that this seems like it would lead to a lot of different bugs down the line.

With help from @langbart on QA and code.

Fixes #7425
2025-01-04 15:44:05 +01:00
Lancelot de Ferrière a8fc3cf254 GameSettings: ensure savegameID is either a file name or undefined.
The current code could end up with savegameID being undefined, false, a filename string, or null depending on the code path taken.
Adapt C++ in consequence.
2025-01-04 15:01:27 +01:00
Lancelot de Ferrière fba5a23aad Fix sounds playing in the wrong places of the map
Introduced by a typo in f8afd49ae1.
Fixes #7345, reported by wowgetoffyourcellphone
2025-01-04 11:53:26 +01:00
Lancelot de Ferrière 3756e12701 Fix overlay renderer when changing displayed player.
Observers have the ability to change the currently displayed player, and this broke the logic of commit f3f695b90e.
By instead storing the displayed player in CmpOverlayRenderer, we can remove the workaround to set a 'dirty' flag as well.
2025-01-04 09:43:33 +01:00
Feldfeld b4443d396e Make Brit Crannog tooltip more accurate
Previously, arguably the tooltip hinted that naval technologies could be
researched which is not true. That could be a little confusing.
2025-01-03 22:15:17 +01:00
Feldfeld 5c25b6f644 Uniformize dock trainable entities
Docks are generic and have all ship entities. This comes to play notably when
they are captured. This is currently not the case for special docks (Crannog and
Cothon). For consistency they are given ship entities that are trainable by
other civilizations.

Also, the Crannog was not updated with the naval overhaul and still had the
trireme and bireme entities. They are now removed.

Fixes #7426
2025-01-03 22:15:17 +01:00
Itms 2482ecf9fe Sign and notarize macOS bundles 2025-01-03 17:05:15 +01:00
Itms 604d4ce29c Fix another macOS lib download source 2025-01-03 17:05:14 +01:00
Dunedan 33e9cd6126 Increase height of StoneButtons and TabButtons
This increases the height StoneButtons and TabButtons, so that a
double-spaced caption does fit on them without significant overflow.
Exempt from that are the StoneButtons resembling lists in the main menu
and the in-game menu, as changing their height didn't feel right and we
don't need double-spaced captions for them anyway, as they're wide
enough.

The height of StoneButtons got increased from 28px to 32px, while the
height of TabButtons got increased from 30px to 34px.
2025-01-03 16:33:51 +01:00
Lancelot de Ferrière 2f7ac026c1 Avoid idle 'flicker' because of regular formation regroups
Since 71a61d5f50, formations regularly regroup. However, units already at their correct offset should remain idle. This doesn't happen as we cannot check if we are at destination.
This exposes that and handles things properly... Unfortunately UnitAI has already left the IDLE state at this point, so we still get counted as no-longer idle for a turn.
To fix this, try and detect that particular situation without triggering infinite loops.
2025-01-02 16:59:13 +01:00
phosit a1a08f1890 Assign players to their slot from the savegame.
Based on a patch from @elexis.
2025-01-02 13:43:55 +01:00
phosit eafcb814cd Simplify playerassignments code
Deduplicate a check by moving it to isSlotAvailable.

Based on a patch by @elexis.
2025-01-02 13:43:55 +01:00
Stan fa19cb10fd Fix updating the OpenAL library
Some folders were not properly purged
2024-12-31 17:20:04 +01:00
Lancelot de Ferrière e24d01b0b1 Fix autostart issues reported by langbart in 2535e5f5b4 2024-12-31 10:09:07 +01:00
Lancelot de Ferrière e15ffd70b7 Fix Identity serialization following 533429e800
Failed to notice that name and controllable were sometimes changed.
2024-12-31 10:08:52 +01:00
phosit 9e740c84b9 Fix wrong variable name in caledonian_meadows
Defect introduced in 22a8f367f8.
2024-12-31 09:43:46 +01:00
phosit 54ce60e965 Fix error on large hights in Belgian Uplands
Defect introduced in 163063c2a4.
2024-12-31 09:43:46 +01:00
phosit 82513c9104 Catch all std::exception when loading a map
Since 0eed117e6d exceptions from the map generation script are rethrown
in the main thread but not all of them are catched.
2024-12-31 09:43:46 +01:00
wowgetoffyourcellphone da761ca501 Update the New Maps campaign file
Include new/updated skirmish maps and brand new random maps by @real_tabasco_sauce

Revert name and description strings only
2024-12-31 02:31:32 +01:00
Stan bce3a2a170 Fix the viking longship
- Apply Scale
- Rename mesh from Circle to viking_longship
- Remove useless material
- Add prop-projectile-prop point

Reported by: @Langbart
Fixes #7424
2024-12-31 02:25:35 +01:00
Stan 3499efe014 Add two missed files in previous commit 2024-12-30 23:42:34 +01:00
Stan df6ed56667 Add OpenAL Soft for macOS 2024-12-30 22:48:41 +01:00
Stan fd78034885 Mod Interface: Enable setting territory visibility
based on a patch by: aeonios

`off` means that the territory visibility cannot be changed
`hidden` means that it's hidden by default but can be enabled
`visible` means it's visible by default
2024-12-30 22:23:05 +01:00
Stan dc60a095dc Fix the statue_discobolus_cover.dae mesh
Reported by: @Langbart
- Add missing UVMap
- Apply scale
- Remove unused material
- Rename mesh from Plane.003 to discobolus_cover

Fixes #7423
2024-12-30 22:17:30 +01:00
Stan 7315b4e59f Rename Ship Combat Demo to match conventions
Reported by: @Langbart
Refs #7422
2024-12-30 22:12:54 +01:00
Dunedan 1aeb19b535 Improve alignment of in-game top menu
This improves the alignment of the items of the top menu in-game. Icons
are now better centered and don't overflow anymore and the build label
text doesn't stack on low resolutions anymore either.
2024-12-30 18:47:05 +01:00
phosit fb9b02a9ba Never change the names in the "Player Name" column
The intent of this branch was to not change the names when a saved game
is loaded. So that one can see who was where in the saved game.
It was implemented wrong: The names didn't change when no savegame was
loaded and changed when a saved game was loaded.

This commit make the soved game case and no saved game case consistent.

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
phosit 5c860c3121 Respect the enabledness in PlayerColor
There is no way to show the `PlayerColor` as disabled. As the player
color is vilible without this it can simble be hidden when it is
disabled.

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
phosit b52c1c137f Load the PlayerNames dependant on their origin
`PlayerData` didn't contain the playerNames when serialized because they
should not be loaded when a new game is made. This lead to the issue
that client didn't receive the initial player names of saved games.

Now `fromInitAttributes` gets as a second parameter whether the
initAttributus are from persistent settings.

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
phosit 199aa8ac35 Rebuild the selection list when rendering an ai
When a saved game gets loaded ai's aren't always selectable. This lead
to errors when an ai actually gets selected.

Defect introduced in b90280855f
2024-12-30 15:23:31 +01:00
phosit 8636e4d0fd Render GameSettingsWarning on construction
`GameSettingsWarning` where only rendered when the settings change. When
a saved game is loaded it's possible this setting is enablet without the
setting being changed.

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
phosit 4c48661b4f Disable mapbrowser when a saved game is loaded
Make it consistent with the "Browse Maps" buttow which is also
unavailable when a saved game is loaded.

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
phosit 96aa283e6a Make MapPreview always listen to map changes
When loading a saved game the user can't change the maps but when
receiving the initAttributes from the host the map is "changed".

Defect introduced in b90280855f.
2024-12-30 15:23:31 +01:00
Stan f14a98e26f Bump minimum macOS SDK to 10.15
According to https://firefox-source-docs.mozilla.org/widget/cocoa/sdks.html Firefox doesn't support anything lower than 10.15 at runtime. So neither do we.
Fixes #7370
2024-12-30 11:14:59 +01:00
Lancelot de Ferrière a6693e8c1f Fix samply profiling of SM JS code 2024-12-30 09:13:06 +01:00
Ralph Sennhauser 28b0801e82 Print diff for ruff-format if check fails
It's a bit hard for contributors to figure out what ruff-format is
unhappy about if all they get is a return status of non zero. Enable
printing a diff with suggested changes with the pre-commit hook.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-30 06:23:22 +01:00
Vantha 33111dc816 Fix phase names not updating on the structure tree
Reload all cached phase data when switching civ.
Add missing query for the generic phase technologies to the phase idents.
2024-12-29 22:21:28 +01:00
Vantha 314bc4185b Fix incorrect SpecificName syntax introduced in 94baa560b1 2024-12-29 22:21:28 +01:00
Dunedan 8a9813234e Remove GetFileMTime() 2024-12-29 09:32:17 +01:00
Dunedan 894e349ebf Add a deprecation warning for using GetFileMTime() 2024-12-29 09:32:17 +01:00
Dunedan ab0aee4cfa Use MD5 hash for splash screen version check
Instead of using the file modification date, this uses the MD5 hash of
the file holding the content of the splash screen for the version check.
This ensures the splash screen isn't unintentionally shown again when
just the modification date of the file changes.

Fixes #4399
2024-12-29 09:32:17 +01:00
Lancelot de Ferrière c2bb61fffc Fix terrain normals to account for angle 2024-12-28 13:25:07 +01:00
Dunedan 1268854587 Improve layout of the match summary screen
This improves the layout of the summary screen, so text and displayed
values fit better. By doing so this also removed the need to specify a
"verticalOffset" for values, as they get vertically centered now.
2024-12-28 12:10:07 +01:00
Dunedan fc7e4ae69e Small UI adjustments for better text fitting
When running 0ad with a language other than English, there are various
places where text doesn't properly fit. This adjusts the UI in a bunch
of these places to better accommodate longer strings as they appear in
other languages than English and to make the UI look more uniform in
general.
2024-12-28 08:52:13 +01:00
Lancelot de Ferrière 099a718e62 Fix pre A25 savegame compatibility 2024-12-28 08:47:35 +01:00
wowgetoffyourcellphone ba24b46693 Fix normal map orientation for terrains
Fix normal map orientation for Terrains

- Terrains use "OpenGL" style normal maps, while 3D assets use "DirectX" style normal maps. So, fix all of the normal maps I can find with incorrect style normal maps.
- Set most terrains to angle="0" for more accurate shading. This negatively affects "tile" terrains, which we want to have a 45 degree angle, but helps all other terrains. aegean_paving_01 is an example of a permanent fix for this, which I will work on with Stan for R28.
- Adds a couple of really nice paving terrains for a new "Italy" terrain set.
- Adds a nicer "furrows" normal map for farmland terrain
- Improved persian city tile normal by @wraitii
2024-12-28 00:34:14 +01:00
wowgetoffyourcellphone 67bed64fd1 Last minute art changes and fixes.
New AO maps for statues by @nifa (which fixes the Discobolus ao error)
New quiver for Persian Immortal
Remove bad smoothing for Chinese rice hat
Remove some noise from a couple of structure skins
Add garrison flag prop points to Greek theaters
Make garrisoned flags unselectable. Requested by @real_tabasco_sauce
Update han_ricehat.dae
2024-12-28 00:33:50 +01:00
phosit e04506814a Multicast chat messages
Only the sender and the recipients receive the chat messages.
This commit only has an affecto on messages where the addressee(s) are
selected through the dropdown. Addressee(s) selected with a "/" command
are still sent to evevyone and filteret by the receiver.
2024-12-27 19:32:03 +01:00
elexis 023527e56e Prevent players to reveal the map from GUI script
`Engine.SetViewedPlayer` and `Engine.SetPlayerID` could be used to
reveal the map from GUI scripts and the in game console.

This is prevented by querying the simulation whether this player is
allowed to call thous functions.

These two vulnerabilities were introduced with their respective
features:
20e7d2224a introduced SetPlayerID to allow controlling other players
	using the developer overlay.
a2f7d4d82a introduced SetViewedPlayer to allow observers to change the
	perspective.
2024-12-27 19:01:53 +01:00
Lancelot de Ferrière 40d3ea33d8 Fix tutorial autostart 2024-12-27 09:37:00 +01:00
scuti faa063ee42 Add myself to credits. 2024-12-26 16:14:38 +01:00
scuti a81c38bab9 Skip playing audio of corrupted files.
Prints a warning instead of crashing.

Fixes #7150
2024-12-26 16:14:38 +01:00
Ralph Sennhauser fb24d75f0e Bump release version to 0.27.0
Also drop build version component as we never used it in earlier
releases either. This will also make replays et al be stored in a
directory 0.27.0 similar to earlier releases.

The build version component was introduced in 028ec40165

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-26 14:11:43 +01:00
Dunedan 870b356ad9 Fix font size of error for incompatible save games
The font size in the error message dialog for incompatible save games
was way larger than usual. This fixes that, by removing the arbitrarily
applied font size.
2024-12-25 19:20:35 +01:00
real_tabasco_sauce a4541a1745 Add "new" keyword to migration, foothills, and coast range
Fixes #7362
2024-12-25 15:56:55 +01:00
Stan b579e68d5d Fix casting autostart-size 2024-12-24 12:30:23 +01:00
elexis d12c015d43 Erase client state hash on disconnect
Fix `NetServerTurnManager` from pausing the simulation forever after a
client sent a bad hash to it and disconnects before the bad hash has
been processed.

A client that sends a wrong simulation hash to the `NetServer` and
disconnects before the server compares that hash causes a message box to
appear and the game to be paused forever.
94e5d88169 introduced the bug by missing to delete `m_ClientStateHashes
upon `UninitialiseClient.
This causes `m_ClientData[hashPair.first].isOOS = true` to insert a
client with blank values that the `NetServerTurnManager` will wait
forever and hence the message box about an OOS with no players being OOS
is shown (the playername is emptystring).

5ebf2020b0 exposed the bug by making observers able to lag behind,
providing a longe enough timeframe for this to occur.

Fix:
Deleting `m_ClientStateHashes` upon disconnect solves the broken
message box and the pausing.
2024-12-23 08:09:18 +01:00
elexis 5b33dd0143 Exclude fireships and scoutships from Danubius
These ship types were introduced in d51b4687e9. Danubius isn't designed
to use these ship types, as it uses ships to garrison 30 units.
2024-12-23 08:00:41 +01:00
Ralph Sennhauser 3c8760aa43 Add option categories to premake
Adding a category to newoption calls groups our options together instead
of mixing them with premake General options in --help output.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-23 06:15:32 +01:00
Itms ba0e2d0217 Self-host gloox tarball
Upstream seems less and less reliable, with the bug tracker inaccessible
and the website now entirely down.
2024-12-22 11:19:05 +01:00
Itms 9f6699d964 Adapt bundles pipeline to the git environment 2024-12-21 23:03:25 +01:00
Itms c9e4eb1539 Fix amd64 cross-compilation on macOS 2024-12-21 23:03:24 +01:00
real_tabasco_sauce 6b7dfb005e Balance non-random arrows
-Increase default arrow firepower for buildings, decrease garrisoned firepower.
-Add a 20% building damage by by phase.
-Give the fortress a minimum range.
-Allow murder holes to be researched from the fort.
-Sentries uses a multiplicative bonus instead of adding 1 arrow.
-adds a new tech to the fort to increase its default arrows by 6.
2024-12-21 22:48:01 +01:00
real_tabasco_sauce 7c95b6700b Add non-random building AI
-lets building arrows target the closest unit by default.
-adds player control of building arrows.
-adds a tooltip to explain how to control arrows.
-Uses "F" for focus fire and concurrently use "F" for force-attack, since "C" is capture.
2024-12-21 22:48:01 +01:00
Vantha bae50fe4f7 More SpecificName improvements 2024-12-21 22:35:24 +01:00
Carl-O 94baa560b1 Enrichment of SpecificNames
- Fix pinyin on The Art of War technology
- Add Doric SpecificName of the Agoge
- Add SpecificNames of Town and City phases, as well as of overlooked
Village phase (the latter for Structure Tree purposes)
- Add SpecificName for the Mauryan wonder
2024-12-21 22:20:09 +01:00
Lancelot de Ferrière f3f695b90e Fix aura/overlay visibility in FOW 2024-12-21 21:24:11 +01:00
Stan f27afa5c17 Update Windows libs reference commit
Fixes: #6991
Refs: #3004
2024-12-21 18:31:09 +01:00
Itms 62f67f5870 Match structree size with civ overview
Refs #7316
2024-12-21 14:36:19 +01:00
Dunedan 0092640024 Move the lobby menu item to the top
This moves the lobby menu item to the top of the multiplayer menu to
make it easier to find for new players and as it's probably to most used
item in that menu anyway.
2024-12-21 14:14:37 +01:00
Ralph Sennhauser 00813ff99a Backport premake extra arch support
Grab upstream patches adding support for building premake on riscv64
[1], loongarch64 [2], and e2k [3].

[1] 82c9d90495940e2d0d574e1c7849e9698f23b090
[2] 928397f72c00979d57ec4688cb1fb26ec7f2449b
[3] 5c524b6d53307bcb4ba7b02c9dba20100df68943

Fixes: #7346
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-21 12:10:03 +01:00
real_tabasco_sauce 409ba0bab5 Add art to complete the visuals of the roman reforms
Instead of removing units from the roster, we provide actors so they can be reskinned into more historically accuracte units.
Add an auxiliary spear cavalry actor and portrait
Improve the auxiliary javelin cavalry actor and portrait
Add a levy auxiliary spearman actor and portrait to replace triari
Add a champion "first cohort legionary" to replace the extraordinarius and its portrait
2024-12-21 11:45:09 +01:00
real_tabasco_sauce da8551e419 Fix Onager and make the roman reforms cheaper
-Part one of updates to roman reforms.
-account for the use of antesignanus instead of lanciarius
-train the onager from the army camp and add non-random arrow balance.
2024-12-21 11:45:09 +01:00
Ralph Sennhauser 949d5f8c0b Check for WX in premake and rename atlas option
The option --atlas is oddly different than any other feature flag,
change it to be in line with the others and enable it by default. The
new option is --without-atlas.

As the WX binaries aren't precompiled for Windows automagically disable
atlas there for users running the batchfile through filemanger if WX is
missing.

On *nix not providing a valid wx-config whith enabled atlas is
considered an error.

Fixes: #6401
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-21 10:03:12 +01:00
Ralph Sennhauser c09d12a959 Add missing wildcard in gitignore
In a5fec576f9 the reqired wildcard wasn't added.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-21 10:03:12 +01:00
Ralph Sennhauser 9db50f48e7 Add help to build-source-libs.sh
The number of options is increasing, add a --help option to print usage
and available options.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-21 09:18:16 +01:00
Feldfeld a0fee91f1e Correct civ bonus description for Polybolos and Agoge
They were missed in 82877e03a1 / #7288 and b0ba7bd33a / #7289
2024-12-20 21:37:15 +01:00
Vantha d7dda097e1 Extend the tips page for multiple images per tip
Enable the Tips and Tricks page to show multiple images for each tip.
Add a small GUI panel below the image for switching between them.
Only show it when the current tip has more than one images.

Introduce tipfiles.json to assign images to the text files.
(And stop of relying on file naming)

Add a tip about wonders, and make some slight changes to other texts.
Improve existing tip images and add a bunch of new ones.
2024-12-20 19:46:07 +01:00
real_tabasco_sauce a949940ff8 Adjust units trainable in persian buildings
-Cavalry Javelineer moved to the front of the cavalry in the CC to match other civs.
-Allow the barracks to train both types of the immortal and ensure the unlock tech applies to the archer.
2024-12-20 19:22:32 +01:00
phosit b90280855f Multiplayer saved games
Enables to save multiplayer games.
When the savegame is loaded, the settings are frozen (except the non-AI-player assignment settings).
2024-12-19 21:36:51 +01:00
phosit 20b4937ffd Enable multiple RequestTypes 2024-12-19 21:36:51 +01:00
real_tabasco_sauce 007c55d555 add a high wood variant to nubia with lots of baobabs 2024-12-19 17:46:47 +01:00
real_tabasco_sauce 59fdc0a923 increase forest probability in nubia and savannah 2024-12-19 17:46:47 +01:00
real_tabasco_sauce fd8e86c9a1 decrease excessive forest sizes in india biome 2024-12-19 17:46:47 +01:00
real_tabasco_sauce 346dae3d8a add more wood to baobab trees 2024-12-19 17:46:47 +01:00
Feldfeld 4122fc9b6c Make spearmen attack siege units if closest 2024-12-19 13:49:28 +01:00
wowgetoffyourcellphone 422b6becde Fix the Discobolus cover actor.
It does not have a secondary set of UVs, necessary for an AO map.
2024-12-19 05:15:36 +01:00
Dunedan 3a0f6aca32 Don't credit our Transifex account as translator
This account is only used for fixing technical bugs in translations and
not doing translations themselves, so let's exclude it from the credited
translators.
2024-12-18 21:53:31 +01:00
Lancelot de Ferrière ce197de0b0 Fix style of #7269 after Vlad's comments 2024-12-17 11:19:20 +01:00
Vladislav Belov dba968013f Fixes Vulkan device selection.
According to #6936 some lower devices (especially virtual ones) might
report more memory than regular ones. So we can't use the memory
amount as a score for now.
2024-12-16 23:18:20 +01:00
Vladislav Belov c7ae248b77 Removes duplicated manifest for Windows. 2024-12-16 23:07:37 +01:00
Ralph Sennhauser 2f81399c50 Remove unused vars in update-workspace
After the git migration update-workspace.sh doesn't build libraries
anymore. Remove variables and options no longer of use.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-16 20:24:47 +01:00
Itms 4cf04ffaa2 Set executable on all shell scripts in the nightly 2024-12-16 18:20:08 +01:00
Vantha 960bd5eace Unique network transmission handling of flares
This patch addresses issues concerning a1796ed71f:

Allow for a more elegant implementation of observer flares.
And still display flares even if the sender is lagging behind:
Split off flares from simulation commands.
Remove the new, problematic 'observer commands' entirely.
Provide an engine function 'SendNetworkFlare' to the JS interface.
-> which sets off the (pretty ordinary) transmission process.
Add a new type of net messages exclusively for flares
-> contains the flare's position and its sender's GUID.
2024-12-16 18:03:25 +01:00
Vantha 75205699d0 Disable flaring during replays
Correct unintended behaviour introduced in a1796ed71f.
2024-12-16 18:03:25 +01:00
paczek654321 48a4aa7f9a Changed the max selection size to 300 from 200.
Patch By: Serihilda
Fixes #6823
2024-12-16 16:35:16 +01:00
Vantha 4b2424b885 Improve some SpecificNames and GenericNames 2024-12-16 00:03:51 +01:00
Feldfeld 5f1f888a33 Fix naval technologies mistakenly appearing as unique 2024-12-15 23:56:05 +01:00
Feldfeld b80b27bf24 Progressive research time for Forge technologies 2024-12-15 23:56:05 +01:00
wowgetoffyourcellphone 3ff2a4ea59 A bunch of minor art updates and new statues by Nifa. 2024-12-15 19:03:52 +01:00
Ralph Sennhauser accecc5894 Bump premake-core to 5.0.0-beta3
This is the version used for Windows already and contains the fix for
building against spidermonkey on all Linux distributions.

Backport patch to fix running on *BSD. Also make clang default on *BSD
as a toolset will always added to generated makefiles in beta3, so it
won't magically do what we expect when not adding --cc explicitly.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-15 18:34:27 +01:00
Stan d15f1c29e4 Unify library building logs 2024-12-15 15:41:37 +01:00
Stan 7b195d6a5d Add compatibility mode detection for Windows 2024-12-14 13:47:10 +01:00
Dunedan b0cc1488a7 Update the mod.io API URL
mod.io updated their API URLs, and the old one is being deprecated.
Therefore, this updates our config to point to the new one.
2024-12-14 09:16:08 +01:00
Ralph Sennhauser 36e1109624 Remove obsolete pre-commit excludes
With the removal of the premake sources all exclude directives in
.pre-commit-config.yaml are obsolete, so remove them.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-13 21:15:13 +01:00
Ralph Sennhauser 159117ded3 Fix readmes for premake modules
Markdown linter requires a heading and the heading not ending in a dot,
make the readmes not trigger a violation.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-13 21:15:12 +01:00
Feldfeld 0e183ec1ce Remove duplicate Woad Warriors civ bonus in Civilization Overview 2024-12-13 20:53:25 +01:00
real_tabasco_sauce b0ba7bd33a Sparta Civ Differentiation adjustments
Let the gerousia train heroes as in com mod
move the champ move speed tech to the syssiton in p1, make it cheaper as in com mod.
let the syssition provide 10 pop space to improve feasibility early in the game.
make the agoge a civ bonus.
increase the champion base attack rate from 1.0 to 0.9 so that the unit is inherently better than other champ spearmen, not just from upgrades availablity.
2024-12-13 20:10:50 +01:00
Vladislav Belov 239720fd22 Adds @vladislavbelov as a codeowner to related parts. 2024-12-12 00:19:04 +01:00
phosit 916db9a544 Correct the path to the ReportingErrors page
It was wrong, leading to a 404.
2024-12-11 20:23:23 +01:00
real_tabasco_sauce d1f6c04ba5 reduce cavalry capture attack from 2.5 -> 1.75 for CS and 5 -> 3.5 for champ 2024-12-11 07:08:22 +01:00
Vladislav Belov e27909e603 Fixes SPIR-V compilation for compute_skinning shader.
Currently we don't mix storage images and storage buffers in the same
shader. Also we don't sample textures when we use storage buffers.
In the future we need to avoid shifting descriptor sets.
2024-12-11 01:18:05 +01:00
Dunedan 721e90ba6a Fix compilation of SM with recent Python versions
This adds a patch for a bug in SpiderMonkey, preventing compilation of
SpiderMonkey with Python >=3.12.8 and Python >=3.13.1. The bug is
tracked upstream in https://bugzilla.mozilla.org/show_bug.cgi?id=1935621
2024-12-10 22:51:31 +01:00
Ralph Sennhauser ead62bba78 Update trac links with gitea links
This replaces all links pointing to trac with their corresponding links
to gitea. Also replace http with https while at it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-10 11:29:48 +01:00
Vladislav Belov 38a0a0cf2e Adds GPU skinning to the options page. 2024-12-09 22:47:20 +01:00
Vladislav Belov 5d4df9cbe4 Enables GPU skinning by default. 2024-12-09 22:47:18 +01:00
Vladislav Belov de1257c8da Adds GPU skinning support via compute shaders.
We use a shader with 64 bones by default to consume less uniform memory.
But if we meet bigger skeletons we batch and handle them afterwards.
In the future we need to sort the input models to have less changes for
bound buffers. Also we might want to skin up to 4 models per a single
dispatch.
2024-12-09 22:47:17 +01:00
Vladislav Belov 9e371824c2 Adds storage buffer support to Vulkan and GL.
The idea is similar to the storage images but we need a separate
descriptor set in Vulkan and a program interface to gather used buffer
in GL.

For Vulkan we also need to track buffers to free used descriptor sets.
2024-12-09 22:47:15 +01:00
Vladislav Belov 4fb9a20c37 Removes the old code from the model_* shaders. 2024-12-09 22:47:14 +01:00
Vladislav Belov 6b18e58017 Adds a compute shader to perform a GPU skinning.
The main logic is taken from the experimental code in the model_common
shader but rewritten to use storage buffers as inputs.
2024-12-09 22:47:07 +01:00
real_tabasco_sauce 074451e732 Naval Overhaul balance adjustments
Increased boat vs boat TTK, allow fire ships to behave like a melee ship with a more player controlled area affect attack.
2024-12-09 20:25:44 +01:00
real_tabasco_sauce c2cc13f1f5 decrease effectiveness of melee promotion, compensate for mercs 2024-12-09 20:25:44 +01:00
real_tabasco_sauce 2c90b6bd8c civ specific corrections after melee rebalance 2024-12-09 20:25:44 +01:00
real_tabasco_sauce c73ef0756c Melee/Ranged rebalance from the community mod
Ranged units -25% dps in the form of attack rate
Melee units decreased armor (5h5p->3h3p for CS infantry)
Melee units 50% more damage
Building and siege hack armor adjusted to compensate
2024-12-09 20:25:44 +01:00
Ralph Sennhauser b863e99388 Add check for use of gmake action
Since 7d6a0c695a we use gmake2 instead of gmake, add a check in case
someone calls premake without the wrapper script update-workspace
telling them to use gmake2 instead as support for gmake was removed.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-09 19:03:05 +01:00
real_tabasco_sauce 82877e03a1 reduce the strength of the polybolos civ bonus 2024-12-09 16:35:17 +01:00
real_tabasco_sauce 88fcaf7706 make the academy and small pyramid cheaper 2024-12-09 16:35:17 +01:00
real_tabasco_sauce e9fdead305 let champions from non-barracks and non-stable buildings train 25% faster 2024-12-09 16:33:24 +01:00
Feldfeld 6406f1c84f Civil technologies update 2024-12-09 16:32:07 +01:00
Feldfeld a1428d3641 Hero updates for Mauryans, Kushites, Persians, Athenians 2024-12-09 16:29:17 +01:00
abian 05bc5aa71a Lower MaxGatherers for small trees with <=100 wood
- Reduced the MaxGatherers value for the smallest trees with 100 or
  less wood from the default (8) to 6 or 4.

- The affected trees are Bush (4), Atlas Cedar Sapling (4), Cretan Date
  Palm (Short) (6), and Fir Sapling (4).

- Small trees with 100 or less wood that already had a MaxGatherers
  value lower than the default (8), such as Bamboo (Single) (1) and
  Baobab Sapling (2), were left unchanged.
2024-12-09 16:12:55 +01:00
Itms 762c686a0d Remove check for SpiderMonkey minor version 2024-12-09 10:46:14 +01:00
Itms 72ea129751 Fix SpiderMonkey debug DEFINEs in pkg-config 2024-12-09 10:46:13 +01:00
Itms 0de5f2fb25 Upgrade SpiderMonkey to ESR 115 2024-12-09 10:46:12 +01:00
Itms cc72142205 Adapt 0 A.D. to SpiderMonkey ESR 102
This follows the migration guide at:
https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples

Based on patch by: wraitii
Differential Revision: https://code.wildfiregames.com/D5002
2024-12-09 10:43:35 +01:00
Itms 6a5488832e Upgrade SpiderMonkey to ESR 102 2024-12-09 10:43:31 +01:00
Itms 2e32636a53 Use Mozilla's mach to build SpiderMonkey
This removes the need for many customizations in the build script.
2024-12-09 10:42:21 +01:00
Itms 88d3550aaa Fix SpiderMonkey build on Windows 2024-12-09 10:31:34 +01:00
Itms f88bac98b4 Fix SpiderMonkey build on recent macOS
Fixes #6905
Fixes #6915
2024-12-09 10:30:49 +01:00
Itms 682de9f289 Unbundle SpiderMonkey
This deletes the RETRY flag from the build script, which can be
manually mocked if needed.
2024-12-09 10:11:34 +01:00
Itms 040038624c Bump Rust version in Linux CI 2024-12-09 10:11:16 +01:00
Lancelot de Ferrière 7590723606 Fix non-PCH builds 2024-12-09 09:53:25 +01:00
phosit d0ebcbe038 Allow to change a password from the lobby page
Fixes #2543
2024-12-08 17:13:47 +01:00
Dunedan 5a4180efb1 Fix the tooltip of the Han Academy
Fixes #6921
2024-12-08 09:27:38 +01:00
Lancelot de Ferrière cb6fb77eaa Speed up ChainPlacer.js::Place
ChainPlacer.js creates a new array that it fills with the -1 value before computing its clumps. This is slow.
By simply storing values differently, we can avoid doing that altogether, leading to faster mapgen.
Hard to say in general but I think this might be about 3-4% faster on a typical map.
2024-12-07 20:27:36 +01:00
Lancelot de Ferrière 2535e5f5b4 Use JS for autostart parsing 2024-12-07 20:27:23 +01:00
Lancelot de Ferrière ffa6943057 Reapply "Update various macos Libraries"
This reverts commit e609af395d.
2024-12-07 18:36:33 +01:00
Lancelot de Ferrière e609af395d Revert "Update various macos Libraries"
This reverts commit 8c9ed820cb.
2024-12-07 18:20:16 +01:00
Lancelot de Ferrière 8c9ed820cb Update various macos Libraries 2024-12-07 18:15:15 +01:00
Dunedan 0c0a446128 Fix translations of language names in credits
The migration to git broke the translation of language names in the
credits, as the translators.json, necessary for extracting the language
strings wasn't present anymore when running update_templates.py. This
commit should fix this.
2024-12-06 20:13:09 +01:00
Dunedan 9d4fa75f8e Fix picking up of translations for game settings
Fixes #6912
2024-12-06 17:03:47 +01:00
Vladislav Belov 60b4072b29 Avoids assertions on Vulkan backend device creation in case of driver bugs. 2024-12-05 18:32:15 +01:00
Itms adcb9755ff Refactor freezing of JS objects
- Shallow-freezing of objects is never used in our codebase, so remove
   that code path.
 - Deep-freeze is bugged in recent versions of SpiderMonkey (see bug
   https://bugzilla.mozilla.org/show_bug.cgi?id=1930258). Until a fix
   and/or a better API is provided, reimplement this feature by
   recusively freezing object properties.
 - Add tests for the deepfreeze function.
2024-12-05 17:49:16 +01:00
Vladislav Belov e765a2c4ba Moves tests for generate_rules and merge_rules to a separate folder. 2024-12-05 17:25:54 +01:00
Vladislav Belov dbeb11a36b Adds avoiding non-default render debug modes for generating rules of SPIR-V shaders. 2024-12-05 17:25:52 +01:00
Vladislav Belov 7801c40b40 Adds order test to merge_rules. 2024-12-05 17:25:50 +01:00
Vladislav Belov 53de281311 Adds +x to tools. 2024-12-05 17:25:48 +01:00
Vladislav Belov d0d6113fc4 Fixes linter notes. 2024-12-05 17:25:47 +01:00
Vladislav Belov b12cc27bef Adds tools for SPIR-V rules. 2024-12-05 17:21:19 +01:00
Itms 635f1084a3 Replace uses of sprintf with sprintf_s/snprintf
This fixes deprecation warnings on newer macOS SDKs.
2024-12-05 09:51:28 +01:00
Itms 5f3b9d6d45 Ignore cast warning in mongoose
This fixes -Wcast-function-type warnings under GCC 8.
2024-12-05 09:51:27 +01:00
Itms c11cf80ecb Initialize some floats in CCmpPosition
This fixes -Wmaybe-uninitialized warnings under GCC 8 and clang 9.
2024-12-05 09:51:25 +01:00
Itms 91289c8362 Fix error in build-macos-libs.sh
Issue introduced in 9fd05e38a4, revealed by c280df9e64.
2024-12-05 09:51:24 +01:00
Itms d85a56142d Revert "Use -Og or equivalent for debug builds"
This reverts commit 81171f3bb4.

Backed out because of issue #7281.
2024-12-05 09:46:53 +01:00
wowgetoffyourcellphone 4ebf2037fe Capitoline Wolf by nifa 2024-12-05 03:37:24 +01:00
Antoine Le Gonidec 649cd9b318 Add myself (vv221) to the list of programming contributors 2024-12-03 13:54:38 +01:00
Antoine Le Gonidec 2451167a37 Update the MacOS libraries build process to avoid "empty" error messages
The die function now only displays a message if it has been called with
a message argument.
2024-12-03 13:53:42 +01:00
Antoine Le Gonidec c280df9e64 Fix errors handling when building the libraries for MacOS
The shell option "set -e" has a tricky, but standard, behaviour:
Anything called on the left side of a || or && token ignores "set -e",
so failure in a command in a subshell called on the left side of "|| die"
does not prevent the execution of the following commands in the subshell.

Adding explicit "|| die" calls after each command that could fail (and
should interrupt the process) works around this behaviour, by emulating
the intuitive "set -e" behaviour.
2024-12-03 13:53:34 +01:00
real_tabasco_sauce 82386a68be add real_tabasco_sauce to the art credits 2024-12-01 20:45:48 +01:00
real_tabasco_sauce c279b1c327 improve pack/unpack pngs 2024-12-01 20:45:48 +01:00
Ralph Sennhauser 81171f3bb4 Use -Og or equivalent for debug builds
Unless minimal cflags is set add -Og or equivalent to CXXFLAGS for debug
build configuration.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-01 09:48:53 +01:00
Ralph Sennhauser b97f1233ad Limit FORTIFY_SOURCE to release builds
FORTIFY_SOURCE relies on optimizations being enabled which is only the
case for the release configuration. Therefore remove it from the debug
configuration as to prevent the compiler issuing a warning on each
invocation.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-01 09:48:53 +01:00
Ralph Sennhauser c497744548 Don't define DEBUG on non VS actions
DEBUG is unused by pyrogenesis and unconditionally adding it to defines
prevents building against a non debug version of spidermonkey. This will
allow building only one copy of spidermonkey, which can be trivially be
replaced with the other depending on needs independent of pyrogenesis
debug or release build.

This also allows to build either build configuration against system
spidermonkey, which obviously is either one build type or the other.
Requires a compilecheck until the pc file gets fixed upstream.

A comment in the spidermonkey build.sh says on FreeBSD spidermonkey
debug configuration doesn't even build and so pyrogenesis debug build
wasn't possible either.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-01 09:48:53 +01:00
wraitii a3ce07c3bb const {} bool 2024-12-01 09:47:01 +01:00
Lancelot de Ferrière def0f57365 Try to anticipate unit collisions to improve pathing 2024-12-01 09:47:01 +01:00
Lancelot de Ferrière 533429e800 Handle phenotype in Transform, tweak SetPhenotype logic 2024-11-30 19:12:11 +01:00
Ralph Sennhauser 7aa5890236 Fix getting host jid after 0a455fbe2d
During the removal of glooxwrapper the function GetJID was mapped to
getID. This results in NetClient querying for host jid not getting the
right value which prevents hosting a game in the lobby.

Reported-by: Dunedan
Refs: #7203
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-29 05:50:16 +01:00
Ralph Sennhauser a5fec576f9 Set default workspace instead of requiring outpath
This uses ./build/workspaces/default as location for generated build
files as well as build products. Using the name "default" to avoid the
dilemma gcc vs clang vs premake generator. Doesn't impact scripts
already using --outpath and allows running premake5 --help without a
wrapper.

Also update .gitignore to make using arbitrary workspaces cleaner.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-28 06:38:21 +01:00
Ralph Sennhauser cb08933e88 Remove --prefer-local-libs premake option
This option doesn't handle includes, further we rely on system includes
and pkg-config to locate dependencies.

For systems where installing into local is reasonable this paths should
already be in system/ld paths. So in practice this offers no value.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-28 06:34:38 +01:00
real_tabasco_sauce f1afa611a9 add coast_range map 2024-11-27 18:31:30 +01:00
Ralph Sennhauser 197e63465b Always enable --large-address-aware build option
This option is needed to be able to use more than 2GB on 32bit Windows
builds.

Having to explicitly enable this turns out to be a pitfall. Release
builds are done with this option enabled and when then building from
source and running out of memory it's not immediately obvious what the
reason is.

The documented intent is that this behaviour might be useful to find
memory leaks. The large-address-aware enabled build already perfectly
serves this role this days and the memory pressure is an important
reason for the ongoing Windows 64bit build efforts. Also there are
arguably better tools for this purpose.

Refs: commit a8403bd7e5
Refs: issue #1619
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-26 18:27:38 +01:00
real_tabasco_sauce 06f47f0f46 Add additional range checks to Attack.js
This may decrease performance but increases the feeling of responsiveness in units and addresses unit overshoot.
fixes #7074
2024-11-26 11:09:17 +01:00
Itms 66c2fc07d7 Run Linux CI on GCC 8 and clang 9
Those are the minimum supported versions. Only PCH builds are performed
to save build time.
2024-11-25 23:04:45 +01:00
phosit 32b26e6d0c Remove unused delta in Camera.cpp
The variable was introduced in 5470eff53c but never used.
2024-11-25 21:23:05 +01:00
Ralph Sennhauser 0a455fbe2d Remove glooxwrapper
This wrapper was meant to support multiple C++ ABIs with a single
pre-built gloox library wrap as a C library. A new ABI change was
rejected a few years back, so this will probably take a while for it to
be on the table again. With the bug tracker and mailing list currently
unavailable and known TLS issues we might have replaced gloox by then
anyway.

Supporting multiple ABIs with the current setup isn't an issue either
and is already done for 32bit vs 64bit ABI on Windows.

Therefore use gloox types directly in lobby code instead of wrapper
types and delete the wrapper and build-integration.

Migrate to override where applicable, as it helped avoid subtle
differences in signatures and finding missing inheritance of LogHandler.

Finally use version check instead of os check to work around Windows
using the 1.1 development branch instead of releases.

Fixes: #7198
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-25 20:01:00 +01:00
real_tabasco_sauce 087f62d062 Update migration and rename the previous map "land grab" 2024-11-25 19:24:01 +01:00
real_tabasco_sauce 98b042a90a add foothills map 2024-11-22 05:08:15 +01:00
Ralph Sennhauser 49507c04e0 Make failed audio device query non fatal
Querring the audio device name may fail. The name is only used for the
sake of logging it for debugging. Avoid querry failure to be fatal and
insted just log the issue.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-21 15:08:04 +01:00
Ralph Sennhauser bb1910ff4c Fix segfault with openal-1.24.0
With version 1.24.0 alcIsExtensionPresent() has dropped case insensitive
string comparison [1], use upper case names.

The internal strings are uppercase since the first git commit importing
openal 17 years ago.

[1] upstream commit 785f794141d62a4c308db26aa4a4819e6a92525e

Report: https://wildfiregames.com/forum/topic/125203-crash-on-start-due-to-soundmanager
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-21 15:08:03 +01:00
Stan 28da29e96b Cache resource gatherer max distance and range.
The string -> double conversion is fairly slow. And we don't need to create many objects this way.
Based on a patch by: @wraitii
2024-11-18 10:36:45 +01:00
phosit f8afd49ae1 Return by value from CCamera::GetScreenCoordinates
Pack the two `float`s in to a `CVector2D`.
Rename some variables to not use underscore.
2024-11-17 20:27:58 +01:00
phosit 998dc30b6d Return by value from CCamera::BuildCameraRay
Some return values can be assigned to a `const auto`, somewhere `dir` is
mutated so the whole result has to be assigned to a non `const` variable
and once only dir is used, so structured binding isn't used there.
2024-11-17 20:27:58 +01:00
phosit cf92c20020 Return by value from CCamera::GetViewQuad
Remove some temporaries by passing the return value directly to
range-based for loops.
2024-11-17 20:27:58 +01:00
Itms 5ed3a54603 Do not pin or atomize ParamNode strings
When building a JS::Value from CParamNode, strings have been "interned"
since the conversion was written in dd501b2a5a. This means that the JS
string object could be used outside a JS realm, and also that those
strings could be compared efficiently instead of char-by-char.

This was unnecessary, and the only place in the code where we used
"interned" strings. The upgrade to SpiderMonkey 45 (64b477625d) changed
the name of related methods, and some of them are removed from the
public API in SM 102, so stop pinning and atomizing those strings.

Additionally, the switch of CParamNode to utf8 in 35ed55cfd6 missed one
of the two utf16 handlings, so fix that as well.
2024-11-17 18:59:48 +01:00
phosit 48d1b7586d Clear modsToInstall earlier
Dataflow is now more clear.

The `std::vector` is cleared earlyer, so there is a bit less memory
used.
2024-11-17 18:03:49 +01:00
phosit 3c8f6762c8 Change flags to a single bool
In `RunGameOrAtlas` only one of thous flags is used. Using a `bool` is
simpler and less error-prone.

Also reset the variable earlier, so it's easyer to reason about it.
2024-11-17 18:03:49 +01:00
phosit 31d9b0ed05 Make the TaskManager a automatic livetime object
This way the destructor can be used for cleanup.
2024-11-17 18:03:49 +01:00
phosit 256152df6d Add CXeromycesEngine
This way the destructor can be used for clean up and `Singleton` can be
used.
2024-11-17 18:03:49 +01:00
Vantha f796beee11 Enable most ships to collect sea treasures
Previously, only merchantmen were able to collect treasures on the sea.
This patch enables all types of ships to do so:
fishing boats, merchantmen, and warships (except fireships).
2024-11-16 22:01:42 +01:00
Dunedan 67cf07b897 Update URLs to the terms to point to Gitea 2024-11-14 19:58:40 +01:00
phosit 400878b374 Include utility in Future.h
Fix building without precompiled headers.
Defect introduced in 778972602a
2024-11-14 19:25:28 +01:00
Itms ebd66fef89 Retry non-incremental CI builds as a new run
When a non-incremental build is needed for a PR, the current code cleans
up workspaces and retries, but this leaves the build error in the
console output. This marks the build as unstable, as if warnings were
present.

Instead, let the build fail and instead reschedule a clean build, which
will override the build status in Gitea.
2024-11-14 14:10:14 +01:00
Vantha 6582e7348e Fix the mouse event mask of the flare button
Update the reference in Minimap.xml to some name changes in
a1796ed71f.
2024-11-14 13:55:58 +01:00
Vantha a1796ed71f Enable observers to see and send flares
This patch gives observers the possibility to see and send flares.
Players keep their color after resigning and "true" observers flare in white.
Observers render all flares; the ones sent by any player or observer.
Player continue to only see their allies' flares.
The flare notification option is converted into a dropdown.
-> adding the possibility to only receive them as observer.
2024-11-14 11:58:15 +01:00
Stan 9e5e2708f4 Raise Loot.js and Looter.js' coverage to 100% 2024-11-13 23:19:56 +01:00
Stan d116d27327 Fix testing components with no Init method() 2024-11-13 23:19:56 +01:00
Stan ce588689ee Move Windows tool executables to win source libs. 2024-11-13 21:13:18 +01:00
Ralph Sennhauser 8d993b9250 Generate sources in workspace
Modify our cxxtest module so that it generates sources in the
configured build directory instead of the source tree. This simplifies
cleaning build output and .gitignore.

Make test_root.cpp a build target so it doesn't have to be generated on
each run. This means no more building and linking into test target
unless needed either. Unfortunately there is no source for test_root.cpp
and an update to cxxtest might require a manual make clean.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-13 19:16:33 +01:00
trompetin17 4e98704b71 fix Propagation mousewheel event in game
Propagation mousewheel event was introduce to have the opportunity to
parent handle this event if an only if the child doenst handle and the
parent set a handler for that event.
The error foundedd by elexis inside a game relay on the message waw
propagated outsie IGUIObjects to CGUI.cpp that shouldnt be at the
beggin. I forget to stop the propagation when all objects in the tree
was validated, because of that the message was propagate to CGUI.cpp
andd then hanle by camera.
the fix suggest to only propagate the event in the GUI tree, not outside
the GUI tree
2024-11-12 15:03:28 -05:00
trompetin17 73a3602475 Fix GUI Action on MouseWheel events
Now that we are propagating mousewheel events to parent we need to
explicitly mark that the event was handle in JS and shouldnt be handle
by parent.
this error was informed by Elexis
2024-11-12 15:01:44 -05:00
trompetin17 c843ee3c24 Scrollpanel: Structure Tree 2024-11-12 15:01:43 -05:00
trompetin17 8c250568e7 Add scrollpanel widget
This PR introduces a new ScrollPanel component with the following
capabilities:
- Scroll Orientation Support: Allows scrolling in horizontal, vertical,
  or both directions, providing flexibility for different use cases.
- Partial Object Rendering: Supports partial rendering of objects that
  are only partially visible within the scroll boundaries, improving
  visual accuracy and performance.
- Boundary-Constrained Mouse Interaction: Handles mouse events strictly
  within the panel's visible boundaries, preventing interaction with
  objects outside the scrollable area.
- Minimum Internal Size (min_width, min_height): Introduces support for
  virtual space management, allowing the panel to maintain a minimum
  internal size independent of its actual on-screen dimensions. Even
  when the panel is resized, this ensures that the content respects a
  defined virtual space (with min_width and min_height), effectively
  simulating a larger internal canvas. This is particularly useful for
  large content or scenarios where a more extensive scrollable area is
  required than the current visible panel.
2024-11-12 15:01:42 -05:00
phosit d98c93b35e Add missing await in option reset
Defect introduced in d655455304
Fix #7196
2024-11-12 18:14:23 +01:00
Ralph Sennhauser 1f60a9b22d Include system mozjs with -idirafter
Cherry-pick upstream patch adding support for -idirafter [1] which
allows us to work around the issue of some distributions bundling the
icu headers with spidermonkey resulting in a conflict.

Further add support to our premake pkgconfig module to allow using this
feature and make use of it for when building with --with-system-mozjs.

[1] premake-core baf145dc388509c953a01bcd964835e2027208bf

Fixes: #5868
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-11 20:04:10 +01:00
andy5995 80ac75749d Add --with-lto premake parameter
Co-authored by: Vladislav Belov <vladislavbelovdev@gmail.com>
Co-authored by: abian <wildfiregames@abian.casa>

Based on: https://code.wildfiregames.com/D4891
2024-11-11 20:01:26 +01:00
real_tabasco_sauce f5ed936a2f increase fish in naval maps 2024-11-11 14:44:55 +01:00
Heiko Becker 44e68ebedf Add myself to the programming credits 2024-11-11 11:20:39 +01:00
Heiko Becker 5643e90b19 Fix building with ICU >= 76
Since version 76 ICU wants to prevent overlinking [1] and icu-i18n
doesn't add icu-uc to the link interface anymore.

[1] https://github.com/unicode-org/icu/commit/199bc827021ffdb43b6579d68e5eecf54c7f6f56
2024-11-11 11:20:39 +01:00
Itms 58e16c2057 Move Windows CI to the new autobuilder
Make the new agent the default for Windows pipelines.

Refs #6977, which might be fixed in the new environment.
2024-11-11 09:49:29 +01:00
phosit 581f4af012 Allow the future request stop from the callback
In `Future` there is a notion of cancelation / stop-request. The task
callback doesn't have such a notion.
Some tasks (like the map-generation) are stopable. It did that in a
thread unsave way.

A task is canceled when the future is destroied or when `CancelOrWait`
is called on it.
2024-11-10 20:38:37 +01:00
Ralph Sennhauser 0d0010fe58 Fix non pch jenkins tests build on Windows
With pch enabled WIN32 gets defined for cxxtests xmlformatter.h but not
without resulting in a build failure ctime_r not found which was only
added with C23.

Explicitly define WIN32 for Windows target, to force the intended
code path.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-10 08:48:03 +01:00
Ralph Sennhauser 774bfaa4cb Remove premake sources
After 486509d5b9 we no longer use the
bundled sources, remove them.

Also remove the build.sh for building the bundled sources and update
.gitignore.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-10 07:38:35 +01:00
Vladislav Belov 9094c3adb0 Batches update and upload passes for model renderers. 2024-11-08 13:57:57 +01:00
trompetin17 6a630ced93 fixes the broken have_std in cxxtest 2024-11-07 14:48:31 -05:00
trompetin17 2daca3c81c Enables catching unhandled exceptions in test
If there any unhandle exception in any test code, the test app crash
instead of report and error in the test case.
2024-11-07 12:37:26 -05:00
Vladislav Belov 0a6703762d Removes hardcoded Vulkan uniform descriptor set ranges. 2024-11-06 23:24:22 +01:00
Vladislav Belov 3a01d852e2 Adds binding slot type to Vulkan shader program. 2024-11-06 19:09:22 +01:00
Ralph Sennhauser 50aae8763f Improve script generating glad headers
The script assumes glad got cloned into glad subdirectory. This is the
case if you follow the procedure outlined in the README, however if you
are using system glad or or glad installed via pip this assumption
doesn't hold.

Therefore relax the requirement on where to get glad from. While at it
add shell option errexit and make the script callable from repository root.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-06 16:35:57 +01:00
Vladislav Belov eecc5a8fea Updates the list of GL extensions for glad. 2024-11-03 20:35:28 +01:00
Vladislav Belov ff923e5d6a Adds a patch to automatically apply the macOS fix to glad after its generation. 2024-11-03 20:26:13 +01:00
Stan 1a216cb848 Fix compilation on other platforms after 67464ebbaa 2024-11-03 10:57:11 +01:00
Ralph Sennhauser 3ba61ed39e Improve cxxtest python compatibility
Use patch by Debian [1] replacing python in shebang with python3 and fixing
some warnings with recent python versions.

The reason being some use an alias of python for python3 instead of the
customary symlink. Aliases are only expanded in interactive shells
unless expansion is explicitly enabled.

[1] https://sources.debian.org/patches/cxxtest/4.4%2Bgit171022-2/python3.patch/

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-03 07:10:06 +01:00
Itms e7ed36cf16 Generate the nightly build from a clean state
Fixes #7126
2024-11-02 12:42:36 +01:00
Itms 0d294e7cbd Unbreak the nightly build
This moves the nightly build to a new Windows autobuilder running a
recent Windows Server version. In this new environment, the Jenkins
agent runs as a normal user connected through SSH. This fixes #7148.

Use the opportunity to use svn directly instead of Jenkins' scm step,
which hangs for 30 min.
2024-11-02 12:42:35 +01:00
Vladislav Belov 3c124ecd63 Removes vertex attribute name strings after aba7a170d9. 2024-11-01 20:08:06 +01:00
Stan 361a32a7e5 Fix parameter typo in GL backend 2024-11-01 13:30:12 +01:00
Stan 6d12d25348 Replace usage of OSString().c_str() by OSString
Fixes #6604
2024-10-28 16:35:49 +01:00
trompetin17 ff28ac36a6 Tooltip set like ghost
Tooltip shouldnt receive any mouse event direct, there is a edge case
when you have a big tooltip and the object that need that tooltip is in
the bottom left, at this moment tooltip is in the same position of the
mouse, current code was returning the tooltip, and the code hide the
tooltip, and find again there is another object that needs the tooltip
and show again. To fix this is just than simple to set a tooltip like
ghost because shouldnt receive any mouse event.
2024-10-27 17:18:42 -05:00
Stan 68d3aa1af9 Make PACKING_INTERVAL a static class member.
This allows mods to edit it and the coverage to work better.
See: https://github.com/StanleySweet/zeroad-coverage-generator/issues/1
2024-10-27 21:34:26 +01:00
Ralph Sennhauser 486509d5b9 Package and bump premake-core
Treat premake like any other dependency and package it separately, this
makes it much easier to bump it in future by making it easier to track
modifications if any.

Moving it to libraries as it is handled the same as other packages. An
argument could be made to have it in build due to it's special nature.
The issue with that approach would be how to handle clean-workspace.sh.
If we split it out we would need a separate clean-premake.sh script and
if we have it cleaned by clean-workspace we through away the download
and already built binary.

Also bump version to 5.0.0-beta2 and backport patch for macOS fix
instead of the Makefile changes. The same fix is needed for gcc-14
(reported upstream), so add a patch injecting unistd.h for Unixes.

Fixes: #6816
Fixes: #6632
Refs: #6847
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-26 20:18:56 +02:00
Cayleb-Ordo 19aca9fe74 docs: Improve Doxygen Visuals and Build process
- Switched to CMake for configuring and building the doxygen Website.
 - Set the minimum requirements to CMake >=3.18.4 and Doxygen >=1.9.1.
 - Rewrite the LICENSE.txt and docs README.txt to markdown.
 - Add the folder which is used in the README to gitignore.
 - Add a custom style to the doxygen website based on the docs webpage.
 - Update CI to use the new Doxygen Build process.

Closes #7052
2024-10-26 19:33:38 +02:00
Itms 75da070076 Generate technical docs from CI/CD
- Generate entity.rng as part of the nightly build, refs #6976.
 - Generate docs from a checkout of the nightly build.
 - Publish them to docs.wildfiregames.com.
2024-10-26 19:33:25 +02:00
Vladislav Belov 2b324fdd94 Avoids recalculating Vulkan pipeline state in case of the same desc. 2024-10-25 21:23:47 +02:00
Dunedan d9740858f7 Look up location of spirv-reflect only once
Instead of looking up the location of spirv-reflect for every shader,
this is now being done once and cached for all shaders. This results in
shader compilation being slightly faster.
2024-10-25 09:24:43 +02:00
Dunedan cdd2f3636a Use spirv-opt to strip debug info
Instead of compiling SPIR-V shaders twice, once with debug info and once
without, this uses `spirv-opt` to remove the debug info from the SPIR-V
shaders with debug info. This results in notable performance gains, as
stripping the debug info from existing shaders is much faster than
compiling them.

As a result of this change the contents of the non-debug shaders change
once. That's because shaders with debug info contain much more
instructions and therefore more result ids. Stripping the debug
info from shaders results in different result ids being used as when
generating ones without debug info. While that doesn't result in a
difference in the functionality of the shaders, it's a difference in
their binary representation, causing their content hashs and therefore
file names to change. After that one-time change the result ids are
reproducible again.
2024-10-25 08:26:54 +02:00
abian 1a05659c49 Moderate chicken upscaling and synchronize speed
Commit 4e9e950c8f increased the chicken
size by 1.5x, which made them noticeably larger than foxes and caused
their movement speed to fall out of sync.

This is a correction Langbart proposed on Phabricator after the commit
to moderate the chicken upscaling to 1.3x and adjust their speed for
better synchronization.

Authored-by: @Langbart
Original source: https://code.wildfiregames.com/rP27910#61427
2024-10-24 20:07:49 +02:00
Ralph Sennhauser a9241f4cc7 Use std::placeholders for json_spirit
"bind.hpp" was moved in boost-1.39. [1]

Placeholders were moved in boost 1.60. [2]

Since boost 1.73 placeholders defined in global namespace are
deprectared. [3]

Boost 1.76 added support for using std::placeholders with
boost::bind. [4]

This change uses the new, cough, location of the header and
std::placerholders for boost 1.76 plus to silence the deprecation
warning there.

Following commits are from https://github.com/boostorg/bind.git
[1] 8f507b9aeca643ca78e6a712b6d300720627c0ed
[2] db56733e4ed2125944b89e01cf36a9e451dd36f5
[3] 2797f0dc33caaae126a416bf613bd11267ba3353
[4] c85b31e3d200dda2a73cf0027a82c6d8e29066f8

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-24 19:53:23 +02:00
Ralph Sennhauser 7d6a0c695a Use gmake2 premake action
The gmake action is long deprecated and subject for removal in the
future. Switch to gmake2.

A major benefit is gmake2 is much better at parallelizing, and so on a
16 core I get a speed up of over a 30%.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-24 19:30:47 +02:00
Ralph Sennhauser 31365e7aed Adopt clean-source-libs.sh to split sources
After 26994b156b just removing the
libraries/source directory will delete files under version control
needed to build the packages.

Use git clean instead to get back to a clean slate.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-24 19:11:47 +02:00
abian 42052b69d9 Display phase emblems in the middle panel
This patch introduces phase emblems on both sides of the player's name
band in the middle panel. The emblems represent the current phase of
the selected player's civilization: I (Village), II (Town), III (City).
This information is also added to the associated tooltip and is
displayed only to mutual allies and observers.

Fixes #6849
See also: https://wildfiregames.com/forum/topic/107851-introduce-badge-to-indicate-the-phase-6849/
2024-10-24 11:32:28 +02:00
real_tabasco_sauce fe16b919fe add placement options for many maps 2024-10-23 18:37:35 +02:00
real_tabasco_sauce 2af77bb81d improve placement behavior for groupedLines and stronghold placement options 2024-10-23 18:37:35 +02:00
real_tabasco_sauce dd4ff374b7 increase minimum spacing in ambush so that there is always some mountains between players. 2024-10-23 18:37:35 +02:00
real_tabasco_sauce 95e7653d3a don't sort when using circle placement, let arrangement be determined by players in gamesetup 2024-10-23 18:37:35 +02:00
real_tabasco_sauce fedcd403db add getPlayerIDs() to avoid sorting when we just want the player IDs 2024-10-23 18:37:35 +02:00
real_tabasco_sauce 3e9e8496c3 radial -> circle, line-> groupedLines, add river option 2024-10-23 18:37:35 +02:00
real_tabasco_sauce 8d78e3165b Rename TeamPlacement -> PlayerPlacement 2024-10-23 18:37:35 +02:00
real_tabasco_sauce c6da1eb874 Make all garrison flags unselectable
This ensures that they do not enlarge building selection boxes.
fixes #7131
2024-10-23 17:02:22 +02:00
paczek654321 606d416343 Added myself (Paczek) to the programming credits. 2024-10-22 23:01:33 +02:00
paczek654321 55e948d68b Made the exposedFunctions variable a part of the GuiInterface object.
Fixes: #7079
2024-10-22 23:01:33 +02:00
phosit 8efa141cfd Fix ngorogoro by adding the paramenter name
This was forgotten in e01ea16ae5.
2024-10-21 21:09:56 +02:00
Dunedan 6eb9a3308a Define VkDescriptorType enum only once
Instead of redefining the VkDescriptorType enum for every shader, only
define it once. This avoids unnecessary computation and slightly
increases performance.
2024-10-21 09:02:38 +02:00
Vladislav Belov 5a5d518c28 Cleans up code after renaming HWLightingModelRenderer to CPUSkinnedModelRenderer. 2024-10-19 23:24:40 +02:00
Vladislav Belov 63faea7153 Renames HWLightingModelRenderer to CPUSkinnedModelRenderer. 2024-10-19 22:59:50 +02:00
Vladislav Belov 960b3180e5 Reduces code duplication for Vulkan pipeline state binding. 2024-10-19 19:58:03 +02:00
trompetin17 8ec41f3c5d Fix hotkey picker
Fixed a bug where hotkeys were not being reset properly, ensuring that
all hotkeys are now cleared when expected.

Corrected improper use of forEach with string character access,
replacing it with a valid iteration method over characters.

Removed unnecessary and dead code to improve code cleanliness and
maintainability.
2024-10-19 19:23:16 +02:00
wowgetoffyourcellphone 80c5ddb046 Add new Apollo statue and Colossus of Rhodes assets to the game 2024-10-19 17:30:58 +02:00
Vantha 64b1efddf4 Add chat notifications for flares
- Players now receive flare chat notifications mentioning the sender's name.
- Clicking the notification moves the camera to the flare's location.
- The feature can be toggled in the game options and is enabled by default.

Fixes #6212
2024-10-19 10:07:30 +02:00
Ralph Sennhauser c1cb6c5f9e Fix clang warning wrt rdynamic
"-rdynamic" is a linker flag. The gcc frontend gracefully ignores it but
not clang. Remove it from CXXFLAGS and only leave it in LDFLAGS.

Fixes: #5582

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-19 09:47:34 +02:00
Ralph Sennhauser 167cf9f18e Update Atlas help links
With the migration to gitea the links in the help menu of Atlas need to
be updated to point to the new locations.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-19 09:46:44 +02:00
Vladislav Belov 4f7f2e056c Fixes water foam texture size after scale. 2024-10-19 01:21:50 +02:00
Vladislav Belov 3eb1da6e5c Fixes incorrect Vulkan buffer usage enum name. 2024-10-19 00:13:50 +02:00
Vladislav Belov 5e4b3f84b6 Fixes Future usage in CCmpPathfinder after 0eed117e6d. 2024-10-18 22:46:08 +02:00
Ralph Sennhauser b1f0ebda41 Fix wxString to std::string conversion in Atlas
At least on Linux this resulted in the help menu in Atlas not being
populated. This fixes the issue.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-18 19:30:26 +02:00
Ralph Sennhauser 7e22cbf28f Add missing headers to tests
Fixes no-pch build.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-18 17:27:48 +02:00
Dunedan 20cef3bce0 Fix compiling SPIR-V shaders on Windows
b2cdb1e6b4 broke compiling of SPIR-V shaders on Windows, as the output
of `spirv-reflect` contains CRLF as line separators there. This commit
fixes that.
2024-10-18 16:50:31 +02:00
phosit 526072e94a Make progressDialog return a promise
This way the continuation hasn't to be passed as argument.
2024-10-17 20:47:54 +02:00
phosit 36b9fd7b42 Return a promise from setButtonCaptionsAndVisibility
Now It's not hardcoded what is done if a button is pressed. The caller
can decide that.
Previously one had to call this function and then overwrite the on Press
attribute of each button.

Rename "Visibitily" to "Visibility" in setButtonCaptionsAndVisibility.
2024-10-17 20:47:54 +02:00
Dunedan 0bbd2ad7dd Improve linting of PO files
During the mogration to git e9d1cb6cc7 removed the
`lint-translations.sh` script which was used together with
`check_translations.py` to lint POT- and PO-files. By doing so it
removed a valuable option to find problems in translations.

This commit undos that by merging the functionality of the removed
`lint-translations.sh` and `check_translations.py` into the latter
one. The new logic is easier to maintain, produces less false-positives
and has some unit test coverage.
2024-10-17 19:23:50 +02:00
Dunedan b2cdb1e6b4 Improve YAML loading performance using libyaml
This adds optional support for loading the YAML reflection data using
`libyaml`, which is faster than PyYAML's pure Python implementation.
2024-10-17 17:52:08 +02:00
Dunedan 92df50f36c Improve formatting for SPIR-V tools README 2024-10-17 17:51:56 +02:00
Dunedan 8e6cac8744 Deduplicate SPIR-V shaders across programs
This drops the program name from the SPIR-V shader file name, which
allows deduplicating shaders belonging to different programs. While that
has no significant impact on compilation performance it reduces the
number of required SPIR-V shaders.

One downside this has it that it's not directly visible from the file
name of a shader anymore to which program it belongs.
2024-10-17 17:02:22 +02:00
wowgetoffyourcellphone 15f4ab2d9b Flip the Green Channel of some prop normal maps
Even though the game renders in OpenGL, our normal maps should use DirectX orientation.
2024-10-17 01:53:28 +02:00
Vantha 3e4238876f Rearranging some options
The category 'Game Session' didn't have any more space for upcoming new
entries.

Changes:
-Split 'Game Session' into 'Display', 'Chat & Notifications', and
'Gameplay'.
-Move some options out of 'General'.
-Updated the option categories' and some individual options' tooltips.
2024-10-16 14:19:09 +02:00
Ralph Sennhauser 9657babbbe Add python-is-python3 to Debian CI
For the sake of vendored cxxtest. Distributions are advised to use
system cxxtest anyways.

From the package description:
This is a convenience package which ships a symlink to point the
/usr/bin/python interpreter at the current default python3. It may
improve compatibility with other modern systems, whilst breaking some
obsolete or 3rd-party software.

As this is a Debian Buster based CI and the package is only available
from Debian Bullseye forward do the symlinking manually instead.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-13 18:27:18 +02:00
Ralph Sennhauser 28a9692893 Allow system cxxtest
Add option to build-source-libs and premake to uses system provided
cxxtest.

Closes: #5792

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-13 18:27:18 +02:00
Ralph Sennhauser 4f93ddf47e Use upstream tarball for cxxtest
Update source build.sh to use upstream tarball and drop any custom
patches at the same time.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-13 18:27:18 +02:00
Ralph Sennhauser f3b26cadc4 Use vanilla cxxtest functionallity
To disable tests we carry a patch which allows disabling test by
appending DISABLED to the test function name. Instead just do as
upstream says and prepend the test function so it won't be recognized as
a test any longer.

The docs suggest to prepend x but anything will do. Continue to use
DISABLED_ but as prefix which is actually already in use in one case.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-13 18:27:18 +02:00
Ralph Sennhauser b5d08a4833 Use XWayland for Atlas if needed
GlCanvas currently doesn't support runtime selection of GDK backend [1].

Therefore to run Atlas under Wayland wxWidgets needs to be built with
GLCANVAS_EGL which is usually not the case to support X11 at the same
time.

Check if the EGL backend is available and if not and running under
Wayland force use of XWayland with the GLX backend.

[1] https://github.com/wxWidgets/wxWidgets/issues/22325

Closes: #6939
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-10-09 06:28:56 +02:00
Vladislav Belov 0716d23aa4 Fixes notes. 2024-10-08 23:07:18 +02:00
Vladislav Belov 03792bd809 Adds a hack to detect missing SPIR-V mod. 2024-10-08 23:07:17 +02:00
phosit 0eed117e6d Catch exceptions from tasks
It's now possible te get an exception from a function in a task.
The interface is like std::future: if you call .Get() you will get the
result (as before) or the exception will be thrown.
2024-10-08 20:05:44 +02:00
Stan bd5f8392be Make CMatrix3D::operator*= behave as expected. 2024-10-08 16:04:22 +02:00
Stan 09e42692bb Fix GLES 2.0 build after the compute shader addition 2024-10-08 08:13:33 +02:00
phosit f9ad0c1df4 Allow selecting a TeamPlacement in Atlas 2024-10-06 19:37:39 +02:00
Dunedan c4047b1cf2 Parallelize generation of SPIR-V shaders
For each program this parallelizes the generation of shaders by program
combinations. This leads to significantly faster shader generation on
systems with multiple CPU-cores. The resulting shaders are identical to
the ones prior to this change.
2024-10-05 07:29:43 +02:00
Dunedan c101984445 Make SPIR-V file names reproducible
This ensures the file names of SPIR-V program combinations and shaders
are reproducible. Up to now they only were if the order of program
combinations in the rules.json didn't change, as the file names
contained the position of the program combination in the rules.json.
With this change files names of program combinations will be named based
on the details of the combination used to create them and the file names
of shaders will be based on their content respectively.

Changing the file names avoids wrong shaders when partially rebuilding
them after a new combination for a program got added in between the
other combinations in rules.json and removes the need for keeping track
of identical shaders in the script. It's also a preparation for being
able to build shaders in parallel, while also keeping the result
reproducible.
2024-10-01 16:58:03 +02:00
Vantha eb3f0f4cc1 Fix translation of tips
The tip text files were moved to a new location in 38b71c1bac.
This patch updates the translation extractor accordingly.
2024-09-30 17:03:51 +02:00
Stan 2b415bf1cb Add badges to the readme 2024-09-30 13:36:58 +02:00
Vantha 6f2c69760b Clean up tip image files to prevent libpng warnings 2024-09-30 06:22:47 +02:00
Vantha 38b71c1bac Add a Tips and Tricks page containing the loading screen tips
- Small popup page accessible from the main menu via Learn to Play.
- Lets the player read through the tips with 'Previous' and 'Next' buttons.
- Tips continue to be shown on the loading screen.
-> but there without the scrolling ability.

- Added two new hotkeys for quicker tip changing (item.prev and item.next)
-> set to the left and right arrows respectively by default.

- Responsible scripts are placed in gui/reference/tips/.
- The tip text files have been moved to gui/reference/tips/texts/.
- Tip image files have been moved to art/textures/ui/tips/.

- Added a series of new sprites (textures in art/textures/ui/tipdisplay/)
-> comprises a title decoration, a bullet point sprite, and a new button
style.
2024-09-30 06:22:47 +02:00
Itms 1c12ada278 Remove unused typedef in json_spirit
This fixes -Wunused-local-typedef with macOS's clang10.
2024-09-28 21:55:30 +02:00
Itms b19dbb9bdb Remove unused variables
This fixes -Wunused-but-set-variable with FreeBSD's clang17.
2024-09-28 21:55:30 +02:00
Itms 35e0a98940 Avoid a copy in a range-for-loop
This fixes -Wrange-loop-construct with FreeBSD's clang17.
2024-09-28 21:55:30 +02:00
Itms 8e90103569 Use lambda capture in tests
This fixes -Wunused-lambda-capture with FreeBSD's clang17.
2024-09-28 21:55:30 +02:00
Itms b2ab747c8a Mark class with final dtor as final in tests
This fixes -Wfinal-dtor-non-final-class with FreeBSD's clang17.
2024-09-28 21:55:30 +02:00
Itms ad3537c414 Revert 1e504cd64c which used a deprecated API
The fix doesn't seem needed anymore on supported versions of macOS,
refs #1554.
2024-09-28 21:55:30 +02:00
Itms 3dfc7c57e0 Explicitly default copy ctors for some classes
This fixes -Wdeprecated-copy with FreeBSD's clang17.

This commit reverts a change from 8a32b0b3d4, where a private copy
assignment operator was deleted, whereas it was needed to explicitly
declare the copy constructor, refs #5294.
2024-09-28 21:55:30 +02:00
Itms ac3e8f34c3 Ignore LNK4221 in Windows builds 2024-09-28 21:55:30 +02:00
phosit a0a4ca56a5 Remove setSelectedBiome
Since Atlas now supports biomes, defaulting the biome isn't required
anymore.
2024-09-26 19:47:36 +02:00
phosit ac54096bb2 Allow selecting a biome in Atlas
Original patch by: lyv
2024-09-26 19:47:36 +02:00
Stan 67464ebbaa Fix the CPU name detection on AARCH64 macOS 2024-09-25 23:34:43 +02:00
Itms 86a4092e55 Remove platform-dependant atomic operations 2024-09-25 21:57:15 +02:00
Itms e7434e1770 Use std::atomic instead of platform-dependant code
This covers atomic add operations and atomic compare-and-switch
operations.
2024-09-25 21:57:15 +02:00
Itms 9db8e792b6 Replace custom atomic_bool with std::atomic<bool> 2024-09-25 21:57:15 +02:00
Itms e401b206d0 Remove TIMER_ACCRUE_ATOMIC
Added in aa44bac652, the "atomic" accumulated timer is based on a
structure that mixes atomic and non-atomic access, which is not fit to
be converted to std::atomic.

Additionally, it is only used in a single situation where benchmarking
is not essential to us.
2024-09-25 21:57:15 +02:00
Itms 944994b21e Do not use atomic CAS in VfsDirectory
The compare-and-switch operation in this situation does not need to be
atomic.

This class must be copyable, so the CAS'd flag cannot be adapted to use
std::atomic.
2024-09-25 21:57:15 +02:00
phosit a84b5a61ed Adopt generator based interface by mapgen tests
This put the tests more in line with actual mapgen scripts.
2024-09-25 20:15:43 +02:00
abian c5eab43423 Disable cutoff distance option when cover whole map is ON
Gray out the "Cutoff distance" slider on the "Graphics (advanced)" tab
of the game settings screen when this distance is ignored because the
"Cover whole map" configuration option is ON.
2024-09-24 20:39:57 +02:00
Ralph Sennhauser 288d5002f3 Add support for vendored spirv-reflect
This allows build-archives.sh to fall back to vendored spirv-reflect if
it can't be found in PATH.

Also update error messages to suggest additional alternatives.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
Ralph Sennhauser 39f3fa7d5b Package spirv-reflect for building shaders
Usually not available in Linux Distributions as it isn't customary to
package the SDK but only the bits needed as separate packages.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
Ralph Sennhauser cf909a81db Add support for vendored spirv-reflect to compile.py
The script build-archive.sh sets a variable SPIRV_REFLECT, even respects
it if it's set in env but without support from the compile.py script for
it there isn't much point.

This commit adds support SPIRV_REFLECT in compile.py and and adds a
fallback to use vendored spirv-reflect for when the envvar is unset and
the tool can't be found in PATH

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
Ralph Sennhauser f0d99f8f54 Add output of build-archives to gitignore
build-archives.sh generates output in archives, add it as well as the
rules files for spirv shaders which might be fetched during build to
gitignore.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
Ralph Sennhauser 9770391bc4 Make failure messages visible for build-archives
Due to "set -e" the script terminates when the required tools aren't
found and the arguably helpful messages later on won't be printed.

Make the initial check for tools non fatal and allow for the later check
to take care of missing tools.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
Ralph Sennhauser eb328fc2df Allow building archives without translations
Currently you have to fetch translations first so they can be filtered
by build-archives.sh without the script failing.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-24 18:45:22 +02:00
abian 7e91f70e02 Add some more AI names
A total of 16 possible AI names are added to four civilizations.

Athenians: Callias, Chabrias, Conon, Ephialtes, Nicias, Phocion, and
Pisistratus

Britons: Cassivellaunus, Imanuentius, and Mandubracius

Iberians: Litennon

Spartans: Anaxandridas, Cleomenes, Eurybiades, Gylippus, and
Leotychidas

The lists are sorted alphabetically.
2024-09-24 17:30:56 +02:00
Stanislas Daniel Claude Dolcini 9c72741e69 Fix x86_64 cross-compilation on macOS 2024-09-22 16:16:40 +02:00
Dunedan 660dd63792 Delete existing SPIR-V shaders before regeneration
As compile.py only creates shaders for program combinations which don't
have already existing shaders on disk, this removes all SPIR-V shaders
prior to rebuilding them to ensure they actually do get recreated.
2024-09-22 10:49:46 +02:00
Dunedan 57308bb847 Avoid unnecessary computations
This refactors the script for cleaning the translations to get the
same result by doing less. This is achieved by the following changes:

- Use glob-patterns for finding the files to clean more efficiently,
  without the need to exclude collected files again.
- Only write files which are supposed to be modified (previously all
  portable object files did get rewritten by this script, no matter if
  it did change something or not).
- Stop searching for sections in files to clean up, once they are
  already passed.
2024-09-22 07:59:07 +02:00
Dunedan c59030857d Rebuild SPIR-V shaders when compile script changes 2024-09-22 06:28:58 +02:00
Dunedan 8d70ced693 Add myself as code owner for ruff.toml 2024-09-21 20:54:32 +02:00
Dunedan 0ea6d32fa5 Enable various ruff rules
This commit enables a bunch of unrelated ruff rules, which only require
minimal changes to the code base to enable them.

The rules enabled by this commit are:

- check the use of datetime objects without timezone (DTZ005)
- check the performance of try-except in loops (PERF203)
- check the number of function arguments (PLR0913)
- check for mutable class defaults (RUF012)
- check for the use of secure hashing algorithms (S324)
- check for raising base exceptions (TRY002)
- check for raising other exceptions where TypeErrors should be raised
  (TRY004)
2024-09-21 20:54:30 +02:00
Dunedan c0232c6b5f Specify the Python target version in ruff.toml
This ensures the same Python target version used for `ruff format`
is used for `ruff check` as well. It also allows ruff, even if it's not
run through pre-commit, to use the correct target Python version.
2024-09-21 20:54:24 +02:00
Dunedan 265ed76131 Simplify check for identical shaders
Previously when checking if two SPIR-V shaders are identical the
hashs of their file content would be compared and afterwards their
(unhashed) file contents as well. Comparing the file contents isn't
necessary, as the hash function used is a cryptographic one, which
guarantees the hash can be used as a representative of the hashed data.
2024-09-21 20:39:59 +02:00
abian 668ae8a20e Increase height of middle panel to prevent icon overflow
The icon/portrait of the middle panel when a single entity was selected
was very subtly (4 px) overflowing its lane and invading that of the
entity's name. This change fixes that by:

 - Raising the top of the middle panel by 4 px to leave room for the
   portrait/icon. This avoids having to shrink it and lose quality.

 - Distributing the 4 px of difference in height in the statistics area
   by lowering 1 px the top bar, 1 px the middle bar (if any), and 3 px
   the bottom bar (if any). The rest of the elements are lowered 4 px,
   and therefore remain in the same place.

 - Increasing the height of the minimap panel by 4 px so that it remains
   aligned with the middle panel, vertically centering the minimap, and
   making the necessary adjustments to the position of its buttons.

Additionally, a couple of minor changes are applied:

 - The separators between the statistics area and the attack/resistance
   and resources area, and between the attack/resistance and resources
   area and the entity name area, which had different heights, are set
   to the same height/thickness.

 - The attack/resistance icon, which was very close to the entity
   icon/portrait, is moved 1 px to the right, and the
   resourceCarryingText (in the same area), which was very far from the
   resourceCarryingIcon, is also moved 3 px to the right.

Fixes #7029
2024-09-18 13:38:05 +02:00
abian b15eb6909e Remove unnecessary comments in selection_details.js
Related: #7012
2024-09-18 06:46:51 +02:00
abian 798cff1f6f Left-click the portrait to follow the entity
- Left-clicking the portrait of a unit will make the camera follow that
   unit (before: no action). A tooltip informs the player of this
   possibility.

 - Left-clicking the portrait of a structure will make the camera focus on
   that structure (before: no action). A tooltip informs the player of
   this possibility.

 - Double-clicking a hero/treasure icon will make the camera follow that
   hero/treasure (before: just focus on that hero/treasure).

 - Some minor related changes.

Fixes #6879
2024-09-18 06:46:51 +02:00
Dunedan 230c7ca27d Add EditorConfig options for Python
While the desired options for indent size and style are Python's
defaults, let's make it explicit by specifying it in the EditorConfig.

As part of this, this also removes unnecessary inline formatting options
for Python files.
2024-09-17 11:03:15 +02:00
Dunedan e56ebb3f46 Enable ruff naming rules 2024-09-13 11:04:07 +02:00
Dunedan cd8b4266a4 Fix class name in xmlvalidator 2024-09-13 11:04:06 +02:00
Dunedan 8c7cc7373d Fix variable names in SPIRV compile.py 2024-09-13 11:04:06 +02:00
Dunedan 0d3e3fbc29 Rename simple-example.py 2024-09-13 11:04:05 +02:00
Dunedan 661328ab15 Fix variable naming for map compatibility file 2024-09-13 11:04:05 +02:00
Dunedan 616f2e134b Fix variable names in checkrefs.py 2024-09-13 11:04:04 +02:00
Dunedan ea4b580527 Simplify JSON parsing 2024-09-11 17:52:10 +02:00
Dunedan 0e84957979 Simplify XML parsing by iterating only once
This simplifies the XML parsing, by iterating over the DOM tree only
once. Curiously this doesn't result in significant performance gains.

As the keywords are now found in the order they appear in the
document instead of the order they are mentioned in messages.json, the
order of a few strings in the PO-templates changes caused by the changes
in this commit.
2024-09-11 17:52:10 +02:00
Dunedan eeb502c115 Simplify code by making use of early returns 2024-09-11 17:52:10 +02:00
Dunedan f4c40b740c Remove unnecessary extractors package
This simplifies the code structure, by removing the extractors package,
which only contained a single module, the extractors module. This module
is now located in the i18n_helper package.
2024-09-11 17:52:09 +02:00
Dunedan 20ab96a0f4 Make some attribute names PEP 8 compatible 2024-09-11 17:52:09 +02:00
Dunedan ac48b72550 Move imports to the top of the file 2024-09-11 17:52:09 +02:00
Dunedan 4d3be23bac Remove broken and unused ini-file extractor
The ini-file extractor has been broken since the transition to Python 3
and nobody noticed, because it isn't used nowadays. Therefore, let's
remove it.
2024-09-11 17:52:09 +02:00
Dunedan f856a7663f Add a cache for mask patterns
This increases the performance of updating the PO-templates
significantly by adding a cache for the building of mask patterns. In
non-representative tests it increased the performance of updating the
PO-templates by >25%.
2024-09-11 17:52:09 +02:00
Dunedan 7575dfe3c8 Remove unnecessary use of codecs module 2024-09-11 17:52:08 +02:00
Dunedan e86fd58524 Simplify and speed up finding of messages.json 2024-09-11 17:51:58 +02:00
Dunedan 04aa01a39b Speed up fetching of translations from Transifex
This increases the number of workers to use when fetching translations
from Transifex from 5 (the default) to 12. While the Transifex CLI
allows up to 20 workers, using more workers results in frequent request
throttling, which hurts performance more than it improves it.
2024-09-10 07:34:48 +02:00
Dunedan ccb1d747f0 Use PEP 8 naming conventions for templatesanalyzer 2024-09-10 07:29:33 +02:00
Stan 5bea0a0f97 Add the large address aware flag to the nightly build. 2024-09-09 11:46:31 +03:00
Ralph Sennhauser 26994b156b Split source package downloads
Instead of fetching the whole svn repo containing all current
dependencies into source, fetch them individually into subdirectories of
source.

Adds a wrapper script to each package to place the build output where
it's currently expected.

This allows adding and removing dependencies as well as changing origin
of those packages on a case by case basis.

It's recommended to run "git clean -dxf libraries/source" to free up
extra space and remove untracked files no longer covered by changes in
.gitignore.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 22:17:08 +02:00
Ralph Sennhauser 2b5ecd02a7 build-source-libs.sh: drop Perl dependency
Instead of using Perl to get the absolute path due to readlink -f
implementations differing behaviour use realpath. Since the inclusion
into coreutils this should be a valid alternative.

Also check for [[:space:]] instead of only \s as if that one is an issue
the others are as well.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 17:51:16 +02:00
Ralph Sennhauser bf82871ca8 build-source-libs.sh: remove --source-libs-dir
During the migration it apparently looked possibly useful at some point,
in the end it remained unused.

Further the clean-source-libs.sh doesn't handle the case where
build-source-libs.sh was invoked with --source-libs-dir.

Finally, when switching to support individual package this becomes very
complex to support.

For all the above reason remove the option.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 17:51:16 +02:00
Itms 33134af6c3 Stop using the source-libs repository on Windows
All prebuilt files for Windows libraries are now stored in the
windows-libs SVN repository for the foreseeable future.
2024-09-08 17:51:15 +02:00
Ralph Sennhauser 966d859050 Add yamllint to pre-commit
Adding a hook to pre-commit to enforce a consistent style and remove the
hook check-yaml which only checks if a document is parsable and so
become redundant.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 13:08:11 +02:00
Ralph Sennhauser 87f667732c Format yaml files
The schema at https://json.schemastore.org/gitea-issue-forms.json
doesn't like empty titles, so just remove the key to the same effect as
a zero length string.

Add document start markers where they are missing.

Use a max line length of 100 as discussed with Dunedan.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-08 13:08:11 +02:00
Dunedan 10e7513bba Revert changes in check_diff.py in batches
This is to avoid running into errors caused by the limited length of
command line input when reverting lots of files.
2024-09-08 11:39:08 +02:00
abian fce48ca4be Include names of unit actions before descriptions in tooltips
Respecting the format of the tooltips of the other panels, include
a short name in bold on the first line of the tooltip to facilitate
a quick understanding of the action, and below, in normal font, a
description with relevant details.

The description of the patrol action is rewritten to make it more
understandable.

Fixes #7016
2024-09-08 10:25:59 +02:00
Itms 34a209b680 Update glad to 2.0.7
Release: https://github.com/Dav1dde/glad/releases/tag/v2.0.7
2024-09-08 09:31:14 +02:00
Itms 0f87124b98 Some glad improvements
- Silence a MSVC warning in vulkan.cpp, refs #6987
- Document the patching of gl.h for macOS, from r26094
- Fix shellcheck warnings in the generation script
2024-09-08 09:26:46 +02:00
Itms 35d998694f Move glad from source-libs to source/third_party
Improve definition of the gladwrapper project in premake.
2024-09-08 09:18:45 +02:00
Vantha 09f55a1afc Revising the loading screen tips and adding new ones 2024-09-06 14:53:35 +02:00
Ralph Sennhauser afa9f212f4 Add yaml setting to editorconfig
Currently all files adhere to the same formatting, let's codify it so it
stays like this in the future.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-04 19:45:50 +02:00
Itms 8d0af4b184 Unify Windows scripts for getting nightly binaries
The new script merges existing scripts for downloading translations and
SPIR-V shaders, and also exports game binaries from the latest nightly
build into the git repo.

This allows contributors, especially artists, to obtain a working build
of the game without learning how to build the game for Windows, refs #1814.
2024-09-04 17:20:50 +02:00
Dunedan eb499b4c5c Fix a regression introduced with 4a049c5f3a 2024-09-04 15:03:21 +02:00
Dunedan 19e7d14506 Use PEP 8 naming conventions for fontbuilder2 2024-09-03 14:01:47 +02:00
Dunedan 4a049c5f3a Use PEP 8 naming conventions for i18n tools 2024-09-03 13:51:27 +02:00
Dunedan 80f808df4a Markdown format for fontbuilder2 README
The fontbuilder2 README file was already partially formatted with
Markdown, but didn't indicate that via its file extension. This commit
changes that and improves the formatting of the README itself.
2024-09-03 13:39:28 +02:00
Stan 9fd05e38a4 Update libraries to fix some build errors on recent macOS.
Fixes #6797
Fixes #6902
Refs #6915
Fixes #6916
Refs #4362
2024-09-03 11:17:12 +02:00
Itms f7630b155c Do not hardcode JOBS in CI pipelines
This build environment variable is now set agent-wide and corresponds to
the number of CPUs of each agent.
2024-09-02 21:47:08 +02:00
Itms 670f68c1c5 Fix remnant from old Jenkins configuration 2024-09-02 21:47:08 +02:00
Ralph Sennhauser f87dfebc71 build-macos-libs.sh: move to posix shell
This removes the remaining bashisms and changes the shebang.

Also remove command chaining in subshells as this allows for comments
to go where they belong and shellcheck directives to be more specific.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-09-02 15:37:44 +02:00
Itms 79127ec59d Automatically try to unbreak CI incremental builds
This entirely reverts ee3318309b and removes the [CLEANBUILD] feature,
which needed to be used without omission to be efficient.

Instead, in case of build failure, the CI automatically starts a
non-incremental second build by running `make clean` (or the MSBuild
equivalent) before retrying the build.
2024-09-01 13:29:17 +02:00
Dunedan bcf97b608b Enable ruff rules for docstrings and comments
This enables some ruff rules for docstrings and comments. The idea is to
not enforce the presence of docstrings, but to ensure they are properly
formatted if they're present.

For comments this adds checks that they don't contain code and verify
the formatting of comments with "TODO" tags.

As part of this, some commented out code which hasn't been touch in the
past 10 years gets removed as well.

The rules enabled enabled by this are:

- check formatting of existing docstrings (D200-)
- check comments for code (ERA)
- check formatting of TODO tags (TD001, TD004-)
2024-08-31 21:09:20 +02:00
Dunedan 91ab55d6ea Convert license_dbghelp.txt to UTF-8 2024-08-31 17:04:05 +02:00
Ralph Sennhauser 9ac60514c3 build-macos-libs.sh: partial move to posix shell
Change all non posix constructs except for stacked pushd/popd for the
sake of reviewability.

The reminder will be done in a separate commit.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-30 18:36:09 +02:00
Ralph Sennhauser 3564512a63 android/setup-libs.sh: move to posix shell
Convert various non posix consturcts and change shebang to /bin/sh

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-29 12:55:48 +02:00
Ralph Sennhauser 2634f8762e build-unix-win32.sh: move to posix shell
Convert non posix shell constructs and change shebang to /bin/sh

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-29 12:55:26 +02:00
Ralph Sennhauser 1c4a32baa4 build-archives.sh: move to posix shell
Convert various no posix constructs and change the shebang to /bin/sh.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-29 12:55:26 +02:00
Ralph Sennhauser 8ed1a0cb5a templatessorter.sh: move to posix shell
This one is already clean, so just change the shebang

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-29 12:55:26 +02:00
Dunedan f2bef8388a Use UTF-8 as encoding when working with files
This explicitly uses UTF-8 encoding when reading or writing files with
Python. This is necessary as the default locale varies between
operating systems.
2024-08-29 07:22:46 +02:00
Dunedan c3b99feb60 Enable ruff rules for code simplification
This enables ruff rules which check for code which can be simplified to
improve readability.

The additionally rules getting enabled by this are:

- remove unnecessary nesting of if-statements (SIM102)
- use contextlib.suppress() for no-op exception handling (SIM105)
- use enumerate() for counting in loops (SIM113)
- use context managers for opening files (SIM115)
2024-08-29 07:00:43 +02:00
Stan 028ec40165 Add a RC file to add metadata to the pyrogenesis executable 2024-08-28 23:37:36 +02:00
Ralph Sennhauser 631f7b292e Add pre-commit hook for shellcheck
Using shellcheck-py[1] instead of the official shellcheck-precommit[2]
to avoid a dependency on docker.

[1] https://github.com/shellcheck-py/shellcheck-py
[2] https://github.com/koalaman/shellcheck-precommit

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-28 18:23:18 +02:00
Ralph Sennhauser 6f5ac7c4ae Fix issues pointed out by shellcheck
Some are real bugs, some are bashisms, but most is zealous quoting of
variables.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-28 18:23:18 +02:00
Dunedan 0feeb5884a Cache Python dependencies in pre-commit workflow
This should speed up installation of pre-commit as part of the Gitea
Action a bit, as it caches the Python packages required for it.

The cache functionality of actions/setup-python is unsuitable for this
use case, as we don't have a file with requirements we want to use as
key. Instead, we just want to cache whatever is downloaded via pip from
PyPI and keep it for further invocations. This commit achieves that by
using the same cache key for every workflow run. The cache is being
updated even if pre-commit fails so we always keep the the Python
packages used for installing pre-commit cached.
2024-08-28 07:42:08 +02:00
Itms 97e6691c76 Fix Atlas in the nightly build
The Windows autobuilder contains two built versions of wxWidgets. One
corresponds to the oldest supported version of the library, and is used
for CI. However, the nightly build should use a recent version of the
library, compiled with the same toolset as the main game.

This commit adapts the nightly-build pipeline to use the rebuilt recent
copy of wxWidgets.
2024-08-27 21:38:37 +02:00
Dunedan ea647067f0 Enable ruff rules to check for ambiguous code
This enables some ruff rules to check for ambiguous and dead Python
code, which might cause unintended side-effects.

The enabled rules are:

- a bunch of rules related to shadowing of builtin structures (A)
- a bunch of rules checking for unused arguments (ARG)
- a rule checking for useless expressions (B018)
- a rule checking for unbound loop variables (B023)
- a rule checking redefined function parameters (PLR1704)
2024-08-27 19:28:11 +02:00
Itms ee3318309b Allow to force non-incremental Jenkins builds
In all the builds using precompiled headers, an update to libraries will
crash the CI, as those headers will become outdated. It is then
necessary to force a full rebuild of the game by cleaning up the
workspaces.

This commit allows this CI behavior to be triggered by specifying
[CLEANBUILD] in the first line of the commit message.
This will constitute an opportunity to inform users that they need to
clean their workspaces when pulling the update.
2024-08-27 17:13:49 +02:00
Itms 2a67c9a503 Abort previous builds in pull requests
This will save precious build time by stopping the build of obsolete
commits.
2024-08-27 14:39:19 +02:00
Dunedan f8ac0e4f68 Run checkrefs.py as Gitea Actions workflow 2024-08-27 13:33:21 +02:00
Ralph Sennhauser 183a0b13f3 Add .already-built for premake to .gitignore
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-27 12:55:17 +02:00
Itms 13da3457bc Delete wrongly committed file from abdda50892 2024-08-27 12:46:33 +02:00
Dunedan ae3fad73ce Add a markdownlint pre-commit hook
This adds a pre-commit hook to link Markdown files and fixes all
reported findings.
2024-08-27 10:06:31 +02:00
Ralph Sennhauser af6cda9073 Add shfmt to .pre-commit-config
Run shfmt as part of the ci workflow.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-26 09:03:00 +02:00
Ralph Sennhauser a04a5f70c7 Add global .editorconfig
This sets some reasonable defaults for all files.

Adds settings for *.sh files, doubles as configuration for shfmt.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-26 09:03:00 +02:00
Ralph Sennhauser abdda50892 Format shell scripts using shfmt
This updates shell scripts to use a consistent style that can be enforced
via pre-commit hook.

As for choosing tabs over spaces, some arguments are:

- tabs can help people with visual impairment
- tabs allow for indenting heredocs in bash
- tabs are the default for the tool shfmt

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-26 09:03:00 +02:00
Dunedan c763c010b8 Add a bunch of additional pre-commit hooks 2024-08-26 07:46:41 +02:00
Dunedan 1800b5f1c0 Add executable bits for files with shebangs 2024-08-26 07:46:38 +02:00
Dunedan f58dc9b485 Remove unnecessary executable bits
This removes the executable bits from files which aren't supposed to
have them.

Also removes shebangs for files which aren't supposed to be executable.
2024-08-26 07:46:34 +02:00
Dunedan 05e708f987 Refactor check_* functions for better readability 2024-08-25 21:24:00 +02:00
Dunedan 75949e1f5a Replace use of os.path with pathlib 2024-08-25 21:24:00 +02:00
Dunedan 4b77d7bb74 Compile regex pattern once
This should slightly increase the performance as the pattern has to be
only compiled once, instead of so during every loop iteration.
2024-08-25 21:24:00 +02:00
Dunedan 87029f2a91 Replace uses of re.split() with str.split() 2024-08-25 21:23:59 +02:00
Dunedan 24e67746f9 Log a warning when a specified mod can't be found 2024-08-25 21:23:59 +02:00
Dunedan 92d92fac1b Remove unnecessary default value for dict.get() 2024-08-25 21:23:59 +02:00
Dunedan 0dea22285e Fix the exit codes of checkrefs.py 2024-08-25 21:23:59 +02:00
Dunedan 39f2889cf7 Support calling checkrefs.py from other dirs 2024-08-25 21:23:59 +02:00
phosit f22d0d899e Add final to classes introduced in f9114a87f2
A class which can not be derived from should tell that in the
declaration.
2024-08-25 13:38:09 +02:00
phosit 62c0080e1b Don't use std::shared_ptr in CStrIntern
Now there is less allocation and reference counting.
2024-08-25 11:58:22 +02:00
Itms 45984c905b Fix get-nightly scripts on Unix
A wrong syntax was used in for loops.
2024-08-25 10:12:21 +02:00
Dunedan e36c6a31fe Enable additional ruff rules
In the ruff config file added in #6954 explicitly selecting the ruff
rules to check was missed, resulting in ruff only checking a very small
subset of its available rules. That hasn't been desired, so this is the
first of a series of commits enabling more rules. In this PR all rules
whose violations can be either automatically fixed by ruff or are
trivial to fix manually get enabled. For the follow up PRs it's intended
to focus on one area of rules per PR to gradually improve the Python
code quality.
2024-08-25 06:29:39 +02:00
Dunedan 0ba8ea3429 Update CODEOWNERS
This updates CODEOWNERS to remove owners for the lobby bot code, which
isn't included in this repository anymore. It also adds me for some
areas where I can help with PR reviews.
2024-08-24 13:48:43 +02:00
Dunedan 1f51fcb87f Add hook for non-breaking space in 0 A.D.
This replaces the existing arclint linter to ensure the project name
does only include a non-breaking space with a pre-commit hook. The regex
to check is slightly different to account for escaped non-breaking
spaces in JavaScript files and to avoid some false-positives.
2024-08-24 13:08:42 +02:00
Ralph Sennhauser a44dd59a0c Add some missing headers
When running clang-format which reorders headers, those are the ones
that came up as missing.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-08-24 12:19:52 +02:00
Dunedan d055090dd2 Add ruff pre-commit hook
Add configuration for pre-commit, ruff as a hook and configuration to
run ruff whenever a pull request is opened or code is pushed.
2024-08-24 10:54:26 +02:00
Dunedan c49d4eedd0 Lint and format Python files using ruff
To improve quality und uniformity of the included Python code this
lints and formats the included Python files with ruff.
2024-08-24 10:54:26 +02:00
Dunedan 8519eb9b86 Reduce time needed for STUN
In my tests this reduced the time necessary for starting to host a game
or joining a hosted game by ~180ms.
2024-08-23 21:00:15 +02:00
real_tabasco_sauce 0efaf5ac4b Add common IDE temporary files to gitignore 2024-08-23 19:29:28 +02:00
Stan eeb0f1cce6 Make checkrefs and called scripts return an error 2024-08-23 17:54:56 +02:00
Stan 2a06eea08a Fix checkrefs.py for python 3.12
Fixes #6898
Reported by: @Itms
2024-08-23 15:59:36 +02:00
Stan 393ad6c8a6 Improve windows pipeline 2024-08-23 13:08:04 +02:00
Stanislas Daniel Claude Dolcini a2e0749c01 Fix regression introduced in 5c1195f66a 2024-08-21 19:17:50 +02:00
Stanislas Daniel Claude Dolcini 7786ef8def Add Free BSD pipeline. 2024-08-21 19:17:35 +02:00
Itms 0b7da91992 Adapt libraries scripts to the new SVN repo. 2024-08-20 20:58:09 +02:00
Itms c7702cefb0 Issue templates (for tickets and release process). 2024-08-20 19:35:56 +02:00
Itms a4ca047535 Add code owners, adapted from Phabricator. 2024-08-20 19:35:42 +02:00
Itms 270a48b37d Adapt Jenkins Pipelines to the new build system. 2024-08-20 19:34:28 +02:00
Itms 0dd48ec57e Convert README to Markdown and update contents. 2024-08-20 19:19:50 +02:00
Itms e9d1cb6cc7 Generate nightly SVN builds for end users, fixes #1819. 2024-08-20 19:15:56 +02:00
Itms b698558102 Get rid of svnversion. 2024-08-20 19:10:54 +02:00
Itms 459ffa18cf Get rid of the Phabricator workflow. 2024-08-20 19:10:39 +02:00
Itms 0aeaa8f70a Adapt macOS libraries to the new build flow. 2024-08-20 19:10:25 +02:00
Itms 5c1195f66a New Linux/BSD build flow.
Getting and building libraries is now clearly separated from preparing
workspaces.
Some disk space is automatically reclaimed and cleanup is streamlined.
2024-08-20 19:09:23 +02:00
Itms 17ae3b224d Retrieve Windows binaries for the build, fixes #1814. 2024-08-20 18:54:00 +02:00
Itms 195c858f33 Add .gitignore file, fixes #1816.
Includes contribution by Stan.
2024-08-20 18:52:41 +02:00
wowgetoffyourcellphone fcbef32f67 [Maps] Revert c839bf2ae5 's accidental deletion and rebalance deer.
This was SVN commit r28199.
2024-08-14 00:04:48 +00:00
Stan 49af9a9dc1 Fix clean-workspaces.sh no longer causing the rebuild of FCollada.
Noticed by: @Dunedan
This was SVN commit r28198.
2024-08-13 13:56:19 +00:00
Dunedan ef623af2f8 Check for source of XMPP stanzas
Up to now Pyrogenesis didn't check if lobby related XMPP stanzas were
sent by the lobby bots. This meant that every user could send forged
data, like the list of games, to be displayed by another user. This
change fixes that by checking such stanzas come from the expected lobby
bots.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5216
This was SVN commit r28197.
2024-08-13 04:59:38 +00:00
Dunedan d6bfa7dedc Fix deferred sending of game updates via XMPP
72f0fdb41b broke the deferred sending of XMPP stanzas for changes to the
game settings during game setup. This change fixes it and decreases the
interval to send game setting updates from 2000ms to 500ms to have
updates faster visible in the multiplayer lobby.

One reason why this bug might have been gone unnoticed so far is that
the traffic shaping employed by ejabberd results in a similar behavior
when just looking at the multiplayer lobby through Pyrogenesis:
After exhausting a certain amount of traffic, clients are only allowed
to send a defined amount of bytes per second. This results in game
setting changes taking a moment before they show up in the multiplayer
lobby. Contrary to the desired behavior, this however leads to all
updates being received and processed by XpartaMuPP resulting in
unnecessary load on the server. With this fix Pyrogenesis doesn't
trigger the traffic shaping on ejabberd side anymore, as there is now
much less traffic being sent by Pyrogenesis.


Patch by: @Dunedan
Accepted by: @Stan
Fixes: #6740

Differential Revision: https://code.wildfiregames.com/D5217
This was SVN commit r28196.
2024-08-12 17:48:56 +00:00
wowgetoffyourcellphone 2e67c7f63d [Art] Tweaking this murder of crows actor.
This was SVN commit r28194.
2024-08-12 00:39:03 +00:00
wowgetoffyourcellphone c839bf2ae5 [Maps] Fix an imbalance of Deer on this skirmish map
This was SVN commit r28193.
2024-08-11 22:40:09 +00:00
wowgetoffyourcellphone 6729acae89 [Art] Make the minor pyramid a little nicer
This was SVN commit r28192.
2024-08-11 22:39:06 +00:00
phosit d655455304 Make messageBox return a promise
Ofthen the `messageBox` is only used for confirmation like: "Do you
really want to overwrite the savegame?"
With this patch the code paths of "overwrite savegame" and "make new
savegame" can be combined.

In some cases there is nothing done when one button is pressed. That is
changed to an early return.

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5274
This was SVN commit r28191.
2024-08-11 13:41:32 +00:00
Stan a1bf7d5d23 Move files which were badly moved in 7cd980f2e1
Also take into account changed made by @wowgetoffyourcellphone
Noticed by: @vladislavbelov @sera
This was SVN commit r28189.
2024-08-10 15:05:08 +00:00
Stan 27757404f0 Set missing executable properties on some scripts.
Reported by: @sera
Fixes: #6944

This was SVN commit r28188.
2024-08-10 11:48:16 +00:00
Stan 5da05ae15c Add a custom script to build premake, like NVTT, FCollada, and Spidermonkey.
Fix an issue on newer GNU/Linux and macOS where the build would fail due
to missing unistd includes.
Fixes: #6847
Accepted by: @vv221
Comments by: @sera
Differential Revision: https://code.wildfiregames.com/D4894
This was SVN commit r28187.
2024-08-10 11:46:03 +00:00
Dunedan a9ea169301 Improve formatting of XMPP announcements
Previously private messages and announcements got handled the same way.
This adds a distinct handling for server announcements, which allows
formatting them in a different way. They are now not prefixed with
"Private" anymore and show the announcement subject as well, if one was
set.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5268
This was SVN commit r28186.
2024-08-10 05:08:31 +00:00
Stan 1a7107e33d Fix FCollada build on recent macOS
Refs: #6797
Patch by: @jpshack
Differential Revision: https://code.wildfiregames.com/D5092
This was SVN commit r28182.
2024-08-06 17:20:15 +00:00
Dunedan 56f6d76b78 Remove internationalization of log messages
As log messages aren't supposed to be translatable, this removes the
internationalization of all log messages, which had it enabled.

Patch by: @Dunedan
Accepted by: @Itms
Differential Revision: https://code.wildfiregames.com/D5314
This was SVN commit r28179.
2024-08-05 15:27:12 +00:00
Stan 0831f5d3ce Fix build with Boost 1.85
Patch by: @Cayleb-Ordo
Accepted by: @Stan
Comments by: @sera
Differential Revision: https://code.wildfiregames.com/D5267
This was SVN commit r28176.
2024-08-02 16:17:22 +00:00
Stan 1ca3e6d3bc Fix two Clang warnings in Profiler2.cpp
Introduced in 3cbe96d24c

Differential Revision: https://code.wildfiregames.com/D5316
This was SVN commit r28173.
2024-08-02 09:40:57 +00:00
wowgetoffyourcellphone dddb9d6d51 [Art] Make metal mine sparkles even more sparkly.
This was SVN commit r28171.
2024-08-01 23:26:20 +00:00
wowgetoffyourcellphone 98802ab459 [Audio] Add new "lion" attack sound to the proper fauna templates.
This was SVN commit r28170.
2024-08-01 23:22:28 +00:00
wowgetoffyourcellphone 513396b3af [Audio] Separate the "lion" attack sound effect into shorter soundbites.
This was SVN commit r28169.
2024-08-01 23:10:33 +00:00
Stan 38e3f5cec0 Fix build with miniupnpc 2.2.8
See
https://github.com/miniupnp/miniupnp/blob/miniupnpc_2_2_8/miniupnpc/Changelog.txt.
And https://github.com/0ad/0ad/pull/45

Patch by: @emily
Accepted: by @Stan
Comments by: @phosit, @sera
Differential Revision: https://code.wildfiregames.com/D5307
This was SVN commit r28167.
2024-07-30 18:44:38 +00:00
wowgetoffyourcellphone 4256666fb1 Add an 80 meter revealer.
This was SVN commit r28165.
2024-07-27 22:55:43 +00:00
wowgetoffyourcellphone b44717b829 [Art] Make metal mine sparkles more noticeable.
This was SVN commit r28164.
2024-07-26 23:41:22 +00:00
Dunedan 2c2099fea6 Revert "Custom context for specific names"
dd65a4e32e had some unintended consequences. Some specific names
apparently
are indeed supposed to be translated. Also using the message context
the translator hint isn't the right place and changes the primary key
used for these strings on Transifex. Instead comments should be used.
To avoid more interruption to translators, we revert the changes for
now and come up with a better patch.

This was SVN commit r28162.
2024-07-26 09:18:43 +00:00
Dunedan dd65a4e32e Custom context for specific names
Make it clear that strings for specific names usually don't have to be
translated.

Patch by: @Dunedan
Accepted by: @Stan
Fixes #5563

Differential Revision: https://code.wildfiregames.com/D5310
This was SVN commit r28160.
2024-07-26 03:43:47 +00:00
Dunedan 32b9a27e9b Fix references in portable object templates
Up to now the references (lines starting with `#:`) in the portable
object templates generated by `updateTemplates.py` didn't comply with
the PO file format specification. They violated the specification in two
ways:

- White spaces in file names got replaced by non-breaking spaces
  (U+00A0), instead of the file names being enclosed by First Strong
  Isolate (U+2068) and Pop Directional Isolate (U+2069)
- the references didn't just include the filename and optionally the
  line number of the string, as defined in the specification, but also a
  non-standard "breadcrumb" component, which made them unnecessary
  hard to read in certain cases and difficult to use with tools
  expecting properly formatted references

This commit fixes both of these issues by properly encoding white
spaces and removing the breadcrumb component.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5309
This was SVN commit r28159.
2024-07-25 08:53:04 +00:00
Dunedan 1fa6184d17 Make language names in credits translatable
Up to now the languages and their names shown in the credits came from a
static mapping in `creditTranslators.py`. The language names noted in
there weren't consistent: some where present just in English, some in
their native language and some in both. This also required adjusting the
mapping manually, whenever a new language got added on Transifex,
otherwise its translators wouldn't be credited properly.

This commit resolves both issues, by making the language names
translatable and removing the need for the static mapping in
`creditTranslators.py`.

There is one minor nuisance with this implementation: As the languages
get listed in the credits in the same order as in `translators.json` and
they are ordered by there English name in there, the order might not be
alphabetical in other languages.

Running `creditTranslators.py` for the first time with these changes
will produce a rather large diff for `translators.json`, as not just the
language names will be changed to the English name of the language in
many cases, but the order of languages in the file as well. The first
run of `updateTemplates.py` after that will then add the languages as
new translatable strings.

Patch by: @Dunedan
Accepted by: @Itms
Differential Revision: https://code.wildfiregames.com/D5300
This was SVN commit r28158.
2024-07-24 15:37:05 +00:00
Dunedan 44f48427c5 Avoid empty translatable strings
Extracting translatable strings source files did also extract strings
which only consisted of spaces and line breaks. As that doesn't make
much sense, added noise in the portable object templates, for
translators and when linting the translations, this commit omits such
strings when generating the portable object templates.

Patch by: @Dunedan
Accepted by: @Stan, @Itms
Differential Revision: https://code.wildfiregames.com/D5308
This was SVN commit r28157.
2024-07-24 15:18:36 +00:00
phosit 6ea44f6fb4 Log rejected promises
Forgoten in f9114a87f2

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5305
This was SVN commit r28155.
2024-07-22 08:40:33 +00:00
Dunedan 0881583535 Remove more translator duplicates
While `creditTranslators.py` did already contain logic to remove
duplicate translator names, that logic didn't remove translator names
which only differed in their casing. As the removal was implemented
using an (unordered) `set`, the order of such duplicate names wasn't
deterministic and oscilated between the possible orders with different
invocations of `creditTranslators.py`, creating unnecessary changes to
`translators.json`.

This commit fixes that so that duplicate names are also removed when
they just differ in their casing and prefers the variant with has the
names starting with a capitalized letter.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5304
This was SVN commit r28152.
2024-07-16 09:32:04 +00:00
Dunedan 4a68486812 Preserve comments in debug translations
Up to now the "debug" and "long" translations got generated without the
comments present in the portable object files. This lead to the problem
that "dennis-ignore" directives in the comments weren't present in these
translations anymore, causing dennis to report false-positives for the
debug translations. This commit fixes that by keeping the comments in
the debug translations.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5303
This was SVN commit r28150.
2024-07-14 05:51:41 +00:00
Dunedan b68a22ecdb Instantiate controller only for the host
This moves the check whether a player is the host out of
`LobbyGameRegistrationController` and only creates an instance of it in
`SetupWindow` if the player is the host.

This solves a problem with
`LobbyGameRegistrationController.onGameStart()` getting triggered by
players not being the host and sending unnecessary and invalid
changestate stanzas to XpartaMuPP.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5270
This was SVN commit r28148.
2024-07-10 06:20:51 +00:00
phosit 62692ca270 Add files forgotten in f9114a87f2
This was SVN commit r28146.
2024-07-08 19:46:42 +00:00
phosit f9114a87f2 Get a promise when starting a GUIpage
When calling `Engine.PushGuiPage` a promise is returned. The promise is
settled when the "child" page is closed. That allows to `await` it
inside `async` functions.
Previously the callback was run right inside the call to
`Engine.PopGuiPage`. Now the continuation of the promise is called at
the end of the "tick".

This won't help performance. It will more likely make things worse.
Since gui pages aren't opened or closed that frequently, it doesn't
matter that much.

Refs: 86c151ebaa

For the engine side:
The promise is stored in the `CGUIManager::SGUIPage` (like previously
the callback). When the promise is fulfilled it enqueues a callback in
the `JobQueue` of the `JSContext`.

Original patch by: @wraitii
Comments by: @wraitii, @Stan, @Polakrity, @lyv, @elexis, @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D3807
This was SVN commit r28145.
2024-07-08 19:07:04 +00:00
Dunedan ae67a77bd9 Update translator credits automatically
This adds updating the translator credits automatically when updating
translations. This has two benefits:

1. Translator credits are up-to-date in SVN-builds, so potential
   problems will already show up there.
2. One manual step less during a release.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5299
This was SVN commit r28143.
2024-07-07 16:29:40 +00:00
Dunedan 70dea92859 Fix translator credit script
The changes from D5290 broke the script to credit translators, as the
lines with the translators might now include additional information,
like the years of contribution, after the usernames, that would've
been included by `creditTranslators.py` as well.

This commit also slighly hardens the removal of deleted users to from
the credited translators to reduce the likelihood to remove still
existing users.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5298
This was SVN commit r28142.
2024-07-07 16:26:54 +00:00
phosit cd814d00ef Converge FileLogger with the other logger replacements
Use the same `CLogger` constructor.
Never take ownership of the streams.

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5203
This was SVN commit r28140.
2024-07-06 14:48:44 +00:00
phosit 9e328ec617 Make the CSimContext constructor take a CTerrain and a CUnitManager
`CSimulationImpl` doesn't has to be a friend anymore.

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5296
This was SVN commit r28138.
2024-07-05 16:55:33 +00:00
Stan a4d9993e86 Finish implementing property "textcolor_selected" for list GUI objects
Fixes #6920
Patch by: @Vantha
Differential Revision: https://code.wildfiregames.com/D5269
This was SVN commit r28135.
2024-07-03 08:32:52 +00:00
phosit 4bcbc72274 Don't use std::shared_ptr to store m_ScriptContext and m_ScriptInterface in the CGUIManager
`std::shared_ptr` is intrusive. When a function expects a
`std::shared_ptr` the caller has to use it too and can't store the
element on the stack for example.

Comments by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5221
This was SVN commit r28131.
2024-06-27 19:09:30 +00:00
Dunedan 75753abd2e Fix removal of email addresses from PO-files
The regex for removing the email address of the last translator from
PO-files contained two bugs causing it not to match:

1. It didn't account for text after the email address and PO-files
   from Transifex contain the year of the last translation there.
2. It expected a second `\\n"` at the end of the line, instead of `\n"`.

This commit fixes both of these issues and simplifies the regexes. It
also ensures that the text after the email address is kept as well.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5290
This was SVN commit r28130.
2024-06-26 04:19:43 +00:00
phosit f5b416c63b Don't execute the task when no Future awaits it anymore
Summary:
Most of the times the callback stores a reference to a variable in scope
where the `Future` is in. When the scope is left the reference get's
dangling. `CancelOrWait` is called in multiple places (mostly
destructors) to ensure the callback isn't executed anymore.
This patch deduplicates thous calls to `CancelOrWait`.

Refs: #5874

Comments by: @Stan, @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5208
This was SVN commit r28128.
2024-06-25 19:03:01 +00:00
Dunedan 5a43f514dc Remove file missed by previous commit
This was SVN commit r28125.
2024-06-23 19:05:16 +00:00
Dunedan 53e00e1953 Remove contrib JS-lexer and use upstream one
As we depend on Babel for i18n tooling nowadays, we can also use its
maintained JavaScript-lexer, instead of the one forked from an old
version of Babel.

Doing so reduces the amount of code we have to maintain, adds new
functionality (like properly handling hexadecimal unicode notations) and
fixes some regex related incompatibilities which makes generating
portable object templates possible with recent Python versions.

The use of `tokenize(…, dotted=False)` is necessary, as we use this
lexer for C++ code as well and detection of most strings in C++ code
fails otherwise. As dotted names weren't supported by version of the
lexer we used until now, this isn't a regression.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5293
This was SVN commit r28124.
2024-06-23 19:04:07 +00:00
phosit fa1dc98103 Shutdown mongoose in rl-interface gracefully
When the `RL::Interface` is destroied but the engine isn't completely
shoutdown there was a dangling pointer. The time the dangling pointer is
accessable got expanded with 968e55704a.
Whith this patch there no dangling pointer (in that regard).

Accepted by: @vladislavbelov
Comments by: @Stan, @sera
Trac Tickets: #5989

Differential Revision: https://code.wildfiregames.com/D5254
This was SVN commit r28123.
2024-06-23 17:26:03 +00:00
phosit e8908dfee8 Fix getArea
The code didn't call `this.isCircularMap` but checks if it's defined.
The function returned the wrong values for square maps.

Broken in 480228f964

Comments by: @Stan
Differential Revision: https://code.wildfiregames.com/D5288
This was SVN commit r28122.
2024-06-23 17:17:46 +00:00
Stan 9af1433995 Rename the "color" property of COlist columns to "textcolor"
Patch by: @Vantha
Differential Revision: https://code.wildfiregames.com/D5278
This was SVN commit r28120.
2024-06-22 20:18:09 +00:00
phosit e01ea16ae5 Adopt the generator based interface by generated maps
- Adding the function signature
- Changing `g_Map.ExportMap()` to `return g_Map`
- Changing `Engine.SetProgress(NN)` to `yield NN`
- Changing `const g_Map = ...` to `globalThis.g_Map = ...`
- On some maps using the argument `mapSettings`

Comments By: @asterix, @sera, @Stan
Differential Revision: https://code.wildfiregames.com/D5258
This was SVN commit r28119.
2024-06-21 15:19:13 +00:00
phosit a178b3fcb3 Add scope in map generation scripts
Summary:
Preparation to use the generator based interface.

Removes many globals. (but doesn't reduce their scope by much)
Refs: #4964

Comments By: @sera @elexis
Differential Revision: https://code.wildfiregames.com/D5285
This was SVN commit r28117.
2024-06-18 16:26:36 +00:00
Freagarach 722f10ca7c Fix some strings.
Reported on Transifex by @lecalam and @rodrigo.vegas.

This was SVN commit r28114.
2024-06-15 06:01:27 +00:00
wowgetoffyourcellphone 1d114d513f [A27] [Skirmish Maps] Some minor improvements to some maps and "new" keyword added to a few
Arabian Oases: Added "new" keyword
Sporades Islands: Added "new" keyword, gave both players a free starting
Scout Ship. Added a capturable CC on the unoccupied north island. Added
2 Gaia Treasure Ships.
Syria: Added some Ruins and Shrines.
Watering Holes: Minor tweaks to grass placement.
Zagros Mountains: Added some Shrines and swapped out the Gaia fields and
farmsteads for capturable Mill_Fields and Mills.

This was SVN commit r28113.
2024-06-14 22:20:26 +00:00
wowgetoffyourcellphone 3bd5cd9934 Templates | Skirmish Maps | Add a "Scout Ship" default template for skirmish maps.
This was SVN commit r28112.
2024-06-14 22:17:02 +00:00
wowgetoffyourcellphone 9cec9613a1 [Fix] Replace the "Immortals" tech at the Tachara, as it had accidentally been taken out some time ago by the author.
This was SVN commit r28111.
2024-06-14 22:16:40 +00:00
vladislavbelov 6d5dc7f311 Fixes zero usage for Vulkan upload buffer after b9fd6f18f0.
This was SVN commit r28110.
2024-06-14 22:05:32 +00:00
Dunedan 95fcfeb496 Escape non-breaking space in tutorial
Patch by: materiagris via https://github.com/0ad/0ad/pull/44
This was SVN commit r28109.
2024-06-12 08:32:09 +00:00
vladislavbelov b9fd6f18f0 Adds proper IBuffer usage instead of dynamic flag.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D5281
This was SVN commit r28107.
2024-06-10 19:31:41 +00:00
phosit 06545f5de1 Clean code of Unknown
- Put the actual functions in `unknownMapFunctions` instead of just the
names
- Inline some functions

Comments by: elexis
Differential Revision: https://code.wildfiregames.com/D5280
This was SVN commit r28105.
2024-06-08 11:37:27 +00:00
phosit 22a8f367f8 Clean code of Caledonian Meadows
- whitespace changes
- functions were called in a way that they always used the default
arguments
- deduplicate code in initialization of `heighLimits`
- new structure in `myBiome`, so that the painting can be reduced much.
 - also initialization instead of push
- use algorithm to calculate the `areas` and the "midpoints" of the
slope.

Comments by: @elexis
Differential Revision: https://code.wildfiregames.com/D5279
This was SVN commit r28104.
2024-06-08 11:30:58 +00:00
vladislavbelov 28332b6fe6 Deprecates OpenGL ARB backend.
Differential Revision: https://code.wildfiregames.com/D5242
This was SVN commit r28103.
2024-06-07 18:47:18 +00:00
phosit 922ab00c06 Remove usage of var in map scripts
Comments by: @Stan, @sera @elexis
Differential Revision: https://code.wildfiregames.com/D5273
This was SVN commit r28101.
2024-06-04 19:39:19 +00:00
phosit c6df8f9372 Biomes for alpine_lakes and alpine_valley
The "biomes" where duplicated between alpine_lakes and alpine_valley.
The biomes can now be selected by the game setup page.
This also remove many `var`'s.

Comments by: @Stan, @elexis
Differential Revision: https://code.wildfiregames.com/D5277
This was SVN commit r28099.
2024-06-02 17:08:28 +00:00
phosit 163063c2a4 Clean code of Belgian Uplands
- The heights are now a constant array. Instead of pushing the heights
to an array.
- The terrain are now always constructed in one expression. Instead of
calling `.concat` repeatedly.
- The actors and the probability thereof are now also part of the
object. Separation of data and code.
- Player placement is now a iife.

Comments by: @Stan, @sera
Accepted by: @elexis
Differential Revision: https://code.wildfiregames.com/D5272
This was SVN commit r28098.
2024-05-31 18:14:04 +00:00
wowgetoffyourcellphone 000b1d8148 [Gameplay] Skirmish Maps | An updated Sporades Islands map more suitable for 1v1 play and includes some of the newer elements for this alpha.
Differential Revision: https://code.wildfiregames.com/D5229
This was SVN commit r28094.
2024-05-23 17:59:36 +00:00
phosit 6ce2fc53ea Allow to use a generator as MapGenerator
This way it's clear what's the input and what's the output of the
computation.
All map generation scripts should reman working. They are adopted in a
future commit.

`Engine.SetProgress` and `Engine.ExportMap` can be removed in a future
commit.

Comments by: @marder, @sera, @Stan
Differential Revision: https://code.wildfiregames.com/D5220
This was SVN commit r28093.
2024-05-22 15:52:12 +00:00
wowgetoffyourcellphone 585e821274 [Fix] Cleanup onager template after removing soldier construction
Patch by: @real_tabasco_sauce
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D5245
This was SVN commit r28092.
2024-05-22 15:31:21 +00:00
phosit a4610e4ca9 Turn the FLOODFILL macro in to a function
Also move the "origin-handling" in to the loop.

Comments by: @sera, @vladislavbelov, @Stan
Differential Revision: https://code.wildfiregames.com/D5189
This was SVN commit r28087.
2024-05-12 06:13:47 +00:00
Stan ae639bb360 Fix lint on the CI.
- Add a new CI docker file
- Fix a typo for checkrefs (Refs https://code.wildfiregames.com/D5266)
- Switch to Clang8
- Unify pipeline reset in a function
- Update the image building pipeline

This was SVN commit r28086.
2024-05-11 11:01:34 +00:00
phosit 660fdfac44 Use pageLoop for structree and civinfo
Deduplicate code in four places.

Comments by: @elexis
Differential Revision: https://code.wildfiregames.com/D5261
This was SVN commit r28085.
2024-05-10 13:16:52 +00:00
Stan f48e480f7f Update eslintrc.json to allow for class properties in JavaScript.
Refs: https://code.wildfiregames.com/D4770

This was SVN commit r28084.
2024-05-10 10:10:49 +00:00
wowgetoffyourcellphone 7c8c9fd59b [GUI] Remove Roman numerals from bot names
To avoid the appearance of two Roman numerals at the end of bot names
(e.g. "Artaxshasha II II -> here "Artaxshasha II" was the name itself
and the second "II" was added when the name was chosen for the second
time), remove the addition of Roman numerals entirely.

Instead, if possible, a new name is chosen for each bot. If not, the
suffix "(n)" is added counting the duplicates and warning is displayed.
AINames are added to the Iberians, Gauls, and Mauryas bringing their
totel to at least 8 each in order avoid any duplicates in regular
8-player games.

Credit to Norse_Harold for changing the condition for reusing names to
not use a hardcoded assumption about the maximum number of player slots

Patch by @Vantha
Accepted by @phosit, @wowgetoffyourcellphone

Differential Revision: https://code.wildfiregames.com/D5256
This was SVN commit r28082.
2024-05-09 18:31:33 +00:00
wowgetoffyourcellphone 99cb6b03c5 [Gameplay] Increase capture points for Temple of Amun
Patch by: @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D5264
This was SVN commit r28081.
2024-05-09 18:12:44 +00:00
wowgetoffyourcellphone 36626ac623 [Art] Fix the shields on the Roman Siege Ship
Reported to me by @Stan'

This was SVN commit r28080.
2024-05-09 17:57:10 +00:00
wowgetoffyourcellphone 14ac8fd6e7 [Art] Add a special rubble actor for the Rice Paddy
Reported by: @Gurken_Khan on the forum
This was SVN commit r28079.
2024-05-09 16:37:33 +00:00
phosit 086e95d39c Don't move elements in the bottom panel of the game setup
Also fix the tooltip overlaping with the warning.

Differential Revision: https://code.wildfiregames.com/D5260
This was SVN commit r28078.
2024-05-09 11:11:35 +00:00
phosit a16a3f82a1 Delete FSM.cpp forgotten in 3a5ad160f7
This was SVN commit r28075.
2024-05-05 06:04:22 +00:00
phosit 3a5ad160f7 Make CFsm a template
The context doesn't have to be converted to `void*` and back.


Differential Revision: https://code.wildfiregames.com/D5253
This was SVN commit r28074.
2024-05-04 16:13:02 +00:00
wowgetoffyourcellphone 53f9faa4e0 [Gameplay Ships] Update tooltip for fire ship, reduce ignition time
Patch by: @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D5251
This was SVN commit r28072.
2024-04-30 23:37:01 +00:00
phosit ba04cf3bd1 Use templates instead of macros to restrict access to the VFS
Subscribers: @sera, @Stan, @wraitii, @vladislavbelov

Differential Revision: https://code.wildfiregames.com/D5195
This was SVN commit r28066.
2024-04-13 17:12:47 +00:00
phosit dd54414fe5 Improve batch training time tech description
In the Han CC I changed `0.8 * 0.75` to `0.8 - 0.2` so it could also be
described the same way.

Accepted By: @Freagarach
Comments By: @sera, @Stan
Trac Tickets: #6755

Differential Revision: https://code.wildfiregames.com/D5031
This was SVN commit r28065.
2024-04-12 18:39:17 +00:00
phosit 74afb17aa4 Split the Shutdown function
Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5148
This was SVN commit r28056.
2024-03-24 12:45:27 +00:00
phosit a4f91e43ae Default many of CFsm's special functions and remove virtual specifires
Differential Revision: https://code.wildfiregames.com/D5249
This was SVN commit r28053.
2024-03-21 17:43:34 +00:00
phosit 78652aa92c Use std::function instead of inhereting from CNetFileReceiveTask
The user doesn't have to fiddle with `std::shared_ptr`.
And two (more unrelated) things: use `std::unordered_map`, use a
`std::find_if` in the callback.

Comments By: @vladislavbelov, @Stan
Differential Revision: https://code.wildfiregames.com/D5239
This was SVN commit r28048.
2024-03-09 14:31:43 +00:00
phosit 6b31999b64 Don't use std::shared_ptr<ScriptContext> in the CSimulation2
Since 1bccfef6fb the `CSimulation2` uses the `std::shared_ptr` only in
the constructor and stores a `ScriptContext&` (inside it's members).
That's a bit dangerous: A caller might think `CSimulation2` takes
ownership of the `ScriptContext`.
With this commit the caller has to pass an `ScriptContext&` to the
constructor.

Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5223
This was SVN commit r28046.
2024-03-08 17:15:25 +00:00
marder 1b3e8a0218 Fix wrong default in "scaleByMapArea"
Noticed and patch proposed by @Feldfeld in 480228f964
Doesn't have any consequences as the function is only called via
"scaleByMapAreaAbsolute" in the codebase.

accepted by @Feldfeld @marder

Differential revision: https://code.wildfiregames.com/D5248
This was SVN commit r28042.
2024-02-28 06:44:09 +00:00
phosit 1eb11b39bf Remove the StateSet from FSM
The `StateSet` is only used to check if a state is valid. That's useless
since it wouldn't be found in the `TransitionMap` - With the same
outcome.

Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5236
This was SVN commit r28039.
2024-02-25 14:05:23 +00:00
marder 04ce68f42e rmgen: var -> let -> const
One should always use the variable declaration with the least possible
scope.
This patch cleans up many (but not all) of the `var` in rmgen and
replaces them with `let` or `const`.
The same is done for `let` -> `const`.

comments by: @sera @Stan
Differential revision: https://code.wildfiregames.com/D5214
This was SVN commit r28036.
2024-02-17 11:13:52 +00:00
vladislavbelov e9bc76040d Accounts maxAnisotropy for Vulkan samplers.
This was SVN commit r28034.
2024-02-16 18:46:44 +00:00
phosit 483da49759 More generic hash function for FSM
The hash function introduced in 6faf704731 doesn't work on 32 bit
systems. This one should.

Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5237
This was SVN commit r28033.
2024-02-16 17:31:40 +00:00
wowgetoffyourcellphone c1d7ac6182 [Art] Materials | Adjust normal affect on a couple terrain materials. The previous numbers were way too extreme.
This was SVN commit r28030.
2024-02-12 07:11:44 +00:00
wowgetoffyourcellphone 7e433b5053 [Art] [Fix] Add 'garrisoned' prop points to the 3 Carthaginian ethnic Embassy structures.
Reported by: @Gurken_Khan
Thread:
https://wildfiregames.com/forum/topic/107313-alpha-27-pre-releaserelease-candidate-build-testing/?do=findComment&comment=564191

This was SVN commit r28029.
2024-02-12 07:09:50 +00:00
wowgetoffyourcellphone 789cfb8cf5 [Fix] Add "pair" property forgotten in some techs.
Without the "pair" attribute API3..GameState.prototype.canResearch
doesn't check if the other tech is already researched (or is being
researched).

Patch by: @phosit
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D5238
This was SVN commit r28026.
2024-02-05 06:14:29 +00:00
Freagarach 62db78beec [PetraAI] - Fix resources (dead animals) coming in the defense army.
When a wild animal was in a defenseArmy and it was killed, its resource
got into the army as well. This caused a call to GetUnitAIOrder data
which was undefined for the resource.
Fixed by checking for UnitAI-ness and also for attack-ability whilst at
it.

Reported by @seregadushka at the forums:
https://wildfiregames.com/forum/topic/110098-petra-error-winter-is-coming5/.

Investigated and MWE by @Norse_Harold.
Fixes #6899

This was SVN commit r28025.
2024-02-02 12:40:52 +00:00
wowgetoffyourcellphone ca0f8d9bce [Art] Improve the look of the new Roman Antesignanus unit, based on descriptions posted on the forum.
This was SVN commit r28023.
2024-02-02 05:32:27 +00:00
wowgetoffyourcellphone 7fd0365f8e [Art] A bunch of minor actor and texture improvements that would too inconsequential to have their own commits.
This was SVN commit r28022.
2024-02-02 03:43:48 +00:00
wowgetoffyourcellphone aee9c54b04 [Gameplay][fix] Use a promotion approach for Roman reforms special tech
Patch by: @real_tabasco_sauce
Accepted by: @borg-, @Riesi, @wowgetoffyourcellphone
Comments by: @phosit, @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5206
Fixes #6888

This was SVN commit r28021.
2024-02-02 02:44:30 +00:00
phosit 6faf704731 Split the FSM-transitions and put them in an unordered_map
Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5225
This was SVN commit r28020.
2024-01-29 18:44:14 +00:00
wowgetoffyourcellphone 15dca2c0c9 [GUI] Improve and Combine in-game HUD panel textures into a texture sheet
Patch by: @wowgetoffyourcellphone
Comments by: @Stan @vladislavbelov @sera
Accepted by: @real_tabasco_sauce

Differential Revision: https://code.wildfiregames.com/D5231
This was SVN commit r28016.
2024-01-22 05:59:23 +00:00
phosit 9c6f2e592e Don't check memory allocation made using new
Refs: #5288

Patch By: @animus
Accepted By: @phosit
Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5234
This was SVN commit r28014.
2024-01-21 14:29:30 +00:00
vladislavbelov aeeeb2c8d9 Makes pipeline state dirty on Vulkan only when VertexInputLayout was changed.
This was SVN commit r28011.
2024-01-17 19:55:28 +00:00
vladislavbelov e3f46bb809 Adds compute shaders support and scaling with FSR.
Fixes #6842

Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D5218
This was SVN commit r28010.
2024-01-17 19:40:27 +00:00
wowgetoffyourcellphone f9f798158a [Mixins] Change the metal cost effect from multiply to add. Multiply didn't work correctly with Pirate Scout Ships.
This was SVN commit r28006.
2024-01-07 23:10:44 +00:00
wowgetoffyourcellphone d753fe9fca Missed this file in previous commit.
This was SVN commit r28005.
2024-01-07 20:33:44 +00:00
wowgetoffyourcellphone 6913d8f167 [Fix] Ramming Ships do not deal double damage against Siege Ships
This was SVN commit r28004.
2024-01-07 08:09:30 +00:00
wowgetoffyourcellphone ec416a9ada [Art | Templates] Improve the look of the Persian civic center with Lamassu statues.
Also add: A lamassu stone ruin object and a Persian Shrine capturable
map object.

Modeling by: @stan'
This was SVN commit r28003.
2024-01-06 22:08:46 +00:00
wowgetoffyourcellphone f3f1ac6d6c [Templates] Add a new mixin for Pirate ships.
This was SVN commit r28002.
2024-01-06 18:11:40 +00:00
wowgetoffyourcellphone c76b8bed2b [GUI] Add a new loading tooltip for Shrines.
This was SVN commit r28001.
2024-01-06 17:58:21 +00:00
wowgetoffyourcellphone c28782a163 Checkref fixes for the Naval commit
This was SVN commit r27998.
2024-01-05 05:27:20 +00:00
wowgetoffyourcellphone 3914b61068 [Fix] Oversight in d51b4687e9
Reported by: @stan'
This was SVN commit r27997.
2024-01-04 18:01:00 +00:00
wowgetoffyourcellphone d51b4687e9 [Gameplay] Complete Naval Overhaul (UnitAI and Warship Classes)
Warships now use the Unit AI instead of the Building AI. This allows
players to specifically target fire onto desired targets.
Warship combat now revamped with completely new Warship classes, which
soft counter each other, and new behavior for Fire Ships. With an
all-new ship tech tree at the Dock.
Commit includes fixing maps to switch from the old to the new ship
templates. Also includes revamped Cycladic Archipelago skirmish maps and
some other special surprises. And improved/additional ship UI portraits.

New Warship classes:

Scout Ship
Arrow Ship
Ramming Ship
Siege Ship

Forum discussion:
https://wildfiregames.com/forum/topic/104332-naval-overhaul-alpha-27/#comment-539713

Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce
Comments and suggestions by: @borg-, @phosit (more comments and
discussion at the forum link)

Differential Revision: https://code.wildfiregames.com/D5213
Refs #4000 for a sound issue for actors without an attack animation.

This was SVN commit r27996.
2024-01-04 06:18:50 +00:00
phosit b9da1cd823 Add files that are missing in 28e3b3fd62
This was SVN commit r27994.
2023-12-30 13:01:10 +00:00
phosit 28e3b3fd62 [Maps] Add water level support to Flood
In addition to the existing "Shallow" water level two water levels are
added:
- Deep: Only ships can reach other islands
- Rising: The water level changes from Shallow to Deep to a level where
the home islands are flooded.

Accepted By: @real_tabasco_sauce
Comments By: @marder, @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5139
This was SVN commit r27992.
2023-12-28 20:22:48 +00:00
wowgetoffyourcellphone ba61b93f94 [Art] Improved fish portrait
This was SVN commit r27991.
2023-12-26 20:03:24 +00:00
wowgetoffyourcellphone 2c4a230ad5 [Gameplay] Move Persian Immortals to the Barracks, make them cheaper, weaker. Now they can be massed more easily, but not be OP.
Patch by: @real_tabasco_sauce
Comments from: @borg-
Accepted by: @wowgetoffyourcellphone

Differential Revision: https://code.wildfiregames.com/D5202
This was SVN commit r27990.
2023-12-26 04:15:40 +00:00
phosit c4e082bf9b Make QuitConfirmationReplay extend QuitConfirmation
Comments By: @Freagarach
Fixes: #6894

Differential Revision: https://code.wildfiregames.com/D5224
This was SVN commit r27989.
2023-12-23 09:36:36 +00:00
phosit 05356bb9fc Remove the FSM EventMap
Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5089
This was SVN commit r27987.
2023-12-20 20:44:06 +00:00
wowgetoffyourcellphone 6dfe29959f [Art] Tech portrait. A goat.
This was SVN commit r27985.
2023-12-17 22:46:36 +00:00
phosit 890cad2339 Use the threadpool for texture conversion
Original Patch By: @Stan
Comments By: @vladislavbelov, @wraitii, @Silier, @sera
Differential Revision: https://code.wildfiregames.com/D4425
This was SVN commit r27984.
2023-12-17 09:43:54 +00:00
wowgetoffyourcellphone ea96002363 [Art] Two new tech portraits for Naval techs
This was SVN commit r27983.
2023-12-15 17:20:43 +00:00
phosit d7001de399 Fix build with libxml2 v2.12.1
libxml2 v2.12.1 includes less header indirectly. Also `xmlError*` has to
be changed to `const xmlError*`.

Original Patch By: Riesi
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5219
This was SVN commit r27980.
2023-12-13 19:42:00 +00:00
wowgetoffyourcellphone a719a2176b [Gameplay] Remove TerritoryDecay from Roman Army Camp and Siege Walls
The territory decay of these structures didn't make much sense (gameplay
wise) and made those structures a pain to use.

Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D5215
This was SVN commit r27978.
2023-12-09 04:24:24 +00:00
wowgetoffyourcellphone 83df75c8b5 [Fix] Set priority to 80 per the wiki sound guide
This was SVN commit r27976.
2023-12-08 06:03:29 +00:00
wowgetoffyourcellphone 19a290aa28 [Art] Improve some foundations and scaffolds.
This was SVN commit r27975.
2023-12-06 07:53:05 +00:00
phosit 2abf0d8db2 Fix missing includes when building without precompiled headers
Patch By: @Riesi
Comments By: @sera
Differential Revision: https://code.wildfiregames.com/D5209
This was SVN commit r27973.
2023-12-04 20:23:37 +00:00
wowgetoffyourcellphone 3a3ecb6727 [Audio] Add a new arrow impact sound and reduce the volume of ram and catapult attacks
This was SVN commit r27972.
2023-12-04 17:51:54 +00:00
wowgetoffyourcellphone 7104a7f694 Change name of Persian "Apadana" to "Tachara"
The name "Apadana" will eventually be used for the Persian Wonder:
https://wildfiregames.com/forum/topic/17552-task-wonder-persians-apadana-of-darius/

Differential Revision: https://code.wildfiregames.com/D5204
This was SVN commit r27970.
2023-12-04 02:37:31 +00:00
wowgetoffyourcellphone deebde3e0d [Fix] Typo in Cataphract mixin caused Loot to be placed incorrectly in the template
Reported by: @gameboy
Here:
https://wildfiregames.com/forum/topic/109371-a-cheat-code-caused-the-problem/

This was SVN commit r27968.
2023-12-03 18:26:02 +00:00
marder b6776c1801 Remove unnecessary arguments in map tests
RandomMap only takes two arguments (baseHeight, baseTerrain) not three.
Originally introduced in 5fe58d80fd.

Noticed by & accepted by @phosit

Differential revision: https://code.wildfiregames.com/D5212
This was SVN commit r27967.
2023-12-03 12:14:46 +00:00
wowgetoffyourcellphone 9b6aa5fd0e Adds a medium-class Pirate ship for maps
This was SVN commit r27966.
2023-12-03 00:48:19 +00:00
vladislavbelov ffc4a56b9f Revert non-ASCII characters from source and configuration files introduced in 157c6af18e.
Fixes #6846

Differential Revision: https://code.wildfiregames.com/D5185
This was SVN commit r27965.
2023-12-03 00:30:12 +00:00
wowgetoffyourcellphone 71cd4ecf98 [Fix] 2e68fccd1d -> restore loyalty_regen.json
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D5210
Fixes #6891

This was SVN commit r27964.
2023-12-02 19:00:34 +00:00
wowgetoffyourcellphone 37a49249fa [Gameplay] New temple tech "Sacrificial Ritual"
Patch by: @borg-
Accepted by: @real_tabasco_sauce
Comments by: @chrstgtr, @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D5188
This was SVN commit r27963.
2023-12-02 18:44:06 +00:00
phosit 6ee136dd11 Split Receiver from SharedState
The Function is not restricted to std::function anymore. Move only
function become possible.

Differential Revision: https://code.wildfiregames.com/D4840
This was SVN commit r27962.
2023-11-30 09:20:35 +00:00
Freagarach 5ce3478317 Fix typo in serapis_cult noticed by @rollieoo at Transifex.
This was SVN commit r27960.
2023-11-27 07:55:07 +00:00
wowgetoffyourcellphone 955c1d9183 [Art] Improve the UV mapping of the pers_palace model
This was SVN commit r27959.
2023-11-25 21:51:48 +00:00
wowgetoffyourcellphone 9c0e458f2d [Gameplay] New Mauryan paired food techs.
Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Comments by: @chrstgtr, @genava55

Differential Revision: https://code.wildfiregames.com/D5175
This was SVN commit r27958.
2023-11-25 18:49:15 +00:00
wowgetoffyourcellphone 75812d43e6 Improve the wording of the Delian League description
This was SVN commit r27957.
2023-11-24 20:53:45 +00:00
wowgetoffyourcellphone 71d45cd9ce [Gameplay] "Woad Warriors" civ bonus for the Britons
Patch by: @borg-
Accepted by: @wowgetoffyourcellphone
Comments by: @real_tabasco_sauce, @chrstgtr
Differential Revision: https://code.wildfiregames.com/D5190
This was SVN commit r27956.
2023-11-24 20:03:51 +00:00
wowgetoffyourcellphone a0592a3c37 [Gameplay] "Satrapy Tribute" feature for the Persian Throne Hall structure
This adds an upgrade option for the Persian "Apadana" (will be renamed
later to "Tachara"), where the player can choose to receive a trickle of
a desired resource, like taxes or tribute from their subject peoples.
Call this the "Satrapy Tribute" feature.

Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce
Comments by: @chrstgtr, @borg-

Differential Revision: https://code.wildfiregames.com/D5192
This was SVN commit r27954.
2023-11-24 02:58:32 +00:00
phosit 949be94aab Introduce CLogger::ScopedReplacement and FileLogger
Comments By: @sera, @vladislavbelov, @Stan
Differential Revision: https://code.wildfiregames.com/D5167
This was SVN commit r27953.
2023-11-23 20:42:18 +00:00
marder 63a4799f56 Fix mapgeneration of ambush & frontier in atlas
56f15f0869 broke those maps in atlas where g_MapSettings.TeamPlacement
is never initialized.

Bug found by @elexis
Fix not objected by @elexis (comments: committable if 56f15f0869 should
not be reverted and developer time is limited)

Differential revision: https://code.wildfiregames.com/D5200
This was SVN commit r27952.
2023-11-21 21:44:31 +00:00
wowgetoffyourcellphone 62ab340622 [Gameplay] Ptolemaic Polybolos attack rate increased
Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D5170
This was SVN commit r27951.
2023-11-21 17:37:04 +00:00
wowgetoffyourcellphone 5494110015 [Gameplay] Add forgotten loot in the new cataphract mixin
Patch by: @borg-
Differential Revision: https://code.wildfiregames.com/D5197
This was SVN commit r27950.
2023-11-21 17:31:58 +00:00
wowgetoffyourcellphone a2e7e4a08c [Gameplay] Fix apartment and academy loot
Patch by: @borg-
Differential Revision: https://code.wildfiregames.com/D5191
This was SVN commit r27949.
2023-11-21 17:24:14 +00:00
phosit 1e3f11ff6d Disallow conversion in Future return
Differential Revision: https://code.wildfiregames.com/D4812
This was SVN commit r27947.
2023-11-19 21:04:40 +00:00
marder 6a43f91630 Fix oversight in 56f15f0869 regarding iber wall placement
Needed until / if D5082 lands.
Until then we also still need: `g_PlayerbaseTypes`.

Differential revision: https://code.wildfiregames.com/D5196
This was SVN commit r27946.
2023-11-19 20:54:12 +00:00
phosit 1bccfef6fb Don't use std::shared_ptr in ScriptInterface
Differential Revision: https://code.wildfiregames.com/D5159
This was SVN commit r27945.
2023-11-19 20:13:19 +00:00
phosit e33aafc4e2 Put the CMapGeneratorWorker completely inside the task
The return-slot provided by the `Future` is used for synchronisation.

Refs: #5874

Comments By: @Stan, @vladislavbelov, @wraitii
Differential Revision: https://code.wildfiregames.com/D5001
This was SVN commit r27944.
2023-11-19 19:19:32 +00:00
marder 56f15f0869 Move createBasesByPattern() functionality from rmgen2 to rmgen-common
This means deprecate `createBasesByPattern` in rmgen2 and add new
function `playerPlacementByPattern` in common

Differential revision: https://code.wildfiregames.com/D5194
This was SVN commit r27943.
2023-11-19 15:21:26 +00:00
marder 818ed56c0e Don't rely on default args in placePlayerBase
rather be explicit

Differential revision: https://code.wildfiregames.com/D5193
This was SVN commit r27942.
2023-11-19 12:00:01 +00:00
marder 3c1436223f Move placement options from rmgen2 to rmgen-common
Move the placement functions and the getTeamArray from rmgen2 to
rmgen-common, so that those maps can use the placement options as well,
without having to load the whole rmgen2 library.

Differential revision: https://code.wildfiregames.com/D4948
This was SVN commit r27941.
2023-11-19 11:30:04 +00:00
wowgetoffyourcellphone 6002acf833 [Art] Portraits for Persian palace upgrades
This was SVN commit r27940.
2023-11-19 00:18:14 +00:00
wowgetoffyourcellphone 2d0339c77f [Art] Fix a few Persian building props.
This was SVN commit r27939.
2023-11-19 00:11:37 +00:00
marder eeaa4bf159 Fix incorrect random selection for team placement
accepted by: @Freagarach
Differential revision: https://code.wildfiregames.com/D5077
This was SVN commit r27938.
2023-11-18 16:52:40 +00:00
marder f544c6776b Turret walls on Jebel Barkal & outposts on Danubius again
After they had been broken in 21e866fcf0

Author / patch by: @lairkers

Troubleshooting / comments by @elexis @Freagarach

Fixes #6831

This was SVN commit r27937.
2023-11-18 16:10:58 +00:00
Freagarach 0dcaefc2f6 Add error to TechMan. when trying to finish a non-existing technology (e.g. wrong allied_view tech defined).
This was SVN commit r27935.
2023-11-16 09:40:44 +00:00
wowgetoffyourcellphone a90a3a7e48 [Gameplay] Technology | Roman Roads | A special technology for the Romans
Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce
Comments by: @borg-, @chrstgtr
Differential Revision: https://code.wildfiregames.com/D5183
This was SVN commit r27934.
2023-11-13 15:50:28 +00:00
wowgetoffyourcellphone efbee041e9 [Art] Maps | Improve the terrains on Greek Acropolis 4
This was SVN commit r27932.
2023-11-13 00:05:41 +00:00
wowgetoffyourcellphone d8b89fae71 [Gameplay] Correct loot for mercenaries cavs
Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5187
This was SVN commit r27930.
2023-11-11 18:01:57 +00:00
wowgetoffyourcellphone 415d0bb999 [Gameplay] Fix healer loot
Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5186
This was SVN commit r27929.
2023-11-11 18:00:07 +00:00
wraitii 0fec859267 Fix serialization test following 7350b9042e - Fix CalculateTerritories after deserialization
This fixes an issue revealed by 7350b9042e that affected deserialized
games.
Adding tests further highlighted a bug in the calculations, which is
fixed.

Reviewed By: phosit
Fixes #6883

Differential Revision: https://code.wildfiregames.com/D5181
This was SVN commit r27928.
2023-11-11 10:34:24 +00:00
vladislavbelov ba1a67a824 Adds test for loading actor and model having proper flags.
Differential Revision: https://code.wildfiregames.com/D5172
This was SVN commit r27925.
2023-11-08 23:23:03 +00:00
vladislavbelov debbcba9a6 Reduces code duplication of specular calculation in shaders.
Differential Revision: https://code.wildfiregames.com/D5178
This was SVN commit r27924.
2023-11-08 23:07:11 +00:00
wowgetoffyourcellphone 84d935444f [Gameplay] Ram Garrison improves Ram performance
Patch by: @wowgetoffyourcellphone
Accepted by: @chrstgtr, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5179
This was SVN commit r27922.
2023-11-08 05:12:51 +00:00
vladislavbelov a905932712 Moves single descriptor set binding management for Vulkan to a separate class.
Differential Revision: https://code.wildfiregames.com/D5163
This was SVN commit r27921.
2023-11-07 21:43:52 +00:00
vladislavbelov c78ad51057 Fixes incorrect case of GLX extensions. Fixes #6547
Patch By: xone47
Differential Revision: https://code.wildfiregames.com/D5160
This was SVN commit r27920.
2023-11-07 21:28:59 +00:00
wowgetoffyourcellphone 2e68fccd1d [Gameplay] Rename the Temple of Vesta aura and make it a more explicit CapturePoints bonus
Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce
Supporting Comments: @chrstgtr

Differential revision: https://code.wildfiregames.com/D5182
This was SVN commit r27919.
2023-11-07 16:23:38 +00:00
wowgetoffyourcellphone 41cf14be2c [Art] Fixes an oversight in the variant files
Patch by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5149
This was SVN commit r27916.
2023-11-06 04:40:23 +00:00
wowgetoffyourcellphone 97412464ca [Gameplay] "Nile Delta" civ bonus for Ptolemies
Makes all farming techs at the Farmstead available in the Village Phase
(I) for the Ptolemies.

Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5180
This was SVN commit r27915.
2023-11-05 23:43:25 +00:00
phosit b38aa7d6dd Fix compile error introduced in 968e55704a
Change the ternary to a lambda.
Add braces around the while loop body introduced in 50cbe24cc5.

Refs: 968e55704a, 50cbe24cc5

Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5176
This was SVN commit r27914.
2023-11-05 17:59:42 +00:00
wowgetoffyourcellphone 2c6e7a590f [art] Better foundation for Temple of Amun
This was SVN commit r27913.
2023-11-03 16:22:59 +00:00
wowgetoffyourcellphone 4e9e950c8f [Art][Gameplay] A slightly larger chicken model to improve gameplay
This creates a slightly larger chicken model, which helps with visual
identification at the start of the match. I have seen multiple let's
plays where finding the initial chickens took too long (in my opinion),
because I believe they are too small for the game world.

Patch by: @wowgetoffyourcellphone
Original model by: @LangBart
Accepted by: @chrstgtr, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5177
This was SVN commit r27910.
2023-10-30 03:01:44 +00:00
phosit 1352c13369 Make the sea ground height of Elephantine independent from the mapsize.
Fixes: #6848

Comments By: @sera
Differential Revision: https://code.wildfiregames.com/D5132
This was SVN commit r27909.
2023-10-29 14:03:52 +00:00
phosit 968e55704a Make the RLInterface local
refs: #4211

Comments By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5103
This was SVN commit r27908.
2023-10-28 21:11:25 +00:00
vladislavbelov f40942f6b3 Moves CVertexBufferManager from global scope to CRenderer.
Differential Revision: https://code.wildfiregames.com/D5171
This was SVN commit r27907.
2023-10-28 21:01:22 +00:00
phosit 50cbe24cc5 Combine visual and nonvisual path so that there is only one gameloop
Differential Revision: https://code.wildfiregames.com/D5161
This was SVN commit r27906.
2023-10-28 20:54:12 +00:00
phosit dc61483e82 Use std::unique_ptr in CUnitManager and remove unused member functions.
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5173
This was SVN commit r27905.
2023-10-28 12:57:01 +00:00
phosit c90aeee2b3 Remove two globals from MapBrowserPage.js
Comments By: @sera, @elexis
Differential Revision: https://code.wildfiregames.com/D5165
This was SVN commit r27904.
2023-10-28 11:32:37 +00:00
wowgetoffyourcellphone 261d606c25 [Gameplay] Maps | Update the Watering Holes (4 player) skirmish map
This map is small and should incentivize fast gameplay with its
abundance of hunt and berries.

This was SVN commit r27903.
2023-10-27 19:15:11 +00:00
wowgetoffyourcellphone ba635f2790 [Gameplay] Use 'dock' variants for Athenian Marines and Mercenary Archers
Patch by: @real_tabasco_sauce
Accepted by: @chrstgtr, @borg-
Comments by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5168
This was SVN commit r27902.
2023-10-27 17:08:16 +00:00
wowgetoffyourcellphone 8a683854b0 [Gameplay] Add Onager for Romans. This completes the 'Marian Reform' update
Patch by: @real_tabasco_sauce
Accepted by: @borg-, @wowgetoffyourcellphone
Comments by: @Freagarach, @nifa, @Stan

Differential revision: https://code.wildfiregames.com/D5114
This was SVN commit r27901.
2023-10-27 17:00:19 +00:00
wowgetoffyourcellphone 6decff312d [Gameplay] "Marian Reforms" update for the Roman civilization
This is a very unique technology that trades in melee citizen-soldier
infantry in exchange for unlocking Legionaries. Legionaries are similar
to Skiritai except they are cheaper.The idea is that these units can
form the bulk of the Roman army, so they should be cheap, but powerful.
Additional champions remain to supplement these units. And for improved
engagement with Centurions, they gain a special second aura just for
Legionaries, called 'Century Maneuvers"

Patch by: @real_tabasco_sauce
Accepted by: @borg-, @wowgetoffyourcellphone
Comments by: @chrstgtr, @Freagarach,
This was SVN commit r27900.
2023-10-27 16:52:03 +00:00
wowgetoffyourcellphone 0bc6602a41 [Gameplay] Skirmish Map | Isthmus of Corinth (2 players)
Patch by: @wowgetpffyourcellphone
Accepted by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5164
This was SVN commit r27899.
2023-10-27 16:39:15 +00:00
wowgetoffyourcellphone be2791a5ce [Gameplay] "Hero" temple for Ptolemaic Egyptians. Ptolemaic heroes trained from a new "Temple of Isis", along with a new tech pair: "Pharaonic Cult" vs. "Serapis Cult."
Patch by: @borg-
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Supporting comments by: @chrstgtr
Differential revision: https://code.wildfiregames.com/D5169
This was SVN commit r27898.
2023-10-27 16:34:44 +00:00
wowgetoffyourcellphone 9f27a8ef8e Revert Changeset e99fab63d1 "[Gameplay] Celtic female warrior upgrade" after additional discussion between historians and balancers
Refs: e99fab63d1

This was SVN commit r27895.
2023-10-21 15:47:23 +00:00
vladislavbelov 3fb7319df7 Reverts 080599442f as it breaks LOS update. Fixes #6844
Accepted By: wraitii
Differential Revision: https://code.wildfiregames.com/D5162
This was SVN commit r27893.
2023-10-20 21:44:41 +00:00
wowgetoffyourcellphone 5025505918 [Gameplay] Dog Kennel for Britons
Back by popular demand; patch requested by @borg-. This gives the "War
Dog" Kennel building back to the Britons. Previously removed in Alpha
24. Its removal widely lamented since then.

War Dogs removed from the Briton Stable as a consequence.

Patch by: @wowgetoffyourcellphone
Accepted by: @borg-, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5153
This was SVN commit r27890.
2023-10-15 03:45:14 +00:00
wowgetoffyourcellphone 750d2d646c [art] Change base textures of these foundation actors from a struct texture to more efficient blank textures. The base mesh consists of only prop points anyway.
This was SVN commit r27889.
2023-10-14 20:14:34 +00:00
vladislavbelov 5e583beb22 Fixes result of VkDescriptorSet creation forgotten in 6ef27d2ffe.
This was SVN commit r27887.
2023-10-13 18:32:22 +00:00
Freagarach a54dbf4bfd Add brief explanations to the tooltips of the alert buttons.
For a bit of added clarity.

Patch by: @abian
Differential revision: https://code.wildfiregames.com/D5095
Fixes #6850

This was SVN commit r27886.
2023-10-13 09:34:51 +00:00
phosit 29b57026a6 Remove Engine.IsGameStarted completely
Revert 89e511def9

refs: #4211, bc6da5e3f2

Accepted By: elexis
Differential Revision: https://code.wildfiregames.com/D5152
This was SVN commit r27883.
2023-10-12 19:20:56 +00:00
phosit 0eae7442b9 Remove calls to Engine.IsGameStarted in loadgame/*
Accepted By: elexis
Differential Revision: https://code.wildfiregames.com/D5147
This was SVN commit r27882.
2023-10-12 19:07:04 +00:00
vladislavbelov e2c5a62a19 Moves model flags to ModelAbstract.
Differential Revision: https://code.wildfiregames.com/D5146
This was SVN commit r27880.
2023-10-09 18:37:56 +00:00
vladislavbelov 6ef27d2ffe Merges UID from different Vulkan device objects and unifies single type descriptor set creation.
Differential Revision: https://code.wildfiregames.com/D5140
This was SVN commit r27879.
2023-10-09 18:34:50 +00:00
wowgetoffyourcellphone 5283ae98f2 [art] More foundation sizes for large buildings, specifically Wonders
This was SVN commit r27877.
2023-10-08 22:36:43 +00:00
wowgetoffyourcellphone 1108f98431 [Gameplay] Nerf Chandragupta aura
Patch by: @real_tabasco_sauce
Comments by: @borg-
Accepted by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5124
This was SVN commit r27876.
2023-10-08 05:22:18 +00:00
wowgetoffyourcellphone 07fdf0a7f7 [Gameplay] Update PrepareTime for ptol bolt shooter
Ptol bolt shooters have their own prepare time and fire rate, so
following 13c169025c, the ptol bolts were unchanged. This patch brings
this prepare time change to the faster firing bolt shooters.

Patch by: @real_tabasco_sauce
Accepted by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5150
This was SVN commit r27875.
2023-10-07 20:15:33 +00:00
wowgetoffyourcellphone 3cb09ffc4e [Art] Reduced normal effect for Rock materials; they were visually very bad
This was SVN commit r27873.
2023-10-05 05:29:14 +00:00
wowgetoffyourcellphone bef7f787a0 [Art] Some minor actor style fixes (tabs to spaces)
This was SVN commit r27872.
2023-10-05 01:23:39 +00:00
wowgetoffyourcellphone 681e3cfaab [Gameplay] Create a generic 'Longsword' mixin that adds a small splash attack and apply it to the Thracian Black Cloak
This mixin is genericized in order to be useful for other units if
desired. It adds a splash attack, but removes some regular attack to
balance. With this, a champion or other unit can be easily
differentiated. In this instance, it is applied to the Macedonians'
champion swordsman, the Thracian Black Cloak. These guys use the very
long Rhomphaia and Sika swords of Thraco-Dacian origin.

Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce, @borg-
Differential revision: https://code.wildfiregames.com/D5145
This was SVN commit r27871.
2023-10-05 01:03:27 +00:00
wowgetoffyourcellphone e99fab63d1 [Gameplay] Celtic female warrior upgrade
Celtic women were famous for their ferocity and aggressiveness against
enemies and it was common for them to fight alongside men in battles,
especially if the battle had been lost, the women being a strong last
line of defense.


Patch by: @borg-
Accepted by: @chrstgtr, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5125
This was SVN commit r27870.
2023-10-05 00:54:49 +00:00
phosit 5ed3100472 Remove manual memory management in CWorld
Accepted By: @vladislavbelov
Comments By: @sera
Differential Revision: https://code.wildfiregames.com/D5143
This was SVN commit r27868.
2023-10-02 19:47:31 +00:00
phosit 3ea20662f7 Move the game loading out of the SavegameLoader
Accepted By: elexis
Differential Revision: https://code.wildfiregames.com/D5130
This was SVN commit r27867.
2023-10-02 19:31:06 +00:00
wowgetoffyourcellphone 13c169025c [Gameplay][Balance] Reduce bolt and cata prepare time to help with responsiveness/feel
Reduce prepare time for catapults and bolt shooters. Catapults have
recently been nerfed and buffed with a small splash attack. Bolt
shooters are a little underutilized. Both of these units share a
'clunkiness' which is due to their pack/unpack time, minimum range, and
long prepare time. This patch hopes to address part of this clunkiness
by decreasing the prepare time for catas and bolt shooters. This makes
the unit seem more responsive to new commands to attack a different
unit/structure.

Patch by: @real_tabasco_sauce
Accepted by: @wowgetoffyourcellphone
Comments by: @chrstgtr, @Freagarach
Differential revision: https://code.wildfiregames.com/D5131
This was SVN commit r27865.
2023-10-01 02:24:23 +00:00
wowgetoffyourcellphone 03ec53b610 [Gameplay] Create a 'cataphract' mixin to differentiate Cataphract cavalry from other Cavalry
Adds 1/1/1 armor, but +10 metal cost and -5% speed and slightly slower
acceleration and turning

Patch by: @wowgetoffyourcellphone
Accepted by: real_tabasco_sauce
Comments by: @borg- & @chrstgtr
Differential revision: https://code.wildfiregames.com/D5141
This was SVN commit r27864.
2023-09-30 05:01:02 +00:00
phosit 3fff9df4a0 Return CTerrain and CUnitManager references from CWorld instead of pointers
Accepted By: @vladislavbelov
Comments By: @Stan
Differential Revision: https://code.wildfiregames.com/D4739
This was SVN commit r27861.
2023-09-26 20:10:40 +00:00
wowgetoffyourcellphone fcf555b4a8 [Gameplay] Put back Carthaginian champion cavalry to temples and reduce cost of Colonization tech.
Author: @borg-
Accepted by: @chrstgtr, @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5136
This was SVN commit r27858.
2023-09-25 02:17:26 +00:00
wowgetoffyourcellphone ce35c37153 [Gameplay] Adjustments to Hippocrates
This makes some adjustments to Hippocrates by renaming his auras and
tweaking their effects.

Patch by: @wowgetoffyourcellphone
Accepted by: @borg-, @real_tabasco_sauce

Differential revision: https://code.wildfiregames.com/D5138
This was SVN commit r27857.
2023-09-24 20:06:44 +00:00
phosit b9b5881826 Don't assign to need_update
Accepted By: @vladislavbelov, @wraitii
Comments By: @Silier, @Stan
Differential Revision: https://code.wildfiregames.com/D4981
This was SVN commit r27856.
2023-09-24 14:41:27 +00:00
vladislavbelov a2fbfe1ecd Replaces virtual by override for CModelAbstract and derived classes.
Differential Revision: https://code.wildfiregames.com/D5137
This was SVN commit r27854.
2023-09-23 19:53:52 +00:00
wowgetoffyourcellphone f810418cb6 [Gameplay] Slightly reduce cost of Carthaginian apartment and allow their house to upgrade to apartment
Patch by: @real_tabasco_sauce
Accepted by: @wowgetoffyourcellphone
Supportive Comments by: @borg-
Other comments by: @chrstgtr
Differential revision: https://code.wildfiregames.com/D5117
This was SVN commit r27852.
2023-09-22 06:23:55 +00:00
wowgetoffyourcellphone 4c8c08af8e [Gameplay] Turn off elephant friendly fire
Patch by: @real_tabasco_sauce
Accepted by: @borg-, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5054
This was SVN commit r27851.
2023-09-22 05:39:18 +00:00
wowgetoffyourcellphone da84ce48fa [Gameplay] Give the name of the civilization for the generic name of the relic
Patch by: @borg-
Accepted by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5134
Fixes #6728

This was SVN commit r27850.
2023-09-22 05:35:13 +00:00
wowgetoffyourcellphone d046748fe3 [Gameplay] Cavalry units created from a Han academy should be able to enter it
Patch by: @borg-
Accepted by: @Freagarach, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5133
Refs #6745

This was SVN commit r27849.
2023-09-22 05:32:46 +00:00
wowgetoffyourcellphone 132a6fd3da [Gameplay] Reduce loom cost
Accepted by: @borg-, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5118
This was SVN commit r27848.
2023-09-22 05:29:30 +00:00
vladislavbelov c86d3bbb56 Refactors models and materials, part 2, replaces raw pointer by unique_ptr and adds test.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D5128
This was SVN commit r27846.
2023-09-21 19:00:28 +00:00
vladislavbelov 5214a4c073 Fixes SPIRV compile script for newer versions of spirv-reflect.
Differential Revision: https://code.wildfiregames.com/D5123
This was SVN commit r27845.
2023-09-20 17:25:14 +00:00
vladislavbelov b8cd3a0268 Refactors models and materials, part 1, reduces amount of mutable properties.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D5108
This was SVN commit r27841.
2023-09-14 08:37:06 +00:00
vladislavbelov af13be489e Adds printing error names to Vulkan backend.
Differential Revision: https://code.wildfiregames.com/D5121
This was SVN commit r27839.
2023-09-13 17:36:52 +00:00
wowgetoffyourcellphone 5ac0b48639 [Gameplay] Druids Aura, "Deas Celtica"
Druids increase attack rates of soldiers near them slightly. This
fulfills a decade+ design element in the old Celtic civ design profiles.

Patch by: @borg-
Positive Comments by: @chrstgtr
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5116
This was SVN commit r27836.
2023-09-11 00:15:53 +00:00
wowgetoffyourcellphone 95530eb44a Refactor Capturable Farmstead feature/templates
Attempts to address Invalid warning messages for capturable farmsteads
and creates a mixin as suggested by @Langbart

Renames the "farmsteads_" template files to "mill_" to eliminate
confusion with standard buildable farmsteads and changes the refs in the
skirmish maps to suit.

Genericizes the name to Rotary Mill instead of Farmstead, again to
eliminate confusion between the two (the former is a capturable map
object, while the latter is a player-buildable structure).

Fixes #6818
Differential revision: https://code.wildfiregames.com/D5113
This was SVN commit r27835.
2023-09-11 00:08:13 +00:00
wowgetoffyourcellphone 99e6a2fed8 GAMEPLAY | Add a chariot mixin for chariot units which differentiates them from regular cavalry
Accepted by: @real_tabasco_sauce
Comments by: @Freagarach
Differential revision: https://code.wildfiregames.com/D5119
This was SVN commit r27834.
2023-09-10 23:26:09 +00:00
vladislavbelov fdbcb79c3d Queries water manager only if a model should account it.
Tested By: phosit
Differential Revision: https://code.wildfiregames.com/D5122
This was SVN commit r27833.
2023-09-10 18:00:30 +00:00
Freagarach becc09c23e Add some chat messages to PetraAI.
Adds some nice variation.

Patch by: @abian
Differential revision: https://code.wildfiregames.com/D5100
This was SVN commit r27832.
2023-09-08 09:22:57 +00:00
Freagarach c3d9943dd0 Bring back (small) splash for catapults, heavy ship.
Catapults and heavy warships received a nerf to their range, which was
also designed to stop infinite targeting of structures outside of vision
range. This was a substantial nerf, from 100 range to 85. This change
compensates for this range reduction by slightly improving their
versatility.
This is not the same splash we have seen in previous alphas, as it is
only a radius of one meter. It also makes them exciting as you could
land some epic shots if your enemy is very tightly bunched.

Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5053
Accepted by: @borg-
Comments by: @chrstgtr, @wowgetoffyourcellphone
This was SVN commit r27831.
2023-09-08 09:14:11 +00:00
wowgetoffyourcellphone 1dc7ca055f [Gameplay] Roman Civ Bonus | Rome can train women in houses without needing to research "Fertility Festival." This is to represent the population density of ancient Rome.
Patch by: borg-
Accepted by: @wowgetoffyourcellphone, @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D5112
This was SVN commit r27829.
2023-09-07 04:22:10 +00:00
wowgetoffyourcellphone 333c28d2e9 [Gameplay] Differentiate Macedonia
Patch by @borg-

Accepted by: @real_tabasco_sauce, @chrstgtr
Differential Revision: https://code.wildfiregames.com/D5096
This was SVN commit r27828.
2023-09-07 04:12:40 +00:00
wowgetoffyourcellphone 9a05fa69ee [Gameplay] Agis given an aura
Patch by borg-

Differential Revision: ​D5099
This was SVN commit r27827.
2023-09-07 04:06:26 +00:00
vladislavbelov 442eb3ad4f Avoids creating a post-processing blur texture with zero size.
This was SVN commit r27825.
2023-09-04 18:08:00 +00:00
Freagarach a10e025324 Fix typo in c917c39a0d.
Reported by @Mr.lie at
https://wildfiregames.com/forum/topic/108069-diplomacy-broken-since-rev-27722.
Based on a patch by: @elexis
This was SVN commit r27824.
2023-09-04 13:05:36 +00:00
phosit 3d2561f096 No recursive calls in FunctionWrapper.h
Accepted By: @wraitii, @vladislavbelov
Comments By: @Stan
Differential Revision: https://code.wildfiregames.com/D4728
This was SVN commit r27821.
2023-09-02 14:20:25 +00:00
vladislavbelov b7ef2f2d72 Provides entity ID for unit in its constructor.
Refs 2eac4af3a4, refs 56bb858802, 91ad17c685, 72bd886f80.

Differential Revision: https://code.wildfiregames.com/D5110
This was SVN commit r27818.
2023-08-28 18:01:44 +00:00
vladislavbelov 37b2f93a3c Adds texture checks for framebuffer attachments on Vulkan.
This was SVN commit r27817.
2023-08-28 17:53:41 +00:00
phosit e72ad82909 Remove the use of std::iterator in EntityMap.h
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5105
This was SVN commit r27813.
2023-08-23 12:31:07 +00:00
phosit 4524188611 Rename requires to required in Hotkey.*
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5104
This was SVN commit r27812.
2023-08-23 12:24:07 +00:00
vladislavbelov 82bf9bb902 Removes WInit module completely. Refs #2611
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D5085
This was SVN commit r27810.
2023-08-22 17:59:01 +00:00
vladislavbelov 11e8f80b58 Fixes descriptor pool type for GetSingleTypePool.
This was SVN commit r27809.
2023-08-22 17:48:22 +00:00
wowgetoffyourcellphone d832791fb1 Lightens the repair icon slightly for the UI.
Fixes #6856

This was SVN commit r27806.
2023-08-18 05:49:22 +00:00
Freagarach 86e22731e7 Fix missing space in TaC of the userreporter.
Reported by rodrigo.vegas at Transifex.

This was SVN commit r27805.
2023-08-17 06:37:39 +00:00
Freagarach 986751d234 Add 10% health on hoplite tradition tech.
With the change to the Spartan bonus, it is interesting to add +10%
health to the hoplite tradition tech.
The hoplites dominated warfare for a long time, and it is fair to keep
this bonus somehow.

Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D5098
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
This was SVN commit r27804.
2023-08-16 10:23:28 +00:00
Freagarach 3ad1e487a9 Add a civbonus entry to rome.json explaining centurions.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5083
Comments by: @asterix, @borg
This was SVN commit r27803.
2023-08-16 10:07:23 +00:00
Freagarach 0ee8a1499c Add and adjust civbonus entries for spart.json and athen.json.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5087
Comment by: @borg-
Accepted by: @borg-, @wowgetoffyourcellphone
This was SVN commit r27802.
2023-08-16 10:01:48 +00:00
Freagarach abe2ab4f08 Don't show the amount in the mutli-entity view when merely one type of a unit is selected.
Patch by: @abian
Differential revision: https://code.wildfiregames.com/D5075
Fixes #6841

This was SVN commit r27801.
2023-08-16 09:56:57 +00:00
Freagarach 48de9e32f0 Fix performance drop and memory leak on networked AI matches.
When playing a network game with at least one AI, and an AI dies, after
a while there will be an increasing lag on the system, eventually
freezing the screen for e.g. 4 seconds every 5 seconds.
It turned out that once the AI is dead, the savedEvents grew endlessly.
Causing issues down the line (hashing).

That is now fixed by discarding savedEvents when the AI is defeated.

Patch by: @lairkers
Differential revision: https://code.wildfiregames.com/D5042
Comments by: @phosit, @wraitii
This was SVN commit r27800.
2023-08-16 09:48:24 +00:00
vladislavbelov 5ba7ec3bfa Removes scissor backend setup from GUI.
Differential Revision: https://code.wildfiregames.com/D5051
This was SVN commit r27798.
2023-08-15 17:29:45 +00:00
vladislavbelov 23f1949e2a Handles VK_INCOMPLETE for vkGetSwapchainImagesKHR.
Differential Revision: https://code.wildfiregames.com/D5090
This was SVN commit r27797.
2023-08-15 17:27:23 +00:00
bb 82204a6db9 Fix the test_checkDiff translation tool tester
Differential Revision: D5091
This was SVN commit r27796.
2023-08-14 20:23:09 +00:00
wowgetoffyourcellphone 3bb17ea06c Fix Liu Bang's cavalry attack aura
Reported here: https://wildfiregames.com/forum/topic/107591-hero-bug/

Fixes #6837

Differential Revision: D5080
Accepted by: Freagarach
Comments by: sera and real_tabasco_sauce
This was SVN commit r27794.
2023-08-12 16:59:13 +00:00
bb 5cb9e32b73 Add linter rule detecting project name misspellings.
Reviewed By: Freagarach
Differential Revision: D4313
This was SVN commit r27787.
2023-07-27 20:56:52 +00:00
bb 157c6af18e Make the space in 0 A.D. non-breaking throughout the codebase.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful

Will add linter rule in seperate commit

Happy recompiling everyone!

Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
2023-07-27 20:54:46 +00:00
vladislavbelov 94e30ae08e Adds mipLODBias usage to Vulkan samplers.
This was SVN commit r27784.
2023-07-25 20:22:28 +00:00
phosit 80bcf944bc Don't convert actions to void*
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5044
This was SVN commit r27783.
2023-07-25 07:50:33 +00:00
phosit 909a81bc87 Correct syntax mistakes made in b7d776175b
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5068
This was SVN commit r27781.
2023-07-24 08:19:19 +00:00
Freagarach 2f930661ce Differentiate Athenians.
This gives them a new hero (Hippocrates; recruitable from the tempel)
and some unique Naval bonuses.

Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D3727
Accepted by: @real_tabasco_sauce
Comments by: @chrstgtr, @ValihrAnt, @wowgetoffyourcellphone
This was SVN commit r27779.
2023-07-22 14:52:34 +00:00
Freagarach c5de5f0fb2 Add descriptions to formations.
Patch by: @abian
Differential revision: https://code.wildfiregames.com/D5074
Fixes #6838
Comment by: @real_tabasco_sauce
This was SVN commit r27778.
2023-07-22 14:14:03 +00:00
Freagarach bc85236a38 Fix formation slow-down after stopping.
Introduced in 291f17b3c5.
Reported by @gameboy at
https://wildfiregames.com/forum/topic/107588-problems-with-different-queues-when-marching/.

Differential revision: https://code.wildfiregames.com/D5064
Comment by: @wraitii
This was SVN commit r27777.
2023-07-22 14:04:59 +00:00
Freagarach 557f911479 Fix missing ? in 435d842bc1.
Noticed by @elexis.

This was SVN commit r27776.
2023-07-22 13:56:28 +00:00
Freagarach 7da94fc18f Differentiate Sparta.
This differentiates Sparta by giving them P1 champions, a Hero-oriented
team bonus and a new unit.

Sparta should rely heavily on their extremely powerful melee infantry,
hence the focus is on that with choice and upgrade.

Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D4736
Accepted by: @chrstgtr, @real_tabasco_sauce
Comments by: @Langbart, @marder, @wowgetoffyourcellphone
This was SVN commit r27775.
2023-07-22 13:54:09 +00:00
vladislavbelov e4ba25ba35 Returns Windows paths by value to avoid unnecessary allocation management and follow sys_ExecutablePathname.
This was SVN commit r27773.
2023-07-21 22:31:26 +00:00
vladislavbelov ede3605b2f Removes forbidden and unused USE_SPECULAR from model shader.
This was SVN commit r27770.
2023-07-19 18:04:40 +00:00
vladislavbelov f2938aaa28 Refactors normal calculation in model and terrain shaders.
Differential Revision: https://code.wildfiregames.com/D5081
This was SVN commit r27769.
2023-07-19 17:29:13 +00:00
phosit 8b761fec29 Constrain the FSM-transition to have at most one action.
Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D5059
This was SVN commit r27768.
2023-07-19 12:23:53 +00:00
vladislavbelov 1ff0b8f69f Removes caching Windows version in wversion.
Differential Revision: https://code.wildfiregames.com/D5063
This was SVN commit r27766.
2023-07-18 20:40:15 +00:00
vladislavbelov f36f136c20 Moves WriteSystemInfo from Util to HWDetect.
Differential Revision: https://code.wildfiregames.com/D5050
This was SVN commit r27765.
2023-07-18 20:32:21 +00:00
vladislavbelov 70d89254c8 Fixes linking failure solution introduced in 48ba4d9cb4 for SDL dependency.
Refs #3138

Accepted By: Itms
Differential Revision: https://code.wildfiregames.com/D5065
This was SVN commit r27764.
2023-07-18 20:21:59 +00:00
vladislavbelov 7378692c89 Fixes CGUISimpleSetting warnings and allows it to be moved.
Differential Revision: https://code.wildfiregames.com/D5071
This was SVN commit r27763.
2023-07-18 20:01:22 +00:00
vladislavbelov 5807e2982f Makes GL ShaderProgram stage independent.
Differential Revision: https://code.wildfiregames.com/D5069
This was SVN commit r27761.
2023-07-17 22:07:13 +00:00
phosit 649f69b00b Reference CModel* using PS::span in the ModelRenderer
Now a range-based for loop is used to iterate.

Accepted By: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4953
This was SVN commit r27757.
2023-07-08 12:46:21 +00:00
vladislavbelov 85bc074ae5 Moves script interface Object include out of FunctionWrapper header.
Differential Revision: https://code.wildfiregames.com/D5067
This was SVN commit r27755.
2023-07-07 20:12:16 +00:00
vladislavbelov 624df119ef Fixes Windows build for some configurations after 70e7acfb26.
The divergence for /DELAY* options was started in 137487c521.
Refs 2405a98b58 and 09df66f871, ec3452679c, 82dc962a56, 137487c521.

Differential Revision: https://code.wildfiregames.com/D5070
This was SVN commit r27752.
2023-07-05 20:31:56 +00:00
phosit 47a7f78c9d Change %c to %lc for wchar arguments.
swprintf_s expected an argument of type char (due to %c). Given an
argument of type wchar.
This fixes N7 and N8 from #5288

Refs #5288

Patch By: @animus
Accepted By: @phosit, @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4993
This was SVN commit r27751.
2023-07-05 07:37:28 +00:00
vladislavbelov e60bed753f Removes redundant and unused wutil_ExecutablePath as we have sys_ExecutablePathname.
Last usage was removed in ada16439ab.

This was SVN commit r27749.
2023-07-02 21:24:15 +00:00
vladislavbelov 0caddf2c89 Removes unused wutil_SystemPath forgotten in 9aad0137ba.
This was SVN commit r27748.
2023-07-02 21:19:07 +00:00
vladislavbelov a71a20cb60 Replaces statically cached current thread handle on Windows by lazy initialized thread_local variable.
Differential Revision: https://code.wildfiregames.com/D5062
This was SVN commit r27747.
2023-07-02 20:28:50 +00:00
vladislavbelov 4e86f99fe2 Replaces boost string general includes by more precise ones.
Differential Revision: https://code.wildfiregames.com/D5066
This was SVN commit r27746.
2023-06-30 19:10:13 +00:00
vladislavbelov a9fc21fae7 Fixes printing a log of a GL shader compilation following b193633e59.
This was SVN commit r27745.
2023-06-30 10:02:24 +00:00
vladislavbelov b193633e59 Moves GLSL compiling function out of CShaderProgram as it's independent.
This was SVN commit r27743.
2023-06-27 21:27:56 +00:00
phosit b7d776175b Add a test for the FSM
Accepted By: @wraitii
Differential Revision: https://code.wildfiregames.com/D4902
This was SVN commit r27742.
2023-06-27 19:20:41 +00:00
phosit 766b0820f7 Use std::function in the Loader.
Accepted By: @wraitii
Differential Revision: https://code.wildfiregames.com/D4989
This was SVN commit r27740.
2023-06-26 18:35:34 +00:00
vladislavbelov f3adb5d075 Removes unused main_window_name forgotten in 63c1347ef7.
This was SVN commit r27738.
2023-06-25 22:39:37 +00:00
Freagarach ce25351443 Fix typo in CanTrade.
Introduced in c917c39a0d.
Reported by @gameboy at
https://wildfiregames.com/forum/topic/107586-an-error-occurred/?do=findComment&comment=553753.

Also adds a small test.

Differential revision: https://code.wildfiregames.com/D5060
Reviewed by: @wraitii
This was SVN commit r27737.
2023-06-23 12:58:14 +00:00
Freagarach 435d842bc1 Fix Gaia not being its own mutual ally.
For `!0 === false`.
Reported by: @gameboy at
https://wildfiregames.com/forum/topic/107586-an-error-occurred/.
Introduced in c917c39a0d.

Differential revision: https://code.wildfiregames.com/D5058
Reviewed by: @wraitii
This was SVN commit r27736.
2023-06-23 12:53:49 +00:00
Freagarach f4caf15710 Fix missed allied view tech in init.
Noticed by @gameboy at
https://wildfiregames.com/forum/topic/107586-an-error-occurred/.
Introduced in c917c39a0d.

Differential revision: https://code.wildfiregames.com/D5057
Reviewed by: @wraitii
This was SVN commit r27735.
2023-06-23 12:51:03 +00:00
vladislavbelov fb065a4022 Removes manual loading of Windows functions unavailable on XP from wvm.
This was SVN commit r27734.
2023-06-23 12:09:33 +00:00
vladislavbelov 70e7acfb26 Removes manual unload of delay-loaded DLLs on Windows.
Differential Revision: https://code.wildfiregames.com/D5056
This was SVN commit r27733.
2023-06-23 11:55:33 +00:00
wraitii 3190729f85 Small bugfix in Petra's Defense manager
We were incorrectly comparing an object to a number.
I don't think this will drastically change the AI behaviour as it's
rather an edge case.

Reviewed By: Freagarach
Differential Revision: https://code.wildfiregames.com/D5030
This was SVN commit r27732.
2023-06-23 07:22:43 +00:00
wraitii 7df7566d7c Fix 'Options' asking for confirmation without changes during a game.
Since 281bb0b2ec, opening the 'Options' menu in-game will show that
there are pending changes, even if the user has done nothing.
Unfortunately the cinematic logic to hide silhouettes, which comes from
cfd08bbf28, is broken following those changes. We use the configuration
to hide them, which results in us, indeed, changing the configuration.

There isn't really a good short term fix. This change only attemps to
reset the setting if we changed it for a cinematic, which fixes the
issue, but has drawbacks.
Ideally, we would use a superior config level, but we need to be careful
about exposing that to JS.

Reported by: langbart
Fixes #6821

Differential Revision: https://code.wildfiregames.com/D5040
This was SVN commit r27730.
2023-06-23 07:19:16 +00:00
wraitii 87063a94ff Pass ScriptRequest instead of ScriptInterface in simulation messages.
The previous code was constructing un-necessary ScriptRequest objects.
Minor optimisation from not entering/leaving realms.

Differential Revision: https://code.wildfiregames.com/D5026
This was SVN commit r27728.
2023-06-21 07:50:00 +00:00
wraitii dafa5ab774 Minor optimisations when calling JS functions from C++
ScriptFunction::Call_ checks HasProperty, but then JS_CallFunctionName
calls GetProperty. This is redundant and can be simplified.

Reviewed By: phosit
Differential Revision: https://code.wildfiregames.com/D5000
This was SVN commit r27726.
2023-06-20 11:40:18 +00:00
vladislavbelov 92c9cc5206 Removes delayed loading of RtlCaptureContext as it's available since Windows XP.
This was SVN commit r27725.
2023-06-20 08:54:29 +00:00
wraitii 73ec56a44e Optimisations to vertex pathfinder - relax optimality, sort unaligned edges
Two changes to the vertex pathfinder that should generally improve
performance:
 - Sort unaligned edges by distance like we did aligned edges. This
isn't very scientific, but the idea is generally sound, and empirically
it seems to do OK.
 - Relax the optimality by using a weighted heuristic, with weight 4/3
or 5/3 depending on the number of obstacles around. In the worst cases,
A* will return paths that are this many times less optimal, but search
should be faster in general (and sometimes much faster).

Both of these optimisations might increase the constant-cost slightly,
but should decrease the worst-case runtimes.

Differential Revision: https://code.wildfiregames.com/D5034
This was SVN commit r27724.
2023-06-20 07:14:11 +00:00
Freagarach c917c39a0d Pull Diplomacy out of cmpPlayer.
Who says only players should be able to conduct diplomacy?
Also separation of concerns, more maintainable files.

Differential revision: https://code.wildfiregames.com/D4921
Comments by: @elexis, @Stan
Refs. #5894

This was SVN commit r27722.
2023-06-19 06:33:33 +00:00
vladislavbelov 54c606e6aa Removes LowFragmentationHeap from Windows as it's enabled by default since Vista.
Differential Revision: https://code.wildfiregames.com/D5048
This was SVN commit r27720.
2023-06-18 16:34:29 +00:00
vladislavbelov f8798c2245 Removes wversion_Number usage from wvm as we don't support XP anymore.
Differential Revision: https://code.wildfiregames.com/D5049
This was SVN commit r27719.
2023-06-18 16:32:14 +00:00
vladislavbelov 3d071e4649 Removes OpenGL driver DLL version from reports on Windows.
Differential Revision: https://code.wildfiregames.com/D5052
This was SVN commit r27718.
2023-06-18 16:29:13 +00:00
phosit e31d70f059 Removes waiting from MapGenerator. This makes the game window more responsible during map generating.
- remove `SDL_Delay(100)`
- the progress is now an `std::atomic` (not protected by the mutex
anymore)

Based On Patch By: @vladislavbelov
Accepted By: @wraitii
Differential Revision: https://code.wildfiregames.com/D3676
This was SVN commit r27717.
2023-06-18 12:19:26 +00:00
wowgetoffyourcellphone 5e12848511 Remove these 3 terrains, which are no longer necessary.
This was SVN commit r27715.
2023-06-16 17:10:35 +00:00
vladislavbelov ea1c6a8d11 Removes wdbg_heap from tests following 7782aa95f1.
This was SVN commit r27714.
2023-06-16 16:44:21 +00:00
wowgetoffyourcellphone e2fb23731c Fix | Mauryan Palace
Reported to me by: Stan'
Fixes #6825

This was SVN commit r27713.
2023-06-16 16:39:55 +00:00
vladislavbelov 186bedae56 Removes unused Windows sample-based custom profiler. Usage was removed in 56bd5b59b4.
Differential Revision: https://code.wildfiregames.com/D5047
This was SVN commit r27712.
2023-06-16 16:38:18 +00:00
vladislavbelov e4bcfd0556 Removes winit usage from wtime. LatchInitialSystemTime was added in c45ef68a88 and unused since ada16439ab.
Differential Revision: https://code.wildfiregames.com/D5046
This was SVN commit r27711.
2023-06-16 16:36:34 +00:00
vladislavbelov 7782aa95f1 Removes custom debug heap analysis on Windows.
Differential Revision: https://code.wildfiregames.com/D5045
This was SVN commit r27710.
2023-06-16 16:34:10 +00:00
wowgetoffyourcellphone 85bb745295 Fix | Art | Royal Palm texture transparency.
Reported by: @nifa
This was SVN commit r27709.
2023-06-16 16:02:47 +00:00
Freagarach fdd30b3d85 Some cleaning in the Barter component.
- Add explicit variables for magic values.
- `let`s to `const`.
- Don't start the regen timer when not needed.

Differential revision: https://code.wildfiregames.com/D4965
Comments by: @Stan
This was SVN commit r27707.
2023-06-16 06:25:36 +00:00
Freagarach 291f17b3c5 Reset speed when stopping.
And use an explicit function for running.

Differential revision: https://code.wildfiregames.com/D4957
Comments by: @Stan
This was SVN commit r27706.
2023-06-15 06:56:41 +00:00
wowgetoffyourcellphone 0e57957a09 Maps | Fix and improve the Libyan Oasis 2p skirmish map
This was SVN commit r27704.
2023-06-14 16:21:35 +00:00
wowgetoffyourcellphone 5ede423224 Art | Fix | Fix texture refs to some head actors
This was SVN commit r27703.
2023-06-14 16:20:40 +00:00
phosit 8480cfc35f Remove FSM conditions.
FSM conditions aren't used. So this removes dead code.

Accepted By: @wraitii
Differential Revision: https://code.wildfiregames.com/D4959
This was SVN commit r27702.
2023-06-14 14:58:37 +00:00
wraitii 298f207e5b Improve AttackEntitiesByPreference by short-circuiting on best possible preference.
Similar trick to D3446 / c87229aa48 - we can short-circuit if we find
units that match our best possible preference.
This is, in particular, almost a 40% wall time improvement on Combat
Demo Huge, but it should apply in a number of more normal cases.

Differential Revision: https://code.wildfiregames.com/D5020
This was SVN commit r27701.
2023-06-14 07:52:30 +00:00
wraitii 64efa0acf9 Delay a distance computation in UnitMotion.
Minor optimisation to computing a point goal.

Differential Revision: https://code.wildfiregames.com/D5035
This was SVN commit r27700.
2023-06-14 07:48:45 +00:00
wraitii 61e932a890 Turn off SPECTRE mitigation in jit code
SPECTRE attacks mitigations were added to SpiderMonkey's JIT output in
version 57. Turning these off is a very large speedup, around 10-20%
wall time (on my computer) depending on the map and the situation.
For the most part, from profiling on my machine, this is from memory
fences after JIT -> C++ calls. 0 A.D. does a lot of these.

The SPECTRE class of attack is a timing attack based on speculative
execution to leak sensitive information, and it seems extraordinarily
unlikely that something like this could be successfully mounted using 0
A.D.

Differential Revision: https://code.wildfiregames.com/D5014
This was SVN commit r27699.
2023-06-14 07:44:23 +00:00
wraitii 9399ba043e Speed up AI computation by not using structured clones
Following the AI unthreading in 4df03ed2d2 / D3769, structured clones
are no longer needed to pass the gamestate around.
This is much faster, about 10-15% wall time on an AI 1v1 profile.

This also potentially reduces memory fragmentation and GC needs, as
writing clones allocated a lot of data.

Differential Revision: https://code.wildfiregames.com/D5019
This was SVN commit r27698.
2023-06-14 07:32:22 +00:00
wraitii e5acc73fcf Remove useless line from 507f44f7f9
This is unused and makes the function twice as slow as it needs to be.

Differential Revision: https://code.wildfiregames.com/D5015
This was SVN commit r27697.
2023-06-14 07:28:37 +00:00
wraitii cce7d02036 Bugfix & optimisations to ApplyModifiers
This functions is amongst the most called in JS, so it's important to
make it speedy.

- Bugfix: if 'originalValue' is falsy, the result was never cached. This
in particular affected the minRange of archers, which is 0. It's a large
optimisation on combatDemoHuge, but the effect elsewhere is less likely
to be noticeable.
- Don't go through the helper to get the player Entity ID, in this case
it's slower.
- Concat is slower than Flat() in this case according to my profiling.
- Some micro-optimisation by strict equality.

Differential Revision: https://code.wildfiregames.com/D5012
This was SVN commit r27696.
2023-06-14 07:27:06 +00:00
wraitii 080599442f Don't send PositionChanged messages in TurnTo when not actually turning
FaceTowardsTarget is called quite often by UnitAI, and we can skip some
un-necessary messages as an optimisation.

Differential Revision: https://code.wildfiregames.com/D5005
This was SVN commit r27695.
2023-06-14 07:23:05 +00:00
vladislavbelov 44611294de Fixes Sampler::Desc comment about using BorderColor.
This was SVN commit r27694.
2023-06-14 07:14:31 +00:00
vladislavbelov 8f78ac1ef8 Decouples renderer code from VideoMode to get backend device.
Differential Revision: https://code.wildfiregames.com/D5043
This was SVN commit r27693.
2023-06-14 07:06:22 +00:00
Freagarach 5893c4bc85 Allow to set the biome with the autostart command.
Basically a patch by: @wraitii
Differential revision: https://code.wildfiregames.com/D4976
Comments by: @bb, @sera
Accepted by: @Langbart
Fixes #6521

This was SVN commit r27692.
2023-06-14 06:35:27 +00:00
wowgetoffyourcellphone f64b3f773e Art | Misc actor and texture improvements
This was SVN commit r27690.
2023-06-14 01:23:30 +00:00
wowgetoffyourcellphone 14dd3c0aad Make Farmstead aura icon appear over affected Fields as well as gatherers
This was SVN commit r27689.
2023-06-14 01:19:27 +00:00
wowgetoffyourcellphone 70c83b9c3d Art | Add a new variant texture for Spartan women
This was SVN commit r27688.
2023-06-14 01:18:03 +00:00
wowgetoffyourcellphone 466968ca3e Art | Buildings | New Gallic structure textures with roof shingles instead of thatch.
This was SVN commit r27687.
2023-06-14 01:16:47 +00:00
wowgetoffyourcellphone 227bc8db02 Maps | Update a bunch of skirmish maps and add a new one (Arabian Oases 2p)
This was SVN commit r27686.
2023-06-14 01:13:44 +00:00
wowgetoffyourcellphone 075d8589f3 Art | Player color for Greek defense tower
This was SVN commit r27685.
2023-06-14 01:07:15 +00:00
wowgetoffyourcellphone 9aa118d6be Art | Move Mauryan heads to the correct folder.
This was SVN commit r27684.
2023-06-14 01:01:56 +00:00
wowgetoffyourcellphone 22cbd39bbd Civs | Remove AI names which duplicate in-game heroes.
This was SVN commit r27683.
2023-06-14 00:57:58 +00:00
wowgetoffyourcellphone aa7dfc196e Art | New model for the Mauryan Palace
This was SVN commit r27682.
2023-06-14 00:56:01 +00:00
wowgetoffyourcellphone 59a805dac8 Art | Fix the ostrich feather actors for Nubian units
This was SVN commit r27681.
2023-06-14 00:36:05 +00:00
wowgetoffyourcellphone 50453f1e1f Art | Use a better portrait for Whales
This was SVN commit r27680.
2023-06-14 00:34:18 +00:00
wowgetoffyourcellphone df2a0cf3ab Art | New and improved terrains
New Farmland terrains for various biomes

Remove alpha channel from numerous terrain normal maps

This was SVN commit r27679.
2023-06-14 00:32:34 +00:00
wowgetoffyourcellphone 46b374b855 Art | Greatly improve the look of some ship sail actors
This was SVN commit r27678.
2023-06-14 00:18:27 +00:00
wowgetoffyourcellphone 50e78c1af5 Art | Some new assets
Mediterranean Bush (dry)
Stone and Rock fences by @Wow
New props for Briton and Gallic formation standards
New Kushite Shields by @Stan
Saharan capturable farmstead
Celtic Shrine (with improved textures)
Royal Palm tree

This was SVN commit r27677.
2023-06-14 00:15:28 +00:00
wowgetoffyourcellphone 95546c8a1d Art | unit portraits | Update a bunch of unit portraits
This was SVN commit r27676.
2023-06-13 23:20:27 +00:00
wowgetoffyourcellphone 553149957d Art | Technology portraits | Update some older tech portraits and add a few new ones.
This was SVN commit r27675.
2023-06-13 23:13:41 +00:00
wraitii 3991c5c857 Speed up timer update by using Map.forEach
According to JIT profiling on SM 115, using ForEach is faster than
iterating.
This is a micro optimisation, maybe 2% faster for OnUpdate, which means
we might see an overall improvement < 0.4%.

The reason this is faster here is that Iterating needs to construct an
array to store the result, whereas ForEach just uses the values
directly. This means this probably doesn't apply to iterating if we
don't need both the key/value pair.

Differential Revision: https://code.wildfiregames.com/D5010
This was SVN commit r27674.
2023-06-13 15:57:18 +00:00
wraitii 7350b9042e Don't poll territory in Position component
CmpPosition::TurnStart checks whether the territory changed underneath
each entityevery turn. The only user of this is TerritoryDecay
(structures, for the most part). It is rather inefficient to have this
done for all entities.
The simplest solution is to listen to position-changed messages in
TerritoryDecay instead. This should hardly ever happen in vanilla 0
A.D., except in Atlas, so it's basically free.

This sort of reverts 19965ce37a (original implementation) and
c44b48bd59.

Accepted By: Freagarach (concept only)
Differential Revision: https://code.wildfiregames.com/D5009
This was SVN commit r27673.
2023-06-13 15:48:03 +00:00
Dunedan 2a17a2866e Update the rules for new lobby usernames
Right now usernames for the lobby can consist solely of numbers and
special characters. This can result in nonsensical usernames and is
prone to be abused. While we can't entirely prevent nonsensical
usernames, we can at least do a bit better.

Therefore, this adjusts the rules for the validation of new lobby
usernames in pyrogenesis. Previously these rules were:

- length: between 1 and 20 characters
- valid characters: lower- and uppercase letters, numbers, ".", "_", "-"

The new rules are:

- length: between 3 and 20 characters
- valid characters: lower- and uppercase letters, numbers, ".", "_", "-"
- must contain at least one letter

These validation changes are relevant for new user registrations only
and don't affect existing users. As this also just adjusts the
client-side validation, users will also still be able to register
usernames according to the old rules, e.g. when using an older version
of 0 A.D., until the same change gets rolled out at a later point in
time server-side as well.

This was SVN commit r27670.
2023-06-08 15:21:04 +00:00
wowgetoffyourcellphone b131e641f5 Fix visual glitch in slaughtering: This adds a PrepareTime to the Slaughter attack. Has negligible affect on gameplay, but fixes a minor, but ugly visual glitch where the animal dies too quickly, without even being stabbed first.
Differential Revision: https://code.wildfiregames.com/D5017
Accepted by: @chrstgtr
Supportive comments by: @real_tabasco_sauce, @Freagarach, @Feldfeld
This was SVN commit r27669.
2023-06-07 15:58:26 +00:00
wraitii f2ca8f7787 Balance the splash damage of Elephants.
- Move the Crush damage from Splash to direct hit.
- Reduce overall damage slightly

Accepted By: Feldfeld
Differential Revision: https://code.wildfiregames.com/D5008
This was SVN commit r27668.
2023-06-06 07:10:03 +00:00
wraitii 0d5cc1b994 Fix game crash when communicating with the lobby on macOS 13
Summary:
On macOS Ventura (at least version 13.2.1 and above), the game crashes
instantly when clicking on buttons communicating with the lobby.

This issue is solved by upgrading nettle to 3.9 and GNUTLS to 3.8.

Patch by: froissant
Accepted By: wraitii
Trac Tickets: #6807

Differential Revision: https://code.wildfiregames.com/D5018
This was SVN commit r27667.
2023-06-06 07:07:50 +00:00
vladislavbelov 9707931878 Fixes Vulkan hazards reported by validation layers.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D5024
This was SVN commit r27665.
2023-06-05 16:32:18 +00:00
vladislavbelov 1b948580c7 Adds color blend state to Vulkan pipeline description only if color attachments are present.
This was SVN commit r27661.
2023-06-01 17:48:23 +00:00
vladislavbelov 753949eb73 Enables PolygonMode for Vulkan only when allowed by fillModeNonSolid.
This was SVN commit r27660.
2023-06-01 17:12:27 +00:00
Stan 7c07083724 Fix the removal of implicit conversions in libfmt 10 by using explicit casts.
Patch by: @phosit
Accepted by: @vladislavbelov
Comments by: @sera
Differential Revision: https://code.wildfiregames.com/D4998
This was SVN commit r27657.
2023-05-31 12:03:04 +00:00
vladislavbelov 71e3d1303d Disables UV1 vertex attribute without USE_AO for model_common shader.
This was SVN commit r27656.
2023-05-30 17:07:58 +00:00
vladislavbelov cd8eb70859 Disables framebuffer invalidating by default for GL as some drivers perform it incorrectly.
Fixes #6805

Tested By: Itms
Differential Revision: https://code.wildfiregames.com/D5003
This was SVN commit r27654.
2023-05-29 20:53:10 +00:00
wowgetoffyourcellphone 58eebfcc64 Art Fix | Roman minimap symbol is now the she-wolf of Rome suckling Romulus and Remus, instead of the problematic fasces symbol of Roman power.
This was SVN commit r27652.
2023-05-24 22:11:13 +00:00
Stan ecdd98d879 Remove unused and now broken mesh.
The archive builder reported not being able to convert it as it uses the
previous armature.

This was SVN commit r27651.
2023-05-24 09:38:54 +00:00
Itms 04f55f7cf5 Check the validity of a couple pointers in low-level tests, refs #5288.
Reported By: PVS-Studio
Patch By: animus
Reviewed By: phosit
Differential Revision: https://code.wildfiregames.com/D4994
This was SVN commit r27647.
2023-05-18 16:52:29 +00:00
Stan 8472240573 Fix compilation with GCC 13.
gcc-13 less often includes cstdint so one might need to include it
manually if needed.

The headers already included in Message.h are included within namespace
AtlasMessage which didn't break by chance, move them out and add
cstdint.

Patch by: @sera
Reviewed by: @phosit
Fixes: #6800
Differential Revision: https://code.wildfiregames.com/D4997
This was SVN commit r27644.
2023-05-13 12:08:23 +00:00
Stan f0b01f0896 Mark ModifiersManager as a system component.
Patch by: @Langbart
Refs: #6801 #6792

This was SVN commit r27642.
2023-05-11 20:51:18 +00:00
Stan 52b308750f Fix a bug with the AI after 91509290d6
This was SVN commit r27641.
2023-05-11 09:24:19 +00:00
Stan ede58a2065 Fix two oversights.
This was SVN commit r27639.
2023-05-10 16:02:53 +00:00
Stan c278da73d9 Fix issues with the component documentation.
Reported by: @Langbart
Fixes: #6792

Differential Revision: https://code.wildfiregames.com/D4985
This was SVN commit r27638.
2023-05-10 15:55:51 +00:00
Stan 173e016172 Allow starting by command with sandbox AI.
|| takes 0 as false; ?? doesn't.

Patch by: @Freagarach
Accepted by: @sera, @Langbart
Fixes: #6771

Differential Revision: https://code.wildfiregames.com/D4975
This was SVN commit r27637.
2023-05-10 15:34:38 +00:00
Stan 91509290d6 Workaround TriggerHelper.js not being able to spawn units correctly because of promotion.
Avoid duplication by moving the function to Transform.js.
Add tests to Transform.js
Add tests to TurretHolder.js
Optimize slightly Trainer.js by removing some useless
Engine.QueryInterface calls.
Refs #6784 (symptoms in TriggerHelper.js are fixed underlying cause not)

`SkirmishReplacer` is called before the Modifier Manager so it does not
suffer the same fate.
Entities using `ChangeEntityTemplate` function are still affected.
Maps calling Engine.AddEntity directly are still affected.

Ideally this should be handled by hotloading components instead of
creating new entities each time. See =>
https://code.wildfiregames.com/D4991
Tested using:
https://github.com/0ADMods/trailer_tools/commit/908dd631d950b5050d1784530c65f29ccfc67913

Differential Revision: https://code.wildfiregames.com/D4984
This was SVN commit r27636.
2023-05-10 15:13:52 +00:00
marder 1c7e157e28 [Maps] Fix incorrect fruit bush in Gulf of Bothnia - Frozen Lake biome
"fruitBush": "gaia/fauna_deer" was an oversight/ hack and is just bad
practice.

patch by: @real_tabasco_sauce
comments by: @phosit
Differential revision: https://code.wildfiregames.com/D4990
This was SVN commit r27635.
2023-05-09 17:45:44 +00:00
Stan e13ea09690 Add missed line
This was SVN commit r27634.
2023-05-08 14:27:22 +00:00
Stan d8b1935493 Add a script to build spir-v shaders for the bundle.
Fixes: #6636
Refs: #6718
Discussed with: @vladislavbelov

Differential Revision: https://code.wildfiregames.com/D4988
This was SVN commit r27633.
2023-05-08 14:25:23 +00:00
Stan 7cd980f2e1 Move some engine required files to the mod mod.
Most of the shaders are explicitely interned by the engine except for
the one called "Model" which is not required (you can have maps with
just terrain for visualization)
The rng files are called by the engine to validate structure.
The game has two overrides for high quality and normal water to be
"ocean" and "default" respectively
The minimap flare folder is hardcoded see #6795
The default material now calls the dummy shader instead of the model one
when in modmod
Move the default skybox, it will be required by _default.xml
The terrain materials are moved as well, for completeness, although they
are currently not referenced.

This commit does not include atlas needed files as it cannot run without
the public mod anyway for now. It will be done in a separate commit when
we have the ingame editor that will require _default.xml for instance.

This commit is also needed to generate the spir-v shaders in the correct
mods, in order to be able to launch the game with mod mod only.

Refs: #6636 #5366
Fixes: #6294

Differential Revision: https://code.wildfiregames.com/D4906
This was SVN commit r27629.
2023-05-06 17:14:41 +00:00
vladislavbelov 3ceeedf169 Adds script to generate SPIR-V from GLSL shaders. Refs #6636
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4969
This was SVN commit r27627.
2023-05-02 17:31:28 +00:00
wowgetoffyourcellphone 15874868e2 Alpha 27 | Fix | Add garrisoned prop points for standard Greek houses.
Reported by Gurken Khan:
https://wildfiregames.com/forum/topic/96804-alpha26-feedback-and-suggested-changes/?do=findComment&comment=550459

This was SVN commit r27626.
2023-05-01 20:46:22 +00:00
vladislavbelov 04230f7e03 Adds SPIR-V to effect XML files.
Differential Revision: https://code.wildfiregames.com/D4986
This was SVN commit r27624.
2023-04-29 20:36:37 +00:00
Stan ae9f47e741 encoding="utf-8" is not supported before Python 3.10.
This was SVN commit r27622.
2023-04-28 09:24:21 +00:00
Stan a6546cc0a4 Update infrastructure to use the new transifex API.
- Fix Jenkins warnings about leaked credentials.
- Fix one script not loading utf-8 on windows.
- Fix command line arguments not working when inlined on Linux.

This was SVN commit r27621.
2023-04-27 16:55:06 +00:00
Stan eb29373ba7 Use the new client for the pull script.
This was SVN commit r27620.
2023-04-27 14:20:26 +00:00
Stan 69f01932c7 Update Transifex configurations for the new API using the tx migrate command specified on https://github.com/transifex/cli/releases
This was SVN commit r27619.
2023-04-27 13:06:30 +00:00
Stan c3d61fecf2 Fix missing texture/duplicate sprite reported by checkrefs.py
This was SVN commit r27618.
2023-04-26 15:15:51 +00:00
Stan abb280d75a Alpha 27 Name: Agni
This is a Sanskrit word meaning fire and connoting the Vedic fire deity
of Hinduism.

Poll: https://wildfiregames.com/forum/topic/106110-alpha-27-naming-poll/

This was SVN commit r27617.
2023-04-26 12:03:17 +00:00
vladislavbelov 635314ccef Removes assertion for big screenshots with a too small window. Fixes #5225
Differential Revision: https://code.wildfiregames.com/D4983
This was SVN commit r27613.
2023-04-19 20:35:26 +00:00
Itms a3abe8605c Ignore broken symlinks instead of crashing on them, fixes #6586.
Print a warning in the debug output for now, as the logger is not
available at this point.

Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4743
This was SVN commit r27612.
2023-04-19 16:35:00 +00:00
wowgetoffyourcellphone dffaf9d103 Alpha 27 | Fix vision revealers by removing redundant components from the templates and truly make them invisible in-game.
Fixes #6791

This was SVN commit r27611.
2023-04-17 15:06:00 +00:00
vladislavbelov 3147123611 Adds CStrIntern for FXAA and dummy shader names for consistency.
Reported By: Stan
This was SVN commit r27608.
2023-04-16 22:39:36 +00:00
vladislavbelov beef529cc6 Adds more libraries to feedback reports. Refs #6711
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4949
This was SVN commit r27607.
2023-04-16 22:28:55 +00:00
s0600204 c025776703 Use premake5 beta2's externalincludedirs when available
As of the `beta2` version of `premake5`, `sysincludedirs` has been
deprecated
and replaced with/renamed to `externalincludedirs`, and continuing to
use it
causes warnings to be emitted.

With this change, we now use `externalincludedirs` when available so as
to
prevent the warnings, falling back to `sysincludedirs` when it's not to
prevent
breakage with pre-`beta2` versions of `premake5`.


Accepted By: sera
Fixes: #6785
Differential Revision: https://code.wildfiregames.com/D4980
This was SVN commit r27606.
2023-04-16 17:05:30 +00:00
vladislavbelov a28fddcf72 Adds an option to disable mouse grab in fullscreen.
Refs #6649
Refs #545

Differential Revision: https://code.wildfiregames.com/D4974
This was SVN commit r27603.
2023-04-12 06:59:37 +00:00
vladislavbelov c138527abc Removes assertion from MinimapTexture on entities overflow.
Differential Revision: https://code.wildfiregames.com/D4977
This was SVN commit r27601.
2023-04-11 09:50:35 +00:00
Itms ef71533d70 Use a lower default MTU for ENet hosts, and make it configurable.
This fixes packet loss issues on some VPN solutions.

Patch By: sera
Differential Revision: https://code.wildfiregames.com/D4967
This was SVN commit r27599.
2023-04-10 08:21:07 +00:00
vladislavbelov ac3d187dcd Fixes model water and waterfall shaders outputting color on shadow pass.
This was SVN commit r27594.
2023-03-28 06:51:00 +00:00
wowgetoffyourcellphone bd20a95d4f Alpha 27 | Art| Fix: "Garrisoned" prop point for Athenian "Parthenon" Wonder model
Reported by: @Stan' from @zyli's log here:
https://wildfiregames.com/forum/topic/106298-petra-error/?fbclid=IwAR1R-MFsqFxFwDdqgBONIevkXRf1V1bPdosTYxyJigxOQo1VPkPQDHDdlzc#comment-548226

This was SVN commit r27593.
2023-03-27 18:14:36 +00:00
wowgetoffyourcellphone 952aed8e7f Alpha 27 | Art | Fix: Add garrison flag for Athenian Gymnasion.
Reported here:
https://wildfiregames.com/forum/topic/96804-alpha26-feedback-and-suggested-changes/page/3/#comment-547882

This was SVN commit r27591.
2023-03-24 18:59:22 +00:00
wowgetoffyourcellphone e96ec4d1bd Alpha 27 | Art | Fix: palm_tropical UV maps
Fixes #6756

This was SVN commit r27589.
2023-03-21 18:52:39 +00:00
marder 405b92e653 Disable actual turn rate for ships - make their turning purely visual
They can't dance either way and this improves their pathfinding behavior
as well as their visual movement.

Comments from @Stan @Freagarach @wraitii @real_tabasco_sauce

Differential Revision: https://code.wildfiregames.com/D4971
This was SVN commit r27587.
2023-03-19 19:40:10 +00:00
marder 87202eccad Adjust footprint of packed roman ballista
It look very stretched

This was SVN commit r27586.
2023-03-18 10:25:30 +00:00
marder d493560fc8 [Gameplay] - Balance changes to catapult/ heavy warship stats and fix them firing infinitly at targets outside their vision range
Fixes: #6708

Reported by @borg- @andy5995, ticket creation & suggested solutions by
@Langbart
Previous version of the batch accepted by @real_tabasco_sauce, positive
comments from @chrstgtr

Differential Revision: https://code.wildfiregames.com/D4962
This was SVN commit r27585.
2023-03-18 07:58:44 +00:00
marder 33c95dec01 [Gameplay] - Adjust batch modifier from upgraded Han CC
Reported on the Forums:
https://wildfiregames.com/forum/topic/106426-incredibly-fast-training-times/

Solution: Use half the current value (for now)

Refs: #6755 because of the description

accepted by: no one, but there seemed to be a general agreement that a
reduction would be ok.

Differential Revision: https://code.wildfiregames.com/D4961
This was SVN commit r27584.
2023-03-18 07:24:13 +00:00
Stan e56355baaf Fix mistake in previous commit.
Reported by: @wowgetoffyourcellphone
This was SVN commit r27582.
2023-03-17 06:50:55 +00:00
Stan 1263c53b58 Fix han sales having broken scale causing visual glitches.
Also use the correct normal and spec textures for the sail.

This was SVN commit r27581.
2023-03-16 17:01:23 +00:00
vladislavbelov cd1dccd59f Fixes the property name of available devices in a Vulkan report.
This was SVN commit r27579.
2023-03-14 20:21:53 +00:00
vladislavbelov b150ab7e75 Fixes decals with default normal texture.
Differential Revision: https://code.wildfiregames.com/D4966
This was SVN commit r27576.
2023-03-12 13:01:51 +00:00
vladislavbelov 4fbe948be7 Fixes grass with normal and specular textures.
Tested By: Langbart, marder, wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4968
This was SVN commit r27575.
2023-03-12 12:00:21 +00:00
vladislavbelov 05c77b1819 Switches VMA to Vulkan 1.1.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4947
This was SVN commit r27573.
2023-03-11 19:12:54 +00:00
Stan 574c93f094 Fix a bug introduced in cc4d68c68d.
The `alive` variant could sometimes be set preventing the garrison flag
from showing.
Reported by: Gurken Khan
Thread: https://wildfiregames.com/forum/topic/106480-flagless-uxelon/

This was SVN commit r27571.
2023-03-08 16:27:02 +00:00
Freagarach 39e3272116 Fix string issue noted by @rollieoo at Transifex.
This was SVN commit r27570.
2023-03-06 15:03:54 +00:00
Freagarach 5706426dad Give Chandragupta Maurya Hero two auras.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4952
Reviewed by: @chrstgtr
Comments by: @Langbart, @wowgetoffyourcellphone
This was SVN commit r27568.
2023-03-06 07:37:20 +00:00
Freagarach 9692a3ec9c Revert af64e565d7.
Introduced #6750, reported by @Langbart, and quite hard to do right.
Fixes #6750

This was SVN commit r27567.
2023-03-06 07:24:47 +00:00
vladislavbelov f2519d92a0 Fixes GL ES version report after GL_INVALID_ENUM triggered by glEnable(GL_TEXTURE_2D).
This was SVN commit r27564.
2023-02-28 16:56:36 +00:00
Freagarach 4bb9d2a997 Don't subtract lifestock from used/gathered resources.
Also some cleaning in the statistics tracker.
(`total` is used by the lobby bots and hence not removed.)

References 215a102c27 and #3948.
Differential revision: Don't subtract lifestock from used/gathered
resources.
Tested by: @Langbart
Fixes #6744

This was SVN commit r27562.
2023-02-24 09:26:56 +00:00
Freagarach 8d4bf38d1d Attack-move when rally point target is out of world.
Instead of merely walking (totally unwanted in the middle of a fight,
hence I call this a bugfix).

Differential revision: https://code.wildfiregames.com/D4955
This was SVN commit r27561.
2023-02-24 09:10:50 +00:00
Freagarach 8f8e8710a0 Fix units idling after unable to garrison while there are rally points.
When unable to garrison and that is the first rally point, the rest of
the rally point queue is not handled.
The check was introduced in df1d5d2260 because UnitAI didn't guard
garrisoning properly.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4954
Fixes #6746

This was SVN commit r27560.
2023-02-24 09:08:38 +00:00
Freagarach af64e565d7 Autocontinue constructing farms when the first queued for construction is full.
Seen at around minute 20 at
https://wildfiregames.com/forum/topic/15271-0-ad-on-youtube/page/114/#comment-544694.
If not tasked by the user, entities will not autogather. But now they at
least construct the farms.

Differential revision: https://code.wildfiregames.com/D4945
Comments by: @phosit, @Stan
This was SVN commit r27559.
2023-02-24 09:04:10 +00:00
vladislavbelov 6adc9446be Removes ogl.h from PCH.
Differential Revision: https://code.wildfiregames.com/D4950
This was SVN commit r27556.
2023-02-20 20:06:53 +00:00
Itms c05a6e81aa Fixes --with-system-premake5, fixes #6710, refs 782a77f106.
Based on fix by sera, tested on Manjaro 22.

This was SVN commit r27555.
2023-02-20 15:06:39 +00:00
vladislavbelov 4355c8675b Implements framebuffer readback for Vulkan to allow screenshots.
Differential Revision: https://code.wildfiregames.com/D4940
This was SVN commit r27552.
2023-02-17 17:36:10 +00:00
Freagarach 11c9e33d0f [PetraAI] - Wait when all members of an attack-plan are garrisoned.
Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4936
Refs. #6385 by fixing a part of it (the attack plan).

This was SVN commit r27551.
2023-02-17 13:49:01 +00:00
Freagarach d28145a61a Fix missing animation variant reset after committing resources in UnitAI.
Causing units to not show the gathering animation when close to a
dropsite.
We might want to move this stuff to their respective components.

Differential revision: https://code.wildfiregames.com/D4937
Comments by: @Stan
Fixes #6566

This was SVN commit r27550.
2023-02-17 13:43:06 +00:00
Freagarach 189fc18251 Fix batch not stopped when using the spawn cheat.
Reported and tested by @Langbart.
Differential revision: https://code.wildfiregames.com/D4939
Fixes #6739

This was SVN commit r27549.
2023-02-17 13:31:51 +00:00
Freagarach f7193ed595 Fix two missing overlay icons for hero auras.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4941
Reviewed by: @wowgetoffyourcellphone
This was SVN commit r27548.
2023-02-17 13:25:47 +00:00
Freagarach 8a46c3341b Allow Chanakya technology bonus to be used concurrently with healing.
As it was too tedious to use and hence unused.
Also nerf it a bit since it may be too strong otherwise.

Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4943
Reviewed by: @chrstgtr, @wowgetoffyourcellphone
This was SVN commit r27547.
2023-02-17 13:18:26 +00:00
Freagarach 783efd4aaa Ditch superfluous call to getEntityById as reported by @Langbart at 6ea5d33406.
This was SVN commit r27545.
2023-02-17 07:04:57 +00:00
Freagarach 6ea5d33406 Fix AI tasking catafalques to the center of the CC.
There is some unit-motion/unitAI bug that makes them not reach the
center and hence idleness.

Refs. #6735 by fixing the specific PetraAI <> catafalque case.
Reported and solution by: @Langbart
This was SVN commit r27544.
2023-02-15 14:30:08 +00:00
Stan ee88cd353c Fix trees, rocks, fish, and crocodiles having incorrect owners.
Refs #6688
Refs D4123

This was SVN commit r27543.
2023-02-14 21:48:35 +00:00
Stan 929d593658 Fix build-archives.sh's shebang.
Reported by: @Itms
Refs #6701

This was SVN commit r27542.
2023-02-13 12:19:24 +00:00
Stan a4d4df9dd8 Check for the existence of libMoltenVK
Patch by: @Langbart
Fixes #6729

This was SVN commit r27541.
2023-02-13 12:07:35 +00:00
Stan eafacb6e25 Remove some textures that had both DDS and PNG variants.
Use @wackyserious new textures for those.
Fixes #6738
Reported by: @sera
This was SVN commit r27540.
2023-02-13 11:57:12 +00:00
vladislavbelov f8520e0275 Increases minImageCount for Vulkan swapchain only when there is a room for that.
This was SVN commit r27537.
2023-02-12 23:12:28 +00:00
vladislavbelov afd0f181e1 Fixes invalid swapchain size during a window minimize.
Differential Revision: https://code.wildfiregames.com/D4932
This was SVN commit r27536.
2023-02-12 22:58:36 +00:00
Freagarach e6d87c7fe4 Fix Han catafalque.
Which had a wrong description and/or wrong modifiers and a strange
affected class.
Reported by @LienRag at
https://wildfiregames.com/forum/topic/38729-addition-of-han-chinese-to-0ad/?do=findComment&comment=543258.

Differential revision: https://code.wildfiregames.com/D4931
Comments by: @chrstgtr, @Langbart, @Stan, @wowgetoffyourcellphone
This was SVN commit r27534.
2023-02-10 07:28:27 +00:00
Freagarach 471e1a8297 Fix rally point cursor and capturing from spawn.
Introduced in 82e2619ece (the default attack mode switch).

Differential revision: https://code.wildfiregames.com/D4933
Tested by: @Langbart, @phosit, @wowgetoffyourcellphone
Fixes: #6727
(Refs. #6733)

This was SVN commit r27533.
2023-02-10 07:19:34 +00:00
Freagarach 9a0f6a317b Fix idle units idling nigh capturable entity.
Introduced when changing the default behaviour to capturing
(82e2619ece).
Also fixes confusing the AI with catafalques (etc.), noticed by
@Langbart at D4933.

Differential revision: https://code.wildfiregames.com/D4934
Tested by: @Langbart, @phosit
This was SVN commit r27532.
2023-02-10 07:14:39 +00:00
Freagarach fe015fdc1e Don't error out on complex requirements without tooltip.
Since it is not nice to make the game unusable (citation needed) we'll
emit a warning, which is less not nice.
Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4930
Reviewed by: @Langbart
Fixes #6724

This was SVN commit r27531.
2023-02-07 07:33:22 +00:00
Freagarach 9a134b88f7 Properly use tokens for all Tech requirements.
Better than faking the fix with a flaw in the inheritance.
Refs. d771e775d9 and 83b786dcf5.

Differential revision: https://code.wildfiregames.com/D4924
Comments by: @Stan
Refs. #6724

This was SVN commit r27530.
2023-02-06 11:50:42 +00:00
Freagarach 642a20e9a8 Fix leading space in centurion aura.
This was SVN commit r27528.
2023-02-03 09:20:53 +00:00
Freagarach d765c06198 Double wall turret placements for stone walls.
Walls should be more helpful as a defensive feature, currently they only
serve to limit movement.
Wall garrisoning is the primary defensive benefit of walls, but only
allowing eight to garrison in a long wall section means these eight
units are quickly dealt with, especially since they are stationary.
Doubling the wall garrison (by adding another row, not by cramming them
side-to-side) not only looks cooler, but also allows a more sizable army
to occupy walls.
Refs.
https://wildfiregames.com/forum/topic/105534-ai-and-the-walls-dilemma/.

Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4914
Comments by: @Stan, @wowgetoffyourcellphone
This was SVN commit r27527.
2023-02-03 09:14:33 +00:00
Freagarach d771e775d9 Fix multiple requirements (and no tooltip) of the Ptol champion pikeman.
Reported by: @Langbart
Fixes #6724

This was SVN commit r27524.
2023-02-02 08:19:18 +00:00
vladislavbelov 6126b518c4 Fixes overflow of inplace vertex and index Vulkan buffers.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4920
This was SVN commit r27522.
2023-02-01 22:09:25 +00:00
vladislavbelov 0fce64ed5a Fixes Atlas previews after e4455a8e8f.
Differential Revision: https://code.wildfiregames.com/D4919
This was SVN commit r27521.
2023-02-01 21:56:35 +00:00
Stan 4c4e978627 Fix more issues with animated meshes reported by https://code.wildfiregames.com/P293
Reported by: @trompetin17
Refs #6714

This was SVN commit r27520.
2023-02-01 13:39:25 +00:00
vladislavbelov 2339067737 Makes Vulkan device selection stop searching after a first suitable queue family.
This was SVN commit r27516.
2023-01-31 17:01:47 +00:00
Stan ce875e675e Fix two broken models causing black glitches.
- They had vertexes groups without weights.
- Both of them were unused one incorrectly so.
- Also fix the material while at it.
Refs #6714

This was SVN commit r27515.
2023-01-31 16:28:04 +00:00
trompetin17 c422eb242a ATLAS UI be aware of GUI Scale user config
Comment by: @Phosit, @Stan, @Vladislav
Differential Revision: https://code.wildfiregames.com/D4915
Fixes: #6715

This was SVN commit r27513.
2023-01-30 22:05:17 +00:00
vladislavbelov d0ff565aa8 Fixes DisplayVersion in NSIS on Windows.
Tested By: Itms
Differential Revision: https://code.wildfiregames.com/D4892
This was SVN commit r27512.
2023-01-30 21:29:10 +00:00
vladislavbelov ac75966d67 Fixes descriptor set overwrite when multiple textures reference it with delayed deletion. Fixes #6717
Refs #6636

Comments By: phosit, Stan
Tested By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4916
This was SVN commit r27511.
2023-01-30 21:23:44 +00:00
vladislavbelov c17bffff1e Extends logs for Vulkan available device.
Differential Revision: https://code.wildfiregames.com/D4917
This was SVN commit r27510.
2023-01-30 21:16:47 +00:00
Freagarach f0bde861f6 Fix typo in foundation code.
Introduced in 2bda444435.
Refs. #6709

Differential revision: https://code.wildfiregames.com/D4909
Comments by: @Stan
This was SVN commit r27508.
2023-01-30 11:08:44 +00:00
Freagarach 34765a4664 Use different default hotkey for capturing.
Conflicted with garrisoning, which is used more often.
Reported by @minohaka at D4697, after 82e2619ece.

Differential revision: https://code.wildfiregames.com/D4908
Accepted by: @real_tabasco_sauce
This was SVN commit r27506.
2023-01-30 08:17:05 +00:00
Freagarach 83b786dcf5 Tokens for required technologies.
Use tokens for required technologies, allowing `-tech` and easier
replacements.
Fixes requiring `replace=""` when replacing techs.
Also a minor fix in the TemplateParser.js for upgrade requirements.
Refs. 9bb9ff8b16.

Differential revision: https://code.wildfiregames.com/D4912
Comments by: @Stan
This was SVN commit r27505.
2023-01-30 08:05:34 +00:00
vladislavbelov c80bfc8732 Uses Vulkan physical device indices as the last comparison for device selection.
This was SVN commit r27503.
2023-01-29 23:06:42 +00:00
vladislavbelov e050a32eef Adds more features to report for Vulkan backend.
This was SVN commit r27502.
2023-01-29 22:10:52 +00:00
Stan e27a3c4e53 Fix Molten VK printing too many log messages
Reported by: @Langbart
Fixes #6719
Differential Revision: https://code.wildfiregames.com/D4913
This was SVN commit r27501.
2023-01-29 13:03:58 +00:00
trompetin17 5d7a8b9d1b Fix: Crash atlas in relation to Terrain.cpp CalcPosition
Patch by: @trompetin17
Differential revision: https://code.wildfiregames.com/D4900
Comments by: @Langbart, @Stan, @Vladislav
Fixes #6550

This was SVN commit r27499.
2023-01-28 22:42:00 +00:00
vladislavbelov cb5a0b6342 Prevents using R8G8B8_UNORM format for Vulkan textures as it can be supported as a native format only by workarounds.
This was SVN commit r27496.
2023-01-26 21:44:50 +00:00
vladislavbelov 840dbdd6d8 Creates image views for Vulkan textures only when needed.
This was SVN commit r27495.
2023-01-26 21:38:39 +00:00
vladislavbelov 6648b1b53c Enables non-solid fill for Vulkan to allow wireframe drawing.
This was SVN commit r27494.
2023-01-26 17:23:56 +00:00
vladislavbelov a3e8fd0fd4 Updates shadows camera frustum after its recalculation.
This was SVN commit r27493.
2023-01-26 17:12:57 +00:00
vladislavbelov e5635a9d7f Fixes shadows cascades iteration.
This was SVN commit r27492.
2023-01-26 17:12:11 +00:00
Itms fa1fc26241 Upgrade gloox to the development trunk version on Windows, refs #3004. This commit needs a rebuild of the glooxwrapper.
This fixes #4705: the TLS connection now works on Windows, also tested
with certificate verification and with TLSv1.2 (so TLSv1.0 can now be
disabled server-side).

Ideally we should have waited for the release of version 1.0.25, but the
development seems to have mostly stopped upstream.

Tested By: maroder
Differential Revision: https://code.wildfiregames.com/D4910
This was SVN commit r27490.
2023-01-26 15:43:42 +00:00
Stan f88b1a88f6 Update CI dockerfiles.
This was SVN commit r27489.
2023-01-26 15:34:52 +00:00
Stan d6121a43ea Add MoltenVK support to fix Vulkan on macOS.
Tested by: @Langbart, @real_tabasco_sauce, @wraitii
Refs #6636
Differential Revision: https://code.wildfiregames.com/D4905
This was SVN commit r27488.
2023-01-26 15:24:12 +00:00
Freagarach 2969487cdd Improving corral tooltips/info.
Reduces unnecessary text.
The corral defines the interval and the animal auras define the amount.

Patch by: @Grapjas
Differential revision: https://code.wildfiregames.com/D4896
Comments by: @Langbart, @Stan
Fixes #6687

This was SVN commit r27487.
2023-01-25 08:56:55 +00:00
Freagarach 1078277c59 Fix required technology tooltip colour.
Done by creating a function for 'objections' and using that for any
unmet requirements.

Patch by: @abian
Differential revision: https://code.wildfiregames.com/D4899
Comments by: @Langbart
Fixes #6694

This was SVN commit r27484.
2023-01-24 08:03:24 +00:00
Freagarach 471b05da04 Fix actors changing on transform.
Reported by `Aristippus of Cyrene` at
https://wildfiregames.com/forum/topic/101769-chinese-mangonels/.

Investigated by: @Langbart
Refs. c6a9e7188e
Fixes #6707

This was SVN commit r27483.
2023-01-24 07:54:53 +00:00
Freagarach 983182feeb Fix PetraAI requesting tribute from defeated player.
The requests weren't deleted, both from received and sent diplomacy
requests.

Reported by @Obelix at
https://wildfiregames.com/forum/topic/96576-petraai-bot-doesnt-recognize-defeat-of-competitor-its-trading-with.
Investigated by: @Langbart
Differential revision: https://code.wildfiregames.com/D4904
Comment by: @phosis
Fixes #6654

This was SVN commit r27481.
2023-01-23 07:54:09 +00:00
Freagarach cae24f17a0 Fix comparing requirements for GAIA.
There was no check for `cmpTechnologyManager` in the comparing code.

Reported by: @Langbart
Fixes #6705

This was SVN commit r27480.
2023-01-23 07:48:14 +00:00
vladislavbelov a054bd7a9d Adds a warning in case of Vulkan window creation failure.
This was SVN commit r27478.
2023-01-21 23:14:29 +00:00
vladislavbelov 18b2f6e184 Disables descriptor indexing on macOS.
This was SVN commit r27477.
2023-01-21 22:53:16 +00:00
Stan 9c6dd6b1ca Fix gastaphrete like crossbowmen having their crossbow stand straight.
Reported by: @Langbart
Fixes #6683

This was SVN commit r27476.
2023-01-21 17:20:52 +00:00
vladislavbelov e8ec04fd53 Fixes querying descriptor indexing features and properties on some drivers.
This was SVN commit r27475.
2023-01-21 17:06:55 +00:00
Stan f5fe608b5c Fix han chariots keeping their flags when dying.
Reported by: @Langbart
Refs #6683

This was SVN commit r27474.
2023-01-21 16:18:40 +00:00
wowgetoffyourcellphone ea017969a2 Art | More ship sail stuff
- Notably, new textures for the large Han warship sails.

This was SVN commit r27471.
2023-01-20 01:07:35 +00:00
Itms dd0ed78774 Follow proper Shutdown sequence when using -dumpSchema, fixes #6696.
Also fix an incorrect code comment, and prevent Atlas from being started
with `-dumpSchema`.

Reviewed By: phosit
Differential Revision: https://code.wildfiregames.com/D4903
This was SVN commit r27470.
2023-01-19 22:34:46 +00:00
Stan 2943747add Fix FMT and NVTT not linking with the correct SDK.
Tested by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4898
This was SVN commit r27469.
2023-01-19 21:10:18 +00:00
wowgetoffyourcellphone 2b6b129b2e Art | Fix contrast on this ao map
This was SVN commit r27468.
2023-01-19 16:37:02 +00:00
Freagarach 67cd066f16 Translate resources in PetraAI's tribute demands.
Reported by Gurken Khan at
https://wildfiregames.com/forum/topic/96576-petraai-bot-doesnt-recognize-defeat-of-competitor-its-trading-with.

Based on a patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4897
Accepted by: @Langbart
Fixes #6648

This was SVN commit r27467.
2023-01-19 07:44:58 +00:00
Stan db9af648c8 Re-add missing script
This was SVN commit r27466.
2023-01-19 00:24:04 +00:00
Stan 6727763e93 Slightly improve templatesanalyzer/unitTables.py
- Add hans
- Reduce code size
- Reuse other code
- Add poison and fire
- Fix spread

This was SVN commit r27465.
2023-01-18 23:38:44 +00:00
wowgetoffyourcellphone 80ee95d4f4 Art | These null textures weren't completely black or white. Fix this minor oversight.
This was SVN commit r27464.
2023-01-18 19:27:36 +00:00
Freagarach de72510c60 Fix Atlas warning on reinit.
AIDiff is undefined when calling InitGame. But this cheat stuff should
not be in the helper.
(Now people don't need to change the helper if they want a non-cheating
AI. @Silier)

This patch is favoured over @trompetin17's by Wilfy:
https://irclogs.wildfiregames.com/%230ad-dev/2023-01-16-QuakeNet-%230ad-dev.log
@ 21:14.

Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4881
Fixes #6302

This was SVN commit r27463.
2023-01-18 07:56:03 +00:00
Stan 490aceb4ff Fix centurion having no civilization and speaking greek.
This was SVN commit r27462.
2023-01-17 23:55:12 +00:00
Stan 03da19ed10 Don't include source/test_root.cpp in bundles.
Reported by: @LudovicRousseau
Accepted by: @sera
Fixes #6300
Differential Revision: https://code.wildfiregames.com/D4895
This was SVN commit r27461.
2023-01-17 23:50:50 +00:00
Itms a0022fb56b Fix and cleanup the SM91 build, fixes #6676.
Add a new patch written by s0600204, replacing the use of `distutils`
with `sysconfig` in the setup of the bundled virtualenv in SpiderMonkey.
Add a patch which is a portion of
https://phabricator.services.mozilla.com/D130410, fixing upstream's bug
1739486 on Fedora.

This fixes build issues on recent Debian and Fedora. This is consistent
with upstream's upcoming changes in ESR102 following the deprecation of
`distutils`.

This cleans up some old SM patches; renames the [[SVN:27442]] unicode
patch; moves a Python-related environment variable inside `build.sh`;
fixes indentation and EOL properties.

Differential Revision: https://code.wildfiregames.com/D4893
This was SVN commit r27460.
2023-01-17 20:49:00 +00:00
Stan f684615dff Update clean-workspaces.sh after SpiderMonkey's upgrade to 78.6.0 and 91.13.1.
This was SVN commit r27457.
2023-01-17 10:27:25 +00:00
Freagarach 681171359b Allow to garrison the minister in the corral.
To allow it to benefit from its aura.

Reported by: @Langbart
Refs. #6690

This was SVN commit r27455.
2023-01-16 14:19:51 +00:00
Freagarach f97a986077 Fix Mace storehouse tech time in template viewer.
Reported at
https://wildfiregames.com/forum/topic/102542-game-guide-of-macedonians-error-reporting
Patch by: @Langbart
Fixes #6691
Refs. #6587

This was SVN commit r27454.
2023-01-16 14:09:53 +00:00
Stan ca71c3cd90 Add a libfmt include forgotten in 421fbfd278
This was SVN commit r27453.
2023-01-16 13:07:19 +00:00
vladislavbelov 2a0cd12a5d Fixes builds on some platforms for libfmt 4 after ca242239f1.
Tested By: andy5995
Differential Revision: https://code.wildfiregames.com/D4890
This was SVN commit r27451.
2023-01-16 06:38:29 +00:00
vladislavbelov 64bc717a18 Hides some warnings for VMA.
Differential Revision: https://code.wildfiregames.com/D4889
This was SVN commit r27450.
2023-01-16 06:37:22 +00:00
wowgetoffyourcellphone 4b24750ae0 Art | Add garrison flags to all Corrals, since they can now garrison animals
Fixes #6689

Refs #4581

This was SVN commit r27448.
2023-01-15 19:24:35 +00:00
vladislavbelov f9d1ecfd31 Removes unused BrokenColor constant forgotten to be removed in b7888aea52.
This was SVN commit r27447.
2023-01-15 13:01:31 +00:00
vladislavbelov 0f130fb19c Removes unnecessary PreDraw from Vulkan CDeviceCommandContext.
This was SVN commit r27446.
2023-01-15 11:51:47 +00:00
wowgetoffyourcellphone e4d19fb784 Art | Update some more ship sail textures
This was SVN commit r27444.
2023-01-14 17:41:58 +00:00
wowgetoffyourcellphone 901e6fba28 Simulation | Tooltip trickle food rate for garrisoned animals
Fixes #6687

This was SVN commit r27443.
2023-01-14 17:14:20 +00:00
Stan 9347192591 Fix bundled spidermonkey code in Premake.
It still won't link if the user has a more recent issue than whatever
was vendored with Spidermonkey. Refs:
https://code.wildfiregames.com/D3127.
Fix option --with-system-spidermonkey info oversight when updating in
d8332a2938 and d92a2118b0 and d5db03c303
Reported by @sera, @linkmauve

This was SVN commit r27440.
2023-01-14 12:14:56 +00:00
vladislavbelov 28707d61dd Fixes creating window on macOS in case of missing Vulkan driver. Fixes #6681
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4884
This was SVN commit r27438.
2023-01-13 20:32:36 +00:00
wowgetoffyourcellphone a740ffa12d Art | Even better millet texture
This was SVN commit r27437.
2023-01-13 17:39:45 +00:00
Freagarach 3e7bdc148e Update checkrefs.py after 9bb9ff8b16.
Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4880
Tested by: @Langbart
Fixes #6682

This was SVN commit r27436.
2023-01-13 10:29:51 +00:00
wowgetoffyourcellphone a7e15b0a0a Art | Additional updates for ship sails
This was SVN commit r27433.
2023-01-13 02:34:01 +00:00
wowgetoffyourcellphone 988ec48db0 Art | New "millet field" for the Han
Texture by @Stan

This was SVN commit r27432.
2023-01-13 02:33:11 +00:00
trompetin17 a695098950 Fix /clear command in gamesetup
Patch by: @Norse_Harold
Reviewed by: @trompetin17
Differential Revision: D4885
Fixes: #6685

This was SVN commit r27431.
2023-01-12 23:25:42 +00:00
trompetin17 726b07e209 Fix a visual glitch which happens when you enter in lobby GUI without any game. The button "join game" have a cross line from panel description.
This was SVN commit r27430.
2023-01-12 19:39:56 +00:00
trompetin17 5e2ae82d9e Bug fix: Use sort order asc by default instead of desc
refs 9044735e87

This was SVN commit r27429.
2023-01-12 19:10:28 +00:00
Stan 841b2dd5dc Complete a2efada174 and d206f362ef, the bonus for cavalry was removed from the tooltip, but the technology was still available in the stable because it was incorrectly assumed to be in the academy.
Differential Revision: https://code.wildfiregames.com/D4873
This was SVN commit r27428.
2023-01-12 18:00:18 +00:00
Freagarach eae5840b0e Fix structure tree/civinfo with empty civ history.
Since the history string is optional, don't fail without it.

Based on a patch by: @Silier
Fixes #6651

This was SVN commit r27427.
2023-01-12 10:34:53 +00:00
Freagarach 344e85e97f Fix discrepancy between max hitpoints and actual hitpoints due to floats in JS.
Patch by: @Langbart
Fixes #6657

This was SVN commit r27425.
2023-01-12 09:16:26 +00:00
Freagarach a2efada174 Fix d206f362ef.
Noticed by: @phosit
This was SVN commit r27424.
2023-01-12 06:54:59 +00:00
vladislavbelov 32c43eaef8 Fixes StaticVector size type warning inside Vulkan CDeviceCommandContext.
This was SVN commit r27423.
2023-01-12 06:40:42 +00:00
vladislavbelov ec704d8179 Recreates Vulkan swapchain on window resize.
Tested By: hyperion
Differential Revision: https://code.wildfiregames.com/D4879
This was SVN commit r27422.
2023-01-12 06:35:59 +00:00
vladislavbelov ccda54a662 Ands new depth stencil format to support all combinations on Vulkan.
Tested By: hyperion, nwtour
Differential Revision: https://code.wildfiregames.com/D4878
This was SVN commit r27421.
2023-01-12 06:32:52 +00:00
vladislavbelov b573993000 Reverts mistaken changes in default.cfg from 7c84c23114.
This was SVN commit r27419.
2023-01-11 16:29:41 +00:00
vladislavbelov b5e8b4944d Fixes silhouettes on Vulkan by using VkStencilOpState.
This was SVN commit r27418.
2023-01-11 16:22:09 +00:00
Freagarach 842de4e603 Fix some style issues.
EOL style -> native. Set MIME-type.
Some textual stuff.

This was SVN commit r27416.
2023-01-11 08:55:44 +00:00
Freagarach c97f744c19 Fix typo in CCC victory condition.
Reported by: @LordWellington.
Also on Transifex by: pilino1234 at Transifex.
This was SVN commit r27415.
2023-01-11 07:22:02 +00:00
vladislavbelov b31e698f12 Use override in classes derived from AbstractProfileTable.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4825
This was SVN commit r27414.
2023-01-10 22:32:08 +00:00
vladislavbelov 2442c948ba No owning raw pointers in L10n.cpp.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4823
This was SVN commit r27413.
2023-01-10 22:19:56 +00:00
vladislavbelov 7c84c23114 Adds Vulkan backend.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4876
This was SVN commit r27412.
2023-01-10 20:22:20 +00:00
wowgetoffyourcellphone de697397ba Gameplay | Fix | fix Fire ships trainable from captured docks as the Han
Patch by: @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D4875
This was SVN commit r27411.
2023-01-10 19:35:23 +00:00
wowgetoffyourcellphone 90e6d1bd4d Gameplay | Community Mod | CC territory/cost adjustment, roman camp in town phase, spearcav increased acceleration, improved alexander the great, sele civ bonus
Patches by: @real_tabasco_sauce
Differential Revision: https://code.wildfiregames.com/D4877
Comments by: @Stan, @chrstgtr , @wowgetoffyourcellphone
Forum discussion:
https://wildfiregames.com/forum/topic/83784-introducing-the-official-community-mod-for-alpha-26/

This was SVN commit r27410.
2023-01-10 19:26:36 +00:00
Stan d5db03c303 [SM91] Update to Spidermonkey 91.1.3 APIs
Fixes: #5986
Patch by: @wraitii
Comments by: @nwtour, @Stan
Differential Revision: https://code.wildfiregames.com/D4428
This was SVN commit r27409.
2023-01-10 17:06:47 +00:00
wowgetoffyourcellphone 03c3d2d438 Fix Centurion name.
Reported by @Carltonus

This was SVN commit r27408.
2023-01-10 16:58:05 +00:00
Stan d953138cf6 [Gameplay A27] Reduce pop cost of ministers
Patch by: @real_tabasco_sauce
Accepted by: @chrstgr, @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4874
This was SVN commit r27407.
2023-01-10 16:51:11 +00:00
Stan d206f362ef [Gameplay A27] - Han fixes:
- Remove crossbow_training.json from the Han academy
- Adjust the cost of poison arrows and poison blades so that the ranged
upgrade should be the one to cost metal, since ranged units currently
dominate most battles.
- Reduce the obstruction area of rice paddies so that they are easier to
place.

Patch by: @real_tabasco_sauce
Accepted by: @chrstgtr, @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4873
This was SVN commit r27406.
2023-01-10 16:48:28 +00:00
wowgetoffyourcellphone e7bb845dd0 Art | Remove parallax from these prop actors
This was SVN commit r27404.
2023-01-10 00:14:16 +00:00
wowgetoffyourcellphone ccc85aef55 Templates | Remove an unnecessary line of code.
This was SVN commit r27403.
2023-01-10 00:12:51 +00:00
wowgetoffyourcellphone 8f405255a7 Art | Update the foundation actors for the Greek temples
This was SVN commit r27402.
2023-01-10 00:12:02 +00:00
wowgetoffyourcellphone a331e7088b Art | Tweak Rotary Mill portrait to make it emphasize grain. The grain icon on this update matches the aura icon for the structure.
This was SVN commit r27401.
2023-01-10 00:08:06 +00:00
wowgetoffyourcellphone 4952c3717f Gameplay | Add Roman Centurions: Upgradable at a cost of 100 food 50 metal from rank 3 swordsmen and spearmen
Patch by: @real_tabasco_sauce and @vv221
Differential Revision: https://code.wildfiregames.com/D4872
Accepted by: @wowgetoffyourcellphone based on forum discussions
This was SVN commit r27400.
2023-01-09 21:56:09 +00:00
Freagarach 82e2619ece Switch default behavior from capture to attack.
Discussed countless times on the forum.
We try this out this release.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4697
Idea accepted by: @asterix, @wowgetoffyourcellphone, @chrstgtr
Comments by: ^ + @Stan
This was SVN commit r27399.
2023-01-09 14:29:06 +00:00
trompetin17 9044735e87 Optional column "sort_order" attribute support olist GUI
Patch by: @Grapjas
Differential revision: D4859
Reviewed by: @trompetin17
This was SVN commit r27398.
2023-01-09 14:26:03 +00:00
Freagarach 7e63ecff2b Rebalance some civ and team bonus.
Two nerfs to ptol bonus: easier capture, and +50% build time (see
https://wildfiregames.com/forum/topic/83784-introducing-the-official-community-mod-for-alpha-26/page/7/).
An update to four team bonuses that were rather lacking in A26 and
previously.
- Athens is now CC techs -50% research time and -30% cost.
- Seleucids 20% cost discount for CCs also applies to build time.
- Persia team bonus is cheaper, faster building barracks and stables.
- Carthage is infantry mercenaries -50% train time.

Original patch by: @real_tabasco_sauce at
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/12 and
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/13.
Ported by: @vv221
Differential revision: https://code.wildfiregames.com/D4863
Comments by: @chrstgtr, majima
This was SVN commit r27397.
2023-01-09 11:11:54 +00:00
Freagarach 6c46c3cef2 Credit @real_tabasco_sauce for 0ac1eaab08 and e636285908.
This was SVN commit r27396.
2023-01-09 09:45:27 +00:00
Freagarach e636285908 Axe cav minor buff.
Gives them 8.7 Hack DPS since they are too weak currently.

Original patch by: @real_tabasco_sauce at
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/11.
Ported by: @vv221
Differential revision: https://code.wildfiregames.com/D4862
Comments by: @chrstgtr, majima
This was SVN commit r27395.
2023-01-09 09:35:07 +00:00
Freagarach 0ac1eaab08 Pericles and Themistocles improvements.
Original patch by: @real_tabasco_sauce at
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/8/.
Ported by: @vv221
Differential revision: https://code.wildfiregames.com/D4856
This was SVN commit r27394.
2023-01-09 09:30:32 +00:00
Freagarach 9a051026c8 Rebalance healers by making them cheaper.
They are rarely used now, this may help.

Original patch by: majima at
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/5.
Ported by: @vv221
Differential revision: https://code.wildfiregames.com/D4855
Comments by: @chrstgtr, @real_tabasco_sauce, @wraitii
This was SVN commit r27393.
2023-01-09 09:20:04 +00:00
Freagarach 931103c1b7 Move tier 2 blacksmith technologies to Town Phase.
To make phase 2 more viable.

Original patch by: majima at
https://gitlab.com/0ad/0ad-community-mod-a26/-/merge_requests/4.
Ported by: @vv221
Differential revision: https://code.wildfiregames.com/D4854
Comments by: @chrstgtr, @real_tabasco_sauce, @wraitii
This was SVN commit r27392.
2023-01-09 09:16:35 +00:00
Freagarach 0170caae5b Add area damage to elephants.
Makes elephants more effective against units and less of a siege weapon.
Animals should not be used as mechanical siege weapons.

Based on a patch by: @Kate
Differential revision: https://code.wildfiregames.com/D4137
Comments by: @marder, @wraitii
This was SVN commit r27391.
2023-01-09 09:12:20 +00:00
vladislavbelov fc7c78b8cd Refactors window creation in CVideoMode.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4866
This was SVN commit r27388.
2023-01-09 00:13:52 +00:00
vladislavbelov 408c93744c Adds dependent libraries for Vulkan. Refs #6636
Tested By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4869
This was SVN commit r27387.
2023-01-08 23:12:54 +00:00
Stan fc392a4367 FSM cleanup:
- Use reinterpret_cast.
- Use using instead of typedef.
- Use PascalCase for CONDITION and ACTION.
- Use constexpr instead of #define.

Patch by: @phosit
Differential Revision: https://code.wildfiregames.com/D4868
This was SVN commit r27385.
2023-01-07 21:41:30 +00:00
trompetin17 c8e24927b2 Add support to change column heading text in olist GUI component
Patch by: @Grapjas
Reviewed by: @phosit @trompetin17
Differential Revision: https://code.wildfiregames.com/D4857
This was SVN commit r27384.
2023-01-07 15:02:12 +00:00
wowgetoffyourcellphone 2ad469cd6e Art | Further improvements to ships
This was SVN commit r27382.
2023-01-07 01:38:13 +00:00
wowgetoffyourcellphone ead5d68a66 This was SVN commit r27381. 2023-01-07 01:33:50 +00:00
vladislavbelov dc085205e3 Fixes macOS builds for missed value() in std::optional.
This was SVN commit r27380.
2023-01-07 00:46:01 +00:00
vladislavbelov 7dca5d23ad Adds preferred depth stencil format to renderer backend.
This was SVN commit r27379.
2023-01-06 23:07:50 +00:00
vladislavbelov 0641d3660f Replaces std::vector by std::optional for usableTech in ShaderManager.
This was SVN commit r27378.
2023-01-06 22:15:57 +00:00
vladislavbelov ef0a644dcc Fixes status bar rendering after 4ed41d4a9a. Fixes #6674
This was SVN commit r27377.
2023-01-06 19:20:45 +00:00
Stan f1edbb9049 Make comments in FSM detectable by doxygen
- Move the comments to the header file
 - Add a dot at the end of a comment
 - Remove some trivial comments
 - Improve spelling.

Patch by: @phosit
Differential Revision: https://code.wildfiregames.com/D4861
This was SVN commit r27376.
2023-01-06 19:16:11 +00:00
vladislavbelov 38a6726a07 Fixes shore waves rendering after 29368cf776.
Tested By: phosit
Differential Revision: https://code.wildfiregames.com/D4865
This was SVN commit r27375.
2023-01-06 19:11:47 +00:00
Stan 1e2f23750b Remove materials from particle actors to prevent useless warnings.
This was SVN commit r27374.
2023-01-06 18:51:47 +00:00
vladislavbelov a05d9c43c4 Removes unused and incorrect materials.
This was SVN commit r27373.
2023-01-06 16:15:01 +00:00
vladislavbelov 6184ab7dd6 Changes alternative material for player_trans_ao_norm_spec.xml to to player_trans_norm_spec.xml.
This was SVN commit r27372.
2023-01-06 16:09:04 +00:00
vladislavbelov 20d9a52bb6 Adds missing norm and spec textures for cav_blanket and han actors without baseTex inside XML.
This was SVN commit r27371.
2023-01-06 16:07:26 +00:00
vladislavbelov 4984c31f03 Fixes incorrect actor material added in f4bd43d3e7.
This was SVN commit r27370.
2023-01-06 15:13:07 +00:00
vladislavbelov e291269898 Fixes missed group and variant after 975fcddd41.
This was SVN commit r27369.
2023-01-06 15:07:21 +00:00
vladislavbelov 975fcddd41 Replaces old materials in actors by materials with norm and spec textures.
Differential Revision: https://code.wildfiregames.com/D4860
This was SVN commit r27368.
2023-01-06 13:59:22 +00:00
wowgetoffyourcellphone f4bd43d3e7 Mapping | Improve the look of the tutorial map.
This was SVN commit r27365.
2023-01-06 00:54:29 +00:00
vladislavbelov 2549c44c1d Removes escaped quotes from spartan_sword.xml added in 2a9e7f9449.
This was SVN commit r27364.
2023-01-06 00:40:42 +00:00
vladislavbelov 90f064ff03 Switches from per draw vertex attribute format to precompiled vertex input layout.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4852
This was SVN commit r27363.
2023-01-06 00:39:25 +00:00
vladislavbelov 90a3e2b2e7 Changes female citizen actors to use a material with norm and spec textures.
This was SVN commit r27361.
2023-01-05 22:39:57 +00:00
vladislavbelov 66b626a9ab Changes Acacia actors to use a material with norm and spec textures.
This was SVN commit r27360.
2023-01-05 22:21:46 +00:00
vladislavbelov e9e7995ec7 Adds normal texture to cavalry_spearman_c_r.xml.
This was SVN commit r27359.
2023-01-05 22:11:49 +00:00
vladislavbelov f86c916799 Adds default normal texture for actors.
This was SVN commit r27358.
2023-01-05 22:00:21 +00:00
wowgetoffyourcellphone 1ee9533093 Fix | Art | Add a proper material for this stone mine actor
This was SVN commit r27357.
2023-01-05 21:32:40 +00:00
vladislavbelov 45fe6affb6 Makes materials use alternative materials with both norm and spec textures or without both.
This was SVN commit r27356.
2023-01-05 19:00:02 +00:00
vladislavbelov 1798b386f5 Adds missing materials with both norm and spec textures.
This was SVN commit r27355.
2023-01-05 18:34:41 +00:00
vladislavbelov fe1b2554e2 Removes useless defines from rock materials.
This was SVN commit r27354.
2023-01-05 17:40:10 +00:00
wowgetoffyourcellphone 3453a299d2 Art | Missing actor
This was SVN commit r27353.
2023-01-05 17:34:36 +00:00
vladislavbelov 1dd122190b Adds missing svn eol-style native for materials.
This was SVN commit r27352.
2023-01-05 16:18:00 +00:00
Stan c729444787 replace NULL by nullptr
remove nullptr check before delete. They are redundant.
remove nullptr check after new. They will never be null.
two whitespaces changes forgotten in
https://code.wildfiregames.com/D4800.

Patch by: @phosit
Differential Revision: https://code.wildfiregames.com/D4853
This was SVN commit r27351.
2023-01-05 12:09:02 +00:00
Freagarach ce9fb7a0b2 Fix structure tree with complex requirements.
Complex requirements were not properly handled by the parsing code.
This makes it a bit more explicit while also handling multiple techs as
requirements.

Reported by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4833
This was SVN commit r27350.
2023-01-05 08:07:57 +00:00
wowgetoffyourcellphone 3f560391f2 A couple more revealer sizes.
This was SVN commit r27348.
2023-01-05 04:47:31 +00:00
wowgetoffyourcellphone a1be542d5e Maps | Vision Revealer objects for maps.
These give vision to parts of the map to specified players.

Placed some on the skirmish map Miletus Peninsula as an example.

This was SVN commit r27347.
2023-01-05 03:47:13 +00:00
wowgetoffyourcellphone 9334041a0e Art | Terrains | Improve some terrains.
This was SVN commit r27346.
2023-01-05 01:03:34 +00:00
wowgetoffyourcellphone 80094ee0cf Art | Change the scaffolds used by these foundations.
This was SVN commit r27345.
2023-01-05 00:49:07 +00:00
wowgetoffyourcellphone 4ab9178737 Art | Tweak the UV map of the Spartan CC
This was SVN commit r27344.
2023-01-05 00:45:07 +00:00
wowgetoffyourcellphone cecb0e20f1 Fix | Fix the parent ref in this skirmish entity.
This was SVN commit r27343.
2023-01-05 00:27:17 +00:00
wowgetoffyourcellphone 89a48f4a34 Mapping | Atlas | Add a new "Farmstead" object for Skirmish maps, which simulates the much chewed-over Farmland concept. Capture one to gain the "Farmland" aura that boosts nearby farming.
Add some to a few skirmish maps for testing.

This was SVN commit r27342.
2023-01-05 00:06:20 +00:00
wowgetoffyourcellphone 7c1c8fb2ff Templates | Rename warship parent templates to more agnostic naming scheme. Adjust ship child templates to suit.
This was SVN commit r27341.
2023-01-04 23:50:12 +00:00
wowgetoffyourcellphone 9c05ff2271 Art | Ships | Add a custom actor and sails for the Seleucid quinquereme, which was previously using the Ptolemy actor.
Also fix some other minor ship stuff.

This was SVN commit r27340.
2023-01-04 23:45:55 +00:00
wowgetoffyourcellphone 9cffe4e96f Art | Ships | Improve the look of ship sails and add some new sail textures. Fix some other ship things.
This was SVN commit r27339.
2023-01-04 22:32:18 +00:00
wowgetoffyourcellphone 384f4d4215 Art | Cilician Pirate Ship for use as a map creep on water maps
This was SVN commit r27338.
2023-01-04 21:24:32 +00:00
Stan 8e0e40d489 Fix whitespaces, identation and remove (void).
Patch by: @phosit
Differential Revision: https://code.wildfiregames.com/D4800
This was SVN commit r27337.
2023-01-04 17:10:05 +00:00
Freagarach 48ac0fecde Fix missed target -> position.
Introduced in fc04e849ca.
Reported by: @wowgetoffyourcellphone.
This was SVN commit r27333.
2023-01-02 06:58:39 +00:00
vladislavbelov e4ded1f971 Fixes vertex attribute format mismatch for silhouette debug rendering.
This was SVN commit r27331.
2023-01-01 21:46:31 +00:00
vladislavbelov ca242239f1 Adds StaticVector implementation.
Patch By: phosit
Comments By: jprahman, Stan
Differential Revision: https://code.wildfiregames.com/D4838
This was SVN commit r27329.
2022-12-31 19:10:17 +00:00
vladislavbelov 4ed41d4a9a Switches from pipeline state descriptions to pipeline states.
Tested By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4850
This was SVN commit r27328.
2022-12-31 18:29:44 +00:00
wowgetoffyourcellphone 0152c26b72 Some additional scaffolds for construction foundations.
This was SVN commit r27327.
2022-12-31 16:00:40 +00:00
wowgetoffyourcellphone e7613d1c89 Some new Ruin objects.
This was SVN commit r27325.
2022-12-31 04:37:56 +00:00
Freagarach ded41eab31 Allow other root XML than entity.
Implements a `GetOnlyChild()`, following discussion at
https://irclogs.wildfiregames.com/%230ad-dev/2022-05-06-QuakeNet-%230ad-dev.log.

Differential revision: https://code.wildfiregames.com/D4738
Comments by: @phosit, @Stan, @vladislavbelov, @wraitii
This was SVN commit r27323.
2022-12-30 07:34:23 +00:00
Freagarach 5044850f93 Teach PetraAI the new garrisonRegenRate.
Improves behaviour after 856e876148 by counting in the capture strength
of garrisoned entities.

Differential revision: https://code.wildfiregames.com/D4799
Comment by: @Silier
This was SVN commit r27322.
2022-12-30 07:28:02 +00:00
Freagarach 89c78ee1f3 Fix double resource subtraction on training stop.
Reported by @KarloManco at
https://wildfiregames.com/forum/topic/102402-resourcesused-counter-bug/.
Introduced in 0c4f59d0a7.

Fixes #6670

This was SVN commit r27321.
2022-12-30 07:16:58 +00:00
vladislavbelov 3b4ffea4a6 Adds missing conditions for input UV attributes for terrain_blend and terrain_decal shaders.
This was SVN commit r27318.
2022-12-29 18:31:20 +00:00
vladislavbelov 858b134a15 Removes duplicated uniforms after 7c20a8c958.
This was SVN commit r27317.
2022-12-29 17:52:00 +00:00
Freagarach a6052df6fc Fix disappearing berries due to not miraging.
Reported in
https://wildfiregames.com/forum/topic/102351-berries-disappear-in-fog-of-war/,
introduced in da0f33f137.
Marks entities as seen by the player, such that a mirage is properly
created when some attribute changes.

Differential revision: https://code.wildfiregames.com/D4848
Basically a patch by: @wraitii
This was SVN commit r27316.
2022-12-29 12:05:44 +00:00
Freagarach fc04e849ca Use position for positions in unit_commands.js.
Replacing `target` by `position` where applicable.
It gave errors when following a player who flared.

Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4824
Comment by: @Silier
Fixes #6303

This was SVN commit r27315.
2022-12-29 11:55:13 +00:00
wraitii a38744fba4 Wrap game settings initialisation from persistent data in a try-catch block.
Summary:
The persistent settings have historically often led to bugs (see A26,
but that's far from the only example).
The trouble is that this usually leads to the game setup being
completely unusable, often requiring clearing the MatchSettings.json
file (or de-activating it in the settings if one knows that is there).
Furthermore, mods can make the persistentSettings take 'bad' values, and
in general this behaviour is prone to unexpected breakage and difficult
to defend against.

This wraps it in a try-catch block to ensure the game remains usable. It
still relays the error with a more useful error message.

Differential Revision: https://code.wildfiregames.com/D4794
This was SVN commit r27314.
2022-12-29 10:44:22 +00:00
vladislavbelov c0e888e2af Removes SetViewport from CRenderer.
Differential Revision: https://code.wildfiregames.com/D4849
This was SVN commit r27313.
2022-12-29 06:53:06 +00:00
vladislavbelov edca3d719e Removes unused materials following f08f6f1d2d.
This was SVN commit r27311.
2022-12-28 16:25:14 +00:00
wraitii a333c8f355 Use Future::CancelOrWait in pathfinder Deinit
If the pathfinding tasks are running, they might reference now-deleted
variables. CancelOrWait prevents this.
Remove `Future::Cancel()` altogether as that was its only use and the
functions seems dangerous.

Introduced with 0ebc08b13c

Patch by: phosit
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D4831
This was SVN commit r27310.
2022-12-28 11:34:04 +00:00
wraitii 92153b0afb Replace SharedStateResult with std::optional
std::optional was not usable when our Future class was introduced, but
it is now, so we can replace SharedStateResult with it, reducing custom
code.

Note that Apple Clang has some incompatibilites with part of the
optional interface, but it isn't used here.

Patch by: phosit
Comments by: vladislavbelov
Accepted by: wraitii
Differential Revision: https://code.wildfiregames.com/D4803
This was SVN commit r27309.
2022-12-28 10:54:41 +00:00
Stan f08f6f1d2d Remove usages of basic_spec basic_blend playercolor_spec and objectcolor_spec for performance reasons (Reducing the number of shader switches)
As a result some objects are a bit less shiny.

Discussed with: @vladislavbelov

Script at P290

This was SVN commit r27308.
2022-12-27 18:21:34 +00:00
Angen 402e90b5ab Fix 281bb0b2ec
Replace function removed in 281bb0b2ec reported by @Stan

Differential revision: D4846
Reviewed by: @Stan
This was SVN commit r27307.
2022-12-27 11:13:27 +00:00
wowgetoffyourcellphone 3814c153df Fix materials on these 3 field plots
This was SVN commit r27306.
2022-12-26 23:43:25 +00:00
wowgetoffyourcellphone 5d8418a1db Fix spacing in these decals (Notepad++ automatically inserts tabs for spaces)
This was SVN commit r27305.
2022-12-26 20:51:59 +00:00
wowgetoffyourcellphone ca898bdc51 Fix Alternative Materials line in the terrain materials, since "terrain_norm" has been deleted.
This was SVN commit r27304.
2022-12-26 20:51:18 +00:00
wowgetoffyourcellphone 41998f494c Fix some decals after 0b3a1eafc4
This was SVN commit r27303.
2022-12-26 20:09:40 +00:00
wowgetoffyourcellphone 0b3a1eafc4 Fix some decals after 1754a3f06c
This was SVN commit r27302.
2022-12-26 20:01:49 +00:00
vladislavbelov 0159f25636 Removes unoptimized terrain materials following 1754a3f06c.
This was SVN commit r27301.
2022-12-26 11:57:46 +00:00
vladislavbelov 1754a3f06c Optimizes terrain materials to reduce the total number of used combinations. Refs #6636
Differential Revision: https://code.wildfiregames.com/D4845
This was SVN commit r27299.
2022-12-26 06:59:06 +00:00
wowgetoffyourcellphone 22f7d3c543 Art | Replace the decal for the Theater foundation.
This was SVN commit r27298.
2022-12-24 03:52:04 +00:00
wowgetoffyourcellphone e6f5c2b47c Art | Reduce size of the bridge_wood spec map
This was SVN commit r27297.
2022-12-24 02:49:06 +00:00
wowgetoffyourcellphone 173e3938fa Art | Improve the look of the Parthenon, Athenian Temple, and some Spartan structures.
This was SVN commit r27296.
2022-12-23 18:14:03 +00:00
wowgetoffyourcellphone 2f938cf6f8 Art | Materials for the wood bridge decals
This was SVN commit r27294.
2022-12-22 16:39:27 +00:00
wowgetoffyourcellphone cab2e29f1a Art | Improve the look of the Roman wonder (Temple of Jupiter Capitolinus)
This was SVN commit r27292.
2022-12-22 01:23:13 +00:00
wowgetoffyourcellphone 74434f8708 Art | Tweak some textures
Brighten up the Aegean stone texture a bit
Improve the Spartan female spec texture

This was SVN commit r27291.
2022-12-21 22:23:58 +00:00
wowgetoffyourcellphone d59fc2a7bf Art | Add a new 24x24 platform model for structures; use on Roman Fortress actor
This was SVN commit r27290.
2022-12-21 22:22:59 +00:00
wowgetoffyourcellphone 38d27392ae Art | Rename materials for clarification purposes
Adjust the actors and terrains to match name change

Plus some other minor actor fixes

This was SVN commit r27289.
2022-12-21 22:19:38 +00:00
vladislavbelov 46a904e007 Removes USE_SPECULAR from terrain_common shader unused by materials added in b7888aea52.
This was SVN commit r27288.
2022-12-20 17:10:21 +00:00
vladislavbelov 561184e5fd Removes IGNORE_LOS from water shaders as they can't ignore LOS.
Reported By: Stan
This was SVN commit r27283.
2022-12-10 19:41:27 +00:00
vladislavbelov 7c20a8c958 Reduces shader inputs duplication and wraps them in a macro. Refs #6636
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4837
This was SVN commit r27282.
2022-12-10 10:14:35 +00:00
Freagarach a451da151d Match HQ Water Effects text in manual with options.
Reported by @lecalam on Transifex.

This was SVN commit r27280.
2022-12-09 07:13:06 +00:00
wowgetoffyourcellphone 7373dac017 Art | New look for the Athenian city walls.
This was SVN commit r27279.
2022-12-08 23:34:40 +00:00
trompetin17 c189d1858c Additional default colors after D4811
Comment by: Stan
Fixes: #3506
Differential Revision: ​https://code.wildfiregames.com/D4813
This was SVN commit r27277.
2022-12-06 21:19:25 +00:00
vladislavbelov 46e9816aaf Fixes missing svn:eol-style native for debug_fragment.h and solid.vs.
This was SVN commit r27276.
2022-12-06 18:51:00 +00:00
vladislavbelov d8bf4f6e62 Makes GLES using high precision for both vertex and fragment shaders.
This was SVN commit r27275.
2022-12-06 18:30:34 +00:00
wowgetoffyourcellphone 3494e1f296 Update the Nisean War Horse tech icon, make the old one a new cavalry speed icon instead. Adjust the techs to suit.
Idea by @real_tabasco_sauce

This was SVN commit r27274.
2022-12-06 01:16:09 +00:00
vladislavbelov 2ef801f5d0 Remove some unnecessary string copy related to substr.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4772
This was SVN commit r27271.
2022-12-04 19:56:12 +00:00
vladislavbelov b2f529c655 Fix NVTT build on MCST Elbrus 2000 (e2k) following 1bb336829d.
Based on the patch in NVTT:
https://github.com/castano/nvidia-texture-tools/pull/304.

Patch By: Fatton, r-a-sattarov
Differential Revision: https://code.wildfiregames.com/D4801
This was SVN commit r27270.
2022-12-04 19:41:09 +00:00
vladislavbelov 3723cbf692 Fixes big screenshots after 29368cf776 and 3a4c8342a0.
Differential Revision: https://code.wildfiregames.com/D4835
This was SVN commit r27269.
2022-12-04 19:28:34 +00:00
vladislavbelov 55443563e6 Fixes calling SDL functions in CVideoMode after SDL_Quit.
CVideoMode::Shutdown was introduced in 97019c3a5a without any SDL calls
in it. But the one was added in d62e3729d5.

Differential Revision: https://code.wildfiregames.com/D4836
This was SVN commit r27268.
2022-12-04 14:54:24 +00:00
wowgetoffyourcellphone 65ab37d49f Alpha 27 | Art | Remove geometric tiles from Mace and Spart civic centers and give them tile decals instead. Also tweak the Sele civic center with some statues.
This was SVN commit r27267.
2022-12-03 01:55:01 +00:00
wowgetoffyourcellphone bca17a2d73 Alpha 27 | Art | Improve some Greek tile textures.
This was SVN commit r27266.
2022-12-03 01:49:44 +00:00
wowgetoffyourcellphone e564c6afa5 Alpha 27 | Art | Fix texture refs
This was SVN commit r27264.
2022-11-29 22:44:55 +00:00
wowgetoffyourcellphone ae835534c7 Alpha 27 | Art | New shrine model.
This was SVN commit r27263.
2022-11-29 21:13:43 +00:00
wowgetoffyourcellphone 3c518e842c Alpha 27 | Art | Add a second Greek shrine building. Rename the first one.
This was SVN commit r27262.
2022-11-29 21:12:57 +00:00
trompetin17 12d96b6277 Display a tooltip for the health and capture points and fix the civ tooltip style.
Comments By: asterix, Stan
Fixes #6367
Differential Revision: ​https://code.wildfiregames.com/DD4323
This was SVN commit r27260.
2022-11-28 03:17:37 +00:00
Stan 661312ea6f Fix minimap circle not showing.
Noticed by: @vladislavbelov
This was SVN commit r27259.
2022-11-27 20:20:40 +00:00
wowgetoffyourcellphone 4cbfa1a435 Alpha 27 | Art | commit missing new face texture.
Reported by @Stan'

This was SVN commit r27257.
2022-11-27 00:48:48 +00:00
vladislavbelov 29368cf776 Adds framebuffer attachment load and store operations.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4830
This was SVN commit r27256.
2022-11-26 21:55:17 +00:00
wowgetoffyourcellphone e9979c62b3 Alpha 27 | Art | Add a block wall texture to the Spart_Struct files for use in future building platform geometry.
This was SVN commit r27255.
2022-11-26 00:45:02 +00:00
wowgetoffyourcellphone 0280dff151 Alpha 27 | Art | Reduce the resolution of some spec maps (smaller file size)
This was SVN commit r27254.
2022-11-26 00:42:03 +00:00
wowgetoffyourcellphone 15ca4413df Alpha 27 | Art | Slightly modify the Aphrodite statue textures
This was SVN commit r27253.
2022-11-26 00:40:25 +00:00
wowgetoffyourcellphone adb846320a Alpha 27 | Art | Turn the Kushite corral model 90 degrees
This was SVN commit r27252.
2022-11-26 00:39:35 +00:00
wowgetoffyourcellphone c840ce5b6f Alpha 27 | Art | Add a strong rock material
This was SVN commit r27251.
2022-11-26 00:38:07 +00:00
wowgetoffyourcellphone e8c1b91b36 Alpha 27 | Art | Remove the weird tile geometry from the Athenian CC and add a tile decal instead.
This was SVN commit r27250.
2022-11-26 00:36:15 +00:00
wowgetoffyourcellphone b0efd7ec43 Alpha 27 | Art | New Greek Shrine and Painted Stoa. Tweak some minor art things.
This was SVN commit r27249.
2022-11-26 00:30:37 +00:00
wowgetoffyourcellphone fe62b57620 Alpha 27 | Art | New face Egyptian texture
This was SVN commit r27248.
2022-11-26 00:19:02 +00:00
wowgetoffyourcellphone 415304db8a Fix Ptol Champion Juggernaut template. It had accidentally included some unready code.
Fixes #6660

Refs 61ee26bce1

This was SVN commit r27246.
2022-11-24 14:49:30 +00:00
Freagarach 9bb9ff8b16 Add Requirements helper.
Allows more flexibility in e.g. the Identity requirements and unifies
the checking of requirements.
One can use the script at https://code.wildfiregames.com/P265 to fix
templates.

Differential revision: https://code.wildfiregames.com/D4514
Comments by: @elexis, @Stan
Fixes #6421

This was SVN commit r27245.
2022-11-24 11:20:11 +00:00
Freagarach 42fe39d35c Garrison Domestic Animals into the Corral to get a <ResourceTrickle> of Food.
By aura.

Differential revision: D4380
Original patch by: @wowgetoffyourcellphone
Comments by: @chrstgtr, @borg-, @LetswaveaBook, @marder, @Micfild,
@Silier
Refs. #1907

This was SVN commit r27244.
2022-11-24 09:53:34 +00:00
Freagarach 26c2f2ac42 Fix elephant mixins.
Use `mul_round`, refs. 2078abdcc4. (Resources in cost and loot need to
be integers.)

Reported by: @Langbart
Differential revision: D4832
Suggestion by: @Stan
Fixes #6659

This was SVN commit r27243.
2022-11-24 09:36:10 +00:00
Freagarach 966727b52e Make the player state an enum.
So we don't need to hassle with strings all over the place.

Differential revision: D4504
Comments by: @Silier
This was SVN commit r27242.
2022-11-22 07:54:11 +00:00
Freagarach da2d002c78 Don't (mis)use technologies to differentiate elephants.
Use mixins.

Differential revision: D4590
This was SVN commit r27241.
2022-11-22 07:09:25 +00:00
Freagarach 50d8afcaba Add TerritoryInfluence to Athenian Gymnasium.
Missed in 1582e80ccf.

Patch by: @Langbart
Fixes #6656

This was SVN commit r27240.
2022-11-22 07:00:32 +00:00
wowgetoffyourcellphone 93db8b803c Alpha 27 | Art | Improve the look of the Spartan "Persian Stoa" by adding some shield prop points to the model.
This was SVN commit r27239.
2022-11-22 02:35:39 +00:00
wowgetoffyourcellphone 9e5976b970 Alpha 27 | Structure model fixes: Center Seleucid CC, turn Kushite market 180 degrees.
This was SVN commit r27235.
2022-11-20 16:06:21 +00:00
wowgetoffyourcellphone fca59054de Alpha 27 | Fix generic name of Shrines
This was SVN commit r27234.
2022-11-19 13:00:42 +00:00
vladislavbelov 8e51dfa91a Moves post processing out of scene rendering to avoid framebuffer pass duplicate.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4827
This was SVN commit r27232.
2022-11-18 19:59:18 +00:00
vladislavbelov 87843b5c4e Remove unused members of TaskManager::Impl missed in 1b35d36daa.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4826
This was SVN commit r27231.
2022-11-18 19:32:20 +00:00
vladislavbelov dac3ce3584 Add JS bindings for in game camera attributes.
Patch By: edoput
Differential Revision: https://code.wildfiregames.com/D4667
This was SVN commit r27230.
2022-11-18 19:24:45 +00:00
wowgetoffyourcellphone 0d1f331b3d Alpha 27 | Art | Improve the look of the Aphrodite statues with ao maps and better textures. Add a pedestal to the large statue.
This was SVN commit r27228.
2022-11-15 19:21:34 +00:00
Stan a4ce5982ea Make infantry_spearman_b.xml consistent with other han spearmen.
Reported by: @Silier
This was SVN commit r27227.
2022-11-14 11:53:37 +00:00
vladislavbelov 649a62fb1d Renames shaders solid_player to model_solid_player and solid_tex to model_solid_tex.
This was SVN commit r27223.
2022-11-13 21:55:40 +00:00
vladislavbelov 92f2152900 Removes unused UV1 stream in OverlayRenderer and moves vertex data setup out of a loop.
This was SVN commit r27222.
2022-11-13 19:19:08 +00:00
vladislavbelov 192585008a Removes skycolor from GL framebuffer.
Differential Revision: https://code.wildfiregames.com/D4822
This was SVN commit r27220.
2022-11-11 23:03:01 +00:00
wowgetoffyourcellphone 76e0076ef6 Alpha 27 | Art | Add Badlands and Savanna metal mines
This was SVN commit r27218.
2022-11-10 20:56:43 +00:00
wowgetoffyourcellphone 3c35ef9fa5 Alpha 27 | Maps | Vastly improve the Gambia River skirmish map with the new assets.
This was SVN commit r27217.
2022-11-10 04:57:49 +00:00
wowgetoffyourcellphone dfa3fb6603 Alpha 27 | A new demo skirmish map for the African Savanna biome.
This was SVN commit r27216.
2022-11-10 04:47:37 +00:00
wowgetoffyourcellphone 90d01a831f [Alpha 27] [Art] Several Gaia/Rock/Ore/Grass texture and actor improvements.
- Reduced the size of many spec maps (grayscale, lower resolution)

This was SVN commit r27215.
2022-11-10 04:42:10 +00:00
wowgetoffyourcellphone 2faf515e00 [terrains] Fix a typo in a terrain file.
This was SVN commit r27214.
2022-11-10 04:09:08 +00:00
wowgetoffyourcellphone 63c0d31b04 [maps] Improve Caspian Sea skirmish map terrains
This was SVN commit r27213.
2022-11-10 04:07:25 +00:00
wowgetoffyourcellphone 37908af490 [Alpha 27][Terrains] "Temperate_Autumn" and "African Savanna" terrain sets.
- Adjust "Rhinelands (Fall)" biome file to the new Temperate_Autumn
terrains.
- Rename temperate_europe to temperate_summer.
- "Savanna" biome adjustments to the new African Savanna terrains
forthcoming.
- Some Skirmish map adjustments and improvements.

This was SVN commit r27212.
2022-11-10 03:44:04 +00:00
vladislavbelov f4c730a887 Reduces the uniform size of an instancing transform of overlay solid shader.
This was SVN commit r27209.
2022-11-06 20:04:26 +00:00
vladislavbelov 3978149386 Reduces the uniform size of a texture transform of debug overlay shader.
This was SVN commit r27208.
2022-11-06 19:40:47 +00:00
vladislavbelov 097725e1e0 Moves particles data uploading out of framebuffer pass.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D4820
This was SVN commit r27207.
2022-11-06 11:31:05 +00:00
Angen eacbb1d248 Spaces around '+' in 467541cfad
This was SVN commit r27205.
2022-11-05 12:28:54 +00:00
vladislavbelov 240c1247ad Wraps gl_FragColor in a macro to avoid duplication for different versions.
gl_FragColor and gl_FragData are deprecated since GLSL 1.30.

This was SVN commit r27204.
2022-11-05 11:49:38 +00:00
vladislavbelov 850272ee5b Replaces deprecated in GLSL 1.30 gl_TexCoord by varying in water shaders.
This was SVN commit r27203.
2022-11-05 10:29:38 +00:00
Angen 017fe7e263 Restrict access for Read/WriteFile functions
For security reasons planing to restrict access for ReadFile,
ReadFileLines, WriteJSONFile, ReadJSONFile, ListDirectoryFiles,
FileExists to the following folders/files:

"gui, simulation, maps, campaigns, saves/campaigns,
config/matchsettings.json, config/matchsettings.mp.json"
adding "moddata" if some mods need to access and ship custom files that
don't fit into other locations mentioned above

Differential revision: D4617
Reviewed by: @phosit
Comments by: @Stan @vladislavbelov
Fixes: #5850

This was SVN commit r27202.
2022-11-05 08:33:27 +00:00
Angen 467541cfad Do not break gui when fallback language is not available in termsdialog.js
L10 falls back to language code, that means if "pt_x" is not available
it falls back to "pt", but we do not provide "pt", same for "en" or
after uninstalling and removing language pack and leaving language
selected.
Adding warning.

Related post:
https://wildfiregames.com/forum/topic/96800-terms-display-error

This was SVN commit r27201.
2022-11-05 08:19:32 +00:00
vladislavbelov 33dd5d9fbc Wraps vertex attributes in a macro to avoid duplication for different versions.
This was SVN commit r27199.
2022-11-04 23:41:41 +00:00
vladislavbelov e2f433db8c Wraps gl_Position in a macro to avoid duplication for different versions.
This was SVN commit r27198.
2022-11-04 22:56:56 +00:00
vladislavbelov eea6c21d40 Remove L10n::DictionaryDeleter added in d6ddc4f3ac.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4817
This was SVN commit r27197.
2022-11-04 20:52:28 +00:00
Angen cde8b7fae8 Missed file
This was SVN commit r27195.
2022-11-03 17:29:46 +00:00
Angen b7c0878cef Save configuration once when possible
Differential revision: D4818
Reduce how many times configuration is written into the file pointed out
by @nani and @Freagarach in D4616
Also fix bug in 281bb0b2ec

This was SVN commit r27194.
2022-11-03 16:44:47 +00:00
Angen 281bb0b2ec Remove user.cfg from javascript
remove path from javascript
path is defined by the configuration scope

combine some calls
remove not needed calls

Differential revision: D4616
Accepted by: @Freagarach, @nani
Comments by: @phosit
This was SVN commit r27192.
2022-11-02 07:21:25 +00:00
wackyserious 2b94c6ca27 Han Officer Helmet (New)
This was SVN commit r27191.
2022-11-02 01:54:00 +00:00
wowgetoffyourcellphone 8c4df2f729 native
This was SVN commit r27190.
2022-11-01 19:00:09 +00:00
wowgetoffyourcellphone 64888e710a [Alpha 27] [Art] Improve the look of a bunch of eyecandy rocks.
This was SVN commit r27189.
2022-11-01 18:48:20 +00:00
Angen f1874ec196 Add color mixer
Add option to pick colour with sliders

Differential revision: D4597
Comments by: @Stan, @vladislavbelov, @Langbart, @elexis
This was SVN commit r27188.
2022-11-01 11:46:14 +00:00
vladislavbelov 480bc48194 Removes unused debug print of backend inside CVideoMode forgotten in 912202ff0c.
This was SVN commit r27185.
2022-10-30 00:43:45 +00:00
vladislavbelov 3a4c8342a0 Makes AcquireNextBackbuffer returns true in case of successful backbuffer acquirement.
This was SVN commit r27184.
2022-10-30 00:38:45 +00:00
vladislavbelov b54ace20ea Stores available locales in L10n by value instead of std::unique_ptr.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4764
This was SVN commit r27183.
2022-10-29 23:41:01 +00:00
vladislavbelov 2d0cde4e64 Disallows backend buffer uploading inside framebuffer pass.
Differential Revision: https://code.wildfiregames.com/D4815
This was SVN commit r27182.
2022-10-29 23:20:04 +00:00
wowgetoffyourcellphone a6a9355b2c [Alpha 27][Art][Actors][Flora] Improve the grass sprites to use a smoothed mesh model instead of models that aren't smoothed.
Also try to reduce a little of the trans overlap with some of the
textures.

This was SVN commit r27181.
2022-10-28 22:41:49 +00:00
wowgetoffyourcellphone e7d8ed33a6 [A27][Maps] Forgot to set a map preview for zagros_mountains_2p.xml
This was SVN commit r27179.
2022-10-27 03:34:43 +00:00
wowgetoffyourcellphone 13aae37a32 [Alpha 27] [Art] Add a missing material.
This was SVN commit r27178.
2022-10-27 03:25:52 +00:00
wowgetoffyourcellphone d3a20238de [Alpha 27] [Maps] [Terrains] Add a new Persia biome terrain set and a newly updated Zagros Mountains skirmish map to showcase it.
Only 4 new textures, as the biome extensively uses the flexibility of
the terrain system to pull assets from other biomes and form a coherent
new biome.

This was SVN commit r27177.
2022-10-27 03:20:22 +00:00
wowgetoffyourcellphone 0ede6c550e [A27] Fix 1 terrain, add 1 missing terrain, both for Aegean.
This was SVN commit r27176.
2022-10-26 19:20:05 +00:00
vladislavbelov 3dad53a7ee Fixes without PCH build in StunClient missing include for std::byte added in 895e4e6aa6.
Differential Revision: https://code.wildfiregames.com/D4814
This was SVN commit r27174.
2022-10-26 00:15:27 +00:00
vladislavbelov 968fd50fb0 Moves Backend enum from CVideoMode to backends.
Comments By: phosit, Stan
Differential Revision: https://code.wildfiregames.com/D4809
This was SVN commit r27173.
2022-10-25 22:45:54 +00:00
Stan b141204875 Allow to have more than 8 colors in the drop down.
Actual colors will be another commit.
Discussed with: @wowgetoffyourcellphone.

Differential Revision: https://code.wildfiregames.com/D4811
This was SVN commit r27172.
2022-10-24 12:43:30 +00:00
Stan f62e1457de Remove redundant references to deleted .dtd files
We only use relaxng and that confuses other linters like xmllint.

Patch by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4748
This was SVN commit r27170.
2022-10-23 17:06:51 +00:00
Stan dd15a65fcd Civ backgrounds for minimap
Comments by: @marder, @Freagarach
Differential Revision: https://code.wildfiregames.com/D4271
This was SVN commit r27169.
2022-10-23 16:50:30 +00:00
wowgetoffyourcellphone 5d15f50fa7 [Alpha 27][Art][Technologies] Some new technology portraits.
This was SVN commit r27168.
2022-10-23 15:53:43 +00:00
vladislavbelov 8691674cc6 Moves skybox vertex array creation and uploading before its rendering.
This was SVN commit r27167.
2022-10-23 14:47:23 +00:00
wowgetoffyourcellphone a86ba870b7 [Alpha 27][Art] Choose better foundation actors for a few structures.
This was SVN commit r27166.
2022-10-23 13:03:08 +00:00
vladislavbelov 228fff14e4 Splits minimap entities rendering and moves buffer uploading before drawing.
This was SVN commit r27165.
2022-10-22 21:00:13 +00:00
vladislavbelov dfa8176007 Allow 0.0.0.0 IP in StunClient tests added in 2034136560.
Patch By: kalev
Differential Revision: https://code.wildfiregames.com/D4792
This was SVN commit r27164.
2022-10-22 19:22:38 +00:00
Stan 2402f05201 Fix incorrect paths in LICENSE.txt and improve wording slightly.
Rebased from a
Patch by: @elexis
Accepted by: @asterix
Comments by: @smiley
Differential Revision: https://code.wildfiregames.com/D1664
This was SVN commit r27163.
2022-10-22 18:29:39 +00:00
wowgetoffyourcellphone de9021a8fc [Alpha 27] [Art] [Textures] Some new technology portraits by @real_tabasco_sauce
This was SVN commit r27162.
2022-10-22 18:09:19 +00:00
Stan 88b426dc59 Fix the issues with entvalidate.py
It doesn't properly handle mixins / special templates
    On python 3.8+, XML elements are no longer sorted and this fails
validation against entity.rng
    mixins are not properly applied because the | split is incorrect (3
max items instead of 2)
    merge="" is not supported
    Parents aren't always passed when they should be.
    on windows it is incorrectly assumed that the encoding is 1252

Patch by: @baco
Tweaks by: @Stan
Based on a patch by: @wraitii
Differential Revision: https://code.wildfiregames.com/D4698
This was SVN commit r27161.
2022-10-22 16:24:45 +00:00
vladislavbelov 426edbc399 Reset m_EndsWithSpace to fix the uninitialized read of it introduced in f4128208de.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4806
This was SVN commit r27160.
2022-10-22 15:21:34 +00:00
Stan 8612fb0f4f Fix 16-bit texture introduced in f841c1fac0
This was SVN commit r27158.
2022-10-17 12:33:36 +00:00
vladislavbelov 47aae99fbe Skips renderer resources preloading for screenshots.
This was SVN commit r27156.
2022-10-13 21:46:08 +00:00
wowgetoffyourcellphone f841c1fac0 [Alpha 27][Maps] Add a new cliff terrain for the Aegean-Anatolian biome and color correct 2 of that biome's grass terrains.
This was SVN commit r27155.
2022-10-13 16:50:53 +00:00
wowgetoffyourcellphone e5bdd589cb [Alpha 27] [Art] [Maps] Add a new "Baltic-Nordic" biome for terrains.
This was SVN commit r27154.
2022-10-13 16:48:38 +00:00
wowgetoffyourcellphone edfd557374 [Alpha 27] [Maps] Use better/new placement obstructors on Cisalpine Winter's frozen lakes.
This was SVN commit r27153.
2022-10-13 15:39:21 +00:00
vladislavbelov 64bd81ae6b Adds usage flags to backend textures.
This was SVN commit r27152.
2022-10-12 23:19:27 +00:00
vladislavbelov d3f0395d2a Adds BeginFramebufferPass/EndFramebufferPass instead of SetFramebuffer.
This was SVN commit r27151.
2022-10-12 21:51:27 +00:00
vladislavbelov b59e798ef4 Moves network/fsm.* to network/FSM.*.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4797
This was SVN commit r27150.
2022-10-12 18:16:27 +00:00
vladislavbelov 8ae3a2bfd6 Adds AcquireNextBackbuffer to CDevice to have something to present.
This was SVN commit r27148.
2022-10-11 22:48:07 +00:00
vladislavbelov 344ec2c166 Reduces uniforms sizes for the minimap shader.
This was SVN commit r27147.
2022-10-11 22:20:36 +00:00
vladislavbelov 1cd1715088 Removes unused UV2 from minimap shader and reorders parameters types.
This was SVN commit r27146.
2022-10-11 20:56:00 +00:00
vladislavbelov b728c9e97e Fixes vertex attribute format in minimap and passes dependent textures as parameters.
This was SVN commit r27145.
2022-10-11 20:37:27 +00:00
marder 2ca0fd6ffb [Fix] Remove the remnants of the Han rice resource
It is unused at this point and causes their farming upgrades to be
non-functional

Accepted by: @Silier @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4791
This was SVN commit r27144.
2022-10-11 15:26:53 +00:00
Freagarach 856e876148 Only have capturing entities contribute to the capture regenrate.
Only entities which have capture attack themselves will contribute to
the regen-rate of a structure.
The `garrisonRegenRate` is now a multiplier how much each unit
contributes their strength.

Quite some gameplay change, but we can experiment with this.

Differential revision: https://code.wildfiregames.com/D4679
Comments by: @chrstgtr, @marder, @wraitii
This was SVN commit r27142.
2022-10-10 05:36:27 +00:00
Freagarach a315f90980 Implement emergency recognition for PetraAI.
First patch for an emergency mode. This implements a rudimentary
detection strategy.
The current effect is a shout-out for help.

Patch by: @JCWasmx86
Differential revision: https://code.wildfiregames.com/D4645
Refs. #2195

This was SVN commit r27141.
2022-10-10 05:09:23 +00:00
wowgetoffyourcellphone 4e52613ca2 [Alpha 27] [Maps] Improve Deccan Plateau skirmish map with new terrains, better lighting, etc.
This was SVN commit r27140.
2022-10-09 23:22:33 +00:00
vladislavbelov c57b416e20 Fixes calls to SetVertexAttributeFormat with zero stride.
This was SVN commit r27139.
2022-10-09 13:03:42 +00:00
vladislavbelov a311539ec9 Reduces the number of SetVertexAttributeFormat calls in Canvas2D.
This was SVN commit r27138.
2022-10-09 12:21:26 +00:00
vladislavbelov 908d9a0079 Moves vertex buffer offset to SetVertexBuffer.
This was SVN commit r27137.
2022-10-09 11:47:34 +00:00
vladislavbelov dffde00e5f Reduces uniforms sizes for the Canvas2D shader.
Differential Revision: https://code.wildfiregames.com/D4796
This was SVN commit r27136.
2022-10-09 10:44:51 +00:00
wraitii a0e006dbbe Fix victory conditions loading (fixes Hero Garrison in regicide crashloop).
VictoryConditions.js gamesetting sends multiple updates to 'active' and
'disabled', instead of just one single update at the end. This is
listened to by amongst others the regicide 'hero garrison' setting, thus
`HeroGarrison` is deactivated, and then tries to be reactivated from the
init attributes, and then disabled again later.

This implements a simple fix, VictoryConditions only sends a single
update in FromInitAttributes with the end-state.

Differential Revision: https://code.wildfiregames.com/D4793
This was SVN commit r27135.
2022-10-08 12:46:11 +00:00
vladislavbelov 178850cb23 Replaces border color of sampler by enum.
This was SVN commit r27134.
2022-10-08 09:40:06 +00:00
vladislavbelov ecab4595c3 Merges a duplication of CColor tests files introduced in 2c14d94559.
This was SVN commit r27133.
2022-10-07 23:19:12 +00:00
vladislavbelov ca427529c0 Fixes include guards of CDeviceCommandContext headers.
This was SVN commit r27132.
2022-10-07 23:02:15 +00:00
vladislavbelov 4079818187 Fixes CGradientTexture backend name.
This was SVN commit r27131.
2022-10-07 22:55:30 +00:00
vladislavbelov 61019c0e91 Removes unused minimap shader variants.
This was SVN commit r27130.
2022-10-07 22:52:23 +00:00
Stan ef9057239a Fix notes in 0a4ba039b4
This was SVN commit r27129.
2022-10-07 12:39:23 +00:00
Stan 0a4ba039b4 Update ifdef condition for MCST-LCC compiler (E2K)
Patch by: @r-a-sattarov
Differential Revision: https://code.wildfiregames.com/D4795
This was SVN commit r27128.
2022-10-07 07:44:40 +00:00
wowgetoffyourcellphone a6af1515b6 [Alpha 27][Art] Add player color to the Greek sentry tower.
This was SVN commit r27126.
2022-10-05 23:32:24 +00:00
wowgetoffyourcellphone 4fe5c8eb66 [Alpha 27][Portraits] Adjust portraits for Skirmish templates
refs 5b76cb5812

This was SVN commit r27125.
2022-10-05 23:03:10 +00:00
wowgetoffyourcellphone d93168fd11 [Alpha 27][Atlas] Obstructor parent template
This was SVN commit r27124.
2022-10-05 22:46:17 +00:00
wowgetoffyourcellphone fcc622c1ab [Alpha 27][Actors] Update the look of the Mediterranean stone quarry.
This was SVN commit r27123.
2022-10-05 02:25:11 +00:00
wowgetoffyourcellphone 94f284dfd9 [Alpha 27][GUI][Textures] Add civ-specific Minimap textures for future inclusion in the UI
This was SVN commit r27122.
2022-10-05 02:22:03 +00:00
wowgetoffyourcellphone 4fa5bd7ebd [Alpha 7][Art][Textures] Improve the look of the Kush bireme sail texture.
This was SVN commit r27121.
2022-10-05 02:15:20 +00:00
wowgetoffyourcellphone a9fef1932f [Alpha 27][Atlas] New Obstructor objects for Atlas.
Obstructors are useful for Skirmishes and Scenarios. They are only
visible in Atlas, not in-game.

This was SVN commit r27120.
2022-10-05 02:14:25 +00:00
wowgetoffyourcellphone 221c478edc [Alpha 27][Art] Begin to add subterranean platforms for structures. This adds one to the Athenian Wonder.
This was SVN commit r27119.
2022-10-05 02:03:42 +00:00
wowgetoffyourcellphone 86af95b80b [Alpha 27][Art][Actors][Celts] Reduce the amount of nakedness in Gallic and Brythonic units
This was SVN commit r27118.
2022-10-05 01:57:32 +00:00
wowgetoffyourcellphone 2144a6c22b [Alpha 27][Audio] Reduce the volume and normalize the stone selection sound
This was SVN commit r27117.
2022-10-05 01:55:07 +00:00
wowgetoffyourcellphone 54e1a66891 [Alpha 27] Add an icon the Arakamani's aura
This was SVN commit r27116.
2022-10-05 01:53:22 +00:00
wowgetoffyourcellphone 61ee26bce1 [Alpha 27][Art][Portraits][Templates] Moving portrait textures to their own specific folders
This commit is for the templates

This was SVN commit r27115.
2022-10-05 01:49:40 +00:00
wowgetoffyourcellphone 5b76cb5812 [Alpha 27][Art][Textures][Portraits] Move unit portraits to civ-specific folders.
This commit if for art; the next commit is for the templates refs.

This was SVN commit r27114.
2022-10-05 01:45:38 +00:00
wowgetoffyourcellphone 95d64869f7 [Alpha 27][Art][Actors] Remove unnecessary decals from some trees; change decals on some structures
This was SVN commit r27113.
2022-10-05 01:40:47 +00:00
wowgetoffyourcellphone 3b2126b95f [Alpha 27] [Art] Improved Hellenic structure texture, namely the frieze and pediment
This was SVN commit r27112.
2022-10-05 01:38:14 +00:00
vladislavbelov 4d77de66d4 Removes GUI dependency from Canvas2D.
Initially the GetDefaultGuiMatrix function was added in 4113aa0a36 and
renamed in 04c63a4093.

This was SVN commit r27111.
2022-10-04 20:25:39 +00:00
vladislavbelov adc6447b7b Fixes vertex attribute stride in Canvas2D.
This was SVN commit r27110.
2022-10-04 19:38:40 +00:00
vladislavbelov 75518d0e15 Removes drawing via IDeviceCommandContext from CMinimap.
Comments By: phosit
Differential Revision: https://code.wildfiregames.com/D4779
This was SVN commit r27109.
2022-10-04 19:32:42 +00:00
vladislavbelov bd7b9b884a Fixes out of bounds on each match start in Profiler2 introduced in 3cbe96d24c. Refs #6620
Differential Revision: https://code.wildfiregames.com/D4787
This was SVN commit r27108.
2022-10-04 19:28:21 +00:00
vladislavbelov 296daea4ba Cleanups CShaderParams::SItems comparisons.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4689
This was SVN commit r27107.
2022-10-04 19:13:44 +00:00
vladislavbelov 6ca43f056d Adds PS::span and std::string_view to CmdLineArgs.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4677
This was SVN commit r27106.
2022-10-04 19:08:39 +00:00
Stan f68528777f Bump version to alpha 27.
Last alpha 26 commit was [[SVN:27104]]

Accepted by: @asterix, @vladislavbelov
Discussed with: @Freagarach, @wraitii, @implodedok, @Itms

Refs: #6625

Differential Revision: https://code.wildfiregames.com/D4789
This was SVN commit r27105.
2022-10-04 17:05:11 +00:00
vladislavbelov 85854db8d6 Fixes water rendering on map borders.
Tested By:
Differential Revision: https://code.wildfiregames.com/D4716
This was SVN commit r27102.
2022-09-12 21:53:36 +00:00
Stan cfa4aff773 Fix translations script pipeline.
This was SVN commit r27100.
2022-09-12 11:35:27 +00:00
Stan 33762aa24e Update dockerfiles images to match jenkins
This was SVN commit r27097.
2022-09-12 07:37:47 +00:00
Stan 7e481b73cd Update jenkinsfiles to match upstream.
Windows now builds the actor editor for autobuilds, and stores the test
results.
All bundle now has an option to only build the macOS bundle and uses the
number of cores available to build.
docker-translations now builds the long string locale. Fixes #5009.
New script that is run periodically to check if the nopch build still
works.
Docker docs now builds the template analyser data and uploads it to the
server.
Add the design docs script.
Add a new script to build the game using linux with custom flags, such
as gles, clang, special linker etc.

This was SVN commit r27096.
2022-09-11 17:28:32 +00:00
wowgetoffyourcellphone 4c4562699c [Alpha 26] Fix so that swordsman heroes can use the Testudo (if their civ allows it)
This was SVN commit r27095.
2022-09-11 15:58:28 +00:00
Dunedan a72fa8f7c7 Remove code for the lobby bots from SVN
This removes the code for the lobby bots from SVN to avoid confusion as
the code is now hosted on Github at https://github.com/0ad/lobby-bots.

Differential Revision: https://code.wildfiregames.com/D4155
This was SVN commit r27094.
2022-09-11 13:21:41 +00:00
Dunedan 7f5e664eec Remove code for the lobby bots from SVN
This removes the code for the lobby bots from SVN to avoid confusion as
the code is now hosted on Github at https://github.com/0ad/lobby-bots.

Differential Revision: https://code.wildfiregames.com/D4155
This was SVN commit r27093.
2022-09-11 13:14:20 +00:00
vladislavbelov a91ff9c7f5 Replaces -1 as stencil mask value in effect XML by a positive mask.
Differential Revision: https://code.wildfiregames.com/D4785
This was SVN commit r27092.
2022-09-10 20:23:28 +00:00
Stan 6109fd3ee0 Fix the check translation script failing.
This was SVN commit r27091.
2022-09-10 17:16:32 +00:00
Stan 32ccabeba6 Fix ministers being trainable by all civs.
Reported by: @Nobbi
This was SVN commit r27088.
2022-09-04 10:47:21 +00:00
user1 40bb300efd Amend ToU to disallow account sharing.
Reviewers: Stan, Dunedan

Accepted By: Stan
Differential Revision: https://code.wildfiregames.com/D4783
This was SVN commit r27087.
2022-09-03 17:08:21 +00:00
Stan 6acc4b4a5b Don't mix locally installed python libs when building
Patch by: @baco
Differential Revision: https://code.wildfiregames.com/D4776
This was SVN commit r27084.
2022-09-01 20:49:16 +00:00
Stan 6e8e6e986d Fix glad not building on BSD
Differential Revision: https://code.wildfiregames.com/D4781
This was SVN commit r27083.
2022-09-01 20:44:49 +00:00
Stan f2c80badbf Don't try to build Atlas when wxconfig is missing
Reported by: @andy5995
Comments by: @lyv, @vladislavbelov, @andy5995
Fixes #6615
Differential Revision: https://code.wildfiregames.com/D4777
This was SVN commit r27082.
2022-09-01 20:42:59 +00:00
Stan f616327f2d Revert 10554eb5b1 as it prevents building on FreeBSD.
This was SVN commit r27081.
2022-09-01 20:39:46 +00:00
wowgetoffyourcellphone 8eae4979c3 [Alpha 26] Fixes additional unit actors, for Roman Testudo and Anti-Cav idle animations, as well as an oversight with Athenian hero Pericles.
Fixes #6614

This was SVN commit r27080.
2022-09-01 19:27:00 +00:00
wowgetoffyourcellphone c938113609 [A26] Fix Hoplite and Pikeman actors for Phalanx and Syntagma idle animations. Add syntagma variants for Han halbs, for edge cases.
Differential revision: https://code.wildfiregames.com/D4780
This was SVN commit r27079.
2022-09-01 16:32:18 +00:00
vladislavbelov 6be7bd0677 Fixes space correction after f4128208de.
Tested By: phosit
Differential Revision: https://code.wildfiregames.com/D4774
This was SVN commit r27077.
2022-08-30 17:46:33 +00:00
Stan e799ee7088 Switch names between ministry and civil_centre.xml reported by @AIEND.
https://wildfiregames.com/forum/topic/83323-balancing-the-han/page/6/#comment-517225

This was SVN commit r27075.
2022-08-27 11:57:08 +00:00
vladislavbelov 2ee13983a1 Minor fixes for NSIS - Windows distribution script, HTTP > HTTPS.
Reviewed By: Stan
Differential Revision: https://code.wildfiregames.com/D4756
This was SVN commit r27073.
2022-08-26 16:01:57 +00:00
Stan d1586e0edf Fix perioikoi hoplites not assuming the idle phalanx stance as the champions and heroes do.
This was SVN commit r27071.
2022-08-24 12:29:29 +00:00
Stan 6eb58a1248 Fix incorrect civilization being set in the spartan sandbox. Introduced in afde89eb33
This was SVN commit r27070.
2022-08-24 12:21:34 +00:00
Stan acb939e7bc Don't wait for observers by default and let them lag as much as needed.
Discussed with: @alre, @wraitii, @real_tabasco_sauce, @chrstgtr, @Sevda
Thread:
https://wildfiregames.com/forum/topic/18003-suggestions-for-0-ad/page/157/#comment-516302

This was SVN commit r27069.
2022-08-24 12:08:46 +00:00
marder 03e3f0f1f1 [Maps] Enable Napata citizen cavalry on Jebel barkal again
Oversight in daaa87b48c , noticed by @Freagarach

This was SVN commit r27066.
2022-08-21 08:03:24 +00:00
vladislavbelov d286080285 Fixes the default number of workers in TaskManager in case of zero hardware_concurrency.
Differential Revision: https://code.wildfiregames.com/D4768
This was SVN commit r27064.
2022-08-20 20:40:05 +00:00
Stan 2285d84d3d Fix warning reported by the NOPCH automatic CI.
This was SVN commit r27063.
2022-08-20 12:25:19 +00:00
marder fbded636a2 [Gameplay] - Small nerf to CS crossbows
patch by: @real_tabasco_sauce
accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4754
This was SVN commit r27061.
2022-08-18 18:24:51 +00:00
Stan 14b8fb3b3b Add small flower borders to the han civic center to make its footprint more obvious.
Thread:
https://wildfiregames.com/forum/topic/86856-very-strange-field-sticking-near-han-city-center-by-ctrl/

This was SVN commit r27060.
2022-08-17 09:39:54 +00:00
Stan e947dcb23c Fix ab16e60afa
Reported by: @Langbart
Accepted by: @Vladislavbelov
Tested by: @Langbart
Fixes: #6603
Differential Revision: https://code.wildfiregames.com/D4765
This was SVN commit r27058.
2022-08-16 14:57:28 +00:00
Stan ab16e60afa Fix previous commit.
This was SVN commit r27056.
2022-08-14 18:22:48 +00:00
Stan c9dc8676a6 Fix mod installation in non latin folders. Use OSString for consistency.
Refs e7ab22286e
Refs 880a797ce0
Refs 404e1a9a4a
Refs 52baaa4bbd

This was SVN commit r27055.
2022-08-14 17:55:08 +00:00
Stan 880a797ce0 Fix replay cache creation in non latin folders.
IRC:
https://irclogs.wildfiregames.com/%230ad-dev/2022-08-14-QuakeNet-%230ad-dev.log
Reported by: @AirXonix2
Thread:
https://wildfiregames.com/forum/topic/89261-a-new-series-of-bugs/#comment-514734
Discussed with: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4763
This was SVN commit r27054.
2022-08-14 17:23:50 +00:00
Stan 8c497bea0d Fix an edge case when you would delete the last savegame and thus, the metadata would be undefined.
Introduced in a8c6d7a82b
Thread:
https://wildfiregames.com/forum/topic/89261-a-new-series-of-bugs/#comment-514015

This was SVN commit r27053.
2022-08-14 15:10:38 +00:00
marder daaa87b48c [Maps] Fix Jebel barkal after 01fd2564e5
since only infantry can garrision in stables now.

Reported by: Gurken Kahn
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/16/#comment-514594

Troubleshooting by @lyv

This was SVN commit r27052.
2022-08-14 15:05:48 +00:00
Stan fc374d3718 Fix Athenian Gymnasion counting as a City Phase building, when it's actually a Town Phase building. Maybe we should add that class automatically at some point.
Reported by: Player of 0AD
Thread:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=514655

This was SVN commit r27051.
2022-08-14 10:37:43 +00:00
Stan 5cdb9f6244 Recenter Han emblem logo slightly and fix the name.
Noticed by: @vladislavbelov
This was SVN commit r27050.
2022-08-14 10:29:45 +00:00
vladislavbelov 291182683d Adds explicit z value for main menu buttons to workaround low resolutions to be able to exit.
Reviewed By: marder, Stan
Differential Revision: https://code.wildfiregames.com/D4757
This was SVN commit r27049.
2022-08-13 11:22:33 +00:00
marder c9f7bf35ac Add in 92a96785a4 removed Han swordsman templates back in under a different name
So people can use them in atlas
Request by @wowgetoffyourcellphone

This was SVN commit r27048.
2022-08-13 09:19:27 +00:00
marder 92a96785a4 [Gameplay] Enable other civ's to train champions in Han barracks and stables
Reported by Player of 0AD:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/16/#comment-514122

Note that this also deletes the Han swordsman templates, as they are
unused right now.

This was SVN commit r27046.
2022-08-11 20:31:05 +00:00
Stan 4f3adf7fa6 Fix mipmap issue with the camel rein. Use a very light texture as most details are not really visible.
Fixes #6556
Reported by: @Langbart
This was SVN commit r27045.
2022-08-11 17:46:35 +00:00
marder 3eea53ae66 [Gameplay] Make fences capturable
Request by Gurken Khan
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/16/#comment-513790

And I agree, it is annoying thay you can't just delete them once their
on your territory.

This was SVN commit r27043.
2022-08-10 22:16:38 +00:00
marder a80ce526b7 [Fix] Patch globalscripts technology template helper after 8d80a2186e and the ProductionQueue split
Patch by @s0600204.

This lets all technologies show up correctly in-game and in the
structure tree again.

accepted by: @marder @Freagarach
Fixes: #6587

Differential Revision: https://code.wildfiregames.com/D4755
This was SVN commit r27042.
2022-08-10 21:49:15 +00:00
vladislavbelov 95106b2d9b Fixes crash in Atlas when switching from the Actor viewer. Fixes #6524
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4732
This was SVN commit r27041.
2022-08-10 17:17:24 +00:00
marder d1c9e96f87 [Gameplay] Disable training han crossbow cavalry in other civ's barracks
Request by Player of 0AD:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/15/#comment-513182

This was SVN commit r27040.
2022-08-08 21:32:56 +00:00
marder f8ff908d73 [maps] Adjust playerPlacementRiver to group teams on the same side in most cases
Brute forcing the right arrangement, which is unnecessary but accepted
since it has only a negligible performance impact overall.

accepted by: @lyv @andy5995
Fixes: #6390

Differential revision: https://code.wildfiregames.com/D4747
This was SVN commit r27039.
2022-08-08 20:52:05 +00:00
marder 5afbdc6a09 [Gameplay] Disable training persian champions in other civ's barracks
Request by Player of 0AD:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/15/#comment-513143

This was SVN commit r27038.
2022-08-08 20:41:17 +00:00
marder 10f2ad4463 [Gameplay] Disable loot for trainable animals
Request by Player of 0AD:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/15/#comment-513143

This was SVN commit r27037.
2022-08-08 18:16:58 +00:00
Freagarach f843cf726d Cavalry vision range 92 m -> 80 m.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4744
Comments by: @asterix, @borg-, @breakfastburrito_007, @chrstgtr,
@marder, @wowgetoffyourcellphone

This was SVN commit r27036.
2022-08-08 07:23:00 +00:00
Freagarach 96d33e02e4 Revert 774e8060d9.
Issue found:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=513199.
The issue introduced is significantly worse than the stuff it fixed.

This was SVN commit r27034.
2022-08-08 07:14:18 +00:00
Stan 759aa333a5 Add a function to handle custom phase techs, so they do not show as unused.
Fix autostart files being marked as unused.
Fix an issue with the researcher component. Patch by: @marder
Refs https://code.wildfiregames.com/D4750
Refs #6587
Fixes ca82935dfc

This was SVN commit r27033.
2022-08-06 15:06:03 +00:00
Stan fb94d8aa59 Fix writing mod.json on Windows in non Latin user folders.
Accepted by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4741
This was SVN commit r27031.
2022-08-05 17:55:49 +00:00
wowgetoffyourcellphone 0a54a4e2a5 [Alpha 26] [Fix] Restore the Kushite fisherman actor
Reported by @CovenantKillerJ here:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=512741

This was SVN commit r27029.
2022-08-04 15:36:13 +00:00
Stan 5cd08feba6 Fix issues with the sandbox_han.xml map in 08156e73fc.
Noticed by: @Langbart
This was SVN commit r27028.
2022-08-03 15:55:52 +00:00
Stan 5e824698e9 Fix false positive missing file in checkrefs.py in 22168569c6 (Game ignores double extensions)
Noticed by @Langbart

This was SVN commit r27027.
2022-08-03 15:43:07 +00:00
Stan 1e46b6f7e7 Fix material not using spectex in b8131a0f09
Noticed by @Langbart

This was SVN commit r27026.
2022-08-03 15:41:43 +00:00
marder d6d137bf5d [Fix] Adjust position of ice house and ministry in the building panel
accepted by: @asterix @Langbart
Fixes: #6502

Differential Revision: https://code.wildfiregames.com/D4746
This was SVN commit r27025.
2022-08-01 18:56:10 +00:00
marder a50d582c5f [Fix] Add missing loot to the Han minister
reported on the forums by Gurken Khan:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/14/#comment-511954

This was SVN commit r27023.
2022-07-31 21:05:16 +00:00
wowgetoffyourcellphone 6a48b023ad [Alpha 26] [Fix] [Persians] Remove the "City" class from the Persian Ice House.
Reported by @Gurken Khan:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=511945

This was SVN commit r27022.
2022-07-31 20:55:39 +00:00
marder d76daebb03 [Gameplay] Rebalancing of the Gaul fanatic
patch by : @borg-
accepted by: @chrstgtr @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4722
This was SVN commit r27021.
2022-07-31 11:12:46 +00:00
Stan b9e119e85e Add more world population options.
Requested by: @Edwarf
Accepted by: @Freagarach
Differential Revision: https://code.wildfiregames.com/D4742
This was SVN commit r27020.
2022-07-29 19:50:23 +00:00
wowgetoffyourcellphone b3d8b77173 [A26][Fix][Han] Add turret points to the Han wall gate.
Reported here by @0ad is the best rts game:
https://wildfiregames.com/forum/topic/87305-a26-hans-gate-cannot-be-garrisoned/

This was SVN commit r27018.
2022-07-26 14:16:29 +00:00
Stan 9d2275e26b Fix assertion when trying to draw a line with one point. This would trigger an ensure if one enabled the unitmotion overlay.
Patch by: @vladislavbelov
This was SVN commit r27016.
2022-07-25 20:08:03 +00:00
Stan fbc9e19544 New icon for the han champion_infantry_crossbowman
Fixes #6591
Refs 08156e73fc

This was SVN commit r27013.
2022-07-18 12:06:43 +00:00
Stan b8131a0f09 Use the new crossbow for han champion units.
This was SVN commit r27012.
2022-07-18 12:05:22 +00:00
Stan 22168569c6 New crossbow model for the han champion units.
Refs 08156e73fc

This was SVN commit r27011.
2022-07-18 12:04:43 +00:00
marder 08156e73fc [Gameplay] Han unit roster restructure and other balancing adjustments
After feedback on the first RC's :
https://wildfiregames.com/forum/topic/83323-balancing-the-han/
This version of the roster seems to have a minimal concensus.
This removes some units from the very big roster of the Han,
restructures it and changes the cavalry crossbow champion for an
infantry one due to histrorical issues.
It furthermore reverts the changes to the champion infantry crossbow
template introduced in 9411d8c98e as that nerf wasn't necesarry.
This means that the Han and the Macedonians now have a champion crossbow
unit with the same stats.

Also:

Fixes #6560 by only keeping the "academy" templates, so that the Han can
now only train champions from the academy. Therefore, this reverts parts
of c4bdbe4dd9 and all of 2c9a6704e0.

Discussion with : @borg- @real_tabasco_sauce @wowgetoffyourcellphone
AIEND @Stan and other people on the forums and the Diff.

Differential revision: https://code.wildfiregames.com/D4713
This was SVN commit r27009.
2022-07-17 09:20:52 +00:00
Freagarach fd08ab051f Fix other civs being able to upgrade Han CC to Court.
This ensures the `{civ}` and `{native}` tags are (properly) supported
for upgrades and uses it for the Han CC.

Reported on the forums
(https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/10/#comment-508908)
by @Gurken Khan.
Differential revision: https://code.wildfiregames.com/D4733
Comments by: @Stan, @wowgetoffyourcellphone
This was SVN commit r27008.
2022-07-15 17:16:00 +00:00
Stan 2ccf42a244 Add an order sound for the Maurya elephant.
Reported by: @GurkenKhan
Thread:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=508534

This was SVN commit r27006.
2022-07-12 08:19:14 +00:00
Stan ba9cd30c9b Add missing garrison flag for the maurya houses.
Reported by: @GurkenKhan
Thread:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=508540
Refs #4581, #6160

This was SVN commit r27005.
2022-07-12 08:09:25 +00:00
Freagarach 3f243b7b50 Fix d1538f7fbd.
Where I forgot to remove the other members when disbanding a formation.

Reported by: @wowgetoffyourcellphone
This was SVN commit r27000.
2022-07-04 05:06:59 +00:00
Freagarach 35e5f268da Fix properties on Persian Champion Infantry Archer XML file.
This was SVN commit r26999.
2022-07-04 05:02:44 +00:00
wowgetoffyourcellphone a7c709c58c [A26][Persians][Fixes] Fixes the Immortal Archer and Ice House for Persians.
This was SVN commit r26998.
2022-07-03 21:04:23 +00:00
wowgetoffyourcellphone 22466770f1 [Alpha 26][Fix][Macedonians] Change Macedonian Team Bonus from Barter Bonus to Siege Bonus
This changes the old bartering bonus, which has been proved to be
mathematically problematic, for a siege-focused bonus, which is also
historically relevant.
Differential revision: https://code.wildfiregames.com/D4729
Forum discussion (lengthy):
https://wildfiregames.com/forum/topic/71578-feedbacks-from-a26-svn-tests/page/6/#comment-485498
Accepted by: @chrstgtr, @real_tabasco_sauce, @borg-
This was SVN commit r26997.
2022-07-03 13:51:56 +00:00
Freagarach b6caf5eb63 Differentiate Persians.
- Allows the immortals to be "upgraded" between sword and bow yielding.
- Reduces batch training time per progressing phase.
- Don't kill the immortals partly when reducing their training time.
- More units from the CC.
- Enable the Ice House.

Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D4724
Accepted by: @chrstgtr, @real_tabasco_sauce
Comments by: @marder, @Stan
This was SVN commit r26996.
2022-07-03 05:44:37 +00:00
Stan 6e3ddadc7e Fix flickering tooltip for user report button
Patch by: @Langbart
Fixes #6581

This was SVN commit r26994.
2022-06-30 13:34:34 +00:00
Freagarach d1538f7fbd Fix formation merging issues.
The motion parameters were calculated even without members, which caused
us to try set a undefined passclass.
Also were members added to previously merged twin-formations. Once
merged (i.e. disbanded), they are moved out of world now.

Some cleanups/deduplication whilst at it.

Reported by: @andy5995 at the forums
(https://wildfiregames.com/forum/topic/71578-feedbacks-from-a26-svn-tests/page/8/#comment-505078)
Differential revision: https://code.wildfiregames.com/D4727
Comments by: @Langbart, @marder
Tested by: @Langbart
Fixes #6580

This was SVN commit r26993.
2022-06-30 06:04:05 +00:00
Stan 5ab132c16c Remove unused han_hero_wei_qing_3.json aura.
Reported by: @Langbart
Fixes #6544
Fixes 77c11753c3

This was SVN commit r26992.
2022-06-28 13:47:39 +00:00
Stan ca82935dfc Add techs and auras to the list of possibly missing files.
Refs: #6544
Accepted by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4725
This was SVN commit r26991.
2022-06-27 14:31:16 +00:00
marder 18bdacbb57 [maps] Adjust position of starting units on oceanside_2p.xml
For the Han they were inside the CC.

This was SVN commit r26989.
2022-06-24 18:01:15 +00:00
marder fd7f091b8c [Gameplay] Han - adjust crossbow stats & training techs
Similar dps as a slinger now, but with higher repat time. Normal citizen
soilder cost.
Nerf the crossbow training technology a bit.
Make the archer & crossbow technology availabe in the stable as well, as
it they also affect cavalry units.

accepted by : @real_tabasco_sauce
positive comment from: @borg-

Differential revision: https://code.wildfiregames.com/D4721
This was SVN commit r26988.
2022-06-24 17:31:02 +00:00
marder a6c1d5bbb9 revert last commit / 39dd5329cc
Misscommunication if this was the right move or not.

Leave the size as it was until someone has time to fix all buttons at
once.

This was SVN commit r26987.
2022-06-24 16:41:53 +00:00
marder 39dd5329cc [GUI] increase msgbox button size to fix text overlap
Report:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/6/#comment-504135

3ab25cbd95 added a new button which has more text and can span have
multiple lines in some languages.
Fix: increase the size.
possible todo for the future: unify button sizes or make them adaptive
depending on the text size.

comments by @Langbart @Stan

accepted by @wraitii

Differential revision: https://code.wildfiregames.com/D4707
This was SVN commit r26986.
2022-06-24 11:19:17 +00:00
Stan ec723428d1 Logic fix for very high shadows on very large screens.
ON large screens like 5120x1440 calculated shadow map was 32768. That
was 16x more than high setting, 32x more than medium setting and 64x
more than low setting.

After this change shadow map sizes using very high setting by resolution
will be following:
1920x1080 - 4096
2560x1440 - 4096
3840x1440 - 4096
5120x1440 - 8192
3840x2160 - 4096
7680x4320 - 8192
Patch by: @karmux
Reviewed by: @vladislavbelov, @Stan
Differential Revision: https://code.wildfiregames.com/D4723
This was SVN commit r26983.
2022-06-23 17:04:13 +00:00
marder 3cdd5d2bd6 [Gameplay] Han - Reduce strength of art of war technology
Seemed a bit strong, especially with the hero.

accepted by : @borg-

Differential revision: https://code.wildfiregames.com/D4714
This was SVN commit r26982.
2022-06-22 17:29:59 +00:00
marder 589dfa7a50 This was SVN commit r26981. 2022-06-22 17:18:11 +00:00
marder 77c11753c3 [Gameplay] Han - Hero adjustments
accepted by : @borg-
positive comments by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D4709
This was SVN commit r26980.
2022-06-22 17:06:11 +00:00
marder b4155900d3 [Gameplay] Han - adjust farming techs to the standard 20%
accepted by : @real_tabasco_sauce

Differential revision: https://code.wildfiregames.com/D4720
This was SVN commit r26979.
2022-06-22 17:03:31 +00:00
Stan 00e29977dc Add missing frequency for the idle variant.
Noticed by: @Langbart
Fixes #6579

This was SVN commit r26978.
2022-06-21 05:38:54 +00:00
marder 3d47232ec8 [graphics] Adjust default config to give a better first impression
comments by @vladislavbelov
accepted by : @Stan

Differential revision: https://code.wildfiregames.com/D4706
This was SVN commit r26976.
2022-06-20 19:50:45 +00:00
marder f22fdcd004 [Gameplay] Han - remove Laozi gate
It is not historically correct and more importantly, I also doesn't add
that much gamplay value. Also clean up the template a bit and remove the
aura while at it.

accepted by : @Stan & people on the forum:
https://wildfiregames.com/forum/topic/83323-balancing-the-han-release-candidate-1/

Differential revision: https://code.wildfiregames.com/D4708
This was SVN commit r26975.
2022-06-20 19:16:51 +00:00
marder 2685783886 [Gameplay] Adjust cost of mer cav (again)
Add a little bit of food cost. Not enough to hugely change stuff, but
just an addition to make it a little bit harder to mass them.

Conceptual agreement from @chrstgtr @real_tabasco_sauce

Differential revision: https://code.wildfiregames.com/D4710
This was SVN commit r26974.
2022-06-20 19:07:27 +00:00
marder db1a31b701 [Gameplay] Move ptol heroes to the fortress
accepted by : @chrstgtr @borg- @real_tabasco_sauce

Differential revision: https://code.wildfiregames.com/D4711
This was SVN commit r26973.
2022-06-20 19:04:08 +00:00
marder 83bab71e8d [maps] Lighting adjustments to gulf_of_bothnia.js spring biome
Just some tweaks to make it look nicer.

This was SVN commit r26972.
2022-06-20 18:50:59 +00:00
Stan e888587116 Fix some capes not having approaching animations.
EOL native + MIME type.
Remove duplicated tools objects spawning when gathering resources.

This was SVN commit r26971.
2022-06-20 13:48:24 +00:00
Stan 833f8d0e79 Bump the max amount of instanced icons to 256 to account for Egypt 3v3 as suggested by @vladislavbelov.
192 worked as well but the error spam isn't really nice going above 256
is madness anyway.
Reported by: @Langbart
Fixes: #6578

This was SVN commit r26969.
2022-06-20 07:12:43 +00:00
marder 3294f0ea48 [GUI] Correction of the deco size at the bottom right of the ModernDialog sprite
The bottom deco on the right is 2 pixels wider than the one on the left.

Patch by @Langbart

Differential revision: https://code.wildfiregames.com/D4717
This was SVN commit r26968.
2022-06-20 06:33:27 +00:00
marder d93e29ae84 [GUI] Fix overlap in mutliplayer lobby dialog
Fixes #6573 ; reported by @phosit

Patch by @Langbart (on the ticket)

This was SVN commit r26967.
2022-06-19 21:20:47 +00:00
Stan cc13cfd7cd Add a new type of flower for decoration
This was SVN commit r26966.
2022-06-19 20:21:51 +00:00
Stan ebbc2909c8 Add missing file in 8471062bbb
This was SVN commit r26965.
2022-06-19 20:21:29 +00:00
Stan 78d1248abd Fix missing animations for grain gathering for spearmen. This workarounds a bug in UnitAI and improves consistency with other actors.
Refs #6566

This was SVN commit r26964.
2022-06-19 20:05:49 +00:00
Stan 059e71198a Fix missing animations for grain gathering for swordsmen. This workarounds a bug in UnitAI and improves consistency with other actors.
Refs #6566

This was SVN commit r26963.
2022-06-19 19:53:32 +00:00
Stan 860ab7ac31 Fix missing animations for grain gathering for pikemen. is workarounds a bug in UnitAI and improves consistency with other actors.
Refs #6566

This was SVN commit r26962.
2022-06-19 19:45:42 +00:00
Stan 8471062bbb Fix missing animations for grain gathering for han units. This workarounds a bug in UnitAI and improves consistency with other actors. Show the rice hat for approaching, returning and gathering grain.
Refs #6566

This was SVN commit r26961.
2022-06-19 19:27:31 +00:00
Stan 860521f463 Fix UVMap on tool_hoe2.dae.
Noticed while looking at #6566

This was SVN commit r26960.
2022-06-19 17:29:12 +00:00
Stan 76884ccba8 Properly clear back props when gathering. EOL native.
Noticed while looking at #6566

This was SVN commit r26959.
2022-06-19 17:28:42 +00:00
Freagarach 5a2474bd50 Fix Carths Naval Shipyard.
Which had the Trainer component, but not the user-required
ProductionQueue.

Differential revision: https://code.wildfiregames.com/D4695
Reviewed by: @Stan
Comments by: @jprahman
Fixes #6570

This was SVN commit r26958.
2022-06-19 06:37:58 +00:00
Freagarach 43aa870c68 Fix phasing by cheat with Athens.
Reported by @Langbart
Differential revision: https://code.wildfiregames.com/D4694
Reviewed by: @Langbart
Fixes #6571

This was SVN commit r26957.
2022-06-19 06:34:06 +00:00
Freagarach 774e8060d9 Make formations respond as one to threats.
Improves their functioning significantly.

Based on a patch by @lyv
Differential revision: https://code.wildfiregames.com/D4666
Reviewed by: @marder
Comments by: @Stan
This was SVN commit r26956.
2022-06-19 06:28:52 +00:00
wowgetoffyourcellphone 01fd2564e5 [Alpha 26][Fix] Barracks should garrison infantry, while stables garrison cavalry. This bug is a holdover from the unified barracks days prior to the stable split.
As reported on the forum.

This was SVN commit r26955.
2022-06-19 01:14:32 +00:00
marder 729a35c472 Choose civ randomly in gamesetup
Refs: #3987

accepted by: @Stan
Differential revision: https://code.wildfiregames.com/D4703
This was SVN commit r26954.
2022-06-18 14:40:30 +00:00
Stan 9c3d725d8b Update the mod.io key so I and other team members can sign mods.
This was SVN commit r26953.
2022-06-18 09:50:46 +00:00
Stan d51a0260bb Add garrisoned and projectile prop points to the han farmstead and storehouse.
Reported by: @Langbart
Refs: #4581

This was SVN commit r26951.
2022-06-17 19:59:32 +00:00
vladislavbelov 8ee8e63bcc Fixes same sequenced frames for LOS smooth textures. Fixes #6569
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4700
This was SVN commit r26950.
2022-06-17 19:42:48 +00:00
vladislavbelov 28e46ba765 Groups close minimap icons by path and color to decrease their visible count.
Comments By: phosit, Stan
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4702
This was SVN commit r26949.
2022-06-17 19:40:50 +00:00
wowgetoffyourcellphone e123b64ef6 [Alpha 26] [Fix] [Han] Add RallyPoint to the Han storehouse and farmstead since they are garrisonable by the Minister.
Reported by @Gerken Khan:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=503777

This was SVN commit r26947.
2022-06-15 20:17:02 +00:00
marder 1e654801a5 [art] [maps] Replace stone tiling texture on fortress.js
Use newer and better looking texture instead.

This was SVN commit r26946.
2022-06-13 20:46:48 +00:00
wowgetoffyourcellphone 91aee3db59 [Alpha 26] Make the Han spear cavalry into two-handed and remove the shield as requested by @AIEND
Refs:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=503346

This was SVN commit r26945.
2022-06-13 20:28:31 +00:00
marder 106bc68120 [maps] Fix entities placed outside of the passable map area on wild_lake.js and caledonia_meadows.js
Reported by Gurken Khan:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/4/#comment-503140

Fix:

rename "actor" to "entity" as that makes it clearer what it actually is
and use placeEntityPassable() to assure that nothing is placed outside
of the map.

also:
include https://code.wildfiregames.com/D2149 patch by @FeXoR
reduce the amount of entities placed on wild_lake. It looked extremely
crowded.

accepted by: @lyv
Differential revision: https://code.wildfiregames.com/D4699
This was SVN commit r26944.
2022-06-13 20:26:52 +00:00
marder e31f0f8766 [art] [maps] Replace large grass fields on Savanna & Nubia biomes
They make problems on several maps where they either float (e.g.
harbor.js) as they are placed to close to a cliff/ on a hill or they
cover way too much (e.g. D4699 / wild_lake.js).

Related: https://code.wildfiregames.com/D4699#199688

one could adjust all maps, but it is so much easier to just change the
actors here.

accepted by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4701
This was SVN commit r26943.
2022-06-13 19:32:38 +00:00
marder 8b03931497 [maps] Adjustments to Fortress.js
Houses are placed on top of each other, metal availability is bad (and
the textures are old).

First two problems reported by Gurken Khan:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/page/3/#comment-502958

Solution: use new balanced metal mine placement, update the textures and
replace the house switch/ the houses by a temple and a market.

An in-depth refactoring of the wall placement code should be made in the
future nevertheless.

accepted by: @lyv
Differential revision: https://code.wildfiregames.com/D4696
This was SVN commit r26940.
2022-06-12 16:09:52 +00:00
wraitii 274fe129a1 Change deprecated binary_negate<> to not_fn<>
Deprecated in C++17

Patch by: jprahman
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D4693
This was SVN commit r26939.
2022-06-12 08:45:39 +00:00
Freagarach 5f9e226625 Revert d81534d792 after 20a11614d7.
This was SVN commit r26938.
2022-06-12 04:51:50 +00:00
wowgetoffyourcellphone 20a11614d7 [Alpha 26] Remove the food.rice distinction and subsequent animation variants. Fixes some odd behavior.
Fixes #6559
Fixes #6565

Refs #6566

This was SVN commit r26937.
2022-06-11 20:16:14 +00:00
wowgetoffyourcellphone 76323e791b [Bug Fix] Han Female Citizen specific name was set to the generic name erroneously.
Fixes #6567

This was SVN commit r26936.
2022-06-11 16:53:29 +00:00
marder 36386b622e [GUI] increase main menu tooltip size
Apparently the translations got longer over the years and some don't fit
anymore

reported by Obelix
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/#comment-502315

long string looks ok now

Differential revision: https://code.wildfiregames.com/D4692
This was SVN commit r26935.
2022-06-10 15:19:44 +00:00
wraitii 26cb192f07 Improve shadow artifact problems without shadow filtering in some A25 biomes/maps
Without shadow filtering, artifacts may appear at some angle (shadow
bias issue). This change ssome settings so that these are less common.

Reported by: langbart
Accepted by: marder
Refs #6552

Differential Revision: https://code.wildfiregames.com/D4681
This was SVN commit r26934.
2022-06-10 07:39:23 +00:00
wraitii 5d0826d7d9 Fix gamesetup breakage when matchsettings.json contains incorrect victory conditions.
Reported by: gameboy, langbart
Fixes #6553

Differential Revision: https://code.wildfiregames.com/D4678
This was SVN commit r26933.
2022-06-10 07:37:59 +00:00
Freagarach d81534d792 Count rice as veggie.
Reported by @Gurken Khan at the forums:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=502523.

This was SVN commit r26931.
2022-06-10 04:53:25 +00:00
vladislavbelov 9845a99f77 Adds EGL support for Wayland.
Tested By: Freagarach, Mentula, phosit
Differential Revision: https://code.wildfiregames.com/D4642
This was SVN commit r26929.
2022-06-09 21:09:32 +00:00
Freagarach d19b602ecc Fix some text errors.
Reported on the forums by @Gurken Khan:
-
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=502270
-
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/?do=findComment&comment=502274

This was SVN commit r26928.
2022-06-09 14:16:44 +00:00
marder 80016a49ab Adjust lighting on hellas.js
It is way to bright and hard to look at.
reported during a26 rc testing:
https://wildfiregames.com/forum/topic/82754-alpha-26-pre-releaserelease-candidate-build-testing/#comment-502290
by Salesome

accepted by: @lyv
Differential revision: https://code.wildfiregames.com/D4691
This was SVN commit r26927.
2022-06-08 21:02:52 +00:00
Stan 8b57e0eeba Fix build without precompiled headers. Fixes f4128208de
This was SVN commit r26925.
2022-06-06 21:48:07 +00:00
Stan 12dfe2ce55 Use CVector2D instead of float arrays for TexturedLineRData
Reviewed by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4688
This was SVN commit r26924.
2022-06-06 21:46:37 +00:00
vladislavbelov 24140bf620 Fixes crash in LOSTexture because of incorrect nullptr check introduced in 648e68e49c.
This was SVN commit r26923.
2022-06-06 21:21:52 +00:00
vladislavbelov ffe4ea24ab Fixes LOS flickering because of float precision. Fixes #6546
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4684
This was SVN commit r26922.
2022-06-06 20:48:18 +00:00
vladislavbelov b0c29b8676 Removes GL types from regular renderer code after 3ed4eaf247.
This was SVN commit r26920.
2022-06-06 07:30:45 +00:00
vladislavbelov 54aae3e6d4 Moves anisotropic filtering support check from GL texture to TextureManager to make it explicit.
This was SVN commit r26919.
2022-06-06 06:59:20 +00:00
wraitii aaa95dc00b Minor cleanup in Future and TaskManager
- Remove redundant std::move() calls
- default ctor/dtor in place of empty {}

Patch by: jprahman
Comments by; phosit

Accepted by: vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4675
This was SVN commit r26916.
2022-06-02 12:59:25 +00:00
wraitii f4128208de Fix text alignment handling of spaces around wrapping.
Follows f8d2927748.

There is an issue with text-wrapping and word separators (aka spaces).
Because 0 A.D. collates the space after a word to the same TextCall, we
occasionally need to ignore it when considering line-wrapping, because
we don't want empty spaces on the right-side of right-aligned text.
However, the logic to handle this is currently broken and inconsistent.

The method introduced here uses the SFeedback structure to properly
report it and generalises the checks.

Note that multiples spaces are not collapsed in 0 A.D., and for
consistency the word-separator-collapsing behaviour is ignored.

Comments by: phosit, vlasdislavbelov
Fixes #6551

Differential Revision: https://code.wildfiregames.com/D4662
This was SVN commit r26915.
2022-06-02 12:56:53 +00:00
wraitii b5abab5c79 Don't reset wonder victory timer on ally defeat.
Follows d86148defc.
Resetting the wonder time when an ally to the wonder-owner is defeated
seems like double-punishment, and should not happen.

Resetting on explicit diplomacy change remains in Allied victory mode.

Fixes #6527

Reported by: Langbart
Differential Revision: https://code.wildfiregames.com/D4661
This was SVN commit r26914.
2022-06-01 15:44:53 +00:00
Freagarach 7946def863 Fix maps with conquest CC victory conditions.
Rename the file to be consistent with its title.
Also `centre` -> `center` as per the style guide. Reported by @nwtour at
https://code.wildfiregames.com/D3530#171291.

Reported by: @Langbart
Essentially a patch by: @Langbart
Fixes #6548

This was SVN commit r26913.
2022-05-30 15:13:17 +00:00
Stan 1d9e6f30b0 Add a new icon for the han siege tower.
Reported by: @Langbart
Fixes #6549

This was SVN commit r26911.
2022-05-30 07:33:39 +00:00
Stan d4e523e0ea Slightly improve the look of the chinese siege tower. Raise the garrison flag. Remove useless unused materials from the daes.
Fixes #6503
Reported by: @Langbart
This was SVN commit r26910.
2022-05-29 21:41:45 +00:00
Stan b9adbbd8be Fix 557fa0312e by adding the js files to the list of dependencies. They were previously found under the gui folder.
Reported by: @Langbart
Fixes #6542

This was SVN commit r26909.
2022-05-28 17:01:42 +00:00
vladislavbelov 095838da0a Fixes A8 framebuffer format used for LOS interpolation and enables smooth LOS by default.
Tested By: Langbart, mastoras
Differential Revision: https://code.wildfiregames.com/D4654
This was SVN commit r26906.
2022-05-26 16:36:57 +00:00
vladislavbelov 68d73e1726 Fixes double shader program reloading after dddd599146.
This was SVN commit r26904.
2022-05-25 17:33:54 +00:00
vladislavbelov 53033ceaa2 Fixes rendering reflections and refractions in case of empty scissors.
This was SVN commit r26902.
2022-05-24 19:15:26 +00:00
vladislavbelov a6f60afdc5 Adds instancing support to backend and enables it for minimap.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4650
This was SVN commit r26901.
2022-05-24 07:11:23 +00:00
marder 7cbe8125f7 Delete some unused techs/ auras
detected by @Langbart
Fixes #6544

Differential revision: https://code.wildfiregames.com/D4663
This was SVN commit r26900.
2022-05-23 13:31:47 +00:00
marder ddb54bfe84 [Gameplay] Let the mauryan worker elephant build again
and also patch the AI by partly reverting 87ec9457c3

based on a patch by @Langbart
Fixes #6309

accepted by : @Freagarach

conceptual agreement from @chrstgtr @borg- @Stan

Differential revision: https://code.wildfiregames.com/D4249
This was SVN commit r26898.
2022-05-22 07:06:59 +00:00
marder 0f99c79dad Fix issues with han siege tower
reported by @Langbart ; Fixes #6503 , also adjusts the footprint to fit
better to the actor

comments by: @Stan
accepted by : @phosit


Differential revision: https://code.wildfiregames.com/D4655
This was SVN commit r26897.
2022-05-21 14:54:01 +00:00
Freagarach f03f19cfc5 Fix aura tooltips on panel entities.
Removed from the GUI interface in d8ed8b1462, but its uses weren't
checked (or ignored).
(https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/gui/session/session.js;20965$998)

Reported by @Langbart
Based on a patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4648
Fixes #6387

This was SVN commit r26896.
2022-05-20 10:00:31 +00:00
marder f3d8f1e797 [Gameplay] - Remove min distance from siege towers
While it may be historically correct, it arguably can lead to very
broken looking behavior where siege towers try to get out of the min
range, but fail since the are attacked and end up shifting and turning
around uselessly, which just looks broken.

And since the min distance for siege towers is very small, I doubt that
it will actually change anything about the gamplay.

accepted by : @chrstgtr

Differential revision: https://code.wildfiregames.com/D4657
This was SVN commit r26894.
2022-05-20 07:13:09 +00:00
marder efc2d39372 Fix a comment and rename the formation angle function to better reflect what it does
wrong comment noticed by: @Silier
accepted by : @Freagarach

Differential revision: https://code.wildfiregames.com/D4658
This was SVN commit r26893.
2022-05-20 07:02:22 +00:00
marder 9a3ae16087 Make ship and siege immune to poison
reported by @Langbart #6526

accepted by :
@Stan
@asterix

Differential revision: https://code.wildfiregames.com/D4656
This was SVN commit r26892.
2022-05-20 06:44:58 +00:00
marder b2e093d915 Rename the "Han Chinese" to "Han"
Han Chinese is not wrong per se but unnecessary precise.
See the forum discussion here:
https://wildfiregames.com/forum/topic/51306-thread-for-posting-suggestions-for-alpha-26/page/15/#comment-495849
and the usage of "Han" in an article from the metropilitan museeum:
https://www.metmuseum.org/toah/hd/hand/hd_hand.htm

comments by:
@Langbart

accepted by :
@asterix
@Freagarach

Differential revision: https://code.wildfiregames.com/D4659
This was SVN commit r26891.
2022-05-20 06:36:38 +00:00
bb f8d2927748 Fix an infinite loop when trying to word-wrap
Comments By: Stan, Phosit, s0600204, Langbart, Silier, marder, vladislav
Reviewed By: wraitii
Differential Revision: D4530
fixes #6451

This was SVN commit r26889.
2022-05-17 12:10:56 +00:00
Stan 10554eb5b1 Fix RAM amount detection on BSD and macOS.
Tested by: @Mastoras
Comments by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4651
This was SVN commit r26888.
2022-05-17 08:08:14 +00:00
vladislavbelov d1775169d2 Removes unused a_tangent stream in model water shaders after 779a33ee30.
This was SVN commit r26887.
2022-05-16 16:36:58 +00:00
marder c0df9b9883 Fix: Han soilder missing gather animation for non-rice grains
accepted by : @Stan

Differential revision: https://code.wildfiregames.com/D4649
This was SVN commit r26886.
2022-05-16 15:00:29 +00:00
Freagarach 9528acfb8c Fix description of water weeding.
Reported by: @azayrahmad at the forums
(https://wildfiregames.com/forum/topic/77911-water-weeding/)
Patch by: @smiley
(https://wildfiregames.com/forum/topic/77911-water-weeding/#comment-498281)
Fixes #6512

This was SVN commit r26885.
2022-05-16 14:45:26 +00:00
wraitii f82fc6431b Fix SM compilation on M1, fix cross-compilation.
Fixes 08e7efc76a.
The SM build script worked on its own, but the mac OS libraries script
passes it an unexpected value.
This also fixes cross-compilation arm -> x86.
Harfbuzz is explicitly not used when compiling freetype to avoid
pkgconfig using it.

Reorganize the logic a little bit around architecture handling.

Differential Revision: https://code.wildfiregames.com/D4647
This was SVN commit r26882.
2022-05-15 21:22:49 +00:00
wraitii 08e7efc76a Allo native builds on Mac OS M1 / Apple Silicon
- Update GMP to a version that supports arm64 darwin
- Patch spidermonkey 78 to build and run on arm64 darwin
- Choose the correct architecture dynamically in build scripts
- Include python workaround that fixes python related errors on
spidermonkey build

Based on a patch by: kumikumi
Based on a patch by: Langbart
Fixes #6474

Differential Revision: https://code.wildfiregames.com/D4607
This was SVN commit r26881.
2022-05-15 06:45:53 +00:00
wraitii 364894287d Fix 557fa0312e
Forgot to re-add the GUI autostart script after moving it.

This was SVN commit r26880.
2022-05-15 06:36:27 +00:00
wraitii 557fa0312e Fix non-visual autostart, as well as client/host autostart.
Follows 8eecc39e71.

Piping the autostart through a GUI page is easy but requires using the
GUI in non-visual mode, which is problematic since it's not initialized.
The GUI is not needed, only its ability to load scripts, so this diff
fixes the problem by adding an 'entrypoint' script in the new
`autostart` folder that gets called with this unique ability, setting
things up properly. The mod mod gets a placeholder.

Other changes:
- Fix some issues with networked autostart:
  - Players were not assigned slots.
  - The host didn't actually wait for other players.
- Move gamesettings from `gui/gamesettings/` to `gamesettings/`. This
moves attributes as well.
- Move autostart files from `gui/autostart/` to ` autostart/`. Note that
`gui/autostart/` still exists as it's used in the tutorial button from
the main menu.
- Rename the JSI_VFS functions to be explicitly about their function:
the ability to write and the potential restricted folders.
- Don't require `autostart` when using `--autostart-client` in
non-visual mode.

Starting the autostart client/host has poor UX in some situations, but
improving that feature is beyond the scope of this diff.

Suggestions for future work:
- Some files in gui/common should probably be moved elsewhere
- Template loading code is duplicated
- The gamesetup code still needs work for proper UI/logic separation.

Help & comments by: smiley

Reported by: vladislav / Langbart
Fixes #6513

Differential Revision: https://code.wildfiregames.com/D4628
This was SVN commit r26879.
2022-05-15 06:34:17 +00:00
Freagarach 967f9ea7a3 Fix double 'to' in weeding technology.
Noticed by translator @rodrigo.vegas at Transifex.

This was SVN commit r26878.
2022-05-15 05:27:05 +00:00
Freagarach eb1febd5c1 Some fixes for the Han stone thrower.
A.k.a. Mangonel.
Adds UnitMotion. Refs. #1718
Adjust footprint.
Rearrange parents.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4608
This was SVN commit r26877.
2022-05-15 05:13:39 +00:00
marder dec727ce8e Fix missing parentheses in formation turning angle calculation
The function that is calculating the difference between the two angles
is missing some parentheses.

Didn't notice it sooner as it works in 95% of all cases without them,
but sometimes you can see the formation doing a wrong turn.

reviewed by : @Freagarach

Differential revision: https://code.wildfiregames.com/D4626
This was SVN commit r26874.
2022-05-11 15:22:54 +00:00
Freagarach ed4e07e594 Allow setting the passability class depending on formation members.
Improves pathfinding for the general case (no large entities in a
formation).

Differential revision: https://code.wildfiregames.com/D4605
Comments by: @marder, @Stan, @wraitii
This was SVN commit r26873.
2022-05-11 14:47:16 +00:00
Freagarach 13d701e3d0 Fix maps after ea72437739.
Correctly fetch the civ from the player's Identity.
Also remove the notions of the CivChanged message, since it was
effectively deleted already.

Differential revision: https://code.wildfiregames.com/D4486
Reviewed by: @wraitii
Comments by: @bb, @Silier, @smiley, @Stan, @vladislavbelov
Fixes #6444

This was SVN commit r26872.
2022-05-11 06:04:20 +00:00
vladislavbelov 1f8705d8f7 Avoids drawing text in GUI if it will be clipped.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4640
This was SVN commit r26870.
2022-05-10 16:32:25 +00:00
vladislavbelov dddd599146 Fixes shader program and technique reloading.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4641
This was SVN commit r26869.
2022-05-10 12:54:57 +00:00
wraitii ee0fcf2b95 Fix map errors from GetTemplate not being available in the sim
Follows ea72437739. Fixes it by providing a convenience function in the
component Manager that matches the API in the GUI / AI

Refs #6444

Differential Revision: https://code.wildfiregames.com/D4630
This was SVN commit r26867.
2022-05-09 18:13:34 +00:00
wraitii 69c76acabb Fix crash in non-visual autostart from not loading terrain textures
Fixes 410d2e883a

Reported by: langbart
Differential Revision: https://code.wildfiregames.com/D4627
This was SVN commit r26866.
2022-05-09 17:31:00 +00:00
wraitii 2ccd1ba280 UnitMotion - Fix Clearance serialization and only allow changing passability of formation controllers.
Fixes 5de50c447c

Changing the passability class at runtime breaks some UnitMotion
assumptions in unrecoverable ways and will lead to units getting into
impassable terrain.
Formation controllers can tolerate it since units still check their own
obstruction.
Until some code is added to recover from the above bad case,
de-activated changing passability class for non-formation controllers.

This also fixes serialization issues related to clearance & passability
classes following that diff.

Reviewed By: Freagarach
Differential Revision: https://code.wildfiregames.com/D4629
This was SVN commit r26865.
2022-05-09 17:29:15 +00:00
vladislavbelov db8d251a8b Adds XML path of GL shader descriptions to file dependencies.
This was SVN commit r26864.
2022-05-09 10:13:19 +00:00
vladislavbelov 132058bc04 Fixes RenderDoc captures by calling glGetProgramivARB to get constants only for ARB shaders.
This was SVN commit r26863.
2022-05-09 08:22:21 +00:00
vladislavbelov ae54282794 Fixes depth texture sampling in ARB shaders after a87cb6c94d. Fixes #6537
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4639
This was SVN commit r26862.
2022-05-09 07:55:40 +00:00
vladislavbelov 67e8e28006 Fixes dynamic GL buffer orphaning forgotten in cff79b421a. Fixes #6533
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4638
This was SVN commit r26859.
2022-05-08 22:45:54 +00:00
vladislavbelov 62e589ab76 Adds renderer backend interface and dummy backend.
Comments By: phosit, Stan
Tested By: Langbart, phosit
Differential Revision: https://code.wildfiregames.com/D4636
This was SVN commit r26858.
2022-05-08 22:02:46 +00:00
vladislavbelov c5f71d6b87 Fixes grayscaleFactor usage in Canvas2D ARB shader added in 1f192f1593. Fixes #6536
Tested By: Langbart
This was SVN commit r26857.
2022-05-07 20:57:16 +00:00
vladislavbelov 5c17a11343 Fixes incorrect type of objectColor in overlay line ARB shader introduced in 34fc883317 and appeared after 04bd96cee0. Fixes #6534
This was SVN commit r26856.
2022-05-07 19:48:35 +00:00
Freagarach 27061d7bd4 Fix slow formation movement on spamclick by increasing instant turn angle to the same value as units.
Having a small instant turn angle apparently makes units (not only
formations) lag when spamclicking.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4593
Fixes #6440

This was SVN commit r26855.
2022-05-07 04:47:03 +00:00
vladislavbelov b808adcc00 Disables writing depth for decals as they follow terrain and water (if floating) shape. Fixes #6494
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4637
This was SVN commit r26852.
2022-05-05 17:25:20 +00:00
vladislavbelov 3ed4eaf247 Removes ogl_WarnIfError from regular renderer code.
This was SVN commit r26850.
2022-05-02 21:52:21 +00:00
vladislavbelov a493a9f07f Removes ARB switch optimization as it triggers slow down. Fixes #6525
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4635
This was SVN commit r26849.
2022-05-02 21:25:13 +00:00
vladislavbelov 04bd96cee0 Moves uniform and texture binding to CDeviceCommandContext.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4631
This was SVN commit r26848.
2022-05-02 20:57:22 +00:00
vladislavbelov a8caed8348 Uses correct value_type to iterate over the map in JSInterface_Hotkey. Refs a4852c4c01.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4633
This was SVN commit r26847.
2022-05-02 10:03:34 +00:00
Stan a2df854547 Fix extra parenthesis in d0b2168879.
This was SVN commit r26845.
2022-05-01 15:27:33 +00:00
Angen a90ba38357 [Gameplay] Buff spear cavalry
Bonus against cavalry 1.75 -> 2

Differential revision: D4625
Patch by: @LetswaveaBook
Reviewed by: @marder
Comments by: @real_tabasco_sauce
This was SVN commit r26844.
2022-05-01 11:08:52 +00:00
Angen d0b2168879 Add Mouse drag to options
Allow to modify pixel distance when mouse input is detected as drag e.g.
for selection box.

Differential revision: D4624
Refs: #6506
Comments by: @vladislavbelow @Freagarach
Tested by: @psypherium
This was SVN commit r26843.
2022-05-01 10:50:23 +00:00
Angen 59fdc5e591 Fix chat window
Fix chat window not closing when submitting empty string introduced in
47f5c27eec
Always call submitted hanlders.

Differential revision: D4621
Fixes: #6511
Patch by: @Langbart
Comments by: @elexis
This was SVN commit r26842.
2022-04-29 17:48:01 +00:00
Freagarach 9c0817849e Fix - in previous commit.
This was SVN commit r26840.
2022-04-29 05:39:54 +00:00
Freagarach 65f631ff15 Make scythes aura only affect humans (instead of units).
Fixes affecting corpses and Siege.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4619
Comments by: @asterix, @Silier, @wowgetoffyourcellphone
This was SVN commit r26839.
2022-04-29 05:38:58 +00:00
Freagarach edccaaf84a Reduce fog on cisalpine winter map and artic biome.
People shouldn't be punished in a competitive setting for having high
graphic settings.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4596
Reviewed by: @wowgetoffyourcellphone
This was SVN commit r26838.
2022-04-29 05:22:42 +00:00
Angen 7765393908 Shift group hotkeys to map 1 - 10 instead 0 - 9
Number groups from 1 - 10 replacing group 0 with group 10 for default
hotkey 0.

Differential revision: D4615
Reviewed by: @Langbart
Fixes: #6509

This was SVN commit r26837.
2022-04-28 17:03:58 +00:00
vladislavbelov ac60b12045 Replaces occurrences of "VBO" in comments by "backend buffer". Refs cff79b421a
This was SVN commit r26835.
2022-04-27 20:04:56 +00:00
vladislavbelov d8b8128abb Adds AsFloatArray to CMatrix3D.
This was SVN commit r26834.
2022-04-27 19:53:42 +00:00
vladislavbelov 22a4db837b Adds backend buffer upload forgotten in aba7a170d9. Fixes #6520
This was SVN commit r26833.
2022-04-27 19:00:06 +00:00
vladislavbelov b26aa5936d Avoids scoped binding of the already bound backend buffer.
This was SVN commit r26831.
2022-04-26 18:25:52 +00:00
vladislavbelov 98c18425a8 Adds more detailed debug name for backend buffers.
This was SVN commit r26830.
2022-04-26 18:16:45 +00:00
vladislavbelov 069560a290 Fixes incorrect vertex buffer offset added in aba7a170d9. Fixes #6519
This was SVN commit r26829.
2022-04-26 18:12:56 +00:00
wowgetoffyourcellphone 7e44e7ae69 [maps][alpha 26][fix] Change player owned trees to Gaia.
Reported in a video by: @psypherium
This was SVN commit r26828.
2022-04-25 19:28:08 +00:00
Stan 6214632ab1 Fix a missing ambient occlusion texture and uvmap revealed by 0766919645.
Reported in a video by: @psypherium
This was SVN commit r26827.
2022-04-25 15:27:16 +00:00
wowgetoffyourcellphone 5a1c510ff1 [maps] Fix lost comma. Reported by Gameboy.
This was SVN commit r26825.
2022-04-25 03:46:51 +00:00
wowgetoffyourcellphone e9fdb01d2b [maps][fix] Quick little map file fixes, per @Stan.
This was SVN commit r26824.
2022-04-24 22:10:31 +00:00
vladislavbelov d2d22a4538 Makes the terrain and decals rendering code load effect once per usage.
This was SVN commit r26823.
2022-04-24 13:44:00 +00:00
wowgetoffyourcellphone 42c46b41bb [maps][Alpha 26] Clean up of the Player data for Skirmish maps.
Fixes #6508

This was SVN commit r26821.
2022-04-24 04:37:27 +00:00
wowgetoffyourcellphone 8368bd6248 [art][textures] Add some player color to the Arabic robes.
This was SVN commit r26820.
2022-04-24 03:04:18 +00:00
wowgetoffyourcellphone 281ba0924f [maps][Alpha 26] Further improve corinthian_isthmus_2p and its map preview.
This was SVN commit r26819.
2022-04-24 02:58:20 +00:00
wowgetoffyourcellphone 7606fd1eec [maps][Alpha 26] Improve the terrain of Corinthian Isthmus (2) since it is the default map for Spanish language players.
Also improve the terrain for Cycladic Archipelago 2p.
Fix naming conventions for Acropolis Bay, Chang Jiang, and Tarim Basin.
Add these new and updated maps to the "New Maps" campaign.

This was SVN commit r26818.
2022-04-24 01:11:12 +00:00
vladislavbelov d3a7491724 Removes CONFIG2_GLES from CPostprocManager and renderers.
This was SVN commit r26817.
2022-04-23 23:49:52 +00:00
vladislavbelov df612ab8b4 Moves GLSL-specific uniform name workaround (added in 227f9e403f) to CShaderProgramGLSL.
This was SVN commit r26816.
2022-04-23 21:39:15 +00:00
vladislavbelov aba7a170d9 Moves vertex attribute binding to CDeviceCommandContext.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4610
This was SVN commit r26815.
2022-04-23 20:11:14 +00:00
vladislavbelov ddb8b08508 Removes lib_api.h cleared but not deleted in 8c068aab07.
This was SVN commit r26813.
2022-04-22 16:11:21 +00:00
vladislavbelov 9b6365f9f2 Removes unused Noise generator added in 18eb72a25a without any actual usage.
60befbd1cf added the exact same implementation to the rmgen tool,
469d0fe5c5 removed the rmgen tool along with the original implementation
of noise.

Patch By: smiley
Differential Revision: https://code.wildfiregames.com/D4611
This was SVN commit r26810.
2022-04-20 20:22:01 +00:00
wowgetoffyourcellphone f1a59eca29 [art] Fix Brennus actor's material.
This was SVN commit r26809.
2022-04-20 17:28:38 +00:00
wowgetoffyourcellphone da983fbe42 [art][Alpha 26] Give an easier-to-see projectile to the Han Siege Tower
This was SVN commit r26808.
2022-04-20 06:53:40 +00:00
wowgetoffyourcellphone 3dd1cd39ca [art][Alpha 26] Give an easier-to-see projectile to the Siege Tower
This was SVN commit r26807.
2022-04-19 07:50:26 +00:00
vladislavbelov 2355240eec Removes the Profiler allocation counter. Fixes #6476
Refs 5c8250ddb8, 5664f097d9, 6b0a0e83eb.

Patch By: smiley
Differential Revision: https://code.wildfiregames.com/D4606
This was SVN commit r26805.
2022-04-18 21:37:08 +00:00
vladislavbelov 7bd075d570 Moves glReadPixels to GL backend.
This was SVN commit r26802.
2022-04-17 14:55:00 +00:00
Stan 5de50c447c Allow setting the passability class dynamically. This is needed to improve formation behavior for the release.
Accepted by: @Freagarach
Refs: https://code.wildfiregames.com/D4563,
https://code.wildfiregames.com/D4605
Differential Revision: https://code.wildfiregames.com/Dr4599
This was SVN commit r26801.
2022-04-17 11:06:09 +00:00
vladislavbelov c6da4d9312 Adds a fallback texture to skies to avoid a crash if a sky texture was invalid.
This was SVN commit r26800.
2022-04-17 10:10:52 +00:00
vladislavbelov e02b402a14 Uses vertex attribute name only for GLSL. Fixes #6500
This was SVN commit r26799.
2022-04-17 08:00:10 +00:00
wowgetoffyourcellphone 28349a2067 [art] Reduce specular strength of this block wall texture.
This was SVN commit r26798.
2022-04-17 02:23:40 +00:00
wowgetoffyourcellphone 6dfe7378fd [art][actors] Fix the Temperate stone actor to use the correct textures.
This was SVN commit r26797.
2022-04-16 06:44:41 +00:00
wowgetoffyourcellphone 0e7c7f26cf [art][actors][Alpha 26] Remove a superfluous decal from these Arsenal actors. The game would display this decal inconsistently with the other decal, so I picked one over the other.
This was SVN commit r26796.
2022-04-16 05:07:54 +00:00
wowgetoffyourcellphone a2c3e7503b [art][model][decals] Fix the Spartan Forge by recentering the model, also create a new decal for it from the existing texture.
Tweak the other Spartan decals while I'm at it.

This was SVN commit r26795.
2022-04-16 05:06:01 +00:00
wowgetoffyourcellphone 9217a710ec [art] Technology portrait for Wicker shields
This was SVN commit r26793.
2022-04-15 19:55:15 +00:00
vladislavbelov eaac0b0dbe Uses vertex streams to get attribute locations reducing duplication in XML.
Also adds missing streams.

This was SVN commit r26792.
2022-04-15 18:13:33 +00:00
vladislavbelov 37645670c1 Fixes crash in shader preprocessor introduced in d295dacb9b and appeared after 25332f9b86. Fixes #6033
This was SVN commit r26791.
2022-04-15 17:45:15 +00:00
wowgetoffyourcellphone 44a6b6bd23 [maps] Add a couple of improved maps to the new maps campaign.
This was SVN commit r26790.
2022-04-15 07:34:35 +00:00
Stan 663fb3f527 Update the LIB_URL for zlib.
Fixes: #6496
Refs: #4362
Patch by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4603
This was SVN commit r26788.
2022-04-14 22:35:17 +00:00
wowgetoffyourcellphone 458f4fca1e [art][fix][actors][Alpha 26] Fix the projectiles for a handful of siege engines.
This was SVN commit r26787.
2022-04-14 06:52:43 +00:00
wowgetoffyourcellphone 0e9bbd10c6 [art][icons][Fix] Fix some new aura icons, renamed/modified some too. Added them to some auras. Added some old icons to other auras.
This was SVN commit r26786.
2022-04-14 06:25:43 +00:00
vladislavbelov 2c8f4c4837 Moves AssertPointersBound to draw commands to not forget to call it for new shaders.
In the future it allows to call AssertPointersBound in a more lazy way.

This was SVN commit r26784.
2022-04-12 18:02:08 +00:00
vladislavbelov d8d736f0eb Allows tex clients decide how to handle invalid textures instead of assertions. Fixes #6436
This was SVN commit r26783.
2022-04-12 17:39:05 +00:00
vladislavbelov 8c1a469253 Uses GL device capabilities for all vertex attribute locations.
This was SVN commit r26782.
2022-04-12 16:49:04 +00:00
vladislavbelov ad2068dae0 Uses sequential numbering of GL vertex attributes for modern hardware. Refs #3054
Differential Revision: https://code.wildfiregames.com/D4601
This was SVN commit r26781.
2022-04-12 16:13:47 +00:00
vladislavbelov f6837978e8 Adds GL debug labels only if they are supported (forgotten in 3db24af763). Fixes #6495
This was SVN commit r26780.
2022-04-12 06:44:06 +00:00
vladislavbelov e6dd9f944e Moves Vulkan report code to its device to prevent crashing when a GL device is created. Fixes #6270
Differential Revision: https://code.wildfiregames.com/D4577
This was SVN commit r26779.
2022-04-12 06:39:14 +00:00
vladislavbelov 811a540382 Simplifies GL::CShaderProgram to store less data.
This was SVN commit r26777.
2022-04-11 22:10:21 +00:00
vladislavbelov 3db24af763 Adds names to GL shaders and programs.
This was SVN commit r26776.
2022-04-11 20:30:23 +00:00
Angen eafdb2339d Fix unit demo map
Split from D4589

Differential revision: D4600
Original patch by: @Langbart
Fixes: #6486
Refs: #6116

This was SVN commit r26775.
2022-04-11 18:59:25 +00:00
vladislavbelov 8a51e05c2e Avoids a crash if a texture size is not a power of two.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4586
This was SVN commit r26774.
2022-04-11 16:28:41 +00:00
wowgetoffyourcellphone b55c71ab88 [maps] Improve Median Oasis 2p with new terrain textures and new flora/geology.
This was SVN commit r26770.
2022-04-09 05:45:00 +00:00
Freagarach 06796303d7 Fix progress slider on formerly autoqueued items.
It was not resized for ghosts.

Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4592
Fixes #6492

This was SVN commit r26769.
2022-04-09 05:34:43 +00:00
wowgetoffyourcellphone 41032b034c [ maps ] Fix the absence of stone mines on Cisalpine Winter.
This was SVN commit r26768.
2022-04-09 04:54:05 +00:00
wowgetoffyourcellphone 001da7fdb8 [ art ][ particles ] Slow down the snow fall for aesthetics.
This was SVN commit r26767.
2022-04-09 04:52:22 +00:00
wowgetoffyourcellphone 73ec3fd48b [ Alpha 26 ] In Carthaginian embassies, remove references to "researching technologies" since there are none.
Report:
https://wildfiregames.com/forum/topic/51306-thread-for-posting-suggestions-for-alpha-26/page/14/#comment-489907

This was SVN commit r26766.
2022-04-09 01:08:42 +00:00
wowgetoffyourcellphone ed6b87c0fe [art] [Alpha 26] Improve and standardize the portraits for Ruins and Rocks. Delete a now-unused portrait.
This was SVN commit r26765.
2022-04-09 00:53:25 +00:00
wowgetoffyourcellphone 0766919645 [ art ][ actors ][ Alpha 26 ] A large actor visual update (mainly buildings)
- Better fitting decals
- Player color
- Warships use the larger, easier to see projectile like buildings do
- Upgrading variants
- Standardized decals for Stables
- Fix a few death variants
- Some better tree props
- Fixed sheath position for the Roman Centurion
- Add Cavalry variants for Gallic heroes (templates will come later)
- A more "British" shield for the Brit fanatic
- Add a new Atlas building for the Spartans, the "Persian Stoa"
- Add distinct actors between lit and non-lit Fireships

This was SVN commit r26764.
2022-04-08 21:45:47 +00:00
vladislavbelov 73c0e40045 Fixes warnings about unused function arguments in renderer.
This was SVN commit r26763.
2022-04-08 06:49:38 +00:00
Stan 383df82c4a Improve acropolis_bay_2p by removing fences and tweaking roads lightly and allow rebuilding towers.
Accepted by: @marder
Patch by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4591
This was SVN commit r26761.
2022-04-07 15:51:36 +00:00
vladislavbelov d3dd98418e Fixes GLES build after c842678591.
This was SVN commit r26760.
2022-04-07 06:59:40 +00:00
wowgetoffyourcellphone 6cc44f7a6f [art][textures] Reduce the resolution of the camel blanket textures by half. They were originally ginormous, 4x bigger than a standard unit texture.
This was SVN commit r26758.
2022-04-04 03:50:28 +00:00
wowgetoffyourcellphone 7da9ec6005 [art][actors] Improved the look of some actors.
- Different dirt decals for 3 Iberian structures
- Variations for the trees on the Kushite wonder
- Spec maps for a couple Athenian units
- Changed textures for Gallic elite javelineer
- New textures for the Ptolemy war elephant driver
- Peytral for the Elite Seleucid jav cav
- More helmet variants for the Elite Seleucid spear cav

This was SVN commit r26757.
2022-04-03 20:51:39 +00:00
Freagarach f9fae35b59 Fix selecting formations when cycling through idle entities.
Since formations have `cmpIdentity` now (b778caf146), they were
incorrectly selected when cycling through idle entities.

Reported and tested by: @Langbart
Differential revision: https://code.wildfiregames.com/D4588
Fixes #6490

This was SVN commit r26756.
2022-04-03 17:37:34 +00:00
Freagarach d847a1c479 Fix research icon position.
It was overlayed with the FPS overlay which rendered it unreadable.

Introduced in 7c3aed5f36
Reported by: @Langbart
Patch by: @phosit
Differential revision: https://code.wildfiregames.com/D4585
Comments by: @elexis
Fixes #6484

This was SVN commit r26755.
2022-04-03 17:32:19 +00:00
Freagarach a9d266f9f7 Rework Iphicratean Reform.
- Gymnasium to the second phase.
- Allow training the marines and cretan archers there.
- Move the above mentioned tech to that structure and the dock.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4537
Comments (implied acceptence) by: @chrstgtr, @ValihrAnt

This was SVN commit r26754.
2022-04-03 17:18:46 +00:00
Angen 3a43cb272c [Gameplay] Ships less pierce attack, but can destroy other ships because of a multiplier
Currently garrisoned ships easily kill organic units that dare to get to
close to them. A garrisoned ship is a killing machine like nothing else
in the game.

This patch solves their absurd deadliness against organic units. Ships
get 12 pierce attack and a 3x multiplier against other ships so they can
sink enemy ships at comparable rate as in A24 and A25.

Differential revision: D4507
Patch by: @LetswaveaBook
Reviewed by: @wowgetoffyourcellphone
Comments by: @marder @wraitii @Freagarach
This was SVN commit r26753.
2022-04-03 09:24:10 +00:00
wowgetoffyourcellphone 6297d1a58f [art][actors] Use the "normal" material instead of "parallax" for these 2 Kushite actors. The normal maps don't have an alpha anyway.
This was SVN commit r26751.
2022-04-02 23:47:29 +00:00
wowgetoffyourcellphone 84531ea28a [art][textures] Significantly reduce the bump effect of 3 Kushite royal textures.
This prevents a lot of visual artifacts.

Also reduce the size of this 1 spec map (it was overlarge). Saves disk
space.

This was SVN commit r26750.
2022-04-02 23:45:45 +00:00
vladislavbelov e08590ee34 Fixes warning about unused captured variable in CDeviceCommandContext.
This was SVN commit r26749.
2022-04-02 20:40:40 +00:00
wowgetoffyourcellphone 4c17946717 [maps] Improve Saharan Oases skirmish map.
This was SVN commit r26748.
2022-04-02 08:57:27 +00:00
wowgetoffyourcellphone fdb1298efe [maps] Revamp Acropolis Bay skirmish map.
This was SVN commit r26747.
2022-04-02 08:54:47 +00:00
wowgetoffyourcellphone 77e9ec372f [music] Rename music tracks to convention.
This was SVN commit r26746.
2022-04-02 08:37:30 +00:00
wowgetoffyourcellphone 46dfad4c41 [maps][Atlas] Update Britons sandbox map. Refs #6488
This was SVN commit r26745.
2022-04-02 03:43:46 +00:00
wowgetoffyourcellphone c1fb182e5e [maps][Atlas] Fix Kushite sandbox map. Refs #6488
This was SVN commit r26744.
2022-04-02 03:28:16 +00:00
wowgetoffyourcellphone 3a22d2ec69 [art][mesh] Fix the UV map of this head mesh to remove a visual defect on the pony tail geometry.
This was SVN commit r26743.
2022-04-01 23:56:36 +00:00
Freagarach 1af385a6dd Fix attack-walk with formations.
As well as patrolling.
Formations kept moving, finding targets and instructing their members to
attack (thereby resetting their attacking state every time).
We now move into `MEMBER` upon finding a target.

Differential revision: https://code.wildfiregames.com/D4550
Comments by: @Stan
Fixes #6461

This was SVN commit r26741.
2022-04-01 05:46:13 +00:00
Freagarach a8e7bb179e Add identity tag to obstructor.
Introduced in 20bb3ea4a3.

We assume at many places that an entity has cmpIdentity and as such we
add it here as well.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4583
Fixes #6416

This was SVN commit r26740.
2022-04-01 05:29:23 +00:00
Freagarach 12ac4c7714 Fix pop indication of paused items.
Reported by @Langbart at 75aa2091b7.

Differential revision: https://code.wildfiregames.com/D4308
Comments by: @Langbart, @marder, @Silier
Fixes #6452

This was SVN commit r26739.
2022-04-01 05:22:49 +00:00
vladislavbelov 02b87cdb46 Fixes MSAA on macOS GL drivers for textures with incorrect sample count, fixes #6480
Refs #5969

Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4581
This was SVN commit r26737.
2022-03-31 07:04:51 +00:00
vladislavbelov a3248ac04b Escapes paths in user report terms to fix invisible backslashes on Windows. Fixes #6475
Patch By: Langbart
Differential Revision: https://code.wildfiregames.com/D4579
This was SVN commit r26733.
2022-03-29 22:11:58 +00:00
Stan 3f8cbecd72 Remove hardcoded shadows in Atlas UI
Fixes c9a7aabbea
Patch by: @nwtour
Accepted by: @phosit
Tested by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4400
This was SVN commit r26730.
2022-03-28 22:47:52 +00:00
Stan ff7c5c7601 [maps] Improve forests on savanna and nubia biomes
Accepted by: @wowgetoffyourcellphone
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4562
This was SVN commit r26729.
2022-03-28 22:41:05 +00:00
Stan 5836637dde [Maps] Oly use actors in the decoratives of the random biomes
Accepted by: @wowgetoffyourcellphone
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4569
This was SVN commit r26728.
2022-03-28 22:39:45 +00:00
Stan 8f85f24608 Update the water height slider if the water height is set using the picker.
Patch by: @phosit
Fixes: #6424
Differential Revision: https://code.wildfiregames.com/D4576
This was SVN commit r26727.
2022-03-28 22:36:17 +00:00
Stan a33e0ccc84 Remove some duplicated code from ScriptInterface.cpp
Tested by: @Langbart
Patch by: @smiley
Differential Revision: https://code.wildfiregames.com/D4574
This was SVN commit r26725.
2022-03-28 21:58:22 +00:00
vladislavbelov c842678591 Removes usages of EXT and INTEL timer query GL extensions.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4571
This was SVN commit r26724.
2022-03-28 17:32:09 +00:00
wowgetoffyourcellphone 4013004040 [art] Odds n Ends. Add different trees to the Ptolemy library. Give the Polybolos a slightly larger projectile. Make a tree texture darker.
This was SVN commit r26723.
2022-03-28 09:56:17 +00:00
wowgetoffyourcellphone e341daef26 [art] Add player color to hele_struct_b.
This was SVN commit r26722.
2022-03-28 09:55:02 +00:00
wowgetoffyourcellphone 050dff3aec [art][actors] Fix/Tweak some Carthaginian and Gallic actors.
This was SVN commit r26720.
2022-03-27 09:45:15 +00:00
wowgetoffyourcellphone 8935fc8748 [art] Fix the front-back position of the Carth camel trader prop and now use it.
This was SVN commit r26719.
2022-03-27 09:43:19 +00:00
wowgetoffyourcellphone 6a0a9370e9 [art] Delete this old, unused brit unit texture.
This was SVN commit r26718.
2022-03-27 09:39:03 +00:00
wowgetoffyourcellphone d2df1e5090 [art] Fix vertical position of this Carthaginian apartment model
This was SVN commit r26717.
2022-03-27 09:37:11 +00:00
wowgetoffyourcellphone 3245cf1ad1 [art][actors] Tweaked the look of some actors and some minor style stuff.
This was SVN commit r26715.
2022-03-27 01:32:17 +00:00
wowgetoffyourcellphone 838d7de552 [ART][TEXTURES][UI] Reduce resolution of these 20 technology portraits to a consistent 128^2. Save a little bit of space.
This was SVN commit r26714.
2022-03-26 23:53:48 +00:00
wowgetoffyourcellphone 860552b166 [art] Fix 2 actors caught by Jenkins.
Reported by @Stan

This was SVN commit r26713.
2022-03-26 19:08:09 +00:00
vladislavbelov 4934784266 Adds USE_FP_SHADOW to shader context only for GL ARB.
This was SVN commit r26712.
2022-03-26 19:00:28 +00:00
wowgetoffyourcellphone 6e3b33806c [art][Atlas][Alpha 26] Improve some Atlas structures.
- Use a nicer actor for the obelisk
- Better portrait for sele_colonnade.xml and Stoas
- Tweak some civs for the tents

This was SVN commit r26711.
2022-03-26 09:00:49 +00:00
wowgetoffyourcellphone 5fa5b0ad24 [Alpha 26] Tweaked these Han technologies a little
This was SVN commit r26710.
2022-03-26 08:56:07 +00:00
wowgetoffyourcellphone efd296fb72 [art] Some additional art fixes and improvements before commit freeze.
- Date Palm actor variations for use on structures and elsewhere
- Fixed missing player color on the Celtic battering ram
- Unit actor fixes and updates
- Updated a Spartan unit texture and added a spec map for weapons

This was SVN commit r26709.
2022-03-26 08:54:24 +00:00
wowgetoffyourcellphone cf1d45042b [art][actors][Spartans] Fix and enhance some Spartan actors. Add some Helot actors for fun.
This was SVN commit r26708.
2022-03-26 02:32:12 +00:00
wowgetoffyourcellphone bc43ae9461 [art] Make is so these Lithobolos operator actors don't share the same helmet types.
This was SVN commit r26707.
2022-03-26 01:37:56 +00:00
wowgetoffyourcellphone 0422d243c6 [art] A longer spear for the Persian champion cavalry.
This was SVN commit r26706.
2022-03-26 01:36:48 +00:00
wowgetoffyourcellphone cc16f89404 [Atlas] [Maps] Keep tweaking the Han sandbox map.
This was SVN commit r26704.
2022-03-25 06:58:16 +00:00
Freagarach ca78a599db Make catapult / stonethrower more useful.
So decrease their attack spread to 3, increase their crush damage and
also increase their vision range slightly, so you can actually see what
they attack.
This still means they are primarily useful against buildings, and not
unit killer as in a23.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4511
Accepted by: @chrstgtr, @ValihrAnt, @wowgetoffyourcellphone
Comments by: @Langbart, @Stan
This was SVN commit r26703.
2022-03-25 06:32:37 +00:00
Freagarach a98049220c Use the Introductory Tutorial as tutorial.
As opposed to the Starting Economy Walkthrough, which is less
beginner-friendly.

Patch by: @azayrahmad
Differential revision: https://code.wildfiregames.com/D4194
Fixes #6347

This was SVN commit r26702.
2022-03-25 06:25:22 +00:00
wowgetoffyourcellphone 4ddaa93a56 [art][Atlas] Move the terrains from the "new_temp" folder to the "biome-temperate" folder.
Requested by @Vladislav and @Stan

This was SVN commit r26701.
2022-03-22 07:01:43 +00:00
Stan a403a9ed2e [Atlas] [Maps] Update the Default map in Atlas
Lowers default terrain grid height, which helps with shadow
sharpness on old shadows and allows for more vertical height
    A nicer Skybox as default
    One of the new higher-quality Terrain Textures by default


Patch by: @wowgetoffyourcellphone
Accepted by: @marder
Differential Revision: https://code.wildfiregames.com/D4446
This was SVN commit r26700.
2022-03-22 00:03:28 +00:00
Stan 6db7039bb4 fix mainland: decorative bushes spawnig inside the player cc on mainland.js
Patch by: @marder
Accepted by: @Langbart
Differential Revision: https://code.wildfiregames.com/D4549
This was SVN commit r26699.
2022-03-21 23:58:44 +00:00
Stan 6ad67d6a38 [art] only use the blossoming variant of the apple tree as a fruit tree to make it more distinct.
Add a normal variant.
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4555
This was SVN commit r26698.
2022-03-21 23:55:34 +00:00
Stan 1f09d43c7c Use geometry instead of transparency for han shields.
Recommended by: @vladislavbelov
Removed unused head for liu bang.

This was SVN commit r26697.
2022-03-21 23:41:08 +00:00
Stan 63841facb7 Remove not working terrain_parallax_spec.xml material and usages.
Remove two other unused/bad textures and use a better dummy texture
instead.

This was SVN commit r26696.
2022-03-21 20:29:22 +00:00
Freagarach 3c0c9098cf Adjust animal stances.
There have been complaints on the forums (e.g.
https://wildfiregames.com/forum/topic/51245-how-do-you-guys-feel-about-a25-in-terms-of-how-much-fun-you-have-compared-to-a23-or-a24/#comment-446690).
Boar and walrus now behave the same as the elephants (only attack back
when attacked), whilst most other animals have defensive stance (attack
only within some smaller distance and chase until left vision).

Differential revision: https://code.wildfiregames.com/D4533
Reviewed by: @marder, @wowgetoffyourcellphone
Comment by: @Silier
This was SVN commit r26694.
2022-03-21 06:58:13 +00:00
wowgetoffyourcellphone aca70ab800 [gameplay] Reenable the Han Academy' ability to be captured.
This was SVN commit r26692.
2022-03-21 02:43:20 +00:00
wowgetoffyourcellphone 830839d55b [art] Improved a few portraits
This was SVN commit r26691.
2022-03-21 01:55:19 +00:00
vladislavbelov 249f7cad55 Fixes cinematic camera distortion on some angles.
Differential Revision: https://code.wildfiregames.com/D4567
This was SVN commit r26690.
2022-03-20 21:59:49 +00:00
wowgetoffyourcellphone 8d9396e07e [art] Fix a space in the file name of this rock template, then fix the refs in the maps that use it.
This was SVN commit r26689.
2022-03-20 19:36:50 +00:00
vladislavbelov a57581471d Reduces the number of uniform changes in decals rendering and the number of render queries in models.
This was SVN commit r26688.
2022-03-20 16:08:19 +00:00
vladislavbelov d214745f8f Reduces the number of uniform changes in decals rendering.
This was SVN commit r26687.
2022-03-20 14:58:03 +00:00
Stan fd1eb35e07 [art] replace fig tree by the better visible date palm (or by berries)
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4560
This was SVN commit r26686.
2022-03-20 14:51:51 +00:00
Stan d8f6995dba [art] switch the berries on savanan biome
Patch by: @marder
Accepted by: wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4558
This was SVN commit r26685.
2022-03-20 14:50:22 +00:00
Stan 9387020ace [art] remove a decal from the small desert mines
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4557
This was SVN commit r26684.
2022-03-20 14:36:23 +00:00
Stan feb32fba1a [art] Recenter the Maurya ram mesh, it was centered with the wooden beam unlike the other ones.
Noticed by: @wowgetoffyourcellphone
This was SVN commit r26683.
2022-03-20 13:54:27 +00:00
Freagarach 74275a12f3 Fix some style issues noticed by translators.
This was SVN commit r26682.
2022-03-20 08:08:27 +00:00
wowgetoffyourcellphone e69a729b64 [art] The final new default cursor?
This was SVN commit r26681.
2022-03-20 03:24:21 +00:00
wowgetoffyourcellphone 1c95269354 [art Alpha 26] Update the footprint sizes and selectable shapes for mechanical units (Siege and Ships)
Closes #6459

This was SVN commit r26680.
2022-03-20 00:34:19 +00:00
wowgetoffyourcellphone af4317c92f [art] Remove this unused actor.
This was SVN commit r26679.
2022-03-20 00:30:41 +00:00
Stan 897b37040c [gameplay] Increase the cost of mercenary cavalry from 80 to 90 metal.
Patch by: @marder
Accepted by: @ValihrAnt
Differential Revision: https://code.wildfiregames.com/D4515
This was SVN commit r26678.
2022-03-19 17:00:56 +00:00
Stan 83bdd88f4a [Gameplay] Fix Ministers being able to capture fields, palisades and walls.
Patch by: @Langbart
Reported by: Playerof0AD
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4565
This was SVN commit r26677.
2022-03-19 16:56:44 +00:00
Stan 69d30d4725 Add missing Territory root tooltip information for the Han Ministry.
Patch by: @Langbart
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4566
This was SVN commit r26676.
2022-03-19 16:51:02 +00:00
Stan a77279ad3e [art] make the olive tree a source of wood, as it is hard to see that it is a food supply
Thread:
https://wildfiregames.com/forum/topic/73939-fruit-trees-are-too-difficult-to-tell-apart-from-other-trees/
Accepted by: @wowgetoffyourcellphone
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4561
This was SVN commit r26675.
2022-03-19 16:38:00 +00:00
Stan bb542f3aff Capitalize population in game setup
World pop was added with edb956424e, words (no preposition & articles)
for the title heading in the game setup are all capitalized except
population.

Patch By: @Langbart
Accepted by: @wowgetoffyourcellphone, @marder
Differential Revision: https://code.wildfiregames.com/D4564
This was SVN commit r26674.
2022-03-19 16:26:23 +00:00
Stan 18e4091d65 Alpha 26 Name: Zhuangzi
This is an ancient Chinese text from the late Warring States period.

Poll:
https://wildfiregames.com/forum/topic/53736-alpha-26-name-suggestions/

This was SVN commit r26673.
2022-03-19 16:19:31 +00:00
wowgetoffyourcellphone 9365464717 [A26]
Style fix on the Ministry template. Add civ to the Han palisade
template.

This was SVN commit r26672.
2022-03-19 08:38:13 +00:00
wowgetoffyourcellphone 8f2f111c35 [art - Alpha 26]
Shrink up the Arab oval shield model slightly, as it was overlapping
with the unit's weapons, etc.

This was SVN commit r26671.
2022-03-19 07:40:53 +00:00
wowgetoffyourcellphone 67050b8a83 [art - Alpha 26] Han Chinese
Move the Han head textures to the proper folder and delete the bad
folder. Adjust the head actors to the correct texture folder.

Improve the han_fem_c.png face texture and the Han female citizen
portrait.

Improve the Han fisherman actor to use better textures.

This was SVN commit r26670.
2022-03-19 07:39:38 +00:00
wowgetoffyourcellphone 12007ee14b [art Alpha 26]
Greatly reduce the size of these quiver textures. Part of an ongoing
effort to get texture sizes under control.

This was SVN commit r26669.
2022-03-19 06:41:10 +00:00
Freagarach 42b6784f07 Nerf fire cav (differently).
Give back their stacking fire, but reduce their damage, increase their
spread and repeat time.
Based on the discussion at
https://wildfiregames.com/forum/topic/72452-tasklist-for-closing-out-a26/,
this should decrease their efficiency versus units.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4516
Reverts 422fbbee7f
Comments by: @Silier
Reviewed by: @chrstgtr, @ValihrAnt
This was SVN commit r26667.
2022-03-18 06:53:38 +00:00
vladislavbelov 2a66c783ee Make configurable mouse edge distance for view scroll.
Differential Revision: https://code.wildfiregames.com/D4552
This was SVN commit r26665.
2022-03-17 18:25:54 +00:00
vladislavbelov 2ed2e9de0c Invalidates CDeviceCommandContext texture bind cache properly.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4553
This was SVN commit r26664.
2022-03-17 18:17:11 +00:00
wraitii ce3a47e49a Fix passibilty overlay in atlas
Broken in bb49fbe793.

Patch by: nwtour
Fixes #6374

Differential Revision: https://code.wildfiregames.com/D4338
This was SVN commit r26663.
2022-03-17 15:17:49 +00:00
vladislavbelov 37b30901b3 Removes C++ code for conditional defines removed in f29d059617.
Differential Revision: https://code.wildfiregames.com/D4551
This was SVN commit r26661.
2022-03-15 22:13:22 +00:00
Freagarach 7f279c695d Remove fortress and tower entity limits.
The distance requirement is enough:
These entity limits for fortresses and towers unnecessarily restrict
player freedom, especially on giant-size maps. See also comments by
various people on the forums (e.g.
https://wildfiregames.com/forum/topic/37687-lets-fight-gameplay-balance-mod/page/2/?tab=comments#comment-422251).

Patch by: @Nescio
Rebased by: @marder
Differential revision: https://code.wildfiregames.com/D3778
Reviewed by: @borg-, @chrstgtr
Comment from: @wowgetoffyourcellphone

This was SVN commit r26660.
2022-03-15 07:08:05 +00:00
Freagarach 7a42776b83 Increase the acceleration.
Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4512
Agreed: @chrstgtr, @Effervescent, @LetswaveaBook, @PhiliptheSwaggerless,
@Stockfish, @ValihrAnt, @wowgetoffyourcellphone
Disagreed: @bb, @Freagarach

This was SVN commit r26659.
2022-03-15 07:04:42 +00:00
Freagarach 6db68dbe8e Don't show captured units in summary.
Since siege isn't capturable anymore since d583048690.

Reported by: fmmaks at
https://wildfiregames.com/forum/topic/73490-cant-capture-siege-engines-alpha-25/#comment-484544.
Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4538
Fixes #6455

This was SVN commit r26658.
2022-03-15 06:53:40 +00:00
Freagarach 4af4fa84e3 Fix using numeric cheats with a non-numeric value.
Requested by @Silier at 93b22c5f86.
This notifies players when using a non-numeric value and guards the
simulation against such cases.

Previous behaviour was that a cheat was executed with its default value.
Now the cheat is not used.

Differential revision: https://code.wildfiregames.com/D4485
Comments by: @bb, @Silier
This was SVN commit r26657.
2022-03-15 06:46:34 +00:00
Freagarach 02de932816 Remove redundant function in HasDealtWithTech in trigger helper.
The function was redundant for a long time, but made an error in
73f741d266.

Reported by: @marder
Differential revision: https://code.wildfiregames.com/D4541
Tested by: @marder
Fixes #6458

This was SVN commit r26656.
2022-03-15 06:38:46 +00:00
Freagarach 959d50b81d Add icon and tooltip for han pop bonus.
Similar to the pers and maur ones.

This was SVN commit r26655.
2022-03-15 05:39:29 +00:00
vladislavbelov ea6af3f148 Updates a model color uniform in RenderModifier only if it was changed.
This was SVN commit r26653.
2022-03-14 22:56:38 +00:00
vladislavbelov b4253d48cb Moves CShaderProgram to backend and handling via CDeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4548
This was SVN commit r26652.
2022-03-14 22:16:14 +00:00
bb 1b0891c566 Handle OutOfWorld for formations
Comments By: Silier
Reviewed By: Freagarach
Differential Revision: D4535
fixes #6448
fixes d9d4deb6ce

This was SVN commit r26651.
2022-03-14 19:51:22 +00:00
Angen a7b7f50cc8 Move some shaders to mod
Differential revison: D4547
Fixes: #6294

This was SVN commit r26650.
2022-03-14 17:24:47 +00:00
Angen 8cec96270b Don't create thread on failed connection
Differential revision: D4545
Fixes: #6442

This was SVN commit r26649.
2022-03-14 17:19:42 +00:00
wowgetoffyourcellphone cce1005c81 [art - Alpha 26]
Fix 2 Blemmye textures. Somehow during the moving and renaming process
the textures got screwed up.

This was SVN commit r26646.
2022-03-14 06:02:21 +00:00
wowgetoffyourcellphone 36c7fff532 [Han Chinese - Alpha 26]
Renamed the Han civ bonus filename to match the Persian and Mauryan
files of the same effect. Very minor change.

This was SVN commit r26644.
2022-03-14 03:54:50 +00:00
Stan 91a1fddf9d Fix arctic biome bushes spawning too close to the CC.
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4543
This was SVN commit r26643.
2022-03-14 00:15:43 +00:00
Angen 74ce45b93e Fix Macedonian bonus
Differential revision: D4544
Patch by: @ValihrAnt
Missed rebase

This was SVN commit r26642.
2022-03-13 19:14:44 +00:00
Angen 020a123ea1 [gameplay] Adjust Kushite Pyramids to be more used
Differential revision: D4280
Patch by: @ValihrAnt
Reviewed by: @chrstgtr
Accepted by: @marder
Comments by: @wowgetoffyourcellphone @LetswaveaBook @wraitii @Freagarach
This was SVN commit r26641.
2022-03-13 19:08:46 +00:00
Angen 4023b04895 [gameplay] increase attack of defensive structures slightly
This increases their damage slightly from 10 to 11

Differential revision: D4510
Patch by: @marder
Reviewed by: @wowgetoffyourcellphone
Comments by: @chrstgtr
This was SVN commit r26640.
2022-03-13 18:54:06 +00:00
Stan 87b04cc3f9 Add a word of caution to the empire map.
Patch by: @Langbart
Fixes #6456
Differential Revision: https://code.wildfiregames.com/D4546
This was SVN commit r26639.
2022-03-13 18:51:13 +00:00
Angen 8f7ee59f79 Fix 0 tech cost multiplier in session tooltips
This was SVN commit r26638.
2022-03-13 13:01:19 +00:00
vladislavbelov 376fe61df9 Adds missed shader program validation after 0456b09c3c.
Reported By: Freagarach
This was SVN commit r26637.
2022-03-13 11:01:32 +00:00
wowgetoffyourcellphone 272b4c1828 [Han Chinese - Alpha 26]
Make the Imperial Court upgrade only applicable to 1 civic center.

This was SVN commit r26636.
2022-03-13 04:54:57 +00:00
wowgetoffyourcellphone ff4e30d672 [Han Chinese - Alpha 26] This retools the Imperial Court upgrade for the Civic Center.
Discussion:
https://wildfiregames.com/forum/topic/71582-fixing-chinese-han/

This removes the Champion training aspect and reduces the GarrisonHolder
from 2x to a 1.5x bonus, the same as the health and capture points
bonus. 2x garrisoning caused there to be a prohibitive number of arrows.

Replaces the champions with faster batch training speed. Unlocked heroes
still remain.

This was SVN commit r26634.
2022-03-13 04:53:40 +00:00
wowgetoffyourcellphone 2c9a6704e0 Forgot to commit the unlock tech changes for c4bdbe4dd9
This was SVN commit r26633.
2022-03-13 04:53:08 +00:00
wowgetoffyourcellphone c4bdbe4dd9 [Han Chinese - Alpha 26] Champions trainable in captured Barracks and Stables now require Unlocking Techs
Discussion:
https://wildfiregames.com/forum/topic/71582-fixing-chinese-han/

Previously, one could capture an enemy Barracks or Stable and train Han
champions there without researching the champion unlocking techs. This
rectifies this (in an admittedly hacky way) by creating duplicate Han
champion templates with suffix "_academy" and putting those in the Han
Academy with the RequiredTechnology of City Phase.

The original Han champion templates, which are what can be trained in
captured Barracks and Stables, are given the unlocking
RequiredTechnology respective to their class (as most of civs'
champions).

Both Templates have the same SelectionGroupName, so should be selectable
together with a double-click with no problem.

Please report problems in the above linked thread.

This was SVN commit r26632.
2022-03-13 04:34:03 +00:00
wowgetoffyourcellphone 4eb65144fc [Han Chinese] Minister
- Make his capture attack be 20% less than heroes, but 40% more than
champions (previously his capture attack was a whopping 20)
- Add an attack-move soundgroup
- Discussion:
https://wildfiregames.com/forum/topic/71582-fixing-chinese-han/

This was SVN commit r26631.
2022-03-13 04:25:10 +00:00
vladislavbelov e89e55539e Removes custom vertex attribute locations for GLSL. Refs ce215cace3.
This was SVN commit r26630.
2022-03-12 23:25:23 +00:00
vladislavbelov 992c18aabb Enables ARB shaders only once since we should not mix different backends.
This was SVN commit r26629.
2022-03-12 22:10:47 +00:00
vladislavbelov 0456b09c3c Moves shader dependent XML parsing from shader manager to shader program.
This was SVN commit r26628.
2022-03-12 22:02:21 +00:00
Stan 325176fa55 [gameplay] Macedonian bonus - Instant storehouse technology research time.
Patch by: @ValihrAnt
Accepted by: @chrstgtr
Differential Revision: https://code.wildfiregames.com/D4234
This was SVN commit r26627.
2022-03-12 21:52:23 +00:00
Stan d9ccc5c499 [gameplay] Nerf Han hero Han Xin
Patch by: @ValihrAnt
Accepted by: @marder, @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4525
This was SVN commit r26626.
2022-03-12 21:22:16 +00:00
Stan 50234ba533 Slighty offset the stone mine on the tutorial map to prevent overlap.
Patch by: @Langbart
Accepted by: @marder
Thread:
https://wildfiregames.com/forum/topic/73619-tutorial-map-woman-overlapping-stone-mine

Differential Revision: https://code.wildfiregames.com/D4540
This was SVN commit r26625.
2022-03-12 19:29:18 +00:00
vladislavbelov 518a1421ab Clears the color attachment of the main framebuffer only if needed.
Differential Revision: https://code.wildfiregames.com/D4539
This was SVN commit r26623.
2022-03-11 22:26:49 +00:00
Stan 61ef7fc1d1 Adjusted walking speed and animation speed for a number of animals:
- camel, cow, sanga cattle, zebu: decreased animation speed
- deer and gazelle: decreased animation speed and walking speed.

Patch by @pszemsza
Fixes #5680
Differential Revision: https://code.wildfiregames.com/D3891
This was SVN commit r26622.
2022-03-11 13:51:43 +00:00
wowgetoffyourcellphone 4f028b0771 [art] Resize the minimap icons from 32x32 to 16x16
This was SVN commit r26621.
2022-03-11 08:18:25 +00:00
Freagarach dff79a388b Fix obstructed entities being able to drop off resources.
Introduced in 7ba4b1ffc8 by not checking the range anymore.
Reported by @FFFF at
https://wildfiregames.com/forum/topic/72985-stuck-units-delivering-resourses/.

Differential revision: https://code.wildfiregames.com/D4531
Tested by: @Langbart
Fixes #6446

This was SVN commit r26619.
2022-03-11 06:39:25 +00:00
Freagarach 41033d951e Fix stances of healers.
They fled whilst healing and not when idle. That is the other way around
than expected.
Introduced in healing introduction (c56f96040e); #999 specifically made
them flee, but it left quite undefined behaviour.
Reported by @BreakfastBurrito_007 on the forums somewhere.

Differential revision: https://code.wildfiregames.com/D4532
This was SVN commit r26618.
2022-03-11 06:37:03 +00:00
Stan 9c22f9f123 Fix the loading of subfiles for LODS. It currently failed because el_actor and el_quality levels have different ids depending on the loaded file. e.g for an actor with qualitylevels el_actor will be 18 and el_qualitylevels will be 0 while for a standard actor el_actor will be 0 and el_qualitylevels will be -1, hence failing for all the files since the code assumed wrong. XeroActor.Load() takes care of all the other cases, e.g. trying to load a variant which means the only valid check is for qualitylevels.
Fixes 76acc4e146

This was SVN commit r26616.
2022-03-10 21:32:36 +00:00
vladislavbelov 5390143b66 Fixes rendering reflections even they are disabled, broken in 9ce51f4357. Fixes #6454
Reported By: Langbart
This was SVN commit r26615.
2022-03-10 16:36:16 +00:00
vladislavbelov 1ce999a52d Creates water backend textures and framebuffers only if needed.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4536
This was SVN commit r26613.
2022-03-09 21:40:24 +00:00
wowgetoffyourcellphone ca3c3714a7 [art] Han Chinese
New portrait for Wei Qing, by kul

This was SVN commit r26612.
2022-03-09 17:50:14 +00:00
vladislavbelov cb1f0807c5 Removes FALLTHROUGH in VertexArray after 12c304e494. Fixes #6453
This was SVN commit r26611.
2022-03-09 07:07:02 +00:00
vladislavbelov 12c304e494 Removes duplication of backend format in VertexArray usages, optimizes vertex color attribute of quad overlay.
This was SVN commit r26609.
2022-03-08 23:28:31 +00:00
wowgetoffyourcellphone 6a09087225 [art] Han Chinese
- Liu Bang portrait by @kul

This was SVN commit r26608.
2022-03-08 09:21:07 +00:00
wowgetoffyourcellphone 059fbf25d1 [Fix - Alpha 26] Remove minimap icons from Stone and Metal mines for this release, as some maps have more than the max number of 128.
Refs diff: ​https://code.wildfiregames.com/D4513
Refs changeset: 9e6e6e7535

This was SVN commit r26607.
2022-03-08 07:03:58 +00:00
vladislavbelov 41f2ab87ed Fixes macOS warnings after adding final keyword to simulation classes in 3eee3a444d.
Also fixes GLES.

Differential Revision: https://code.wildfiregames.com/D4528
This was SVN commit r26605.
2022-03-07 23:04:11 +00:00
Stan 687174e5d9 Fix crash when creating JSON file that do not exist.
Tested by: @Langbart
Refs: #6450
Differential Revision: https://code.wildfiregames.com/D4529
This was SVN commit r26604.
2022-03-07 15:46:28 +00:00
wowgetoffyourcellphone 3417669e97 [art] Improve the look of the loading screen parchment. From a cc0 source.
This was SVN commit r26602.
2022-03-07 07:28:48 +00:00
wowgetoffyourcellphone 2d598c34f3 [Fix] Han Minister attack soundgroup
This was SVN commit r26601.
2022-03-07 06:56:21 +00:00
wowgetoffyourcellphone 9e6e6e7535 [Minimap] Finish off the minimap feature with the rest of the icons
Refs diff: https://code.wildfiregames.com/D4513
Refs #26592

This was SVN commit r26600.
2022-03-07 06:49:08 +00:00
wowgetoffyourcellphone 839d38386c [gameplay - Alpha 26] Han Chinese
- Remove the bolt shooter tech from the Han arsenal, since they no
longer have a bolt shooter

This was SVN commit r26598.
2022-03-07 05:04:22 +00:00
wowgetoffyourcellphone c62cc86477 [art] Improve the Ptolemy merc cav actors.
This was SVN commit r26597.
2022-03-07 05:03:05 +00:00
wowgetoffyourcellphone 1fd263520c [art] Create a new material player_trans_ao_norm_spec.xml
This was SVN commit r26596.
2022-03-07 05:02:07 +00:00
wowgetoffyourcellphone 475e1a02ae [art] Allow the Spartan Syssition model to use Spartan hoplite shields instead of the ugly low res bronze disks used previously.
This was SVN commit r26595.
2022-03-07 04:59:51 +00:00
vladislavbelov 647fccd410 Replaces native GL types by backend format in vertex attributes in CShaderProgram.
This was SVN commit r26594.
2022-03-07 02:21:05 +00:00
wowgetoffyourcellphone 36faf3bb4f This was SVN commit r26593. 2022-03-07 01:59:41 +00:00
vladislavbelov ce18f297d5 Adds icons to minimap.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4513
This was SVN commit r26592.
2022-03-07 01:22:06 +00:00
wowgetoffyourcellphone ddf88a2640 [gameplay - Alpha 26] Han Chinese
- Remove GarrisonHolder from the Han Dock, as it messed up the trade
route waypoint feature.
- Maybe investigate a way to get around this.

This was SVN commit r26591.
2022-03-06 23:25:46 +00:00
wowgetoffyourcellphone ff3b6d5ac4 [Jenkins Log]
- Fixing Thespian Melanochitones and Theban Sacred Band errors
introduced in 8c8d765c06
- Fixing some shield errors introduced in f2346b6796

This was SVN commit r26589.
2022-03-06 22:32:41 +00:00
vladislavbelov 3399791677 Adds renderer backend vertex formats and normalizes texture formats.
This was SVN commit r26588.
2022-03-06 22:14:57 +00:00
bb 15ed402a12 [A26 Gameplay] Tweak the formation turning threshold
Reviewed By: marder
Differential Revision: D4517
This was SVN commit r26587.
2022-03-06 21:32:19 +00:00
bb 6a9a17606c further optimizations for map Unknown: Passes
Patch By: elexis
Transferred By: marder
aids 50fefd0605
Differential Revision: D4526
This was SVN commit r26586.
2022-03-06 21:30:19 +00:00
vladislavbelov db7894ff6b Removes redundant binding slot retrieving from CShaderProgram.
This was SVN commit r26585.
2022-03-06 21:17:24 +00:00
bb 8eecc39e71 Let the Gamesetup.cpp Autostart (starting from cl) use the gamesettings via the autostart gui page.
Comments and testing By: Langbart
Fixes #6433
Differential Revision: D4492
Includes/Obsoletes D4287

This was SVN commit r26584.
2022-03-06 21:12:16 +00:00
bb 2af020bab1 Generalize fromInitAttributes loop
Add deepCompare function to utilities to easy and reliably compare js
variables.

Comments By: Langbart, Stan, asterix
Differential Revision: D4521
This was SVN commit r26583.
2022-03-06 21:01:36 +00:00
vladislavbelov bc6ab4ac49 Removes redundant CShaderProgram streams.
This was SVN commit r26582.
2022-03-06 20:53:39 +00:00
wowgetoffyourcellphone 18c450a268 [art] Fix resolution of portrait (from 250^2 to 256^2)
This was SVN commit r26581.
2022-03-06 20:23:38 +00:00
wowgetoffyourcellphone 77978b8348 [art] New portraits of Han Xin and Cleopatra.
First art commit from user kul. Congrats!

Thread:
https://wildfiregames.com/forum/topic/27520-task-improve-hero-portraits/?do=findComment&comment=479591

This was SVN commit r26580.
2022-03-06 18:07:51 +00:00
vladislavbelov 63f749da2d Removes unused functions from CShaderProgram.
This was SVN commit r26579.
2022-03-06 16:40:04 +00:00
Stan 50fefd0605 Fix unknown map: opponent being unreachable
Patch by: @elexis
Tweaks by: @Langbart, @marder
Fixes: #6422
Differential Revision: https://code.wildfiregames.com/D4457
This was SVN commit r26578.
2022-03-06 15:22:35 +00:00
Stan 3299bc7efb Fix unpassable and unnatural forests on African Plains
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4502
This was SVN commit r26577.
2022-03-06 15:10:16 +00:00
Stan aad2453e09 Texture update for polar sea
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4450
This was SVN commit r26576.
2022-03-06 15:05:06 +00:00
Stan 352dd1873d Texture update/ general overhaul for Gulf of Bothnia and its biomes
Reviewed by: @smiley
Differential Revision: https://code.wildfiregames.com/D4086
This was SVN commit r26575.
2022-03-06 14:51:25 +00:00
Angen 9fcb007bb3 [Petra] Fix han civilisation
This was SVN commit r26574.
2022-03-06 13:54:03 +00:00
Stan 71a5274c52 Add 24 new music tracks.
Patch by: @Samulis, Omri Lahav
Refs: #6445

This was SVN commit r26573.
2022-03-06 11:25:57 +00:00
bb b5d5628667 Make sure PlayerCiv values are initialized
fixes daada92a82
Reviewed By: Silier
Differential Revision: D4522
This was SVN commit r26572.
2022-03-06 09:39:57 +00:00
wowgetoffyourcellphone 0668167fda [art] Seven new technology portraits.
This was SVN commit r26571.
2022-03-06 07:54:00 +00:00
wowgetoffyourcellphone 217aa91496 [art] Better decals for some building actors; added 2 new "tents" for Atlas.
This was SVN commit r26570.
2022-03-06 07:52:34 +00:00
wowgetoffyourcellphone 8c8d765c06 [art/templates] Move Sacred Band and Thespian Black Cloaks to the Theban folder; rename the templates to suit
This was SVN commit r26569.
2022-03-06 07:50:19 +00:00
wowgetoffyourcellphone 5dbb7729d6 [art/art cleanup] Some texture updates and deletions.
This was SVN commit r26568.
2022-03-06 07:47:57 +00:00
wowgetoffyourcellphone 4811b24483 [art cleanup] Reduce the resolution and file size of these Kushite statue textures.
This was SVN commit r26567.
2022-03-06 07:44:08 +00:00
wowgetoffyourcellphone f2346b6796 [art cleanup] Remove 190 unused shield textures and actors
- Attempt to fix all instances where there caused a problem. Still on
the lookout for anymore gremlins.
- Will hunt down and remove unused meshes in a later commit.

This was SVN commit r26566.
2022-03-06 07:32:38 +00:00
wowgetoffyourcellphone cbf0b49b85 [art] Cleanup these Scutum Boss textures by reducing their file dimensions and file size. (they were comically oversized)
This was SVN commit r26565.
2022-03-06 07:25:59 +00:00
wowgetoffyourcellphone 0bcf289798 [art] Darken the sand decals slightly.
This was SVN commit r26564.
2022-03-06 07:24:39 +00:00
wowgetoffyourcellphone b45bc531c4 [art] Use newer shield models for the sides of the Roman warships
This was SVN commit r26563.
2022-03-06 07:20:05 +00:00
wowgetoffyourcellphone 69daefeb2b [art] Move the prop points for the Roman tents to fit the newer Roman Scutum models.
This was SVN commit r26562.
2022-03-06 07:17:32 +00:00
wowgetoffyourcellphone fc5a165d81 [art] Add specular to the Mausoleum statues
This was SVN commit r26561.
2022-03-06 07:15:50 +00:00
wowgetoffyourcellphone 5867d96ab4 [art] Add a Bronze Quadriga to the top of the Roman Triumphal Arch
This was SVN commit r26560.
2022-03-06 07:13:05 +00:00
wowgetoffyourcellphone ee8bec703d [art] Fix the Spart temple decal.
This was SVN commit r26559.
2022-03-06 07:10:54 +00:00
Stan cddb52cd3f Fix menu music no longer playing.
This was SVN commit r26557.
2022-03-05 22:23:53 +00:00
wowgetoffyourcellphone dd499437ca [art] 4 improved unit portraits.
This was SVN commit r26556.
2022-03-05 21:56:52 +00:00
Stan 82ee4fdce2 [gameplay] Reduce pikemen pierce armor by 2
Patch by: ValihrAnt
Accepted by: @wowgetoffyourcellphone, @chrstgtr
Differential Revision: https://code.wildfiregames.com/D4524
This was SVN commit r26555.
2022-03-05 21:56:04 +00:00
wowgetoffyourcellphone db31e46030 [art] Move Han weapon textures to the right subfolder.
This was SVN commit r26554.
2022-03-05 21:37:04 +00:00
wowgetoffyourcellphone c55cd0d7f8 [art] A dozen new technology portraits.
This was SVN commit r26553.
2022-03-05 20:46:17 +00:00
wowgetoffyourcellphone ebac6b01fa [art] Some hero portrait background textures
This was SVN commit r26552.
2022-03-05 20:05:53 +00:00
wowgetoffyourcellphone d32c68eb2c Add Chinese specificName for Town and City phase techs.
Discussion:
https://wildfiregames.com/forum/topic/38729-addition-of-han-chinese-to-0ad/?do=findComment&comment=482980

Participants: @Carltonus @OliverLew @AIEND

This was SVN commit r26551.
2022-03-05 19:47:01 +00:00
wowgetoffyourcellphone d566f891d9 [art] Stopped dead Baobabs from swaying in the wind.
refs: #6423

This was SVN commit r26550.
2022-03-05 19:39:42 +00:00
wowgetoffyourcellphone ca47c244c5 [art] 2 new skyboxes; 1 updated
"Desert", "Sunrise", and "Stratus_2" skyboxes from cc0 sources.

This was SVN commit r26549.
2022-03-05 19:24:46 +00:00
wowgetoffyourcellphone 6e863d141b [gameplay - Alpha 26] Han Chinese
The Han Minister can now defend himself. Exact values open for debate.

This was SVN commit r26548.
2022-03-05 19:14:58 +00:00
Stan 38351207ba Fix Han civil service technologies
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4523
This was SVN commit r26547.
2022-03-05 19:02:08 +00:00
Stan 9ce9273c35 Add quotes to the logged filenames.
Differential Revision: https://code.wildfiregames.com/D2212
This was SVN commit r26546.
2022-03-05 18:30:38 +00:00
Stan 376720e55e Fix white appearing in camel mipmaps.
Noticed by: @marder
This was SVN commit r26545.
2022-03-05 18:12:11 +00:00
Stan b9d3d00c50 Show system_info.txt, console.txt, json file, userreport_hw.txt paths in the terminal when it's written to the disk.
Discussed with: @vladislavbelov
Idea by: @elexis
Differential Revsion: https://code.wildfiregames.com/D2212

This was SVN commit r26544.
2022-03-05 17:28:00 +00:00
Stan f3fbc86529 Fix an error introduced in fa5671438a. _string was expected but message was there instead
Refs: #6197
Suggestion by: @bb
This was SVN commit r26543.
2022-03-04 14:33:06 +00:00
Stan f2f54cb23d Only add default music tracks if civ.json doesn't override them.
Comments by: @bb, @Freagarach
Differential Revision: https://code.wildfiregames.com/D4500
This was SVN commit r26542.
2022-03-04 14:09:14 +00:00
Stan ba825ac514 Fix Han practice_range triggering errors.
This was SVN commit r26541.
2022-03-04 14:04:54 +00:00
wowgetoffyourcellphone a586d94230 Use some of @Stan's new 'Polar' geology assets on the Alpine Valleys skirmish map.
This was SVN commit r26539.
2022-03-04 06:28:26 +00:00
vladislavbelov 3eee3a444d Adds final keyword to simulation component classes.
Differential Revision: https://code.wildfiregames.com/D4520
This was SVN commit r26537.
2022-03-03 22:42:26 +00:00
vladislavbelov d494bbd583 Replaces M_PIf by M_PI in Atlas, fixes compilation with gcc 11.2.0 and glibc 2.35.
There was added a workaround in glibc to fix tests.

Refs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103735
https://sourceware.org/bugzilla/show_bug.cgi?id=28713

This was SVN commit r26536.
2022-03-03 18:10:05 +00:00
bb bd4b7d4bb6 Generalise gamesettings pickRandomItems' loop
Comments By: wraitii, Stan, Silier
Suggested By: elexis
Differential Revision: D4231
This was SVN commit r26535.
2022-03-03 16:13:35 +00:00
Stan bc59f0c40b Use the correct resource type for polar stone mines.
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4519
This was SVN commit r26534.
2022-03-03 15:04:59 +00:00
bb be2f33b661 removeable => removable
Patch By: LudovicRousseau
Comments By: vladislav, Nescio
Differential Revision: D3663
fixes #6098

This was SVN commit r26533.
2022-03-03 14:52:13 +00:00
bb aa79122b7f introduce template_unit_siege_flamethrower.xml
Patch By: Nescio
Differential Revision: D3576
This was SVN commit r26532.
2022-03-03 14:11:47 +00:00
Stan fa5671438a Fix invalid translations in the game options.
Comments and fixes by: @bb
Fixes: #6197
Differential Revision: https://code.wildfiregames.com/D4083
This was SVN commit r26531.
2022-03-03 13:34:15 +00:00
bb fefde41317 Allied chat opens with t bug (on linux)
Comments By: vladislav, elexis
Solution Proposed By: elexis
fixes #5194
refs #3870

Differential Revision: D1386
This was SVN commit r26530.
2022-03-03 11:36:08 +00:00
Stan 2fbd9ea17d Add new polar mines.
Refs: https://code.wildfiregames.com/D4450

This was SVN commit r26529.
2022-03-03 11:04:52 +00:00
Stan ab501175f9 Improve new metal mine textures. Better normal map and specular.
This was SVN commit r26528.
2022-03-03 11:02:57 +00:00
wowgetoffyourcellphone 6281499708 Move Roman legionary shoulder pad actors to the /armor/ subfolder
This was SVN commit r26527.
2022-03-03 07:15:26 +00:00
wowgetoffyourcellphone 6b158ce34d Line endings -> native
This was SVN commit r26526.
2022-03-03 07:12:04 +00:00
vladislavbelov 3a4bbd11fd Moves all GL draw commands to CDeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4518
This was SVN commit r26525.
2022-03-03 07:09:59 +00:00
bb 7c3aed5f36 Set the size of the overlaybox without relying on the arbitrary initSize
Comments By: vladislav
Differential Revision: D4489
This was SVN commit r26523.
2022-03-02 16:27:11 +00:00
bb 8aa00041e9 Fix BufferZone in right alignment
Comments By: vladislav
Differential Revision: D4490
This was SVN commit r26522.
2022-03-02 16:14:05 +00:00
bb f69e5c01e8 Fix template type in d9d4deb6ce
This was SVN commit r26521.
2022-03-02 15:55:16 +00:00
bb d9d4deb6ce smoother formation manouvres
Implement a threshold between "turning" the formation and "rearranging"
it.

Patch By: marder
Based on Patch By: alre
Comments By: Freagarach, Stan, Silier
Glanced good By: Freagarach
Differential Revision: D4294
Forum Topic:
https://wildfiregames.com/forum/topic/44848-proposals-for-formations/#comment-452917

This was SVN commit r26520.
2022-03-02 12:54:43 +00:00
wowgetoffyourcellphone 250b0f12c6 [gameplay - Alpha 26]
Attempt at making Crossbow teching less OP:
- Remove "Repeating Crossbows" as it was historically problematic and
was also OP for crossbows.
- Reduce the RepeatTime bonus in "Crossbow Training" from -33% to -20%.

This was SVN commit r26519.
2022-03-02 07:36:23 +00:00
wowgetoffyourcellphone df0cd5ac71 Really fix the Han Sandbox this time.
This was SVN commit r26517.
2022-03-01 18:37:33 +00:00
wowgetoffyourcellphone 299df0f049 [gameplay - Alpha 26]
Removed the ability of the Han to research 'Will to Fight' from a
captured Fortress. Reported by @faction_02 here:
https://wildfiregames.com/forum/topic/71578-feedbacks-from-a26-svn-tests/?do=findComment&comment=482636

Increased the cost and research time of 'Art of War' to match the other
two Han special Fortress techs.

On the backend moved the Han techs to the Fortress parent template.
Seemed cleaner.

This was SVN commit r26516.
2022-03-01 18:24:43 +00:00
wowgetoffyourcellphone afde89eb33 Update some "sandbox" maps.
Fixed an error to the Han sandbox reported by @Stan.

This was SVN commit r26515.
2022-03-01 18:07:05 +00:00
vladislavbelov 6de2649955 Fixes empty decals drawing when a decal is outside or on a border of a map.
Reported By: Nullus
This was SVN commit r26514.
2022-03-01 18:02:52 +00:00
Stan 32ed1f9065 Fix heads forgotten in 090ce1c82f
This was SVN commit r26513.
2022-03-01 15:39:24 +00:00
Stan 75f7cde184 Fix previous commit. Removing materials only doesn't work with the game's collada importer.
Noticed by: @marder
This was SVN commit r26512.
2022-03-01 15:34:17 +00:00
Stan 8f8752fbe4 Fix incorrect normal maps for stone_furrowed_0* meshes.
Remove duplication in some actors.
Fix naming conventions for those files.
Use the correct material.

Noticed by: @marder
This was SVN commit r26511.
2022-03-01 14:17:24 +00:00
wowgetoffyourcellphone 552f66e527 Add additional animation variants to the medium player color cape.
This was SVN commit r26509.
2022-02-28 05:51:20 +00:00
wowgetoffyourcellphone 88572c5e80 New f_armor_dress.dae mesh by @Stan with a better UV map
This allows for more accurate textures for female units with intricate
patterns on their long skirts. Boudicca is the first example, provided
here.

This was SVN commit r26508.
2022-02-28 05:50:27 +00:00
wowgetoffyourcellphone 3344324a66 [gameplay - Alpha 26] More Han refactoring
Chariot Crossbowman -> Chariot Archer
- Adjusted Actors and template

Champion Cavalry
- Took away shield and gave cataphract animations

Champion Swordsman -> Champion Spearman

Liu Bang
- Gave him a different base animation variant

This was SVN commit r26507.
2022-02-28 05:46:49 +00:00
wowgetoffyourcellphone f0d7c8ec27 Fixed supersedes line in this tech. Reported by @Stan
This was SVN commit r26505.
2022-02-27 23:50:42 +00:00
wowgetoffyourcellphone 1173163066 Added a requirementsTooltip message in case the Espionage tech is ever placed in a different building, as it is for the Han.
This was SVN commit r26504.
2022-02-27 23:45:52 +00:00
Stan a04ad0beb2 Make ClumpPlacer determine the correct fraction of failed attempts to place points
Comments by: @smiley, @elexis
Patch by: @Inari
Fixes #5092
Differential Revision: https://code.wildfiregames.com/D1414
This was SVN commit r26503.
2022-02-27 21:49:32 +00:00
vladislavbelov 1ff3b45a1e Adds more checks for vertex and index buffer creations.
This was SVN commit r26502.
2022-02-27 20:21:07 +00:00
wackyserious 10c0d813bf Improved Persian head textures
This was SVN commit r26501.
2022-02-27 13:04:56 +00:00
wackyserious dd90459888 Improved numidian head texture
-Derived from an edit of the Vercingetorix face texture

This was SVN commit r26500.
2022-02-27 07:12:36 +00:00
wackyserious 090ce1c82f Numidian head fix (eye color and skin tone)
This was SVN commit r26499.
2022-02-27 06:12:02 +00:00
vladislavbelov da4ec670c1 Moves glViewport from CRenderer to CDeviceCommandContext.
This was SVN commit r26497.
2022-02-26 23:17:48 +00:00
Stan a217718254 Fix stone mine actors on maps after 1a6c1c2131.
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4505
This was SVN commit r26496.
2022-02-26 22:52:33 +00:00
vladislavbelov 680b0215fc Adds depth bias to PipelineState and its management to CDeviceCommandContext.
Refs #2368

This was SVN commit r26495.
2022-02-26 21:49:32 +00:00
vladislavbelov bf8fe51dea Moves enabling of GL multisample to CDevice.
This was SVN commit r26494.
2022-02-26 21:10:14 +00:00
vladislavbelov 6bc2f7a783 Draws entities on minimap via triangles instead of points.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4509
This was SVN commit r26493.
2022-02-26 20:30:09 +00:00
vladislavbelov 67cafcd599 Fixes GLES and compilation warnings.
This was SVN commit r26492.
2022-02-26 20:28:39 +00:00
Stan 3651ff26d9 Fix shadow glitch on Maurya market on lowest setting.
Reported by: @marder
This was SVN commit r26491.
2022-02-26 17:36:15 +00:00
wackyserious 70dc03e20d Large round shield (no boss) mesh + complimentary variants to the new Gaul noble tunic
This was SVN commit r26489.
2022-02-26 05:00:18 +00:00
vladislavbelov 23a023507a Replaces GL_LINES, GL_QUADS, GL_TRIANGLE_STRIP and GL_TRIANGLE_FAN by GL_TRIANGLES.
This was SVN commit r26488.
2022-02-26 00:37:27 +00:00
vladislavbelov 59a0a74951 Fixes a degenerate triangle on terrain sides of map corners.
This was SVN commit r26487.
2022-02-25 23:45:54 +00:00
vladislavbelov d5d1754991 Moves polygon mode handling to PipelineState and CDeviceCommandContext.
This was SVN commit r26486.
2022-02-25 22:05:06 +00:00
vladislavbelov a87cb6c94d Moves GL depth comparison function to SamplerDesc.
This was SVN commit r26485.
2022-02-25 20:02:03 +00:00
vladislavbelov 0d2faa1cab Adds debug context option for GL context creation.
This was SVN commit r26484.
2022-02-25 16:26:56 +00:00
wowgetoffyourcellphone 1a6c1c2131 [Art] New trees, bushes, and rocks.
New "Bush" mixin

Note, the Badlands rock actors have been renamed. Might break some maps.

This was SVN commit r26483.
2022-02-25 09:31:12 +00:00
wowgetoffyourcellphone eed2cbe740 [Gameplay - Alpha 26] More Han Refactoring
- Major thing is added the Chinese Chariot as a champion, trainable at
the Academy.

- Replaced Crossbowman with Archer as the starting ranged infantry. This
is still open for changing as there is a poll on the forum about it.

This was SVN commit r26482.
2022-02-25 08:20:42 +00:00
vladislavbelov 8a63adc40d Uses CDeviceCommandContext as an input parameter for CCanvas2D.
This was SVN commit r26480.
2022-02-25 08:14:11 +00:00
vladislavbelov d1f1d41a9f Uses triangles for drawing lines in CCanvas2D.
Differential Revision: https://code.wildfiregames.com/D4444
This was SVN commit r26479.
2022-02-25 06:59:57 +00:00
Freagarach a3b99b17b0 Give an icon to the spy.
Needed after ef1d1dbed8.
Reported by: @Stan
Solution suggested by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4503
This was SVN commit r26478.
2022-02-25 05:58:29 +00:00
Freagarach 9373e7044e Clean PlayerManager.js.
Remove obseleted function RemoveAllPlayers in 354bd8b088.
Linter stuff.
Don't initialise undefined world population value.

Differential revision: https://code.wildfiregames.com/D4494
This was SVN commit r26477.
2022-02-24 07:04:46 +00:00
Freagarach b778caf146 Move FormationName and Icon from cmpFormation to cmpIdentity.
Reduces duplication across components.
Allows to provide specific names and history for formations.

Differential revision: https://code.wildfiregames.com/D4476
Comments by: @bb, @Stan
Fixes #6400

This was SVN commit r26476.
2022-02-24 06:51:07 +00:00
Angen 422fbbee7f [gameplay-a26] Do not stack fire damage
Fire cavalry is currently unstopable. nerf it by not stacking fire
damage.

Differential revision: D4497
This was SVN commit r26474.
2022-02-23 19:47:50 +00:00
wowgetoffyourcellphone 3bd332a401 Some geology additions and improvements.
This was SVN commit r26473.
2022-02-23 07:12:14 +00:00
wowgetoffyourcellphone 8bd9271455 Fix a few minor things with the Han refactor.
This was SVN commit r26471.
2022-02-23 03:18:59 +00:00
wowgetoffyourcellphone efea43fcb5 Use the new technology portraits.
This was SVN commit r26470.
2022-02-23 02:57:42 +00:00
wowgetoffyourcellphone 9411d8c98e Han Chinese civilization restructure.
Deep discussion here:
https://wildfiregames.com/forum/topic/71582-fixing-chinese-han/
Participants: @Yakaterina @BreakfastBurrito_007 @Lionkanzen @chrstgtr

Changes:
- New Starting units (Spearman, Crossbowman, Cavalry Swordsman)
- Farms 60 wood, 30 seconds
- Practice Range disabled (may be re-enabled in a future alpha)
- Infantry and Cavalry Crossbowmen rebalance
- New technology for the Han at the Forge: "Repeating Crossbows";
"Crossbow Training" at barracks tweaked to allow crossbows to fire
faster

This was SVN commit r26469.
2022-02-23 02:37:50 +00:00
wowgetoffyourcellphone db713e6ba9 Revert default cursor. A couple people didn't like the new one.
This was SVN commit r26468.
2022-02-23 01:31:25 +00:00
wowgetoffyourcellphone aa7cb74e3c New "Yakchal" Ice House for Persians. Just an Atlas object for now.
Concept by @wowgetoffyourcellphone
Artwork by @Stan

This was SVN commit r26467.
2022-02-23 00:28:24 +00:00
wowgetoffyourcellphone 0168252cbe New and updated UI portaits (mostly technologies)
This was SVN commit r26466.
2022-02-23 00:26:14 +00:00
vladislavbelov 6a0fc31c33 Replaces GL_QUADS by GL_TRIANGLES for drawing overlays and debug frustums.
This was SVN commit r26465.
2022-02-22 18:41:31 +00:00
bb a350ec2a74 Let StartingCamera react upon change in number of players
fixes an issue in 071fddd598

Reviewed By: marder
Comments By: nwtour
Differential Revision: D4498
fixes #6435

This was SVN commit r26464.
2022-02-22 16:34:02 +00:00
Stan da41470c2d Reduce crow texture size to match that of the seagull.
Noticed by: @vladislavbelov
This was SVN commit r26463.
2022-02-21 22:43:13 +00:00
wowgetoffyourcellphone 9e6c3c00f7 Delete a couple of unused actors.
Give the Athenian barracks a slightly larger dirt decal.

This was SVN commit r26462.
2022-02-21 08:29:32 +00:00
wowgetoffyourcellphone 291f91b59d Adjust these unit actors to the new Illyrian texture file names.
This was SVN commit r26461.
2022-02-21 08:28:24 +00:00
wackyserious dd88591f73 Rename Illyrian texture assets to standard
This was SVN commit r26459.
2022-02-21 07:50:45 +00:00
Freagarach ef1d1dbed8 Make Icon non-optional.
Requested by @bb in D4476.
Differential revision: https://code.wildfiregames.com/D4484
Reviewed by: @bb
This was SVN commit r26458.
2022-02-21 07:20:26 +00:00
wowgetoffyourcellphone 5b0f75cb6d Make the red fox texture a little more red.
This was SVN commit r26456.
2022-02-21 04:16:37 +00:00
wowgetoffyourcellphone 5e0d205d0f Dunno why, but Brennus had a completely wrong helmet. Hopefully this one stays on his head.
This was SVN commit r26455.
2022-02-21 04:09:12 +00:00
wowgetoffyourcellphone 834363d3a0 Improved/more accurate Han unit portraits.
Deleted 3 unused portraits.

This was SVN commit r26454.
2022-02-21 03:50:42 +00:00
wackyserious 86c4b023ea Balanced colorful tone for the Gauls (Work in progress)
Discussion:
https://wildfiregames.com/forum/topic/25184-task-current-issues-with-celtic-units-and-guideline-for-the-next/?do=findComment&comment=480221

This was SVN commit r26453.
2022-02-21 02:47:37 +00:00
wowgetoffyourcellphone 97e9ee2ed3 A subtle embed to the Gaia emblem.
This was SVN commit r26452.
2022-02-21 01:29:58 +00:00
wowgetoffyourcellphone b7e85b04a3 New Gaia civ emblem for @Freagarach
This was SVN commit r26451.
2022-02-21 00:47:42 +00:00
Stan 8ef83e3136 Add a murder of crows to the game.
This was SVN commit r26450.
2022-02-21 00:00:28 +00:00
wowgetoffyourcellphone cd8d4cfbfd Fix the obstruction and footprint of this treasure.
This was SVN commit r26449.
2022-02-20 23:44:44 +00:00
wowgetoffyourcellphone c4d5fb067c Improved cursors.
This was SVN commit r26448.
2022-02-20 23:29:14 +00:00
Stan edaacb4181 Slightly improve the seagull model, shorter wings, new gliding animation, slight inclination on the rotation. Fix wings not reflecting in the water.
This was SVN commit r26447.
2022-02-20 23:24:23 +00:00
wowgetoffyourcellphone d63639f7b7 A more "historical" victory icon: a laurel wreath.
This was SVN commit r26446.
2022-02-20 22:14:01 +00:00
wowgetoffyourcellphone 1cd62c38af A more explicit town bell icon.
This was SVN commit r26445.
2022-02-20 22:12:19 +00:00
vladislavbelov 731b85b9a2 Adds GPU scoped labels for console, logger and profiler.
This was SVN commit r26444.
2022-02-20 21:55:29 +00:00
Stan 81013ab198 Fix the fallback material requiring spec (3c315caa98), when the high quality material does not.
Noticed by: @Silier
This was SVN commit r26443.
2022-02-20 14:18:15 +00:00
Angen 3e13896e3f [gameplay-a26] move some trainable animals to higher phases
Differential revision: D3341
Accepted by: @borg~
Comments by: @Freagarach, @Nescio, @wraitii
This was SVN commit r26442.
2022-02-20 13:13:19 +00:00
Stan 00fb58389e Fix the red border on map flare tip
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4496
This was SVN commit r26441.
2022-02-20 12:37:17 +00:00
Stan 928f5600ce Fix visible fps overlay in tips screenshots and red border on water.
Patch by: @marder
Differential Revision: https://code.wildfiregames.com/D4496
This was SVN commit r26440.
2022-02-20 12:32:10 +00:00
vladislavbelov a0b0effd50 Fixes minimap after map reloading.
Reported By: marder
This was SVN commit r26439.
2022-02-20 10:51:11 +00:00
Angen daada92a82 Fix not selectable civilisations not showing if defined by the map
Fix displaying unknow civilisation when civilisation defined by map is
not selectable but exists by switching two lists based on if selection
is locked or not.

Differential revision: D4429
Fixes: #6145
Reviewed by: @bb
This was SVN commit r26438.
2022-02-20 07:34:11 +00:00
Angen 26644da270 Fix landscape settings for unknown map
Reported by BreakfastBurrito_007 on forum:
https://wildfiregames.com/forum/topic/51306-thread-for-posting-suggestions-for-alpha-26/page/13/#comment-479133

Patch by: @marder
Differential revision: D4495
This was SVN commit r26437.
2022-02-20 07:29:42 +00:00
wowgetoffyourcellphone 96cf9c8fb3 Give arrow-firing buildings a slightly larger, easier to see projectile.
This was SVN commit r26435.
2022-02-20 06:11:57 +00:00
wowgetoffyourcellphone 21937ddc8a Warm up the Ptolemies struct texture a little bit.
Give their CC and MC a decal. Give the CC the new obelisks.

This was SVN commit r26434.
2022-02-20 06:06:24 +00:00
wowgetoffyourcellphone ba0e642bc6 Improved some variants for the Han. Gave the unused ones to the Han champion cav.
This was SVN commit r26433.
2022-02-20 03:51:40 +00:00
wowgetoffyourcellphone 4571f6865f This mesh has no 2nd uv for an ao map, so change actor to fix warning.
This was SVN commit r26432.
2022-02-20 03:04:20 +00:00
wowgetoffyourcellphone 5f3a2f6e0b Move the Han shield textures to the proper subfolder.
This was SVN commit r26431.
2022-02-20 02:55:12 +00:00
wowgetoffyourcellphone 3c315caa98 Move Han helmet meshes to the proper subfolder.
This was SVN commit r26430.
2022-02-20 02:45:28 +00:00
wowgetoffyourcellphone 48c369a879 Create some nice new "paving block" decals.
This was SVN commit r26429.
2022-02-20 02:32:11 +00:00
wowgetoffyourcellphone 0e36e4a33c Improve some prop textures (mainly shields). Darken up the shuttle block diffuse texture a bit.
This was SVN commit r26428.
2022-02-20 02:30:43 +00:00
wowgetoffyourcellphone ed244700d4 Modified the "Han Bandana" to be a generic headband for any civ. This replaces the old "headband_color" prop with something much much better.
This also creates a player_trans_norm.xml material, which was
conspicuously missing. Changed the material for the headband from a
parallax material to this new normal map material.

This was SVN commit r26427.
2022-02-20 02:28:08 +00:00
wowgetoffyourcellphone 63d90afeec Han female's rice hat stays on when chopping wood.
This was SVN commit r26426.
2022-02-20 00:30:27 +00:00
wowgetoffyourcellphone 55ca22bb91 Hotfix to remove the generic palisade from the Han female's builder queue. Makes her queue match that of the Han males'.
This was SVN commit r26425.
2022-02-19 20:54:14 +00:00
vladislavbelov aac1a64675 Moves dynamic geometry for rendering sky to static vertex buffer.
This was SVN commit r26424.
2022-02-19 20:07:55 +00:00
Stan cb336fb28b Fix some maps issues. Add the new maps to the new map campaign.
This was SVN commit r26423.
2022-02-19 18:39:11 +00:00
bb 0f07c368ed Allow more general contexts in json translatable strings
While at it fix the messages.json from ea72437739 (missing excludeMask
and make the keywords objects not arrays)
Comments By: Freagarach
Differential Revision: D4483
This was SVN commit r26422.
2022-02-19 17:21:23 +00:00
Stan e2bf494cf9 Add Han Chinese Maps
Patch by: artoo @wowgetoffyourcellphone
Refs #6412

This was SVN commit r26421.
2022-02-19 16:59:31 +00:00
Stan 4de188f55a Add Han Chinese Templates and Civ.json.
Patch by: artoo @wowgetoffyourcellphone, @Alexandermb, @Nescio, @Stan,
@wltonlopes, @Kate, @lastrodamo, @Kimball, @niektb, @Lionkanzen,
@Brightgalrs, @wackyserious, @Gen.Kenobi, @s0600204, @leper, sciondev,
@Mr.lie, J.R.I.B.-Wein, David Flores, @sanderd17, @asterix @thamlett
Fixes #6412

This was SVN commit r26420.
2022-02-19 16:58:44 +00:00
Stan ef5089be6e Add Han Chinese Techs, Auras
Patch by: artoo @wowgetoffyourcellphone, @Alexandermb, @Nescio, @Stan,
@wltonlopes, @Kate, @lastrodamo, @Kimball, @niektb, @Lionkanzen,
@Brightgalrs, @wackyserious, @Gen.Kenobi, @s0600204, @leper, sciondev,
@Mr.lie, J.R.I.B.-Wein, David Flores, @sanderd17, @asterix @thamlett
Refs #6412

This was SVN commit r26419.
2022-02-19 16:56:31 +00:00
Stan 5a0be24262 Add Han Chinese Actors
Patch by: artoo @wowgetoffyourcellphone, @Alexandermb, @Nescio, @Stan,
@wltonlopes, @Kate, @lastrodamo, @Kimball, @niektb, @Lionkanzen,
@Brightgalrs, @wackyserious, @Gen.Kenobi, @s0600204, @leper, sciondev,
@Mr.lie, J.R.I.B.-Wein, David Flores, rastko96
Refs #6412

This was SVN commit r26418.
2022-02-19 16:48:23 +00:00
Stan 051df5ecfb Add Han Chinese variants
Patch by: @artoo, @wowgetoffyourcellphone, @Stan, @AlexanderMB,
@s0600204, @wltonlopes
Refs #6412

This was SVN commit r26417.
2022-02-19 16:45:45 +00:00
Stan a2c0797f9d Add Han Chinese particles
Patch by: @artoo, @wowgetoffyourcellphone, @Stan, @Kimball, @EmjeR
Refs #6412

This was SVN commit r26416.
2022-02-19 16:43:31 +00:00
Stan 6c1e6b1673 Add Han Chinese models, animations, and skeletons.
Patch by: artoo, @wowgetoffyourcellphone, @Alexandermb, @Nescio, @Stan,
@wltonlopes, @Kate, @lastrodamo, @Kimball, @niektb, @Lionkanzen,
@Brightgalrs, @wackyserious, @Gen.Kenobi, @s0600204, @leper, sciondev,
@Mr.lie, J.R.I.B.-Wein
References by: Wolflance, Ayakashi
Refs #6412

This was SVN commit r26415.
2022-02-19 16:41:45 +00:00
Stan 1a44e2790a Add Han Chinese textures.
Patch by: artoo @wowgetoffyourcellphone, @Alexandermb, @Nescio, @Stan,
@wltonlopes, @Kate, @lastrodamo, @Kimball, @niektb, @Lionkanzen,
@Brightgalrs, @wackyserious, @Gen.Kenobi, @s0600204, @leper, sciondev,
J.R.I.B.-Wein
Refs #6412

This was SVN commit r26414.
2022-02-19 16:35:18 +00:00
Stan 9902faf5cb Add credits missed in 6496aea364.
This was SVN commit r26413.
2022-02-19 16:21:26 +00:00
Stan d77f0b28a0 Add two new asian themed tracks.
Patch by: Omri Lahav
This was SVN commit r26412.
2022-02-19 16:19:31 +00:00
vladislavbelov b0826da1bc Fixes not drawing brushes under water when refractions are enabled.
This was SVN commit r26411.
2022-02-19 15:44:32 +00:00
vladislavbelov 36833d1df2 Moves max texture size to backend device capabilities.
This was SVN commit r26409.
2022-02-18 23:17:48 +00:00
vladislavbelov 5eb21cbfbf Adds debug labels to backend framebuffers.
This was SVN commit r26408.
2022-02-18 23:00:11 +00:00
vladislavbelov b949f19875 Moves GL debug information toggle to run-time to make it easier to test after release.
This was SVN commit r26407.
2022-02-18 22:38:45 +00:00
vladislavbelov cff79b421a Moves GL vertex and index buffer management to CDeviceCommandContext.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4493
This was SVN commit r26406.
2022-02-18 17:33:12 +00:00
Freagarach 6a2a297c0e Clean LoadPlayerSettings in Player-helper.
- Removed obsolete C++-side `addPlayer`, introduced in 4fed9b8242, moved
out of Atlas in 1c0536bf08, unused after 9ee44bd9b8.
- Get the player settings from a local function (avoids passing
arguments).
- Removed setting the standard diplomacy (done in cmpPlayerManager since
132020f88e).
- Create entity when adding a player instead of creating it and
instructing the playermanager to add it.
- Changed/Removed some comments.

Differential revision: https://code.wildfiregames.com/D4482
Comments by: @Stan
This was SVN commit r26404.
2022-02-18 08:10:13 +00:00
Stan 6496aea364 Update unitTables.py for A25 and trunk
- Add support for mul_round
- Correct table
- BUGFIX: correct roster table via the mixin Civ fix
- avoid long lines for PEP8 compliance
- for mod development outside .svn repo, create symlink
- replace all TAB indents to 4 spaces for PEP8
- TAB to 4 spaces to be PEP8 compliant
- refactor complex inline logic to compute and formatting
- beautify and avoid long lines to be PEP8 compliant
- beautify and simplify JS table format code
- Using more accessible color scheme
- Better color scheme
- main analysis file
- Rename the new version back to keep consistancy
- dependency JS library
- Unit analysis result
- Rewrite specilized table logic to only show changed
- Prefer numeric flag over string flag to refactor
- Re-format HTML templates into readable source code
- Civ specific table now renders non-empty
- Update computeCivTemplate to parse A25 template dir
- Cleanup debugging flags
- Update copyright notice to 2022
- Explain how the code works for future development
- Initial README
- Refactor: put HTML IO code in a single function
- Refactor: include JavaScript as verbatim str
- Refactor: separate computation from IO
- Refactor: compute templates before HTML IO
- Refactor: compute CivTemplates before HTML IO
- Refactor: compute separate from IO code
- Fixed melee and ranged attack damage parsing
- Fixed Resistance parsing
- Implement the undefined function complain
- Rename Armour -> Resistance
- Simplify NumericStatProcess logic

Patch by: @hyiltiz
Differential Revision: https://code.wildfiregames.com/D4445
This was SVN commit r26403.
2022-02-17 22:41:53 +00:00
Stan 0c65e88cd5 New shuttle blocks by wowgetoffyourcellphone
This was SVN commit r26402.
2022-02-17 22:20:21 +00:00
Stan 05947ec96c Delete now unused helmet variants.
This was SVN commit r26401.
2022-02-17 22:18:12 +00:00
Stan 7492e71fc3 Fix some unused extra material textures in units reported in validator.py.
This was SVN commit r26400.
2022-02-17 21:55:31 +00:00
Stan 8d786d0bcb Fix some unused extra materials in trees and geology reported in validator.py.
This was SVN commit r26399.
2022-02-17 18:41:55 +00:00
Stan fbd536b855 Fix some unused extra materials in trees reported in validator.py.
This was SVN commit r26398.
2022-02-17 18:35:01 +00:00
Stan e30def27fd New Macedonian wonder. Based on a model by @m7600.
Thread:
https://wildfiregames.com/forum/topic/20820-macedonian-wonder/page/7/

This was SVN commit r26397.
2022-02-17 18:21:08 +00:00
wowgetoffyourcellphone cea9f9be8d Art Cleanup and Fixes found by Jenkins.
This was SVN commit r26396.
2022-02-17 07:27:58 +00:00
wowgetoffyourcellphone edb10156d5 - Kushite skeletal textures moved to their own subfolder.
- Actor texture refs updated to reflect the move. Actor aesthetics
improved.

This was SVN commit r26395.
2022-02-16 09:23:34 +00:00
bb 071fddd598 Remove useless persistMatchSettings and handle some which weren't handled
Fixing issues in dc18d94030

Everyone make sure to delete savegames, saved campaigns an most
importantly your matchsettings.json's (regular alpha players won't
notice since there is a version check, but if you already have your
stuff at A26/svn, you will have some issues)

Reported By: elexis
Comments By: wraitii, Freagarach
Differential Revision: D4240
This was SVN commit r26393.
2022-02-15 21:13:10 +00:00
bb 3484a3d483 Move parabolic range computation to rangemanager
Co-proposed By: Freagarach
Reviewed By: Freagarach
Test written By: Stan
Comments By: vladislavbelov, stan, wraitii, Silier
Depricates: D4356

Differential Revision: D3249
This was SVN commit r26392.
2022-02-15 20:31:55 +00:00
wackyserious 6c1c4e0cde Update celt tunic details
This was SVN commit r26391.
2022-02-15 11:03:23 +00:00
wowgetoffyourcellphone 8df9d31286 Improved Iberian structure textures. May improve it further at some point.
This was SVN commit r26390.
2022-02-15 10:28:14 +00:00
wowgetoffyourcellphone 9ae4db9425 Add ambient occlusion to the Mauryan Palace structure.
This was SVN commit r26389.
2022-02-15 09:59:56 +00:00
wowgetoffyourcellphone 069217b9e7 Roman sandbox map changed to be more of a debug demo.
This was SVN commit r26388.
2022-02-15 09:48:55 +00:00
wowgetoffyourcellphone d2ebe4464f - PERSIAN skeletal textures moved to their own subfolder.
- Actor texture refs updated to reflect the move. Actor aesthetics
improved.
- Persian Sandbox scenario changed up.

This was SVN commit r26387.
2022-02-15 09:47:56 +00:00
wowgetoffyourcellphone b160a62902 Fix a bunch of texture refs found by Jenkins.
This was SVN commit r26386.
2022-02-15 09:44:24 +00:00
wowgetoffyourcellphone c2310b56b4 - MAURYAN skeletal textures moved to their own subfolder.
- Actor texture refs updated to reflect the move.
- A couple of Atlas-only hero units.
- Maurya Sandbox scenario changed up.

This was SVN commit r26385.
2022-02-15 09:40:04 +00:00
wowgetoffyourcellphone 54e9f15bc7 - Replace some if the "old" helmet meshes and textures. These textures are used by some of the newer helmet prop actors. Perhaps we can find a better texture solution in the future for these props.
- Fix a couple helmet actors while I'm at it.

This was SVN commit r26384.
2022-02-15 07:38:04 +00:00
wowgetoffyourcellphone 259eced530 - Add horse actors for each color type so that they are more easily visualized for designers.
- Get rid of the dumb "pers_cav_knot" actor. Maybe we can make some
better Persian cavalry decor in the future.

This was SVN commit r26383.
2022-02-15 07:34:31 +00:00
Freagarach 3c73bb1b51 Display defeated/won before victory.
When the victory conditions dictate that someone loses when e.g. losing
their CC, the message that the other player(s) had won was sent before
the former player was actually defeated.
When the victory conditions dictate that someone wins when e.g.
capturing all relics, the message that they have won was sent after the
message that the rest has lost.

This changes those.

Differential revision: https://code.wildfiregames.com/D4478
Comments by: @bb, @Silier
This was SVN commit r26382.
2022-02-15 07:20:21 +00:00
Freagarach 73f732dc30 Replace chicken in the random maps folder with startingAnimal.
Which is more generic. It means we don't have `chicken = oPeacock` and
the like anymore.
It adds a default scaling function such that people replacing the
animals are puzzled by the different number of starting animals./To keep
the amount of food roughly equal to the amount standard provide by
chicken.

Patch by: @marder
Differential revision: https://code.wildfiregames.com/D4472
Comments by: @smiley, @Stan
This was SVN commit r26381.
2022-02-15 07:04:49 +00:00
bb 47e79c71d5 Make CGUIText variables camel case
Reviewed By: vladislavbelov
Differential Revision: D4491
This was SVN commit r26379.
2022-02-14 17:48:08 +00:00
Stan 3694a12152 Fix x86 Unix versions of 0 A.D. not being able to open the public.zip file.
Patch by: @nwtour
Differential Revision: https://code.wildfiregames.com/D4413
This was SVN commit r26378.
2022-02-14 11:01:02 +00:00
wowgetoffyourcellphone 930cc9b850 Scythian textures by Wackyserious.
Persians and Athenians will use these.

This was SVN commit r26377.
2022-02-14 08:17:02 +00:00
wowgetoffyourcellphone f8333e7deb Prop and Actor improvements.
- New destruction decal textures.
- Material fixes for actors.
- Bridge decals.
- Shields.

This was SVN commit r26375.
2022-02-14 08:13:42 +00:00
wowgetoffyourcellphone df0797e4a1 Continue the removal of the old helmets.
Move remaining helmet actors to the parent helmet folder.

This was SVN commit r26374.
2022-02-14 08:04:07 +00:00
wowgetoffyourcellphone 42b64f8ea2 - Delete 196 unused Helmet textures. Meshes and Actors to follow.
- Reduce resolution (and disk space) of some over-sized remaining helmet
textures.

This was SVN commit r26373.
2022-02-14 07:28:11 +00:00
vladislavbelov 6ec956553a Fixes builds after d0115185b9 by removing includes to res handle.
This was SVN commit r26372.
2022-02-14 06:29:50 +00:00
wowgetoffyourcellphone 939f800a26 - ROMAN skeletal textures moved to their own subfolder.
- Actor texture refs updated to reflect the move.
- A new Roman champion unit added for fun, "Praetorian."
- An "infantry" version of Scipio Africanus to match the other 2 Roman
heroes.
- New Roman helmet models and actors.
- A bunch of unused textures deleted.

This was SVN commit r26371.
2022-02-14 04:01:56 +00:00
Stan 59df75e78b Fixes two clang warnings.
Refs #5550 #5294

This was SVN commit r26370.
2022-02-13 23:41:47 +00:00
vladislavbelov d0115185b9 Removes unused and redundant h_mgr after 0e599a3176 and dd91a5e0ef.
This was SVN commit r26369.
2022-02-13 22:31:36 +00:00
vladislavbelov dd91a5e0ef Removes unused ogl_tex after 4de89c3db1 and 492a109b68.
This was SVN commit r26368.
2022-02-13 22:07:56 +00:00
vladislavbelov 492a109b68 Removes redundant ogl_tex quality option after 4de89c3db1.
This was SVN commit r26367.
2022-02-13 21:53:02 +00:00
vladislavbelov aaf378f041 Moves backend capabilities to CDevice.
This was SVN commit r26366.
2022-02-13 21:46:03 +00:00
vladislavbelov 4de89c3db1 Moves texture management to CDeviceCommandContext, adds quality options.
Comments By: nwtour, Stan
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4488
This was SVN commit r26365.
2022-02-13 19:30:28 +00:00
wowgetoffyourcellphone 451dc24a7e Carthaginian texture changes, deletions, additions.
This was SVN commit r26364.
2022-02-13 15:23:25 +00:00
wowgetoffyourcellphone f6a8c8cbbc This was SVN commit r26363. 2022-02-13 15:21:23 +00:00
wowgetoffyourcellphone 9536069201 Spartan unit actors improved.
This was SVN commit r26362.
2022-02-13 15:20:26 +00:00
wowgetoffyourcellphone 1c67883401 Unused and low res Celtic textures deleted.
About a dozen new Celtic tunic textures added to replace them.

This was SVN commit r26361.
2022-02-13 15:18:37 +00:00
wowgetoffyourcellphone c46c8068a3 Illyrian skeletal textures moved to their own subfolder.
A bunch of unused Thracian textures deleted.

This was SVN commit r26360.
2022-02-13 15:15:49 +00:00
wowgetoffyourcellphone abe81a0510 - Move Ptolemaic skeletal textures to their own sub-folder, et al.
This was SVN commit r26359.
2022-02-13 15:14:01 +00:00
wowgetoffyourcellphone d813cdb8fc Updated battalion standards.
This was SVN commit r26358.
2022-02-13 15:10:49 +00:00
wowgetoffyourcellphone 6d9c5652b2 - Move Seleucid skeletal textures to their own sub-folder.
- Renamed many textures to the new texture naming standards.
- Adjust many unit actor refs for these textures (and improve the look
of the actors while I'm at it).
- A bunch of unused texture deleted.

This was SVN commit r26357.
2022-02-13 15:08:34 +00:00
wowgetoffyourcellphone 47794a5cbd Athenian actor updates.
Commit the Scythian texture move while I'm at it (an Athenian unit uses
these textures).

This was SVN commit r26356.
2022-02-13 15:03:26 +00:00
wowgetoffyourcellphone 772cbcb915 - Move Hellenic and Macedonian skeletal textures to their own sub-folders.
- Renamed many textures to the new texture naming standards.
- Adjust many unit actor refs for these textures (and improve the look
of the actors while I'm at it).
- A bunch of unused texture deleted.

This was SVN commit r26355.
2022-02-13 15:00:48 +00:00
wowgetoffyourcellphone 21d13f82c0 More Standard textures. Some by Lion.Kanzen.
This was SVN commit r26354.
2022-02-12 22:52:25 +00:00
wowgetoffyourcellphone 634cb0fc66 Add a new Kushite standard texture by Lion.Kanzen as a variation.
Unlock the other Athen standard texture as a variation.

This was SVN commit r26353.
2022-02-12 22:07:26 +00:00
wowgetoffyourcellphone 8a75170c5d Fix texture refs noticed by Stan.
Add a new Cart linothorax texture while I'm at it.

This was SVN commit r26352.
2022-02-12 21:16:00 +00:00
wowgetoffyourcellphone 4ab472200d Standard Textures:
- Use stencils by Lion.Kanzen for Ptol and Sele
- Use the lotus pattern from the Maurya civ emblem to better match
visually
- Tweak the Macedonian star a little

This was SVN commit r26351.
2022-02-12 21:02:49 +00:00
Stan 936fb5a172 Replace checkrefs.pl by a python script. This makes it easier to run on Windows for non technical persons.
- Add support for tips
- Fix other scripts not writing to the correct output (they were writing
info messages to stderr)

Based on a patch by: @mammadori	and @cyrille
Differential Revision: https://code.wildfiregames.com/D3213
This was SVN commit r26350.
2022-02-12 15:43:42 +00:00
bb f17077272f Create a 3rd party gui alignment class for objects.
Use the class for the chat to accomodate size issues in some languages.

Chat size issue reported by: Zeldt on forums
Initial solution by: Nescio
Comments By: elexis, nwtour, Freagarach, vladislav, wraitii
Differential Revision: D2623
fixes #4252

This was SVN commit r26349.
2022-02-12 14:56:55 +00:00
wowgetoffyourcellphone 86ca2f192d Remove 24 outdated Carthaginian textures.
This was SVN commit r26348.
2022-02-12 11:27:03 +00:00
wowgetoffyourcellphone 3e6bb638a3 - Move Celtic/Briton/Gallic skeletal textures to their own sub-folders.
- Renamed many textures to the new texture naming standards.
- Adjust many unit actor refs for these textures (and improve the look
of the actors where applicable).
- A bunch of unused texture deleted.

This was SVN commit r26347.
2022-02-12 11:20:08 +00:00
wowgetoffyourcellphone a925ba22cf Reduce the repeating size of the Aegean_Anatolian_rocks_grass_01 terrain. The flora details in the texture seemed too big compared to units. Risked adding obvious tiling in order to make the texture look better sized. It's a balancing act.
This was SVN commit r26346.
2022-02-12 06:38:38 +00:00
wowgetoffyourcellphone 2897e32982 Fix the basic Iberian spearman actor.
Bug Report from Purgator_
https://wildfiregames.com/forum/topic/70665-[[SVN:26312]]-unit-texture-not-found/

This was SVN commit r26345.
2022-02-12 06:34:37 +00:00
wowgetoffyourcellphone 25d65afad6 Rename standard textures to the art filename convention.
This was SVN commit r26344.
2022-02-12 06:21:39 +00:00
wowgetoffyourcellphone 41cd3d3cf8 Increase the player color on the Standard flags a bit.
Delete unused Theban flag texture.

This was SVN commit r26343.
2022-02-11 08:46:09 +00:00
wowgetoffyourcellphone a04aa558c8 New Battalion Standards (meshes, textures, and actors) for all in-game civs.
Adjust formation template VisualActor to point to this new standard.

refs: d0549d7994
Differential: https://code.wildfiregames.com/D4467
Forum discussion:
https://wildfiregames.com/forum/topic/68008-formation-standards-total-war-style-flags-over-battalions/

This was SVN commit r26341.
2022-02-11 07:24:32 +00:00
Freagarach 63fcd8c559 Fix syntax in messages.json.
Noticed by @bb (and the linter), after ea72437739.

This was SVN commit r26340.
2022-02-11 06:14:53 +00:00
bb 9696b18a72 Happy new year bb.
See previous commit

This was SVN commit r26339.
2022-02-10 16:38:24 +00:00
bb 505bead1da Some minor improvements for the localization scripts
Comments By: Stan
Reviewed By Freagarach

Differential Revision: D4397
This was SVN commit r26338.
2022-02-10 16:18:49 +00:00
wowgetoffyourcellphone 8d7aa158ef - Move Thracian skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Renamed some textures to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors where applicable).
- A bunch of unused texture deleted.

This was SVN commit r26337.
2022-02-10 10:12:24 +00:00
wowgetoffyourcellphone 5f80cb8f78 - Move Iberian skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Renamed some textures to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors where applicable).
- Fix some file refs in some previously committed actors and variant
files noticed by silier and stan.
- Delete an old, unused elephant prop.

This was SVN commit r26336.
2022-02-10 07:59:01 +00:00
Freagarach 231eb37264 Fix typo in 93b22c5f86.
Noticed by @Silier.

This was SVN commit r26335.
2022-02-10 05:47:23 +00:00
Stan f55282fc96 Add a python equivalent to validate.pl.
Refs: D3213

This was SVN commit r26334.
2022-02-09 23:06:40 +00:00
Stan adcd1d105c Improve the validator.py script. Fix false positives with particles and variants. Use a logger instead.
This was SVN commit r26333.
2022-02-09 22:07:36 +00:00
Stan 0e1da6af7a Add missing spec map on the 7x9 decal reported by source/tools/xmlvalidation/validator.py
This was SVN commit r26332.
2022-02-09 21:37:09 +00:00
wowgetoffyourcellphone d8aac590d0 Some new Roman helmet textures. Actors coming.
This was SVN commit r26331.
2022-02-09 18:35:55 +00:00
wowgetoffyourcellphone 6010cc9aab Attempt to fix some animation variant files.
This was SVN commit r26330.
2022-02-09 18:33:49 +00:00
wowgetoffyourcellphone fa446685c8 - Move Carthaginian skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Delete old and (now) unused examples.
- Renamed textures to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors where applicable).
- Attempt to set all txt/xml files to EOL-native

This was SVN commit r26329.
2022-02-09 18:31:53 +00:00
Freagarach 93b22c5f86 Allow cheats to convert units to arbitrary players.
This allows the "wololo" cheat to switch units to an arbitrarily defined
player. If no player is specified, it defaults to the player entering
the cheat.
The player manager will warn when using a wrong player number.

Patch by: @Nullus
Differential revision: https://code.wildfiregames.com/D4479
Comments by: @Stan
This was SVN commit r26328.
2022-02-09 15:49:26 +00:00
Freagarach 9417a345d1 Allow selecting multiple non-owned entities when control all is on.
(Not with dragging, since that would be hard to use, UX-wise.)
It allows easier debugging; less switching between players.

Differential revision: https://code.wildfiregames.com/D4477
Comments by: @asterix, @Silier, @Stan
This was SVN commit r26327.
2022-02-09 07:02:14 +00:00
Freagarach d0549d7994 Use (civ-specific) standards to show formations.
Since we can have battalion-style formations (a70a20fd42), it is nice to
show a TW-style banner for them.
Code adapted from @Silier at
https://wildfiregames.com/forum/topic/68008-formation-standards-total-war-style-flags-over-battalions/.

Differential revision: https://code.wildfiregames.com/D4467
Comments by: @asterix, @Silier
Refs. #4545

This was SVN commit r26326.
2022-02-09 06:54:12 +00:00
Angen ed70f931ba Fix missing implicit conversion in TradeDialogBarterPanel
undefined is not boolean

Implicit conversions required since 0406c4dfde

Fixes: #6429

This was SVN commit r26325.
2022-02-08 20:45:28 +00:00
wowgetoffyourcellphone 621f5ce77b Fix Italian texture refs for these actors. Noticed by @Stan.
This was SVN commit r26324.
2022-02-08 18:40:10 +00:00
wowgetoffyourcellphone 25681c99eb Add new Punic Cavalry for Carthage and Persian Skirmish Cavalry actors for Seleucids. Will improve on these later.
This was SVN commit r26323.
2022-02-08 18:37:34 +00:00
wowgetoffyourcellphone 58a6b13cb5 Improve the look of the 3 Roman heroes.
This was SVN commit r26322.
2022-02-08 18:34:57 +00:00
wowgetoffyourcellphone 03d04385b2 Additional unit variants added.
Props additions and improvements.
Made the long cape use more variants.

This was SVN commit r26321.
2022-02-08 18:33:48 +00:00
Stan 2e02f885c1 Add garrisoned and projectile prop points to cart houses. Fix naming conventions for the meshes and the ao textures.
Refs: https://code.wildfiregames.com/D4421
Refs: #4581

This was SVN commit r26320.
2022-02-08 11:17:08 +00:00
Stan 729835d59c Restore the tooltip style for the Civ Overview page.
Patch by: @Langbart
Fixes: #6380
Differential Revision: https://code.wildfiregames.com/D4481
This was SVN commit r26319.
2022-02-08 10:11:29 +00:00
wowgetoffyourcellphone f763f20535 - Move Italian/Italiote/Samnite skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Delete old and (now) unused examples.
- Renamed textures to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors where applicable).
- Attempt to set all txt/xml files to EOL-native

This was SVN commit r26318.
2022-02-08 09:26:08 +00:00
Freagarach 3994105946 Fix checkrefs after ea72437739.
Noticed by checkrefs by @Stan.

Differential revision: https://code.wildfiregames.com/D4480
Reviewed by: @Stan
This was SVN commit r26317.
2022-02-08 05:55:01 +00:00
Stan c0d0bb850d Disable transparency for performance on some helmets. Don't use parallax, as it does nothing but artifacts on normals with no alpha channel.
EOL to native.

This was SVN commit r26316.
2022-02-07 14:11:41 +00:00
wowgetoffyourcellphone cedc674ef7 - Move Arab skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Renamed them to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors while I'm at it).
- Fix texture refs for some spart textures noticed by @Stan.

This was SVN commit r26314.
2022-02-07 08:12:19 +00:00
wowgetoffyourcellphone ddce577e59 - Move Spartan skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Renamed them to the new texture naming standards.
- Adjust unit actor refs for these textures (and improve the look of the
actors while I'm at it).
- Attempting to use the correct SVN move commands this time.

This was SVN commit r26313.
2022-02-07 05:42:20 +00:00
wowgetoffyourcellphone 845932ea55 Some unit props:
- Boeotian cavalry helmet with "plume" as seen in many references.
Bronze, Gold, and Silver variants. Silver crested Boeotian helmet with
laurel wreath.
- Custom pelte shield for the Spartan Phalangite.
- Special helmet for the '300' Leonidas.

This was SVN commit r26311.
2022-02-07 05:22:41 +00:00
wowgetoffyourcellphone be16ffe802 - Move Athenian skeletal textures to their own sub-folder (an on-going project for all unit textures).
- Renamed them to the new texture naming standards.
- Adjust unit actor refs for these textures.
- Accidentally used the wrong svn move option this time. Will use
correct one moving forward.
- Thanks be to @Stan for his assistance.

This was SVN commit r26310.
2022-02-07 03:02:36 +00:00
Stan 8ca4afcf20 Add garrisoned, smoke, and projectile prop points to brit houses. Fix naming conventions for the meshes.
Refs: D4221, #4581

This was SVN commit r26309.
2022-02-06 11:55:04 +00:00
Stan 119348f976 Add garrisoned and projectile prop points to ptol houses. Fix naming convention issues.
Now that they do not trigger errors anymore, restore the old houses as
variations.

This was SVN commit r26308.
2022-02-06 11:13:01 +00:00
Angen 0a72a02ea0 Make scale variables constant
b4fbbed379

This was SVN commit r26307.
2022-02-06 11:11:35 +00:00
Angen 7e5e06bae8 Fix timeout confirmation box depending on fps
Introduced in b4fbbed379
Use Date.now() to calculate passed time.
Rewrite to class.
Also actually pass timeout from json.

Differential revision: D4318
Comments by: @vladislavbelov, @Stan
This was SVN commit r26306.
2022-02-06 11:04:42 +00:00
Angen 8d71975cc0 [Gameplay-a26] Increase workshop garrison limit to 5
Differential revision: D4344
Patch by: @Langbart
Reviewed by: @wowgetoffyourcellphone
Comments by: @marder, @chrstgtr
This was SVN commit r26304.
2022-02-06 09:23:41 +00:00
vladislavbelov a17fad722a Moves framebuffer management to CDeviceCommandContext.
Tested By: Langbart, nwtour
Differential Revision: https://code.wildfiregames.com/D4475
This was SVN commit r26302.
2022-02-05 16:59:23 +00:00
Angen c317fb3ec0 Fix test_GuiInterface after 0a3fab87da
This was SVN commit r26301.
2022-02-05 12:46:39 +00:00
Angen 0a3fab87da Display rank action in tooltip
Patch by: @nwtour
Differential revision: D4340
Reviewed by: @Silier
The patch adds a description from the technology file to tooltip when
hovering over rank icon.

This was SVN commit r26300.
2022-02-05 12:12:58 +00:00
Freagarach eaff28c448 Store possible formations for a civ in XML instead of the JSON.
The JSON was purely GUI at first, but has gotten some simulation content
over time. Not all of that was necessary/correct to do.
When the formations were added (58836c624a) there was only a generic
player.xml
(https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/simulation/templates/special/;11735)
and differentiation was added only later.
The formations in the XML is more logical and allows inheritance.

Differential revision: https://code.wildfiregames.com/D4466
Idea approved by: @wowgetoffyourcellphone
This was SVN commit r26299.
2022-02-05 06:39:53 +00:00
Freagarach ea72437739 Move GenericName, History and Icon from the civ-JSON to cmpIdentity.
Since the players/civs already have cmpIdentity, use it.
This forces civs to have corresponding XML in the `special/players/`
folder.

Also moves the files from `special/player/` to `special/players/`
consistent with other folders. And moves the generic `player.xml` one
level up.

Differential revision: https://code.wildfiregames.com/D4473
Help and comments by: @Stan, @wraitii
This was SVN commit r26298.
2022-02-05 06:24:45 +00:00
vladislavbelov 37aa0456c8 Fixes missed assignment to currentTech in ParticleRenderer added in 5adbe4f1a3.
This was SVN commit r26296.
2022-02-04 16:27:35 +00:00
wowgetoffyourcellphone 5116a8e3b6 Skeletal folder Cleanup and Organizing
Reduced resolution of a bunch of unit textures to the consistent 256x256
(and some animals from 1024 to 512)
Introduce some new textures and texture improvements
Begin to introduce some civ folders (that reorganization is coming
later)
Adjust some unit actors to look nicer

This was SVN commit r26295.
2022-02-04 10:11:59 +00:00
wowgetoffyourcellphone 87d5ca5dd2 Reduce resolution of many shield textures. Also remove some unnecessary alpha channels. Disk savings of about 30 MB.
This was SVN commit r26294.
2022-02-04 09:45:02 +00:00
wowgetoffyourcellphone e3fc39469c Point a number of templates to their new <Icon> portraits.
Improve the look of the Seleucid cavalry actors to match their new
portraits.

This was SVN commit r26292.
2022-02-03 00:36:35 +00:00
wowgetoffyourcellphone 30f0c58a0e Improved Portraits. Reviewed by: Stan
Adds consistent backgrounds, colors, lighting, and better camera
orientations (less apparent foreshortening).

This was SVN commit r26291.
2022-02-02 23:42:38 +00:00
vladislavbelov 643894c16b Disables depth test for minimap effect after a1f98b016b. Fixes #6426
This was SVN commit r26290.
2022-02-02 18:43:23 +00:00
vladislavbelov ac77d1c3e0 Moves scissor test management to DeviceCommandContext.
This was SVN commit r26288.
2022-02-01 17:58:21 +00:00
vladislavbelov aeaf495da3 Renames GL::CTexture levelCount to MIPLevelCount to match Tex.
This was SVN commit r26287.
2022-02-01 16:48:24 +00:00
vladislavbelov a1f98b016b Moves depth and stencil tests to PipelineState and DeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4471
This was SVN commit r26286.
2022-02-01 16:38:55 +00:00
vladislavbelov 709e8292b0 Moves color mask, depth mask and function management from CShaderPass to DeviceCommandContext.
Tested By: Langbart
Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D4465
This was SVN commit r26284.
2022-01-31 20:10:06 +00:00
vladislavbelov 22db9202f1 Fixes EOL in PipelineState files after 5adbe4f1a3.
This was SVN commit r26283.
2022-01-31 11:47:58 +00:00
vladislavbelov 8c068aab07 Removes possibility to link lowlevel library dynamically.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4470
This was SVN commit r26281.
2022-01-31 06:53:30 +00:00
Stan 99118fc2b7 Add garrison flags and projectile prop points to spart houses.
Refs: https://code.wildfiregames.com/D4221, #4581
- Fix naming of files.
- Improve AO
- Disable parallax on nature.

This was SVN commit r26279.
2022-01-30 23:17:41 +00:00
Stan cfa567f24d Remove temperate_dead_forest actor from maps, as we have to no way to remove actors when placing buildings.
Patch by: @Langbart
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4464
This was SVN commit r26278.
2022-01-30 21:44:26 +00:00
Stan 3f73495653 Bring Walruss and Muskox back to the arctic biome.
Patch by: @marder
Accepted by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4266
This was SVN commit r26277.
2022-01-30 21:38:05 +00:00
vladislavbelov 02c96903c5 Renames sgn function to Sign to fit the naming of other MathUtil functions.
This was SVN commit r26276.
2022-01-30 20:51:01 +00:00
wraitii 0e403632cf Allow giving different weights to different templates when pushing.
This makes it possible to make units heavier, which both push more & get
pushed less by other units.
In particular, the diff does it for siege units & elephants.

This improves movement for these units in crowd situation, since they
will now basically not move when other regular units push into them.

Supported By: asterix, marder
Refs #6127

Differential Revision: https://code.wildfiregames.com/D4452
This was SVN commit r26275.
2022-01-30 14:22:27 +00:00
wraitii 4df03ed2d2 Run the AI in the same Compartment as the simulation. Let the AI access Sim data.
This is a paradigm change for AI computation.
Historically, the AI was intended to be run in a separate thread from
the simulation. The idea was that slow AI wouldn't stop the renderer
from being smooth.

In that original design, the AI received a copy of the game world and
used that to run its logic. This meant the simulation could safely do
whatever it wanted in the meantime. This copy was done via AIProxy &
AIInterface.

This design ended up having significant flaws:
- The copying impacts the simulation negatively, particularly because
AIProxy subscribes to a lot of messages (sometimes sent exclusively to
it). This time cannot be threaded, and impacts MP games without AIs.
- Copying the data is increasingly difficult. Modifiers are a headache,
LOS is not implemented. Lots of logic is duplicated.

The intended benefits of the design also failed to realise somewhat:
- The AI was never threaded, and in fact, it is probably better to try
and thread Sim + AI from the renderer than just the AI, at which point
threading the AI specifically brings little benefit.

The new design is much simpler and straighforward, but this has some
side-effects:
- The AI can now change the simulation. This can be used for cheating,
or possibly for a tutorial AI.
- The AI runs in the same GC zone as the simulation, which may lead to
more frequent Sim GCs (but overall we might expect a reduction in
temporary objects).
- The AI state was essentially cached, so replacing some functions with
Engine.QueryInterface might be slower. The tradeoff should be balanced
by lower AIProxy computation times.

Future work:
- Threading some specific AI tasks could still be worthwhile, but should
be done in specific worker threads, allowed to run over several turns if
needed.

Technical note: the AI 'global' is in its own Realm, which means name
collisions with the same are not possible.

Other notes:
- The RL Interface uses the AI Interface and thus will gradually lose
some data there. Given that the RL Interface can now request data
however, this should be dine.

Refs #5962, #2370

Differential Revision: https://code.wildfiregames.com/D3769
This was SVN commit r26274.
2022-01-30 13:33:34 +00:00
wraitii 0779c64052 Add tests for fixed::FromFraction
Differential Revision: https://code.wildfiregames.com/D4458
This was SVN commit r26273.
2022-01-30 12:57:08 +00:00
wraitii d740b4f335 Fix bug where 'archive' XMB files could end up being written to the user mod
Users sometimes ended up with bad (wrong version) XMB files in the user
mod. This resulted in A25 loading a black screen.
There is a combination of unfortunate code paths that lead to this. The
core issue is that:
- cdd75deafb changed the XMB loading code that if there is an error in
Init from a cached XMB, it reports an error. This error happens to be
silent, because the GUI expects CXeromyces to do its own error reporting
(a pretty poor decision, all in all, but whatever). This explained why
the black screen showed no errors.
- The code flow attemps to load an 'archive' XMB first, then only a
loose cache. _But_ if the XMB that fails to load is an archive (which
generally never happens except when using incompatible mods, which is
generally less easy in A25 since we added code to stop that), then the
game will try to recreate the XMB as an 'archived' path, not a 'loose
cache' path as it would usually do.
- Because the 'archived' path already exists in the VFS, the game will
attempt to overwrite that. It so happens that in non-dev copies, this
writes to the user mod.
- Because the user-mod is always loaded, this was unexpected for users.

Fixing this is rather simple: the game should never attempt to write
'archive' XMBs in that function. Added explicit barrier, which shouldn't
matter performance-wise but fixes the issue by writing in the proper
place, and also properly recovering in case of read failure.
I will note that the game will still try to load the archived file, and
recreate it every time, but I don't think that's a particularly big
deal, in general having engine-incompatible mods in the future should be
harder because of A25 changes there.
(NB: users that have used both A24 and A25 should perhaps still be
advised to check their user mod folder, otherwise they'll end up
recreating those files forever).

Reported by: dave_k
Fixes #6320

Differential Revision: https://code.wildfiregames.com/D4275
This was SVN commit r26272.
2022-01-30 12:50:43 +00:00
wraitii e0d98cd94d Call SetTerrainDirty on CModelAbstract without going through CmpVisualActor
The UnitManager already lists all units, so we do not need to go through
the visual actor of entities to update them. This is faster and
decouples simulation & graphics code slightly.

Further, the simulation does not need to know about texture changes (see
also 410d2e883a), so remove those calls in Atlas.

Differential Revision: https://code.wildfiregames.com/D4455
This was SVN commit r26270.
2022-01-29 08:28:04 +00:00
wraitii 410d2e883a Remove leftover terrain-based movement cost code.
6581796103 removed the ability for terrain to affect movement speed. The
JPS pathfinder cannot support it, and the approach was poor anyways,
coupling rendering data with simulation data.
This lets us remove the dependency on CTerrainTextureManager everywhere.

Tested by: langbart
Differential Revision: https://code.wildfiregames.com/D4459
This was SVN commit r26269.
2022-01-29 08:22:28 +00:00
Stan 1d7eb7492e Make Palisades all use the same portrait. Remove now unused portrait.
Patch by: @wowgetoffyourcellphone
Differential Revision: https://code.wildfiregames.com/D4462
This was SVN commit r26267.
2022-01-28 16:50:13 +00:00
Stan 144234cd05 Remove alpha from two spec textures.
Make trans_mask.png be RGBA instead of a two channel texture (Grayscale
+ Alpha)

This was SVN commit r26266.
2022-01-28 14:34:31 +00:00
vladislavbelov 1e07283bac Disables possibility to mix shader types with a single backend.
Differential Revision: https://code.wildfiregames.com/D4463
This was SVN commit r26264.
2022-01-28 06:34:34 +00:00
wackyserious 01c5facdd5 1.) Added actor files for the Ptolemaic Skirmisher Cavalry (Mercenary Tarantine Settler)
Discussion:
https://wildfiregames.com/forum/topic/27046-task-ptolemaic-tarantine-cavalry-mercenary-tarantine-settler/

2.) partial naming convention edit for the Ptolemies.

This was SVN commit r26262.
2022-01-28 01:32:16 +00:00
wraitii 1365585372 Unit pushing: lower static extension following 158cf8ea8d
The new values in 158cf8ea8d were too high, units would push each other
too much when building. This lower value should fix that, though further
adjustements may be necessary.

Reported by: Freagarach.
Differential Revision: https://code.wildfiregames.com/D4461
This was SVN commit r26261.
2022-01-27 17:34:37 +00:00
vladislavbelov 285e542a0a Removes redundant comment about alpha test in shaders forgotten in 5cbd46de94.
This was SVN commit r26260.
2022-01-27 17:32:07 +00:00
vladislavbelov d4d1bc039f Moves culling mode and front face state management to DeviceCommandContext.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4456
This was SVN commit r26259.
2022-01-27 17:25:37 +00:00
wackyserious 299cb3d34b Improve Persian Cavalry back lamellar/scale prop
This was SVN commit r26258.
2022-01-27 05:07:48 +00:00
wackyserious 599e2fc605 Gallic unit texture variant reduction
This was SVN commit r26256.
2022-01-27 02:12:41 +00:00
wackyserious 547fc96450 Assign newer textures to Macedonian Champion Crossbowman.
This was SVN commit r26255.
2022-01-27 01:17:13 +00:00
wraitii 83d251406c Move BuildAnimation to CSkeletalAnimMgr / CObjectEntry
There is no need to have BuildAnimation in CModel when everything is
done in CObjectEntry anyways.
This removes a pointer in every CModel object, which is nice.

Accepted By: vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4454
This was SVN commit r26254.
2022-01-26 14:55:19 +00:00
wackyserious fe816ecb1a Iberian Units Major Update
Discussion:
https://wildfiregames.com/forum/topic/27446-committed-iberian-unit-textures/page/7/#comment-475940

Historical accuracy comments and review by: Genava55, TKgokumelos,
UltimateAurelian, wowgetoffyourcellphone

This was SVN commit r26253.
2022-01-26 10:41:50 +00:00
Freagarach 73f741d266 Handle researching technologies in the TechnologyManager.
Moves the work done from cmpResearcher to cmpTechnologyManager.
No functional changes.

It allows fancy stuff in the future (#6364).

Differential revision: https://code.wildfiregames.com/D4438
This was SVN commit r26252.
2022-01-26 07:42:36 +00:00
wraitii 27f64b80ed Remove unused variable following 330b570ba8
Forgotten in that diff.

Reported by: vladislavbelov
This was SVN commit r26250.
2022-01-25 18:47:38 +00:00
wraitii 330b570ba8 Remove RENDERDATA_UPDATE_COLOR, which is not used, and cleanup.
RENDERDATA_UPDATE_COLOR was used to precompute lightEnv-dependent data
on the CPU. This is no longer done following engine upgrades, and in
particular d7d02a4740 which explictly always did this on the GPU.

ModelAbstract had a 'SetDirtyRec' hack for it because of decals, which
can also be removed. The 'dirty' bit of CRenderableObject is renderdata
for the specific item, never its props, so it never actually needs to be
recursive.

CheckLightEnv is also useless as a result, and removed.

Differential Revision: https://code.wildfiregames.com/D4453
This was SVN commit r26249.
2022-01-25 16:59:29 +00:00
vladislavbelov acb043f4a2 Adds a rasterization state to the renderer backend pipeline state.
This was SVN commit r26248.
2022-01-25 16:28:58 +00:00
Stan 588e6b0103 Fix anim sync by using another horse
Fixes
https://wildfiregames.com/forum/topic/67680-double-horse-tail/#comment-473779

This was SVN commit r26246.
2022-01-24 22:17:25 +00:00
wraitii 158cf8ea8d UnitMotion pushing improvements
The main change is the introduction of a 'pushing pressure' counter on
units. This counter increases when units get pushed around, and
decreases over time. In essence, units under high pressure move slower &
are harder to push around.
The major effect is that units can now get bogged down when very dense
groups start colliding. This makes movement more realistic, makes unit
movement more 'chokepointy', and generally improves the mathematical
soundness of the system (lower values are easier to handle for our 200ms
turns).

Other changes:
- The logic to detect units crossing each other's path has been
reworked. Units that run towards each other should not more obviously
avoid each other.
- New parameters: 'Spread' is a measure of how strong the pushing effect
is based on distance. With the current settings, static-pushing is
rather 'on/off', whereas moving-pushing is more gradual (and thus the
max influence distance was increased when moving).
- Default values have been tweaked for lower overlap.
- Units only looked at other units within their grid region. This led to
overlap near grid-borders. Units now look at neighboring grid elements,
which largely removes this issue. While this may be slower, the
performance of pushing was largely negligible before, so it is unlikely
to become a main cause of lag (and overlap was generally disliked by
players).
- Units no longer orient in the direction of pushing, but instead keep
facing their target. This can look slightly odd under very heavy pushing
forces, but vastly improves behaviour of very slow units such as rams
(since they spend much less time turning around). As a side-effect,
clean up angle code following acc780bcbb .

Engine changes:
- Add a debug rendering mode at compile-time to help understand what is
happening.
- Make it possible to constexpr initialise fractional fixed numbers by
using FromFraction

The 'pressure' change was inspired by alre's suggestion at
https://wildfiregames.com/forum/topic/56436-for-a-better-unit-movement/#comment-461987

Refs #6127

Differential Revision: https://code.wildfiregames.com/D4439
This was SVN commit r26245.
2022-01-24 15:36:13 +00:00
wraitii 026a7b1699 Fix AI counting exhausted resources in its dropsite list
dropsiteSupplies kept a list of resources and did not remove exhausted
resources, leading to possibly buggy resource-management in the AI code
(and needless computations).

Differential Revision: https://code.wildfiregames.com/D4442
This was SVN commit r26244.
2022-01-24 15:20:56 +00:00
Stan 647db0e2ee Remove usages of “fancy” grass from shaders.
Discussed with: @vladislavbelov

This was SVN commit r26243.
2022-01-24 15:14:33 +00:00
Stan c41447360c Remove usages of “fancy” grass from terrains.
Discussed with: @vladislavbelov

This was SVN commit r26242.
2022-01-24 15:13:59 +00:00
Stan 351d1d2b9a Remove usages of “fancy” grass from maps.
Discussed with: @vladislavbelov

This was SVN commit r26241.
2022-01-24 15:13:10 +00:00
vladislavbelov 4ce609bb1f Uses MIPs for terrain textures previews following e4455a8e8f.
Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D4447
This was SVN commit r26239.
2022-01-24 07:00:55 +00:00
vladislavbelov c114bab396 Removes mem_get_ptr from the Tex::get_data comment forgotten in 63086f4e26.
This was SVN commit r26237.
2022-01-23 11:59:35 +00:00
Freagarach f787089588 Ceil the resource costs for insufficient resources.
A controversial change (refs. #3818, #4099,
https://code.wildfiregames.com/D1438), but good to have in some form.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4332
This was SVN commit r26236.
2022-01-23 07:41:45 +00:00
Freagarach 8926f5a94c Move the allowed formations from cmpIdentity to cmpUnitAI.
One needs UnitAI to be able to use a formation, so include the spec
therein (to keep information close to where it is used).
Modders can change their templates with the following script:
https://code.wildfiregames.com/P261.

Differential revision: https://code.wildfiregames.com/D4443
Comments by: @Stan
Idea accepted by: @wraitii
Fixes: #6399

This was SVN commit r26235.
2022-01-23 07:23:44 +00:00
Freagarach f8d64a5f2c Fix Catafalque page not showing the Macedonian metal trickle.
The ResourceTrickle component has been changed to a global aura instead.
It increases the trickle slightly, but catafalques are unbalanced
anyway.

Patch by: @Grapjas
Differential revision: https://code.wildfiregames.com/D4383
Refs. #6032 by fixing the Macedonian specific case, but not showing the
tooltips, as requested.

This was SVN commit r26234.
2022-01-23 07:14:45 +00:00
vladislavbelov ad5377bc0e Fixes fancy water shores drawing after 1d9a8b2b0b.
Reported By: wraitii
This was SVN commit r26231.
2022-01-20 17:31:21 +00:00
vladislavbelov 41fe3aafa4 Fixes minimap texture scissoring rect following b5d85e279f. Fixes #6382
This was SVN commit r26229.
2022-01-19 17:40:26 +00:00
vladislavbelov 5adbe4f1a3 Moves blend state management to DeviceCommandContext. Fixes #6420
Tested By: Langbart
Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D4441
This was SVN commit r26228.
2022-01-19 17:28:47 +00:00
Stan 0b7a717c8a Fix a warning when building pyrogenesis in Debug on Windows.
This was SVN commit r26227.
2022-01-18 11:07:05 +00:00
vladislavbelov 40e75f9c89 Removes binding additional attribute for water shader added in 1d9a8b2b0b.
Reported By: Freagarach
This was SVN commit r26223.
2022-01-15 16:47:42 +00:00
vladislavbelov a4a647e9f0 Removes unused variable in ParticleRenderer after fc223e3540.
This was SVN commit r26222.
2022-01-15 16:29:26 +00:00
Freagarach f66ca01603 Deselect only part of a formation when clicking the unit icon.
As requested by @wowgetoffyourcellphone to be more in line with
afc77e20a4.

Differential revision: https://code.wildfiregames.com/D4433
Tested by: @astrix, @wowgetoffyourcellphone
This was SVN commit r26221.
2022-01-15 13:44:43 +00:00
Freagarach 0005976b2b Fix selecting multiple entities and training.
Fixes a visual bug where selecting a trainer and a non-trainer counted
as two.

Introduced in 0c4f59d0a7
Reported by Purgator_ on the forums:
https://wildfiregames.com/forum/topic/67583-[[SVN:26182]]-ui-logic-bug.
Differential revision: https://code.wildfiregames.com/D4432
Tested by: @Langbart
Fixes: #6415

This was SVN commit r26220.
2022-01-15 13:42:15 +00:00
vladislavbelov 971b734873 Moves hardcoded blend state in debug overlay and water to their techniques.
This was SVN commit r26218.
2022-01-14 18:44:40 +00:00
vladislavbelov fc223e3540 Moves hardcoded blend state in ParticleRenderer to the transparent particles technique.
This was SVN commit r26217.
2022-01-14 18:18:28 +00:00
vladislavbelov 829e37371b Moves hardcoded blend state in CCanvas2D to its technique.
This was SVN commit r26216.
2022-01-14 17:44:42 +00:00
vladislavbelov 1d9a8b2b0b Splits water surface and shore drawing functions and fixes their switch.
Differential Revision: https://code.wildfiregames.com/D4436
This was SVN commit r26215.
2022-01-14 17:34:58 +00:00
vladislavbelov 9aedcade7f Draws slider button only inside its element.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4435
This was SVN commit r26213.
2022-01-14 06:50:44 +00:00
vladislavbelov 5cbd46de94 Removes deprecated GL alpha test.
In GL3.0 alpha test mode was deprecated and removed in GL3.3. We should
use discard/kill in shaders instead.
In shaders alpha test was removed in d3a24c26ba, in FFP it was removed
with FFP in b7e6811ea6.

Differential Revision: https://code.wildfiregames.com/D4434
This was SVN commit r26211.
2022-01-13 17:50:28 +00:00
Stan fb0a311cc7 Fix a change from c6b53e1677 to a wrong alpha material.
Discussed with: @vladislavbelov

This was SVN commit r26210.
2022-01-13 15:32:28 +00:00
Stan 1ef475ed98 Add an ARB equivalent for los_interp.
Accepted by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4420
This was SVN commit r26209.
2022-01-13 15:12:28 +00:00
wraitii c1f779dff5 Fix compilation on Apple Silicon
This allows cross-compiling for x86_64 on mac ARM machines, and sets
things up for a switch later.
SDL upgrade is necessary for compilation with the GLES headers in
different SDKs.

Tested by: langbart, minohaka
Differential Revision: https://code.wildfiregames.com/D4424
This was SVN commit r26208.
2022-01-13 14:42:42 +00:00
Stan a2ab6b9b72 Allow to cap FPS up to the current max refresh rates of gaming screens: 360Hz
Patch by: @OptimusShepard
Reviewed by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4366
This was SVN commit r26207.
2022-01-13 14:30:23 +00:00
wraitii 712b7ebf9a Remove JS_New in favour of JS::Construct in preparation for SM91
Spidermonkey 91, the next ESR, removes JS_New in favour or
JS::Construct.
See
https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples/blob/migration-guide/docs/Migration%20Guide.md#object-construction
and
https://bugzilla.mozilla.org/show_bug.cgi?id=1491055

This change is SM78 compatible and therefore done beforehand.

Tested by: Freagarach
Refs #5986

Differential Revision: https://code.wildfiregames.com/D4427
This was SVN commit r26205.
2022-01-12 16:51:32 +00:00
Stan 6d14932d98 Convert 16-bit grayscale textures to 8 bit textures. It makes little difference for us.
Discussed with: @sera, @vladislavbelov

This was SVN commit r26204.
2022-01-12 15:21:53 +00:00
Stan 336b909c8e Convert 16-bit 16-bit/color RGB(A) textures to 8 bit textures. It makes little difference for us, and it wastes GPU memory.
Remove alpha channel for spec maps and convert an indexed color png to
rgb.

Discussed with: @sera, @vladislavbelov

This was SVN commit r26203.
2022-01-12 14:51:12 +00:00
vladislavbelov 6d28c44f0f Removes unused method from CShaderTechnique.
This was SVN commit r26201.
2022-01-11 16:02:27 +00:00
Freagarach 794fa82efb Warn when finding an entity with Reasearcher/Trainer but without ProductionQueue.
As requested by @Silier and @Stan.
Following 0c4f59d0a7.

Differential revision: https://code.wildfiregames.com/D4404
Comments by: @Silier, @smiley, @Stan
This was SVN commit r26200.
2022-01-11 06:34:07 +00:00
vladislavbelov 9757cc2539 Removes direct shader binding, uses BeginPass always following e1374252b7.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4431
This was SVN commit r26199.
2022-01-11 05:56:44 +00:00
vladislavbelov 2e38c117d2 Fixes comments of CLOSTexture and CTerritoryTexture following 57ba7c4a1c.
This was SVN commit r26197.
2022-01-10 17:58:51 +00:00
vladislavbelov 0cda752ec3 Uses CVertexBufferManager handle instead of raw VBChunk pointer management.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4430
This was SVN commit r26196.
2022-01-10 16:51:43 +00:00
vladislavbelov 795fb070af Removes asking GL of current bind framebuffer to avoid syncs.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4422
This was SVN commit r26193.
2022-01-09 07:36:56 +00:00
Freagarach 98d213a9cd Fix modifications to unspecified techCostMultipliers.
8d80a2186e removed the values for the tech cost multipliers from the
templates, since the component uses those default values, but failed to
account for modifications thereof.
Those weren't applied since the template value didn't exist.

This changes that to iterating over all resources.

Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4409
Tested by: @Langbart
Fixes: #6408

This was SVN commit r26192.
2022-01-09 06:32:30 +00:00
vladislavbelov 95318d34ff Removes redundant layer check added in f715b73f4f.
Reported By: Freagarach
This was SVN commit r26189.
2022-01-08 13:44:40 +00:00
vladislavbelov 9924450d36 Moves default GL state setup to GL device.
This was SVN commit r26187.
2022-01-07 22:21:22 +00:00
vladislavbelov 5610c71fc6 Fixes rendering big screenshot pieces onto screen, refs 52a8793450.
This was SVN commit r26186.
2022-01-07 20:15:48 +00:00
vladislavbelov f715b73f4f Uploads cube textures in SkyManager via DeviceCommandContext.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4421
This was SVN commit r26185.
2022-01-07 20:00:41 +00:00
vladislavbelov 15c40861b4 Separates terrain alphamap combining and uploading.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4419
This was SVN commit r26184.
2022-01-07 14:33:54 +00:00
vladislavbelov 9d7457da9b Removes ogl_tex usage from CRenderer.
This was SVN commit r26181.
2022-01-06 23:23:36 +00:00
vladislavbelov b061a7ead4 Optimizes FBO usages for LOSTexture and water shore foam.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4418
This was SVN commit r26180.
2022-01-06 22:44:54 +00:00
Stan dfafdcd792 Bump version of the desktop file to 1.4 the latest stable version according to @nwtour on https://code.wildfiregames.com/D3475.
Noticed by: @asterix and @dynamofox on cf56f36a3b
This was SVN commit r26179.
2022-01-06 20:28:49 +00:00
Stan cf56f36a3b Fix two typos noticed by @Nescio, and use the performance GPU on Linux too.
Patch by: @DynamoFox, @nwtour
Comments by: @bb
Differential Revision: https://code.wildfiregames.com/D3475
This was SVN commit r26178.
2022-01-06 19:40:15 +00:00
Stan de2a368924 Modify 0ad.desktop to accept a file as an argument to allow installing mods by drag & drop on the icon.
Patch by: @nwtour
Accepted by: @Freagarach
Differential Revision: https://code.wildfiregames.com/D4410
This was SVN commit r26177.
2022-01-06 19:34:20 +00:00
vladislavbelov 9bc3dd4699 Fixes terrain overlay texture upload after fd976456d7.
Reported By: nwtour
This was SVN commit r26176.
2022-01-06 14:16:32 +00:00
vladislavbelov 912202ff0c Uses core GL functions for GLSL shaders.
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4416
This was SVN commit r26175.
2022-01-06 11:41:04 +00:00
vladislavbelov cee0ce48eb Disables redundant mipmap generation for postprocessing.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4417
This was SVN commit r26174.
2022-01-06 11:09:42 +00:00
vladislavbelov 27c8771a3a Fixes debug drawing of a null shadow texture introduced in 36107cb7e1, appeared after abc3190c03.
Reported By: nwtour
This was SVN commit r26173.
2022-01-06 11:04:45 +00:00
vladislavbelov f07fa81661 Renames LOS framebuffer object to follow CC.
This was SVN commit r26171.
2022-01-05 15:37:59 +00:00
vladislavbelov fd976456d7 Performs texture uploads via DeviceCommandContext interface.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4415
This was SVN commit r26170.
2022-01-05 14:49:54 +00:00
Stan 07c0d95467 Write a GLSL equivalent for overlay_solid.
Fixes #6403
Patch by: z0rg
Reviewed by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4406
This was SVN commit r26168.
2022-01-04 21:14:41 +00:00
Stan 0a8d382657 Fix OpenGL ES 2.0 Warnings.
This was SVN commit r26167.
2022-01-04 20:54:37 +00:00
vladislavbelov 5e3426794c Moves frame rendering function to CRenderer and combines with making screenshots.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4414
This was SVN commit r26166.
2022-01-04 18:13:45 +00:00
vladislavbelov 87b5c233c5 Splits CRenderer part about scene to CSceneRenderer.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4412
This was SVN commit r26165.
2022-01-04 13:29:01 +00:00
Stan 3d2be697a2 Fix OpenGL ES build after ae32055c9b.
This was SVN commit r26163.
2022-01-04 00:21:37 +00:00
vladislavbelov 2f90becb28 Removes SkipSubmit and unused friends from Renderer.
This was SVN commit r26162.
2022-01-03 12:16:16 +00:00
vladislavbelov 3e6b0780fa Removes unused Renderer friends of removed classes, refs 8753f881ee, 6bc33fe8bd.
This was SVN commit r26161.
2022-01-03 12:00:37 +00:00
vladislavbelov 3b8f1cdc04 Moves Renderer internals class out of the global namespace.
This was SVN commit r26160.
2022-01-03 11:11:58 +00:00
vladislavbelov 6dc0abebdb Removes unused includes from Renderer.
This was SVN commit r26159.
2022-01-03 10:59:41 +00:00
vladislavbelov 4fba543488 Unifies providing SkyManager and WaterManager like other managers, refs b889826a3d.
This was SVN commit r26158.
2022-01-03 10:49:12 +00:00
Stan 7afe489214 Remove topology.cpp. The data isn't useful to us, and it prevents some players from running the game.
Fixes #6028
Differential Revision: https://code.wildfiregames.com/D4402
This was SVN commit r26157.
2022-01-03 10:29:34 +00:00
vladislavbelov 273d336364 Removes unused Atlas functionality to set clear color added in 2f53eea71a and removed in 0d6882dad2.
This was SVN commit r26156.
2022-01-03 09:39:54 +00:00
vladislavbelov e9070a2630 Removes rand function usage from Atlas and unused rand include from particles.
This was SVN commit r26153.
2022-01-02 22:35:17 +00:00
vladislavbelov e547704a54 Removes rand function usage from test_cache_adt.
This was SVN commit r26152.
2022-01-02 22:32:38 +00:00
Angen f6d2961a81 Fix bug where scenario map was not loading as revealed when set to revealed.
Introduced in dd90dbf8b5.

Differential revision: D4305
Fixes: #6356
Patch by: @Jammyjamjamman
Comments by: @Stan, @andy5995, @vladislavbelov, @Langbart, @Freagarach
Tested by: @Freagarach, @Langbart
This was SVN commit r26151.
2022-01-01 18:15:59 +00:00
vladislavbelov 8347c94e3a Moves game load progress update function from GameSetup to CGUIManager.
This was SVN commit r26150.
2022-01-01 12:23:24 +00:00
vladislavbelov 7b8c66ec9f Adds config settings for borderless fullscreen and window modes.
Tested By: bb, Langbart
Differential Revision: https://code.wildfiregames.com/D4106
This was SVN commit r26148.
2021-12-31 12:05:48 +00:00
vladislavbelov 202e248c93 Removes cinema path recording from atlas added in 2c71c22045 and not removed with ffmpeg in [[SVN:9520]], 4c395f4bf2 and 47b26e56d3.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4411
This was SVN commit r26147.
2021-12-31 10:35:56 +00:00
vladislavbelov c9ba9299a3 Ignores sampler settings for multisample GL textures.
Reported By: Stan
This was SVN commit r26144.
2021-12-30 17:31:16 +00:00
vladislavbelov abc3190c03 Removes binding native GLuint textures from public ShaderProgram API.
Differential Revision: https://code.wildfiregames.com/D4407
This was SVN commit r26143.
2021-12-30 16:37:51 +00:00
vladislavbelov e4455a8e8f Speedups terrain painting tab in Atlas by asynchronous texture loading.
Tested By: Silier, Stan
Differential Revision: https://code.wildfiregames.com/D4405
This was SVN commit r26142.
2021-12-30 16:24:07 +00:00
Stan ae32055c9b Add support for GL_KHR_debug in Debug Mode.
Based on a patch by: @linkmauve
Reviewed by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D2488
This was SVN commit r26141.
2021-12-30 15:07:17 +00:00
Stan b74fd6d4a2 Use the high performance GPU on Windows by default.
Reviewed by: @vladislavbelov
Accepted by: @asterix
Differential Revision: https://code.wildfiregames.com/D4401
This was SVN commit r26140.
2021-12-30 13:57:40 +00:00
vladislavbelov 92cf0c784c Removes Handle from ShaderProgram to use more high-level objects.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4403
This was SVN commit r26138.
2021-12-29 07:07:08 +00:00
vladislavbelov b9e4c14083 Fixes out of bounds access in SkyManager after 0837e369cf.
This was SVN commit r26136.
2021-12-28 10:50:42 +00:00
Angen 70bd982c85 Fix OnOwnershipChanged missing in ResourceTrickle
This was SVN commit r26135.
2021-12-28 10:03:49 +00:00
Angen e552f1280e Fix certain modifiers not being cleared corectly from cache
Issue noticed by Exodarion.

After researching technology for resourcetrickle modifiers were
returning old cached value because modifiers were not cleared for
structure when it was build and changed owner from invalid_owner to the
player so old values were kept.

Cause:
global cache depends on originalvalue.
Health and other modifiers use also player-wide modifiers and result
from that is used as the key, what means global cache is never used
because originalvalue will differ in that case.
That does not look to be case for resourcetrickle and possibly for
another scenarios.
Modifiers that get cached on init and do not get changed by player-wide
modifiers in combination with ownership being changed afterwards will
bug.
Since we dont reset cache for ownership going from invalid_player, the
old global cache is kept and used.

Another solution would be to not cache on init, but thats workaround to
hide the issue.

Differential revision: D4395
This was SVN commit r26134.
2021-12-28 10:01:36 +00:00
Freagarach 2c33c28a09 Add the ability to do simple (de)serialisation cycle in the JS unit tests. (And change the PQ, Trainer and Researcher serialisation.)
To catch e.g. typos.

- Use the same structure in the ProductionQueue item (de)serialisation
as in Trainer and Researcher.
- Also iterate over the serialisable attributes on deserialize, as
proposed by @elexis (on IRC), for its symmetry.

Proposed by: @Stan
Differential revision: D4388
This was SVN commit r26133.
2021-12-28 08:23:59 +00:00
Freagarach 32fc381017 Fix PetraAI not rushing.
A typo in the starting strategy.
Reported by: @marder on
http://irclogs.wildfiregames.com/%230ad-dev/2021-11-12-QuakeNet-%230ad-dev.log
Introduced in 4e664dd712.

Differential revision: https://code.wildfiregames.com/D4391
Fixes: #6381

This was SVN commit r26132.
2021-12-28 08:16:06 +00:00
Freagarach 60f35ff9c7 Add missing ProductionQueue component to the Mauryan Palace.
Reported by @ValihrAnt at 0c4f59d0a7.
Introduced in 8d80a2186e.

Differential revision: https://code.wildfiregames.com/D4392
Tested by: @ValihrAnt
Comments by: @Stan
This was SVN commit r26131.
2021-12-28 08:12:10 +00:00
Freagarach b3a6a1e6e5 Add a more detailed description to the showstatusbar hotkey.
For it was not really clear.

Patch by: @nwtour
Differential revision: https://code.wildfiregames.com/D4362
Accepted by: @asterix
This was SVN commit r26130.
2021-12-28 08:08:13 +00:00
vladislavbelov 3591220361 Removes redundant ogl usage to process data on CPU combining terrain alpha map.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4399
This was SVN commit r26129.
2021-12-28 06:41:06 +00:00
vladislavbelov 136f4621af Fixes crash for ARB shaders because they don't provide actual locations, triggered after c2c3a3b663.
Reported By: nwtour
This was SVN commit r26127.
2021-12-27 21:27:56 +00:00
vladislavbelov 0837e369cf Moves PostProcManager and SkyManager to GL texture class continuing 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4398
This was SVN commit r26126.
2021-12-27 21:01:43 +00:00
Stan c4de86973d Fix Haiku detection introduced in cc65e0e8a2
Patch by: @xone47
Differential Revision: https://code.wildfiregames.com/D4396
This was SVN commit r26125.
2021-12-27 18:59:44 +00:00
bb cbb7177fc1 Fix two comments from d95550248b
This was SVN commit r26124.
2021-12-27 16:30:58 +00:00
bb 6ed690f102 Add script to remove unneeded info from .po files
Differential Revision: D4264
This was SVN commit r26123.
2021-12-27 14:31:32 +00:00
vladislavbelov 3cb60353e1 Removes unused h_mgr includes.
This was SVN commit r26122.
2021-12-27 11:47:16 +00:00
vladislavbelov 9696df3c28 Removes unused ogl/ogl_tex includes.
This was SVN commit r26121.
2021-12-27 10:11:26 +00:00
vladislavbelov 60a422b668 Moves water textures and terrain alpha composite map to GL texture class following 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4394
This was SVN commit r26120.
2021-12-27 08:14:47 +00:00
vladislavbelov f59f637cbb Cleanups TerrainTextureEntry a little, removes commented member from 88ab3f0f5b.
This was SVN commit r26118.
2021-12-26 20:39:13 +00:00
vladislavbelov c2c3a3b663 Moves shadow map and terrain overlay to GL texture class continuing 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4393
This was SVN commit r26117.
2021-12-26 09:48:48 +00:00
Stan 6c2b9e72a0 Fix naming conventions of a few map names. Rename a dupe texture, and the fcollada readme.
Refs #6327

This was SVN commit r26114.
2021-12-26 00:17:01 +00:00
bb bd8b11676e Update translation files on translator change
Comments By: Stan
Differential Revision: D4260
This was SVN commit r26113.
2021-12-25 21:22:45 +00:00
bb 5fd4fb2b34 Restoring the colored profile name with the ranking and using the leaderboard names for autocompletion in the profile player search field.
Broken in 0a09bde961

Comments By: elexis, Dunedan, Silier, Freagarach
Patch By: Langbart
Differential Revision: D4262
fixes #6316

This was SVN commit r26112.
2021-12-25 21:06:21 +00:00
Angen ac7dc057df Add "Invalid signature" reason to modio
When signature is invalid, it does not comunicate the reason clearly.
Fix this.
Also remove silent failure in case of signature is not valid.

Differential revision: D3478
Reviewed by: @bb
This was SVN commit r26111.
2021-12-25 19:31:51 +00:00
Angen 2dc0ccc184 [gameplay] standardize animal loot experience
This patch attempts a more systematic approach, by standardizing the
<Loot/xp> to 20% of <Health/Max>.

Differential revision: D3681
Patch by: @Nescio
Reviewed by: @borg- @wowgetoffyourcellphone
Comments by: @Palaxin
This was SVN commit r26110.
2021-12-25 19:28:31 +00:00
vladislavbelov 57ba7c4a1c Encapsulates GL texture creation in a separate class.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4389
This was SVN commit r26107.
2021-12-25 00:26:10 +00:00
Freagarach 381bbb59e8 Fix (de)serialisation in the Researcher component.
A typo in the serialisation function.
Also just serialise the properties that are assigned in cmpResearcher
and cmpTrainer.

Introduced in e4925e02d0
Reported by: @nwtour
Differential revision: https://code.wildfiregames.com/D4386
Tested by: @nwtour
This was SVN commit r26105.
2021-12-24 08:11:17 +00:00
vladislavbelov 478164962f Removes static linking of OpenGL library.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4387
This was SVN commit r26104.
2021-12-24 08:02:27 +00:00
vladislavbelov f9818b7f7a Moves default texture to SingleColorTexture following 283f524fcf.
This was SVN commit r26102.
2021-12-23 17:44:24 +00:00
Stan e7cc6117ce Fix removal of added files for macOS and Windows.
Don't display Debug: and Release: if no message was printed.

This was SVN commit r26101.
2021-12-23 15:10:16 +00:00
Stan 6b7541cec5 Add more options to archive builds.
Patch by: @wraitii, @Stan
Tested for A25.

Differential Revision:
https://code.wildfiregames.com/D4141#change-nbAmEr5oWUW3

This was SVN commit r26100.
2021-12-23 14:59:37 +00:00
vladislavbelov 6f1322881e Cleanups console a little bit.
This was SVN commit r26099.
2021-12-23 07:37:03 +00:00
Stan 53734a05a6 Add a missed include in https://code.wildfiregames.com/D721; It's included for some reason in Windows NOPCH but not linux
Reported by: @Freagarach
This was SVN commit r26097.
2021-12-22 11:02:13 +00:00
Angen 2922b693ab Fix special string used in singular for english
Some languages use singular form for another counts than 1, what makes
singular strings in english with hardcoded number causing incorrect
string to be displayed.

Adding special branch for english singular string since it looks nicer.

Differential revision: D4377
Patch by: @nwtour
This was SVN commit r26096.
2021-12-22 10:54:11 +00:00
Stan c9bea80e0d Use GLAD2 a multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator.
Comments by: @nwtour, @Langbart, @bb
Based on patch by: @echotangoecho
Tested on Windows 7 & 10, Ubuntu and macos.

Differential Revision: https://code.wildfiregames.com/D721
This was SVN commit r26093.
2021-12-21 22:03:31 +00:00
vladislavbelov a32ab00f4d Moves backbuffer swap and error check to GL device.
This was SVN commit r26092.
2021-12-21 17:02:04 +00:00
wackyserious d48bc63d92 Fix missed issues bc461838ee and minor texture edits
-Move orientation of the Scythian coat to the left to make it more
visible.

This was SVN commit r26091.
2021-12-21 09:02:31 +00:00
Angen 26842451d7 Fix sorting by hasPassword/private in gamelist
Reported by @nani:
Sorting by "has password" in lobby game list does nothing

Add sorting value.

Differential revision: D4382
Reviewed by: @Freagarach
Fixes: #6392
Introduced in: c2155e31c0

This was SVN commit r26090.
2021-12-21 08:00:37 +00:00
Freagarach 84399ba248 Fix training/researching with zero time.
(Re)introduced in 0c4f59d0a7.
Reported by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4378
Reviewed by: @Silier
Refs. #2334

This was SVN commit r26089.
2021-12-21 06:19:50 +00:00
Freagarach a8c6d7a82b Inherit comment of previous save when overwriting.
Reported by: @allalongthetower at
https://wildfiregames.com/forum/topic/64768-save-game-name-erasing/
Patch by: @nwtour
Differential revision: https://code.wildfiregames.com/D4372
Comments by: @Silier, @Stan
This was SVN commit r26088.
2021-12-21 06:07:48 +00:00
wackyserious bc461838ee 037351c75e fix
This was SVN commit r26087.
2021-12-21 01:00:38 +00:00
wackyserious 037351c75e Update Athenian Scythian archer champion unit textures
-Standardize naming convention (sample_01_01, where first 01 = type and
following, 01 = subtype)
-Add new variants
-Minor update to previous textures

This was SVN commit r26086.
2021-12-20 12:10:45 +00:00
Freagarach e4925e02d0 Fix getting units by cheat.
Introduced in 0c4f59d0a7.
Noticed by: @loveheaven at
https://wildfiregames.com/forum/topic/64877-cannot-cheat-any-longer-by-iwanttopwnthem-50/.

Differential revision: https://code.wildfiregames.com/D4374
Comments by: @Silier, @Stan
This was SVN commit r26084.
2021-12-17 15:34:49 +00:00
vladislavbelov 3b9b7cd605 Moves GL report from HWDetect to GL device.
Tested By: Freagarach, Stan
Differential Revision: https://code.wildfiregames.com/D4376
This was SVN commit r26081.
2021-12-16 06:36:46 +00:00
vladislavbelov 2f4fabdd96 Fixes gamesetup slider for a too short frame time (not enough Date precision).
Patch By: nwtour
Differential Revision: https://code.wildfiregames.com/D4365
This was SVN commit r26079.
2021-12-15 10:56:20 +00:00
vladislavbelov eb004e5c98 Uses forward declaration for SDL in GL device.
This was SVN commit r26078.
2021-12-15 10:50:31 +00:00
vladislavbelov 93a9072618 Removes logs of unused GL constants which duplicate video mode settings.
This was SVN commit r26077.
2021-12-15 10:49:46 +00:00
Freagarach dfd9560748 Put the formation-selection feature behind a config.
Since it needs a better UX. (Introduced in a70a20fd42.)
Users can choose to still use it.

Differential revision: https://code.wildfiregames.com/D4360
Comment by: @wowgetoffyourcellphone
This was SVN commit r26076.
2021-12-15 08:07:59 +00:00
Freagarach afc77e20a4 Ignore formation selection when clicking an unit icon.
It was deemed unintuitive to select the whole formation when clicking an
icon.

Differential revision: https://code.wildfiregames.com/D4295
Comments by: @alre, @Langbart, @marder, @wowgetoffyourcellphone
This was SVN commit r26075.
2021-12-15 08:00:49 +00:00
Freagarach f1f744702b Rename "ElevationBonus" and "Delay" to "Origin" and "EffectDelay", respectively.
`ElevationBonus` is vague, as discussions proved. Therefore it is
renamed to `Origin`, which, describes better what the value stands for.
`Delay` is also quite vague, so renamed to `EffectDelay`.

Differential revision: https://code.wildfiregames.com/D2016
Comments by: @bb, @nani, @Nescio, @Silier, @Stan, @wraitii
This was SVN commit r26074.
2021-12-15 07:42:06 +00:00
Freagarach 5cbdc6c62a Use the attack sound for attack-move.
And define it (the attack_move sound) in the templates, such that
modders can change it at will.

Patch by: @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D4364
This was SVN commit r26073.
2021-12-15 07:11:03 +00:00
vladislavbelov 89c181ded1 Encapsulates information about GL inside device.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4375
This was SVN commit r26072.
2021-12-15 06:43:41 +00:00
vladislavbelov 784f734480 Removes a hack to detect an old S3 SuperSavage card added in c1ec44d751.
This was SVN commit r26070.
2021-12-14 10:47:32 +00:00
vladislavbelov 3809457513 Replaces unclear PreferGLSL by direct renderer backend choice.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4363
This was SVN commit r26069.
2021-12-14 06:34:02 +00:00
vladislavbelov f28efbaa87 Forbids using more than 64 bones for GPU skinning.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4244
This was SVN commit r26067.
2021-12-13 19:22:27 +00:00
Stan 044346cf62 Set default big screenshot size to 4K as proposed by @wowgetoffyourcellphone in f175bc4f8d
This was SVN commit r26066.
2021-12-13 19:03:02 +00:00
vladislavbelov a3382fb3eb Removes checks for unused or always enabled GL extensions.
Differential Revision: https://code.wildfiregames.com/D4371
This was SVN commit r26065.
2021-12-13 18:36:37 +00:00
Freagarach a8c25837cb [PetraAI] - Use enum-like variables instead of magic values. -- [2]
Improved readability. Easier find-and-replace.

This commit focused on:
- Worker
- TransportPlan
- Difficulty

Patch by: @JCWasmx86
Differential revision: https://code.wildfiregames.com/D4343
Refs. #6256
Comments by: @nani, @Silier, @Stan
This was SVN commit r26063.
2021-12-13 08:04:33 +00:00
Stan 7e0a42c87d Delete broken assets reported here https://wildfiregames.com/forum/topic/49785-building-a-64-bit-pyrogenesis-and-deps-for-windows/?do=findComment&comment=452589
This was SVN commit r26061.
2021-12-12 20:41:54 +00:00
Stan e851fc019b Remove duplicate iber_struct.dds
Fixes #6326

This was SVN commit r26060.
2021-12-12 20:04:07 +00:00
Stan 0dd3bcc8e7 Remove duplicate dds textures for desert_forestfloor_palms.dds, kart_trireme.dds, tree_cypress_a.dds, farming_wheat_harvest_b.dds, road_roman.dds, celt_caratacos.dds, rome_ijv_e.dds, hele_trireme.dds, iber_sail_b.dds, kart_sail_1.dds, kart_sail_2.dds, kart_sail_3.dds.
Refs #6326

This was SVN commit r26059.
2021-12-12 19:15:40 +00:00
Stan 846b8154c2 Remove duplicate celt_prop_1 texture.
Refs #6326

This was SVN commit r26058.
2021-12-12 18:08:17 +00:00
Stan 09c39d710f Remove duplicate textures.
Refs #6326

This was SVN commit r26057.
2021-12-12 16:56:40 +00:00
Stan b7cf30fce5 Fix Windows 11 Detection
Comments by: @vladislavbelov, @Freagarach
Differential Revision: https://code.wildfiregames.com/D4337
This was SVN commit r26056.
2021-12-12 16:08:09 +00:00
Stan 5b6bb1cd89 Fix Alt Tab on Windows for SDL > 2.0.12
Comments by: @vladislavbelov,  @Freagarach
Differential Revision: https://code.wildfiregames.com/D4359
This was SVN commit r26055.
2021-12-12 16:01:30 +00:00
Stan c80da0cd3c Remove duplicate texture hele_struct_b
- Use the correct material, as texture has no alpha, therefore no player
color
- Add missing textures where necessary
- Use null_white for hele_blacksmith_bucket_water instead of loading
useless textures.

Refs: #6326

This was SVN commit r26054.
2021-12-12 15:43:50 +00:00
Angen a43ff8b088 Fix not used SIEGE_NO_TRAINER
In 2f24006afb, the siege state for no trainer was not assigned to
variable but used in condition.
Making use of that state actually.

Differential revision: D4367
Patch by: @JCWasmx86
This was SVN commit r26053.
2021-12-12 12:19:11 +00:00
vladislavbelov 5e61febf16 Resolves concerns from e4907bdb6e. Fixes #6395
Tested By: Langbart, nwtour
Differential Revision: https://code.wildfiregames.com/D4370
This was SVN commit r26051.
2021-12-10 21:29:40 +00:00
vladislavbelov 9cb6e4c105 Cleanups Font and FontManager a little.
This was SVN commit r26050.
2021-12-10 16:59:32 +00:00
vladislavbelov dfe165d6c2 Fixes unused m_Simulation after b991ef919b.
This was SVN commit r26046.
2021-12-09 18:07:10 +00:00
vladislavbelov fe81a6eec7 Refactors WaterManager to remove duplication of the current texture index calculation. Removes unused m_WaterCurrentTex from f2cae8cb9b.
This was SVN commit r26045.
2021-12-09 18:01:28 +00:00
Freagarach 1dfa8140a9 Fix infinite loop when queuing a gather order after garrison.
There was an infinite loop:
Order.Gather -> MustKill (L497) -> PushOrderFront(Attack) (L526) ->
NotInRange (L410) -> NotAbleToMove, thus finish order (L426/427) ->
Restart from Order.Gather.

We do two things here:
- Assume we don't have vision when garrisoned, which is not a bad
assumption.
- Check the range and if we are not able to move and not in range,
finish the order.

Introduced in: d3c3072c83
Reported by: @Langbart
Differential revision: https://code.wildfiregames.com/D4349
Fixes: #6377
Tested by: @Langbart
Comments by: @Silier, @Stan
This was SVN commit r26044.
2021-12-09 16:35:03 +00:00
Freagarach 695ce382ec Fix Trainer/Researcher without entities/techs.
It was explicitly allowed in 0c4f59d0a7, but not all references to
`this.template` were properly checked.

Noticed by: @nwtour
Differential revision: https://code.wildfiregames.com/D4357
Tested by: @nwtour
Comments by: @Stan
This was SVN commit r26043.
2021-12-09 16:22:52 +00:00
Freagarach a53405f697 Fix PetraAI after 5d3902498f.
In 5d3902498f there was a wrong substitution.
`AttackManager` -> `AttackPlan` for the attack types.

Patch by: @JCWasmx86
Differential revision: https://code.wildfiregames.com/D4369
Reviewed by: @Silier
Tested by: @nwtour
This was SVN commit r26041.
2021-12-09 05:47:29 +00:00
vladislavbelov fe511e88d9 Adds FreeType support to the engine.
Tested By: Langbart, Imarok, Stan, s0600204, wraitii
Differential Revision: https://code.wildfiregames.com/D4108
This was SVN commit r26040.
2021-12-08 22:14:43 +00:00
vladislavbelov 04476bf29f Normalizes AO textures according to b53c454e3e via P259.
Differential Revision: https://code.wildfiregames.com/D4361
This was SVN commit r26039.
2021-12-08 18:35:23 +00:00
vladislavbelov b53c454e3e Removes AO multiplier as a duplicate way to adjust AO, makes it closer to PBR.
Differential Revision: https://code.wildfiregames.com/D4361
This was SVN commit r26038.
2021-12-08 18:28:42 +00:00
wackyserious 22a21e4bd9 Update: Celtic Unit Actor File
-Sword sheath position switch
-Make heroes look more historically accurate
-New hero textures (Caradoc and Boudicca)

Reviewed by: Genava55, wowgetoffyourcellphone and other community
members

This was SVN commit r26037.
2021-12-08 08:26:31 +00:00
vladislavbelov 90f27d4909 Adds console toggle hotkeys to the console welcome message.
Patch By: nwtour
Differential Revision: https://code.wildfiregames.com/D4347
This was SVN commit r26035.
2021-12-07 20:09:46 +00:00
Freagarach 5ceeac3dd5 Use correct tooltip stye for the civ icon.
Introduced in 18a97cc82a.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4341
Fixes: #6378
Comment by: @vladislavbelov
This was SVN commit r26033.
2021-12-06 07:22:12 +00:00
vladislavbelov e4907bdb6e Forces GL 2.1 core context creation in VideoMode.
This was SVN commit r26031.
2021-12-04 22:01:20 +00:00
vladislavbelov 670f5f9a40 Adds more flexible dependencies to options.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4354
This was SVN commit r26030.
2021-12-04 20:09:53 +00:00
Freagarach 5d3902498f [PetraAI] - Use enum-like variables instead of magic values. -- [1]
Improved readability. Easier find-and-replace.

This commit is focused on:
- BaseManager
- AttackPlan
- GarrisonManager

Patch by: @JCWasmx86
Differential revision: https://code.wildfiregames.com/D4334
Refs. #6256
Comments by: @Silier, @Stan
This was SVN commit r26029.
2021-12-04 08:47:05 +00:00
vladislavbelov 5a7aa37cd1 Fixes without PCH build after af567560b8.
Reported By: Freagarach
This was SVN commit r26026.
2021-11-30 18:03:39 +00:00
vladislavbelov a591e5aa69 Removes unused/not implemented hooks from AppHooks. Refs f947fa6afe.
This was SVN commit r26024.
2021-11-29 18:21:49 +00:00
vladislavbelov af567560b8 Drops custom utf16 string implementation (from cdd3317ded), uses C++11 one.
Patch By: sera
Differential Revision: https://code.wildfiregames.com/D4223
This was SVN commit r26023.
2021-11-29 12:10:41 +00:00
vladislavbelov e1374252b7 Removes direct access to shaders, leaves only techniques.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4353
This was SVN commit r26020.
2021-11-27 15:01:14 +00:00
vladislavbelov 4c26a2d11f Adds disabled sprites to slider.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4355
This was SVN commit r26019.
2021-11-27 13:37:05 +00:00
vladislavbelov c0e0d620eb Draws fancy water and its shore waves only for GLSL shaders.
This was SVN commit r26017.
2021-11-26 21:47:04 +00:00
Freagarach fcd10be509 Fix Researchers' GUI without a tech cost multiplier.
This was SVN commit r26016.
2021-11-26 20:53:14 +00:00
Freagarach 8d80a2186e Some fixes after the ProductionQueue split.
0c4f59d0a7 / 8475c16c31 introduced a serialisation error (#6391).
Also the templates and the code could be improved.

Differential revision: https://code.wildfiregames.com/D4352
Comments by: @Silier, @Stan
Fixes: #6391

This was SVN commit r26015.
2021-11-26 17:12:26 +00:00
vladislavbelov 809e3ed0bd Removes rand function usage from tests to avoid non-uniform distributions.
This was SVN commit r26012.
2021-11-25 17:57:59 +00:00
vladislavbelov 6efa293fd1 Reduces number of allocations during GPU profiler processing for Intel queries.
This was SVN commit r26011.
2021-11-25 17:33:17 +00:00
vladislavbelov 265a2246f0 Removes unused fnv_lc_hash, also file paths case sensitive so we can't use the function.
This was SVN commit r26010.
2021-11-25 16:58:04 +00:00
vladislavbelov 25ce179cbc Adds collision test for fnv_hash, removes unused include forgotten in b4a33851e6.
This was SVN commit r26007.
2021-11-21 11:59:02 +00:00
Freagarach ab01a2d2fc Fix replay folders with special characters.
Implemented in e7ab22286e, broken in cb346e207b.

Patch by: @Langbart
Help by: @elexis
Differential revision: https://code.wildfiregames.com/D4345
Fixes: #6373
Reviewed by: @vladislavbelov
Tested by: @Freagarach
This was SVN commit r26005.
2021-11-19 11:34:26 +00:00
Freagarach a16ecf0f62 Missing tileclass in archipelago / fix fish on land.
This would cause fishes to be spawned on land under a specific set of
conditions. Cases where the concerned land is not painted clPlayer for
example (which fish also avoids).
Added by @marder: spacing of the forest and wood amount was corrected as
the above ^ pushed the wood away from the player.

Original patch by: @smiley
Additional changes by: @marder
Differential revision: https://code.wildfiregames.com/D1729
Comments by: @elexis
Tested by: @Freagarach
Fixes: #5797
Refs. #3746

This was SVN commit r26003.
2021-11-17 07:20:18 +00:00
vladislavbelov 9b3dcd2610 Slightly improves minimap flares, makes animation more smooth via alpha fade in/out.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4351
This was SVN commit r26001.
2021-11-16 16:58:32 +00:00
Freagarach 0c4f59d0a7 Split tasks from ProductionQueue.
The task of the production queue should first and foremost be that; a
queue for production items.
Hence, the specifics of training/researching are delegated to specific
components.

As a side effect, this improves the test coverage and fixes:
- Resource not refunding when hitting the entity limit. Introduced in
b8758c8941.
- Autoqueue changing when unable to spawn. Introduced in 956b3f96db.

Modders can change their templates using
https://code.wildfiregames.com/P256.

Differential revision: https://code.wildfiregames.com/D4333
Fixes: #6363
Comments by: @Silier
Refs. #6364

This was SVN commit r26000.
2021-11-16 07:08:39 +00:00
vladislavbelov b5d85e279f Removes border pixels drawing of the minimap texture with scissors after b991ef919b. Fixes #6382
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4350
This was SVN commit r25997.
2021-11-14 16:51:39 +00:00
vladislavbelov d1a7aa2858 Adds alpha and custom options to render debug modes.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4346
This was SVN commit r25996.
2021-11-14 08:33:59 +00:00
Angen 59a13f97be Show the correct message when exiting the multiplayer match as a client
Forgotten change in: 3ab25cbd95
Reported by: @bb
Differential revision: D4330
Patch by: @Schweini
This was SVN commit r25995.
2021-11-13 12:26:48 +00:00
vladislavbelov b991ef919b Moves MiniMap texture rendering to a separate framebuffer to update it less frequently.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4331
This was SVN commit r25993.
2021-11-12 19:15:48 +00:00
vladislavbelov 36eb92f9a4 Adds render debug modes.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4311
This was SVN commit r25992.
2021-11-12 11:22:18 +00:00
Angen dc361048aa Fix a1010b83d3 and 8f8996e338
Fix wrong renaming done in a1010b83d3
Fix missed structure change in 453fe486de

Reported by: SciGuy42 on forum
https://wildfiregames.com/forum/topic/62269-onrange-triggers-in-a25/
Tested by: SciGuy42
Differential revision: D4335
This was SVN commit r25989.
2021-11-06 11:07:28 +00:00
bb c1cd28c878 Also do a postMove update when the average speed over last turn isn't zero
Reviewed By: Freagarach
Differential Revision: D4302
refs acc780bcbb

This was SVN commit r25985.
2021-10-31 17:21:04 +00:00
Freagarach f0c708be41 Ceil the required XP in the GUI.
344d1cc837 introduced a tech that percentually increased the required XP
for archers, showing a decimal value.
This rounds that up, for 150/150 without being promoted looks bad as
well.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4322
Reviewed by: @Angen
This was SVN commit r25984.
2021-10-31 07:00:39 +00:00
vladislavbelov 4bae03c6c8 Enables GL_TEXTURE_2D always since we don't support FPP anymore.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4327
This was SVN commit r25982.
2021-10-30 14:34:20 +00:00
Angen 5924575705 Fix pathname not matching name incompatible mod detection
Differential revision: D4324
Broken in 498f0d420b

This was SVN commit r25979.
2021-10-28 20:33:01 +00:00
Freagarach 3ab25cbd95 Add an extra button to skip the summary page when quitting.
Allows devs (and players) to skip the summary page when they don't need
them.

Patch by: @Schweini
Differential revision: https://code.wildfiregames.com/D3958
Reviewed by: @Langbart
Fixes: #4300
Comments by: @nwtour, @Stan
This was SVN commit r25978.
2021-10-28 06:31:16 +00:00
Freagarach 137ec9f3d4 Fix typo in tutorial.
Triple click should have been an <Alt>+DoubleClick.
While at it, removed the unneeded brackets at the hotkey translations.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4314
Fixes: #5409

This was SVN commit r25977.
2021-10-28 06:21:14 +00:00
Freagarach 083ab0f4b0 Some layout changes to the replay menu.
Cursor should not blink in read-only.
The path was too similar to the list and thus easy to miss, it has been
changed to a 'golden' colour.
A tooltip was added to the path.
The border colour of input fields was changed from white to gold.
The buttons at the bottom of the page are spread evenly.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4296
Refs: #6350

This was SVN commit r25976.
2021-10-28 06:14:17 +00:00
Angen 3adac574b7 Prevent division by 0 for experience bar
Required experience can be set to 0 initially and because entity is
upgrated after simulation starts, there was division by 0 in atlas for
such entities causing experience bar going to infinity.

Differential revision: D4317
Fixes: #6362
Patch by: @Langbart
Reviewed by: @Angen
This was SVN commit r25974.
2021-10-27 19:00:35 +00:00
vladislavbelov f543574d61 Removes lines drawing by direct GL calls from MiniMap.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4321
This was SVN commit r25973.
2021-10-27 06:42:54 +00:00
Freagarach a00c2674b5 Fix AI attacking some bridges.
Our bridges are nothing more than actors, so using one is correct.
We also delete the template files to prevent others from making the same
mistake (if someone encountered and fixed the bug in a mod they have
modified templates anyway).

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4297
Reviewed by: @bb
Comments by: @Angen
Fixes #6352

This was SVN commit r25972.
2021-10-26 16:34:44 +00:00
Angen b4fbbed379 There have been quite a bit of number of questions how to change scale of the gui, because this option is hidden from the user.
Use dropdown with values. Implement confirmation box with countdown to
revert scale change because buttons can get unable to click.

Differential revision: D3037
Comments by: @vladislavbelov, @Stan, @wraitii, @pieq, @sera
Tested by: @Langbart
This was SVN commit r25966.
2021-10-17 10:58:51 +00:00
bb 9c2a09067f Center generic/specific name if just one is given and hide the other
Patch By: LangBart
Comments By: Freagarach
Differential Revision: D4290
fixes #6341

This was SVN commit r25964.
2021-10-12 20:25:09 +00:00
vladislavbelov 31a6ffdd3a Removes mentions of legacy and unused GL calls, unifies AsFloatArray.
This was SVN commit r25961.
2021-10-11 12:39:01 +00:00
vladislavbelov 9ee448b377 Removes direct GL calls from Atlas bandbox drawing.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4300
This was SVN commit r25960.
2021-10-11 11:30:50 +00:00
Freagarach 75aa2091b7 Allow to push items to the front of the ProductionQueue.
Refs. #6104
Differential revision: https://code.wildfiregames.com/D4241
Comments by: @bb, @Langbart, @Stan
This was SVN commit r25958.
2021-10-10 19:07:42 +00:00
Angen b1a01005b8 [Petra] Remove global constant from queueplanBuilding.js
If someone would try to copy petra and use it as base of own ai, one
would not be able to run both ais at the same time and had to fix that
global constant anyway.

Differential revision: D4301
Reviewed by: @Freagarach
This was SVN commit r25957.
2021-10-10 19:02:21 +00:00
Freagarach 0c1297de3a Add two missing hotkeys to the intro.txt.
Also change the text a bit and add the formation selection feature to
the tips.

Refs. afd1eaee0d and a70a20fd42.

Differential revision: https://code.wildfiregames.com/D4284
Reviewed by: @bb
This was SVN commit r25956.
2021-10-10 18:39:20 +00:00
Angen 76228f107c Fix mention of 'farm' instead of 'field' in tutorial
It was reported that the word farm in the Introductory Tutorial is
incorrect and it should be replaced with Field.
Game refers to them as 'Field' so change is correct.

Differential revision: D4299
Patch by: @Langbart
Fixes: #6345

This was SVN commit r25955.
2021-10-10 12:49:17 +00:00
Angen aba5369140 Fix missing sell buttons
Introduced by b12e282277.

Reported on forum:
https://wildfiregames.com/forum/topic/56568-petra-having-problems-with-fishing-on-maps-with-water-available/?do=findComment&comment=454690

Differential revision: D4298
This was SVN commit r25954.
2021-10-10 09:32:09 +00:00
bb acc780bcbb Add accelerations in unit movement.
This helps preventing arrow dodging.

Differential Revision: D3200
Reviewed By: Freagarach
Comments By: wraitii, vladislav, Palaxin, Stan
refs: #5106

This was SVN commit r25953.
2021-10-09 21:31:11 +00:00
bb 4640a1fd36 Use only the Diplomacy Color of non-defeated players
Patch By: LangBart
Differential Revision: D4288
This was SVN commit r25951.
2021-10-06 20:33:12 +00:00
Freagarach 56f5cb9e62 Use transform for changing a formation template.
As noted on the forums by @Ceres
(https://wildfiregames.com/forum/topic/44848-proposals-for-formations/?do=findComment&comment=453840)
formations change orientation when changing their template.
This uses the transform helper to change the template of the formation,
which apparently also fixes the rotation issue.

With the notion that a different design of transform is preferential
(P46).

Differential revision: https://code.wildfiregames.com/D4272
Comments by: @Angen, @bb, @Ceres, @wraitii
Tested by: @Ceres
This was SVN commit r25949.
2021-10-03 06:26:28 +00:00
Freagarach 7670a1835b Fix (de)selection functions.
Deselecting a part of a formation didn't deselect the whole formation,
since the logic was done quite weirdly.
This clarifies and fixes that.

Reported by: @Langbart on D4282.
Differential revision: https://code.wildfiregames.com/D4285
Comments by: @Angen, @Langbart
Tested by: @Langbart
This was SVN commit r25948.
2021-10-03 06:09:01 +00:00
Freagarach 65cd29696d Don't stop gathering after starting by autocontinue when in a formation.
FinishOrder called SetWaitingOnController, although the order
(constructing) had pushed another order (gather).
This is done now by telling we finished the order only when really idle.

This seems to boil down to the question: If we issued an order to a
formation, and its members have wandered off (imagine attacking an
entity and our members have finished the initial target but attack
nearby ones) do we want the whole formation to continue attacking or
execute the next order.

Also fixes reforming whilst attacking when an attack order was issued by
the player.

Reported by: @Langbart at https://code.wildfiregames.com/D2175#182343
Differential revision: https://code.wildfiregames.com/D4282
Tested by: @Langbart
This was SVN commit r25947.
2021-10-03 05:59:54 +00:00
Freagarach 9f556c8b5a Check for visibility on finding treasures in UnitAI.
Fixes an infinite loop when the next treasure is outside LOS.

Differential revision: https://code.wildfiregames.com/D4286
Comments by: @Angen, @bb
Fixes: #6329

This was SVN commit r25946.
2021-10-03 05:43:56 +00:00
Freagarach 4597cecd50 Rename misnamed lastGatheredType in ResourceGatherer.
Since it stores not the last gathered, but the last tasked type.
As discussed on IRC
(http://irclogs.wildfiregames.com/%230ad-dev/2021-09-16-QuakeNet-%230ad-dev.log).

Differential revision: https://code.wildfiregames.com/D4277
Reviewed by: @bb
Comments by: @Angen, @Stan, @wraitii
This was SVN commit r25942.
2021-09-24 06:33:53 +00:00
Freagarach be8a2258ed Fix negative number of gatherers upon ownership changes.
Differential revision: https://code.wildfiregames.com/D4274
Reviewed by: @bb
Comments by: @Langbart, @Stan, @wraitii
Fixes: #6328

This was SVN commit r25941.
2021-09-24 06:27:18 +00:00
Freagarach 0541aa04ff Let fish and fruit regenerate slightly.
This adds minor regeneration to fish (when not gathered) and fruit
(always) as a nice extra for casual players.
The values are chosen to be low, as to not affect competitive play much.

Patch by: @Nescio
Differential revision: https://code.wildfiregames.com/D3868
Comments by: @chrstgtr, @marder, @Stan, @wraitii
This was SVN commit r25940.
2021-09-24 06:22:09 +00:00
Freagarach a70a20fd42 Select formations as a whole by default.
One can override this behaviour by using a hotkey when (de)selecting
entities.
The aim of this system is to reduce micromanagement a bit.

Differential revision: https://code.wildfiregames.com/D2175
Comments by: @Angen, @azayrahmad, @Langbart, @marder, @Stan,
@submariner, @wowgetoffyourcellphone, @wraitii
Refs. #4545

This was SVN commit r25939.
2021-09-24 06:11:10 +00:00
s0600204 7382a4885b Use pkg-config more extensively in build
We now make use of `pkg-config` on Linux, BSD, and macOS systems to find
the headers and libs for the following dependencies, where we weren't
previously:

* `enet`
* `fmt` (on macOS only)
* `gloox`'s dependencies on macOS:
    * `gnutls`
    * `gmp`
    * `nettle`
* `libcurl`
* `libogg`
* `libsodium`
* `miniupnpc` (on macOS only)
* `openAL`
* `openGL`
* `vorbis`
* `zlib`

Please see revision (https://code.wildfiregames.com/D3611) for details.

NOTE: All those building on macOS will need to rebuild their libraries
(`build-osx-libs.sh --force-rebuild`)


Tested by: Langbart (macOS), Freagarach (Ubuntu 18.04), Jenkins CI
(Debian Buster)
Comments by: Stan, wraitii, Freagarach
Differential Revision: https://code.wildfiregames.com/D3611
This was SVN commit r25938.
2021-09-23 16:10:25 +00:00
vladislavbelov 0e599a3176 Moves cursor to VideoMode to draw it via SDL.
It removes the software implementation intentionally. Because it
duplicates SDL functionality. But it might be added in future on demand.

Tested By: bb, Langbart
Differential Revision: https://code.wildfiregames.com/D4278
This was SVN commit r25936.
2021-09-21 22:44:46 +00:00
Freagarach b4f0464591 Fix some typos in the hotkey specs.
Fixes the concern raised at 09ad8bfbe5.

Differential revision: https://code.wildfiregames.com/D4268
Reviewed by: @bb
This was SVN commit r25935.
2021-09-21 05:44:07 +00:00
s0600204 31b70309b3 Debundle Valgrind and make it optional
If a *nix user wishes to build `pyrogenesis` with support for Valgrind
(such as
it is), then can do so by passing `--with-valgrind` to
`update-workspaces.sh`.
(They will need Valgrind installed and locateable via `pkg-config`.)


Reviewed By: sera, Stan
Fixes: #2904
Differential Revision: https://code.wildfiregames.com/D3646
This was SVN commit r25933.
2021-09-20 22:18:28 +00:00
vladislavbelov ce08f57f51 Removes ogl_tex_find function, which duplicates cache-like logic in TextureManager.
This was SVN commit r25932.
2021-09-20 16:39:51 +00:00
vladislavbelov 3e198f1463 Removes duplication of terrain alpha map creation in Renderer.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4269
This was SVN commit r25931.
2021-09-20 12:55:39 +00:00
bb b27f9901cc Add tooltip to playerFilter in lobby
Missed in 8459160038

This was SVN commit r25929.
2021-09-19 12:40:37 +00:00
wraitii b12e282277 Fix black buttons as observer on a GAIA market.
Reported by: langbart
Reviewed By: bb
Fixes #6219

Differential Revision: https://code.wildfiregames.com/D4164
This was SVN commit r25927.
2021-09-17 17:01:50 +00:00
wraitii dfeb29b82c Fix duplicate insertion error when detecting incompatible mods.
Since f1acd22455, mods are checked for compatibility. However, they can
incorrectly be checked & added to inompatible mods several time, leading
to a potential crash.

The new code can also be simplified slightly.

Reviewed By: Angen
Differential Revision: https://code.wildfiregames.com/D4276
This was SVN commit r25926.
2021-09-17 16:59:03 +00:00
bb ca4ee134fc Add tooltip to modmod explaining about loading order
Patch By: Ceres
Reviewed By: marder
Comments By: Stan
Differential Revision: D4252
This was SVN commit r25925.
2021-09-17 14:41:09 +00:00
Freagarach d59bb01a3c [PetraAI] - Disable some useless techs.
Don't try to research some techs which are useless when we have no ally.
Ideally we don't put these techs in the config as well, but check the
usefulness and/or dependencies.

Differential revision: https://code.wildfiregames.com/D4218
Reviewed by: @Angen
Comments by: @Stan
This was SVN commit r25923.
2021-09-15 16:10:40 +00:00
Freagarach 21be3944f4 Increase the spacing in the top panel and synchronize the colour in the tooltip for gatherers.
With the addition of the new resource icons for stone and metal, the
text was too close to the icon so the distance between the text and the
icon is increased.
Also, synchronises the colour of the number of gatherers in the top
panel with the colour in the tooltip explanation.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4032
Comments by: @Stan, @wraitii
This was SVN commit r25922.
2021-09-15 06:27:11 +00:00
Angen 2d1ed7ecd5 [AI] Remove code duplication from map component
Differential revision: D4235
This was SVN commit r25921.
2021-09-13 18:07:14 +00:00
Stan 64c53753de Improve desert_small's texture look using the new textures. Rename them to match the conventions
Fixes #6324

This was SVN commit r25918.
2021-09-12 22:38:32 +00:00
Freagarach 645e053fd2 Remove executable bit on some source files.
Reported by: Ralph Sennhauser
Fixes: #6325

This was SVN commit r25917.
2021-09-12 18:41:51 +00:00
Angen 2c87f6110e Fix translation of "%(unit)s can't be controlled'
Message is translated correctly.
Issue was sprintf replaced %(unit)s before message was going to be
translated so string was never found in dictionary.
Introduced in b97d251322

Differential revision: D4254
Patch by: @Ceres
Based on code by: @nwtour
Reviewer: @Angen

This was SVN commit r25916.
2021-09-11 09:23:56 +00:00
Angen 666097f96c Fix typo in validatemods introduced in 71121b8a89
Correct form is 'required' not 'require' causing to skip the check.

Differential revison: D4255
Patch by: @Langbart
This was SVN commit r25915.
2021-09-11 09:17:24 +00:00
Freagarach f2f412a6d2 Fix attacking miraged entities.
After 738b200dda, where the mirage should be queried in the
Start/StopAttacking functions.

Reported by: @bb
Differential revision: https://code.wildfiregames.com/D4267
Reviewed by: @bb
This was SVN commit r25914.
2021-09-11 04:47:25 +00:00
Freagarach e56d46548b Fix renaming fields losing the ability to be gathered.
Introduced in c888844b3a.
The problem was trying to set the amount to Infinity by substracting
Infinity from it.

Differential revision: https://code.wildfiregames.com/D4263
Tested by: @Langbart
Fixes: #6317

This was SVN commit r25912.
2021-09-10 06:22:43 +00:00
Freagarach e9f1b0799a Two fixes in PetraAI after the basesManager introduction.
Introduced in 4e664dd712.
The basesManager assumed at least one base (as was the case earlier).
`this` was used in a passed function, which therefore was undefined.

Differential revision: https://code.wildfiregames.com/D4253
Tested by: @marder
Comments by: @Langbart, @Stan
This was SVN commit r25911.
2021-09-10 06:19:45 +00:00
Freagarach 84aa4f8aeb More generalised testing in the PositionHelper.js.
Noted by: @vladislavbelov on D2940
Differential revision: https://code.wildfiregames.com/D3060
Reviewed by: @bb
This was SVN commit r25910.
2021-09-10 06:13:38 +00:00
Stan b6012ec606 Fix false positive; undefined variable in NetworkClient.cpp
refs #6321 for further cleanups.
Discussed with: @wraitii
Differential Revision: https://code.wildfiregames.com/D4258
This was SVN commit r25908.
2021-09-09 18:00:17 +00:00
Stan 6272ba2344 Remove Custom implementation of wrename on windows. 52baaa4bbd removed the other occurences.
Reviewed by: @wraitii
Differential Revision: https://code.wildfiregames.com/D4225
This was SVN commit r25907.
2021-09-09 17:53:17 +00:00
Stan d599a86b3e Disable the false positive "mod by 0" warning on Windows.
Differential Revision: https://code.wildfiregames.com/D4259
This was SVN commit r25906.
2021-09-09 17:49:07 +00:00
vladislavbelov 96708cc6a5 Adds header for forward declarations of CStr.
This was SVN commit r25905.
2021-09-09 17:39:08 +00:00
vladislavbelov a5c82a4ef6 Removes unused forward declarations of class and struct.
This was SVN commit r25903.
2021-09-08 19:43:01 +00:00
Freagarach 9552a9720c Add pushFront logic to the entity collection of the AI.
Not done in afd1eaee0d.
Also remove references to `queued` and `pushFront` in the `setStance`
functions, since they (currently) have no meaning.

Reported by: @bb
Differential revision: https://code.wildfiregames.com/D4261
Reviewed by: @bb
This was SVN commit r25902.
2021-09-08 06:05:22 +00:00
vladislavbelov b90066a69b Moves macro-defined methods of CStr to templates.
Differential Revision: https://code.wildfiregames.com/D4251
This was SVN commit r25900.
2021-09-07 21:01:34 +00:00
Freagarach 2fc07741e3 Fix two inaccuracies in the tutorial text.
Grapes -> berries. ae5ef6d898
South-West lake -> South.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4257
Reviewed by: @marder
Fixes: #6314

This was SVN commit r25899.
2021-09-07 14:49:53 +00:00
Stan 3fdbe3e8dc Make translation pulling parallel to reduce update time.
This was SVN commit r25897.
2021-09-05 17:39:51 +00:00
bb 480228f964 Add quadratic scaling function in rmgen library and use it for decorations.
Patch By: FeldeFeld
Reviewed By: Stan, smiley
Differential Revision: D4212
This was SVN commit r25894.
2021-09-04 09:48:06 +00:00
Freagarach bd24a30567 Move camera to holder when moving to grouped units.
Instead of doing nothing.

Differential revision: https://code.wildfiregames.com/D4242
Reviewed by: @bb
Fixes: #5863
Comment by: @Langbart
This was SVN commit r25893.
2021-09-04 05:25:42 +00:00
vladislavbelov e62dac7ad4 Removes unused macro from CStr, reduces macro dependency.
Tested By: Freagarach, Stan
Differential Revision: https://code.wildfiregames.com/D4245
This was SVN commit r25891.
2021-09-03 21:06:22 +00:00
vladislavbelov 3b417062bb Reduces the number of possible allocations for models with multiple UV sets during loading.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4247
This was SVN commit r25890.
2021-09-03 20:11:52 +00:00
Angen 18d9cadf7d Update map size in description panel
Since dc18d94030
Fixes: #6312

This was SVN commit r25889.
2021-09-03 18:31:31 +00:00
Freagarach 7f59f46988 Remove redundant z-value from MiniMap.xml.
Introduced in 6b903e4a92.

Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4248
This was SVN commit r25888.
2021-09-03 17:07:31 +00:00
vladislavbelov eaddc92816 Removes unused g_GameRestarted forgotten in 7ce4552f5e.
This was SVN commit r25885.
2021-09-01 19:48:09 +00:00
vladislavbelov 55f9d78e7e Moves tex tests to the related folder, was forgotten to move in 63086f4e26.
This was SVN commit r25884.
2021-09-01 19:27:34 +00:00
Angen ba7bde9f31 Remove passability magic numbers from terrain-analysis
Put passability values to prototype variables.
Code looks more readable.

Differential revision: D4236
Refs: #6256
Comments by: @Freagarach, @Stan
This was SVN commit r25883.
2021-09-01 16:30:31 +00:00
Freagarach 6b903e4a92 Display the number of idle workers in that respective button.
Patch by: @Langbart
Differential revision: https://code.wildfiregames.com/D4217
This was SVN commit r25882.
2021-09-01 16:28:28 +00:00
Angen 0c2c071aac Fix mod calling function from public
public mod does not have to be activated, moving compatibilityColor to
mod

Differential revision: D4237
Refs: #6294
Comments by: @bb
This was SVN commit r25881.
2021-09-01 16:24:12 +00:00
Angen 9b865f9b02 Update message for not supported commands
Tell user about help command, when requested command is not supported

Differential revision: D4229
Reviewed by: @Langbart, @Freagarach
Comments by: @bb
This was SVN commit r25880.
2021-08-30 18:35:56 +00:00
Freagarach 500ee2cf19 Actually implement the hotkey for the Call to Arms feature.
Refs. 4b1270f841.

Differential revision: https://code.wildfiregames.com/D4243
Reviewed by: @JCWasmx86
This was SVN commit r25879.
2021-08-30 14:58:28 +00:00
bb 380df3cf73 Enlarge "Watch Replay" button in summary screen for long translations
Patch By: Langbart
Reviewed By: marder
Differential Revision: D4168
refs #6024

This was SVN commit r25877.
2021-08-29 20:38:10 +00:00
Freagarach 4e664dd712 [PetraAI] - Manage bases in a separate BasesManager.
The HQ should only care about high-level stuff, hence something like
managing/looping individual bases is now done in a `BasesManager`,
similar to the `AttackManager`.

Differential revision: https://code.wildfiregames.com/D4192
Comments by: @Angen
Fixes: #6185

This was SVN commit r25876.
2021-08-29 06:47:05 +00:00
Freagarach 2c4427b488 A bit more refactoring in the ProductionQueue's item logic.
Remove some duplication.
Split tech and entity data.

Differential revision: https://code.wildfiregames.com/D4227
This was SVN commit r25875.
2021-08-29 05:38:23 +00:00
bb 8459160038 Lobby player search input
Based on patch By: ffffffff
Comments By: vladislavbelov
Reviewed By: Angen
Differential Revision: D285
This was SVN commit r25873.
2021-08-28 10:55:39 +00:00
bb 5b41b982f9 Give all tabs hotkeyTooltips
Removes the manual hotkey tooltips from summary and gamesetup in favor
of the general one.

Based on patch By: ffffffff
Reviewed By: Freagarach
Comments By: elexis, Stan
Differential Revision: D1264
This was SVN commit r25872.
2021-08-28 10:36:14 +00:00
bb 080cae147e Remove generated test files, stub_impl_hack on cleanup
At some point make clean should take care of this.

Proposed By: elexis in D256
Approach suggested by: leper
Reviewed By: Freagarach
Differential Revision: D4219
This was SVN commit r25871.
2021-08-28 10:21:03 +00:00
bb 7180e72d52 Reset the dust color at red sea and egypt 3v3 maps
Reported By: elexis
Reviewed By: Stan
Differential Revision: D4228
This was SVN commit r25870.
2021-08-28 10:16:20 +00:00
Freagarach dd90dbf8b5 Allow to enable Cartography at the start of a match.
Adds a checkbox to the game setup to allow players to have Cartography
autoresearched from the start of the match.
Refs.
https://wildfiregames.com/forum/topic/27265-theres-any-mod-so-you-can-see-what-your-allies-see-from-the-start.

Patch by: @Jammyjamjamman
Differential revision: https://code.wildfiregames.com/D4191
Reviewed by: @Angen
Comments by: @andy5995, @Langbart
This was SVN commit r25869.
2021-08-28 06:15:36 +00:00
Freagarach 4b1270f841 Implement "Call to the Arms"-button.
This allows a player to task entities to drop off their resources and
subsequently attack-move to a specified location with one button.

Patch by: @JCWasmx86
Icon by: @Stan
Differential revision: https://code.wildfiregames.com/D4149
Fixes: #1364
Comments by: @Langbart
Based on a patch by: @Freagarach (https://code.wildfiregames.com/D1868)
This was SVN commit r25868.
2021-08-28 05:52:37 +00:00
Angen 81ad9f746b Do not require restart when chaning Background pause option
Background pause does require a game restart to take effect.
Adding function to update it on runtime since only place where it is
used is in main.cpp.

Differential revision: D4181
Fixes: #6236
Tested by: @Langbart
This was SVN commit r25866.
2021-08-27 18:54:20 +00:00
Angen 9ff8b0758c [scripts]Update translation checks to check pluralised strings
Currently script checks only singular translations
Add branch to check plural strings as well

Differential revision: D4199
Refs: #4250
Comments by: @Stan
This was SVN commit r25865.
2021-08-27 18:48:41 +00:00
Angen 0eb9bc0762 [PetraAI] inline in DefenseManager
Differential revision: D4200
Reviewed by: @Freagarach
This was SVN commit r25864.
2021-08-27 18:43:50 +00:00
Angen f95835308a Fix wrong number in tooltip for phase requirements
Introduced in 29ab4b5af3
Reported
https://wildfiregames.com/forum/topic/41264-alpha-25-pre-releaserelease-candidate-build-testing/page/13/?tab=comments#comment-444019

Differential revision: D4202
Reviewed by: @Freagarach, @asterix
This was SVN commit r25863.
2021-08-27 18:40:47 +00:00
Angen 701ecb095e [AI] Simplify getMetadata in sharedscript
Metadata are stored in an object {} making check for key in the object
irrelevant, since not existing key will result in returning undefined
value.
On top of that, merging metadata existance if condition into returning
statement.

Differential revision: D4195
Reviewed by: @Freagarach
This was SVN commit r25862.
2021-08-27 18:35:20 +00:00
Stan 4a9bac2811 Bump version to alpha 26.
Last alpha 25 commit was [[SVN:25860]]

Accepted by: @Freagarach, @asterix
Comments by: @wraitii
Differential Revision: https://code.wildfiregames.com/D4215
This was SVN commit r25861.
2021-08-27 16:32:34 +00:00
Stan af4896b4c5 Set matchID at the start of a new match. Fix ratings being broken.
Refs: dc18d94030

Patch by: @user1
Discussed with: @bb
Reviewed by: @wraitii
This was SVN commit r25859.
2021-08-25 11:05:53 +00:00
Stan 84c2dc3f15 Add seagulls on top of fish to make them easier to spot.
This was SVN commit r25857.
2021-08-22 17:11:55 +00:00
Stan 54b832b6a6 Make big grass 25% smaller to improve visibility a bit on some maps. Ideally Random maps like wildlake would not put some next to the CCs.
This was SVN commit r25856.
2021-08-22 17:10:56 +00:00
Stan 26bfd92dbd Fix nopch build. broken in 52baaa4bbd.
This was SVN commit r25855.
2021-08-22 13:20:41 +00:00
Angen 52baaa4bbd Fix updating existing mods
Replace wrename, that fails when mod exists already with RenameFile by
@Stan
Check if mod was actually installed when downloading it
error if mod cannot be coppied into modTemp

Differential revision: D4222
This was SVN commit r25854.
2021-08-22 11:35:34 +00:00
Angen 83bb6f3ed5 Fix downloanded mods not showing in list until restart
since 498f0d420b
While at it, remove not used variable after 6400a4a0c5
also fix non visual replay broken in 6400a4a0c5

Differential revision: D4220
Tested by: @Stan, @Langbart
Fixes: #6288

This was SVN commit r25853.
2021-08-22 09:54:16 +00:00
Freagarach 2cf908a974 Fix game setup lobby player stats stanza.
Patch by: @nani
Differential revision: https://code.wildfiregames.com/D4213
Reviewed by: @Angen
This was SVN commit r25851.
2021-08-19 17:01:19 +00:00
Angen 6400a4a0c5 Update Available mods when installing them
Differential revision: D4211
Since 498f0d420b available mods where cached and not updated when new
where installed.
Fixing above.

This was SVN commit r25850.
2021-08-17 17:32:10 +00:00
Angen 8f5b5670ff Fix gui objects failing on undefined in modmod
Differential revision: D4209
Since some revision wraitii will probbaly know, I am not going to look
for it, guiobjects require exact data type so casting does not work when
it is not done beforehand.
Error reported by Stan.
Now installing pyromod should not trigger errors.

This was SVN commit r25849.
2021-08-17 17:29:54 +00:00
18835 changed files with 3313770 additions and 779324 deletions
-5
View File
@@ -1,5 +0,0 @@
{
"phabricator.uri" : "https://code.wildfiregames.com/",
"repository.callsign" : "P",
"load": ["build/arclint/pyrolint"]
}
-39
View File
@@ -1,39 +0,0 @@
{
"exclude": [
"(^binaries/system/)",
"(^build/premake/premake5/)",
"(^source/third_party/)",
"(test_[^.]+.cpp$)",
"(^libraries/)"
],
"linters": {
"text": {
"type": "text",
"severity": {
"1": "disabled",
"2": "disabled",
"3": "disabled",
"5": "disabled"
}
},
"licence-year": {
"type": "licence-year"
},
"json": {
"type": "json",
"include": "/\\.json$/"
},
"eslint": {
"type": "eslint",
"bin": ["eslint", "build\\arclint\\dummies\\eslint.bat", "build/arclint/dummies/eslint.php"],
"include": "/\\.js$/",
"config": "build/arclint/configs/eslintrc.json"
},
"cppcheck": {
"type": "cppcheck",
"bin": ["cppcheck", "build\\arclint\\dummies\\cppcheck.bat", "build/arclint/dummies/cppcheck.php"],
"include": "/\\.(h|cpp)$/",
"flags": ["--max-configs=40", "--language=c++", "--std=c++17", "-Isource/", "--suppress=unknownMacro"]
}
}
}
+37
View File
@@ -0,0 +1,37 @@
root = true
[*]
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
[*.Dockerfile]
indent_size = 4
indent_style = space
[*.{js,mjs}]
indent_style = tab
[*.py]
indent_size = 4
indent_style = space
[*.sh]
indent_style = tab
function_next_line = true
simplify = true
switch_case_indent = true
[*.{yaml,yml}]
indent_style = space
indent_size = 2
[build/premake/premake5/**]
ignore = true
[*.Jenkinsfile]
indent_size = 4
# Jenkins recommends using spaces for indentation. See:
# https://wiki.jenkins.io/display/JENKINS/Code+Style+Guidelines
# Additionally, our linter npm-groovy-lint does not support tabs.
indent_style = space
+1 -1
View File
@@ -3,9 +3,9 @@
*.hmap filter=lfs diff=lfs merge=lfs -text
*.icns filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.otf filter=lfs diff=lfs merge=lfs -text
*.pmd filter=lfs diff=lfs merge=lfs -text
*.pmp filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psa filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
binaries/data/mods/public/maps/**/*.xml filter=lfs diff=lfs merge=lfs -text
+46
View File
@@ -0,0 +1,46 @@
## == Project configuration
## Gitea configuration
\\.gitea/.* @Stan @Itms
## Linting
\\.pre-commit-config\\.yaml @Dunedan
ruff\\.toml @Dunedan
## == Build & Libraries
(build|libraries)/.* @Itms @Stan @sera
## == Engine
source/(lib|maths|ps)/.* @vladislavbelov @sera
## GUI
source/gui/.* @vladislavbelov @trompetin17
## Rendering
source/(collada|graphics|renderer)/.* @vladislavbelov
## Multiplayer
source/(lobby|network)/.* @Phosit
## Simulation
source/simulation2/.* @wraitii @Itms @Phosit @sera
## == Tools
source/tools/.*\\.py @Dunedan
## Atlas
source/tools/atlas/.* @vladislavbelov @trompetin17
## SPIR-V
source/tools/spirv/.* @vladislavbelov
## == Scripts
## GUI
binaries/data/mods/public/gui/.* @Vantha @wraitii
## AI
binaries/data/mods/public/simulation/ai/.* @Phosit
## Balancing
binaries/data/mods/public/simulation/(data|templates)/.* @real_tabasco_sauce
## == Assets
## Art
binaries/data/mods/public/art/.* @wowgetoffyourcellphone @Stan
binaries/data/mods/(mod|public)/art/materials/.* @vladislavbelov
## Sound
binaries/data/mods/public/audio/.* @Samulis @Stan
## Maps
binaries/data/mods/public/maps/.* @Phosit @real_tabasco_sauce
## Shaders
binaries/data/mods/(mod|public)/shaders/.* @vladislavbelov
+7
View File
@@ -0,0 +1,7 @@
---
blank_issues_enabled: false
contact_links:
- name: Help & Feedback
url: https://wildfiregames.com/forum/forum/145-help-amp-feedback/
about: >
If you need help or have feedback, please open a thread in the forums.
+41
View File
@@ -0,0 +1,41 @@
---
name: Defect
about: >
Report an issue with the game. Errors, crashes, unexpected behaviour should be reported this way.
labels:
- "Type/Defect"
- "Priority/3: Should Have"
body:
- type: markdown
attributes:
value: >
**Please select a Theme label that corresponds best to your issue. You can also adjust the
Priority label.**
- type: checkboxes
attributes:
label: Reporting Errors
description: >
For crashes and errors, you must read the [ReportingErrors](0ad/0ad/wiki/ReportingErrors)
page. In particular, if you are reporting a crash, you must upload crashlog files in the
Description field below.
options:
- label: I have read the ReportingErrors wiki page.
required: true
visible: [form]
visible: [form]
- type: textarea
attributes:
label: Description
validations:
required: true
- type: input
attributes:
label: Version
description: >
Type the version of the game you are running (displayed at the bottom of the main menu, or
the Alpha version, or "nightly-build").
validations:
required: true
+27
View File
@@ -0,0 +1,27 @@
---
name: Enhancement
about: Ask us for an improvement you wish to see in the game.
labels:
- "Type/Enhancement"
- "Priority/3: Should Have"
body:
- type: markdown
attributes:
value: >
**Please select a Theme label that corresponds best to your issue. You can also adjust the
Priority label.**
- type: textarea
attributes:
label: Description
validations:
required: true
- type: markdown
attributes:
value: >
**Important Note:** Gameplay and balance changes require preliminary discussion, and
consensus must be reached with the Balancing team.<br>
If this is a gameplay change, please add the *Needs Design Input* label, and open a forum
topic for discussing your proposal.<br>
You should link that forum topic in the ticket Description above.
+110
View File
@@ -0,0 +1,110 @@
---
name: "Release Process Task"
about: "This is a special issue template for planning releases. DO NOT USE it for normal issue reports."
title: "[RELEASE PROCESS] Release XX"
labels:
- "Type/Task"
- "Theme/Build & Packages"
---
*Please fill out relevant information in the next line, set Milestone to the relevant Release, then delete this line.*
# Release XX Process
This task tracks the progress of the next release. **Please do not report issues with the nightly build or with release candidates here:** instead create a new issue and set its Milestone to the relevant release.
All details about each step are documented in [ReleaseProcess](wiki/ReleaseProcess).
After performing steps, post a comment on the task, so that it appears in the activity feed and notifies followers.
**Release Manager:** @
**Translations Officer:** @
## Outstanding Issues
**All the following issues must be fixed in `main` (which closes the issue) and then cherry-picked to the release branch (after that, you can tick the checkbox below).**
Here are the Release Blocking issues currently delaying the release:
- [x] None currently
## Progress Tracking
### Release Branching
- [ ] [Test the tutorials](wiki/ReleaseProcess#test-the-tutorials)
- [ ] [Organize a first staff match](wiki/ReleaseProcess#organize-a-first-staff-match)
- [ ] [Prepare for branching](wiki/ReleaseProcess#prepare-for-branching)
- [ ] [Create a `release-XX` branch](wiki/ReleaseProcess#create-a-release-xx-branch)
- [ ] [Adapt Jenkins for the release](wiki/ReleaseProcess#adapt-jenkins-for-the-release)
- [ ] [Announce the start of the process](wiki/ReleaseProcess#announce-the-start-of-the-process)
- [ ] [Prepare next multiplayer lobby in `main`](wiki/ReleaseProcess#prepare-next-multiplayer-lobby-in-main)
- [ ] [Generate next signing key for mods in `main`](wiki/ReleaseProcess#generate-next-signing-key-for-mods-in-main)
- [ ] [Update the Changelog](wiki/ReleaseProcess#update-the-changelog)
- [ ] [Create the next Changelog and Porting guide](wiki/ReleaseProcess#update-the-changelog)
- [ ] [Start writing release announcement](wiki/ReleaseProcess#start-writing-release-announcement)
- [ ] [Start creating the release video](wiki/ReleaseProcess#start-creating-the-release-video)
### String Freeze
- [ ] [Cleanup empty languages](wiki/ReleaseProcess#cleanup-empty-languages)
- [ ] [Announce string freeze](wiki/ReleaseProcess#announce-string-freeze)
- [ ] [Long strings check](wiki/ReleaseProcess#long-strings-check)
### Commit Freeze
- [ ] [Translation check](wiki/ReleaseProcess#translation-check)
- [ ] [Decide on included translations](wiki/ReleaseProcess#decide-on-included-translations)
- [ ] [Organize another staff match](wiki/ReleaseProcess#organize-another-staff-match)
---
Before moving on with Full Freeze, make sure that:
- [ ] At least 10 days have passed since the string freeze announcement
- [ ] Only this ticket remains in the Milestone
- [ ] All previous checkboxes are ticked
---
### Full Freeze
- [ ] [Update appdata.xml](wiki/ReleaseProcess#update-appdataxml)
- [ ] [Freeze Jenkins](wiki/ReleaseProcess#freeze-jenkins)
- [ ] [Confirm full freeze](wiki/ReleaseProcess#confirm-full-freeze)
- [ ] [Announce Release Candidates](wiki/ReleaseProcess#announce-release-candidates)
- [ ] Release Testing: [link to RC]( )
---
When RCs are released, a planned release date is decided with the team and published here. This improves internal coordination and allows us to release announcements on all platforms at the same time.
---
Release Preparation: Please list here all the changes to BuildInstructions and System requirements that will have to be published on release day.
- [ ] Linux changes: TBD
- [ ] Windows changes : TBD
- [ ] macOS changes: TBD
- [ ] BSD changes: TBD
---
### Eve of Release
- [ ] [Schedule the video publication](wiki/ReleaseProcess#schedule-the-video-publication)
### Release
- [ ] [Tag the release commit](wiki/ReleaseProcess#tag-the-release-commit)
- [ ] [Create torrents and checksum files](wiki/ReleaseProcess#create-torrents-and-checksum-files)
- [ ] [Update website](wiki/ReleaseProcess#update-website)
- [ ] [Update BuildInstructions](wiki/ReleaseProcess#update-buildinstructions)
- [ ] [Upload to Sourceforge](wiki/ReleaseProcess#upload-to-sourceforge)
- [ ] [Move the lobby](wiki/ReleaseProcess#move-the-lobby)
- [ ] [Publish announcement](wiki/ReleaseProcess#publish-announcement)
- [ ] [Notify packagers](wiki/ReleaseProcess#notify-packagers)
- [ ] [Post-Release](wiki/ReleaseProcess#post-release)
+76
View File
@@ -0,0 +1,76 @@
---
name: checkrefs
on:
- push
- pull_request
env:
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.after }}
jobs:
lfscheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch the base branch
run: git fetch origin ${{ env.BASE_SHA }}
- name: Check that LFS files are correctly stored as pointers
run: git-lfs fsck --pointers ${{ env.BASE_SHA }}..${{ env.HEAD_SHA }}
checkrefs:
runs-on: ubuntu-latest
env:
GIT_LFS_SKIP_SMUDGE: "1"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Add remote fork origin for LFS
run: |
PR_REPO="${{ gitea.event.pull_request.head.repo.full_name || gitea.repository }}"
git remote add ${{ gitea.actor }} https://gitea.wildfiregames.com/${PR_REPO}.git
- name: Workaround for authentication problem with LFS
# https://gitea.com/gitea/act_runner/issues/164
run: |
git config --local \
http.${{ gitea.server_url }}/${{ gitea.repository }}.git/info/lfs/objects/.extraheader ''
PR_REPO="${{ gitea.event.pull_request.head.repo.full_name || gitea.repository }}"
EXTRAHEADER="$(git config --get --local http.${{ gitea.server_url }}/.extraheader)"
git config --local \
http.${{ gitea.server_url }}/${PR_REPO}.git/info/lfs/objects/batch.extraheader \
'${EXTRAHEADER}'
git config --local \
http.${{ gitea.server_url }}/${PR_REPO}.git/info/lfs/objects/.extraheader ''
- name: Download necessary LFS assets
shell: sh {0}
run: |
git lfs pull -I binaries/data/mods/public/art/meshes,binaries/data/mods/public/maps
ORIGIN_LFS_PULL_RESULT=$?
git lfs pull ${{ gitea.actor }} \
-I binaries/data/mods/public/art/meshes,binaries/data/mods/public/maps
FORK_LFS_PULL_RESULT=$?
PR_REPO="${{ gitea.event.pull_request.head.repo.full_name || gitea.repository }}"
if [ "$ORIGIN_LFS_PULL_RESULT" = "0" ]; then
echo "SUCCESS: Found all LFS assets in the LFS storage of ${{ gitea.repository }}."
elif [ "$FORK_LFS_PULL_RESULT" = "0" ]; then
echo "SUCCESS: Found all LFS assets in the LFS storage of ${PR_REPO}."
else
echo "ERROR: Couldn't find all LFS assets in either of the LFS storages."
false;
fi
- name: Install lxml
run: pip3 install lxml
- name: Install collada
run: pip3 install "pycollada>=0.9"
- name: Check for missing references
run: |
./source/tools/entity/checkrefs.py \
--check-map-xml \
--validate-templates \
--validate-actors \
--validate-meshes
+83
View File
@@ -0,0 +1,83 @@
---
# yamllint disable rule:line-length
name: lint
on:
- push
- pull_request
env:
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }}
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.after }}
jobs:
cppcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# cache only works for items in workspace, so configure apt to allow for caching.
- name: Setup apt cache locations
id: apt-cache-location
run: |
mkdir -p apt-cache/archives/partial
mkdir -p apt-lists/partial
mkdir -p apt-lists/auxfiles
sudo echo "Dir::Cache \"$(realpath apt-cache)\";" >/etc/apt/apt.conf.d/99cachelocation
sudo echo "Dir::State::lists \"$(realpath apt-lists)\";" >>/etc/apt/apt.conf.d/99cachelocation
- name: Cache apt pkg db and and deb files
id: apt-cache
uses: actions/cache@v4
with:
path: |
apt-cache
apt-lists
key: ${{ runner.os }}-apt-cache-4
- name: Update package db
if: steps.apt-cache.outputs.cache-hit != 'true'
run: sudo apt-get update
- name: Install cppcheck
run: sudo apt-get --assume-yes --no-install-recommends install cppcheck
- name: Fetch the base branch, so we can use `git diff`
run: git fetch origin ${{ env.BASE_SHA }}
- name: Check for issues
run: ./source/tools/lint/cppcheck/cppcheck.sh --diff ${{ env.BASE_SHA }}
copyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 100
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Fetch the base branch, so we can use `git diff`
run: git fetch origin ${{ env.BASE_SHA }}
- name: Check for issues with copyright
run: ./source/tools/lint/copyright/copyright.sh --from ${{ env.BASE_SHA }} --to ${{ env.HEAD_SHA }}
jenkinsfiles:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Fetch the base branch, so we can use `git diff`
run: git fetch origin ${{ env.BASE_SHA }}
- name: Install npm-groovy-lint
run: npm install -g npm-groovy-lint
- name: Check for issues with jenkins files
run: ./source/tools/lint/jenkinsfiles/jenkinsfiles.sh --from ${{ env.BASE_SHA }} --to ${{ env.HEAD_SHA }}
+24
View File
@@ -0,0 +1,24 @@
---
name: pre-commit
on:
- push
- pull_request
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- id: restore-pip-cache
uses: actions/cache/restore@v4
with:
key: pip-cache-v1-${{ github.workflow }}
path: ~/.cache/pip
- uses: pre-commit/action@v3.0.1
- uses: actions/cache/save@v4
if: steps.restore-pip-cache.outcome == 'success'
with:
key: pip-cache-v1-${{ github.workflow }}
path: ~/.cache/pip
+108
View File
@@ -0,0 +1,108 @@
# Built and prebuilt binaries
binaries/system/*
!binaries/system/*.bat
!binaries/system/readme.txt
# Workspaces
build/workspaces/*
!build/workspaces/clean-workspaces.sh
!build/workspaces/update-workspaces.bat
!build/workspaces/update-workspaces.sh
# Libraries
libraries/macos
libraries/win32
libraries/win64
libraries/source/cpp-httplib/*
libraries/source/cxxtest-4.4/*
libraries/source/fcollada/*
libraries/source/nvtt/*
libraries/source/premake-core/*
libraries/source/spidermonkey/*
!libraries/source/spidermonkey/mozconfig
libraries/source/spirv-reflect/*
!libraries/source/**/build.sh
!libraries/source/**/patches/
# Tools
appimage-build/
archives/
build/bin/
source/tools/spirv/rules.json
# Linting
cppcheck-error.log
copyright-check-error.log
# Files generated by running premake5
build/premake/.gccmachine.tmp
build/premake/.gccver.tmp
# Docs build folder
docs/doxygen/output/
# Build files (cpp)
*.a
*.dylib
*.dSYM
*.exp
*.exe
*.ilk
*.lib
*.pdb
*.so
*.so.*
# Build files (tools)
*.pyc
*.pyo
__pycache__/
# Build files (libs)
*.o
*.lo
*.la
# Translation files
binaries/data/mods/public/gui/credits/texts/translators.json
*.po
*.pot
# Packaged mods and tarballs
*.AppImage
*.pyromod
*.zip
*.tar
*.tar.bz2
*.tar.gz
*.tar.xz
# Art source files
*.blend
*.obj
*.psd
*.raw
# Art unsupported by the engine
binaries/data/mods/**/*.bmp
binaries/data/mods/**/*.jpg
# Vulkan SPIR-V shaders
binaries/data/mods/*/shaders/spirv
# eslint
node_modules
package-lock.json
# Windows specific data
desktop.ini
Thumbs.db
# macOS specific data
.DS_Store
# IDE files
/.vs/
/.vscode/
/.idea/
+15
View File
@@ -0,0 +1,15 @@
{
"extends": "recommended-jenkinsfile",
"rules": {
"formatting.LineLength": {
"length": 300,
"severity": "info"
},
"size.NestedBlockDepth": {
"maxNestedBlockDepth": 15
},
"formatting.DuplicateNumberLiteral": "off",
"formatting.DuplicateMapLiteral": "off",
"formatting.DuplicateStringLiteral": "off"
}
}
+8
View File
@@ -0,0 +1,8 @@
# If you are using ssh [1] to push and want to use it to obtain a token instead
# of using basic auth override this with:
# git config lfs.url git@gitea.wildfiregames.com:0ad/0ad.git
#
# [1] https://github.com/git-lfs/git-lfs/blob/main/docs/api/server-discovery.md#ssh
[lfs]
url = https://gitea.wildfiregames.com/0ad/0ad.git/info/lfs
+8
View File
@@ -0,0 +1,8 @@
---
commands-show-output: false
default: true
no-bare-urls: false
line-length:
line_length: 100
fenced-code-language: false
no-space-in-emphasis: false
+94
View File
@@ -0,0 +1,94 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-added-large-files
args:
- --maxkb=1024
- --enforce-all
exclude: (^binaries/data/mods/public/maps/.*\.xml$)
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-json
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: check-xml
exclude: |
(?x)(
^binaries/data/mods/_test.xero/a/b/test1.xml|
^binaries/data/mods/_test.xero/test1.xml|
^binaries/data/mods/_test.sim/simulation/templates.illformed.xml|
^binaries/data/mods/public/maps/.*\.xml
)
- id: trailing-whitespace
exclude: |
(?x)(
^libraries/|
^source/third_party/glad/src|
^source/tools/replayprofile/jquery|
^source/tools/templatesanalyzer/tablefilter|
\.dae|
\.patch$
)
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.12.9
hooks:
- id: ruff-check
args:
- --output-format=full
exclude: ^source/tools/webservices/
- id: ruff-format
args:
- --diff
exclude: ^source/tools/webservices/
- repo: local
hooks:
- id: non-breaking-space-in-0ad
name: check for non-breaking space in "0 A.D."
description: |
Verify a non-breaking spaces is used in the project name ("0 A.D").
entry: '0(?!(\xc2\xa0|\\xa0)A\.D\.)\s?(?<!\\xa0)(A|a)\.(D|d)\.?'
language: pygrep
types: [text]
files: ^binaries/
exclude: (^binaries/data/mods/(mod|public)/art/.*\.xml|\.dae$)
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
hooks:
- id: shfmt
args:
- --diff
stages: [pre-commit]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
hooks:
- id: markdownlint
language_version: 22.14.0
exclude: |
(?x)(
^.gitea/ISSUE_TEMPLATE/|
^source/third_party/
)
- repo: https://github.com/adrienverge/yamllint
rev: v1.37.1
hooks:
- id: yamllint
args:
- --strict
- repo: https://github.com/eslint/eslint
rev: v9.39.2
hooks:
- id: eslint
language_version: 22.14.0
additional_dependencies:
- "@stylistic/eslint-plugin@5.6.1"
args:
- --max-warnings=0
- --no-warn-ignored
+2
View File
@@ -0,0 +1,2 @@
external-sources=true
source-path=source/tools
+8
View File
@@ -0,0 +1,8 @@
---
# https://yamllint.readthedocs.io/en/stable/index.html
extends: default
rules:
line-length:
max: 100
truthy:
check-keys: false
+101
View File
@@ -0,0 +1,101 @@
# 0 A.D. Licensing Details
0 A.D. and the Pyrogenesis engine are released as free and open source: you can freely use, copy,
modify and distribute the game's source code and data files, as long as you include
attribution to Wildfire Games and let anyone freely modify and distribute any
of your own modifications to the game's files.
The distribution includes several different types of files, and a number of
third-party components. The details are described here, based on the directory
structure. For any file, see the longest path name below which is a prefix of
the file's path.
If you have a question about, or can provide any information on missing or wrong licensing details,
please inform Wildfire Games at webmaster at wildfiregames dot com.
## Other Licenses based on the Directory Structure
- binaries/data/
- GPL version 2 (or later) - see license_gpl-2.0.txt
- binaries/data/mods/*/art
- binaries/data/mods/*/audio
- Creative Commons Attribution-Share Alike 3.0 - see
http://creativecommons.org/licenses/by-sa/3.0/
and also see LICENSE.txt within those directories
- binaries/data/mods/*/maps/
- see LICENSE.txt within those directories
- binaries/data/mods/mod/shaders/glsl/fxaa.fs
- BSD
- binaries/data/mods/mod/shaders/glsl/cas.fs
- MIT
- binaries/system/
- Various (unspecified)
- binaries/system/dbghelp.dll
- Proprietary - see license_dbghelp.txt for restrictions you must agree to
before distributing this particular file
- build/
- Various (unspecified)
- build/arclint/
- GPL version 2 (or later) - see license_gpl-2.0.txt
- build/arclint/pyrolint/
- Apache version 2 - see license_apache2.txt within that directory
- build/premake/premake5/
- BSD
- build/premake/*.lua
- MIT - see license_mit.txt
- docs/
- Various (unspecified)
- libraries/
- Various - see LICENSE.txt within that directory
- source/
- GPL version 2 (or later) - see license_gpl-2.0.txt
- source/lib/
- MIT - see license_mit.txt
- source/scriptinterface/third_party/
- MPL 2.0
- source/third_party/encryption/
- GPL version 2 (or later)
- ISC (pkcs5_pbkdf2.cpp)
- MIT (pkcs5_pbkdf2.h) - see license_mit.txt
- source/third-party/jsonspirit/
- MIT - see license_mit.txt
- source/third_party/mikktspace/
- zlib
- source/third_party/tinygettext/
- zlib
- source/third-party/vma/
- MIT - see LICENSE.txt within that directory
- source/tools/
- Various - see LICENSE.txt within that directory
- source/tools/atlas/
- GPL version 2 (or later) - see license_gpl-2.0.txt
- binaries/data/mods/public/gui/prelobby/common/terms/
binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt
binaries/data/mods/mod/gui/modio/Disclaimer.txt
- Redistributing modified Terms and Conditions of online services may be within the licensing,
but may not change the legality or enforceability of the terms of the service provider.
It may be against the terms of the service provider to use online services with modified terms.
-100
View File
@@ -1,100 +0,0 @@
0 A.D. Licensing Details
==========================
0 A.D. is released as open source: you can freely use, copy, modify and
distribute the game's source code and data files, as long as you include
attribution to Wildfire Games and let anyone freely modify and distribute any
of your own modifications to the game's files.
The distribution includes several different types of files, and a number of
third-party components. The details are described here, based on the directory
structure. For any file, see the longest path name below which is a prefix of
the file's path.
Some files don't yet have licensing details specified - if you care about any
in particular, let us know and we can try to clarify it.
/binaries/data
GPL version 2 (or later) - see license_gpl-2.0.txt
/binaries/data/mods/*/art
/binaries/data/mods/*/audio
Creative Commons Attribution-Share Alike 3.0 - see
http://creativecommons.org/licenses/by-sa/3.0/
and also see LICENSE.txt within those directories
/binaries/data/mods/*/maps/
see LICENSE.txt within those directories
/binaries/data/mods/public/shaders/glsl/fxaa.fs
BSD
/binaries/data/mods/public/shaders/glsl/cas.fs
MIT
/binaries/system
Various (unspecified)
/binaries/system/dbghelp.dll
Proprietary - see license_dbghelp.txt for restrictions you must agree to
before distributing this particular file
/build
Various (unspecified)
/build/arclint
GPL version 2 (or later) - see license_gpl-2.0.txt
/build/arclint/pyrolint
Apache version 2 - see license_apache2.txt within that directory
/build/premake/premake5
BSD
/build/premake/*.lua
MIT - see license_mit.txt
/docs
Various (unspecified)
/libraries
Various - see LICENSE.txt within that directory
/source
GPL version 2 (or later) - see license_gpl-2.0.txt
/source/lib
MIT - see license_mit.txt
/source/scriptinterface/third_party
MPL 2.0
/source/third_party/encryption
GPL version 2 (or later)
ISC (pkcs5_pbkdf2.cpp)
MIT (pkcs5_pbkdf2.h) - see license_mit.txt
/source/third-party/jsonspirit
MIT - see license_mit.txt
/source/third_party/mikktspace
zlib
/source/third_party/mongoose
MIT - see license_mit.txt
/source/third_party/tinygettext
zlib
/source/tools
Various - see LICENSE.txt within that directory
/source/tools/atlas
GPL version 2 (or later) - see license_gpl-2.0.txt
/binaries/data/mods/public/gui/prelobby/common/terms
/binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt
/binaries/data/mods/mod/gui/modio/Disclaimer.txt
Redistributing modified Terms and Conditions of online services may be within the licensing,
but may not change the legality or enforceability of the terms of the service provider.
It may be against the terms of the service provider to use online services with modified terms.
+66
View File
@@ -0,0 +1,66 @@
# 0 A.D. Introductory Information
[![FreeBSD Build Status](https://jenkins.wildfiregames.com/job/0ad-freebsd/job/main/badge/icon?subject=FreeBSD&style=plastic)](https://jenkins.wildfiregames.com/job/0ad-freebsd/job/main/)
[![Linux Build Status](https://jenkins.wildfiregames.com/job/0ad-linux/job/main/badge/icon?subject=Linux&style=plastic)](https://jenkins.wildfiregames.com/job/0ad-linux/job/main/)
[![macOS Build Status](https://jenkins.wildfiregames.com/job/0ad-macos/job/main/badge/icon?subject=macOS&style=plastic)](https://jenkins.wildfiregames.com/job/0ad-macos/job/main/)
[![Windows Build Status](https://jenkins.wildfiregames.com/job/0ad-windows/job/main/badge/icon?subject=Windows&style=plastic)](https://jenkins.wildfiregames.com/job/0ad-windows/job/main/)
[![Game References Checks Status](https://gitea.wildfiregames.com/0ad/0ad/actions/workflows/checkrefs.yml/badge.svg?branch=main)](https://gitea.wildfiregames.com/0ad/0ad/actions?workflow=checkrefs.yml)
[![Pre-commit Checks Status](https://gitea.wildfiregames.com/0ad/0ad/actions/workflows/pre-commit.yml/badge.svg?branch=main)](https://gitea.wildfiregames.com/0ad/0ad/actions?workflow=pre-commit.yml)
[![Bi-Weekly Bundles Status](https://jenkins.wildfiregames.com/job/0ad-bundles/badge/icon?subject=Bi-Weekly%20Bundles&style=plastic)](https://jenkins.wildfiregames.com/job/0ad-bundles)
[![Technical Docs Status](https://jenkins.wildfiregames.com/job/0ad-technical-docs/badge/icon?subject=Technical%20Docs&style=plastic)](https://docs.wildfiregames.com/)
[![Nightly Build Status](https://jenkins.wildfiregames.com/job/0ad-nightly/badge/icon?subject=Nightly%20Build&style=plastic)](https://gitea.wildfiregames.com/0ad/0ad/wiki/NightlyBuild)
0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform
real-time strategy game of ancient warfare.
This is currently an incomplete, under-development version of the game.
We're always interested in getting more people involved, to help bring the game
towards completion and to share the interesting experience of developing a
project of this scope.
There are several ways to contact us and find more information:
- Web site: https://play0ad.com/
- Forums: https://www.wildfiregames.com/forum/
- Gitea (development info, bug tracker): https://gitea.wildfiregames.com/
- IRC: #0ad on irc.quakenet.org
## Running precompiled binaries on Windows
A precompiled, ready-to-play development version of the game is available from
a checkout of the `nightly-build` SVN repository. If you are using the git
repository, you have to follow [the steps below](#compiling-the-game-from-source-code).
In a checkout of the `nightly-build` SVN repository, open the "binaries\system" folder.
- To launch the game: Run pyrogenesis.exe
- To launch the map editor: Run Atlas.bat or "pyrogenesis.exe -editor"
## Compiling the game from source code
The instructions for compiling the game on Windows, Linux and OS X are at
[BuildInstructions](https://gitea.wildfiregames.com/0ad/0ad/wiki/BuildInstructions).
## Reporting problems
Bugs should be reported on Gitea. For information on reporting problems
and finding logs, see [ReportingErrors](https://gitea.wildfiregames.com/0ad/0ad/wiki/ReportingErrors).
## Contributing Code
If you want to help out programming for the game, have a look at
[GettingStartedProgrammers](https://gitea.wildfiregames.com/0ad/0ad/wiki/GettingStartedProgrammers)
or contact us on #0ad-dev on irc.quakenet.org
## Contributing Artwork
If you want to make artwork for the game, have a look at
[For Artists](https://gitea.wildfiregames.com/0ad/0ad/wiki#for-artists)
or visit [the forums](https://www.wildfiregames.com/forum).
## Translating
You can help translating the game at https://www.transifex.com/projects/p/0ad
for more information, see [Localization](https://gitea.wildfiregames.com/0ad/0ad/wiki/Localization)
-73
View File
@@ -1,73 +0,0 @@
0 A.D. Introductory Information
=================================
0 A.D. (pronounced "zero ey-dee") is a free, open-source, cross-platform
real-time strategy game of ancient warfare.
This is currently an incomplete, under-development version of the game.
We're always interested in getting more people involved, to help bring the game
towards completion and to share the interesting experience of developing a
project of this scope.
There are several ways to contact us and find more information:
Web site: http://play0ad.com/
Forums: http://www.wildfiregames.com/forum/
Trac (development info, bug tracker): http://trac.wildfiregames.com/
IRC: #0ad on irc.quakenet.org
---------------------------------------
Running precompiled binaries on Windows
---------------------------------------
Open the "binaries\system" folder.
To launch the game: Run pyrogenesis.exe
To launch the map editor: Run Atlas.bat or "pyrogenesis.exe -editor"
-----------------------------------
Compiling the game from source code
-----------------------------------
The instructions for compiling the game on Windows, Linux and OS X are at
http://trac.wildfiregames.com/wiki/BuildInstructions
------------------
Reporting problems
------------------
Bugs should be reported on Trac. For information on reporting problems
and finding logs, see http://trac.wildfiregames.com/wiki/ReportingErrors
------------------
Contributing Code
------------------
If you want to help out programming for the game, have a look at
https://trac.wildfiregames.com/wiki/GettingStartedProgrammers
or contact us on #0ad-dev on irc.quakenet.org
--------------------
Contributing Artwork
--------------------
If you want to make artwork for the game, have a look at
https://trac.wildfiregames.com/#Forartists:
or visit the forums http://www.wildfiregames.com/forum
-----------
Translating
-----------
You can help translating the game at https://www.transifex.com/projects/p/0ad
for more information, see https://trac.wildfiregames.com/wiki/Localization
+218 -74
View File
@@ -26,6 +26,16 @@
; Enable/disable windowed mode by default. (Use Alt+Enter to toggle in the game.)
windowed = false
; Switches between real fullscreen and borderless window on a full display size.
borderless.fullscreen = true
; Hides a window border in the windowed mode.
borderless.window = false
; Constrain mouse in the fullscreen mode to a window boundaries.
window.mousegrabinfullscreen = true
; The same but for the window mode.
window.mousegrabinwindowmode = false
; Show detailed tooltips (Unit stats)
showdetailedtooltips = false
@@ -63,7 +73,7 @@ forceglmajorversion = 3
forceglminorversion = 3
; Big screenshot tiles
screenshot.tiles = 4
screenshot.tiles = 8
screenshot.tilewidth = 480
screenshot.tileheight = 270
@@ -94,7 +104,9 @@ shadowscutoffdistance = 300.0
; If true shadows cover the whole map instead of the camera frustum.
shadowscovermap = false
texturequality = 5 ; Texture resolution and quality (0 - Lowest, 1 Very Low, 2 - Low, 3 - Medium, 4 - High, 5 - Very High, 6 - Ultra)
renderer.scale = 1.0
renderer.upscale.technique = "fsr"
vsync = false
particles = true
fog = true
@@ -105,29 +117,63 @@ showsky = true
; for a debugging of a system without GL_KHR_debug.
gl.checkerrorafterswap = false
; Disable hardware cursors
nohwcursor = false
; Different ways to draw a cursor, possible values are "sdl" and "system".
; The "system" one doesn't support a visual change of the cursor.
cursorbackend = "sdl"
; Specify the render path. This can be one of:
; default Automatically select one of the below, depending on system capabilities
; fixed Only use OpenGL fixed function pipeline
; shader Use vertex/fragment shaders for transform and lighting where possible
; Using 'fixed' instead of 'default' may work around some graphics-related problems,
; but will reduce performance and features when a modern graphics card is available.
; Backends for all graphics rendering:
; glarb - GL with legacy assembler-like shaders, might used only for buggy drivers.
; gl - GL with GLSL shaders, should be used by default.
; dummy - backend that does nothing, allows to check performance without backend drivers.
; vulkan - Vulkan with SPIR-V shaders.
rendererbackend = "gl"
; Enables additional debug information in renderer backend.
renderer.backend.debugcontext = false
renderer.backend.debugmessages = false
renderer.backend.debuglabels = false
renderer.backend.debugscopedlabels = false
renderer.backend.gl.enableframebufferinvalidating = false
renderer.backend.vulkan.disabledescriptorindexing = false
renderer.backend.vulkan.deviceindexoverride = -1
renderer.backend.vulkan.destroyoldswapchainbefore = false
; In case index override isn't enough we might choose a device automatically.
renderer.backend.vulkan.choosebestdevice = false
renderer.backend.vulkan.debugbarrierafterframebufferpass = false
renderer.backend.vulkan.debugwaitidlebeforeacquire = false
renderer.backend.vulkan.debugwaitidlebeforepresent = false
renderer.backend.vulkan.debugwaitidleafterpresent = false
; Should not be edited. It's used only for preventing of running fixed pipeline.
renderpath = default
;;;;; EXPERIMENTAL ;;;;;
; Prefer GLSL shaders over ARB shaders. Allows fancier graphical effects.
preferglsl = false
; (0 - low, 1 - medium, 2 - high), higher quality means worse performance.
textures.quality = 2
; Experimental probably-non-working GPU skinning support; requires preferglsl; use at own risk
gpuskinning = false
; (1, 2, 4, 8 and 16)
textures.maxanisotropy = 2
; GPU skinning via compute shaders, requires up-to-date drivers
gpuskinning = true
; Currently experimental feature to transit to PBR pipelines.
pbr = false
; We might want to render to different texture formats depending on quality and
; performance we need. We support: r11g11b10, rgba16, rgba32.
pbr.framebufferformat = "rgba16"
; Adjust exposure of the scene.
pbr.brightness = "0.5"
; Use smooth LOS interpolation
smoothlos = false
smoothlos = true
; Use screen-space postprocessing filters (HDR, bloom, DOF, etc). Incompatible with fixed renderpath.
postproc = false
postproc = true
; Use anti-aliasing techniques.
antialiasing = "disabled"
@@ -143,30 +189,25 @@ max_actor_quality=200
variant_diversity = "full"
; Quality level of shader effects (set to 10 to display all effects)
materialmgr.quality = 2.0
materialmgr.quality = 10.0
; Maximum distance to display parallax effect. Set to 0 to disable parallax.
materialmgr.PARALLAX_DIST.max = 150
; Maximum distance to display high quality parallax effect.
materialmgr.PARALLAX_HQ_DIST.max = 75
; Maximum distance to display very high quality parallax effect. Set to 30 to enable.
materialmgr.PARALLAX_VHQ_DIST.max = 0
;;;;;;;;;;;;;;;;;;;;;;;;
; Replace alpha-blending with alpha-testing, for performance experiments
forcealphatest = false
; Color of the sky (in "r g b" format)
skycolor = "0 0 0"
[adaptivefps]
session = 60 ; Throttle FPS in running games (prevents 100% CPU workload).
menu = 60 ; Throttle FPS in menus only.
[profiler2]
server = "127.0.0.1"
server.port = "8000" ; Use a free port on your machine.
server.threads = "6" ; Enough for the browser's parallel connection limit
server.port = "8000" ; Use a free port on your machine.
server.threads = "6" ; Enough for the browser's parallel connection limit
autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
gpu.enable = true ; Allow GPU timing mode when available.
[console]
font = "mono-10"
history.size = 200
history.ignore_duplicates = true ; Don't store consecutive identical commands twice
[hotkey]
; Each one of the specified keys will trigger the action on the left
@@ -184,6 +225,7 @@ togglefullscreen = "Alt+Return" ; Toggle fullscreen/windowed mode
screenshot.watermark = "Alt+K" ; Toggle product/company watermark for official screenshots
wireframe = "Alt+Shift+W" ; Toggle wireframe mode
silhouettes = "Alt+Shift+S" ; Toggle unit silhouettes
mousegrabtoggle = F3 ; Toggle mouse grabbing mode
; > DIALOG HOTKEYS
summary = "Ctrl+Tab" ; Toggle in-game summary
@@ -197,7 +239,7 @@ paste = "Ctrl+V" ; Paste from clipboard
cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
; > CONSOLE SETTINGS
console.toggle = BackQuote, F9 ; Open/close console
console.toggle = F9 ; Open/close console
; > OVERLAY KEYS
fps.toggle = "Alt+F" ; Toggle frame counter
@@ -216,9 +258,10 @@ quickload = "Shift+F8"
[hotkey.camera]
reset = "R" ; Reset camera rotation to default.
follow = "F" ; Follow the first unit in the selection
follow = "" ; Follow the first unit in the selection
rallypointfocus = "" ; Focus the camera on the rally point of the selected building
lastattackfocus = "Space" ; Focus the camera on the last notified attack
lastattackfocus = BackQuote ; Focus the camera on the last notified attack
togglebirdseyeview = "Shift+Tab" ; Toggle bird's eye view
zoom.in = Plus, NumPlus ; Zoom camera in (continuous control)
zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
@@ -234,12 +277,12 @@ left = A, LeftArrow ; Scroll or rotate left
right = D, RightArrow ; Scroll or rotate right
up = W, UpArrow ; Scroll or rotate up/forwards
down = S, DownArrow ; Scroll or rotate down/backwards
scroll.speed.increase = "Ctrl+Shift+S" ; Increase scroll speed
scroll.speed.decrease = "Ctrl+Alt+S" ; Decrease scroll speed
rotate.speed.increase = "Ctrl+Shift+R" ; Increase rotation speed
rotate.speed.decrease = "Ctrl+Alt+R" ; Decrease rotation speed
zoom.speed.increase = "Ctrl+Shift+Z" ; Increase zoom speed
zoom.speed.decrease = "Ctrl+Alt+Z" ; Decrease zoom speed
scroll.speed.increase = "Ctrl+Plus" ; Increase scroll speed
scroll.speed.decrease = "Ctrl+Minus" ; Decrease scroll speed
rotate.speed.increase = "Alt+Plus" ; Increase rotation speed
rotate.speed.decrease = "Alt+Minus" ; Decrease rotation speed
zoom.speed.increase = "Shift+Plus" ; Increase zoom speed
zoom.speed.decrease = "Shift+Minus" ; Decrease zoom speed
[hotkey.camera.jump]
1 = F5 ; Jump to position N
@@ -283,8 +326,14 @@ idleworker = Period, NumDecimal ; Select next idle worker
idlewarrior = Slash, NumDivide ; Select next idle warrior
idleunit = BackSlash ; Select next idle unit
offscreen = Alt ; Include offscreen units in selection
singleselection = "" ; Modifier to select units individually, opposed to per formation.
; Select all units of specific class
[hotkey.selection.unit]
cavalry = Alt+E
infantry = Alt+X
civilian = Alt+A
hero = Alt+Z
[hotkey.selection.group.add]
0 = "Shift+0", "Shift+Num0"
1 = "Shift+1", "Shift+Num1"
2 = "Shift+2", "Shift+Num2"
3 = "Shift+3", "Shift+Num3"
@@ -294,8 +343,8 @@ offscreen = Alt ; Include offscreen units in selection
7 = "Shift+7", "Shift+Num7"
8 = "Shift+8", "Shift+Num8"
9 = "Shift+9", "Shift+Num9"
10 = "Shift+0", "Shift+Num0"
[hotkey.selection.group.save]
0 = "Ctrl+0", "Ctrl+Num0"
1 = "Ctrl+1", "Ctrl+Num1"
2 = "Ctrl+2", "Ctrl+Num2"
3 = "Ctrl+3", "Ctrl+Num3"
@@ -305,8 +354,8 @@ offscreen = Alt ; Include offscreen units in selection
7 = "Ctrl+7", "Ctrl+Num7"
8 = "Ctrl+8", "Ctrl+Num8"
9 = "Ctrl+9", "Ctrl+Num9"
10 = "Ctrl+0", "Ctrl+Num0"
[hotkey.selection.group.select]
0 = 0, Num0
1 = 1, Num1
2 = 2, Num2
3 = 3, Num3
@@ -316,6 +365,28 @@ offscreen = Alt ; Include offscreen units in selection
7 = 7, Num7
8 = 8, Num8
9 = 9, Num9
10 = 0, Num0
[hotkey.selection.structures]
barracks = "Ctrl+X"
stable = "Ctrl+Z"
civil_centre = "Ctrl+C"
[hotkey.structures.place]
house = "Space+H"
storehouse = "Space+S"
farmstead = "Space+G"
field = "Space+F"
corral = "Space+J"
barracks = "Space+B"
stable = "Space+V"
temple = "Space+T"
arsenal = "Space+A"
fortress = "Space+F"
forge = "Space+K"
sentry_tower = "Space+Q"
defense_tower = "Space+W"
market = "Space+M"
dock = "Space+D"
[hotkey.gamesetup]
mapbrowser.open = "M"
@@ -328,7 +399,8 @@ unload = "U" ; Unload garrisoned units when a building/mechanica
unloadturrets = "U" ; Unload turreted units.
leaveturret = "U" ; Leave turret point.
move = "" ; Modifier to move to a point instead of another action (e.g. gather)
attack = Ctrl ; Modifier to attack instead of another action (e.g. capture)
capture = "C" ; Modifier to capture instead of another action (e.g. attack)
attack = "F" ; Modifier to attack instead of another action (e.g. capture)
attackmove = Ctrl ; Modifier to attackmove when clicking on a point
attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point
garrison = Ctrl ; Modifier to garrison when clicking on building
@@ -353,22 +425,24 @@ snaptoedges = Ctrl ; Modifier to align new structures with nearby exis
toggledefaultformation = "" ; Switch between null default formation and the last default formation used (defaults to "box")
flare = K ; Modifier to send a flare to your allies
flareactivate = "" ; Modifier to activate the mode to send a flare to your allies
calltoarms = "" ; Modifier to call the selected units to the arms.
focusfire = "F" ; Modifier to control exclusively a building's arrows if it can attack
; Overlays
showstatusbars = Tab ; Toggle display of status bars
devcommands.toggle = "Alt+D" ; Toggle developer commands panel
highlightguarding = PageDown ; Toggle highlight of guarding units
highlightguarded = PageUp ; Toggle highlight of guarded units
diplomacycolors = "Alt+X" ; Toggle diplomacy colors
toggleattackrange = "Alt+C" ; Toggle display of attack range overlays of selected defensive structures
toggleaurasrange = "Alt+V" ; Toggle display of aura range overlays of selected units and structures
togglehealrange = "Alt+B" ; Toggle display of heal range overlays of selected units
showstatusbars = "" ; Toggle display of status bars
devcommands.toggle = "Shift+F9" ; Toggle developer commands panel
highlightguarding = PageDown ; Toggle highlight of guarding units
highlightguarded = PageUp ; Toggle highlight of guarded units
diplomacycolors = "Alt+V" ; Toggle diplomacy colors
toggleattackrange = "" ; Toggle display of attack range overlays of selected defensive structures
toggleaurasrange = "" ; Toggle display of aura range overlays of selected units and structures
togglehealrange = "" ; Toggle display of heal range overlays of selected units
[hotkey.session.gui]
toggle = "Alt+G" ; Toggle visibility of session GUI
menu.toggle = "F10" ; Toggle in-game menu
diplomacy.toggle = "Ctrl+H" ; Toggle in-game diplomacy page
barter.toggle = "Ctrl+B" ; Toggle in-game barter/trade page
objectives.toggle = "Ctrl+O" ; Toggle in-game objectives page
matchsettings.toggle = "Ctrl+O" ; Toggle in-game match settings page
tutorial.toggle = "Ctrl+P" ; Toggle in-game tutorial panel
[hotkey.session.savedgames]
@@ -393,6 +467,10 @@ rewind = "Shift+Backspace" ; If timewarp mode enabled, go back to earlier
next = "Tab", "Alt+S" ; Show the next tab
prev = "Shift+Tab", "Alt+W" ; Show the previous tab
[hotkey.item]
next = "RightArrow" ; Show the next item of a list
prev = "LeftArrow" ; Show the previous item of a list
[hotkey.text] ; > GUI TEXTBOX HOTKEYS
delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor
delete.right = "Ctrl+Del" ; Delete word to the right of cursor
@@ -414,6 +492,7 @@ settingsslide = true ; Enable/Disable settings panel slide
progressdescription = false ; Whether to display the progress percent or a textual description
[gui.session]
dragdelta = 4 ; Number of pixels the mouse can move before the action is considered a drag
camerajump.threshold = 40 ; How close do we have to be to the actual location in order to jump back to the previous one?
timeelapsedcounter = false ; Show the game duration in the top right corner
ceasefirecounter = false ; Show the remaining ceasefire time in the top right corner
@@ -433,8 +512,14 @@ disjointcontrolgroups = "true" ; Whether control groups are disjoint sets or
defaultformation = "special/formations/box" ; For walking orders, automatically put units into this formation if they don't have one already.
formationwalkonly = "true" ; Formations are disabled when giving gather/attack/... orders.
howtoshownames = 0 ; Whether the specific names are show as default, as opposed to the generic names. And whether the secondary names are shown. (0 - show both; specific names primary, 1 - show both; generic names primary, 2 - show only specific names, 3 - show only generic names)
selectformationasone = "true" ; Whether to select formations as a whole by default.
[gui.session.minimap]
; Icons that are displayed for some entities on a minimap.
icons.enabled = "true"
icons.opacity = 1.0
icons.sizescale = 1.0
entityradiusscale = 1.0
blinkduration = 1.7 ; The blink duration while pinging
pingduration = 50.0 ; The duration for which an entity will be pinged after an attack notification
@@ -442,11 +527,12 @@ pingduration = 50.0 ; The duration for which an entity will be pin
attack = true ; Show a chat notification if you are attacked by another player
tribute = true ; Show a chat notification if an ally tributes resources to another team member if teams are locked, and all tributes in observer mode
barter = true ; Show a chat notification to observers when a player bartered resources
flare = always ; Show a chat notification when a player sends a flare. Possible values: never, observer, always.
phase = completed ; Show a chat notification if you or an ally have started, aborted or completed a new phase, and phases of all players in observer mode. Possible values: none, completed, all.
[gui.splashscreen]
enable = true ; Enable/disable the splashscreen
version = 0 ; Splashscreen version (date of last modification). By default, 0 to force splashscreen to appear at first launch
version = 0 ; Splashscreen version (MD5 hash of file content). By default, 0 to force splashscreen to appear at first launch
[gui.session.diplomacycolors]
self = "21 55 149" ; Color of your units when diplomacy colors are enabled
@@ -466,16 +552,16 @@ extended = true ; Whether to display the chat history
[lobby]
history = 0 ; Number of past messages to display on join
room = "arena25" ; Default MUC room to join
room = "arena29" ; Default MUC room to join
server = "lobby.wildfiregames.com" ; Address of lobby server
tls = true ; Whether to use TLS encryption when connecting to the server.
verify_certificate = false ; Whether to reject connecting to the lobby if the TLS certificate is invalid (TODO: wait for Gloox GnuTLS trust implementation to be fixed)
terms_url = "https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/gui/prelobby/common/terms/"; Allows the user to save the text and print the terms
verify_certificate = true ; Whether to reject connecting to the lobby if the TLS certificate is invalid
terms_url = "https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/gui/prelobby/common/terms/"; Allows the user to save the text and print the terms
terms_of_service = "0" ; Version (hash) of the Terms of Service that the user has accepted
terms_of_use = "0" ; Version (hash) of the Terms of Use that the user has accepted
privacy_policy = "0" ; Version (hash) of the Privacy Policy that the user has accepted
xpartamupp = "wfgbot25" ; Name of the server-side XMPP-account that manage games
echelon = "echelon25" ; Name of the server-side XMPP-account that manages ratings
xpartamupp = "wfgbot29" ; Name of the server-side XMPP-account that manage games
echelon = "echelon29" ; Name of the server-side XMPP-account that manages ratings
buddies = "," ; Comma separated list of playernames that the current user has marked as buddies
rememberpassword = true ; Whether to store the encrypted password in the user config
@@ -483,22 +569,26 @@ rememberpassword = true ; Whether to store the encrypted password in
gamerating = false ; Show the average rating of the participating players in a column of the gamelist
[lobby.stun]
enabled = true ; The STUN protocol allows hosting games without configuring the firewall and router.
; If STUN is disabled, the game relies on direct connection, UPnP and port forwarding.
server = "lobby.wildfiregames.com" ; Address of the STUN server.
port = 3478 ; Port of the STUN server.
delay = 200 ; Duration in milliseconds that is waited between STUN messages.
; Smaller numbers speed up joins but also become less stable.
delay = 10 ; Duration in milliseconds that is waited between checking for retrieved STUN responses.
; Smaller numbers speed up joins but may make them less stable, if max_tries isn't increased proportionally as well.
max_tries = 100 ; Maximum number of tries for receiving STUN responses.
[lobby.fw_punch]
delay = 200 ; Duration in milliseconds between sending hole punching messages.
num_msg = 3 ; Number of hole punching messages to send.
[mod]
enabledmods = "mod public"
[modio]
public_key = "RWTVElEmCfAMGk/jtMc2I9/ElBvoJituKdbDWqqj6D69qz2cKexU4gv+" ; Public key corresponding to the private key valid mods are signed with
public_key = "RWRoZZuNzi1wX+Hs5NKAf+GghHwye3mFePfBzOFt3mqYUZAkqAvs69W2" ; Public key corresponding to the private key valid mods are signed with
disclaimer = "0" ; Version (hash) of the Disclaimer that the user has accepted
[modio.v1]
baseurl = "https://api.mod.io/v1"
baseurl = "https://g-5.modapi.io/v1"
api_key = "23df258a71711ea6e4b50893acc1ba55"
name_id = "0ad"
@@ -506,23 +596,22 @@ name_id = "0ad"
duplicateplayernames = false ; Rename joining player to "User (2)" if "User" is already connected, otherwise prohibit join.
lateobservers = everyone ; Allow observers to join the game after it started. Possible values: everyone, buddies, disabled.
observerlimit = 8 ; Prevent further observer joins in running games if this limit is reached
observermaxlag = 10 ; Make clients wait for observers if they lag more than X turns behind. -1 means "never wait for observers".
observermaxlag = -1 ; Make clients wait for observers if they lag more than X turns behind. -1 means "never wait for observers".
autocatchup = true ; Auto-accelerate the sim rate if lagging behind (as an observer).
enetmtu = 1372 ; Lower ENet protocol MTU in case packets get further fragmented on the UDP layer which may cause drops.
[overlay]
fps = "false" ; Show frames per second in top right corner
realtime = "false" ; Show current system time in top right corner
netwarnings = "true" ; Show warnings if the network connection is bad
[profiler2]
autoenable = false ; Enable HTTP server output at startup (default off for security/performance)
gpu.arb.enable = true ; Allow GL_ARB_timer_query timing mode when available
gpu.ext.enable = true ; Allow GL_EXT_timer_query timing mode when available
gpu.intel.enable = true ; Allow GL_INTEL_performance_queries timing mode when available
[rlinterface]
address = "127.0.0.1:6000"
[dapinterface]
address = "127.0.0.1"
port = 9229
[sound]
mastergain = 0.9
musicgain = 0.2
@@ -543,12 +632,13 @@ debug = false ; Print error messages each time a translation
[userreport] ; Opt-in online user reporting system
url_upload = "https://feedback.wildfiregames.com/report/upload/v1/" ; URL where UserReports are uploaded to
url_publication = "https://feedback.wildfiregames.com/" ; URL where UserReports were analyzed and published
url_terms = "https://trac.wildfiregames.com/browser/ps/trunk/binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt"; Allows the user to save the text and print the terms
url_terms = "https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/binaries/data/mods/public/gui/userreport/Terms_and_Conditions.txt"; Allows the user to save the text and print the terms
terms = "0" ; Version (hash) of the UserReporter Terms that the user has accepted
[view] ; Camera control settings
scroll.speed = 120.0
scroll.speed.modifier = 1.05 ; Multiplier for changing scroll speed
scroll.mouse.detectdistance = 3
rotate.x.speed = 1.2
rotate.x.min = 28.0
rotate.x.max = 60.0
@@ -558,6 +648,7 @@ rotate.y.speed.wheel = 0.45
rotate.y.default = 0.0
rotate.speed.modifier = 1.05 ; Multiplier for changing rotation speed
drag.speed = 0.5
drag.inverted = false ; Pan in the opposite direction of drag movement
zoom.speed = 256.0
zoom.speed.wheel = 32.0
zoom.min = 50.0
@@ -573,3 +664,56 @@ far = 4096.0 ; Far plane distance
fov = 45.0 ; Field of view (degrees), lower is narrow, higher is wide
height.smoothness = 0.5
height.min = 16
[fonts]
default = "LinBiolinum_Rah.ttf", "FreeSans.ttf" ; Default font to use for all text
debugbox = false ; Whether to draw a debug box around text, useful for debugging text rendering issues
; Color of the debug box, if enabled.
; When A8 or R8 "R G B" only take R as alpha channel.
; When R8G8B8A: "R G B" where R, G, B are integers from 0 to 255.
debugboxcolor = "128 0 128"
;;;;;;;;;;;;;;;;;;;;;;;;
; **************************************************************
; Font format in configuration is
; [fonts.<locale>.<fontalias>]
; In GUI XML files, use the font alias.
; Example for regular: font="<fontalias>-<fontsize>"
; Example for bold: font="<fontalias>-bold-<fontsize>"
; Example for italic: font="<fontalias>-italic-<fontsize>"
; If you need troke font use the following format:
; Example for stroke: font="....-stroke-<fontsize>"
;
; Support for locale fonts
; [fonts.<locale>.<fontalias>]
; Example: fonts.jp.sans = "font.ttf"
;
; Each value is a comma separated list of font files
; Example: fonts.sans.regular = "font.ttf", "font2.ttf"
; Example: fonts.sans.bold = "font.ttf"
; **************************************************************
[fonts.sans]
regular = "LinBiolinum_Rah.ttf", "FreeSans.ttf"
bold = "LinBiolinum_RBah.ttf", "FreeSansBold.ttf"
italic = "LinBiolinum_RIah.ttf", "FreeSansOblique.ttf"
[fonts.mono]
regular = "DejaVuSansMono.ttf", "FreeMono.ttf"
[fonts.ja.sans]
regular = "SourceHanSansJP-Regular.otf"
bold = "SourceHanSansJP-Bold.otf"
[fonts.zh.sans]
regular = "SourceHanSansCN-Regular.otf"
bold = "SourceHanSansCN-Bold.otf"
[fonts.zh_TW.sans]
regular = "SourceHanSansTW-Regular.otf"
bold = "SourceHanSansTW-Bold.otf"
[fonts.ko.sans]
regular = "SourceHanSansKR-Regular.otf"
bold = "SourceHanSansKR-Bold.otf"
+3 -3
View File
@@ -5,7 +5,7 @@
;
; This file is used by the engine to decide which mods are mounted, and in what
; order. The precense of this file suppresses loading of mods in the user mod
; path (see http://trac.wildfiregames.com/wiki/GameDataPaths) if the same mod is
; path (see https://gitea.wildfiregames.com/0ad/0ad/wiki/GameDataPaths) if the same mod is
; present in binaries/data/mods. It also implies -noUserMod.
; This is done to make saved maps end up in the right mod folder (and in the
; game-relative data path) to commit them later on.
; This is done to make saved maps end up in the right mod folder (and in the
; game-relative data path) to commit them later on.
+1 -2
View File
@@ -1,8 +1,7 @@
[main]
host = https://www.transifex.com
[0ad.engine]
[o:wildfire-games:p:0ad:r:engine]
file_filter = <lang>.engine.po
source_file = engine.pot
source_lang = en
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Continuation/Script.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Continuation/Object.xml</include>
</page>
@@ -0,0 +1,4 @@
async function init(arg)
{
return arg + " Continuation";
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Entry/Script.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Entry/Object.xml</include>
</page>
@@ -0,0 +1,7 @@
async function init()
{
return { [Engine.openRequest]: {
"page": "OpenRequest/Continuation/Page.xml",
"argument": "Entry"
} };
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Root/Script.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Root/Object.xml</include>
</page>
@@ -0,0 +1,13 @@
async function init()
{
const result = await Engine.OpenChildPage("OpenRequest/Entry/Page.xml");
await new Promise(closePageCallback =>
{
globalThis.closePageCallback = () =>
{
closePageCallback();
return result;
};
});
}
@@ -0,0 +1,4 @@
async function init(arg)
{
return arg ? Engine.startAtlas : undefined;
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/Result/Result.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>Result/Result.xml</include>
</page>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script module="gui/await/script.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>await/object.xml</include>
</page>
@@ -0,0 +1 @@
await new Promise(() => {});
+2 -1
View File
@@ -6,7 +6,8 @@ var obj1 = Engine.GetGUIObjectByName("obj1");
var obj3 = Engine.GetGUIObjectByName("obj3");
obj1.onTick = () => { ++called1; };
Engine.GetGUIObjectByName("obj2").onTick = () => {
Engine.GetGUIObjectByName("obj2").onTick = () =>
{
++called2;
delete obj1.onTick;
delete obj3.onTick;
View File
+3
View File
@@ -26,6 +26,9 @@
<element name="script">
<interleave>
<text/>
<optional>
<attribute name="module"/>
</optional>
<optional>
<attribute name="file"/>
</optional>
View File
+4 -2
View File
@@ -1,13 +1,15 @@
var state_before;
var state_after;
function handleInputBeforeGui(ev) {
function handleInputBeforeGui(ev)
{
if ((ev.type == "hotkeydown" || ev.type == "hotkeyup") && ev.hotkey == "test")
state_before = Engine.HotkeyIsPressed("test");
return false;
}
function handleInputAfterGui(ev) {
function handleInputAfterGui(ev)
{
if ((ev.type == "hotkeydown" || ev.type == "hotkeyup") && ev.hotkey == "test")
state_after = Engine.HotkeyIsPressed("test");
return false;
View File
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script module="gui/multiple_root-modules/script.js"/>
<script module="gui/multiple_root-modules/script.js"/>
</objects>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>multiple_root-modules/object.xml</include>
</page>
@@ -0,0 +1,4 @@
function init()
{
return new Promise(closePageCallback => { globalThis.closePageCallback = closePageCallback; });
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/regainFocus/emptyPage.js"/>
</objects>
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>regainFocus/emptyPage.xml</include>
</page>
@@ -1 +1,4 @@
Engine.PushGuiPage("regainFocus/page_emptyPage.xml", {}, () => Engine.PopGuiPage());
function init()
{
return Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>resolveReject/resolveReject.xml</include>
</page>
@@ -0,0 +1,5 @@
async function init(reject)
{
if (reject)
throw new Error();
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/resolveReject/resolveReject.js"/>
</objects>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>sequential/sequential.xml</include>
</page>
@@ -0,0 +1,5 @@
async function init()
{
await Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
await Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/sequential/sequential.js"/>
</objects>
@@ -0,0 +1,4 @@
testObject.size = {
"left": 3,
"bottom": 2
};
@@ -0,0 +1 @@
testObject.size.left += 5;
@@ -0,0 +1 @@
testObject.getComputedSize();
@@ -0,0 +1 @@
testObject.size.left = 5;
@@ -0,0 +1,3 @@
Object.assign(testObject.size, {
"rleft": 4, "rbottom": 20
});
@@ -1,610 +0,0 @@
100
256 256
606
20
32 0 256 0 0 0 0 5
33 250 154 3 11 1 11 4
34 121 18 5 4 0 11 5
35 80 214 12 11 0 11 12
36 190 39 10 13 0 12 10
37 204 11 15 11 0 11 15
38 187 25 13 11 0 11 12
39 253 188 3 4 0 11 3
40 252 79 4 11 0 11 4
41 251 67 5 11 0 11 5
42 73 186 7 7 1 12 8
43 48 138 9 9 2 9 13
44 253 184 3 4 2 2 6
45 20 226 4 2 1 5 6
46 253 180 3 2 0 2 5
47 146 89 6 13 -1 11 4
48 154 73 10 11 0 11 10
49 250 11 6 11 2 11 11
50 164 73 10 11 0 11 10
51 86 75 10 11 1 11 11
52 174 75 10 11 0 11 10
53 232 75 10 11 0 11 10
54 12 77 10 11 0 11 10
55 226 166 8 11 1 11 10
56 72 77 10 11 0 11 10
57 96 79 10 11 0 11 10
58 32 224 3 8 1 8 5
59 29 224 3 10 1 8 5
60 74 138 9 9 2 9 13
61 111 61 9 5 2 7 13
62 84 138 9 9 2 9 13
63 81 190 9 11 0 11 8
64 0 14 16 14 0 11 16
65 39 49 11 11 0 11 11
66 204 79 10 11 1 11 11
67 51 49 11 11 0 11 11
68 63 49 11 11 1 11 12
69 117 190 9 11 1 11 10
70 122 162 8 11 1 11 10
71 161 49 11 11 0 11 11
72 173 49 11 11 1 11 12
73 58 128 3 11 1 11 4
74 145 188 9 11 0 11 9
75 214 79 10 11 1 11 11
76 13 186 9 11 1 11 10
77 204 23 14 11 1 11 15
78 97 51 11 11 1 11 12
79 185 51 11 11 0 11 11
80 242 79 10 11 1 11 11
81 201 48 11 12 0 11 11
82 0 81 10 11 1 11 11
83 241 51 11 11 0 11 11
84 23 186 9 11 0 11 9
85 75 53 11 11 0 11 11
86 184 83 10 11 0 11 10
87 126 11 16 11 0 11 16
88 122 214 12 11 -1 11 10
89 109 55 11 11 -1 11 9
90 170 156 8 11 1 11 10
91 185 107 5 11 0 11 5
92 114 99 6 13 -1 11 4
93 191 107 5 11 0 11 5
94 150 124 10 4 3 11 16
95 12 242 8 2 0 -3 8
96 12 49 3 3 2 11 8
97 145 132 9 8 0 8 9
98 33 186 9 11 0 11 9
99 155 132 9 8 0 8 9
100 43 186 9 11 0 11 9
101 165 132 9 8 0 8 9
102 197 107 5 11 0 11 5
103 53 186 9 11 0 8 9
104 178 156 8 11 0 11 8
105 62 128 3 11 0 11 3
106 230 192 4 14 0 11 4
107 227 142 7 11 0 11 7
108 84 128 3 11 0 11 3
109 157 200 13 8 1 8 14
110 224 76 8 8 0 8 8
111 175 132 9 8 0 8 9
112 63 186 9 11 0 8 9
113 91 186 9 11 0 8 9
114 74 106 8 8 0 8 7
115 185 132 9 8 0 8 9
116 57 138 7 10 0 10 7
117 136 106 8 8 0 8 8
118 144 106 8 8 0 8 7
119 60 94 12 8 0 8 12
120 222 106 8 8 0 8 8
121 101 186 9 11 -1 8 7
122 146 114 6 8 1 8 8
123 142 76 6 14 1 11 8
124 252 55 3 15 3 11 9
125 148 76 6 14 1 11 8
126 160 124 10 4 1 7 12
160 0 256 0 0 0 0 11
161 88 128 3 11 1 11 4
162 127 186 9 11 1 9 11
163 194 83 10 11 1 11 11
164 235 132 9 8 0 10 10
165 213 55 11 11 -1 11 9
166 250 192 3 14 3 11 9
167 1 184 9 11 0 11 9
168 121 24 5 2 1 11 7
169 97 27 13 11 0 11 13
170 103 174 7 7 0 11 7
171 40 115 7 5 0 7 8
172 134 136 11 5 2 7 14
173 128 202 4 2 1 5 6
174 29 35 13 11 0 11 13
175 0 186 4 2 2 11 8
176 238 108 6 6 0 11 5
177 102 138 9 9 2 8 13
178 10 108 8 8 0 11 8
179 176 116 7 8 0 11 7
180 200 17 4 3 2 11 8
181 22 85 10 11 -1 8 9
182 186 156 8 11 0 11 8
183 207 168 3 2 1 7 5
184 28 19 5 5 2 0 8
185 125 150 5 7 1 11 8
186 171 124 7 7 0 11 7
187 55 115 7 5 0 7 8
188 220 11 15 11 1 11 16
189 142 11 16 11 1 11 17
190 158 11 16 11 0 11 16
191 155 184 9 11 0 11 9
192 139 256 11 15 0 15 11
193 151 256 11 15 0 15 11
194 163 256 11 15 0 15 11
195 113 240 11 14 0 14 11
196 137 240 11 14 0 14 11
197 112 256 12 15 0 15 12
198 52 256 17 11 -2 11 15
199 175 256 11 15 0 11 11
200 246 27 9 15 1 15 10
201 88 29 9 15 1 15 10
202 112 29 9 15 1 15 10
203 216 226 9 14 1 14 10
204 8 200 4 15 0 15 4
205 112 200 4 15 1 15 4
206 15 53 5 15 0 15 4
207 48 242 5 14 -1 14 3
208 0 212 12 11 0 11 12
209 149 240 11 14 1 14 12
210 187 256 11 15 0 15 11
211 199 256 11 15 0 15 11
212 211 256 11 15 0 15 11
213 161 240 11 14 0 14 11
214 173 240 11 14 0 14 11
215 112 138 9 9 2 9 13
216 136 226 11 13 0 12 11
217 223 256 11 15 0 15 11
218 235 256 11 15 0 15 11
219 53 244 11 15 0 15 11
220 185 240 11 14 0 14 11
221 65 244 11 15 -1 15 9
222 32 85 10 11 1 11 11
223 194 156 8 11 0 11 8
224 165 180 9 11 0 11 9
225 175 180 9 11 0 11 9
226 185 180 9 11 0 11 9
227 195 180 9 11 0 11 9
228 205 180 9 11 0 11 9
229 103 224 9 12 0 12 9
230 212 44 14 8 0 8 14
231 13 198 9 12 0 8 9
232 235 180 9 11 0 11 9
233 73 178 9 11 0 11 9
234 111 178 9 11 0 11 9
235 215 178 9 11 0 11 9
236 56 109 4 11 -1 11 3
237 70 109 4 11 0 11 3
238 20 109 5 11 -1 11 3
239 26 109 5 11 -1 11 3
240 93 198 9 12 0 12 9
241 234 156 8 11 0 11 8
242 225 178 9 11 0 11 9
243 245 178 9 11 0 11 9
244 137 176 9 11 0 11 9
245 11 174 9 11 0 11 9
246 21 174 9 11 0 11 9
247 184 71 9 7 2 8 13
248 243 142 9 10 0 9 9
249 70 154 8 11 0 11 8
250 100 154 8 11 0 11 8
251 202 154 8 11 0 11 8
252 210 154 8 11 0 11 8
253 226 226 9 14 -1 11 7
254 236 226 9 14 0 11 9
255 0 200 8 14 0 11 8
884 121 22 5 4 0 11 5
885 241 28 5 4 0 2 5
890 200 21 4 3 1 0 5
894 253 200 3 11 1 8 4
900 12 53 3 3 1 11 4
901 94 228 7 3 -1 11 5
902 104 212 12 11 -1 11 10
903 211 168 3 2 1 6 5
904 225 55 11 11 -1 11 11
905 134 212 12 11 -1 11 11
906 32 109 5 11 -1 11 5
908 122 35 13 11 -1 11 12
910 136 35 13 11 -1 11 12
911 150 35 13 11 -1 11 12
912 9 138 7 11 -2 11 3
913 146 212 12 11 -1 11 10
914 42 85 10 11 0 11 10
915 218 154 8 11 1 11 9
916 1 57 11 11 0 11 11
917 52 85 10 11 1 11 11
918 31 174 9 11 0 11 10
919 62 85 10 11 1 11 11
920 158 212 12 11 0 11 12
921 253 154 3 11 1 11 5
922 106 85 10 11 0 11 10
923 197 59 11 11 0 11 10
924 170 212 12 11 0 11 12
925 116 85 10 11 1 11 11
926 226 154 8 11 1 11 10
927 182 212 12 11 0 11 12
928 154 85 10 11 1 11 11
929 164 85 10 11 0 11 10
931 242 154 8 11 1 11 10
932 41 174 9 11 0 11 9
933 27 61 11 11 0 11 11
934 48 26 13 12 0 11 13
935 194 212 12 11 -1 11 10
936 200 35 13 11 0 11 13
937 206 212 12 11 0 11 12
938 120 99 6 13 -1 13 4
939 58 228 12 13 -1 13 10
940 82 87 10 11 0 11 10
941 17 138 7 11 0 11 7
942 24 200 8 14 0 11 8
943 113 128 3 11 0 11 3
944 130 152 8 11 0 11 8
945 244 100 10 8 0 8 10
946 246 226 9 14 0 11 9
947 51 174 9 11 0 8 8
948 61 174 9 11 0 11 9
949 184 116 7 8 0 8 7
950 32 200 8 14 0 11 7
951 10 150 8 11 0 8 8
952 83 174 9 11 0 11 9
953 10 184 3 8 0 8 3
954 82 108 8 8 0 8 8
955 18 150 8 11 0 11 8
956 26 150 8 11 0 8 8
957 114 108 8 8 0 8 8
958 40 200 8 14 0 11 7
959 245 132 9 8 0 8 9
960 0 102 10 8 -1 8 9
961 93 174 9 11 0 8 9
962 34 150 8 11 0 8 8
963 224 97 10 9 0 9 10
964 66 118 6 8 0 8 6
965 202 108 8 8 0 8 8
966 39 61 11 11 0 8 11
967 121 174 9 11 0 8 8
968 51 61 11 11 0 8 11
969 171 200 13 8 0 8 13
970 38 109 5 11 -1 11 3
971 42 150 8 11 0 11 8
972 1 172 9 11 0 11 9
973 50 150 8 11 0 11 8
974 214 35 13 11 0 11 13
976 147 172 9 11 0 11 9
977 126 87 10 11 0 11 10
978 63 61 11 11 0 11 10
979 228 35 13 11 -1 11 11
980 147 226 11 13 -1 13 10
981 197 240 11 14 0 11 11
982 185 200 13 8 0 8 13
986 209 240 11 14 0 11 11
988 48 200 8 14 1 11 9
990 20 224 9 14 0 11 9
992 121 61 11 11 0 11 11
994 98 15 13 15 1 11 14
995 61 26 13 12 0 8 13
996 146 200 10 12 0 12 10
997 169 192 9 12 0 9 9
998 246 256 10 15 1 11 11
999 0 136 9 9 0 9 9
1000 157 168 9 11 0 11 9
1001 58 150 8 11 0 8 8
1002 136 87 10 11 0 11 10
1003 60 102 10 8 0 8 9
1004 179 192 9 12 0 12 9
1005 10 99 10 9 0 9 10
1006 174 87 10 11 0 11 9
1007 234 192 8 12 -1 9 6
1008 94 102 10 8 0 8 10
1009 189 192 9 12 0 8 9
1010 244 108 8 8 0 8 8
1011 219 192 5 14 -2 11 3
1025 110 43 10 13 1 13 11
1026 1 37 13 11 0 11 13
1027 134 75 8 13 1 13 9
1028 133 61 11 11 0 11 11
1029 224 87 10 11 0 11 10
1030 117 128 3 11 1 11 5
1031 152 99 6 13 -1 13 4
1032 78 150 8 11 0 11 8
1033 32 11 18 11 -1 11 17
1034 174 11 16 11 1 11 17
1035 15 37 13 11 0 11 13
1036 136 200 9 13 1 13 10
1038 221 240 11 14 0 14 10
1039 0 226 10 14 1 11 11
1040 218 212 12 11 -1 11 10
1041 10 89 10 11 1 11 11
1042 72 89 10 11 0 11 10
1043 86 150 8 11 1 11 9
1044 36 242 12 14 -1 11 11
1045 92 91 10 11 1 11 11
1046 235 11 15 11 0 11 15
1047 204 91 10 11 0 11 10
1048 214 91 10 11 1 11 11
1049 28 49 10 13 1 13 11
1050 167 168 9 11 1 11 10
1051 145 61 11 11 -1 11 10
1052 230 212 12 11 0 11 12
1053 234 91 10 11 1 11 11
1054 242 212 12 11 0 11 12
1055 244 91 10 11 1 11 11
1056 0 93 10 11 0 11 10
1057 157 61 11 11 0 11 11
1058 177 168 9 11 0 11 9
1059 169 61 11 11 0 11 10
1060 12 210 12 11 0 11 12
1061 92 210 12 11 -1 11 10
1062 88 242 12 14 1 11 13
1063 184 95 10 11 0 11 10
1064 43 37 13 11 1 11 14
1065 51 14 15 14 1 11 16
1066 57 37 13 11 0 11 13
1067 71 37 13 11 1 11 14
1068 194 95 10 11 1 11 11
1069 87 63 11 11 0 11 11
1070 33 23 15 11 1 11 16
1071 80 202 12 11 -1 11 11
1072 65 130 9 8 0 8 9
1073 187 168 9 11 0 11 9
1074 0 110 8 8 0 8 8
1075 92 118 6 8 0 8 6
1076 86 52 10 10 -1 8 9
1077 93 130 9 8 0 8 9
1078 158 94 11 8 0 8 11
1079 192 116 7 8 0 8 7
1080 60 110 8 8 0 8 8
1081 108 150 8 11 0 11 8
1082 200 116 7 8 0 8 7
1083 121 130 9 8 0 8 9
1084 104 102 10 8 0 8 10
1085 90 110 8 8 0 8 8
1086 131 130 9 8 0 8 9
1087 98 110 8 8 0 8 8
1088 197 168 9 11 0 8 9
1089 106 110 8 8 0 8 8
1090 238 116 7 8 0 8 7
1091 116 150 8 11 0 8 8
1092 191 14 13 14 0 11 13
1093 152 110 8 8 0 8 8
1094 235 168 9 11 0 8 9
1095 160 110 8 8 0 8 8
1096 198 200 13 8 0 8 13
1097 163 37 13 11 0 8 13
1098 158 102 10 8 0 8 10
1099 127 96 11 8 0 8 11
1100 230 110 8 8 0 8 8
1101 246 116 7 8 0 8 8
1102 102 94 12 8 0 8 12
1103 122 112 8 8 0 8 8
1105 71 166 9 11 0 11 9
1106 94 224 9 14 0 11 9
1107 216 103 6 11 0 11 6
1108 0 118 7 8 1 8 8
1109 168 112 8 8 0 8 8
1110 41 126 3 11 0 11 3
1111 44 109 5 11 -1 11 4
1112 224 192 5 14 -2 11 3
1113 226 44 14 8 0 8 14
1114 212 200 13 8 0 8 13
1115 103 166 9 11 0 11 9
1116 25 138 7 11 0 11 7
1118 56 200 8 14 0 11 8
1119 0 148 8 11 0 8 8
1120 127 23 15 11 0 11 15
1121 226 200 13 8 0 8 13
1122 181 63 11 11 0 11 11
1123 207 166 9 11 0 11 9
1124 218 23 14 11 1 11 15
1125 170 96 11 8 0 8 11
1126 237 63 11 11 0 11 11
1127 72 98 11 8 -1 8 9
1128 232 23 14 11 1 11 15
1129 240 200 13 8 0 8 12
1130 13 65 11 11 -1 11 9
1131 138 98 11 8 -1 8 9
1132 143 23 15 11 1 11 15
1133 156 192 13 8 0 8 12
1134 102 256 10 17 0 14 10
1135 64 200 8 14 0 11 8
1136 177 37 13 11 0 11 13
1137 75 65 11 11 0 8 11
1138 99 67 11 11 1 11 13
1139 210 112 8 8 1 8 10
1140 209 67 11 11 0 11 11
1141 74 114 8 8 0 8 8
1142 232 240 11 14 0 14 11
1143 138 148 8 11 0 11 8
1144 0 256 20 14 0 11 20
1145 70 256 17 11 0 8 17
1146 84 42 12 12 0 11 12
1147 195 130 9 8 0 8 9
1148 20 256 15 15 0 15 15
1149 75 26 13 12 0 12 13
1150 67 14 15 14 0 14 15
1151 97 39 13 11 0 11 13
1152 158 226 11 13 0 11 11
1153 136 186 9 10 0 8 9
1154 20 97 10 11 0 11 11
1155 110 184 7 3 -1 12 5
1156 146 176 6 3 0 12 6
1157 82 178 7 3 -1 12 6
1158 120 178 7 3 0 12 6
1168 20 52 7 14 1 14 7
1169 178 107 6 11 0 11 5
1170 217 166 9 11 0 11 9
1171 98 118 6 8 0 8 6
1172 10 226 10 14 1 11 11
1173 72 200 8 14 0 11 8
1174 16 14 16 14 0 11 15
1175 116 202 12 11 0 8 11
1176 30 214 9 14 0 11 9
1177 33 138 7 11 0 8 7
1178 40 214 9 14 1 11 9
1179 146 144 8 11 0 8 7
1180 245 166 9 11 1 11 10
1181 16 118 7 8 0 8 7
1182 30 97 10 11 0 11 10
1183 24 118 7 8 0 8 7
1184 242 39 13 11 -1 11 12
1185 126 104 10 8 0 8 9
1186 244 240 11 14 1 11 12
1187 131 164 9 11 0 8 9
1188 0 25 14 11 1 11 15
1189 168 104 10 8 0 8 10
1190 76 244 11 15 1 11 12
1191 199 192 9 12 0 8 9
1192 124 242 12 14 0 11 12
1193 11 162 9 11 0 8 9
1194 101 238 11 14 0 11 11
1195 21 162 9 11 0 8 9
1196 50 214 9 14 0 11 9
1197 41 138 7 11 0 8 7
1198 221 67 11 11 0 11 11
1199 31 162 9 11 0 8 8
1200 1 69 11 11 0 11 10
1201 41 162 9 11 -1 8 7
1202 12 240 12 14 -1 11 10
1203 51 162 9 11 0 8 8
1204 83 14 15 14 0 11 15
1205 193 71 11 11 0 8 11
1206 35 228 11 14 0 11 10
1207 61 162 9 11 0 8 8
1208 40 97 10 11 0 11 10
1209 130 114 8 8 0 8 8
1210 50 97 10 11 1 11 11
1211 154 144 8 11 0 11 8
1212 14 25 14 11 -1 11 13
1213 83 100 11 8 -1 8 10
1214 112 14 14 14 -1 11 13
1215 25 73 11 11 -1 8 10
1216 45 126 3 11 1 11 5
1217 87 256 15 13 0 13 15
1218 37 73 11 11 0 11 11
1219 24 240 10 15 1 11 10
1220 242 192 8 12 0 8 7
1223 0 242 11 15 1 11 12
1224 209 192 9 12 0 8 9
1227 112 226 10 14 0 11 10
1228 162 144 8 11 0 8 8
1232 70 228 12 13 -1 13 10
1233 81 162 9 11 0 11 9
1234 82 228 12 13 -1 13 10
1235 170 144 8 11 0 11 9
1236 158 23 15 11 0 11 16
1237 0 46 14 8 0 8 15
1238 60 214 9 14 1 14 11
1239 91 162 9 11 0 11 9
1240 49 73 11 11 0 11 11
1241 205 130 9 8 0 8 9
1242 169 226 11 13 0 13 11
1243 113 162 9 11 0 11 9
1244 36 256 16 13 -1 13 14
1245 61 73 11 11 0 11 11
1246 120 49 10 13 0 13 10
1247 178 144 8 11 0 11 8
1248 1 160 9 11 0 11 9
1249 186 144 8 11 0 8 8
1250 130 49 10 13 1 13 11
1251 194 144 8 11 0 11 8
1252 140 49 10 13 1 13 11
1253 234 144 8 11 0 11 9
1254 124 228 12 13 0 13 12
1255 141 160 9 11 0 11 9
1256 111 73 11 11 1 11 13
1257 138 114 8 8 1 8 10
1258 181 226 11 13 1 13 13
1259 66 142 8 11 1 11 10
1262 193 226 11 13 0 13 10
1263 70 214 9 14 0 11 8
1264 205 226 11 13 0 13 11
1265 104 200 8 14 0 11 8
1266 46 228 11 14 0 14 10
1267 128 200 8 14 0 11 8
1268 150 49 10 13 0 13 10
1269 94 142 8 11 0 11 8
1272 173 25 13 13 1 13 14
1273 123 73 11 11 0 11 11
1425 43 26 5 2 1 -1 7
1426 12 212 6 2 0 10 6
1427 34 240 2 5 2 12 6
1428 24 55 3 3 2 11 6
1429 84 29 4 3 1 11 6
1430 131 166 3 2 1 -1 5
1431 48 14 2 2 2 10 6
1432 28 23 5 3 1 10 6
1433 243 68 5 4 -1 11 6
1434 90 190 3 4 3 0 6
1435 4 186 4 2 1 -1 6
1436 152 176 3 4 1 11 5
1437 162 172 3 4 3 11 6
1438 196 43 5 3 1 11 6
1439 99 56 7 4 -1 11 5
1440 164 184 4 4 3 11 6
1441 196 47 5 3 0 11 6
1443 110 180 4 2 1 -1 6
1444 80 166 3 4 1 0 6
1445 186 14 5 2 1 -1 7
1446 156 172 6 3 0 0 6
1447 208 55 4 3 1 0 6
1448 83 92 5 4 1 11 7
1449 140 164 4 4 -1 11 6
1450 164 26 5 2 1 -1 7
1451 109 154 3 4 1 12 6
1452 214 180 4 2 1 11 6
1453 203 156 3 2 3 -1 6
1454 236 47 5 3 -1 10 6
1455 192 59 4 3 1 10 6
1456 106 55 3 3 2 0 6
1457 112 166 6 3 0 0 6
1458 208 51 5 3 0 0 5
1459 236 51 5 3 0 0 5
1460 67 150 3 2 2 -1 6
1461 244 180 4 2 1 -1 6
1462 232 59 4 3 1 0 6
1463 67 148 3 2 1 -1 5
1464 147 148 3 2 1 -1 5
1465 67 146 3 2 2 10 6
1467 192 55 5 3 0 0 6
1468 147 146 3 2 2 5 6
1469 67 144 3 2 2 -1 7
1470 38 38 5 2 0 8 5
1471 75 142 3 2 1 10 5
1472 117 212 3 10 0 9 3
1473 103 142 3 2 2 10 6
1474 125 142 3 2 2 10 6
1475 70 174 3 8 0 8 3
1476 253 142 3 2 2 10 6
1488 215 130 9 8 0 8 9
1489 218 114 8 8 1 8 9
1490 32 118 7 8 0 8 7
1491 48 118 7 8 0 8 7
1492 225 130 9 8 0 8 9
1493 130 174 5 8 0 8 5
1494 24 210 5 9 0 9 5
1495 49 128 9 8 0 8 9
1496 75 128 9 8 0 8 9
1497 211 104 5 4 0 8 5
1498 202 142 8 11 0 8 8
1499 8 116 8 8 0 8 8
1500 210 142 8 11 0 11 8
1501 103 128 9 8 0 8 9
1502 1 126 9 8 0 8 9
1503 50 109 5 11 0 8 5
1504 94 150 5 8 0 8 5
1505 11 126 9 8 0 8 9
1506 124 140 9 10 0 8 9
1507 151 156 9 11 0 8 9
1508 21 126 9 8 0 8 9
1509 218 142 8 11 0 8 8
1510 82 116 8 8 0 8 8
1511 161 156 9 11 0 8 9
1512 114 116 8 8 0 8 8
1513 204 100 11 8 0 8 11
1514 234 101 10 9 0 8 10
1520 31 126 9 8 0 8 9
1521 141 124 9 8 0 8 9
1522 75 42 9 4 0 8 9
1523 150 160 4 4 0 10 3
1524 235 80 7 4 0 10 6
65075 248 67 3 15 -1 13 16
65533 124 256 14 13 1 12 16
Binary file not shown.
@@ -2,7 +2,7 @@ vec4 InstancingPosition(vec4 position);
void main()
{
vec4 worldPos = InstancingPosition(gl_Vertex);
vec4 worldPos = InstancingPosition(gl_Vertex);
gl_FrontColor = gl_Color;
gl_TexCoord[0] = gl_MultiTexCoord0;
@@ -12,7 +12,7 @@ vec3 InstancingNormal(vec3 normal)
tmp.x = dot(vec3(Instancing1), normal);
tmp.y = dot(vec3(Instancing2), normal);
tmp.z = dot(vec3(Instancing3), normal);
return tmp;
}
@@ -24,6 +24,6 @@ vec4 InstancingPosition(vec4 position)
tmp.x = dot(Instancing1, position);
tmp.y = dot(Instancing2, position);
tmp.z = dot(Instancing3, position);
return vec4(tmp, 1.0);
}
@@ -6,7 +6,7 @@ vec4 InstancingPosition(vec4 position);
void main()
{
vec3 normal = InstancingNormal(gl_Normal);
vec4 worldPos = InstancingPosition(gl_Vertex);
vec4 worldPos = InstancingPosition(gl_Vertex);
gl_FrontColor = vec4(lighting(normal),1.0) * gl_Color;
gl_TexCoord[0] = gl_MultiTexCoord0;
@@ -28,36 +28,36 @@ void main()
float t; // Temporary variable
vec2 reflCoords, refrCoords;
vec3 reflColor, refrColor, specular;
n = normalize(texture2D(normalMap, gl_TexCoord[0].st).xzy - vec3(0.5, 0.5, 0.5));
l = -sunDir;
v = normalize(cameraPos - worldPos);
h = normalize(l + v);
ndotl = dot(n, l);
ndoth = dot(n, h);
ndotv = dot(n, v);
myMurkiness = murkiness * min(waterDepth / fullDepth, 1.0);
fresnel = pow(1.0 - ndotv, 0.8); // A rather random Fresnel approximation
refrCoords = 0.5 * (gl_TexCoord[2].xy / gl_TexCoord[2].w) + 0.5; // Unbias texture coords
refrCoords -= 0.8 * waviness * n.xz / w; // Refractions can be slightly less wavy
reflCoords = 0.5 * (gl_TexCoord[1].xy / gl_TexCoord[1].w) + 0.5; // Unbias texture coords
reflCoords += waviness * n.xz / w;
reflColor = mix(texture2D(reflectionMap, reflCoords).rgb, sunColor * reflectionTint,
reflColor = mix(texture2D(reflectionMap, reflCoords).rgb, sunColor * reflectionTint,
reflectionTintStrength);
refrColor = (0.5 + 0.5*ndotl) * mix(texture2D(refractionMap, refrCoords).rgb, sunColor * tint,
myMurkiness);
specular = pow(max(0.0, ndoth), shininess) * sunColor * specularStrength;
gl_FragColor.rgb = mix(refrColor + 0.3*specular, reflColor + specular, fresnel) * losMod;
// Make alpha vary based on both depth (so it blends with the shore) and view angle (make it
// become opaque faster at lower view angles so we can't look "underneath" the water plane)
t = 18.0 * max(0.0, 0.7 - v.y);
@@ -0,0 +1,2 @@
a = 10
atext = "dummy"
@@ -0,0 +1 @@
b = 10
@@ -0,0 +1,7 @@
a = 8
atext = "dummyreplaced"
b = 8
c = 8
[scoped]
e = 8
@@ -0,0 +1,2 @@
[scoped]
e = 10
@@ -0,0 +1,8 @@
a = 1
b = 2
c = 3
d = 4
[scoped]
e = 5
f = 6
@@ -0,0 +1,8 @@
try
{
Engine.callback();
}
catch(e)
{
log(e.message);
}
@@ -0,0 +1 @@
log("blah blah blah");
@@ -0,0 +1,3 @@
await undefined;
// `import "blabbermouth.js";` would be hoisted before the await resulting in it not being delayed.
log("blah blah blah");
@@ -0,0 +1,4 @@
export default function()
{
return import("include/pi.js");
}
@@ -0,0 +1,6 @@
export let value = 6;
export function mutate(newValue)
{
value = newValue;
}
@@ -0,0 +1,4 @@
let value = 6;
export default value;
// eslint-disable-next-line no-useless-assignment
value = 36;
@@ -0,0 +1 @@
export default 36;
@@ -0,0 +1,2 @@
export default let value = 6;
value = 36;
@@ -0,0 +1,3 @@
let value = 6;
export { value as default };
value = 36;
@@ -0,0 +1,4 @@
function foo()
{
import "include/pi.js";
}
@@ -0,0 +1,18 @@
import { circleArea } from "include/geometry/area.js";
class Circle
{
radius;
constructor(radius)
{
this.radius = radius;
}
get area()
{
return circleArea(this.radius);
}
}
export default Circle;
@@ -0,0 +1,8 @@
import RenamedCircle from "include/circle.js";
const area = new RenamedCircle(10).area;
if (area === (Math.PI * 100))
log("Test succeeded");
else
throw new Error("Module Evalutation Error");
@@ -0,0 +1,6 @@
import importedPi from "include/pi.js";
export function circleArea(radius)
{
return importedPi * (radius * radius);
}
@@ -0,0 +1 @@
export default Math.PI;
@@ -0,0 +1 @@
export * from "export.js";
@@ -0,0 +1,4 @@
export function getMeta()
{
return import.meta;
}
@@ -0,0 +1,4 @@
export function fn()
{
return "Base";
}
@@ -0,0 +1 @@
throw new Error("This script should't be evaluated.");

Some files were not shown because too many files have changed in this diff Show More