additional net diagnostics

This commit is contained in:
Eric Froemling 2022-02-21 14:00:40 -06:00
parent f2ecf75b0c
commit b9a9594fdc
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
14 changed files with 60 additions and 503 deletions

View File

@ -3971,50 +3971,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/be/a6/3f794efed8c208476f6303fa4946",
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/58/fd/d72fbca459b185e8afbb06809ed6",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b1/c8/2367fb54d758e69059bc0ab94f01",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5a/23/07b33f5df4c620c596b1d926615b",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/50/aa/71ddcf1aee0398f60f582ec06a50",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/53/08/51bcc266af4f781b51f901f1035c",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7c/5a/8073a7469267775f911146e5a63b",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a4/0b/4b8d1d1860e07d6c310491737038",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cc/78/c6aa19160783008990a5634c21a0",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ab/34/fe2ced069d869793f6f5b430edd4",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c2/e1/0d49b8d193c7d21440ab617868e7",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/2c/08/eada9fa01448f697b09f18ce2c21",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/ec/754591c6f73f787462f3d9f6ae45",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/df/a4/37e89b60df2e05f0dc1570c46d64",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/03/a0/3e6f783984a75e06200d47d25440",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b4/36/5f5cebd0829854f7136a84b6e225",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/db/42/2d072f3d0c11698f7d8921f24ede",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f3/b8/5fe74e125fc87d5bf61794ebb807",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/cb/1b/a39144509e66e23fed23bbf5406d",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7b/56/ec8fdf4027b27880ff7c6d5ebd54",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/ee/c2/4860ea493f0fc8a8f8f3deb3df6d",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/af/11/58fd8c32ab413f93a2e1214d21c7",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/84/87/1f3aa0e529829ce9864171d9eef9",
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/46/ee23308d315f098fa3f512936880",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d7/b4/bec563f7f6b755b44f45720a4be1",
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a9/57/00f58913c9682e49b123e4acdec3",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ed/91/d32f9e483961e04864caf779192a",
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ad/48/6e471f169e76089290c872893012",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/73/3f/9826454e5f78857b1ab23cd50772",
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/21/7a/e063d50077123b480c648834b88f",
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/94/03b217fc591160901dce11a894f2",
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/de/f6/5ea9875cf1f6cf4aa289737cf35c",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0d/64/e4e9dad71e85cdca5e7975d75dbf",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/18/69/0c94ab639a2db0be160b587d9bc0",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/13/3a/27fbb5c5875a189ab81acf2027a2",
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c8/00/6cbfb32012f88c6fab179eb41a09",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6a/0b/fb82ed889b08e741a750cc406fff",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/02/93/5c4c75b89b3b3092c49907c3c1dd",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/b5/0e/f6a511e81aa197d0446620a2ac06",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/82/82/136d4e3f0b8bd97b3de991e5d6bb",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/c6/5c/a6de210112c28cd86e85297317f8",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/e3/df/f1c722f104a31d366a79bece7312",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/56/7a/3ff0fcf84f7fab86fee6ec1f25f1",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/dc/66/051d9473e188c68bf6b4f9decee8",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/08/c0/051746eaa9b594a61ffa19465f4a",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/cf/42/4fca8fb5d08724f0613250ab9495",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0f/41/50fb52935e99d22064a846ba0228",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/96/d9/744aaf4cafdab3604c3ade120566",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/fd/da/d960a375186f00e31bfe525c4ddf",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/62/27/808783deef688eae80758fd366bb",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/08/13/8d736b50fc456c0f4bf28932cdba",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b2/7a/f146b4c46af2d879f9d2001f5549",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/de/5f/fc9a0bead56b3aebbe7ce5fe3e76",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/a0/f1/1ff103dd68124320676dd5bb55b5",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/60/e1/0a32c6a13ef0584f9fd05c63a14c",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ff/ac/69a19cd8529e3be4c41c6b9dc41b",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/0e/f9/e5c30b3c21cd0f56bf5c2273152b",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/f6/a3/ddeb4ac188dcd75180229af77c7e",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/80/32/eaa12833c0c1058e8de23ba61ef0",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/1a/7e/78c2ca66e9fe29c94e837846b833",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/05/31/c89531314b9ad630e191a5821a0c",
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a6/4f/6ed44d4194bfe50d1fa634823b6d",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4b/c7/948c131d58594bfc9358c76fc9cc",
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/94/57/cd3580bf48aa736523a81bf132b9",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6b/80/d71d814dbb7fd2c7062524d74ac3",
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f4/fa/7084c793e3a0de5ada3a4c5ef242",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/f9/076ea39266eaaf256f75bbed1af3",
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/11/cc/7a587313f931221d486c0af4868b",
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d4/75/16ff39f4507a3d7b5c063eccea2e",
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9a/50/1221d18faf9363305f5d8c370a0a",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a7/ea/840e778dc33042219f7c7068ef20",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/bc/ab/e803c965fa448e268afc49555ab7",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/44/24/cf847c839553d5ed959550581ac1",
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/08/e0/90f957a27cba0a9aac1b5269cc95",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/85/bee2da67697275c634cd88d5cf4d",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/08/0c/9396b12f9653cd7587f6daf5f58d",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/40/12/4f8ac59e0d505e26d672840ec894",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/11/25/0c493ecada2cd87fc84bf7877f3e",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/57/93/363cdc3317d902c9c1f92bd63696",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/6c/9f/2293738027a75bcd83f62ddd9810",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/28/1f/780afd766603475f611e6e6804d7",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/da/1c/a841b30ce31b3b41078948b24fe1",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/77/24/b769aadc90eb68c2183cdad3f719",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/64/22/c1e56da255ca05406a7c45cf22b5",
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/c5/18/29d9fe8e483ce222d3263336f7e6",
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/9d/7e/0a5125aa421e722c59d22b8beb19"
}

