From 63df040c8cbb344d9453ca62c9472a48d99eb414 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 21 Jun 2023 17:56:49 -0700 Subject: [PATCH] bug fixes --- .efrocachemap | 88 +++++++++---------- CHANGELOG.md | 6 +- src/assets/ba_data/python/babase/_apputils.py | 2 +- src/assets/ba_data/python/baenv.py | 2 +- src/ballistica/base/assets/assets.cc | 27 +++++- src/ballistica/base/assets/assets.h | 3 + .../base/input/device/input_device.h | 9 +- src/ballistica/base/input/input.cc | 8 +- .../python/methods/python_methods_graphics.cc | 15 ++-- src/ballistica/shared/ballistica.cc | 2 +- tools/efrotools/code.py | 4 + tools/efrotools/efrocache.py | 2 +- 12 files changed, 104 insertions(+), 64 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index c90743a5..1d72b674 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4072,50 +4072,50 @@ "build/assets/workspace/ninjafightplug.py": "https://files.ballistica.net/cache/ba1/7f/b0/d7426f678c1fee642855e391f1b9", "build/assets/workspace/onslaughtplug.py": "https://files.ballistica.net/cache/ba1/21/26/7a4f7252ef70fdb86c734acacc42", "build/assets/workspace/runaroundplug.py": "https://files.ballistica.net/cache/ba1/53/0b/df2f7aaaf3cf4d9578c2bc5d4ad9", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/ea/15/797a4014928f1831fc754c4a731e", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/3f/c6/9e4f6e9c69e7db138991189390b0", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/30/93/5f2376a0f91828337a74092ba296", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/e3/e3/4a8f6c0d814d9982759ac9b85b84", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/19/e6/d1bbf315e9f070fc7f5aab3cc408", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/1a/b6/9196bf7553c8380ddd37c8aba83f", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/24/56/34bbdafa6ed8d8505fa50b40e10a", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/0c/9b/6dbedf9c32a5591fbc0724a7b050", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/fe/a7/d303e82374902cf0749fa054aa24", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/16/3e/5a02a80c844ea71c3ce1f229ff25", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/8f/c9/344dfdbe3cf1152ab1507f931cd7", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c3/d0/4fc44285b21e6b3dc4d9b3c30a28", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/19/d2/a655f9788bdf844e34512f5f1ac1", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/a5/5f/1c69d9dab37d811da0cdde48d09f", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/06/10/a3622150f460c2d663e847620e71", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/b8/3b/b2f787a50ed7a2271b0c65f0ab3e", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/7a/c5/4673ce879e907dd4eece9e4b7720", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/31/d3/4f5978fb759009897f57c00bdf7e", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/07/c1/94c298f6ddbdb11d4a3fb5935137", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/39/39/a874151a0edd3176eb2d931676cd", - "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/8a/39/82acd22444cdde966df4838b3235", - "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/82/23/3da9e812f6d9d83e9c4678645792", - "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/8a/39/82acd22444cdde966df4838b3235", - "build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/82/23/3da9e812f6d9d83e9c4678645792", - "build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/75/99/d4fbdf644fe76b609fe8d0dbdeec", - "build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/b4/77/b699106d5380ce3e93c5242e59be", - "build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/75/99/d4fbdf644fe76b609fe8d0dbdeec", - "build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/b4/77/b699106d5380ce3e93c5242e59be", - "build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/57/51/4b9175c993b186c3f438c3a8adcd", - "build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/6d/7c/7212f3b2b5edd32d891cb37a8a11", - "build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/57/51/4b9175c993b186c3f438c3a8adcd", - "build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/6d/7c/7212f3b2b5edd32d891cb37a8a11", - "build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/87/56/2528df7fd11bd4117ea453caa523", - "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2b/1d/067ca5d1bc54339f2b8682ef1aed", - "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/65/49/cdbaca8ea343d79992618514438c", - "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2b/1d/067ca5d1bc54339f2b8682ef1aed", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/ff/e2/7a224e164ea67e547a3ebfc9277e", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/93/6b/4319656b057a29d72f11066b7cac", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/0f/47/df2f3e9fe79c40fffa35d1cb99b3", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/08/12/5d06ad2986260ea7ba6d65bef594", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/f0/6a/b74c7943c8047fb350148bba627b", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/12/ce/c687700ec4bde58fcd61e3c072fa", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/2c/67/7062227e5beacba0312e52b69b30", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/50/e1/286b4b86905391f985d3ec726283", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/6d/f5/cd6bb460d8e0bc8fdf8c6dda110f", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/c1/51/dd9802222b3ad4ebc705f0b36659", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/d9/61/4c98f45f8bcf76c559044d00e5d2", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/19/0b/4624ea2c9cf509fe023e12040093", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/c7/52/f883d585cdd9b4a03d3a64ee4351", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/f4/d1/b174c0d0d9baaf10729d56630a20", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/48/40/1c7236c86c4561eefcdb9576d73d", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/34/21/9a1967294a08c526d8453e06a34d", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/48/a6/ffe5d46811507a7a1f0ffa68ba25", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/3f/d4/19a0cdbcdf3e4e34c0b0315410da", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/6a/f1/2bb0530610fe771fd3195ddf89cf", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/52/80/a0e16529e4e327b2d88d6b797570", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/25/d4/b0f8815f5d0138c447b80934bb92", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/89/31/d2579d70ded65fdf0ed8095e2048", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/ce/ed/64ab1594743b5cf92c36a5a9bb86", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/e5/71/e5a4679fd6b69431f2d1505d0e0a", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/d9/dc/bd256dcaca231459a3fe5ee41868", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/59/7b/455a35e58b7e09c253b1b016fce2", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/50/10/0ad405f5453d58730d001c993f59", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/b9/83/db7c79015a9e1b6917a2c4414b5a", + "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/76/66/8fccb439d7d7eafab460171b232d", + "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4e/48/123b806cbe6ddb3d9a8368bbb4f8", + "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/76/66/8fccb439d7d7eafab460171b232d", + "build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4e/48/123b806cbe6ddb3d9a8368bbb4f8", + "build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/50/71/7d2eed15f547e74a439f2d537048", + "build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/81/01/ce348c68f8ac5db0d3b230fb3dc5", + "build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/50/71/7d2eed15f547e74a439f2d537048", + "build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/81/01/ce348c68f8ac5db0d3b230fb3dc5", + "build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d0/4c/64ecc2688cc0421828cc305d3677", + "build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d9/a8/c1f0ea1acc03b4e24db733eb3f9a", + "build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d0/4c/64ecc2688cc0421828cc305d3677", + "build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d9/a8/c1f0ea1acc03b4e24db733eb3f9a", + "build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d4/5d/87ab6e915d0723275d7b35913211", + "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/7e/fa/291fd7e935502ced7e99b8c8f7f0", + "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ba/cb/044a163f7605acda0e3d418403e6", + "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/7e/fa/291fd7e935502ced7e99b8c8f7f0", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/7c/e4/6be7a99cf12af668ef068f46d50f", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/06/6a/7e0826d9c4387a9144c1de68664c", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/3b/75/b3cfbad84f26eb4544ae7d0bcffc", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/f0/ba/663a2dccdd8b80d292c3858d2320", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/36/8b/a58dd61d3fdc77998e8ff3213fa8", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/f8/9c/4a5c81184069956be3077575f993", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/dd/13/764bb5f910ad0b34425e6dd4f818", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/e7/4f/90b78953d062e63f0361f88e43a5", "src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/f8/85/fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/48/4b/e6974f0a4d14be8213dc00d971c3", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/3e/7a/203e2a5d2b5bb42cfe3fd2fe16c2", diff --git a/CHANGELOG.md b/CHANGELOG.md index a546a761..2af99862 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.20 (build 21130, api 8, 2023-06-19) +### 1.7.20 (build 21132, api 8, 2023-06-21) - This seems like a good time for a `refactoring` release in anticipation of changes coming in 1.8. Basically this means that a lot of things will be @@ -371,6 +371,10 @@ - (build 20129) Fixed an issue where server builds would not build font assets (though it would install them if any recent gui builds had built them) which could lead to obscure crashing. +- (build 21131) Fixed a bug where `is_browser_likely_available()` would + incorrectly return False on Android, causing certain things such as the v2 + login screen to merely display URLs onscreen and not offer to open them in a + browser. ### 1.7.19 (build 20997, api 7, 2023-01-19) diff --git a/src/assets/ba_data/python/babase/_apputils.py b/src/assets/ba_data/python/babase/_apputils.py index 44651400..90896dc1 100644 --- a/src/assets/ba_data/python/babase/_apputils.py +++ b/src/assets/ba_data/python/babase/_apputils.py @@ -48,7 +48,7 @@ def is_browser_likely_available() -> bool: # assume no browser. # FIXME: Might not be the case anymore; should make this definable # at the platform level. - if app.vr_mode or (platform == 'android' and hastouchscreen): + if app.vr_mode or (platform == 'android' and not hastouchscreen): return False # Anywhere else assume we've got one. diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 9e14e355..84daf637 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -28,7 +28,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 21130 +TARGET_BALLISTICA_BUILD = 21132 TARGET_BALLISTICA_VERSION = '1.7.20' _g_env_config: EnvConfig | None = None diff --git a/src/ballistica/base/assets/assets.cc b/src/ballistica/base/assets/assets.cc index 37c15917..72bb7686 100644 --- a/src/ballistica/base/assets/assets.cc +++ b/src/ballistica/base/assets/assets.cc @@ -280,6 +280,8 @@ void Assets::StartLoading() { LoadSystemMesh(SysMeshID::kLocatorCircleOutline, "locatorCircleOutline"); LoadSystemMesh(SysMeshID::kCrossOut, "crossOut"); LoadSystemMesh(SysMeshID::kWing, "wing"); + + sys_assets_loaded_ = true; } void Assets::PrintLoadInfo() { @@ -1597,30 +1599,47 @@ Assets::AssetListLock::~AssetListLock() { } auto Assets::SysTexture(SysTextureID id) -> TextureAsset* { - assert(asset_loads_allowed_); + assert(asset_loads_allowed_ && sys_assets_loaded_); assert(g_base->InLogicThread()); assert(static_cast(id) < system_textures_.size()); + // TEMP - tracking down some crashes in the wild. + if (!sys_assets_loaded_) { + FatalError("SysTexture called before sys assets loaded."); + } return system_textures_[static_cast(id)].Get(); } auto Assets::SysCubeMapTexture(SysCubeMapTextureID id) -> TextureAsset* { - assert(asset_loads_allowed_); + assert(asset_loads_allowed_ && sys_assets_loaded_); assert(g_base->InLogicThread()); assert(static_cast(id) < system_cube_map_textures_.size()); + // TEMP - tracking down some crashes in the wild. + if (!sys_assets_loaded_) { + FatalError("SysCubeMapTexture called before sys assets loaded."); + } return system_cube_map_textures_[static_cast(id)].Get(); } auto Assets::SysSound(SysSoundID id) -> SoundAsset* { - assert(asset_loads_allowed_); + assert(asset_loads_allowed_ && sys_assets_loaded_); assert(g_base->InLogicThread()); assert(static_cast(id) < system_sounds_.size()); + // TEMP - tracking down some crashes in the wild. + if (!sys_assets_loaded_) { + FatalError("SysSound called before sys assets loaded."); + } return system_sounds_[static_cast(id)].Get(); } auto Assets::SysMesh(SysMeshID id) -> MeshAsset* { - assert(asset_loads_allowed_); + assert(asset_loads_allowed_ && sys_assets_loaded_); assert(g_base->InLogicThread()); assert(static_cast(id) < system_meshes_.size()); + + // TEMP - tracking down some crashes in the wild. + if (!sys_assets_loaded_) { + FatalError("SysMesh called before sys assets loaded."); + } return system_meshes_[static_cast(id)].Get(); } diff --git a/src/ballistica/base/assets/assets.h b/src/ballistica/base/assets/assets.h index 99419e59..6d19f655 100644 --- a/src/ballistica/base/assets/assets.h +++ b/src/ballistica/base/assets/assets.h @@ -113,6 +113,8 @@ class Assets { auto CompileResourceString(const std::string& s, const std::string& loc, bool* valid = nullptr) -> std::string; + auto sys_assets_loaded() const { return sys_assets_loaded_; } + private: static void MarkAssetForLoad(Asset* c); void LoadSystemTexture(SysTextureID id, const char* name); @@ -145,6 +147,7 @@ class Assets { // 'hard-wired' internal assets bool asset_loads_allowed_{}; + bool sys_assets_loaded_{}; std::vector > system_textures_; std::vector > system_cube_map_textures_; std::vector > system_sounds_; diff --git a/src/ballistica/base/input/device/input_device.h b/src/ballistica/base/input/device/input_device.h index c511e6d4..31948616 100644 --- a/src/ballistica/base/input/device/input_device.h +++ b/src/ballistica/base/input/device/input_device.h @@ -119,7 +119,14 @@ class InputDevice : public Object { void UpdateLastInputTime(); - auto delegate() -> InputDeviceDelegate& { return *delegate_; } + auto delegate() -> InputDeviceDelegate& { + // TEMP - Tracking down a crash in the wild. + // Delegate should always exist any time we're accessing it. + if (!delegate_.Exists()) { + FatalError("Input-device delegate unexpectedly invalid."); + } + return *delegate_; + } auto set_delegate(const Object::Ref& delegate) { delegate_ = delegate; } diff --git a/src/ballistica/base/input/input.cc b/src/ballistica/base/input/input.cc index 03105924..0e2878c4 100644 --- a/src/ballistica/base/input/input.cc +++ b/src/ballistica/base/input/input.cc @@ -205,7 +205,9 @@ void Input::AnnounceConnects() { newly_connected_controllers_.front()); ScreenMessage(s); } - g_base->audio->PlaySound(g_base->assets->SysSound(SysSoundID::kGunCock)); + if (g_base->assets->sys_assets_loaded()) { + g_base->audio->PlaySound(g_base->assets->SysSound(SysSoundID::kGunCock)); + } } newly_connected_controllers_.clear(); @@ -227,7 +229,9 @@ void Input::AnnounceDisconnects() { newly_disconnected_controllers_.front()); ScreenMessage(s); } - g_base->audio->PlaySound(g_base->assets->SysSound(SysSoundID::kCorkPop)); + if (g_base->assets->sys_assets_loaded()) { + g_base->audio->PlaySound(g_base->assets->SysSound(SysSoundID::kCorkPop)); + } newly_disconnected_controllers_.clear(); } diff --git a/src/ballistica/base/python/methods/python_methods_graphics.cc b/src/ballistica/base/python/methods/python_methods_graphics.cc index 6e311d74..9652c041 100644 --- a/src/ballistica/base/python/methods/python_methods_graphics.cc +++ b/src/ballistica/base/python/methods/python_methods_graphics.cc @@ -51,14 +51,13 @@ static auto PyScreenMessage(PyObject* self, PyObject* args, PyObject* keywds) bool suppress = (envval && strcmp(envval, "1") == 0); if (!suppress) { Log(LogLevel::kWarning, - "FIXME! screenmessage() is being called in a gameplay situation.\n" - "The screenmessage call used to send messages to all players but now " - "only prints them locally.\n" - "Please change your code to use bascenev1.broadcastmessage() to get " - "the old behavior.\n" - "You can set env var BA_SUPPRESS_SCREEN_MESSAGE_WARNING=1 to " - "suppress " - "this warning."); + "WARNING! screenmessage() is being called in a gameplay situation.\n" + "Previously this would send a message to all connected clients," + " but as of 1.7.20 it only shows a message on the local device.\n" + "To get the old behavior, change your code to use" + " bascenev1.broadcastmessage() instead.\n" + "You can set env var BA_SUPPRESS_SCREEN_MESSAGE_WARNING=1 to" + " suppress this warning."); g_base->PrintPythonStackTrace(); } } diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index ba10934e..19570c63 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int { namespace ballistica { // These are set automatically via script; don't modify them here. -const int kEngineBuildNumber = 21130; +const int kEngineBuildNumber = 21132; const char* kEngineVersion = "1.7.20"; auto MonolithicMain(const core::CoreConfig& core_config) -> int { diff --git a/tools/efrotools/code.py b/tools/efrotools/code.py index 97b2e005..d68c797b 100644 --- a/tools/efrotools/code.py +++ b/tools/efrotools/code.py @@ -16,8 +16,12 @@ from typing import TYPE_CHECKING from efro.error import CleanError +# WTF Pylint. This is our package. It goes last. +# pylint: disable=useless-suppression, wrong-import-order from efrotools.filecache import FileCache +# pylint: enable=useless-suppression, wrong-import-order + if TYPE_CHECKING: from typing import Any diff --git a/tools/efrotools/efrocache.py b/tools/efrotools/efrocache.py index 2b815dc7..69459a1c 100644 --- a/tools/efrotools/efrocache.py +++ b/tools/efrotools/efrocache.py @@ -485,7 +485,7 @@ def _write_cache_file(staging_dir: str, fname: str) -> tuple[str, str]: with open(path, 'wb') as outfile: outfile.write(prefix + zlib.compress(fdataraw)) - return (fname, hashpath) + return fname, hashpath def _check_warm_start_entry(entry: tuple[str, str]) -> None: