bug fixes

This commit is contained in:
Eric 2023-06-21 17:56:49 -07:00
parent 4535538da1
commit 63df040c8c
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
12 changed files with 104 additions and 64 deletions

88
.efrocachemap generated
View File

@ -4072,50 +4072,50 @@
"build/assets/workspace/ninjafightplug.py": "https://files.ballistica.net/cache/ba1/7f/b0/d7426f678c1fee642855e391f1b9", "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/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/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/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/3f/c6/9e4f6e9c69e7db138991189390b0", "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/30/93/5f2376a0f91828337a74092ba296", "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/e3/e3/4a8f6c0d814d9982759ac9b85b84", "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/19/e6/d1bbf315e9f070fc7f5aab3cc408", "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/1a/b6/9196bf7553c8380ddd37c8aba83f", "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/24/56/34bbdafa6ed8d8505fa50b40e10a", "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/0c/9b/6dbedf9c32a5591fbc0724a7b050", "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/fe/a7/d303e82374902cf0749fa054aa24", "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/16/3e/5a02a80c844ea71c3ce1f229ff25", "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/8f/c9/344dfdbe3cf1152ab1507f931cd7", "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/c3/d0/4fc44285b21e6b3dc4d9b3c30a28", "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/19/d2/a655f9788bdf844e34512f5f1ac1", "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/a5/5f/1c69d9dab37d811da0cdde48d09f", "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/06/10/a3622150f460c2d663e847620e71", "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/b8/3b/b2f787a50ed7a2271b0c65f0ab3e", "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/7a/c5/4673ce879e907dd4eece9e4b7720", "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/31/d3/4f5978fb759009897f57c00bdf7e", "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/07/c1/94c298f6ddbdb11d4a3fb5935137", "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/39/39/a874151a0edd3176eb2d931676cd", "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/8a/39/82acd22444cdde966df4838b3235", "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/82/23/3da9e812f6d9d83e9c4678645792", "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/8a/39/82acd22444cdde966df4838b3235", "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/82/23/3da9e812f6d9d83e9c4678645792", "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/75/99/d4fbdf644fe76b609fe8d0dbdeec", "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/b4/77/b699106d5380ce3e93c5242e59be", "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/75/99/d4fbdf644fe76b609fe8d0dbdeec", "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/b4/77/b699106d5380ce3e93c5242e59be", "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/57/51/4b9175c993b186c3f438c3a8adcd", "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/6d/7c/7212f3b2b5edd32d891cb37a8a11", "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/57/51/4b9175c993b186c3f438c3a8adcd", "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/6d/7c/7212f3b2b5edd32d891cb37a8a11", "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/87/56/2528df7fd11bd4117ea453caa523", "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/2b/1d/067ca5d1bc54339f2b8682ef1aed", "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/65/49/cdbaca8ea343d79992618514438c", "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/2b/1d/067ca5d1bc54339f2b8682ef1aed", "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/ff/e2/7a224e164ea67e547a3ebfc9277e", "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/93/6b/4319656b057a29d72f11066b7cac", "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/0f/47/df2f3e9fe79c40fffa35d1cb99b3", "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/08/12/5d06ad2986260ea7ba6d65bef594", "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/f0/6a/b74c7943c8047fb350148bba627b", "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/12/ce/c687700ec4bde58fcd61e3c072fa", "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/2c/67/7062227e5beacba0312e52b69b30", "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/50/e1/286b4b86905391f985d3ec726283", "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/__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/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", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/3e/7a/203e2a5d2b5bb42cfe3fd2fe16c2",

View File

@ -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 - 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 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 - (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 (though it would install them if any recent gui builds had built them) which
could lead to obscure crashing. 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) ### 1.7.19 (build 20997, api 7, 2023-01-19)

View File

@ -48,7 +48,7 @@ def is_browser_likely_available() -> bool:
# assume no browser. # assume no browser.
# FIXME: Might not be the case anymore; should make this definable # FIXME: Might not be the case anymore; should make this definable
# at the platform level. # 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 return False
# Anywhere else assume we've got one. # Anywhere else assume we've got one.

