diff --git a/.efrocachemap b/.efrocachemap
index 754e3439..43f04760 100644
--- a/.efrocachemap
+++ b/.efrocachemap
@@ -3995,50 +3995,50 @@
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
- "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a1/66/39cac09bf6b06e56c530835eb181",
- "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/2b/cb/6dd8bdf3a077d3aa761f9b8fbd63",
- "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b5/e9/5c0a89d56a6e483229da89281796",
- "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fe/f9/c33d7708c6186bfd96d5e47955a3",
- "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/73/5b/93a06dabd24015bb45150bf9b504",
- "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/cb/e0/a0da487b59ded7b3906f14bfa720",
- "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d2/fe/bace2357c3c17373a474bb4c2550",
- "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bb/1c/8f71bc4449cd828817e7eb5e685e",
- "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/59/c0/562d9fdf5769951cd04f4389f0b8",
- "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0a/7d/8a7148a088f5b2c7c1fa770368a9",
- "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d8/d3/b107c0c0564b59544af598ebb975",
- "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c2/10/e29b058f51d202b47315a78e9426",
- "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/25/fd41d552ce3c4d3b6097ddf38575",
- "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/68/35/afcdb16cb02aee02aefecda09c18",
- "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/89/a6/ed6fb097d9f5b7bf213750399b09",
- "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c6/e0/ac51274e398c2d4c9ca96918ff24",
- "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/83/46/3a7a9981de261f0ade01976d5ff7",
- "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a4/a9/0cfdc1a7499515d9ae1742a1556d",
- "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/cd/9b/2b5530a52e1da3912f2b89f2de83",
- "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/24/32/c583f30ff2e5f77c02e1716033b8",
- "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/26/1d/c05986ea5543313a3d9ad8f87551",
- "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a9/30/62c8fa6369762561e87708d625ae",
- "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/32/e2/27313549815bc9201818b4db6c10",
- "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/48/67/bac46275cec3dbdbee7d4c698406",
- "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/13/37/b2a85900f3d5f518cc7e67151282",
- "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/7e/4f/2bc692ccdcb53a278ad9b06ddbf1",
- "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/38/12/6e9a96f48a7af39f526dcd41ebce",
- "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8f/f3/deee23add01a2c2d8bb4b6197366",
- "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/83/4d/8bdc0827cf90d2cd09e56a1846ed",
- "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4a/55/b93f1eae564c146ca60f1a23b915",
- "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e7/fc/58cd588c4aecd56e1ef2bba7b11d",
- "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/21/83/f5bcb13224fec91b6139b7ae83ed",
- "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/69/1a/eb5f3c85fc8f8194cc96b19714b3",
- "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/27/75/a18262f80729191921e12da1b2dc",
- "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4e/a5/7144c121faf50b2e6cf1db40e281",
- "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/29/08/889f9f0cbd89b692cbcdc0dad96c",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/96/8e/6da028cf907b53fa621cf0275352",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/c3/81/6591a6f11570c598e5dee0d58586",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/ee/f9/e0c13708771197ee7f41db988d19",
- "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/a2/66/c5433ea1cbd812a532d23895379d",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/c9/21/154dae08aceb0c162c1ba9580ceb",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/74/c9/fd45708e613a27dcf3782b3d9dfe",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/e1/8e/f5a16f655ae1f2b075e80fb3a981",
- "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/02/73/2dd954ea8a85a542ce900047ab6c",
+ "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c2/cb/1e9b2d26994e9dcd55d1df152b19",
+ "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4a/ae/c8878226f4a2d507f4ff5f377859",
+ "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/18/0f/9abd66eae1925271ab132163f2e0",
+ "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/54/c0/bb411385e3aefb55ca3fb4150e60",
+ "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3c/61/37d143c8b14fb05990c0b8bc8f52",
+ "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/f6/61/3958823929bcf2cdd9ca694d0ad7",
+ "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d5/73/b714b3e9a36076dee085fcdc7db2",
+ "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/42/8ad2896d59013850516d54f49b7d",
+ "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d1/7c/c554ffc1f8c71bc08d4b025ccf4e",
+ "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/48/a9/94778472d1c43f556fee5e93c0ab",
+ "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/aa/f1/1c36c23d4d5bd6516adddc206514",
+ "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/af/76/63cfa6cc0915d35583bcaf30a2e0",
+ "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/2f/bb/8bfbea820878f58c5cb9cc702ff0",
+ "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4b/06/d72c7d9965890905dd3291c7f2c6",
+ "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c1/02/c9cfaf45b9003df94a2a8e277075",
+ "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4c/47/a66e6ce399dc00ade26e761f876f",
+ "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b4/a4/6c844726fc0fb13925622b754cc9",
+ "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/4b/39/91b9746101e23fd615424b1721e5",
+ "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/31/07/5e49d34cd8bc204fb38e920f133c",
+ "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/6d/b1/6c593726c41a32066ba34ccf2ff5",
+ "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/81/60/37044e17e52ca125c1d48af83d03",
+ "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fb/47/d505c3feea40888985dd335dc8c4",
+ "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4f/3d/20c78e744ac26a13b7418166d675",
+ "build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e3/77/67a1fafff2c1918b1661b71ecaa0",
+ "build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9b/00/f11d8f7f79c9b692b84f6dbd54dc",
+ "build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f8/3a/0cd5030cbe13f99bf23d05ee6cfb",
+ "build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5b/2a/3be2a55cbd63f9c42618c4013c87",
+ "build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/09/ef/8fbfc6032e6a6089215c3dc365a1",
+ "build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f8/79/31ecc50de3e52c55a1569b8b9438",
+ "build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8a/a0/3ef54e3c6c3c777f8a221da16c14",
+ "build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ee/a8/07c5e78d027bfc1acc88a25932b4",
+ "build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ec/f5/a161f6c194a64f371e35e31bbfca",
+ "build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/56/45/b6b9259f447f19ef0643b972bc64",
+ "build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3b/79/592c41691e94807d23a783723861",
+ "build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/13/d9/36f4cf8527494f419db74ae6c78f",
+ "build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ee/e5/7f0677e6fb8d7cfa169930579712",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/8c/4c/3bb058268312359ad8be98f35d9a",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/0a/09/1708ba819095ed0d708fdf4db96a",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/51/79/b0cccbb7292b56b00a9298d1a22f",
+ "build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/20/2a/30500076cd30d44260a8365c02b5",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/88/a2/ca9e4011d6fa8b366159838b53a1",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/af/b2/b3a702920a14288ceb1603f1f091",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/70/57/1c725a736ebba2035fe3a3ec64df",
+ "build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/ba/b8/e952aa9d40f5453db0acd4361f10",
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/7d/3e/229a581cb2454ed856f1d8b564a7",
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/98/12/571b2160d69d42580e8f31fa6a8d"
}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1d9a38ec..8602aef4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-### 1.7.7 (build 20825, api 7, 2022-09-12)
+### 1.7.7 (build 20829, api 7, 2022-09-12)
- Added `ba.app.meta.load_exported_classes()` for loading classes discovered by the meta subsystem cleanly in a background thread.
- Improved logging of missing playlist game types.
- Some ba.Lstr functionality can now be used in background threads.
@@ -24,6 +24,7 @@
- Renamed C++ Media to Assets.
- Removed 'scores to beat' list in coop which was only ever functional in limited cases on the Mac version. Perhaps that feature can reappear in a cross-platform way sometime.
- Simplified C++ bootstrapping to allocate all globals in one place.
+- Renamed C++ Game class to Logic.
### 1.7.6 (build 20687, api 7, 2022-08-11)
- Cleaned up da MetaSubsystem code.
diff --git a/assets/src/ba_data/python/._bainternal_sources_hash b/assets/src/ba_data/python/._bainternal_sources_hash
index 1da66812..0321a786 100644
--- a/assets/src/ba_data/python/._bainternal_sources_hash
+++ b/assets/src/ba_data/python/._bainternal_sources_hash
@@ -1 +1 @@
-174884230264825984620020844009502663721
\ No newline at end of file
+304827393730630459319623179535089986346
\ No newline at end of file
diff --git a/assets/src/ba_data/python/ba/_bootstrap.py b/assets/src/ba_data/python/ba/_bootstrap.py
index 039c0fcd..fdd14841 100644
--- a/assets/src/ba_data/python/ba/_bootstrap.py
+++ b/assets/src/ba_data/python/ba/_bootstrap.py
@@ -38,7 +38,7 @@ def bootstrap() -> None:
# Give a soft warning if we're being used with a different binary
# version than we expect.
- expected_build = 20825
+ expected_build = 20829
running_build: int = env['build_number']
if running_build != expected_build:
print(
diff --git a/ballisticacore-cmake/CMakeLists.txt b/ballisticacore-cmake/CMakeLists.txt
index 1cc4586d..8311aaf2 100644
--- a/ballisticacore-cmake/CMakeLists.txt
+++ b/ballisticacore-cmake/CMakeLists.txt
@@ -332,40 +332,6 @@ add_executable(ballisticacore
${BA_SRC_ROOT}/ballistica/dynamics/part.h
${BA_SRC_ROOT}/ballistica/dynamics/rigid_body.cc
${BA_SRC_ROOT}/ballistica/dynamics/rigid_body.h
- ${BA_SRC_ROOT}/ballistica/game/client_controller_interface.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_set.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_set.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_client.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_client.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_client_udp.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_client_udp.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_host.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_host.h
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_host_udp.cc
- ${BA_SRC_ROOT}/ballistica/game/connection/connection_to_host_udp.h
- ${BA_SRC_ROOT}/ballistica/game/friend_score_set.h
- ${BA_SRC_ROOT}/ballistica/game/game.cc
- ${BA_SRC_ROOT}/ballistica/game/game.h
- ${BA_SRC_ROOT}/ballistica/game/host_activity.cc
- ${BA_SRC_ROOT}/ballistica/game/host_activity.h
- ${BA_SRC_ROOT}/ballistica/game/player.cc
- ${BA_SRC_ROOT}/ballistica/game/player.h
- ${BA_SRC_ROOT}/ballistica/game/player_spec.cc
- ${BA_SRC_ROOT}/ballistica/game/player_spec.h
- ${BA_SRC_ROOT}/ballistica/game/session/client_session.cc
- ${BA_SRC_ROOT}/ballistica/game/session/client_session.h
- ${BA_SRC_ROOT}/ballistica/game/session/host_session.cc
- ${BA_SRC_ROOT}/ballistica/game/session/host_session.h
- ${BA_SRC_ROOT}/ballistica/game/session/net_client_session.cc
- ${BA_SRC_ROOT}/ballistica/game/session/net_client_session.h
- ${BA_SRC_ROOT}/ballistica/game/session/replay_client_session.cc
- ${BA_SRC_ROOT}/ballistica/game/session/replay_client_session.h
- ${BA_SRC_ROOT}/ballistica/game/session/session.cc
- ${BA_SRC_ROOT}/ballistica/game/session/session.h
- ${BA_SRC_ROOT}/ballistica/game/v1_account.cc
- ${BA_SRC_ROOT}/ballistica/game/v1_account.h
${BA_SRC_ROOT}/ballistica/generic/base64.cc
${BA_SRC_ROOT}/ballistica/generic/base64.h
${BA_SRC_ROOT}/ballistica/generic/buffer.h
@@ -485,6 +451,40 @@ add_executable(ballisticacore
${BA_SRC_ROOT}/ballistica/input/remote_app.cc
${BA_SRC_ROOT}/ballistica/input/remote_app.h
${BA_SRC_ROOT}/ballistica/internal/app_internal.h
+ ${BA_SRC_ROOT}/ballistica/logic/client_controller_interface.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_set.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_set.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_client.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_client.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_client_udp.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_client_udp.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_host.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_host.h
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_host_udp.cc
+ ${BA_SRC_ROOT}/ballistica/logic/connection/connection_to_host_udp.h
+ ${BA_SRC_ROOT}/ballistica/logic/friend_score_set.h
+ ${BA_SRC_ROOT}/ballistica/logic/host_activity.cc
+ ${BA_SRC_ROOT}/ballistica/logic/host_activity.h
+ ${BA_SRC_ROOT}/ballistica/logic/logic.cc
+ ${BA_SRC_ROOT}/ballistica/logic/logic.h
+ ${BA_SRC_ROOT}/ballistica/logic/player.cc
+ ${BA_SRC_ROOT}/ballistica/logic/player.h
+ ${BA_SRC_ROOT}/ballistica/logic/player_spec.cc
+ ${BA_SRC_ROOT}/ballistica/logic/player_spec.h
+ ${BA_SRC_ROOT}/ballistica/logic/session/client_session.cc
+ ${BA_SRC_ROOT}/ballistica/logic/session/client_session.h
+ ${BA_SRC_ROOT}/ballistica/logic/session/host_session.cc
+ ${BA_SRC_ROOT}/ballistica/logic/session/host_session.h
+ ${BA_SRC_ROOT}/ballistica/logic/session/net_client_session.cc
+ ${BA_SRC_ROOT}/ballistica/logic/session/net_client_session.h
+ ${BA_SRC_ROOT}/ballistica/logic/session/replay_client_session.cc
+ ${BA_SRC_ROOT}/ballistica/logic/session/replay_client_session.h
+ ${BA_SRC_ROOT}/ballistica/logic/session/session.cc
+ ${BA_SRC_ROOT}/ballistica/logic/session/session.h
+ ${BA_SRC_ROOT}/ballistica/logic/v1_account.cc
+ ${BA_SRC_ROOT}/ballistica/logic/v1_account.h
${BA_SRC_ROOT}/ballistica/math/matrix44f.cc
${BA_SRC_ROOT}/ballistica/math/matrix44f.h
${BA_SRC_ROOT}/ballistica/math/point2d.h
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
index 504b79cc..ba959b23 100644
--- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj
@@ -323,40 +323,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -476,6 +442,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
index 7e1d56f9..cd16c516 100644
--- a/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
+++ b/ballisticacore-windows/Generic/BallisticaCoreGeneric.vcxproj.filters
@@ -403,108 +403,6 @@
ballistica\dynamics
-
- ballistica\game
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game
-
-
- ballistica\game
-
ballistica\generic
@@ -862,6 +760,108 @@
ballistica\internal
+
+ ballistica\logic
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
ballistica\math
@@ -1652,9 +1652,6 @@
-
-
-
@@ -1665,6 +1662,9 @@
+
+
+
diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
index 303289b0..c6adfba9 100644
--- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
+++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj
@@ -318,40 +318,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -471,6 +437,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
index 7e1d56f9..cd16c516 100644
--- a/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
+++ b/ballisticacore-windows/Headless/BallisticaCoreHeadless.vcxproj.filters
@@ -403,108 +403,6 @@
ballistica\dynamics
-
- ballistica\game
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game\connection
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game\session
-
-
- ballistica\game
-
-
- ballistica\game
-
ballistica\generic
@@ -862,6 +760,108 @@
ballistica\internal
+
+ ballistica\logic
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic\connection
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic\session
+
+
+ ballistica\logic
+
+
+ ballistica\logic
+
ballistica\math
@@ -1652,9 +1652,6 @@
-
-
-
@@ -1665,6 +1662,9 @@
+
+
+
diff --git a/src/ballistica/app/app_flavor.cc b/src/ballistica/app/app_flavor.cc
index 4dfef290..3e085ae3 100644
--- a/src/ballistica/app/app_flavor.cc
+++ b/src/ballistica/app/app_flavor.cc
@@ -4,11 +4,11 @@
#include "ballistica/app/stress_test.h"
#include "ballistica/core/thread.h"
-#include "ballistica/game/game.h"
#include "ballistica/graphics/graphics_server.h"
#include "ballistica/graphics/renderer.h"
#include "ballistica/input/device/touch_input.h"
#include "ballistica/input/input.h"
+#include "ballistica/logic/logic.h"
#include "ballistica/networking/network_reader.h"
#include "ballistica/networking/networking.h"
#include "ballistica/networking/telnet_server.h"
@@ -196,7 +196,7 @@ void AppFlavor::OnResume() {
// Also let the Python layer do what it needs to
// (starting/stopping music, etc.).
g_python->PushObjCall(Python::ObjID::kHandleAppResumeCall);
- g_game->PushOnAppResumeCall();
+ g_logic->PushOnAppResumeCall();
g_graphics->SetGyroEnabled(true);
@@ -211,7 +211,7 @@ void AppFlavor::OnResume() {
// If we've been completely backgrounded,
// send a menu-press command to the game; this will
// bring up a pause menu if we're in the game/etc.
- g_game->PushMainMenuPressCall(nullptr);
+ g_logic->PushMainMenuPressCall(nullptr);
}
}
diff --git a/src/ballistica/app/app_flavor_vr.cc b/src/ballistica/app/app_flavor_vr.cc
index 129d8b51..4fa5f7a6 100644
--- a/src/ballistica/app/app_flavor_vr.cc
+++ b/src/ballistica/app/app_flavor_vr.cc
@@ -4,9 +4,9 @@
#include "ballistica/app/app_flavor_vr.h"
#include "ballistica/core/thread.h"
-#include "ballistica/game/game.h"
#include "ballistica/graphics/graphics_server.h"
#include "ballistica/graphics/renderer.h"
+#include "ballistica/logic/logic.h"
namespace ballistica {
@@ -87,7 +87,7 @@ auto AppFlavorVR::VRSetHands(const VRHandsState& state) -> void {
renderer->VRSetHands(state);
// ALSO ship it off to the game/ui thread to actually handle input from it.
- g_game->PushVRHandsState(state);
+ g_logic->PushVRHandsState(state);
}
auto AppFlavorVR::VRDrawEye(int eye, float yaw, float pitch, float roll,
diff --git a/src/ballistica/app/stress_test.cc b/src/ballistica/app/stress_test.cc
index d7f22d39..dd63eb23 100644
--- a/src/ballistica/app/stress_test.cc
+++ b/src/ballistica/app/stress_test.cc
@@ -82,7 +82,7 @@ void StressTest::Update() {
texture_count = g_assets->total_texture_count();
sound_count = g_assets->total_sound_count();
}
- assert(g_game);
+ assert(g_logic);
std::string mem_usage = g_platform->GetMemUsageInfo();
fprintf(stress_test_stats_file_, "%d,%.1f,%d,%d,%d,%d,%d,%s\n",
static_cast_check_fit(GetRealTime()), avg, node_count,
diff --git a/src/ballistica/assets/assets.cc b/src/ballistica/assets/assets.cc
index 734e59e3..9393e7a8 100644
--- a/src/ballistica/assets/assets.cc
+++ b/src/ballistica/assets/assets.cc
@@ -14,10 +14,10 @@
#include "ballistica/assets/data/sound_data.h"
#include "ballistica/audio/audio_server.h"
#include "ballistica/core/thread.h"
-#include "ballistica/game/game.h"
#include "ballistica/generic/timer.h"
#include "ballistica/graphics/graphics_server.h"
#include "ballistica/graphics/text/text_packer.h"
+#include "ballistica/logic/logic.h"
#include "ballistica/python/python_sys.h"
namespace ballistica {
@@ -813,8 +813,8 @@ auto Assets::RunPendingLoadList(std::vector*>* c_list) -> bool {
// if we dumped anything on the pending loads done list, shake the game thread
// to tell it to kill the reference..
if (!l_finished.empty()) {
- assert(g_game);
- g_game->PushHavePendingLoadsDoneCall();
+ assert(g_logic);
+ g_logic->PushHavePendingLoadsDoneCall();
}
return (!l.empty());
}
@@ -1186,7 +1186,7 @@ void Assets::AddPendingLoad(Object::Ref* c) {
std::scoped_lock lock(pending_load_list_mutex_);
pending_loads_other_.push_back(c);
}
- g_game->PushHavePendingLoadsCall();
+ g_logic->PushHavePendingLoadsCall();
break;
}
}
diff --git a/src/ballistica/audio/audio_server.cc b/src/ballistica/audio/audio_server.cc
index e6abaca9..074ee8d4 100644
--- a/src/ballistica/audio/audio_server.cc
+++ b/src/ballistica/audio/audio_server.cc
@@ -11,8 +11,8 @@
#include "ballistica/audio/audio_streamer.h"
#include "ballistica/audio/ogg_stream.h"
#include "ballistica/core/thread.h"
-#include "ballistica/game/game.h"
#include "ballistica/generic/timer.h"
+#include "ballistica/logic/logic.h"
#include "ballistica/math/vector3f.h"
// Need to move away from OpenAL on Apple stuff.
@@ -1114,7 +1114,7 @@ void AudioServer::PushComponentUnloadCall(
}
// ...and then ship these pointers back to the game thread, so it can free
// the references.
- g_game->PushFreeAssetComponentRefsCall(components);
+ g_logic->PushFreeAssetComponentRefsCall(components);
});
}
@@ -1131,7 +1131,8 @@ void AudioServer::AddSoundRefDelete(const Object::Ref* c) {
sound_ref_delete_list_.push_back(c);
}
// Now push a call to the game thread to do the deletes.
- g_game->thread()->PushCall([] { g_audio_server->ClearSoundRefDeleteList(); });
+ g_logic->thread()->PushCall(
+ [] { g_audio_server->ClearSoundRefDeleteList(); });
}
void AudioServer::ClearSoundRefDeleteList() {
diff --git a/src/ballistica/audio/audio_server.h b/src/ballistica/audio/audio_server.h
index 026bda6a..4b9bad0c 100644
--- a/src/ballistica/audio/audio_server.h
+++ b/src/ballistica/audio/audio_server.h
@@ -40,7 +40,7 @@ class AudioServer {
auto PushComponentUnloadCall(
const std::vector*>& components) -> void;
- /// For use by g_game_module().
+ /// For use by g_logic_module().
auto ClearSoundRefDeleteList() -> void;
auto paused() const -> bool { return paused_; }
diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc
index 3d2efe3a..6e2515fe 100644
--- a/src/ballistica/ballistica.cc
+++ b/src/ballistica/ballistica.cc
@@ -16,11 +16,11 @@
#include "ballistica/core/thread.h"
#include "ballistica/dynamics/bg/bg_dynamics.h"
#include "ballistica/dynamics/bg/bg_dynamics_server.h"
-#include "ballistica/game/v1_account.h"
#include "ballistica/graphics/graphics_server.h"
#include "ballistica/graphics/text/text_graphics.h"
#include "ballistica/input/input.h"
#include "ballistica/internal/app_internal.h"
+#include "ballistica/logic/v1_account.h"
#include "ballistica/networking/network_writer.h"
#include "ballistica/networking/networking.h"
#include "ballistica/platform/platform.h"
@@ -32,7 +32,7 @@
namespace ballistica {
// These are set automatically via script; don't modify them here.
-const int kAppBuildNumber = 20825;
+const int kAppBuildNumber = 20829;
const char* kAppVersion = "1.7.7";
// Our standalone globals.
@@ -50,7 +50,7 @@ AudioServer* g_audio_server{};
BGDynamics* g_bg_dynamics{};
BGDynamicsServer* g_bg_dynamics_server{};
Context* g_context{};
-Game* g_game{};
+Logic* g_logic{};
Graphics* g_graphics{};
GraphicsServer* g_graphics_server{};
Input* g_input{};
@@ -129,7 +129,7 @@ auto BallisticaMain(int argc, char** argv) -> int {
g_network_writer = new NetworkWriter();
g_input = new Input();
g_app_internal = CreateAppInternal();
- g_game = new Game();
+ g_logic = new Logic();
Scene::Init();
if (!HeadlessMode()) {
g_bg_dynamics = new BGDynamics();
@@ -146,7 +146,7 @@ auto BallisticaMain(int argc, char** argv) -> int {
// Phase 2: Set things in motion.
// -------------------------------------------------------------------------
- g_game->OnAppStart();
+ g_logic->OnAppStart();
g_audio_server->OnAppStart();
g_assets_server->OnAppStart();
g_platform->OnAppStart();
@@ -156,7 +156,7 @@ auto BallisticaMain(int argc, char** argv) -> int {
}
// Ok; now that we're bootstrapped, tell the game thread to read and apply
// the config which should kick off the real action.
- g_game->PushApplyConfigCall();
+ g_logic->PushApplyConfigCall();
// -------------------------------------------------------------------------
// Phase 3/4: Create a screen and/or kick off game (in other threads).
@@ -263,7 +263,7 @@ auto GetAppInstanceUUID() -> const std::string& {
}
auto InLogicThread() -> bool {
- return (g_game && g_game->thread()->IsCurrent());
+ return (g_logic && g_logic->thread()->IsCurrent());
}
auto InMainThread() -> bool {
@@ -297,10 +297,10 @@ auto Log(const std::string& msg, bool to_stdout, bool to_server) -> void {
auto IsVRMode() -> bool { return g_app->vr_mode; }
void ScreenMessage(const std::string& s, const Vector3f& color) {
- if (g_game) {
- g_game->PushScreenMessage(s, color);
+ if (g_logic) {
+ g_logic->PushScreenMessage(s, color);
} else {
- Log("ScreenMessage before g_game init (will be lost): '" + s + "'");
+ Log("ScreenMessage before g_logic init (will be lost): '" + s + "'");
}
}
diff --git a/src/ballistica/ballistica.h b/src/ballistica/ballistica.h
index ddba4f1c..f68705fb 100644
--- a/src/ballistica/ballistica.h
+++ b/src/ballistica/ballistica.h
@@ -113,10 +113,10 @@ extern AudioServer* g_audio_server;
extern BGDynamics* g_bg_dynamics;
extern BGDynamicsServer* g_bg_dynamics_server;
extern Context* g_context;
-extern Game* g_game;
extern Graphics* g_graphics;
extern GraphicsServer* g_graphics_server;
extern Input* g_input;
+extern Logic* g_logic;
extern Thread* g_main_thread;
extern Assets* g_assets;
extern AssetsServer* g_assets_server;
diff --git a/src/ballistica/core/context.cc b/src/ballistica/core/context.cc
index 6b6da3fb..632f9f1b 100644
--- a/src/ballistica/core/context.cc
+++ b/src/ballistica/core/context.cc
@@ -2,8 +2,8 @@
#include "ballistica/core/context.h"
-#include "ballistica/game/host_activity.h"
#include "ballistica/generic/runnable.h"
+#include "ballistica/logic/host_activity.h"
#include "ballistica/ui/ui.h"
namespace ballistica {
diff --git a/src/ballistica/core/logging.cc b/src/ballistica/core/logging.cc
index 5635ceb4..69a892b9 100644
--- a/src/ballistica/core/logging.cc
+++ b/src/ballistica/core/logging.cc
@@ -5,8 +5,8 @@
#include