From 896f30bc2ea3eaa423802d014a705cbd5c1abae5 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 17 May 2023 17:07:40 -0700 Subject: [PATCH] fixed crash on client joins --- .efrocachemap | 88 +++++++++++------------ CHANGELOG.md | 2 +- src/assets/ba_data/python/baenv.py | 2 +- src/ballistica/scene_v1/scene_v1.cc | 7 ++ src/ballistica/scene_v1/scene_v1.h | 4 ++ src/ballistica/shared/ballistica.cc | 2 +- src/ballistica/template_fs/template_fs.cc | 8 +-- 7 files changed, 62 insertions(+), 51 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 75fe2c1a..88743381 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4072,50 +4072,50 @@ "build/assets/workspace/ninjafightplug.py": "https://files.ballistica.net/cache/ba1/5c/81/461b88dcd868f050d85aa8ac3bc1", "build/assets/workspace/onslaughtplug.py": "https://files.ballistica.net/cache/ba1/1c/02/97064ab6cd7f4e0018c4e7fa8282", "build/assets/workspace/runaroundplug.py": "https://files.ballistica.net/cache/ba1/68/b6/f21cabe2df5f604ef02fee02082e", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/41/6d/f842cd587f2508dd852671c59a0a", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/a0/98/42e4aa0c55628368f0565ecb3010", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/20/53/65109947b0f7cb8964ef64b196d1", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/5b/cb/3ec93a5e3106b59721eb8470d9be", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/f2/5d/0e58335012318687ee02f333a9f0", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/21/b5/1a64f257cbeb89be58f87063c5a0", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/4d/2b/335fd97e4f33311f0ccf78e512c5", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/db/bc/8d436e18d99343cb36efb5028c86", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/8b/01/75017f0be4b483eddf7ee8b58000", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/47/85/37895e099240ce03dd575e842dc0", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/d7/1d/0c409b21587bac13785fe26b570a", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c8/9c/aaa3b08e408ff2a4f06ddde322cc", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/07/02/dbfbbdf05c608b0f7c05ce753f28", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/7b/84/e568ff95d86920d1a4ea066bbd28", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/5e/6c/c249fdfca8f89c5d5b89b3ca65e5", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c5/43/b510d0cf0402ba01459703a148bc", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/37/f5/7a2d705017794e7471debc615ef3", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/85/7b/aacfb8ef9efa523013db6bf8d7db", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/1c/ad/e71e99b64d5b84963b2dcbe66f16", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/b2/67/76541c062eb8f5dc5f5cb76d30cd", - "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/96/3e/36fb95f8f1609a5a0c51cb2c008a", - "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/66/42/15dadfe1bce99682ea7d36b4e590", - "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/71/97/7369170323e18f341fc5dcac4370", - "build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/cf/d6/3392a794e2d61618213f1baae4b5", - "build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/cf/e7/4cf4178de038c8ba0e9117024823", - "build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2e/a5/0cf02540a47f82b479c803d9de32", - "build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/e1/ba/68140e7d7fb3ac32d3056fe92255", - "build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d5/1f/07963ebef1c67d99a6250f4f4203", - "build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/5e/7c/d414a3cb9a9d085384337528c0c2", - "build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/a1/5d/5d66f841b33bffd16267d736a0c8", - "build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4e/2c/3ae430cabe5baefdd2d3b0634973", - "build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/6f/0c/70b00ac508f2220a9e54af30a5e7", - "build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/14/0e/1e5b159652cce49f33ddf5f928b2", - "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/72/7d/49eb3c6d3f542379645b31c76321", - "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/50/07/a9bbc325406fcc829367d29c2cfe", - "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4e/80/4fb673550bb4185ebd902cf120be", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/e5/7e/2a98510fdf6ba026811a3f770f14", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/f7/b9/538a4913b8e15e0cd885cc467f71", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/f5/99/71229dccb7f99b48cf3f5cc5bbdd", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/da/f9/49149d40797b11d16381091a396d", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/ba/e8/ca129a62d4a207e548e07767982d", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/1d/8e/c1bd73f56c2ea50a94cff51d3c90", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/42/0a/41d0578a63da2adf25d4cdd14e40", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/a2/39/a173b0fd483a128a0d0862e72b01", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/6b/40/719d7cebf6af6de4d2f769d723fa", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/2b/7f/8fe2a10e5d3dc5acf09ba82f1887", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/05/77/75c55218dec6bd32c2e60519be4e", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/0d/72/54c54adeb8be1b38a30dfdbf2d15", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/83/a7/af6ed9c0fe9a63d824ff145d5547", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/53/29/d770dc12236f1896ab4debc2a2e0", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/70/81/e630c925be1945db55162d2a2f8b", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/a4/1b/e789d8f0ffeb99151280995be4ac", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/61/ae/22f905d4251a64e6f6de96be5dfb", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/5e/91/9dc96467f5d970ce04176d6b62f7", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/ff/d9/e85f239ff3ff9bcb657591d88cc2", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/4c/5b/cf4ded2c95e662f4434d486af007", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/cf/0d/f85ecc66c600e674b0bed45ef008", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/af/7e/95d26a7f255fbce895971db7b973", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/84/b6/f35f89884dea154841e6319ff2b0", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/22/c3/fc8e80d03b2377574f39dd45db76", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/e8/eb/43645356f1e45050592293cbac29", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/c4/5d/cc8447259d76ff66a573781fd507", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/91/9c/03069547608a9010783c6393432b", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/de/53/162bdb53fdb5b2afe637712cea4f", + "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/44/96/ceccefa3e740b0a1543bc2473ab4", + "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4c/f7/97e567f2fbb5f029e899b941ad48", + "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/7b/37/82cefa419a7bf2cf6d5501d99115", + "build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/99/7a/b1bed0a416fe4f049417b4f91ae5", + "build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/bb/fd/3c6239f33fc43db757b9ccfc3eb5", + "build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/99/a6/6bc6d018e69376764f0be1384327", + "build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/12/8a/34f91cc2398b69852f16549e0aff", + "build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/b1/43/5ec5a46b79f6d6de0ff36c9d3f11", + "build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/be/d3/7a5e9216cac6ac635e6573e5e731", + "build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/44/bf/63799587d2e421474c117a6cc908", + "build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/13/67/6836f81cc90fbe9d37a04bbfcfff", + "build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/52/4c/a2a0d78b127ed5169f113da7d106", + "build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ec/6b/b01676a7ba1adce108eabf44f73c", + "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/e1/84/5d9f9df50ff721e5c2c71cc56939", + "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/66/8f/bf85aa04688d57e2a65f45f1fb6e", + "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/0e/7f/01dcf9d4756fae48bed8ba99e4cb", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/f0/7b/8cec0730915be1670b13ff79117b", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/2e/3b/8c923d0732ae6393f30c4aff2fcf", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/27/61/18bed3b9ac1c240e2107a869b091", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/16/6e/4298ad775ccdb914e9a7e28615cb", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/22/33/f0e3f0baac7af673b8761074f7f6", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/08/72/443db652d039a8a879128a73c4fc", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/d0/1a/7f6052b13e8ef9b09d33b09f8db9", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/cd/9f/e4ea1d31dc594667669c72729e45", "src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/52/c6/c11130af7b10d6c0321add5518fa", "src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/38/c3/1dedd5e74f2508efc5974c8815a1", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/b4/3d/e352190a0e5673d101c0f3ee3ad2", diff --git a/CHANGELOG.md b/CHANGELOG.md index a99ec002..b8cebad0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.20 (build 21018, api 8, 2023-05-17) +### 1.7.20 (build 21019, api 8, 2023-05-17) - 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 diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 3c2c0c37..29c83f1e 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -31,7 +31,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 21018 +TARGET_BALLISTICA_BUILD = 21019 TARGET_BALLISTICA_VERSION = '1.7.20' _g_env_config: EnvConfig | None = None diff --git a/src/ballistica/scene_v1/scene_v1.cc b/src/ballistica/scene_v1/scene_v1.cc index 1996dbda..95b2529b 100644 --- a/src/ballistica/scene_v1/scene_v1.cc +++ b/src/ballistica/scene_v1/scene_v1.cc @@ -142,6 +142,13 @@ void SceneV1FeatureSet::ResetRandomNames() { random_name_registry_->clear(); } +auto SceneV1FeatureSet::Import() -> SceneV1FeatureSet* { + // Since we provide a native Python module, we piggyback our C++ front-end + // on top of that. This way our C++ and Python dependencies are resolved + // consistently no matter which side we are imported from. + return ImportThroughPythonModule("_bascenev1"); +} + auto SceneV1FeatureSet::GetRandomName(const std::string& full_name) -> std::string { assert(g_base->InLogicThread()); diff --git a/src/ballistica/scene_v1/scene_v1.h b/src/ballistica/scene_v1/scene_v1.h index 11c0549d..3f1e9bc4 100644 --- a/src/ballistica/scene_v1/scene_v1.h +++ b/src/ballistica/scene_v1/scene_v1.h @@ -320,6 +320,10 @@ class SceneV1FeatureSet : public FeatureSetFrontEnd { /// Called when our associated Python module is instantiated. static void OnModuleExec(PyObject* module); + /// Instantiate our FeatureSet if needed and return the single + /// instance of it. Basically a Python import statement. + static auto Import() -> SceneV1FeatureSet*; + void Reset(); void ResetRandomNames(); diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 01192457..02f81069 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 = 21018; +const int kEngineBuildNumber = 21019; const char* kEngineVersion = "1.7.20"; auto MonolithicMain(const core::CoreConfig& core_config) -> int { diff --git a/src/ballistica/template_fs/template_fs.cc b/src/ballistica/template_fs/template_fs.cc index b0ac2758..f81ce4d5 100644 --- a/src/ballistica/template_fs/template_fs.cc +++ b/src/ballistica/template_fs/template_fs.cc @@ -22,12 +22,9 @@ void TemplateFsFeatureSet::OnModuleExec(PyObject* module) { // Create our feature-set's C++ front-end. g_template_fs = new TemplateFsFeatureSet(); - g_template_fs->python->AddPythonClasses(module); // Store our C++ front-end on our Python module. - // This lets anyone get at us by going through the Python - // import system (keeping things nice and consistent between - // Python and C++ worlds). + // This is what allows others to 'import' our C++ front end. g_template_fs->StoreOnPythonModule(module); // Import any Python stuff we use into objs_. @@ -36,6 +33,9 @@ void TemplateFsFeatureSet::OnModuleExec(PyObject* module) { // Import any other C++ feature-set-front-ends we use. assert(g_base == nullptr); // Should be getting set once here. g_base = base::BaseFeatureSet::Import(); + + // Define our module's classes. + g_template_fs->python->AddPythonClasses(module); } TemplateFsFeatureSet::TemplateFsFeatureSet() : python{new TemplateFsPython()} {