Compare commits

...

3390 commits
a25b ... main

Author SHA1 Message Date
Ralph Sennhauser
6b4ecbdc40
Create dedicated stylesheet for Atlas
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
This is meant as a central place to tweak layout per platform.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-15 21:27:42 +02:00
Ralph Sennhauser
149baf116b
Replace all use of POSIX truncate
Use `<filesystem>` instead of `truncate` and remove `truncate`
portability wrapper.

Add a helper function `StatusFromSystemError` to convert error_code to
`Status`.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-15 15:33:59 +02:00
Ralph Sennhauser
57f5b73458
Remove unused wrapper for POSIX rmdir
std::filesystem::remove can be used instead.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-15 15:33:59 +02:00
Ralph Sennhauser
518ed74496
Replace all use of POSIX unlink
Use `<filesystem>` instead of `unlink` and remove `unlink` portability
wrapper.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-15 15:33:59 +02:00
Vladislav Belov
4259c78150
Removes unused Get/SetDepthTextureBits methods
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
Methods were added in f903b83674.
Methods became unused in 12e2428495.
2026-06-15 00:35:04 +02:00
Ralph Sennhauser
71400e8045
Drop unused lowlevel functions
and associated types. Aka posix dirent.h abstraction.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-14 21:58:59 +02:00
Ralph Sennhauser
43e7dbc6da
Use std::filesystem for filesystem abstraction
Drop the use of lowlevel interfaces and consitently use the cpp
interface decupling it from systm dependent code.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-14 21:58:59 +02:00
phosit
2f2cbb96bf
Remove this.isDeserialized from BaseAI
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
`this.isDeserialized` is only required for AIs which `Deserialize`
function depends on the game state.
2026-06-14 17:52:54 +02:00
phosit
a4b580991b
Move this.turn to PetraBot
The `BaseAI` shouldn't make assumptions whether the AI runs every turn.
2026-06-14 17:52:54 +02:00
phosit
babe9e5c18
Remove this.events from AIs
`this.events` is only valid during one turn. When it is used in the next
turnn it might be outdated. So it makes no sense to keep it alive untill
the next turn.
2026-06-14 17:52:54 +02:00
phosit
cbce748b8c
Remove moduleName from Petras data.json
It was accidentally re-introduced in 88dc947b6a.
2026-06-14 13:21:26 +02:00
Ralph Sennhauser
1ab55e7f2e
Remove leftover code from wxCollapsiblePane use
There is a workaround for an old bug with the use of wxCollapsiblePane.
As the widget itself is no longer in use, just remove the now dead code.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-13 18:34:09 +02:00
Ralph Sennhauser
b4fe426963
Replace notebook with choicebook
The terrain selection notebook is painful to navigate with a large
amount of tabs. Further the control is broken on macOS. As such replace
the wxNotebook with a wxChoicebook.

Fixes: #8705
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-13 16:57:32 +02:00
Ralph Sennhauser
8cb4f5e4a3
Fix negative content width GTK warnings in Atlas
Interdependent content width in terrain selection panel results in GTK
throwing warnings. Don't expand the grid cell content.

Also wrap the grid to keep spacing consistent and not variable for the
terrain buttons.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-13 13:38:44 +02:00
Ralph Sennhauser
9388692a47
Add bird view to Atlas
Fixes: #2657
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-12 21:54:01 +02:00
Ralph Sennhauser
fa9584fdc0
Fix some Atlas header includes
iwyu 0.26 now want's full declaration of TYPE in case of
std::vector<TYPE>, which is good as it allows the header to be
self standing.

There are some other changes suggested in part of the headers not being
updated when they should have been and some due to changes in iwyu
itself.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-12 21:22:36 +02:00
Ralph Sennhauser
7f4377c086
Treat <wx/defs.h> as private header
Add the header to iwyu mappings as private as the wx documentation
doesn't suggest otherwise.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-12 21:22:36 +02:00
animus
1034b55037 Rename class names postifxed with "Man" to "Manager".
A regex-based
search across the codebase confirms there are no other instances
of "Man" that should be renamed to "Manager".
Variables were not renamed.
2026-06-12 18:35:32 +02:00
animus
b1627f5158 Remove redundant virtual keywords
This commit performs code cleanup to improve
code clarity and consistency:

