Compare commits

..

140 commits

Author SHA1 Message Date
Itms
69461c90b7
Bump build date of A27.1 RC2
(cherry picked from commit 16bcc5a870)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 18:36:33 +02:00
Itms
6b763af4c8
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
(cherry picked from commit b362f0537a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:19:15 +02:00
Ralph Sennhauser
0dbc1f604a
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>
(cherry picked from commit 2b5830e82a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:18:21 +02:00
Ralph Sennhauser
bf4eee555f
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>
(cherry picked from commit 707abee34d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:17:22 +02:00
Itms
dae7a8c394
Bump engine version to 0.27.1 2025-07-12 15:14:45 +02:00
Itms
4633a2d522
Extend previous commit
Backport part of 0e1c881fef
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-12 15:14:34 +02:00
Dunedan
aa3767d2f9
Fix pre-commit workflow to work with Ubuntu 24.04
(cherry picked from commit 782bab293b)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-07-08 11:16:31 +02:00
Itms
7b3d6ce04e
New appdata entry for A27.1
Fixes #7986

(cherry picked from commit 406565f3c4)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-20 12:04:50 +02:00
elexis
c98ae10e39
Fix change perspective in replays
Fixes change perspective features of multiplayer replays following cheat
protection in 023527e56e.

Fixes: #8020
(cherry picked from commit 67eaa8f1a9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:59:26 +02:00
Lancelot de Ferrière
655a444847
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

(cherry picked from commit e3e542b1f9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:58:32 +02:00
Ralph Sennhauser
182b1e3ee6
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>
(cherry picked from commit 03fd1acd5d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:58:03 +02:00
Ralph Sennhauser
60a44dfc26
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>
(cherry picked from commit 1fac3461f9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:57:03 +02:00
Dunedan
38e4cdc755
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

(cherry picked from commit 638391d7ab)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-06-19 16:53:33 +02:00
Lancelot de Ferrière
68d99b3944
Fix no-pch build following #7829
(cherry picked from commit dd74892463)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 22:29:09 +02:00
Itms
5ffddd0cc4
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.

(cherry picked from commit 51ab929926)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:22:12 +02:00
Itms
2721d642b8
Allow downloading Windows libraries into nightly
(cherry picked from commit c38b40cda8)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:13:10 +02:00
Lancelot de Ferrière
e1daff1869
Iterate the component map only once on serialization
(cherry picked from commit 9eccf1f27d)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:05:53 +02:00
Lancelot de Ferrière
e5df3e1ad8
Skip UTF8 conversions in prototype name
(cherry picked from commit ea34960249)
(fixed build on 520c489b68 by moving a change to this commit)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:05:00 +02:00
Lancelot de Ferrière
5ab58f82f0
BinarySerializer: avoid creating unnecessary ScriptRequest
(cherry picked from commit bcd0e12cc3)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:02:58 +02:00
Lancelot de Ferrière
520c489b68
Cache property keys during component serialization
(cherry picked from commit ab6a420f78)
(fixed build on this commit by moving a change to commit originally ea34960249)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 14:00:56 +02:00
Lancelot de Ferrière
0fdd6005b8
Skip redundant HasProperty in GetObjectClassName
(cherry picked from commit 83bf2eb22e)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:59:21 +02:00
Itms
3fce9a37cc
Generate signatures and hashes in the bundles job
(cherry picked from commit 1adab34511)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:50:14 +02:00
Lancelot de Ferrière
e4b604982a
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.

(cherry picked from commit af32d386b9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:49:41 +02:00
phosit
b78b666797
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
(cherry picked from commit 56abf84da2)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:48:54 +02:00
Dunedan
2fcce77ad4
Properly terminate the XMPP connection
This ensures the XMPP connection gets properly terminated when leaving
the lobby.

Fixes #7504

(cherry picked from commit 312c6e8165)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:48:33 +02:00
Dunedan
83c8ec1b4a
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.

(cherry picked from commit fcd3fc2aa3)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:47:43 +02:00
Dunedan
a7694ef8b3
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.

(cherry picked from commit 18d7746c84)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-15 13:44:35 +02:00
fiftydinar
5012d1f1c0
Add StartupWMClass to desktop file
This fixes the potential edge-cases of icon not showing, like in Gnome's dash for example.

(cherry picked from commit 26acb9df22)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:57:43 +02:00
Ralph Sennhauser
73dec93113
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>
(cherry picked from commit 263b481442)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:57 +02:00
Vladislav Belov
c4d10eedfd
Fixes runtime switch of the GPU skinning.
Fixes #7572, #7630.

(cherry picked from commit 2264807ad0)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:56 +02:00
Vladislav Belov
21ec2f0ab8
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.

(cherry picked from commit fa3fb5d064)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:55 +02:00
Vladislav Belov
85cc968be0
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.

(cherry picked from commit bce6e2c238)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:54 +02:00
Dunedan
ef9ea478ec
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

(cherry picked from commit 11dd480b67)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:53 +02:00
Ralph Sennhauser
417af009ea
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>
(cherry picked from commit f10526284f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:52 +02:00
Itms
fa5f81ba6f
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.

(cherry picked from commit b831b1f559)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:51 +02:00
Ralph Sennhauser
30fe4f7fdc
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>
(cherry picked from commit 6738fdbab7)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:50 +02:00
Ralph Sennhauser
1ec2709236
Bump Windows libs for premake5 beta4
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit 8baff65e95)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:49 +02:00
Ralph Sennhauser
fa1f474d6e
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>
(cherry picked from commit df38d4e899)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:48 +02:00
Ralph Sennhauser
e2d4ad6c40
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>
(cherry picked from commit 84b407aa35)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:47 +02:00
AFCMS
851bbf07ac
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.

(cherry picked from commit 51bbdc6537)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:38 +02:00
Stan
8a593904d5
Patch metainfo file to to match the new requirements
(cherry picked from commit cf0c285d8e)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-05-01 08:56:24 +02:00
Vincent Cheng
ef42efe1e1
Make sure mozjs patch FixFpNormIssue.diff applies cleanly on i386
(cherry picked from commit 026a668a0f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:31:27 +02:00
Martijn van Duren
8a31db1659
OpenBSD supports pkg-config
(cherry picked from commit 064ab14577)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:04:53 +02:00
Martijn van Duren
50127606b3
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.

(cherry picked from commit 2338473da1)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:03:12 +02:00
Ștefan Talpalaru
8053860a5b
build-source-libs.sh: fix "--with-system-premake"
(cherry picked from commit 3ff3f72890)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 21:02:41 +02:00
Ralph Sennhauser
6746f380f7
Add missing header in KeyName
Reported-by: @svenstaro
Ref: #7564
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit bccd3db231)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-04-27 20:59:22 +02:00
Dunedan
8c69bb026d
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.

(cherry picked from commit db35a8494c)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 19:30:34 +01:00
Vladislav Belov
d4e1b8b9db
Disables compute shaders for GL ARB backend.
(cherry picked from commit a7ead4cf4c)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 19:28:00 +01:00
Vladislav Belov
8f8d08b9f3
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.

(cherry picked from commit 635a268dd9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:49:26 +01:00
Itms
0651c11977
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.

(cherry picked from commit 6ac5c376ea)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:48:51 +01:00
real_tabasco_sauce
5bd9a07731
Add gathering animations to the marian legionary
Fixes #7438

(cherry picked from commit 60d388804a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-28 06:48:06 +01:00
Itms
73b2eed323
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.

(cherry picked from commit e1ecc4a743)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:31 +01:00
Itms
4d2e7d6a70
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.

(cherry picked from commit 95fb0f9ed0)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:30 +01:00
Ralph Sennhauser
cc67acde62
Remove spurious fi in build-source-libs.sh
d15f1c29e4 added an extra fi, remove it.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
(cherry picked from commit efc9c09280)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:29 +01:00
Ralph Sennhauser
f14b29923e
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>
(cherry picked from commit 3aa95b7a28)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:28 +01:00
Ralph Sennhauser
0c154623b4
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>
(cherry picked from commit f9a43c8c40)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:27 +01:00
Dunedan
f9adb4379e
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.

(cherry picked from commit 4d19935f48)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:26 +01:00
Dunedan
d3d7ce587b
Fix vertical alignment of team summary
This fixes the vertical alignment of the team summarized values on the
summary screen.

Fixes #7527

(cherry picked from commit 8b40ce59ad)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:09:25 +01:00
Vantha
57b5f3f10d
Fix alignment issue with 'imgleft' and 'imgright'
Bug was introduced by f8d2927748.

Fixes #7397

(cherry picked from commit 7485b37ba3)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-20 22:07:59 +01:00
phosit
173100c5c3
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

(cherry picked from commit 068346b502)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-16 22:25:13 +01:00
freagarach
e33f37f6c9
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.

(cherry picked from commit 1d6f7f3837)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-15 20:09:07 +01:00
Dunedan
4097955704
Fix vertical alignment of main menu submenu items
(cherry picked from commit 5aa96cd282)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:30 +01:00
Dunedan
2366537c3b
Improve colormixer layout
(cherry picked from commit 5f086a7851)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:29 +01:00
Dunedan
ef6d5cf9e6
Refinement of space for multiplayer login
(cherry picked from commit 205cb812ea)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:28 +01:00
Dunedan
629571c692
Improve layout of the mod selection help window
(cherry picked from commit 9a276c04ff)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:27 +01:00
Dunedan
eaa983ef26
Fix size of red buttons in options window
(cherry picked from commit 5645aa7e97)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:26 +01:00
Dunedan
96d6ced313
Fix size of red buttons on summary screen
(cherry picked from commit 8a3719dc54)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:25 +01:00
Dunedan
8979abd6c2
Fix vertical alignment of dialog title
(cherry picked from commit 4efc04e5dc)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:24 +01:00
Dunedan
2927d5dc99
Remove some white space around the tips window
(cherry picked from commit a53cf7b963)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:22 +01:00
Dunedan
5f50224227
Improve spacing in the structure tree window
(cherry picked from commit c7b6b5147f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:21 +01:00
Dunedan
6aeb70dab8
Improve spacing in the unit detail window
(cherry picked from commit 34ba0d1092)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:20 +01:00
phosit
eec259543b
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

(cherry picked from commit 8292b0c646)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:19 +01:00
phosit
dcb8ef9b52
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

(cherry picked from commit fde696a401)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:21:18 +01:00
Dunedan
d41356a9cc
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.

(cherry picked from commit 235ea5cfb4)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:20:03 +01:00
Vladislav Belov
9259dd5ff9
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.

(cherry picked from commit cf9bc03ee9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-12 01:19:06 +01:00
Dunedan
b734e586aa
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.

(cherry picked from commit 73af7e61dd)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:40:35 +01:00
Langbart
19fda90656
fix: reset promoted worker metadata
fix: #7471
(cherry picked from commit 6b87a9b932)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:40:12 +01:00
Itms
beee5b2b8b
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.

(cherry picked from commit e48b9ea106)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:39:38 +01:00
Lancelot de Ferrière
13139bba6d
Fixup 6ab5483550 - handle unset values correctly
(cherry picked from commit e5c2193313)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:38:56 +01:00
Itms
8956a38616
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.

(cherry picked from commit 9f023825e0)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:38:11 +01:00
Vladislav Belov
3231d262ef
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.

(cherry picked from commit 8ee48a164a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:37:41 +01:00
Ralph Sennhauser
11aa7fdafa
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>
(cherry picked from commit edde9fb4ee)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:36:56 +01:00
wowgetoffyourcellphone
6df8952672
Fix projectile modifier oversight and references
Update trigger script
Update Attack.js component
Update the relevant techs
Update unit_tables.py

(cherry picked from commit c798a12815)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-08 14:36:02 +01:00
phosit
2a97089c94
Consistent coment length to seperate message-types
(cherry picked from commit 7c1a566d3e)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:57:17 +01:00
phosit
a4d1aebb74
Use early return when there is no message
(cherry picked from commit c32a747873)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:57:16 +01:00
elexis
da87b72e6a
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.

(cherry picked from commit c9e76efe7b)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:57:15 +01:00
elexis
26d4c1550e
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.)

(cherry picked from commit f932b8b9cc)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:57:14 +01:00
elexis
04636d393a
Fix changing view to observer
`id` was compared to the wrong player.
This defect was introduced in 023527e56e.

(cherry picked from commit e19a5eda9f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:55:56 +01:00
Vladislav Belov
83a3794ea3
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`.

(cherry picked from commit 0467d27b07)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-05 22:55:22 +01:00
Vladislav Belov
3531ac9041
Fixes GLES compilation.
(cherry picked from commit 54701868da)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:21:01 +01:00
elexis
21059ce390
Don't focus on spies for non-following observers
Missing since introduction in e14ad3c771.

(cherry picked from commit 88df5ec95f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:21:00 +01:00
elexis
b9705531e0
Fix vulnerability in spy-request
Introduced in d9d1f1bbeb.
This allowed draining an enemies metal resources by ordering spy-request
for that player.
Fixes #7230.

(cherry picked from commit 015aa0349b)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:20:59 +01:00
Lancelot de Ferrière
9798b9180b
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

(cherry picked from commit c20ca02911)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:20:18 +01:00
Lancelot de Ferrière
85363e861e
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.

(cherry picked from commit a8fc3cf254)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:19:23 +01:00
Lancelot de Ferrière
795af45a7a
Fix sounds playing in the wrong places of the map
Introduced by a typo in f8afd49ae1.
Fixes #7345, reported by wowgetoffyourcellphone

(cherry picked from commit fba5a23aad)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:18:46 +01:00
Lancelot de Ferrière
8b5621e822
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.

(cherry picked from commit 3756e12701)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-04 23:18:11 +01:00
Feldfeld
56186d8621
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

(cherry picked from commit 5c25b6f644)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:52:20 +01:00
Itms
6cdf1d5a15
Sign and notarize macOS bundles
(cherry picked from commit 2482ecf9fe)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:51:17 +01:00
Itms
90762a7626
Fix another macOS lib download source
(cherry picked from commit 604d4ce29c)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:50:49 +01:00
Dunedan
4138d53f23
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.

(cherry picked from commit 33e9cd6126)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:50:20 +01:00
Lancelot de Ferrière
5ca63d19b8
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.

(cherry picked from commit 2f7ac026c1)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:49:34 +01:00
phosit
438e883ff9
Assign players to their slot from the savegame.
Based on a patch from @elexis.

(cherry picked from commit a1a08f1890)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:49:06 +01:00
phosit
d5e5f0c508
Simplify playerassignments code
Deduplicate a check by moving it to isSlotAvailable.

Based on a patch by @elexis.

(cherry picked from commit eafcb814cd)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-03 22:48:47 +01:00
Lancelot de Ferrière
baa1982e8a
Fix autostart issues reported by langbart in 2535e5f5b4
(cherry picked from commit e24d01b0b1)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:24:42 +01:00
Lancelot de Ferrière
f55d8fabca
Fix Identity serialization following 533429e800
Failed to notice that name and controllable were sometimes changed.

(cherry picked from commit e15ffd70b7)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:24:14 +01:00
phosit
1914d1a0c2
Fix wrong variable name in caledonian_meadows
Defect introduced in 22a8f367f8.

(cherry picked from commit 9e740c84b9)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:23:40 +01:00
phosit
1ea9c6dbb9
Fix error on large hights in Belgian Uplands
Defect introduced in 163063c2a4.

(cherry picked from commit 54ce60e965)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:23:39 +01:00
phosit
c4dbfc9c4b
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.

(cherry picked from commit 82513c9104)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:23:38 +01:00
wowgetoffyourcellphone
275fd94ef1
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

(cherry picked from commit da761ca501)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:22:50 +01:00
Stan
6187a75650
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

(cherry picked from commit bce3a2a170)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:20:53 +01:00
Stan
b4a53f9c14
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

(cherry picked from commit fd78034885)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:20:03 +01:00
Stan
d23c408ae0
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

(cherry picked from commit dc60a095dc)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:19:10 +01:00
Stan
7e93b1ebfb
Rename Ship Combat Demo to match conventions
Reported by: @Langbart
Refs #7422

(cherry picked from commit 7315b4e59f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:18:35 +01:00
Dunedan
eb937613ed
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.

(cherry picked from commit 1aeb19b535)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:17:23 +01:00
phosit
fb2255f7ee
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.

(cherry picked from commit fb9b02a9ba)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:07 +01:00
phosit
8e3f5aa672
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.

(cherry picked from commit 5c860c3121)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:07 +01:00
phosit
e170daf3fc
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.

(cherry picked from commit b52c1c137f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:06 +01:00
phosit
29fe043806
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

(cherry picked from commit 199aa8ac35)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:05 +01:00
phosit
5acddfec27
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.

(cherry picked from commit 8636e4d0fd)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:04 +01:00
phosit
1b9dcba148
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.

(cherry picked from commit 4c48661b4f)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:16:03 +01:00
phosit
c5d2ace30c
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.

(cherry picked from commit 96aa283e6a)
Signed-off-by: Itms <itms@wildfiregames.com>
2025-01-01 22:15:57 +01:00
Vantha
cd34f75f03
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.

(cherry picked from commit 33111dc816)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-29 22:26:50 +01:00
Vantha
423bed914c
Fix incorrect SpecificName syntax introduced in 94baa560b1
(cherry picked from commit 314bc4185b)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-29 22:26:36 +01:00
Dunedan
88aac575d9
Add a deprecation warning for using GetFileMTime()
(cherry picked from commit 894e349ebf)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-29 22:25:43 +01:00
Dunedan
9cb6599112
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

(cherry picked from commit ab0aee4cfa)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-29 22:25:25 +01:00
Dunedan
d3062cdfda
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.

(cherry picked from commit 1268854587)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-29 22:24:40 +01:00
Dunedan
cece45f305
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.

(cherry picked from commit fc7e4ae69e)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:31:30 +01:00
Lancelot de Ferrière
4a463e4476
Fix pre A25 savegame compatibility
(cherry picked from commit 099a718e62)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:31:09 +01:00
wowgetoffyourcellphone
f3f8148a73
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

(cherry picked from commit ba24b46693)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:30:29 +01:00
wowgetoffyourcellphone
d125cf40a5
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

(cherry picked from commit 67bed64fd1)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:30:02 +01:00
phosit
ccd9cadab2
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.

(cherry picked from commit e04506814a)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:29:08 +01:00
elexis
fb84643c6d
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.

(cherry picked from commit 023527e56e)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:27:27 +01:00
Lancelot de Ferrière
ef9001e7bf
Fix tutorial autostart
(cherry picked from commit 40d3ea33d8)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-28 11:25:25 +01:00
scuti
99ebeeb39b
Skip playing audio of corrupted files.
Prints a warning instead of crashing.

Fixes #7150

(cherry picked from commit a81c38bab9)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-26 22:33:19 +01:00
Ralph Sennhauser
2b8a4fabcf
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>
(cherry picked from commit fb24d75f0e)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-26 22:31:01 +01:00
Dunedan
11234558b7
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.

(cherry picked from commit 870b356ad9)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-25 22:51:00 +01:00
real_tabasco_sauce
fdc8f718a9
Add "new" keyword to migration, foothills, and coast range
Fixes #7362

(cherry picked from commit a4541a1745)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-25 22:49:59 +01:00
Stan
b08cf81fff
Fix casting autostart-size
(cherry picked from commit b579e68d5d)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-24 17:14:40 +01:00
elexis
7c6d2eef93
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.

(cherry picked from commit d12c015d43)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-23 10:34:26 +01:00
elexis
c689991b9e
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.

(cherry picked from commit 5b33dd0143)
Signed-off-by: Itms <itms@wildfiregames.com>
2024-12-23 10:32:52 +01:00
5332 changed files with 169596 additions and 3091852 deletions

View file

@ -5,13 +5,6 @@ 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
@ -19,7 +12,6 @@ indent_style = space
[*.sh]
indent_style = tab
function_next_line = true
simplify = true
switch_case_indent = true
[*.{yaml,yml}]
@ -28,10 +20,3 @@ 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

View file

@ -6,18 +6,18 @@
ruff\\.toml @Dunedan
## == Build & Libraries
(build|libraries)/.* @Itms @Stan @sera
(build|libraries)/.* @Itms @Stan
## == Engine
source/(lib|maths|ps)/.* @vladislavbelov @sera
source/(lib|maths|ps)/.* @vladislavbelov
## GUI
source/gui/.* @vladislavbelov @trompetin17
#source/gui/
## Rendering
source/(collada|graphics|renderer)/.* @vladislavbelov
## Multiplayer
source/(lobby|network)/.* @Phosit
#source/(lobby|network)/.*
## Simulation
source/simulation2/.* @wraitii @Itms @Phosit @sera
source/simulation2/.* @wraitii @Itms
## == Tools
source/tools/.*\\.py @Dunedan
@ -28,19 +28,19 @@ source/tools/spirv/.* @vladislavbelov
## == Scripts
## GUI
binaries/data/mods/public/gui/.* @Vantha @wraitii
binaries/data/mods/public/gui/.* @Imarok @s0600204 @wraitii @marder
## AI
binaries/data/mods/public/simulation/ai/.* @Phosit
binaries/data/mods/public/simulation/ai/.* @Freagarach
## Balancing
binaries/data/mods/public/simulation/(data|templates)/.* @real_tabasco_sauce
binaries/data/mods/public/simulation/(data|templates)/.* @0ad/Balancers
## == Assets
## Art
binaries/data/mods/public/art/.* @wowgetoffyourcellphone @Stan
binaries/data/mods/public/art/.* @wowgetoffyourcellphone @wackyserious @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
binaries/data/mods/public/maps/.* @smiley @marder
## Shaders
binaries/data/mods/(mod|public)/shaders/.* @vladislavbelov

View file

@ -1,7 +0,0 @@
---
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

@ -1,8 +1,8 @@
---
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"
about: "This is a special issue template for planning Alpha releases. DO NOT USE it for normal issue reports."
title: "[RELEASE PROCESS] Alpha XX"
labels:
- "Type/Task"
@ -10,16 +10,14 @@ labels:
---
*Please fill out relevant information in the next line, set Milestone to the relevant Release, then delete this line.*
*Please fill out relevant information in the next line, set Milestone to the relevant Alpha and Branch/Tag to the relevant release branch when it's created. Then delete this line.*
# Release XX Process
# Alpha XX Release 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.
This task tracks the progress of the next Alpha 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 Alpha.
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:** @
@ -38,19 +36,15 @@ Here are the Release Blocking issues currently delaying the release:
- [ ] [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)
- [ ] [Create a `release-aXX` branch](wiki/ReleaseProcess#create-a-release-axx-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)
@ -75,35 +69,15 @@ Before moving on with Full Freeze, make sure that:
- [ ] [Update appdata.xml](wiki/ReleaseProcess#update-appdataxml)
- [ ] [Freeze Jenkins](wiki/ReleaseProcess#freeze-jenkins)
- [ ] [Confirm full freeze](wiki/ReleaseProcess#confirm-full-freeze)
- [ ] [Package East Asian mods](wiki/ReleaseProcess#package-east-asian-mods)
- [ ] [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)
- [ ] [Upload to Sourceforge and IndieDB](wiki/ReleaseProcess#upload-to-sourceforge-and-indiedb)
- [ ] [Move the lobby](wiki/ReleaseProcess#move-the-lobby)
- [ ] [Publish announcement](wiki/ReleaseProcess#publish-announcement)
- [ ] [Notify packagers](wiki/ReleaseProcess#notify-packagers)

View file

@ -3,74 +3,22 @@ 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: 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 ''
- name: Download necessary LFS assets
run: git lfs pull -I binaries/data/mods/public/maps
- name: Check for missing references
run: |
./source/tools/entity/checkrefs.py \
--check-map-xml \
--validate-templates \
--validate-actors \
--validate-meshes
run: ./source/tools/entity/checkrefs.py

View file

@ -1,83 +0,0 @@
---
# 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 }}

14
.gitignore vendored
View file

@ -12,9 +12,7 @@ build/workspaces/*
# Libraries
libraries/macos
libraries/win32
libraries/win64
libraries/source/cpp-httplib/*
libraries/source/cxxtest-4.4/*
libraries/source/fcollada/*
libraries/source/nvtt/*
@ -26,14 +24,9 @@ libraries/source/spirv-reflect/*
!libraries/source/**/patches/
# Tools
appimage-build/
archives/
build/bin/
source/tools/spirv/rules.json
# Linting
cppcheck-error.log
copyright-check-error.log
source/tools/spirv/rules.*.json
# Files generated by running premake5
build/premake/.gccmachine.tmp
@ -70,7 +63,6 @@ binaries/data/mods/public/gui/credits/texts/translators.json
*.pot
# Packaged mods and tarballs
*.AppImage
*.pyromod
*.zip
*.tar
@ -91,10 +83,6 @@ 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

View file

@ -1,15 +0,0 @@
{
"extends": "recommended-jenkinsfile",
"rules": {
"formatting.LineLength": {
"length": 300,
"severity": "info"
},
"size.NestedBlockDepth": {
"maxNestedBlockDepth": 15
},
"formatting.DuplicateNumberLiteral": "off",
"formatting.DuplicateMapLiteral": "off",
"formatting.DuplicateStringLiteral": "off"
}
}

View file

@ -1,8 +0,0 @@
# 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

View file

@ -1,13 +1,8 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
rev: v4.6.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
@ -23,26 +18,16 @@ repos:
^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
rev: v0.6.1
hooks:
- id: ruff-check
- id: ruff
args:
- --output-format=full
exclude: ^source/tools/webservices/
- id: ruff-format
args:
- --diff
- --check
exclude: ^source/tools/webservices/
- repo: local
hooks:
@ -56,39 +41,29 @@ repos:
files: ^binaries/
exclude: (^binaries/data/mods/(mod|public)/art/.*\.xml|\.dae$)
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
rev: v3.9.0-1
hooks:
- id: shfmt
args:
- --diff
- --simplify
stages: [pre-commit]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
rev: v0.10.0.1
hooks:
- id: shellcheck
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
rev: v0.41.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
rev: v1.35.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

View file

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

View file

@ -27,10 +27,10 @@ please inform Wildfire Games at webmaster at wildfiregames dot com.
- binaries/data/mods/*/maps/
- see LICENSE.txt within those directories
- binaries/data/mods/mod/shaders/glsl/fxaa.fs
- binaries/data/mods/public/shaders/glsl/fxaa.fs
- BSD
- binaries/data/mods/mod/shaders/glsl/cas.fs
- binaries/data/mods/public/shaders/glsl/cas.fs
- MIT
- binaries/system/
@ -81,6 +81,9 @@ please inform Wildfire Games at webmaster at wildfiregames dot com.
- source/third_party/mikktspace/
- zlib
- source/third_party/mongoose/
- MIT - see license_mit.txt
- source/third_party/tinygettext/
- zlib
@ -93,8 +96,8 @@ please inform Wildfire Games at webmaster at wildfiregames dot com.
- 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/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.

View file

@ -8,10 +8,6 @@
[![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.

View file

@ -138,10 +138,6 @@ 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
@ -160,15 +156,6 @@ 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 = true
@ -199,15 +186,8 @@ 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
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
server.port = "8000" ; Use a free port on your machine.
server.threads = "6" ; Enough for the browser's parallel connection limit
[hotkey]
; Each one of the specified keys will trigger the action on the left
@ -225,19 +205,12 @@ 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
@ -245,7 +218,7 @@ paste = "Ctrl+V" ; Paste from clipboard
cut = "Ctrl+X" ; Cut selected text and copy to the clipboard
; > CONSOLE SETTINGS
console.toggle = F9 ; Open/close console
console.toggle = BackQuote, F9 ; Open/close console
; > OVERLAY KEYS
fps.toggle = "Alt+F" ; Toggle frame counter
@ -266,8 +239,7 @@ quickload = "Shift+F8"
reset = "R" ; Reset camera rotation to default.
follow = "" ; Follow the first unit in the selection
rallypointfocus = "" ; Focus the camera on the rally point of the selected building
lastattackfocus = BackQuote ; Focus the camera on the last notified attack
togglebirdseyeview = "Shift+Tab" ; Toggle bird's eye view
lastattackfocus = "Space" ; Focus the camera on the last notified attack
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)
@ -283,12 +255,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+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
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
[hotkey.camera.jump]
1 = F5 ; Jump to position N
@ -333,12 +305,6 @@ 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]
1 = "Shift+1", "Shift+Num1"
2 = "Shift+2", "Shift+Num2"
@ -372,27 +338,9 @@ hero = Alt+Z
8 = 8, Num8
9 = 9, Num9
10 = 0, Num0
[hotkey.selection.structures]
barracks = "Ctrl+X"
stable = "Ctrl+Z"
civil_centre = "Ctrl+C"
[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.gamesetup]
mapbrowser.open = "M"
[hotkey.session]
kill = Delete, Backspace ; Destroy selected units
@ -431,21 +379,21 @@ flareactivate = "" ; Modifier to activate the mode to send a flare to
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 = "" ; 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
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
[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
matchsettings.toggle = "Ctrl+O" ; Toggle in-game match settings page
objectives.toggle = "Ctrl+O" ; Toggle in-game objectives page
tutorial.toggle = "Ctrl+P" ; Toggle in-game tutorial panel
[hotkey.session.savedgames]
@ -522,7 +470,6 @@ selectformationasone = "true" ; Whether to select formations as a whole by defau
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
@ -555,16 +502,16 @@ extended = true ; Whether to display the chat history
[lobby]
history = 0 ; Number of past messages to display on join
room = "arena29" ; Default MUC room to join
room = "arena27" ; 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 = true ; Whether to reject connecting to the lobby if the TLS certificate is invalid
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://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 = "wfgbot29" ; Name of the server-side XMPP-account that manage games
echelon = "echelon29" ; Name of the server-side XMPP-account that manages ratings
xpartamupp = "wfgbot27" ; Name of the server-side XMPP-account that manage games
echelon = "echelon27" ; 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
@ -572,6 +519,8 @@ 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 = 10 ; Duration in milliseconds that is waited between checking for retrieved STUN responses.
@ -587,7 +536,7 @@ enabledmods = "mod public"
[modio]
public_key = "RWRoZZuNzi1wX+Hs5NKAf+GghHwye3mFePfBzOFt3mqYUZAkqAvs69W2" ; Public key corresponding to the private key valid mods are signed with
public_key = "RWQv2alKl8D0zMDJR766jpYvPy4u3y77HL/iKb/lsT1Fnf6ezoMb2x8+" ; 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]
@ -608,13 +557,13 @@ 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.
[rlinterface]
address = "127.0.0.1:6000"
[dapinterface]
address = "127.0.0.1"
port = 9229
[sound]
mastergain = 0.9
musicgain = 0.2
@ -651,7 +600,6 @@ 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
@ -667,56 +615,3 @@ 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

@ -7,5 +7,5 @@
; order. The precense of this file suppresses loading of mods in the user mod
; 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,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<objects>
<script file="gui/OpenRequest/Continuation/Script.js"/>
</objects>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,13 +0,0 @@
async function init()
{
const result = await Engine.OpenChildPage("OpenRequest/Entry/Page.xml");
await new Promise(closePageCallback =>
{
globalThis.closePageCallback = () =>
{
closePageCallback();
return result;
};
});
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -6,8 +6,7 @@ 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;

View file

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

View file

@ -1,15 +1,13 @@
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;

View file

@ -1,5 +0,0 @@
<?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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,612 @@
101
256 256
a
606
15
12
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

Binary file not shown.

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,3 +0,0 @@
await undefined;
// `import "blabbermouth.js";` would be hoisted before the await resulting in it not being delayed.
log("blah blah blah");

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,18 +0,0 @@
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

@ -1,8 +0,0 @@
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

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1 +0,0 @@
throw new Error("This script should't be evaluated.");

View file

@ -1,7 +0,0 @@
// Even though this is local to the module, it's visible to other appendixes.
function appendToResult(fun, str)
{
return () => fun() + str;
}
fn = appendToResult(fn, "0");

View file

@ -1,4 +0,0 @@
if (import.meta.path !== "modified/base.js")
throw new Error("import.meta.path should be the path of the base.");
fn = appendToResult(fn, "1");

View file

@ -1 +0,0 @@
throw new Error("This script should't be evaluated.");

View file

@ -1 +0,0 @@
import("restriction/disallowedfile.js");

View file

@ -1 +0,0 @@
import "restriction/../restriction/disallowedfile.js";

View file

@ -1 +0,0 @@
import "restriction/disallowedfile.js";

View file

@ -1,2 +0,0 @@
await undefined;
await undefined;

View file

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

View file

@ -1 +0,0 @@
throw new Error("Test reason");

View file

@ -13,8 +13,7 @@ async function waitAndIncrement(promise)
{
let resolve;
const promise = new Promise(res =>
{
const promise = new Promise(res => {
incrementTest();
resolve = res;
});

View file

@ -11,10 +11,7 @@ function Vector2D(x, y)
this.y = y;
}
else
{
this.x = 0;
this.y = 0;
}
this.x = this.y = 0;
}
Vector2D.prototype.add = function(v)
@ -33,11 +30,7 @@ function Vector3D(x, y, z)
this.z = z;
}
else
{
this.x = 0;
this.y = 0;
this.z = 0;
}
this.x = this.y = this.z = 0;
}
Vector3D.prototype.add = function(v)
{

View file

@ -2,13 +2,11 @@ function TestScript2A() {}
TestScript2A.prototype.Schema = "<ref name='anything'/>";
TestScript2A.prototype.Init = function()
{
TestScript2A.prototype.Init = function() {
this.x = eval(this.template.y);
};
TestScript2A.prototype.GetX = function()
{
TestScript2A.prototype.GetX = function() {
return this.x;
};

View file

@ -1,21 +1,16 @@
function TestScript1A() {}
TestScript1A.prototype.GetX = function()
{
TestScript1A.prototype.GetX = function() {
// Test that .entity is readonly
try
{
try {
delete this.entity;
Engine.TS_FAIL("Missed exception");
}
catch(e) { /* noop */ }
try
{
} catch (e) { }
try {
this.entity = -1;
Engine.TS_FAIL("Missed exception");
}
catch(e) { /* noop */ }
} catch (e) { }
// and return the value
return this.entity;
};

View file

@ -1,7 +1,6 @@
function TestScript1_Helper() {}
TestScript1_Helper.prototype.GetX = function()
{
TestScript1_Helper.prototype.GetX = function() {
return AdditionHelper(1, 2);
};

View file

@ -2,13 +2,11 @@ function HotloadA() {}
HotloadA.prototype.Schema = "<ref name='anything'/>";
HotloadA.prototype.Init = function()
{
HotloadA.prototype.Init = function() {
this.x = +this.template.x;
};
HotloadA.prototype.GetX = function()
{
HotloadA.prototype.GetX = function() {
return this.x;
};
@ -17,13 +15,11 @@ Engine.RegisterComponentType(IID_Test1, "HotloadA", HotloadA);
function HotloadB() {}
HotloadB.prototype.Init = function()
{
HotloadB.prototype.Init = function() {
this.x = +this.template.x;
};
HotloadB.prototype.GetX = function()
{
HotloadB.prototype.GetX = function() {
return this.x * 2;
};

View file

@ -2,13 +2,11 @@ function HotloadA() {}
HotloadA.prototype.Schema = "<ref name='anything'/>";
HotloadA.prototype.Init = function()
{
HotloadA.prototype.Init = function() {
this.x = +this.template.x;
};
HotloadA.prototype.GetX = function()
{
HotloadA.prototype.GetX = function() {
return this.x*10;
};

View file

@ -2,13 +2,11 @@ function Modding() {}
Modding.prototype.Schema = "<ref name='anything'/>";
Modding.prototype.Init = function()
{
Modding.prototype.Init = function() {
this.x = +this.template.x;
};
Modding.prototype.GetX = function()
{
Modding.prototype.GetX = function() {
return this.x;
};

Some files were not shown because too many files have changed in this diff Show more