1
0
forked from mirrors/0ad
Commit Graph

25300 Commits

Author SHA1 Message Date
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