Remove redundant 'virtual' keywords from methods that are already marked
with 'final' or 'override', as well as reducing redundant 'override
final's to 'final'.
2026-06-12 18:35:32 +02:00
Jonny McCullagh
917275d6cb Add more tips incl the Arsenal and Great Hall
Fixes #8914
2026-06-12 10:44:41 +02:00
mehmed-faheim-arslan
50e1f51755 Draw trainer section before tree section
Previously, TreeSection was drawn before TrainerSection.
Reversing the order ensures TrainerSection layout is resolved first,
which fixes scroll state being computed against an incomplete
structree page render.

Fixes #8893
2026-06-10 20:55:52 +02:00
mehmed-faheim-arslan
39b1311fac Allow players to set rally points on allied buildings
Instead of storing a single flat list of positions and data per
building, RallyPoint now stores them keyed by player ID. This lets
mutual allies independently set and display rally points on each
other's structures.

The GUI now allows selecting allied buildings with a rally point
and only shows the viewing player's own rally point data.
GuiInterface gets an OnUpdate handler to keep displayed positions
in sync when rally point targets move.

GetRallyPointCommands now takes raw position and data arrays instead
of a component reference. The network command field is also renamed
from "entities" to "structures".

Fixes #3115
2026-06-10 00:09:48 +02:00
wowgetoffyourcellphone
8a999d63b7 Add missing garrisoned prop point to the Athena Nike mesh. 2026-06-09 01:04:10 +02:00
Ralph Sennhauser
25f920bdb2
Make cxxtest optional
Remove mocks as they are no longer used making cxxtest effectively
optional.

Fixes: #8618
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-08 20:59:45 +02:00
Ralph Sennhauser
2d317d509d
Remove unix_ExecutablePathname
The function was used as a fallback for when a platform specific approach
isn't available. Given that it effectively is a roundabout way to derive
it from argv[0] which we use as a generic fallback anyway just remove
it.

This further allows to make cxxtest optional.

Refs: #8618
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-08 20:59:45 +02:00
Ralph Sennhauser
ae6d3bfc4e
Implement BSD specific sys_ExecutablePathname
This is more reliable than argv[0] which is effectively used via
unix_ExecutablePathname. Also drop the fallback as it effectively is the
same as the generic fallback and blocks making cxxtest optional.

On FreeBSD the procfs is not mounted by default, so use a syscall
instead.

Refs: #8618
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-08 20:59:45 +02:00
Ralph Sennhauser
349478aa6b
Remove Linux sys_ExecutablePathname fallback
The fallback is of little value and blocks making cxxtest an optional
build dependency. While at it use realpath instead of readlink.

Refs: #8618
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-08 20:59:45 +02:00
Ralph Sennhauser
6fc47e2997
Cleanup wposix header and source
Remove stale NAN and INFINITY, both have equivalents since C++11 and
cleanup headers in wposix source file.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-08 19:52:53 +02:00
Vladislav Belov
62fcb7e042
Removes requirement to restart the game for V-Sync 2026-06-08 18:27:12 +02:00
Vladislav Belov
7607d6bdd8
Decouples acquire/present from SubmitScheduler
SubmitScheduler doesn't have to know anything about Acquire/Present as
its responsibility to schedule and submit command buffers to a queue.
2026-06-08 18:27:10 +02:00
Vladislav Belov
07e5ad5b23
Fixes acquire and submit semaphores syncronization
I forgot to finish CSubmitScheduler synchronization in
7c84c23114. Even ++m_FrameID was
forgotten. And it worked at the time. A proper synchronization is
described in renderer/backend/Vulkan/SwapChain.h.
2026-06-08 18:27:08 +02:00
Vladislav Belov
4d83aa28e5
Uses SwapChain instead of direct Device calls 2026-06-08 18:27:06 +02:00
Vladislav Belov
cf4a4d8fd5
Adds SwapChain as an explicit DeviceObject
It allows us more flexibility on how we control swapchain. That includes
toggling V-Sync in real time.
2026-06-08 18:26:58 +02:00
Ralph Sennhauser
dab6e1a37a
Fix disabled pathfinder tests
The disabled test are all broken one way or another. The maps used in
the tests got renamed. The pathfinder component got some performance
improvements which now require to call UpdateGrid() once before use.
Finally for the InitAttributes to be deep frozen they need to be an
object, so initialize them.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-07 10:43:32 +02:00
Ralph Sennhauser
296ccc78c9
Fix disabled serializer tests
test_hash depends on modmod for xml schemas. InitAttributes need to be
set as deep freezing expects them to be a valid object. The map used got
renamed at some point. Finally prior to running the sim PreInitGame()
and InitGame() need to be called.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-07 10:00:40 +02:00
Ralph Sennhauser
0599848330
Cleanup Atlas SectionLayout
Don't declare empty constructor and destructor, avoid c-style cast and
remove TODO about a bug that can't be reproduced any longer.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-07 09:36:57 +02:00
Ralph Sennhauser
e3afa15966
Cleanup Atlas section headers
Make not otherwise used functions private and use override as
appropriate.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-07 09:36:57 +02:00
Ralph Sennhauser
94f13073ce
Remove unused allocator page_aligned
Unused and since C++17 not really valuable with std::aligned_alloc
(_aligned_malloc and _aligned_free in case of MSVC) available. We also
have an other similar interface with "lib/sysdep/vm.h".

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-05 16:57:20 +02:00
Ralph Sennhauser
cf5501a35b
Support numpad with player hotkey in ActorViewer
KEY_DOWN means we need to check for the "down" values instead of "char"
value which differer for numpad.