View File

@ -509,6 +509,7 @@
<w>curstate</w>
<w>curtime</w>
<w>curtimestr</w>
<w>curv</w>
<w>customdata</w>
<w>customizebrowser</w>
<w>cutscenes</w>
@ -1178,6 +1179,7 @@
<w>janktastic</w>
<w>janky</w>
<w>jascha</w>
<w>jcrc</w>
<w>jdict</w>
<w>jenkinsfile</w>
<w>jexport</w>
@ -2408,6 +2410,7 @@
<w>timetype</w>
<w>tipstext</w>
<w>titletext</w>
<w>tlog</w>
<w>tmpdir</w>
<w>tmpf</w>
<w>tmppath</w>

View File

@ -1,4 +1,4 @@
### 1.6.9 (20477, 2022-02-21)
### 1.6.9 (20480, 2022-02-21)
- Upgraded Android Python to 3.9.10
- Fixed an issue with SSL in Android builds that was preventing communication with the master-server in 1.6.8
- Added a new network-diagnostics tool at 'Settings->Advanced->Network Testing'. Can be used to diagnose issues talking to master-servers/etc. (especially useful now that SSL can factor in)

View File

@ -445,12 +445,10 @@
"ba_data/python/bastd/ui/settings/__pycache__/keyboard.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/nettesting.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/plugins.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/ps3controller.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/remoteapp.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/testing.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/touchscreen.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/vrtesting.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/wiimote.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/xbox360controller.cpython-39.opt-1.pyc",
"ba_data/python/bastd/ui/settings/advanced.py",
"ba_data/python/bastd/ui/settings/allsettings.py",
@ -463,12 +461,10 @@
"ba_data/python/bastd/ui/settings/keyboard.py",
"ba_data/python/bastd/ui/settings/nettesting.py",
"ba_data/python/bastd/ui/settings/plugins.py",
"ba_data/python/bastd/ui/settings/ps3controller.py",
"ba_data/python/bastd/ui/settings/remoteapp.py",
"ba_data/python/bastd/ui/settings/testing.py",
"ba_data/python/bastd/ui/settings/touchscreen.py",
"ba_data/python/bastd/ui/settings/vrtesting.py",
"ba_data/python/bastd/ui/settings/wiimote.py",
"ba_data/python/bastd/ui/settings/xbox360controller.py",
"ba_data/python/bastd/ui/soundtrack/__init__.py",
"ba_data/python/bastd/ui/soundtrack/__pycache__/__init__.cpython-39.opt-1.pyc",

