25737 Commits

Author SHA1 Message Date
phosit f35595610a Sort entitycollections when adding entities
On joining clients entitycollections are always sorted. To stay in sync
non-joining clients also have to sort entitycollections.
2026-05-10 14:18:50 +02:00
phosit 130ea06ce8 Don't add queues when deserializing AttackPlans
When deserializing the queues are already there. It was an error to try
to add a queue since sometimes there must not be a queue.
2026-05-10 14:18:50 +02:00
phosit cca2cfe05c Don't updateTerritories when deserializing
Clients which didn't late-join only get a change to `uptadeTerritories`
when the ai playes a turn. When joining clients do it at the turn when
they deserialize the ai they might be ahead of the others. That would
lead to an out of sync.
2026-05-10 14:18:50 +02:00
phosit e9339591c2 Reset turnCach at the begin of the turn 2026-05-10 14:18:50 +02:00
phosit 911285e625 Always update territories 2026-05-10 14:18:50 +02:00
phosit 4b516b336e Get the UnitAI order data directly
The cached data wasn't always up to date. I coudn't figure out when to
update it.
2026-05-10 14:18:50 +02:00
phosit 3afdf64eee Update territories when a construction is finished
Constructions can change the territories. So they should be updated.
2026-05-10 14:18:50 +02:00
phosit f5e926f6fe Remove remanents of entityObj
All uses have been removed.
2026-05-10 14:18:49 +02:00
phosit b6243966f3 Remove usage of entityObj from Destroy event
`entityObj` is not available on clients which just have rejoined. As not
all clients have access to it the data shouldn't be used for anything
elaborate.
2026-05-10 14:18:49 +02:00
phosit 0a2294171e Remove usage of entityObj in VictoryManager
This is done by remembering the ID of the assigned healers and guards.
2026-05-10 14:18:49 +02:00
phosit b59d2c91e3 Remove usage of entityObj in TradeManager
Now `source` and `target` are only entityID. So that we can check
whethero one of them got destroied.
Additionaly it's much simpler to serialize.
2026-05-10 14:18:49 +02:00
phosit d18a6392b3 Reduce usage of entityObj in SharedScript
The information where a unit is and which resource it provides wasn't
available on joining clients. Now the `resourceMap` is reset when a
resource is destroide.

It would be performance intensive when the `resourceMap` would be reset
when any unit would be destroied. To prevent this the `SharedScript`
remembers which entities are resourcesources.
2026-05-10 14:18:49 +02:00
phosit 8d7de7fde7 Remove usage of entityObj in BuildManager
When destroying a builder it might not be known anymore what it was able
to build. Now the entityIDs of the builder is stores. So that it can
easily be looked up and removed.
2026-05-10 14:18:49 +02:00
phosit 4f6b01ccb8 Reduce usage of entityObj in BasesManager
Some functions in the `BaseManager` expect a complete entity but only
the ID is used. When an entity is destroied the entity isn't available
anymore.
2026-05-10 14:18:49 +02:00
phosit 7b50e32b28 Always delete metadata when destroying entities
On newly deserialized clients there is no property for the destroied
entities. Because of that the metadata of the entity wasn't remembered
in the event and wasn't destroied.
2026-05-10 14:18:49 +02:00
phosit 08340ca18a Call GetFullRepresentation only internally
`GetFullRepresentation` doesn't reset `this.changes` to `null`. So when
a message arrives the ai-interface will not be informed.
The ai-interface calls `GetFullRepresentation` and removed the dirty
flag from the ai interface.

This two behaviors lead to the error that the ai never receives messages
from entities which exist at game start.
2026-05-10 14:18:49 +02:00
phosit f81cf7e602 Clear changedEntities on initialization
When initialized all entities get queried. But the set of entities to
query wasn't cleard. This lead to an OOS.
2026-05-10 14:18:48 +02:00
phosit e07b4df6ba Serialize dropsiteSupplies
The assignement has to be done for new dropsite but must not always be
done as it sends a command.

Serialized data shouldn't be too complicated. Because of that the `ent`
property is removed.
2026-05-10 14:18:48 +02:00
phosit 6facc9ee17 Fix AI OOS on rejoin related to random calls
Based on a diff from @Silier: https://code.wildfiregames.com/D2573
2026-05-10 14:18:48 +02:00
phosit 8151e18d51 Enable the ai to be tested with -serializationtest 2026-05-10 14:18:48 +02:00
phosit c042b3ca2c Start the serializationtest at a specivic turn
This enables to only test critical game sections.
2026-05-10 14:18:48 +02:00
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