Commit graph

19748 commits

Author SHA1 Message Date
Tater a202751ada Preserve client order of weapon physics 2024-06-02 18:56:05 -05:00
Tater 81f4c736e4 Remove CurrentInput, LatestInput from debug dummy, fix shadow 2024-06-02 04:26:30 -05:00
Tater 7bdf2e644f Move OnDirectInput functionality into WeaponTick 2024-06-02 03:22:32 -05:00
Tater 0d84dcbaef Remove OnPredictedEarlyInput and OnClientPredictedEarlyInput 2024-06-02 03:13:37 -05:00
Tater 7de808ae99 Client intentionally sets AckedSnapshot to -1 sometimes 2024-06-02 03:03:49 -05:00
Tater 9c6e8c98e6 Move early weapon physics into gameworld 2024-06-02 02:57:30 -05:00
Tater e3723d3843 Change incorrectly named OnClientDirectInput function
This has not done any Direct Input since #1441
2024-06-02 02:57:30 -05:00
Tater c90dbe5ba0 Remove m_CurrentInput, Enforce 1 input per tick
This converts m_aInputs from an unordered buffer of inputs that can be intended for any tick into a strict ring buffer that tracks the 100 inputs ahead of the current gametick and 100 inputs behind.

The client is only allowed to have 1 input for each gametick in the buffer and cannot change inputs for ticks they have already sent.
2024-06-02 02:57:10 -05:00
Tater 9e279d1049 Enforce m_LastAckedSnapshot nondecreasing, Remove useless m_LatestInput 2024-06-02 02:56:49 -05:00
Tater 4b6a10624c Rename a couple confusing input functions, add comments 2024-06-02 02:55:47 -05:00
heinrich5991 64fec2cd37
Merge pull request #8427 from Robyt3/Translation-Brazilian-Portuguese-Fix
Fix invalid format string in Brazilian Portuguese translation
2024-06-01 20:02:59 +00:00
Robert Müller 3a12c16dac Fix invalid format string in Brazilian Portuguese translation 2024-06-01 21:31:09 +02:00
Dennis Felsing cb563bf267
Merge pull request #8425 from gerdoe-jr/patch-4
Small changes in `russian.txt`
2024-06-01 16:29:58 +00:00
gerdoe 8ad414bd8c
small changes in russian.txt 2024-06-01 19:12:22 +03:00
Dennis Felsing f1c2d10cd7
Merge pull request #8424 from Robyt3/Cleanup-str_copy
Consistently use `str_copy` instead of `mem_copy` for strings
2024-06-01 15:18:37 +00:00
Dennis Felsing 3233492fd3
Merge pull request #8423 from Robyt3/Client-Mapdownload-Speed-Localize
Make map download progress and speed label translatable
2024-06-01 15:18:35 +00:00
Robert Müller 24d12e4820 Consistently use str_copy instead of mem_copy for strings 2024-06-01 13:55:20 +02:00
Robert Müller 2a3cc8fd55 Make map download progress and speed label translatable 2024-06-01 13:01:37 +02:00
Robert Müller 7f5330b7d1
Merge pull request #8421 from Robyt3/Android-Unused-Flag-Cleanup
Remove unnecessary `DDNET_TEST_NO_LINK=1` in Android build
2024-05-31 16:05:03 +00:00
Robert Müller 60bbbcd424 Remove unnecessary DDNET_TEST_NO_LINK=1 in Android build
Verified with clean build, the variable is not necessary. Closes #8420.
2024-05-31 17:43:12 +02:00
heinrich5991 a5ca7c64e0
Merge pull request #8409 from ChillerDragon/pr_const_char
Mark some character methods const
2024-05-29 00:31:19 +00:00
ChillerDragon ffd0da09e9 Mark some character methods const 2024-05-29 08:13:16 +08:00
Dennis Felsing 1460081d8c
Merge pull request #8402 from Robyt3/Menus-Keyreader-UI-Inactive
Prevent UI elements from being hovered while key reader is active
2024-05-28 02:04:17 +00:00
Robert Müller bd5ca951a7 Prevent UI elements from being hovered while key reader is active
Since the key reader will intercept the next input, the other UI elements should not react to the hovered mouse.
2024-05-27 20:20:25 +02:00
heinrich5991 5ad62b5732
Merge pull request #8398 from Robyt3/Base-secure_random_init-check
Ensure return value of `secure_random_init` is always checked
2024-05-26 10:21:26 +00:00
Robert Müller 583845fc60 Ensure return value of secure_random_init is always checked 2024-05-26 11:59:26 +02:00
Dennis Felsing 9bd5aacc2b
Merge pull request #8396 from Robyt3/Android-Storage-Refactoring
Improve Android storage usage, faster launch, remove permissions
2024-05-26 04:19:27 +00:00
Robert Müller 986508e091 Improve Android storage usage, faster launch, remove permissions
Split the user storage location and the data folder in the app specific external storage in the folders `data` and `user` instead of writing the user setting directly to the external storage.