View File

@ -351,12 +351,10 @@ SCRIPT_TARGETS_PY_PUBLIC = \
build/ba_data/python/bastd/ui/settings/keyboard.py \
build/ba_data/python/bastd/ui/settings/nettesting.py \
build/ba_data/python/bastd/ui/settings/plugins.py \
build/ba_data/python/bastd/ui/settings/ps3controller.py \
build/ba_data/python/bastd/ui/settings/remoteapp.py \
build/ba_data/python/bastd/ui/settings/testing.py \
build/ba_data/python/bastd/ui/settings/touchscreen.py \
build/ba_data/python/bastd/ui/settings/vrtesting.py \
build/ba_data/python/bastd/ui/settings/wiimote.py \
build/ba_data/python/bastd/ui/settings/xbox360controller.py \
build/ba_data/python/bastd/ui/soundtrack/__init__.py \
build/ba_data/python/bastd/ui/soundtrack/browser.py \
@ -598,12 +596,10 @@ SCRIPT_TARGETS_PYC_PUBLIC = \
build/ba_data/python/bastd/ui/settings/__pycache__/keyboard.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/nettesting.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/plugins.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/ps3controller.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/remoteapp.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/testing.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/touchscreen.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/vrtesting.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/wiimote.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/settings/__pycache__/xbox360controller.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/soundtrack/__pycache__/__init__.cpython-39.opt-1.pyc \
build/ba_data/python/bastd/ui/soundtrack/__pycache__/browser.cpython-39.opt-1.pyc \

View File

@ -30,6 +30,9 @@ class NetworkSubsystem:
self.region_pings_lock = threading.Lock()
self.region_pings: dict[str, float] = {}
# For debugging.
self.v1_test_log: str = ''
def get_ip_address_type(addr: str) -> socket.AddressFamily:
"""Return socket.AF_INET6 or socket.AF_INET4 for the provided address."""

View File

