Convert mapres to RGBA immediately when loading them, so the image data is always in RGBA format internally, instead of only converting when the map is saved (which was erroneously removed in #8670).
This means the `cl_editor_dilate` setting will now also be applied to converted RGB images.
The minimum supported API version must be specified when building the native libraries, otherwise this may cause linking errors when launching the app.
The minimum API level is increased to 24 (Android 7.0, covering 97.2% of usages) because:
- Vulkan is only available from API 24+ on ARM64 and x64.
- curl only compiles with API 23+.
- The NDK version we use supports only API 21+.
Ensure that the C++/Linker flags are set when building Android libraries, which was causing errors due to `-fPIC` not being set for all libraries.
The macro `__ARM_ARCH` is defined both for 32-bit and 64-bit ARM so it cannot be used to identify ARM64. Now `__ARM_ARCH_ISA_A64` is used instead, which should only be defined for ARM64. This caused a warning due to the macro `CONF_ARCH_STRING` being redefined when compiling for Android. Furthermore, support for detecting big-endian ARM64 with the `__ARM_BIG_ENDIAN` macro is added.
See https://developer.arm.com/documentation/dui0774/g/chr1383660321827
Add a button with the "terminal" icon in the bottom right of the start menu to open the local console to ensure that the local console is usable also when no physical keyboard (with F-keys) is available.
Specify `android:installLocation="auto"` so the app can be installed on and move to the external storage.
Specify optional features which the app may use (touchscreen, game controller, external mouse).
Specify `android:preferMinimalPostProcessing="true"` so lower latency HDMI mode is enabled when available. Specify `android:hardwareAccelerated="true"` for consistency (it is already the default setting).
Specify same `android:configChanges` and `android:alwaysRetainTaskState` values as SDL to avoid potential bugs due to inconsistency with what the `SDLActivity` expects.
See f5ed158d1f/android-project/app/src/main/AndroidManifest.xml
Do not reset the active map download's information before using the fallback map download.
Remove redundant calls of `ResetMapDownload` before disconnecting, as this already resets the map download.
Closes#8885. Regression from #8848.
If the game is paused and a player joins a server (sv_tournament_mode 0)
The scoreboard will be forced open. Unless the client configured cl_scoreboard_on_death 0.
This can be quite annoying. Especially in the brand new 0.7 feature
where users can pause the game. Oy realized that this is a problem 12
year ago:
aec468a3c4 (diff-e0ff7a1d6079610adb64fc89fbfff23a381ed92f268d8fe188731a9e0c323b0aR389-R390)
For ddnet servers this would mostly affect tournaments where paused games are
used to give everyone enough time to download the map.
A open scoreboard also blocks broadcasts. So new users might miss the
admin announcements explaining why the game is paused.