Commit Graph

24262 Commits

Author SHA1 Message Date
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] https://github.com/unicode-org/icu/commit/199bc827021ffdb43b6579d68e5eecf54c7f6f56
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