@ -91,21 +91,6 @@ class ControlsSettingsWindow(ba.Window):
else:
show_remote = False
show_ps3 = False
# if platform == 'mac':
# show_ps3 = True
# height += spacing
show360 = False
# if platform == 'mac' or is_fire_tv:
# show360 = True
# height += spacing
show_mac_wiimote = False
# if platform == 'mac' and _ba.is_xcode_build():
# show_mac_wiimote = True
# height += spacing
# On windows (outside of oculus/vr), show an option to disable xinput.
show_xinput_toggle = False
if platform == 'windows' and not app.vr_mode:
@ -152,9 +137,6 @@ class ControlsSettingsWindow(ba.Window):
self._keyboard_button: Optional[ba.Widget] = None
self._keyboard_2_button: Optional[ba.Widget] = None
self._idevices_button: Optional[ba.Widget] = None
self._ps3_button: Optional[ba.Widget] = None
self._xbox_360_button: Optional[ba.Widget] = None
self._wiimotes_button: Optional[ba.Widget] = None
ba.textwidget(parent=self._root_widget,
position=(0, height - 49),
@ -261,42 +243,6 @@ class ControlsSettingsWindow(ba.Window):
down_widget=self._idevices_button)
self._have_selected_child = True
v -= spacing
if show_ps3:
self._ps3_button = btn = ba.buttonwidget(
parent=self._root_widget,
position=((width - button_width) / 2 + 5, v),
size=(button_width, 43),
autoselect=True,
label=ba.Lstr(resource=self._r + '.ps3Text'),
on_activate_call=self._do_ps3_controllers)
if ba.app.ui.use_toolbars:
ba.widget(edit=btn,
right_widget=_ba.get_special_widget('party_button'))
v -= spacing
if show360:
self._xbox_360_button = btn = ba.buttonwidget(
parent=self._root_widget,
position=((width - button_width) / 2 - 1, v),
size=(button_width, 43),
autoselect=True,
label=ba.Lstr(resource=self._r + '.xbox360Text'),
on_activate_call=self._do_360_controllers)
if ba.app.ui.use_toolbars:
ba.widget(edit=btn,
right_widget=_ba.get_special_widget('party_button'))
v -= spacing
if show_mac_wiimote:
self._wiimotes_button = btn = ba.buttonwidget(
parent=self._root_widget,
position=((width - button_width) / 2 + 5, v),
size=(button_width, 43),
autoselect=True,
label=ba.Lstr(resource=self._r + '.wiimotesText'),
on_activate_call=self._do_wiimotes)
if ba.app.ui.use_toolbars:
ba.widget(edit=btn,
right_widget=_ba.get_special_widget('party_button'))
v -= spacing
if show_xinput_toggle:
@ -397,31 +343,6 @@ class ControlsSettingsWindow(ba.Window):
ba.app.ui.set_main_menu_window(
RemoteAppSettingsWindow().get_root_widget())
def _do_ps3_controllers(self) -> None:
# pylint: disable=cyclic-import
from bastd.ui.settings.ps3controller import PS3ControllerSettingsWindow
self._save_state()
ba.containerwidget(edit=self._root_widget, transition='out_left')
ba.app.ui.set_main_menu_window(
PS3ControllerSettingsWindow().get_root_widget())
def _do_360_controllers(self) -> None:
# pylint: disable=cyclic-import
from bastd.ui.settings.xbox360controller import (
XBox360ControllerSettingsWindow)
self._save_state()
ba.containerwidget(edit=self._root_widget, transition='out_left')
ba.app.ui.set_main_menu_window(
XBox360ControllerSettingsWindow().get_root_widget())
def _do_wiimotes(self) -> None:
# pylint: disable=cyclic-import
from bastd.ui.settings.wiimote import WiimoteSettingsWindow
self._save_state()
ba.containerwidget(edit=self._root_widget, transition='out_left')
ba.app.ui.set_main_menu_window(
WiimoteSettingsWindow().get_root_widget())
def _do_gamepads(self) -> None:
# pylint: disable=cyclic-import
from bastd.ui.settings.gamepadselect import GamepadSelectWindow
@ -449,12 +370,6 @@ class ControlsSettingsWindow(ba.Window):
sel_name = 'Keyboard2'
elif sel == self._idevices_button:
sel_name = 'iDevices'
elif sel == self._ps3_button:
sel_name = 'PS3'
elif sel == self._xbox_360_button:
sel_name = 'xbox360'
elif sel == self._wiimotes_button:
sel_name = 'Wiimotes'
else:
sel_name = 'Back'
ba.app.ui.window_states[type(self)] = sel_name
@ -471,12 +386,6 @@ class ControlsSettingsWindow(ba.Window):
sel = self._keyboard_2_button
elif sel_name == 'iDevices':
sel = self._idevices_button
elif sel_name == 'PS3':
sel = self._ps3_button
elif sel_name == 'xbox360':
sel = self._xbox_360_button
elif sel_name == 'Wiimotes':
sel = self._wiimotes_button
elif sel_name == 'Back':
sel = self._back_button
else:

View File

@ -180,6 +180,11 @@ def _run_diagnostics(weakwin: weakref.ref[NetTestingWindow]) -> None:
_print(f'\nContacting V1 alt master-server ({baseaddr})...')
_print_test_results(lambda: _test_fetch(baseaddr))
_print(f'\nV1-test-log: {ba.app.net.v1_test_log}')
curv1addr = _ba.get_master_server_address(internal=True, version=1)
_print(f'\nCurrent V1 address: {curv1addr}')
_print('\nRunning V1 transaction...')
_print_test_results(_test_v1_transaction)

View File

