Commit Graph

21076 Commits

Author SHA1 Message Date
Imarok 00aeebea6d Add getTextSize() for CButton
Summary: 9c5062147a introduced the `getTextSize()` to all GUIObjects for
getting the rendered size of a text. 8190293f8b made it only available
to CText. `getTextSize()` can also be useful for CButtons so this diff
adds the function back to CButtons. There seem to be no other GUIObjects
besiders CText and CButton where `getTextSize()` makes sense.

Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3195
This was SVN commit r24378.
2020-12-11 16:12:46 +00:00
wraitii 5e754a86a9 Associate .zip and .pyromod files with 0 A.D. on MacOS
- Change the .Plist to associate 0 A.D. with .pyromod files (as owner,
so the default choice), and .zip (as alternate, so not the default, but
will appaer in the 'open with' dropdown).
- Make 0 A.D. actually load mods opened like that on MacOS. The files
aren't actually opened with command line arguments, but via Cocoa stuff,
which SDL2 handles via the 'DropEvent' event. This ought also work on
windows and linux.

Closes #5357

Differential Revision: https://code.wildfiregames.com/D3190
This was SVN commit r24377.
2020-12-11 15:43:25 +00:00
Stan bf85e4ac38 Allow boolean and u16 modifications for C++
Allow boolean modifications JavaScript
Allow territory influence weight, and root, to be changed via tech.


Differential Revision: https://code.wildfiregames.com/D3069
This was SVN commit r24373.
2020-12-11 14:07:48 +00:00
wraitii c013ee3778 Fix usage of remove_if in CHotkeyPicker
I was not aware of the erase-remove idiom and failed to notice that
remove_if simply reorders the elements.
Noted by Stan thanks to VS17 warnings.

Fixes a4852c4c01 / D2814

This was SVN commit r24371.
2020-12-11 10:02:05 +00:00
Stan 14cc771b6d Fix zip with comments triggering assertion on game startup
Fixes #5165

Patch by: @Teiresias
Differential Revision: https://code.wildfiregames.com/D1511
This was SVN commit r24368.
2020-12-10 19:09:10 +00:00
Stan ea38089853 Fix userreport detection of sound cards
Differential Revision: https://code.wildfiregames.com/D3025
This was SVN commit r24367.
2020-12-10 18:36:05 +00:00
Stan cc65e0e8a2 Add support for HAIKU detection by the SDL.
This was SVN commit r24366.
2020-12-10 18:15:50 +00:00
Stan d09c5bf8bc Small cleanup of test_wdbg_sym.h
This was SVN commit r24364.
2020-12-10 16:13:29 +00:00
Stan b6114adc8d Fix tests on Windows in no pch mode.
This was SVN commit r24363.
2020-12-10 15:58:17 +00:00
Freagarach c9695dd669 Really remove domestic class from violent arctic wolves.
Failed to be done in 28cb8a4c06, noticed by @Angen.