Remove unnecessary storage permissions. The client only accesses files in its own external storage location, hence these permissions are not necessary for Android API 19 and higher, which is always given as we only target API 19 and higher.

Only unpack changed assets when their hash in the integrity index is different instead of unpacking all assets again, so the app starts faster after updates. Avoid unpacking the entire integrity index file unless it changed, by initially reading only the first hash directly from the asset, so the app starts faster when the data is up-to-date.

Add error handling for external storage not being accessible and other I/O errors during unpacking of assets.

Add `android_main.h` header to export the `InitAndroid` function and potentially other functions in the future. The `extern "C"` and `__attribute__((visibility("default")))` attributes seem to be unnecessary, as this function is only called directly from the native code like many other functions without these attributes.

Initialize the Android storage after the loggers, so the log message are printed properly.

Add documentation for the use of `std::exit` on Android, which is used to forcefully terminate the entire process, to ensure that static variables will be initialized correctly when the app is started again after quitting. Returning from the main function is not enough, as this only results in the native thread terminating, but the Java thread will continue. Java does not support unloading libraries once they have been loaded, so all static variables will not have their expected initial values anymore when the app is started again after quitting.

Use `fs_chdir` and `fs_makedir` instead of `chdir` and `mkdir`.
2024-05-25 21:09:42 +02:00
Dennis Felsing dd85209a8e
Merge pull request #8394 from Robyt3/Android-Building-Cleanup
Further clean up and improve the Android building scripts, lower minimum target API to 19
2024-05-24 00:47:38 +00:00
Robert Müller 1dfed5434e Lower minimum SDK to 19, remove unnecessary Gradle dependencies
SDK 19 is the lowest API level support by SDL2 because it is the lowest API level supported by the latest NDK toolchain. According to https://www.composables.com/tools/distribution-chart this should cover virtually all Android devices.

The dependencies on Kotlin and various `androidx`-Packages were entirely unnecessary and can be removed.
2024-05-23 22:09:23 +02:00
Robert Müller 63710a18a4 Preserve filenames and line numbers in ProGuard for debugging 2024-05-23 22:08:42 +02:00
Robert Müller 7de52fd46f Improve Android build script output, improve colors
Abort the Android CMake build immediately if any of the command line arguments is not specified, instead of assuming default values.

Add more log messages for different build steps to improve progress reporting and improve the existing log messages.

Improve and fix colors of log messages. Previously, some log message colors were not terminated properly, causing the output color of subsequent commands to change.

Avoid some error messages when the build script is executed for the first time, i.e. when cleanup of the previous build is not necessary because the files do not exist yet.