@ -1,107 +0,0 @@
# Released under the MIT License. See LICENSE for details.
#
"""Settings UI related to PS3 controllers."""
from __future__ import annotations
import _ba
import ba
class PS3ControllerSettingsWindow(ba.Window):
"""UI showing info about using PS3 controllers."""
def __init__(self) -> None:
width = 760
height = 330 if _ba.is_running_on_fire_tv() else 540
spacing = 40
self._r = 'ps3ControllersWindow'
uiscale = ba.app.ui.uiscale
super().__init__(root_widget=ba.containerwidget(
size=(width, height),
transition='in_right',
scale=(1.35 if uiscale is ba.UIScale.SMALL else
1.3 if uiscale is ba.UIScale.MEDIUM else 1.0)))
btn = ba.buttonwidget(parent=self._root_widget,
position=(37, height - 73),
size=(135, 65),
scale=0.85,
label=ba.Lstr(resource='backText'),
button_type='back',
autoselect=True,
on_activate_call=self._back)
ba.containerwidget(edit=self._root_widget, cancel_button=btn)
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, height - 46),
size=(0, 0),
maxwidth=410,
text=ba.Lstr(resource=self._r + '.titleText',
subs=[('${APP_NAME}',
ba.Lstr(resource='titleText'))]),
color=ba.app.ui.title_color,
h_align='center',
v_align='center')
ba.buttonwidget(edit=btn,
button_type='backSmall',
size=(60, 60),
label=ba.charstr(ba.SpecialChar.BACK))
v = height - 90
v -= spacing
if _ba.is_running_on_fire_tv():
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, height * 0.45),
size=(0, 0),
color=(0.7, 0.9, 0.7, 1.0),
maxwidth=width * 0.95,
max_height=height * 0.8,
scale=1.0,
text=ba.Lstr(resource=self._r +
'.ouyaInstructionsText'),
h_align='center',
v_align='center')
else:
txts = ba.Lstr(resource=self._r +
'.macInstructionsText').evaluate().split('\n\n\n')
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, v - 29),
size=(0, 0),
color=(0.7, 0.9, 0.7, 1.0),
maxwidth=width * 0.95,
max_height=170,
scale=1.0,
text=txts[0].strip(),
h_align='center',
v_align='center')
if txts:
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, v - 280),
size=(0, 0),
color=(0.7, 0.9, 0.7, 1.0),
maxwidth=width * 0.95,
max_height=170,
scale=1.0,
text=txts[1].strip(),
h_align='center',
v_align='center')
ba.buttonwidget(parent=self._root_widget,
position=(225, v - 176),
size=(300, 40),
label=ba.Lstr(resource=self._r +
'.pairingTutorialText'),
autoselect=True,
on_activate_call=ba.Call(
ba.open_url, 'http://www.youtube.com/watch'
'?v=IlR_HxeOQpI&feature=related'))
def _back(self) -> None:
from bastd.ui.settings import controls
ba.containerwidget(edit=self._root_widget, transition='out_right')
ba.app.ui.set_main_menu_window(
controls.ControlsSettingsWindow(
transition='in_left').get_root_widget())

View File