Ref: #501
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-05 16:22:28 +02:00
Ralph Sennhauser
fcbc3d3f71
Limit max PlayerID in Atlas hotkeys
9 isn't a valid playerID, setting this value causes a JS error
and corrupting the viewport.

Further limit selectable max playerID to what the mapSettings say.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-05 16:22:28 +02:00
Ralph Sennhauser
0c0552a428
Replace M_PI with C++ numbers
C++20 added π (pi) to the standard, replace the C macro globally.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-04 20:29:48 +02:00
Ralph Sennhauser
4379194255
Fix sidepanel layout in Atlas
In many places there are missing gaps/borders and where there are there
are almost random values used (2/3/4/5/8/10/15).

Add missing and standardize on using gaps 5 and 10 pixel only.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-06-03 19:17:28 +02:00
guerringuerrin
3922a7ee0a Prioritize least busy buildings for hotkey training commands
getTotalQueueTime(queue) calculates total remaining
queue time of a production building.
getBuildingsSortedByQueueTime(entities), sorts building selection
by their queued training time and filter invalid entities
Removes the resource availability guard from the Training selection
panel onPress handler to align mouse interaction with hotkey behavior
2026-05-27 10:29:08 -03:00
Vladislav Belov
1250ca1dac
Replaces FALLTHROUGH macro by attribute
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
It was forgotten during removing the FALLTHROUGH macro in
b41ca5ad78.
2026-05-22 23:25:31 +02:00
Vladislav Belov
a0ecfbaa33
Skips UNIFORM buffers for GLES
Currently we don't support UNIFORM buffers for GLES.

Refs 54701868da
2026-05-22 23:14:30 +02:00
phosit
01bd743b30
Correct LoadModal to continue a saved campaign
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
The `closePageCallback` isn't forwarted to the function calling it. Now
it's possible again to continue a saved campaign.
The error was introduced in 76b6725272.
2026-05-21 21:29:56 +02:00
Ralph Sennhauser
a0bb103390
Unwrap SDL_Event
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
Since C++11 a C typedef'ed union can be forward declared, so the wrapper
is no longer needed.

While at it switch signatures to refs and convert C style casts.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2026-05-20 19:44:52 +02:00
phosit
34ab0f3938
Disconnect before deleting the session
The session was deleted from `m_Sessions` before disconnecting. Since
e7a583adc0 that also deleted the session.
2026-05-17 17:20:37 +02:00
phosit
a95579a046
Fix UI when connecting to a server fails
When the connection fails, it wasn't possible to close the progress
window.
Now `PollNetworkClient` also resolves the previous promise.
2026-05-17 17:20:37 +02:00
guerringuerrin
32e5520507 Add hotkeys for opening GUI pages across the game
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
Add registerGlobalGuiPageHotkeys() to
common/functions_utility.js to selectively register
GUI page hotkeys
Allow active GUI pages to close using their corresponding hotkey
Move page_hotkeys.xml from gui/hotkeys/ to gui/
Update page_hotkeys.xml references in MainMenuItems and MenuButtons
Add default tipScrolling fallback in TipsPage when no initData is provided
2026-05-16 20:53:54 +02:00
wowgetoffyourcellphone
9df2dc2585 Temple of Athena Nike by @nifa
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
Temple of Athena Nike by @nifa

