1
0
forked from mirrors/0ad
Commit Graph

24242 Commits

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