@ -1,251 +0,0 @@
# Released under the MIT License. See LICENSE for details.
#
"""Settings UI functionality related to wiimote support."""
from __future__ import annotations
import _ba
import ba
class WiimoteSettingsWindow(ba.Window):
"""Window for setting up Wiimotes."""
def __init__(self) -> None:
self._r = 'wiimoteSetupWindow'
width = 600
height = 480
spacing = 40
super().__init__(root_widget=ba.containerwidget(size=(width, height),
transition='in_right'))
btn = ba.buttonwidget(parent=self._root_widget,
position=(55, height - 50),
size=(120, 60),
scale=0.8,
autoselect=True,
label=ba.Lstr(resource='backText'),
button_type='back',
on_activate_call=self._back)
ba.containerwidget(edit=self._root_widget, cancel_button=btn)
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, height - 28),
size=(0, 0),
text=ba.Lstr(resource=self._r + '.titleText'),
maxwidth=270,
color=ba.app.ui.title_color,
h_align='center',
v_align='center')
ba.buttonwidget(edit=btn,
button_type='backSmall',
size=(60, 60),
label=ba.charstr(ba.SpecialChar.BACK))
v = height - 60.0
v -= spacing
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, v - 80),
size=(0, 0),
color=(0.7, 0.9, 0.7, 1.0),
scale=0.75,
text=ba.Lstr(resource=self._r + '.macInstructionsText'),
maxwidth=width * 0.95,
max_height=height * 0.5,
h_align='center',
v_align='center')
v -= 230
button_width = 200
v -= 30
btn = ba.buttonwidget(parent=self._root_widget,
position=(width / 2 - button_width / 2, v + 1),
autoselect=True,
size=(button_width, 50),
label=ba.Lstr(resource=self._r + '.listenText'),
on_activate_call=WiimoteListenWindow)
ba.containerwidget(edit=self._root_widget, start_button=btn)
v -= spacing * 1.1
ba.textwidget(parent=self._root_widget,
position=(width * 0.5, v),
size=(0, 0),
color=(0.7, 0.9, 0.7, 1.0),
scale=0.8,
maxwidth=width * 0.95,
text=ba.Lstr(resource=self._r + '.thanksText'),
h_align='center',
v_align='center')
v -= 30
this_button_width = 200
ba.buttonwidget(parent=self._root_widget,
position=(width / 2 - this_button_width / 2, v - 14),
color=(0.45, 0.4, 0.5),
autoselect=True,
size=(this_button_width, 15),
label=ba.Lstr(resource=self._r + '.copyrightText'),
textcolor=(0.55, 0.5, 0.6),
text_scale=0.6,
on_activate_call=WiimoteLicenseWindow)
def _back(self) -> None:
from bastd.ui.settings import controls
ba.containerwidget(edit=self._root_widget, transition='out_right')
ba.app.ui.set_main_menu_window(
controls.ControlsSettingsWindow(
transition='in_left').get_root_widget())
class WiimoteListenWindow(ba.Window):
"""Window shown while listening for a wiimote connection."""
def __init__(self) -> None:
self._r = 'wiimoteListenWindow'
width = 650
height = 210
super().__init__(root_widget=ba.containerwidget(size=(width, height),
transition='in_right'))
btn = ba.buttonwidget(parent=self._root_widget,
position=(35, height - 60),
size=(140, 60),
autoselect=True,
label=ba.Lstr(resource='cancelText'),
scale=0.8,
on_activate_call=self._dismiss)
ba.containerwidget(edit=self._root_widget, cancel_button=btn)
_ba.start_listening_for_wii_remotes()
self._wiimote_connect_counter = 15
ba.app.ui.dismiss_wii_remotes_window_call = ba.WeakCall(self._dismiss)
ba.textwidget(parent=self._root_widget,
position=(15, height - 55),
size=(width - 30, 30),
text=ba.Lstr(resource=self._r + '.listeningText'),
color=ba.app.ui.title_color,
maxwidth=320,
h_align='center',
v_align='center')
ba.textwidget(parent=self._root_widget,
position=(15, height - 110),
size=(width - 30, 30),
scale=1.0,
text=ba.Lstr(resource=self._r + '.pressText'),
maxwidth=width * 0.9,
color=(0.7, 0.9, 0.7, 1.0),
h_align='center',
v_align='center')
ba.textwidget(parent=self._root_widget,
position=(15, height - 140),
size=(width - 30, 30),
color=(0.7, 0.9, 0.7, 1.0),
scale=0.55,
text=ba.Lstr(resource=self._r + '.pressText2'),
maxwidth=width * 0.95,
h_align='center',
v_align='center')
self._counter_text = ba.textwidget(parent=self._root_widget,
position=(15, 23),
size=(width - 30, 30),
scale=1.2,
text='15',
h_align='center',
v_align='top')
for i in range(1, 15):
ba.timer(1.0 * i,
ba.WeakCall(self._decrement),
timetype=ba.TimeType.REAL)
ba.timer(15.0, ba.WeakCall(self._dismiss), timetype=ba.TimeType.REAL)
def _decrement(self) -> None:
self._wiimote_connect_counter -= 1
ba.textwidget(edit=self._counter_text,
text=str(self._wiimote_connect_counter))
def _dismiss(self) -> None:
ba.containerwidget(edit=self._root_widget, transition='out_left')
_ba.stop_listening_for_wii_remotes()
class WiimoteLicenseWindow(ba.Window):
"""Window displaying the Darwiinremote software license."""
def __init__(self) -> None:
self._r = 'wiimoteLicenseWindow'
width = 750
height = 550
super().__init__(root_widget=ba.containerwidget(size=(width, height),
transition='in_right'))
btn = ba.buttonwidget(parent=self._root_widget,
position=(65, height - 50),
size=(120, 60),
scale=0.8,
autoselect=True,
label=ba.Lstr(resource='backText'),
button_type='back',
on_activate_call=self._close)
ba.containerwidget(edit=self._root_widget, cancel_button=btn)
ba.textwidget(parent=self._root_widget,
position=(0, height - 48),
size=(width, 30),
text=ba.Lstr(resource=self._r + '.titleText'),
h_align='center',
color=ba.app.ui.title_color,
v_align='center')
license_text = (
'Copyright (c) 2007, DarwiinRemote Team\n'
'All rights reserved.\n'
'\n'
' Redistribution and use in source and binary forms, with or '
'without modification,\n'
' are permitted provided that'
' the following conditions are met:\n'
'\n'
'1. Redistributions of source code must retain the above copyright'
' notice, this\n'
' list of conditions and the following disclaimer.\n'
'2. Redistributions in binary form must reproduce the above'
' copyright notice, this\n'
' list of conditions and the following disclaimer in the'
' documentation and/or other\n'
' materials provided with the distribution.\n'
'3. Neither the name of this project nor the names of its'
' contributors may be used to\n'
' endorse or promote products derived from this software'
' without specific prior\n'
' written permission.\n'
'\n'
'THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND'
' CONTRIBUTORS "AS IS"\n'
'AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT'
' LIMITED TO, THE\n'
'IMPLIED WARRANTIES OF MERCHANTABILITY'
' AND FITNESS FOR A PARTICULAR'
' PURPOSE\n'
'ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR'
' CONTRIBUTORS BE\n'
'LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,'
' OR\n'
'CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT'
' OF\n'
' SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;'
' OR BUSINESS\n'
'INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,'
' WHETHER IN\n'
'CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR'
' OTHERWISE)\n'
'ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF'
' ADVISED OF THE\n'
'POSSIBILITY OF SUCH DAMAGE.\n')
license_text_scale = 0.62
ba.textwidget(parent=self._root_widget,
position=(100, height * 0.45),
size=(0, 0),
h_align='left',
v_align='center',
padding=4,
color=(0.7, 0.9, 0.7, 1.0),
scale=license_text_scale,
maxwidth=width * 0.9 - 100,
max_height=height * 0.85,
text=license_text)
def _close(self) -> None:
ba.containerwidget(edit=self._root_widget, transition='out_right')