SpecificName from @Outis and @Thalatta
2026-05-14 13:38:32 +02:00
Vladislav Belov
017aa3b736
Adds splitted shader effects to materials
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
2026-05-10 23:57:27 +02:00
Vladislav Belov
59e36be140
Splits shader effects to reuse in material passes 2026-05-10 23:57:23 +02:00
Vladislav Belov
18a16aa135
Moves all rendering to material passes
Now we should use material passes instead of context and defines to
select a needed shader. It allows us to reduce the number of
shader combinations we use and reduce memory consumption.
2026-05-10 23:57:20 +02:00
Vladislav Belov
aced56c336
Adds material passes to choose different shaders
All shaders were selected by context (set of defines) which increases
the number of needed permutations. For example: we don't need to know
about shadows when rendering silhouettes.
2026-05-10 23:57:16 +02:00
Vladislav Belov
9aee507e28
Adds wireframe techniques for particle and terrain 2026-05-10 23:57:12 +02:00
Vladislav Belov
75bd640bd8
Removes context of terrain shadows and silhouettes
We were unnecessary passing all combinations of our scene shader context
even if we don't need it as for shadows and silhouettes for terrain
rendering. Since we only need to draw a solid color.
2026-05-10 23:56:57 +02:00
Vladislav Belov
58d3527130 Adds profile table for renderer backend statistics
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
2026-05-10 19:26:16 +02:00
Vladislav Belov
2e87f6b5aa Adds renderer backend-specific statistics
Different backend have different metrics to watch and debug. So we need
a simple way to collect that.
2026-05-10 19:26:16 +02:00
phosit
3549cc1e6c
Remove the hint that ai-rejoin isn't supported 2026-05-10 14:18:52 +02:00
phosit
b3552ebccb
Clone the position in attackPlan 2026-05-10 14:18:52 +02:00
phosit
e2466e9bd5
Consistently sort the ai-queues
When the returned value of the compare function is `0` the order is
preserved. Before the sort, the order between joining clients and
non-joining clients differ.
Additionally sorting by name should make the order consintent.
2026-05-10 14:18:51 +02:00
phosit
6d31e6de89
Serialize the isIdleConfirmed for the AI
The AI only noticed for changes to `isIdleConfirmed`. That is done to
avoid recursions and don't send to many messages. But when the AI is
deserialized it get's `isIdle` from the simulation. Leading to an OOS.
2026-05-10 14:18:51 +02:00
phosit
be03605eac
Update unitCollection in attackPlan 2026-05-10 14:18:51 +02:00
phosit
86289a89fd
Clone the bonuses
Sometimes the same object was serialized.
2026-05-10 14:18:51 +02:00
phosit
53a67e560f
Sort templateModifications after inserting
The insertion order might not be consistent when clients join.
2026-05-10 14:18:51 +02:00
phosit
b572fed672
Consistently sort the build order
When the returned value of the compare function is `0` the order is
preserved. Before the sort, the order between joining clients and
non-joining clients differ.
Now everything important (which is used later on) is included in the
comparison. If still `0` is returned it's not importent which element is
taken.

Another solution would be to have one array per category.
2026-05-10 14:18:51 +02:00
phosit
c4dd0040ee
Never serialize an event when it's not owned 2026-05-10 14:18:51 +02:00
phosit
2f86d4a2f8
Don't write entity-metadata when deserializing
The metadata where written every the turn of deserialization. When on
the non rejoining client it was only written when that AI makes a turn
and handles the events.
2026-05-10 14:18:51 +02:00
phosit
55f2d356ff
Clone targetPos in attackPlan
On a rejoined client the data isn't the same anymore. But it's equal.
Likely this is because the data isn't aquired at the same turn.