This was SVN commit r24362.
2020-12-10 10:45:57 +00:00
wraitii 764440e017 Remove the Engine threading when using Atlas
MacOS requires some UI-related API calls to happen on the main thread.
There are several SDL functions that call UI-things, and those were,
since #500 / 08b4d96cf2, in a separate thread.
This crashes on Catalina, instead of simply warning (see #5470).

It is not the first time we had such issues, as originally the Engine
was on the main thread and AtlasUI on a separate thread.
That didn't work on MacOS, so the threading was inverted in #500 /
08b4d96cf2, with AtlasUI on the main thread and the Engine in another
thread.
Unfortunately, this still wasn't enough.

This formally unthreads the engine, running it on a wxTimer, to avoid
these issues.

Future work should focus on:
- Further decoupling the simulation from the engine itself, as what
Atlas really needs is a threaded simulation, not a threaded engine.
- Making the simulation itself more threaded
- Making it possible to do tasks asynchronously under Atlas.

Refs #500
Fixes #5470

Differential Revision: https://code.wildfiregames.com/D2752
This was SVN commit r24361.
2020-12-10 09:42:58 +00:00
wraitii 6778fc4ea6 Make units wait a few seconds at waypoints during Patrol.
This makes 'dancing' impossible with patrol, for both single units and
formations.
It further makes the formation and regular patrol code more similar.

The diff harcodes an integer wait time as it relies on timer calls
instead of range queries, as that was much simpler to implement.
Animations for the waypoint-waiting is also unimplemented.

Reviewed By: Freagarach
Refs #5106

Differential Revision: https://code.wildfiregames.com/D2913
This was SVN commit r24360.
2020-12-10 09:18:13 +00:00
Freagarach 28cb8a4c06 Remove domestic attribute from wolves on polar sea.
This made entites use slaughter against the wolves instead of normal
attacks.
After b97d251322 the class is not needed anymore to be able to move the
wolves.

The fix of the wolves stacking in one place is deferred.

Patch by: @Dunedan
Differential Revision: D2771
Reviewed by: @wraitii
Comments by: @elexis
This was SVN commit r24359.
2020-12-10 08:34:04 +00:00
wraitii aa305cc14b Properly clean up _testcache folder.
Introduced in 61e3f1ec0d / D1839.

This was SVN commit r24358.
2020-12-10 08:18:18 +00:00
Freagarach 1e0a6f66f0 Show gatherers next to resource icons.
And total gatherers next to the population icon.

Closes #643
Patch by: @mammadori
Differential Revision: D3155
Earlier revisions reviewed by: @Angen, @wraitii
Comments by: @Nescio, @s0600204, @Stan
This was SVN commit r24357.
2020-12-10 08:13:46 +00:00
Freagarach 8accbce1d7 Fix nomad maps after moving templates to civ folders.
Broken in b57abe806c as noticed by @mammadori.

Differential Revision: D3188
Tested by: @mammadori
This was SVN commit r24356.
2020-12-10 07:55:32 +00:00
wraitii 605386a278 Fix OOS in bdbd0b9dbf
Preview entity IDs vary from user to user.

Reported by: Freagarach
Reviewed By: Freagarach
Differential Revision: https://code.wildfiregames.com/D3196
This was SVN commit r24354.
2020-12-09 16:45:14 +00:00
wraitii 69f31a67a4 More improvements to the release scripts.
- Add a 'dev' option to the mac bundle that's much faster, intended to
quickly test bundle-like behaviour.
- Add an option to only archive the 'mod' folder, intended to speed up
the CI weekly builds and avoid taking too much disk
space.
- Tweak the windows installer, add an option to create a shortcut to the
desktop (Fixes #1637). This uses the readme 'hack'
 which appears to be a relatively standard way of doing that.
- Make the scripts executable.
- Update jenkinsfile.

Follows d95550248b

Differential Revision: https://code.wildfiregames.com/D3191
This was SVN commit r24353.
2020-12-09 15:22:24 +00:00
wraitii 369c2e8801 Further header & precompiled cleanup, fix no-PCH builds.
GUIObjectBase is made a IGUIObject* to avoid including those headers
un-necessarily. Subsequent diffs ought to clean up the various of
pointers for that with a similar type with reference semantics.

Also:
- Add standard C and C++ headers (mostly cstring for memcpy, string and
vector) where needed.
- Swap out some includes for forward declarations
- Clean up un-necessary boost includes in precompiled and other headers.
- Clean up precompiled headers, including fewer things.
- Move ACPI to the windows-specific folder as it's included there only
and mostly specific to that platform.

Thanks Stan for the testing.

Differential Revision: https://code.wildfiregames.com/D3129
This was SVN commit r24352.
2020-12-09 14:39:14 +00:00
bb 715f441fbb Add context for mustang attack
Reviewed By: Nescio, wraitii
Differential Revision: D3197
This was SVN commit r24350.
2020-12-08 22:33:56 +00:00
wraitii 050c5401b1 Adjust range visualisation and aura ranges following d0fc8ff67d
d0fc8ff67d / D2759 made ranges account for entity size, making auras
larger than they needed to be. This accounts for that.

Units haven't been changed, the delta is not worth modifying imo.

As discussed with Nescio, this means that, for a given aura, larger
buildings will now have a larger "aura area". This particularly affects
oblong buildings.
A proper solution for this would be to not approximate some structures
as a circle, but remains to be implemented.

Note that for current 0 A.D., this effect is unlikely to be a
significant gameplay advantage to one civilisation over another.

Reviewed By: Nescio
Differential Revision: https://code.wildfiregames.com/D3169
This was SVN commit r24349.
2020-12-08 12:53:07 +00:00
wraitii 4bfc7048f0 Fix tests in bdbd0b9dbf
Forgetting about the tests is a categorical imperative.

This was SVN commit r24348.
2020-12-08 09:29:04 +00:00
wraitii bdbd0b9dbf Make construction previews local entities (fix 7bf933d5f6)
Identity classes where added to construction previews in D576 /
7bf933d5f6. This meant they counted towarde entity limits, as they were
not local entities.

This diff fixes that by making them local entities.

Thanks for s0600204 for raising the issue

Reported by: wowgetoffyourcellphone
Refs #2907

Differential Revision: https://code.wildfiregames.com/D3187
This was SVN commit r24347.
2020-12-08 08:32:15 +00:00
Stan d4773df0c1 Version the documentation pipeline used on Jenkins
This was SVN commit r24344.
2020-12-07 15:49:47 +00:00
wraitii d95550248b Rework bundle creation scripts.
This reworks the OSX bundle script, to run it easily on CI and to
further also build the unix tarballs and the windows installer.

Clean up the MacOS bundle detection, by not forcing a compilation-time
switch.
Clean up shared library compilation: changing the installation name
isn't necessary for 0 A.D.

Differential Revision: https://code.wildfiregames.com/D3161
This was SVN commit r24343.
2020-12-07 13:44:42 +00:00
Stan a2f3b25923 Update tinygettext to match upstream.
We're now ISO on the plural forms
(https://github.com/tinygettext/tinygettext/pull/30), so remove the
modified warning.
We use boost filesystem as <filesystem> and <experimental/filesystem>
are not available on the macOS CI yet.
(https://github.com/tinygettext/tinygettext/issues/31)

Differential Revision: https://code.wildfiregames.com/D3185
This was SVN commit r24342.
2020-12-07 13:15:31 +00:00
Stan 421fbfd278 Make Profiler2 configurable in visual mode. Non visual doesn't load the config so it's not possible. Also update the profiler2 page to be able to change the port
Differential Revision: https://code.wildfiregames.com/D2444
This was SVN commit r24340.
2020-12-07 08:11:23 +00:00
wraitii d92a2118b0 [SM78 2/2] Update to Spidermonkey 78 APIs
This ugprades 0 A.D. to the latest ESR at the moment of writing.

Mostly straighforward API changes (see meta-Bug 1633145)
- js::Class is merged with JSClass
- JSNewArrayObject becomes JS::NewArrayObject
- ArrayObject-functions are moved to a new public header Array.h
- JSMSG error messages have again been changed, requiring some tweaks.
- AutoValueArray becomes RootedBalueArray (Bug 1634435)
- 'uneval' is behind a Realm flag (Bug 1565170), but no removal is
planned in the short-term future.
- Some minor GC API changes (Bugs 1569564 and 1633405)
- Error reporting has had some tweaks, and error flags have been removed
(Bug 1620583)
- StructuredClone are now always thread-safe, simplifying an API change
introduced in SM52 (Bug 1607791)

Tested by: Stan, Freagarach, mammadori
Closes #5861

Differential Revision: https://code.wildfiregames.com/D3168
This was SVN commit r24333.
2020-12-06 14:03:02 +00:00
wraitii 6da64bf354 [SM78 1/2] Upgrade Spidermonkey build system and binaries to 78.6.0
SM78 drops usage of Python 2 in favour of Python 3.

SM78 is the first ESR to actually use rust, which means a new static
library is bundled.
This means LLVM-objdump is now a dependency of Spidermonkey, and also 0
A.D.

SM78 also removes the need for NSPR on Windows (Bug 1556646).

Tested by: Stan, Freagarach, mammadori
Refs #5694
Refs #5861

Differential Revision: https://code.wildfiregames.com/D3167
This was SVN commit r24332.
2020-12-06 14:00:57 +00:00
Angen 46413134bb simplify mercenary cost
Move repetitive cost change for mercenary from templates to technology
json.

Differential revision: https://code.wildfiregames.com/D2685
Patch by: Nescio
This was SVN commit r24330.
2020-12-06 08:34:31 +00:00
Angen 1bd3d7ee5b Fix macos-differential typo
This was SVN commit r24329.
2020-12-06 07:56:07 +00:00
Freagarach f62d233f55 Two fixes after the moving of templates to civ-dirs.
b57abe806c had some errors in the patch. @Nescio noted that the fortress
builder script was using the wrong civ. And the committer noticed the
elephantine random map was broken.

Differential Revision: D3122
Tested by: @Nescio
This was SVN commit r24328.
2020-12-06 07:39:27 +00:00
Freagarach 2e79c0a177 Remove health component from relics.
Since relics ought to be undestroyable, a health component makes no
sense. This makes that the Invulnerability-flag can be removed and
relics can be captured again (after 0f91c5ac61#inline-5236).

Differential Revision: D1268
Original patch by: @temple
Reviewed by: @wraitii
Comments by: @bb, @elexis
Fixes #5007, #5847, 0f91c5ac61#inline-5236

This was SVN commit r24327.
2020-12-06 07:22:51 +00:00
Imarok 40f3a967d9 Handle unknown APIC IDs in the ACPI SRAT
Patch by: Itms
Fixes: #5412

Differential Revision: https://code.wildfiregames.com/D1789
This was SVN commit r24326.
2020-12-05 13:40:29 +00:00
Stan d20e68ff0f Revert 429d5d6194 as the linking is broken
This was SVN commit r24324.
2020-12-04 19:02:07 +00:00
Stan 429d5d6194 Fix FCollada on platforms without ecvt
Based on a patch by: @NF
Tested by: @nephele
Tested on FreeBSD, Windows, Kubuntu, macOS
Fixes: #1325
Differential Revision: https://code.wildfiregames.com/D2399
This was SVN commit r24323.
2020-12-04 14:39:07 +00:00
wraitii f44390f3fc Fix 3391542fec: AA / Sharpness not being correctly enabled at the start.
Reported by: OptimusShepard
Tested By: OptimusShepard, Stan
Differential Revision: https://code.wildfiregames.com/D3138
This was SVN commit r24318.
2020-12-03 12:19:44 +00:00
wraitii 72d8bf47d4 Fix potential UB in 783e77cc8d
Reported by: Vladislav
Differential Revision: https://code.wildfiregames.com/D3180
This was SVN commit r24317.
2020-12-03 12:16:19 +00:00
Angen b3704338e9 [gameplay-a24] Increase hack damage of pikemen
This patch increases the attack base hack damage of pikemen from 1 to 2.

Differential revision: D2972
Patch by: borg-
Reviewed by: Nescio
Comments by: myou5e, wraitii, badosu, ValihrAnt
This was SVN commit r24316.
2020-12-02 18:39:17 +00:00
Angen 3ffc23008d [Petra] do not pass min == max range in moveToRange
Original diff D2512

Reported on forum by gameboy:
https://wildfiregames.com/forum/index.php?/topic/27384-strange-landing-on-the-island-and-unable-to-attack/

Units with goal where minrange = maxrange rarely arrive to destination,
because they miss it.
See Todo in unitmotion
Relative part:

In the meantime, one should avoid that 'Speed over a turn' > MaxRange -
MinRange, in case where min-range is not 0 and max-range is not
infinity.

For that reason avoid passing minrange = maxrange from ai.
Also warn in cpp unitmoition when getting this kind of command.

Differential revision: D3149
Reviewed by: @wraitii
This was SVN commit r24315.
2020-12-02 18:11:02 +00:00
Stan 5a66f89044 Update ICU on Windows to 68.1 with the v140_xp toolset.
- Remove the last usage of the MACRO "TRUE" as it's deprecated and
replace it by its value "1" the == operator is overloaded to return a
UBool(int8_t)  refs 9b9a96382c
- Remove two unused DLLs
- Update and add EOL to headers.

Refs #3004

This was SVN commit r24314.
2020-12-02 16:47:28 +00:00
wraitii 1b150b303f Update i18n scripts to run on Python3
The `pology` library runs on Python2 and development appears stalled. It
is also not available on pip.
The `babel` library, BSD-licensed, provides, amongst many other things,
a replacement for .POT / .PO manipulation.

The `poediff` tool that we used to detect spurious i18n change is
replaced with a Python script that does a simpler but good enough job
(it is also much, much faster).

These replacements let the i18n scripts run on Python3 entirely.

Makes D506 redundant.

Comments by: Itms
Reviewed By: Gallaecio
Refs #5694

Differential Revision: https://code.wildfiregames.com/D2757
This was SVN commit r24313.
2020-12-02 10:05:27 +00:00
wraitii 783e77cc8d Fix f78d3ddf71 - actually speed up MP/lobby chat.
f78d3ddf71 / D1781 would fix an important source of lag... If it
actually used the code.
Also clean up some comments.

Reported by: Vladislav
Differential Revision: https://code.wildfiregames.com/D3176
This was SVN commit r24312.
2020-12-02 09:28:46 +00:00
Stan d38fde3682 Do not attempt to rebuild bundled libs every time, and do not run CMAKE for nvtt everytime. Also pass -fpic for NVTT to prevent build failures on FreeBSD (reported by @nephele).
Unify the build scripts between macOS and Linux.

Reviewed by: @Freagarach, @wraitii
Differential Revision: https://code.wildfiregames.com/D3173
This was SVN commit r24310.
2020-12-01 19:29:21 +00:00
wraitii 6f841d0ccb Update mac WxWidgets to 3.0.5.1
This was SVN commit r24309.
2020-12-01 14:18:24 +00:00
wraitii 7e91806be3 Use C++17 to compile 0 A.D.
Supported compilers are Clang 5, GCC 7, Visual Studio 17, Xcode 9.3

Update Atlas alongside since the replacement APIs are c++17 only.
De-activate the StyledTextCtrl module of WxWidgets on mac, since that is
a wrapper around the Scintilla Text editor and doesn't compile with
C++17 (as it uses auto_ptr). We don't use the editor, so this is also a
win on the compilation time front.

Closes #5862

Differential Revision: https://code.wildfiregames.com/D3166
This was SVN commit r24308.
2020-12-01 14:17:12 +00:00
wraitii f78d3ddf71 Fix Lobby/MP Gamesetup chat lag with many messages.
CText requires re-rendering every message when adding a new one, which
quickly becomes very slow.
Use CList and a custom method to work around this.

These classes are in need of a more complete refactoring.

Based on a patch by: nani
Differential Revision: https://code.wildfiregames.com/D1781
This was SVN commit r24306.
2020-12-01 09:42:05 +00:00
Stan dcc73561c2 Remove Xcursor dependency following bbcd9b34cc
Fixes #5842

This was SVN commit r24304.
2020-11-30 18:10:02 +00:00
Stan d719a66b43 [gameplay] remove female inspiration aura
Discussed with: @Imarok, @wraitii
Thread:
https://wildfiregames.com/forum/topic/33873-please-make-it-a-little-less-sexist/?tab=comments#comment-411342

Differential Revision: https://code.wildfiregames.com/D3172
This was SVN commit r24303.
2020-11-30 15:57:13 +00:00
wraitii 48c31ce03f Update random_shuffle usage for C++17
C++14 deprecates and C++17 removes functions we use for random sounds.
This makes FastRand() fit the URG interface, and uses the appropriate
function.

Refs #5862

Differential Revision: https://code.wildfiregames.com/D3107
This was SVN commit r24302.
2020-11-30 15:52:16 +00:00