mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-28 01:43:22 +08:00
tidying up recent PRs
This commit is contained in:
parent
126eac2910
commit
135d318228
@ -420,10 +420,10 @@
|
||||
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/60/ad/38269b7f1c7dc20cb9a506cd0681",
|
||||
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/72/85/d6fc4d16b7081d91fba2850b5b10",
|
||||
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/e9/ae/1d674d0c086eaa0bd1c3b1db0505",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/9b/ec/d11f3e0238ff648bce3657fe5d50",
|
||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/95/9e/acc4a6b7b5cd457e4756ee399eb5",
|
||||
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/92/43/36b34307575f6d6219bdf4898e18",
|
||||
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/61/03/89070ca765e06da3a419a579f503",
|
||||
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/96/96/1390940b8457b477113194acbb41",
|
||||
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f5/32/293ca14171b8e7e7d38f377e87fb",
|
||||
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/f7/b0/191439142c6d6da4a056edc98b38",
|
||||
"assets/build/ba_data/data/languages/croatian.json": "https://files.ballistica.net/cache/ba1/c9/73/01a1343af814131b1ee96af0b687",
|
||||
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/4e/8c/72ddb584856a15dfb11df95f9283",
|
||||
@ -443,17 +443,17 @@
|
||||
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/32/97/4c61425d7c200a5c4c9ae3a94a0e",
|
||||
"assets/build/ba_data/data/languages/malay.json": "https://files.ballistica.net/cache/ba1/b4/02/f686ce008312e74d5953a511c8b2",
|
||||
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/70/07/7864c07c7177dd751780ccc85b34",
|
||||
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/38/31/fd930431c7612d0ab0e73e6bc74f",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/cb/96/86bb139f20e126593f7fdba9e9e1",
|
||||
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/83/71/27beb2a7a9d7036e142d48278888",
|
||||
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/e3/e5/9bc33069464b08ba7ad6712de4be",
|
||||
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/d7/06/9d70642d0a4d1e3b1c2149d7a17c",
|
||||
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/6c/62/06869ed55a656b6e51b4d22e6fa8",
|
||||
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/4e/91/6f2a9a3ce733908e91377a6ddb9a",
|
||||
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/20/a9/163d189884edf802636bf291e432",
|
||||
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/0b/21/a4d09ca1fea8bbf347ed7091c8a2",
|
||||
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/03/a9/0dad2892ceb7fded276235c4576a",
|
||||
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/3b/9f/d40c1423d260784970fd7364ca30",
|
||||
"assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/3d/83/e1bb0a664d1c14c41b1a083acf0d",
|
||||
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/d6/16/523c643358880b03b233ed88e557",
|
||||
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/63/c8/6cfbfd6702c80aa9df490e4629d7",
|
||||
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/4b/28/b62e4c928ee4ddb4120303cc5f62",
|
||||
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/3e/b6/052f1faed0264bf7135feb5c4cc3",
|
||||
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/a6/ed/416638d46950c9ab4f6155b9c334",
|
||||
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/1f/ae/abe3f105b3c4b51f6b7942773305",
|
||||
@ -4008,26 +4008,26 @@
|
||||
"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/1c/77/ac670a5118abdf8a7687af0e159b",
|
||||
"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/70/b7/3a20b7191d324711434f30fd9b02",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/06/97/a3e4cc8402d604a2fc162bf5e6d6",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fb/2f/42d0109886a121a7afc5d39fefa2",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7b/89/5dfaee14cdb96d023556e6bfb400",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/04/fa/752e4447eba1ad78bda278d0f5b0",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/5e/eb/a505aa3a5a64aaa121648cde5ef2",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/01/b6/f4d23b0f064245f44baa111f7275",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9a/f5/a82d1fc4b5feaee3262c65afba92",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a8/cd/0fe7195e99c956a4ec2021fa1706",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/02/81/5d11c0e3406184a7f34155efef9a",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b1/cb/c74fc5c22e94d7ddbe103d267d95",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/6c/16/b3321c2d7f201c0292e78b765415",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/51/7f/d82ef0ecf2ff3c385d9a6384c1b5",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ef/2d/2f1ed47bd3b0fc402ebf55f0749b",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ef/7e/c0c486eccf17619be6a8fc3b0a18",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e6/e4/93021ae27bb96d34f8d6e6a6b7e3",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/54/e1/fdb3d600adc946d8d0995b68ddea",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/4c/0e/5d3cf72812c890870ef95365f47e",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/d0/82/8feea3b851f2039445032af42386",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/1e/49/c5f7b924a1952633b9b3c80bec8a",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/8c/ba/e3fed2ce4cee676e9e9f33071661",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/53/2d/036a8e5802ba3b302803831dd5c2",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a5/35/bb43a9c30ced38c754ac16857b64",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5b/c9/1a742859dec04635826c66171892",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/56/8b/1d95aba7586a0ad21b9507cac404",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/a2/cf/6eee63abf3c21d7a73ac5cf85a63",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bc/6b/39c82a58c924b6d8a2e2e5ce5e06",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d1/79/cbe53392837c8bcef76bb8e61c49",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/9a/fd/61e4a477d5c444f25dcf1caad24b",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/d6/93/a7d6d7e042c27d5a0e6482fc078e",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/65/03/fe128d70d565a3d3d41b31ed843d",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a4/61/8fa37aad1a0690fbff373c4028ae",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/4e/90/e8a2fdf75bb4450e7ba7e2a4339b",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/07/d5/28b51d35fde79940ae364b5734c5",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/0d/88/f5012674b1418dc9453fdcd32433",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ca/2a/43bb057c80d37fa6ce833bfab9c9",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/0c/35/1431c88890c0a4150ed15aa39f08",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/6c/26/b290f9ae9979a5036b7f29d8d67c",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/db/e1/1e7210e97930a6c5e606cbc8ef33",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/36/c6/8eadaeb0f5b7d96e020f9d09c190",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cb/3b/83e6150eebf4fa7b5e8a7b863219",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/44/70/2878a73f2d55849cd6a75e401575",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/24/49/4baca475df5c7f87e6ed17d46696",
|
||||
@ -4044,14 +4044,14 @@
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b2/ee/b908410d85c763d5bca09a3bc893",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fd/24/8c51e5752064d4b487dff42a7ffa",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/93/c6/40e9e47dd33c88646510212ff321",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/ef/a2/14e74872b374012688990c193535",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/ef/f3/e7b36179c280d0a4c66e08992119",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/20/a2/0bdab30629cb762ef6cf3dd044c1",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/bc/67/2c0feb94abe56912519b420f2f8e",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/8c/e8/7944feddd9ed00e1b27a81319681",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/b7/97/90305c2ed5347c4e88faf4b61066",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/66/46/f6247f24e169407f0f4dd38f938f",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/fa/b2/e1531030804f539d1ad173c0ce4a",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/55/f8/b524f3c1e9b46be1174943e6d002",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/66/dd/c62b06140a9f57679f49e73bd7ad",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/84/19/12a6ea442e0a512f1a70aeaf8088",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/3d/7e/269c583db498f613266e0b248fb0",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/2d/ba/a09314ca4a238b58c79f481b4bf1",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/2b/5f/4ff300c943e2d218e66ea98fc159",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/32/0a/f5586c9a6bf15ea5ed63d6775347",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/49/88/abf208e619fd9d61e521e367ac32",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/23/ce/68396b1b7ec6d2f8425902148140",
|
||||
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/2d/4f/f4fe67827f36cd59cd5193333a02",
|
||||
"src/ballistica/generated/python_embedded/bootstrap_monolithic.inc": "https://files.ballistica.net/cache/ba1/ef/c1/aa5f1aa10af89f5c0b1e616355fd"
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
### 1.7.19 (build 20993, api 7, 2023-01-17)
|
||||
### 1.7.19 (build 20995, api 7, 2023-01-18)
|
||||
- Fixes an issue where repeated curses could use incorrect countdown times (Thanks EraOSBeta!).
|
||||
- Last manual party connect port is now saved. Previously, it always assumed the port to be 43210 (Thanks ritiek!).
|
||||
- Added a plugin-settings window under the plugins UI for enabling/disabling, and setting whether plugins are auto-enabled (Thanks vishal332008!).
|
||||
- Missing maps are now cleanly filtered out of playlists instead of causing errors/hangs (Thanks imayushsaini!).
|
||||
- Added in-game-ping option under advanced settings (Thanks imayushsaini!).
|
||||
- `BA_DEVICE_NAME` environment variable can now be used to change the name the local device shows up as. Handy if running multiple servers so you can tell them apart in cloud-console/etc. (Thanks imayushsaini!).
|
||||
|
||||
### 1.7.18 (build 20989, api 7, 2023-01-16)
|
||||
- Reworked some low level asynchronous messaging functionality in efro.message and efro.rpc. Previously these were a little *too* asynchronous which could lead to messages being received in a different order than they were sent, which is not desirable.
|
||||
|
||||
@ -47,7 +47,7 @@ def bootstrap() -> None:
|
||||
|
||||
# Give a soft warning if we're being used with a different binary
|
||||
# version than we expect.
|
||||
expected_build = 20993
|
||||
expected_build = 20995
|
||||
running_build: int = env['build_number']
|
||||
if running_build != expected_build:
|
||||
print(
|
||||
|
||||
@ -192,9 +192,8 @@ def filter_playlist(
|
||||
'Import failed while scanning playlist \'%s\': %s', name, exc
|
||||
)
|
||||
except Exception:
|
||||
from ba import _error
|
||||
logging.exception('Error in filter_playlist.')
|
||||
|
||||
_error.print_exception()
|
||||
return goodlist
|
||||
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
parent=self._root_widget,
|
||||
position=(0, self._height - 52),
|
||||
size=(self._width, 25),
|
||||
text=ba.Lstr(resource=self._r + '.titleText'),
|
||||
text=ba.Lstr(resource=f'{self._r}.titleText'),
|
||||
color=app.ui.title_color,
|
||||
h_align='center',
|
||||
v_align='top',
|
||||
@ -203,10 +203,10 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
text=''
|
||||
if ba.app.lang.language == 'Test'
|
||||
else ba.Lstr(
|
||||
resource=self._r + '.translationNoUpdateNeededText'
|
||||
resource=f'{self._r}.translationNoUpdateNeededText'
|
||||
)
|
||||
if up_to_date
|
||||
else ba.Lstr(resource=self._r + '.translationUpdateNeededText'),
|
||||
else ba.Lstr(resource=f'{self._r}.translationUpdateNeededText'),
|
||||
color=(0.2, 1.0, 0.2, 0.8)
|
||||
if up_to_date
|
||||
else (1.0, 0.2, 0.2, 0.8),
|
||||
@ -214,10 +214,10 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
else:
|
||||
ba.textwidget(
|
||||
edit=self._lang_status_text,
|
||||
text=ba.Lstr(resource=self._r + '.translationFetchErrorText')
|
||||
text=ba.Lstr(resource=f'{self._r}.translationFetchErrorText')
|
||||
if self._complete_langs_error
|
||||
else ba.Lstr(
|
||||
resource=self._r + '.translationFetchingStatusText'
|
||||
resource=f'{self._r}.translationFetchingStatusText'
|
||||
),
|
||||
color=(1.0, 0.5, 0.2)
|
||||
if self._complete_langs_error
|
||||
@ -267,7 +267,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
)
|
||||
|
||||
ba.textwidget(
|
||||
edit=self._title_text, text=ba.Lstr(resource=self._r + '.titleText')
|
||||
edit=self._title_text, text=ba.Lstr(resource=f'{self._r}.titleText')
|
||||
)
|
||||
|
||||
this_button_width = 410
|
||||
@ -277,7 +277,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.enterPromoCodeText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.enterPromoCodeText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=self._on_promo_code_press,
|
||||
)
|
||||
@ -293,7 +293,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
parent=self._subcontainer,
|
||||
position=(200, v + 10),
|
||||
size=(0, 0),
|
||||
text=ba.Lstr(resource=self._r + '.languageText'),
|
||||
text=ba.Lstr(resource=f'{self._r}.languageText'),
|
||||
maxwidth=150,
|
||||
scale=0.95,
|
||||
color=ba.app.ui.title_color,
|
||||
@ -371,7 +371,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width * 0.5, v + 10),
|
||||
size=(0, 0),
|
||||
text=ba.Lstr(
|
||||
resource=self._r + '.helpTranslateText',
|
||||
resource=f'{self._r}.helpTranslateText',
|
||||
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
||||
),
|
||||
maxwidth=self._sub_width * 0.9,
|
||||
@ -389,7 +389,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 24),
|
||||
size=(this_button_width, 60),
|
||||
label=ba.Lstr(
|
||||
resource=self._r + '.translationEditorButtonText',
|
||||
resource=f'{self._r}.translationEditorButtonText',
|
||||
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
||||
),
|
||||
autoselect=True,
|
||||
@ -422,7 +422,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
maxwidth=430,
|
||||
textcolor=(0.8, 0.8, 0.8),
|
||||
value=lang_inform,
|
||||
text=ba.Lstr(resource=self._r + '.translationInformMe'),
|
||||
text=ba.Lstr(resource=f'{self._r}.translationInformMe'),
|
||||
on_value_change_call=ba.WeakCall(self._on_lang_inform_value_change),
|
||||
)
|
||||
|
||||
@ -439,7 +439,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(50, v),
|
||||
size=(self._sub_width - 100, 30),
|
||||
configkey='Kick Idle Players',
|
||||
displayname=ba.Lstr(resource=self._r + '.kickIdlePlayersText'),
|
||||
displayname=ba.Lstr(resource=f'{self._r}.kickIdlePlayersText'),
|
||||
scale=1.0,
|
||||
maxwidth=430,
|
||||
)
|
||||
@ -450,7 +450,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(50, v),
|
||||
size=(self._sub_width - 100, 30),
|
||||
configkey='Show Ping',
|
||||
displayname=ba.Lstr(value='Show InGame Ping'),
|
||||
displayname=ba.Lstr(resource=f'{self._r}.showInGamePingText'),
|
||||
scale=1.0,
|
||||
maxwidth=430,
|
||||
)
|
||||
@ -461,7 +461,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(50, v),
|
||||
size=(self._sub_width - 100, 30),
|
||||
configkey='Disable Camera Shake',
|
||||
displayname=ba.Lstr(resource=self._r + '.disableCameraShakeText'),
|
||||
displayname=ba.Lstr(resource=f'{self._r}.disableCameraShakeText'),
|
||||
scale=1.0,
|
||||
maxwidth=430,
|
||||
)
|
||||
@ -475,7 +475,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
size=(self._sub_width - 100, 30),
|
||||
configkey='Disable Camera Gyro',
|
||||
displayname=ba.Lstr(
|
||||
resource=self._r + '.disableCameraGyroscopeMotionText'
|
||||
resource=f'{self._r}.disableCameraGyroscopeMotionText'
|
||||
),
|
||||
scale=1.0,
|
||||
maxwidth=430,
|
||||
@ -491,7 +491,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
configkey='Always Use Internal Keyboard',
|
||||
autoselect=True,
|
||||
displayname=ba.Lstr(
|
||||
resource=self._r + '.alwaysUseInternalKeyboardText'
|
||||
resource=f'{self._r}.alwaysUseInternalKeyboardText'
|
||||
),
|
||||
scale=1.0,
|
||||
maxwidth=430,
|
||||
@ -501,8 +501,9 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(90, v - 10),
|
||||
size=(0, 0),
|
||||
text=ba.Lstr(
|
||||
resource=self._r
|
||||
+ '.alwaysUseInternalKeyboardDescriptionText'
|
||||
resource=(
|
||||
f'{self._r}.alwaysUseInternalKeyboardDescriptionText'
|
||||
)
|
||||
),
|
||||
maxwidth=400,
|
||||
flatness=1.0,
|
||||
@ -523,7 +524,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 10),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.moddingGuideText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.moddingGuideText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=ba.Call(
|
||||
ba.open_url, 'https://ballistica.net/wiki/modding-guide'
|
||||
@ -556,7 +557,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 10),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.showUserModsText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.showUserModsText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=show_user_scripts,
|
||||
)
|
||||
@ -583,7 +584,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.vrTestingText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.vrTestingText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=self._on_vr_test_press,
|
||||
)
|
||||
@ -598,7 +599,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.netTestingText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.netTestingText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=self._on_net_test_press,
|
||||
)
|
||||
@ -611,7 +612,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||
size=(this_button_width, 60),
|
||||
autoselect=True,
|
||||
label=ba.Lstr(resource=self._r + '.benchmarksText'),
|
||||
label=ba.Lstr(resource=f'{self._r}.benchmarksText'),
|
||||
text_scale=1.0,
|
||||
on_activate_call=self._on_benchmark_press,
|
||||
)
|
||||
@ -633,7 +634,7 @@ class AdvancedSettingsWindow(ba.Window):
|
||||
def _show_restart_needed(self, value: Any) -> None:
|
||||
del value # Unused.
|
||||
ba.screenmessage(
|
||||
ba.Lstr(resource=self._r + '.mustRestartText'), color=(1, 1, 0)
|
||||
ba.Lstr(resource=f'{self._r}.mustRestartText'), color=(1, 1, 0)
|
||||
)
|
||||
|
||||
def _on_lang_inform_value_change(self, val: bool) -> None:
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20993;
|
||||
const int kAppBuildNumber = 20995;
|
||||
const char* kAppVersion = "1.7.19";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -24,8 +24,8 @@ const int kPacketPruneTime = 10000;
|
||||
// How long to go between pruning our packets.
|
||||
const int kPacketPruneInterval = 1000;
|
||||
|
||||
// How long to go between updating current ping.
|
||||
const int kPingUpdateInterval = 2000;
|
||||
// How long to go between updating our ping measurement.
|
||||
const int kPingMeasureInterval = 2000;
|
||||
|
||||
Connection::Connection() {
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
|
||||
@ -80,17 +80,16 @@ void Connection::HandleResends(millisecs_t real_time,
|
||||
// (prevents some un-necessary re-sending)
|
||||
uint8_t extra_bits = data[offset + 2];
|
||||
|
||||
// Get a rough ping by looking at the previous packet and measuring its
|
||||
// round-trip time if it has not yet been ack'ed.
|
||||
// Ack packets and take the opportunity to measure ping.
|
||||
auto test_num = static_cast<uint16_t>(their_next_in - 1u);
|
||||
auto j = out_messages_.find(test_num);
|
||||
if (j != out_messages_.end()) {
|
||||
ReliableMessageOut& msg(j->second);
|
||||
if (!msg.acked) {
|
||||
// Dont update too fast.
|
||||
if (real_time - last_ping_update_time_ > kPingUpdateInterval) {
|
||||
// Periodically use this opportunity to measure ping.
|
||||
if (real_time - last_ping_measure_time_ > kPingMeasureInterval) {
|
||||
current_ping_ = static_cast<float>(real_time - msg.first_send_time);
|
||||
last_ping_update_time_ = real_time;
|
||||
last_ping_measure_time_ = real_time;
|
||||
}
|
||||
}
|
||||
msg.acked = true;
|
||||
@ -388,15 +387,6 @@ void Connection::Update() {
|
||||
SendGamePacket(data);
|
||||
}
|
||||
|
||||
if (can_communicate()
|
||||
&& real_time - last_ping_update_time_ > kPingUpdateInterval + 1000) {
|
||||
// Send a reliable message if ping not updated in a while.
|
||||
|
||||
std::vector<uint8_t> data(1);
|
||||
data[0] = BA_PACKET_SIMPLE_PING;
|
||||
SendReliableMessage(data);
|
||||
}
|
||||
|
||||
// Occasionally prune our in and out messages.
|
||||
if (real_time - last_prune_time_ > kPacketPruneInterval) {
|
||||
last_prune_time_ = real_time;
|
||||
@ -451,6 +441,9 @@ void Connection::HandleMessagePacket(const std::vector<uint8_t>& buffer) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BA_MESSAGE_NULL:
|
||||
// An empty message that can get thrown around for ping purposes.
|
||||
break;
|
||||
default: {
|
||||
// Let's silently ignore these since we may be adding various
|
||||
// messages mid-protocol in a backwards-compatible way.
|
||||
|
||||
@ -132,7 +132,7 @@ class Connection : public Object {
|
||||
bool errored_{};
|
||||
millisecs_t last_prune_time_{};
|
||||
millisecs_t last_ack_send_time_{};
|
||||
millisecs_t last_ping_update_time_{};
|
||||
millisecs_t last_ping_measure_time_{};
|
||||
// These are explicitly 16 bit values.
|
||||
uint16_t next_out_message_num_ = kFirstConnectionStateNum;
|
||||
uint16_t next_out_unreliable_message_num_{};
|
||||
|
||||
@ -18,6 +18,9 @@
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
// How long to go between sending out null packets for pings.
|
||||
const int kPingSendInterval = 2000;
|
||||
|
||||
ConnectionToHost::ConnectionToHost() = default;
|
||||
|
||||
auto ConnectionToHost::GetAsUDP() -> ConnectionToHostUDP* { return nullptr; }
|
||||
@ -47,7 +50,23 @@ ConnectionToHost::~ConnectionToHost() {
|
||||
}
|
||||
}
|
||||
|
||||
void ConnectionToHost::Update() { Connection::Update(); }
|
||||
void ConnectionToHost::Update() {
|
||||
millisecs_t real_time = GetRealTime();
|
||||
|
||||
// Send out null messages occasionally for ping measurement purposes.
|
||||
// Note that we currently only do this from the client since we might not
|
||||
// be sending things otherwise. The server on the other hand should be
|
||||
// sending lots of messages to clients so no need to add to the load there.
|
||||
if (can_communicate()
|
||||
&& real_time - last_ping_send_time_ > kPingSendInterval) {
|
||||
std::vector<uint8_t> data(1);
|
||||
data[0] = BA_MESSAGE_NULL;
|
||||
SendReliableMessage(data);
|
||||
last_ping_send_time_ = real_time;
|
||||
}
|
||||
|
||||
Connection::Update();
|
||||
}
|
||||
|
||||
// Seems we get a false alarm here.
|
||||
#pragma clang diagnostic push
|
||||
|
||||
@ -38,6 +38,7 @@ class ConnectionToHost : public Connection {
|
||||
bool got_host_info_ = false;
|
||||
// can remove once back-compat protocol is > 29
|
||||
bool ignore_old_attach_remote_player_packets_ = false;
|
||||
millisecs_t last_ping_send_time_{};
|
||||
// the client-session that we're driving
|
||||
Object::WeakRef<ClientSession> client_session_;
|
||||
};
|
||||
|
||||
@ -74,6 +74,7 @@ namespace ballistica {
|
||||
#define BA_MESSAGE_SESSION_RESET 0
|
||||
#define BA_MESSAGE_SESSION_COMMANDS 1
|
||||
#define BA_MESSAGE_SESSION_DYNAMICS_CORRECTION 2
|
||||
#define BA_MESSAGE_NULL 3
|
||||
#define BA_MESSAGE_REQUEST_REMOTE_PLAYER 4
|
||||
#define BA_MESSAGE_ATTACH_REMOTE_PLAYER 5 // OBSOLETE (use the _2 version)
|
||||
#define BA_MESSAGE_DETACH_REMOTE_PLAYER 6
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user