This could also be solved more generally by copying all data which is
pushed to the AI. Or by using the same serializer for AI as for the rest
of the simulation.
2026-05-10 14:18:51 +02:00
phosit
3ddf101a06
Inform the AI about builders when initializing
This wasn't a problem since there are no builders on a fresh match but
now when deserializing there might be builders.
2026-05-10 14:18:50 +02:00
phosit
9aea56e4a2
Also serialize unitCollUpdateArray in AttackPlan
It needs to be serialized so it's known which units to update next.
2026-05-10 14:18:50 +02:00
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
2026-05-04 18:47:53 +02:00
Jonny McCullagh
e903506f13 More ai names for the germans
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
2026-04-25 17:47:06 +02:00
Vladislav Belov
9b79fb3793
Fixes particle solid axes after aae957ec7b
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
Fixes #8870
2026-04-11 11:01:22 +02:00
Vladislav Belov
cb1fe07540
Removes GetDeviceCommandContext call from CFont
Some checks are pending
checkrefs / lfscheck (push) Waiting to run
checkrefs / checkrefs (push) Waiting to run
lint / cppcheck (push) Waiting to run
lint / copyright (push) Waiting to run
lint / jenkinsfiles (push) Waiting to run
pre-commit / build (push) Waiting to run
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
Some checks failed
checkrefs / lfscheck (push) Has been cancelled
checkrefs / checkrefs (push) Has been cancelled
lint / cppcheck (push) Has been cancelled
lint / copyright (push) Has been cancelled
lint / jenkinsfiles (push) Has been cancelled
pre-commit / build (push) Has been cancelled
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] 7a495bb46d
[1] 2fa0a00583

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] 199bc82702
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:
908dd631d9

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
18915 changed files with 3316737 additions and 781406 deletions

View file

@ -1,5 +0,0 @@
{
"phabricator.uri" : "https://code.wildfiregames.com/",
"repository.callsign" : "P",
"load": ["build/arclint/pyrolint"]
}

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
.editorconfig Normal file
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

2
.gitattributes vendored
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
.gitea/CODEOWNERS Normal file
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

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.

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

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.

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)

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
.gitea/workflows/lint.yml Normal file
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 }}

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
.gitignore vendored Normal file
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
.groovylintrc.json Normal file
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
.lfsconfig Normal file
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
.markdownlint.yaml Normal file
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
.pre-commit-config.yaml Normal file
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
.shellcheckrc Normal file
View file

@ -0,0 +1,2 @@
external-sources=true
source-path=source/tools

8
.yamllint.yaml Normal file
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
LICENSE.md Normal file
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.

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
README.md Normal file
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)

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

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,12 +225,19 @@ 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
lobby = "Alt+L" ; Show the multiplayer lobby in a dialog window.
structree = "Alt+Shift+T" ; Show structure tree
civinfo = "Alt+Shift+H" ; Show civilization info
catafalque = "Alt+Shift+F" ; Show catafalque overview
mapbrowser = "Alt+Shift+M" ; Show map browser
manual = "Alt+Shift+U" ; Show manual
tips = "Alt+Shift+I" ; Show tips and tricks
options = "Alt+Shift+O" ; Show options
hotkeys = "Alt+Shift+Y" ; Show hotkeys
; > CLIPBOARD CONTROLS
copy = "Ctrl+C" ; Copy to clipboard
@ -197,7 +245,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 +264,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 +283,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 +332,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 +349,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 +360,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,9 +371,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.gamesetup]
mapbrowser.open = "M"
[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.session]
kill = Delete, Backspace ; Destroy selected units
@ -328,7 +402,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 +428,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 +470,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 +495,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 +515,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 +530,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 +555,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 +572,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 +599,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 +635,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 +651,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 +667,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"

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.

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

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Continuation/Script.js"/>
</objects>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Continuation/Object.xml</include>
</page>

View file

@ -0,0 +1,4 @@
async function init(arg)
{
return arg + " Continuation";
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Entry/Script.js"/>
</objects>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Entry/Object.xml</include>
</page>

View file

@ -0,0 +1,7 @@
async function init()
{
return { [Engine.openRequest]: {
"page": "OpenRequest/Continuation/Page.xml",
"argument": "Entry"
} };
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Root/Script.js"/>
</objects>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>OpenRequest/Root/Object.xml</include>
</page>

View file

@ -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;
};
});
}

View file