View File

@ -28,7 +28,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be # Build number and version of the ballistica binary we expect to be
# using. # using.
TARGET_BALLISTICA_BUILD = 21130 TARGET_BALLISTICA_BUILD = 21132
TARGET_BALLISTICA_VERSION = '1.7.20' TARGET_BALLISTICA_VERSION = '1.7.20'
_g_env_config: EnvConfig | None = None _g_env_config: EnvConfig | None = None

View File

@ -280,6 +280,8 @@ void Assets::StartLoading() {
LoadSystemMesh(SysMeshID::kLocatorCircleOutline, "locatorCircleOutline"); LoadSystemMesh(SysMeshID::kLocatorCircleOutline, "locatorCircleOutline");
LoadSystemMesh(SysMeshID::kCrossOut, "crossOut"); LoadSystemMesh(SysMeshID::kCrossOut, "crossOut");
LoadSystemMesh(SysMeshID::kWing, "wing"); LoadSystemMesh(SysMeshID::kWing, "wing");
sys_assets_loaded_ = true;
} }
void Assets::PrintLoadInfo() { void Assets::PrintLoadInfo() {
@ -1597,30 +1599,47 @@ Assets::AssetListLock::~AssetListLock() {
} }
auto Assets::SysTexture(SysTextureID id) -> TextureAsset* { auto Assets::SysTexture(SysTextureID id) -> TextureAsset* {
assert(asset_loads_allowed_); assert(asset_loads_allowed_ && sys_assets_loaded_);
assert(g_base->InLogicThread()); assert(g_base->InLogicThread());
assert(static_cast<size_t>(id) < system_textures_.size()); assert(static_cast<size_t>(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<int>(id)].Get(); return system_textures_[static_cast<int>(id)].Get();
} }
auto Assets::SysCubeMapTexture(SysCubeMapTextureID id) -> TextureAsset* { auto Assets::SysCubeMapTexture(SysCubeMapTextureID id) -> TextureAsset* {
assert(asset_loads_allowed_); assert(asset_loads_allowed_ && sys_assets_loaded_);
assert(g_base->InLogicThread()); assert(g_base->InLogicThread());
assert(static_cast<size_t>(id) < system_cube_map_textures_.size()); assert(static_cast<size_t>(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<int>(id)].Get(); return system_cube_map_textures_[static_cast<int>(id)].Get();
} }
auto Assets::SysSound(SysSoundID id) -> SoundAsset* { auto Assets::SysSound(SysSoundID id) -> SoundAsset* {
assert(asset_loads_allowed_); assert(asset_loads_allowed_ && sys_assets_loaded_);
assert(g_base->InLogicThread()); assert(g_base->InLogicThread());
assert(static_cast<size_t>(id) < system_sounds_.size()); assert(static_cast<size_t>(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<int>(id)].Get(); return system_sounds_[static_cast<int>(id)].Get();
} }
auto Assets::SysMesh(SysMeshID id) -> MeshAsset* { auto Assets::SysMesh(SysMeshID id) -> MeshAsset* {
assert(asset_loads_allowed_); assert(asset_loads_allowed_ && sys_assets_loaded_);
assert(g_base->InLogicThread()); assert(g_base->InLogicThread());
assert(static_cast<size_t>(id) < system_meshes_.size()); assert(static_cast<size_t>(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<int>(id)].Get(); return system_meshes_[static_cast<int>(id)].Get();
} }

View File

@ -113,6 +113,8 @@ class Assets {
auto CompileResourceString(const std::string& s, const std::string& loc, auto CompileResourceString(const std::string& s, const std::string& loc,
bool* valid = nullptr) -> std::string; bool* valid = nullptr) -> std::string;
auto sys_assets_loaded() const { return sys_assets_loaded_; }
private: private:
static void MarkAssetForLoad(Asset* c); static void MarkAssetForLoad(Asset* c);
void LoadSystemTexture(SysTextureID id, const char* name); void LoadSystemTexture(SysTextureID id, const char* name);
@ -145,6 +147,7 @@ class Assets {
// 'hard-wired' internal assets // 'hard-wired' internal assets
bool asset_loads_allowed_{}; bool asset_loads_allowed_{};
bool sys_assets_loaded_{};
std::vector<Object::Ref<TextureAsset> > system_textures_; std::vector<Object::Ref<TextureAsset> > system_textures_;
std::vector<Object::Ref<TextureAsset> > system_cube_map_textures_; std::vector<Object::Ref<TextureAsset> > system_cube_map_textures_;
std::vector<Object::Ref<SoundAsset> > system_sounds_; std::vector<Object::Ref<SoundAsset> > system_sounds_;

View File

@ -119,7 +119,14 @@ class InputDevice : public Object {
void UpdateLastInputTime(); 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<InputDeviceDelegate>& delegate) { auto set_delegate(const Object::Ref<InputDeviceDelegate>& delegate) {
delegate_ = delegate; delegate_ = delegate;
} }

View File

@ -205,7 +205,9 @@ void Input::AnnounceConnects() {
newly_connected_controllers_.front()); newly_connected_controllers_.front());
ScreenMessage(s); 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(); newly_connected_controllers_.clear();
@ -227,7 +229,9 @@ void Input::AnnounceDisconnects() {
newly_disconnected_controllers_.front()); newly_disconnected_controllers_.front());
ScreenMessage(s); 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(); newly_disconnected_controllers_.clear();
} }

View File

@ -51,14 +51,13 @@ static auto PyScreenMessage(PyObject* self, PyObject* args, PyObject* keywds)
bool suppress = (envval && strcmp(envval, "1") == 0); bool suppress = (envval && strcmp(envval, "1") == 0);
if (!suppress) { if (!suppress) {
Log(LogLevel::kWarning, Log(LogLevel::kWarning,
"FIXME! screenmessage() is being called in a gameplay situation.\n" "WARNING! screenmessage() is being called in a gameplay situation.\n"
"The screenmessage call used to send messages to all players but now " "Previously this would send a message to all connected clients,"
"only prints them locally.\n" " but as of 1.7.20 it only shows a message on the local device.\n"
"Please change your code to use bascenev1.broadcastmessage() to get " "To get the old behavior, change your code to use"
"the old behavior.\n" " bascenev1.broadcastmessage() instead.\n"
"You can set env var BA_SUPPRESS_SCREEN_MESSAGE_WARNING=1 to " "You can set env var BA_SUPPRESS_SCREEN_MESSAGE_WARNING=1 to"
"suppress " " suppress this warning.");
"this warning.");
g_base->PrintPythonStackTrace(); g_base->PrintPythonStackTrace();
} }
} }

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica { namespace ballistica {
// These are set automatically via script; don't modify them here. // 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"; const char* kEngineVersion = "1.7.20";
auto MonolithicMain(const core::CoreConfig& core_config) -> int { auto MonolithicMain(const core::CoreConfig& core_config) -> int {

View File

@ -16,8 +16,12 @@ from typing import TYPE_CHECKING
from efro.error import CleanError 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 from efrotools.filecache import FileCache
# pylint: enable=useless-suppression, wrong-import-order
if TYPE_CHECKING: if TYPE_CHECKING:
from typing import Any from typing import Any

View File

@ -485,7 +485,7 @@ def _write_cache_file(staging_dir: str, fname: str) -> tuple[str, str]:
with open(path, 'wb') as outfile: with open(path, 'wb') as outfile:
outfile.write(prefix + zlib.compress(fdataraw)) outfile.write(prefix + zlib.compress(fdataraw))
return (fname, hashpath) return fname, hashpath
def _check_warm_start_entry(entry: tuple[str, str]) -> None: def _check_warm_start_entry(entry: tuple[str, str]) -> None: