1
0
forked from mirrors/0ad

9239 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
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 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 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 dd9124ae99 Fixes Vulkan uniform buffer size after 9e371824c2
32 was accidentally added during debugging.
2026-04-25 11:55:12 +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
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
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
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
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
Vantha e0db65ba1b Remove pointless const's from ICmpCinemaManager.h
Were mistakenly introduced in d882ab74a1
2026-03-24 11:15:27 +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
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
phosit 262c5c037e Use promises to fetch net messages
Refs: #5585
2026-03-13 18:07:56 +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
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
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