View File

@ -248,6 +248,7 @@
<w>ctracker</w>
<w>cubemap</w>
<w>curtime</w>
<w>curv</w>
<w>cutef</w>
<w>cvar</w>
<w>data</w>
@ -579,6 +580,7 @@
<w>janky</w>
<w>jaxis</w>
<w>jcjwf</w>
<w>jcrc</w>
<w>jdict</w>
<w>jfwe</w>
<w>jmessage</w>
@ -1146,6 +1148,7 @@
<w>timesteps</w>
<w>timetype</w>
<w>timetypes</w>
<w>tlog</w>
<w>tmpmat</w>
<w>tomer</w>
<w>topos</w>

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated for Ballistica version 1.6.8 build 20454</em></h4>
<h4><em>last updated for Ballistica version 1.6.9 build 20480</em></h4>
<p>This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
<hr>

View File

@ -21,7 +21,7 @@
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kAppBuildNumber = 20477;
const int kAppBuildNumber = 20480;
const char* kAppVersion = "1.6.9";
// Our standalone globals.

View File

@ -169,7 +169,7 @@ class Platform {
// Return en_US or whatnot.
virtual auto GetLocale() -> std::string;
virtual void SetupDataDirectory();
auto GetUserAgentString() -> std::string;
virtual auto GetUserAgentString() -> std::string;
virtual auto GetOSVersionString() -> std::string;
/// Set an environment variable as utf8, overwriting if it already exists.