1
0
forked from mirrors/0ad

Compare commits

...

94 Commits

Author SHA1 Message Date
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
518 changed files with 2134 additions and 1162 deletions
+1 -1
View File
@@ -482,7 +482,7 @@ phase = completed ; Show a chat notification if you or an ally h
[gui.splashscreen]
enable = true ; Enable/disable the splashscreen
version = 0 ; Splashscreen version (date of last modification). By default, 0 to force splashscreen to appear at first launch
version = 0 ; Splashscreen version (MD5 hash of file content). By default, 0 to force splashscreen to appear at first launch
[gui.session.diplomacycolors]
self = "21 55 149" ; Color of your units when diplomacy colors are enabled
@@ -19,5 +19,12 @@
<element name="BorderSeparation">
<data type="decimal"/>
</element>
<element name="VisibilityStatus">
<choice>
<value>off</value>
<value>hidden</value>
<value>visible</value>
</choice>
</element>
</interleave>
</element>
@@ -3,4 +3,5 @@
<ImpassableCost>4</ImpassableCost>
<BorderThickness>0.75</BorderThickness>
<BorderSeparation>0.85</BorderSeparation>
<VisibilityStatus>visible</VisibilityStatus>
</TerritoryManager>
@@ -26,10 +26,6 @@ class ColorMixer
const cancelHotkey = Engine.GetGUIObjectByName("cancelHotkey");
const lRDiff = this.width / 2;
const uDDiff = this.height / 2;
this.panel.size = "50%-" + lRDiff + " 50%-" + uDDiff + " 50%+" + lRDiff + " 50%+" + uDDiff;
const button = [];
const closePromise =
setButtonCaptionsAndVisibility(button, this.captions, cancelHotkey, "cmButton");
@@ -84,8 +80,6 @@ class ColorMixer
}
}
ColorMixer.prototype.width = 500;
ColorMixer.prototype.height = 400;
ColorMixer.prototype.labels = [translate("Red"), translate("Green"), translate("Blue")];
ColorMixer.prototype.captions = [translate("Cancel"), translate("Save")];
@@ -11,15 +11,16 @@
<object name="main"
style="ModernDialog"
type="image"
size="50%-250 50%-185 50%+250 50%+185"
>
<object name="titleBar"
style="ModernLabelText"
type="text"
size="50%-128 -18 50%+128 14"
/>
<object name="infoLabel" size="10 50 100%-10 80" type="text" style="ModernLabelText"/>
<object name="colorDisplay" type="image" size="50%-40 90 50%+40 90+40"/>
<object size="10 150 100%-10 100%">
<object name="infoLabel" size="24 50 100%-24 80" type="text" style="ModernLabelText"/>
<object name="colorDisplay" type="image" size="50%-32 105 50%+32 145"/>
<object size="10 165 100%-10 100%-48">
<repeat count="3">
<object name="color[n]" size="0 0 100% 40">
<object name="colorLabel[n]" size="0 0 100% 20" type="text" style="ModernLabelText"/>
@@ -8,7 +8,7 @@
<!-- Add a translucent black background to fade out the menu page -->
<object type="image" sprite="ModernFade"/>
<object type="image" style="ModernDialog" size="50%-466 50%-316 50%+466 50%+316">
<object type="image" style="ModernDialog" size="50%-340 50%-275 50%+340 50%+275">
<object name="title" style="ModernLabelText" type="text" size="50%-128 -18 50%+128 14">
<translatableAttribute id="caption">Pyrogenesis Mod Selector</translatableAttribute>
</object>
@@ -17,15 +17,15 @@
<object name="mainText" type="text" style="ModernTextPanel"/>
</object>
<object type="button" style="ModernButtonRed" tooltip_style="snToolTip" size="100%-602 100%-52 100%-412 100%-24" hotkey="cancel">
<object type="button" style="ModernButtonRed" tooltip_style="snToolTip" size="0%+24 100%-52 33%-4 100%-24" hotkey="cancel">
<translatableAttribute id="caption">Close</translatableAttribute>
<action on="Press">Engine.PopGuiPage();</action>
</object>
<object type="button" style="ModernButtonRed" size="100%-408 100%-52 100%-218 100%-24">
<object type="button" style="ModernButtonRed" size="33%+4 100%-52 66%-4 100%-24">
<translatableAttribute id="caption">Modding Guide</translatableAttribute>
<action on="Press">Engine.OpenURL("https://gitea.wildfiregames.com/0ad/0ad/wiki/Modding_Guide");</action>
</object>
<object type="button" style="ModernButtonRed" size="100%-214 100%-52 100%-24 100%-24">
<object type="button" style="ModernButtonRed" size="66%+4 100%-52 100%-24 100%-24">
<translatableAttribute id="caption">Visit mod.io</translatableAttribute>
<action on="Press">Engine.OpenURL("https://mod.io");</action>
</object>
+3 -3
View File
@@ -13,7 +13,7 @@
</object>
<!-- Filter Panel -->
<object size="0 40 312 64">
<object size="0 40 350 64">
<object name="modGenericFilter"
type="input"
style="ModernInput"
@@ -38,7 +38,7 @@
</object>
</object>
<object size = "100%-200 40 100%-20 64">
<object size = "100%-275 40 100%-20 64">
<object name="modCompatibleFilter"
type="checkbox"
checked="false"
@@ -55,7 +55,7 @@
<object
name="globalModDescription"
type="text"
size="312 32 100%-16 69"
size="350 32 100%-16 69"
textcolor="180 180 180"
text_align="left"
text_valign="center"
@@ -13,5 +13,12 @@
<element name="BorderSeparation">
<data type="decimal"/>
</element>
<element name="VisibilityStatus">
<choice>
<value>off</value>
<value>hidden</value>
<value>visible</value>
</choice>
</element>
</interleave>
</element>
@@ -3,4 +3,5 @@
<ImpassableCost>4</ImpassableCost>
<BorderThickness>0.75</BorderThickness>
<BorderSeparation>0.85</BorderSeparation>
<VisibilityStatus>visible</VisibilityStatus>
</TerritoryManager>
@@ -6,10 +6,11 @@
<mesh>props/capitoline_wolf.dae</mesh>
<textures>
<texture file="props/capitoline_wolf_diffuse.png" name="baseTex"/>
<texture file="props/ao/capitoline_wolf.png" name="aoTex"/>
<texture file="props/capitoline_wolf_norm.png" name="normTex"/>
<texture file="props/capitoline_wolf_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -6,10 +6,11 @@
<mesh>props/capitoline_wolf_prop.dae</mesh>
<textures>
<texture file="props/capitoline_wolf_diffuse.png" name="baseTex"/>
<texture file="props/ao/capitoline_wolf.png" name="aoTex"/>
<texture file="props/capitoline_wolf_norm.png" name="normTex"/>
<texture file="props/capitoline_wolf_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -2,12 +2,13 @@
<actor version="1">
<castshadow/>
<group>
<variant>
<variant frequency="1" name="discobolus_cover">
<mesh>props/statue_discobolus_cover.dae</mesh>
<textures>
<texture file="props/statue_discobolus_diffuse.png" name="baseTex"/>
<texture file="props/statue_discobolus_spec.png" name="specTex"/>
<texture file="props/ao/statue_discobolus.png" name="aoTex"/>
<texture file="props/statue_discobolus_norm.png" name="normTex"/>
<texture file="props/statue_discobolus_spec.png" name="specTex"/>
</textures>
</variant>
</group>
@@ -6,10 +6,11 @@
<mesh>props/statue_poseidon.dae</mesh>
<textures>
<texture file="props/statue_poseidon_diffuse.png" name="baseTex"/>
<texture file="props/ao/statue_poseidon.png" name="aoTex"/>
<texture file="props/statue_poseidon_spec.png" name="specTex"/>
<texture file="props/statue_poseidon_norm.png" name="normTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -6,10 +6,11 @@
<mesh>props/statue_poseidon_cover.dae</mesh>
<textures>
<texture file="props/statue_poseidon_diffuse.png" name="baseTex"/>
<texture file="props/ao/statue_poseidon.png" name="aoTex"/>
<texture file="props/statue_poseidon_spec.png" name="specTex"/>
<texture file="props/statue_poseidon_norm.png" name="normTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -6,8 +6,8 @@
<mesh>props/hele_fortress_up_shields.dae</mesh>
<textures>
<texture file="props/athen_prop_shields.png" name="baseTex"/>
<texture name="specTex" file="null_white.dds"/>
<texture file="default_norm.png" name="normTex"/>
<texture file="props/athen_prop_shields_norm.png" name="normTex"/>
<texture file="props/athen_prop_shields_spec.png" name="specTex"/>
</textures>
</variant>
</group>
@@ -11,5 +11,5 @@
</textures>
</variant>
</group>
<material>player_trans_parallax_spec.xml</material>
<material>player_trans_parallax_spec.xml</material>
</actor>
@@ -6,10 +6,11 @@
<mesh>props/structural/colossus_cover.dae</mesh>
<textures>
<texture file="structural/colossus_diffuse.png" name="baseTex"/>
<texture file="structural/ao/colossus.png" name="aoTex"/>
<texture file="structural/colossus_norm.png" name="normTex"/>
<texture file="structural/specular_bronze.png" name="specTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -6,8 +6,9 @@
<mesh>structural/colossus_statue.dae</mesh>
<textures>
<texture file="structural/colossus_diffuse.png" name="baseTex"/>
<texture file="structural/specular_bronze.png" name="specTex"/>
<texture file="structural/ao/colossus.png" name="aoTex"/>
<texture file="structural/colossus_norm.png" name="normTex"/>
<texture file="structural/specular_bronze.png" name="specTex"/>
</textures>
</variant>
</group>
@@ -15,5 +16,5 @@
<variant frequency="1" name="alive"/>
<variant file="structures/destruction_small.xml"/>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -20,5 +20,13 @@
</textures>
</variant>
</group>
<group>
<variant name="ungarrisoned" frequency="1"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_hele.xml" attachpoint="garrisoned" selectable="false"/>
</props>
</variant>
</group>
<material>player_trans_ao_parallax_spec.xml</material>
</actor>
@@ -1,6 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<actor version="1">
<castshadow/>
<group>
<variant name="Base">
<textures>
<texture file="props/hele_tile_c.dds" name="baseTex"/>
<texture file="props/hele_tile_c_norm.png" name="normTex"/>
<texture file="props/hele_tile_c_spec.png" name="specTex"/>
</textures>
</variant>
</group>
<group>
<variant frequency="1" name="Temple A">
<mesh>structural/hele_temple_a_base.dae</mesh>
@@ -8,9 +17,6 @@
<prop actor="props/structures/hellenes/temple_a_columns.xml" attachpoint="root"/>
<prop actor="props/structures/hellenes/temple_a_struct.xml" attachpoint="root"/>
</props>
<textures>
<texture file="props/hele_tile_c.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="Temple B">
<mesh>structural/hele_temple_b_base.dae</mesh>
@@ -18,9 +24,6 @@
<prop actor="props/structures/hellenes/temple_b_struct.xml" attachpoint="root"/>
<prop actor="props/structures/hellenes/temple_b_columns.xml" attachpoint="root"/>
</props>
<textures>
<texture file="props/hele_tile_c.dds" name="baseTex"/>
</textures>
</variant>
<variant frequency="1" name="Temple C">
<mesh>structural/hele_temple_c_base.dae</mesh>
@@ -28,9 +31,6 @@
<prop actor="props/structures/hellenes/temple_b_struct.xml" attachpoint="root"/>
<prop actor="props/structures/hellenes/temple_c_columns.xml" attachpoint="root"/>
</props>
<textures>
<texture file="props/hele_tile_c.dds" name="baseTex"/>
</textures>
</variant>
</group>
<group>
@@ -45,13 +45,5 @@
<variant name="alive" frequency="1"/>
<variant file="structures/destruction_medium.xml"/>
</group>
<group>
<variant>
<textures>
<texture file="default_norm.png" name="normTex"/>
<texture file="null_black.dds" name="specTex"/>
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
</actor>
@@ -20,6 +20,14 @@
</textures>
</variant>
</group>
<group>
<variant name="ungarrisoned" frequency="1"/>
<variant name="garrisoned">
<props>
<prop actor="props/special/common/garrison_flag_hele.xml" attachpoint="garrisoned" selectable="false"/>
</props>
</variant>
</group>
<group>
<variant name="alive" frequency="1"/>
<variant file="structures/destruction_large.xml">
@@ -6,6 +6,7 @@
<mesh>props/capitoline_wolf_cult.dae</mesh>
<textures>
<texture file="props/capitoline_wolf_norm.png" name="normTex"/>
<texture file="props/ao/capitoline_wolf.png" name="aoTex"/>
</textures>
</variant>
</group>
@@ -23,5 +24,5 @@
</textures>
</variant>
</group>
<material>no_trans_norm_spec.xml</material>
<material>no_trans_ao_norm_spec.xml</material>
</actor>
@@ -9,7 +9,7 @@
<prop actor="props/units/helmets/pers_kidaris_tied.xml" attachpoint="helmet"/>
<prop actor="props/units/weapons/arrow_back.xml" attachpoint="weapon_R"/>
<prop actor="props/units/weapons/bow_recurve.xml" attachpoint="weapon_bow"/>
<prop actor="props/units/pers_quiver_back.xml" attachpoint="back"/>
<prop actor="props/units/quivers/pers_back.xml" attachpoint="back"/>
</props>
<textures>
<texture file="skeletal/pers/scale_01_spec.png" name="specTex"/>
@@ -94,17 +94,41 @@
</group>
<group>
<variant file="biped/base_swordsman_shield_relax_rome.xml"/>
<variant file="biped/attack_slaughter.xml"/>
<variant file="biped/attack_capture.xml"/>
<variant file="biped/gather_praise.xml"/>
<variant file="biped/death_infantry.xml"/>
<variant file="biped/formations/testudo_top.xml"/>
<variant file="biped/formations/testudo_front.xml"/>
<variant file="biped/formations/testudo_front_left.xml"/>
<variant file="biped/formations/testudo_front_right.xml"/>
<variant file="biped/formations/testudo_left.xml"/>
<variant file="biped/formations/testudo_right.xml"/>
<variant file="biped/carry_food.xml"/>
<variant file="biped/carry_meat.xml"/>
<variant file="biped/carry_wood.xml"/>
<variant file="biped/carry_stone.xml"/>
<variant file="biped/carry_metal.xml"/>
<variant file="biped/approach_tree.xml"/>
<variant file="biped/approach_grain.xml"/>
<variant file="biped/approach_fruit.xml"/>
<variant file="biped/approach_meat.xml"/>
<variant file="biped/approach_rock.xml"/>
<variant file="biped/approach_ore.xml"/>
<variant file="biped/approach_ruins.xml"/>
<variant file="biped/approach_praise.xml"/>
</group>
<group>
<variant frequency="1" name="Idle"/>
<variant file="biped/attack_capture.xml"/>
<variant file="biped/attack_slaughter.xml"/>
<variant file="biped/death_infantry.xml"/>
<variant file="biped/gather_tree.xml"/>
<variant file="biped/gather_grain.xml"/>
<variant file="biped/gather_fruit.xml"/>
<variant file="biped/gather_meat.xml"/>
<variant file="biped/gather_rock.xml"/>
<variant file="biped/gather_ore.xml"/>
<variant file="biped/gather_ruins.xml"/>
<variant file="biped/gather_praise.xml"/>
<variant file="biped/build.xml"/>
<variant file="biped/build_farm.xml"/>
</group>
<material>player_trans_norm_spec.xml</material>
</actor>
@@ -11,5 +11,5 @@
<shader effect="model_transparent"/>
<uniform name="windData" value="6.0 6.0"/>
<!-- TODO: use a separate material for translucent models. -->
<uniform name="effectSettings" value="0.0 50.0 0.0075"/>
<uniform name="effectSettings" value="0.0 50.0 0.0075 1.0"/>
</material>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/cliff_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/cliff_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/cliff_02_norm.png"/>
<texture name="specTex" file="types/india/cliff_02_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/cliff_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/cliff_01_spec.png"/>
</textures>
<props size="32.0" angle="-45.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/cliff_seaside_02_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/cliff_seaside_02_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/cliff_seaside_02_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/cliff_seaside_02_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/rocks_dirt_01_norm.png"/>
<texture name="specTex" file="types/india/rocks_dirt_01_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_01_norm.png"/>
<texture name="specTex" file="types/india/dirt_01_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -2,7 +2,7 @@
<terrain>
<textures>
<texture name="baseTex" file="types/aegean_anatolia/farmland_01.png"/>
<texture name="normTex" file="types/aegean_anatolia/farmland_01_norm.png"/>
<texture name="normTex" file="types/furrows_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/farmland_01_spec.png"/>
</textures>
<material>terrain_norm_spec.xml</material>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<terrain>
<textures>
<texture name="baseTex" file="types/aegean_anatolia/farmland_01.png"/>
<texture name="normTex" file="types/furrows_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/farmland_01_spec.png"/>
</textures>
<props size="24.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_03_norm.png"/>
<texture name="specTex" file="types/india/dirt_03_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/temperate/cliff_01_norm.png"/>
<texture name="specTex" file="types/temperate/cliff_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/ocean_coral_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/ocean_coral_01_spec.png"/>
</textures>
<props size="48.0"/>
<props size="48.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/paving_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/paving_01_spec.png"/>
</textures>
<props size="20.0" angle="-45.0"/>
<props size="30.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -2,9 +2,9 @@
<terrain>
<textures>
<texture name="baseTex" file="types/aegean_anatolia/paving_02.png"/>
<texture name="normTex" file="types/aegean_anatolia/paving_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/paving_01_spec.png"/>
<texture name="normTex" file="types/aegean_anatolia/paving_02_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/paving_02_spec.png"/>
</textures>
<props size="20.0" angle="-45.0"/>
<props size="20.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/paving_03_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/paving_03_spec.png"/>
</textures>
<props size="18.0"/>
<material>terrain_norm_spec.xml</material>
<props size="18.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/rocks_dirt_01_norm.png"/>
<texture name="specTex" file="types/india/rocks_dirt_01_spec.png"/>
</textures>
<props size="100.0"/>
<props size="100.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/rocks_dirt_01_norm.png"/>
<texture name="specTex" file="types/india/rocks_dirt_01_spec.png"/>
</textures>
<props size="80.0"/>
<props size="80.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/rocks_grass_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/rocks_grass_01_spec.png"/>
</textures>
<props size="32.0" angle="180.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/aegean_anatolia/rocks_grass_01_norm.png"/>
<texture name="specTex" file="types/aegean_anatolia/rocks_grass_01_spec.png"/>
</textures>
<props size="32.0" angle="180.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/persia/dirt_plants_01_norm.png"/>
<texture name="specTex" file="types/persia/dirt_plants_01_spec.png"/>
</textures>
<props size="45.0"/>
<material>terrain_norm_spec.xml</material>
<props size="45.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/persia/dirt_plants_01_norm.png"/>
<texture name="specTex" file="types/persia/dirt_plants_01_spec.png"/>
</textures>
<props size="45.0"/>
<props size="45.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/sahara/sand_04_norm.png"/>
<texture name="specTex" file="types/sahara/sand_04_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/sahara/sand_04_norm.png"/>
<texture name="specTex" file="types/sahara/sand_04_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/sahara/sand_01_norm.png"/>
<texture name="specTex" file="types/sahara/sand_01_spec.png"/>
</textures>
<props size="100.0"/>
<props size="100.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/sahara/sand_01_norm.png"/>
<texture name="specTex" file="types/sahara/sand_01_spec.png"/>
</textures>
<props size="100.0"/>
<props size="100.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/african_savanna/dirt_01_norm.png"/>
<texture name="specTex" file="types/african_savanna/dirt_01_spec.png"/>
</textures>
<props size="48.0" angle="135.0"/>
<props size="48.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/sahara/dirt_cracks_01_norm.png"/>
<texture name="specTex" file="types/sahara/dirt_cracks_01_spec.png"/>
</textures>
<props size="40.0" angle="45.0"/>
<props size="40.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<terrain>
<textures>
<texture name="baseTex" file="types/persia/dirt_plants_01.png"/>
<texture name="baseTex" file="types/african_savanna/dirt_plants_01.png"/>
<texture name="normTex" file="types/persia/dirt_plants_01_norm.png"/>
<texture name="specTex" file="types/persia/dirt_plants_01_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_03_norm.png"/>
<texture name="specTex" file="types/india/dirt_03_spec.png"/>
</textures>
<props size="60.0" angle="180.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/temperate/grass_dirt_01_norm.png"/>
<texture name="specTex" file="types/temperate/grass_dirt_01_spec.png"/>
</textures>
<props size="70.0"/>
<props size="70.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/grass_02_norm.png"/>
<texture name="specTex" file="types/india/grass_02_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/african_savanna/mud_01_norm.png"/>
<texture name="specTex" file="types/african_savanna/mud_01_spec.png"/>
</textures>
<props size="48.0"/>
<props size="48.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/mud_01_norm.png"/>
<texture name="specTex" file="types/india/mud_01_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/african_savanna/cliff_01_norm.png"/>
<texture name="specTex" file="types/african_savanna/cliff_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/african_savanna/cliff_01_norm.png"/>
<texture name="specTex" file="types/african_savanna/cliff_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/african_savanna/cliff_01_norm.png"/>
<texture name="specTex" file="types/african_savanna/cliff_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_01_norm.png"/>
<texture name="specTex" file="types/india/dirt_01_spec.png"/>
</textures>
<props size="60.0"/>
<props size="60.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/rocks_dirt_01_norm.png"/>
<texture name="specTex" file="types/india/rocks_dirt_01_spec.png"/>
</textures>
<props size="100.0"/>
<props size="100.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_03_norm.png"/>
<texture name="specTex" file="types/india/dirt_03_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/dirt_03_norm.png"/>
<texture name="specTex" file="types/india/dirt_03_spec.png"/>
</textures>
<props size="32.0"/>
<props size="32.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/grass_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/grass_01_spec.png"/>
</textures>
<props size="40.0"/>
<props size="40.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/ice_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/ice_01_spec.png"/>
</textures>
<props size="70.0"/>
<props size="70.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/paving_stones_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/paving_stones_01_spec.png"/>
</textures>
<props size="30.0"/>
<props size="30.0" angle="-45.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/paving_stones_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/paving_stones_01_spec.png"/>
</textures>
<props size="30.0"/>
<props size="30.0" angle="-45.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/cliff_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/cliff_01_spec.png"/>
</textures>
<props size="80.0"/>
<props size="80.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/india/cliff_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/cliff_01_spec.png"/>
</textures>
<props size="80.0"/>
<props size="80.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/cliff_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/cliff_02_spec.png"/>
</textures>
<props size="80.0"/>
<props size="80.0" angle="0.0"/>
<material>terrain_normstrong_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/cliff_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/cliff_02_spec.png"/>
</textures>
<props size="80.0"/>
<props size="80.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/gravel_dirt_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/gravel_dirt_01_spec.png"/>
</textures>
<props size="36.0"/>
<props size="36.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/snow_01_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/snow_01_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>
@@ -5,6 +5,6 @@
<texture name="normTex" file="types/alpine_arctic/snow_02_norm.png"/>
<texture name="specTex" file="types/alpine_arctic/snow_02_spec.png"/>
</textures>
<props size="64.0"/>
<props size="64.0" angle="0.0"/>
<material>terrain_norm_spec.xml</material>
</terrain>

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