Make some related variable names more readable by removing the unnecessary underscore and `DEFAULT` prefixes.
2024-05-23 22:08:34 +02:00
Robert Müller 1a3b2eac10 Abort build script if CMake build failed for any architecture
Abort the build script when the CMake build fails for any of the selected architectures. Previously, the build may have continued and caused an APK without the respective library files to be built.
2024-05-23 20:48:56 +02:00
Robert Müller c8f0391c62 Remove unnecessary copy_dummy_files_rec function
Create the folder and copy the file manually instead of using a separate function for this, as the function is only used once.
2024-05-23 20:48:20 +02:00
Robert Müller d9f810691b Remove duplicate dynamic loading of game library
SDL automatically loads the libraries specified in the array returned by the `getLibraries` method, so loading it manually is unnecessary. SDL also has additional error handling to quit the app with an appropriate error message popup if the library could not be loaded, which was not handled previously.
2024-05-23 20:47:18 +02:00
Robert Müller 41738f1880 Ensure libary is copied successfully, remove unnecessary copies
Ensure that the main game library is copied successfully. Remove unnecessary copies of library files that do not exist and are unused, which were causing error messages during the build.
2024-05-23 20:46:35 +02:00
Robert Müller d9686591f0 Ensure APK build type parameter is valid
Abort build script if the build type parameter value is not valid, instead of assuming the debug build.
2024-05-23 20:45:52 +02:00
Robert Müller e981d48b24 Extract build_gradle function, fix Gradle use without arguments
Extract `build_gradle` function to reduce duplicate code for running the Gradle build. Remove the initial invocation of Gradle without a build target, which has no effect and was causing an error message during the build.
2024-05-23 20:45:42 +02:00
Robert Müller 6a453d10b4 Remove unused _RELEASE_TYPE_APK_NAME variable
This variable is always empty.
2024-05-23 20:43:53 +02:00
Robert Müller 69102880c9 Remove unused GE_NO_APK_BUILD variable
This variable is always empty and we don't need to support not building the APK file.
2024-05-23 20:43:53 +02:00
Robert Müller 930836f349 Split compile_source function for readability
Split the `compile_source` function into `compile_source_android` and `compile_source_webasm` instead of using a parameter to switch between the functionality.
2024-05-23 20:43:53 +02:00
Robert Müller 45f619722b Avoid duplicate creation of ddnet-libs directory
Avoid error messages due to `ddnet-libs` directory already existing and being created multiple times.
2024-05-23 20:43:53 +02:00
Robert Müller 60733bc033 Remove redundant check for existing directory with mkdir -p
The `mkdir -p` command is already idempotent so separately checking whether the directory exists is not necessary.
2024-05-23 20:43:30 +02:00
Robert Müller e9581b87ba Ensure specified target system for buiding libraries is valid
Abort building libraries if the specified target system is not one of the supported values.
2024-05-23 20:42:25 +02:00
Robert Müller 2844ad7239 Remove redundant OS_NAME_PATH variable
This variable was simply assigned the same value as the `OS_NAME` variable.
2024-05-23 18:06:59 +02:00
Robert Müller 0da30b7857 Remove obsolete autogen.sh usage for OpenSSL build
The OpenSSL project does not contain an `autogen.sh` file anymore, which was causing an error message when building the libraries.
2024-05-23 18:06:59 +02:00
heinrich5991 60fb40676a
Merge pull request #8310 from ChillerDragon/pr_shfmt
Use shfmt as formatter for shell scripts
2024-05-23 06:26:50 +00:00
ChillerDragon c75584406a Use shfmt as formatter for shell scripts 2024-05-23 08:05:00 +08:00
heinrich5991 1e11fffb03
Merge pull request #8390 from Robyt3/Base-chdir-getcwd-Cleanup
Minor refactoring of `fs_chdir` and `fs_getcwd` functions
2024-05-22 21:25:27 +00:00
heinrich5991 848f4a846b
Merge pull request #8334 from Robyt3/Android-Building-Fix
Fix the Android build and improve the Android building `README.md`
2024-05-22 21:19:40 +00:00