@ -0,0 +1,4 @@
async function init(arg)
{
return arg ? Engine.startAtlas : undefined;
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/Result/Result.js"/>
</objects>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>Result/Result.xml</include>
</page>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script module="gui/await/script.js"/>
</objects>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>await/object.xml</include>
</page>

View file

@ -0,0 +1 @@
await new Promise(() => {});

3
binaries/data/mods/_test.gui/gui/event/event.js Executable file → Normal file
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;

0
binaries/data/mods/_test.gui/gui/event/event.xml Executable file → Normal file
View file

3
binaries/data/mods/_test.gui/gui/gui.rng Executable file → Normal file
View file

@ -26,6 +26,9 @@
<element name="script">
<interleave>
<text/>
<optional>
<attribute name="module"/>
</optional>
<optional>
<attribute name="file"/>
</optional>

0
binaries/data/mods/_test.gui/gui/gui_page.rng Executable file → Normal file
View file

6
binaries/data/mods/_test.gui/gui/hotkey/hotkey.js Executable file → Normal file
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;

0
binaries/data/mods/_test.gui/gui/hotkey/hotkey.xml Executable file → Normal file
View file

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>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>multiple_root-modules/object.xml</include>
</page>

View file

@ -0,0 +1,4 @@
function init()
{
return new Promise(closePageCallback => { globalThis.closePageCallback = closePageCallback; });
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/regainFocus/emptyPage.js"/>
</objects>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>regainFocus/emptyPage.xml</include>
</page>

View file

@ -1 +1,4 @@
Engine.PushGuiPage("regainFocus/page_emptyPage.xml", {}, () => Engine.PopGuiPage());
function init()
{
return Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
}

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>resolveReject/resolveReject.xml</include>
</page>

View file

@ -0,0 +1,5 @@
async function init(reject)
{
if (reject)
throw new Error();
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/resolveReject/resolveReject.js"/>
</objects>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<page>
<include>common/styles.xml</include>
<include>sequential/sequential.xml</include>
</page>

View file

@ -0,0 +1,5 @@
async function init()
{
await Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
await Engine.OpenChildPage("regainFocus/page_emptyPage.xml");
}

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/sequential/sequential.js"/>
</objects>

View file

@ -0,0 +1,4 @@
testObject.size = {
"left": 3,
"bottom": 2
};

View file

@ -0,0 +1 @@
testObject.size.left += 5;

View file

@ -0,0 +1 @@
testObject.getComputedSize();

View file

@ -0,0 +1 @@
testObject.size.left = 5;

View file

@ -0,0 +1,3 @@
Object.assign(testObject.size, {
"rleft": 4, "rbottom": 20
});

View file

@ -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

View file

@ -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;

View file

@ -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);
}

View file

@ -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;

View file

@ -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);

View file

@ -0,0 +1,2 @@
a = 10
atext = "dummy"

View file

@ -0,0 +1 @@
b = 10

View file

@ -0,0 +1,7 @@
a = 8
atext = "dummyreplaced"
b = 8
c = 8
[scoped]
e = 8

View file

@ -0,0 +1,2 @@
[scoped]
e = 10

View file

@ -0,0 +1,8 @@
a = 1
b = 2
c = 3
d = 4
[scoped]
e = 5
f = 6

View file

@ -0,0 +1,8 @@
try
{
Engine.callback();
}
catch(e)
{
log(e.message);
}

View file

@ -0,0 +1 @@
log("blah blah blah");

View file

@ -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");

View file

@ -0,0 +1,4 @@
export default function()
{
return import("include/pi.js");
}

View file

@ -0,0 +1,6 @@
export let value = 6;
export function mutate(newValue)
{
value = newValue;
}

View file

@ -0,0 +1,4 @@
let value = 6;
export default value;
// eslint-disable-next-line no-useless-assignment
value = 36;

View file

@ -0,0 +1 @@
export default 36;

View file

@ -0,0 +1,2 @@
export default let value = 6;
value = 36;

View file

@ -0,0 +1,3 @@
let value = 6;
export { value as default };
value = 36;

View file

@ -0,0 +1,4 @@
function foo()
{
import "include/pi.js";
}

View file

@ -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;

View file

@ -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");

View file

@ -0,0 +1,6 @@
import importedPi from "include/pi.js";
export function circleArea(radius)
{
return importedPi * (radius * radius);
}

View file

@ -0,0 +1 @@
export default Math.PI;

View file

@ -0,0 +1 @@
export * from "export.js";

View file

@ -0,0 +1,4 @@
export function getMeta()
{
return import.meta;
}

View file

@ -0,0 +1,4 @@
export function fn()
{
return "Base";
}

View file

@ -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