mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-07 16:13:23 +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/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/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/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/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/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/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/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",
|
"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/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/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/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/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/cb/96/86bb139f20e126593f7fdba9e9e1",
|
"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/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/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/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/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/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/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/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/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/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",
|
"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/__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",
|
"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",
|
"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/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/06/97/a3e4cc8402d604a2fc162bf5e6d6",
|
"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/fb/2f/42d0109886a121a7afc5d39fefa2",
|
"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/7b/89/5dfaee14cdb96d023556e6bfb400",
|
"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/04/fa/752e4447eba1ad78bda278d0f5b0",
|
"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/5e/eb/a505aa3a5a64aaa121648cde5ef2",
|
"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/01/b6/f4d23b0f064245f44baa111f7275",
|
"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/9a/f5/a82d1fc4b5feaee3262c65afba92",
|
"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/a8/cd/0fe7195e99c956a4ec2021fa1706",
|
"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/02/81/5d11c0e3406184a7f34155efef9a",
|
"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/b1/cb/c74fc5c22e94d7ddbe103d267d95",
|
"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/6c/16/b3321c2d7f201c0292e78b765415",
|
"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/51/7f/d82ef0ecf2ff3c385d9a6384c1b5",
|
"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/ef/2d/2f1ed47bd3b0fc402ebf55f0749b",
|
"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/ef/7e/c0c486eccf17619be6a8fc3b0a18",
|
"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/e6/e4/93021ae27bb96d34f8d6e6a6b7e3",
|
"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/54/e1/fdb3d600adc946d8d0995b68ddea",
|
"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/4c/0e/5d3cf72812c890870ef95365f47e",
|
"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/d0/82/8feea3b851f2039445032af42386",
|
"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/1e/49/c5f7b924a1952633b9b3c80bec8a",
|
"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/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_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",
|
"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_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/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/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.lib": "https://files.ballistica.net/cache/ba1/55/f8/b524f3c1e9b46be1174943e6d002",
|
||||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/ef/f3/e7b36179c280d0a4c66e08992119",
|
"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/20/a2/0bdab30629cb762ef6cf3dd044c1",
|
"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/bc/67/2c0feb94abe56912519b420f2f8e",
|
"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/8c/e8/7944feddd9ed00e1b27a81319681",
|
"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/b7/97/90305c2ed5347c4e88faf4b61066",
|
"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/66/46/f6247f24e169407f0f4dd38f938f",
|
"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/fa/b2/e1531030804f539d1ad173c0ce4a",
|
"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/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.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"
|
"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!).
|
- 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!).
|
- 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!).
|
- 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!).
|
- 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)
|
### 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.
|
- 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
|
# Give a soft warning if we're being used with a different binary
|
||||||
# version than we expect.
|
# version than we expect.
|
||||||
expected_build = 20993
|
expected_build = 20995
|
||||||
running_build: int = env['build_number']
|
running_build: int = env['build_number']
|
||||||
if running_build != expected_build:
|
if running_build != expected_build:
|
||||||
print(
|
print(
|
||||||
|
|||||||
@ -192,9 +192,8 @@ def filter_playlist(
|
|||||||
'Import failed while scanning playlist \'%s\': %s', name, exc
|
'Import failed while scanning playlist \'%s\': %s', name, exc
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
from ba import _error
|
logging.exception('Error in filter_playlist.')
|
||||||
|
|
||||||
_error.print_exception()
|
|
||||||
return goodlist
|
return goodlist
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -134,7 +134,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
parent=self._root_widget,
|
parent=self._root_widget,
|
||||||
position=(0, self._height - 52),
|
position=(0, self._height - 52),
|
||||||
size=(self._width, 25),
|
size=(self._width, 25),
|
||||||
text=ba.Lstr(resource=self._r + '.titleText'),
|
text=ba.Lstr(resource=f'{self._r}.titleText'),
|
||||||
color=app.ui.title_color,
|
color=app.ui.title_color,
|
||||||
h_align='center',
|
h_align='center',
|
||||||
v_align='top',
|
v_align='top',
|
||||||
@ -203,10 +203,10 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
text=''
|
text=''
|
||||||
if ba.app.lang.language == 'Test'
|
if ba.app.lang.language == 'Test'
|
||||||
else ba.Lstr(
|
else ba.Lstr(
|
||||||
resource=self._r + '.translationNoUpdateNeededText'
|
resource=f'{self._r}.translationNoUpdateNeededText'
|
||||||
)
|
)
|
||||||
if up_to_date
|
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)
|
color=(0.2, 1.0, 0.2, 0.8)
|
||||||
if up_to_date
|
if up_to_date
|
||||||
else (1.0, 0.2, 0.2, 0.8),
|
else (1.0, 0.2, 0.2, 0.8),
|
||||||
@ -214,10 +214,10 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
else:
|
else:
|
||||||
ba.textwidget(
|
ba.textwidget(
|
||||||
edit=self._lang_status_text,
|
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
|
if self._complete_langs_error
|
||||||
else ba.Lstr(
|
else ba.Lstr(
|
||||||
resource=self._r + '.translationFetchingStatusText'
|
resource=f'{self._r}.translationFetchingStatusText'
|
||||||
),
|
),
|
||||||
color=(1.0, 0.5, 0.2)
|
color=(1.0, 0.5, 0.2)
|
||||||
if self._complete_langs_error
|
if self._complete_langs_error
|
||||||
@ -267,7 +267,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
)
|
)
|
||||||
|
|
||||||
ba.textwidget(
|
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
|
this_button_width = 410
|
||||||
@ -277,7 +277,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.enterPromoCodeText'),
|
label=ba.Lstr(resource=f'{self._r}.enterPromoCodeText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=self._on_promo_code_press,
|
on_activate_call=self._on_promo_code_press,
|
||||||
)
|
)
|
||||||
@ -293,7 +293,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
parent=self._subcontainer,
|
parent=self._subcontainer,
|
||||||
position=(200, v + 10),
|
position=(200, v + 10),
|
||||||
size=(0, 0),
|
size=(0, 0),
|
||||||
text=ba.Lstr(resource=self._r + '.languageText'),
|
text=ba.Lstr(resource=f'{self._r}.languageText'),
|
||||||
maxwidth=150,
|
maxwidth=150,
|
||||||
scale=0.95,
|
scale=0.95,
|
||||||
color=ba.app.ui.title_color,
|
color=ba.app.ui.title_color,
|
||||||
@ -371,7 +371,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(self._sub_width * 0.5, v + 10),
|
position=(self._sub_width * 0.5, v + 10),
|
||||||
size=(0, 0),
|
size=(0, 0),
|
||||||
text=ba.Lstr(
|
text=ba.Lstr(
|
||||||
resource=self._r + '.helpTranslateText',
|
resource=f'{self._r}.helpTranslateText',
|
||||||
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
||||||
),
|
),
|
||||||
maxwidth=self._sub_width * 0.9,
|
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),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 24),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
label=ba.Lstr(
|
label=ba.Lstr(
|
||||||
resource=self._r + '.translationEditorButtonText',
|
resource=f'{self._r}.translationEditorButtonText',
|
||||||
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
subs=[('${APP_NAME}', ba.Lstr(resource='titleText'))],
|
||||||
),
|
),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
@ -422,7 +422,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
textcolor=(0.8, 0.8, 0.8),
|
textcolor=(0.8, 0.8, 0.8),
|
||||||
value=lang_inform,
|
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),
|
on_value_change_call=ba.WeakCall(self._on_lang_inform_value_change),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -439,7 +439,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(50, v),
|
position=(50, v),
|
||||||
size=(self._sub_width - 100, 30),
|
size=(self._sub_width - 100, 30),
|
||||||
configkey='Kick Idle Players',
|
configkey='Kick Idle Players',
|
||||||
displayname=ba.Lstr(resource=self._r + '.kickIdlePlayersText'),
|
displayname=ba.Lstr(resource=f'{self._r}.kickIdlePlayersText'),
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
)
|
)
|
||||||
@ -450,7 +450,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(50, v),
|
position=(50, v),
|
||||||
size=(self._sub_width - 100, 30),
|
size=(self._sub_width - 100, 30),
|
||||||
configkey='Show Ping',
|
configkey='Show Ping',
|
||||||
displayname=ba.Lstr(value='Show InGame Ping'),
|
displayname=ba.Lstr(resource=f'{self._r}.showInGamePingText'),
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
)
|
)
|
||||||
@ -461,7 +461,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(50, v),
|
position=(50, v),
|
||||||
size=(self._sub_width - 100, 30),
|
size=(self._sub_width - 100, 30),
|
||||||
configkey='Disable Camera Shake',
|
configkey='Disable Camera Shake',
|
||||||
displayname=ba.Lstr(resource=self._r + '.disableCameraShakeText'),
|
displayname=ba.Lstr(resource=f'{self._r}.disableCameraShakeText'),
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
)
|
)
|
||||||
@ -475,7 +475,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
size=(self._sub_width - 100, 30),
|
size=(self._sub_width - 100, 30),
|
||||||
configkey='Disable Camera Gyro',
|
configkey='Disable Camera Gyro',
|
||||||
displayname=ba.Lstr(
|
displayname=ba.Lstr(
|
||||||
resource=self._r + '.disableCameraGyroscopeMotionText'
|
resource=f'{self._r}.disableCameraGyroscopeMotionText'
|
||||||
),
|
),
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
@ -491,7 +491,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
configkey='Always Use Internal Keyboard',
|
configkey='Always Use Internal Keyboard',
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
displayname=ba.Lstr(
|
displayname=ba.Lstr(
|
||||||
resource=self._r + '.alwaysUseInternalKeyboardText'
|
resource=f'{self._r}.alwaysUseInternalKeyboardText'
|
||||||
),
|
),
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
maxwidth=430,
|
maxwidth=430,
|
||||||
@ -501,8 +501,9 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(90, v - 10),
|
position=(90, v - 10),
|
||||||
size=(0, 0),
|
size=(0, 0),
|
||||||
text=ba.Lstr(
|
text=ba.Lstr(
|
||||||
resource=self._r
|
resource=(
|
||||||
+ '.alwaysUseInternalKeyboardDescriptionText'
|
f'{self._r}.alwaysUseInternalKeyboardDescriptionText'
|
||||||
|
)
|
||||||
),
|
),
|
||||||
maxwidth=400,
|
maxwidth=400,
|
||||||
flatness=1.0,
|
flatness=1.0,
|
||||||
@ -523,7 +524,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
position=(self._sub_width / 2 - this_button_width / 2, v - 10),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 10),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.moddingGuideText'),
|
label=ba.Lstr(resource=f'{self._r}.moddingGuideText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=ba.Call(
|
on_activate_call=ba.Call(
|
||||||
ba.open_url, 'https://ballistica.net/wiki/modding-guide'
|
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),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 10),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.showUserModsText'),
|
label=ba.Lstr(resource=f'{self._r}.showUserModsText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=show_user_scripts,
|
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),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.vrTestingText'),
|
label=ba.Lstr(resource=f'{self._r}.vrTestingText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=self._on_vr_test_press,
|
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),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.netTestingText'),
|
label=ba.Lstr(resource=f'{self._r}.netTestingText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=self._on_net_test_press,
|
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),
|
position=(self._sub_width / 2 - this_button_width / 2, v - 14),
|
||||||
size=(this_button_width, 60),
|
size=(this_button_width, 60),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
label=ba.Lstr(resource=self._r + '.benchmarksText'),
|
label=ba.Lstr(resource=f'{self._r}.benchmarksText'),
|
||||||
text_scale=1.0,
|
text_scale=1.0,
|
||||||
on_activate_call=self._on_benchmark_press,
|
on_activate_call=self._on_benchmark_press,
|
||||||
)
|
)
|
||||||
@ -633,7 +634,7 @@ class AdvancedSettingsWindow(ba.Window):
|
|||||||
def _show_restart_needed(self, value: Any) -> None:
|
def _show_restart_needed(self, value: Any) -> None:
|
||||||
del value # Unused.
|
del value # Unused.
|
||||||
ba.screenmessage(
|
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:
|
def _on_lang_inform_value_change(self, val: bool) -> None:
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
namespace ballistica {
|
namespace ballistica {
|
||||||
|
|
||||||
// These are set automatically via script; don't modify them here.
|
// These are set automatically via script; don't modify them here.
|
||||||
const int kAppBuildNumber = 20993;
|
const int kAppBuildNumber = 20995;
|
||||||
const char* kAppVersion = "1.7.19";
|
const char* kAppVersion = "1.7.19";
|
||||||
|
|
||||||
// Our standalone globals.
|
// Our standalone globals.
|
||||||
|
|||||||
@ -24,8 +24,8 @@ const int kPacketPruneTime = 10000;
|
|||||||
// How long to go between pruning our packets.
|
// How long to go between pruning our packets.
|
||||||
const int kPacketPruneInterval = 1000;
|
const int kPacketPruneInterval = 1000;
|
||||||
|
|
||||||
// How long to go between updating current ping.
|
// How long to go between updating our ping measurement.
|
||||||
const int kPingUpdateInterval = 2000;
|
const int kPingMeasureInterval = 2000;
|
||||||
|
|
||||||
Connection::Connection() {
|
Connection::Connection() {
|
||||||
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
|
// NOLINTNEXTLINE(cppcoreguidelines-prefer-member-initializer)
|
||||||
@ -80,17 +80,16 @@ void Connection::HandleResends(millisecs_t real_time,
|
|||||||
// (prevents some un-necessary re-sending)
|
// (prevents some un-necessary re-sending)
|
||||||
uint8_t extra_bits = data[offset + 2];
|
uint8_t extra_bits = data[offset + 2];
|
||||||
|
|
||||||
// Get a rough ping by looking at the previous packet and measuring its
|
// Ack packets and take the opportunity to measure ping.
|
||||||
// round-trip time if it has not yet been ack'ed.
|
|
||||||
auto test_num = static_cast<uint16_t>(their_next_in - 1u);
|
auto test_num = static_cast<uint16_t>(their_next_in - 1u);
|
||||||
auto j = out_messages_.find(test_num);
|
auto j = out_messages_.find(test_num);
|
||||||
if (j != out_messages_.end()) {
|
if (j != out_messages_.end()) {
|
||||||
ReliableMessageOut& msg(j->second);
|
ReliableMessageOut& msg(j->second);
|
||||||
if (!msg.acked) {
|
if (!msg.acked) {
|
||||||
// Dont update too fast.
|
// Periodically use this opportunity to measure ping.
|
||||||
if (real_time - last_ping_update_time_ > kPingUpdateInterval) {
|
if (real_time - last_ping_measure_time_ > kPingMeasureInterval) {
|
||||||
current_ping_ = static_cast<float>(real_time - msg.first_send_time);
|
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;
|
msg.acked = true;
|
||||||
@ -388,15 +387,6 @@ void Connection::Update() {
|
|||||||
SendGamePacket(data);
|
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.
|
// Occasionally prune our in and out messages.
|
||||||
if (real_time - last_prune_time_ > kPacketPruneInterval) {
|
if (real_time - last_prune_time_ > kPacketPruneInterval) {
|
||||||
last_prune_time_ = real_time;
|
last_prune_time_ = real_time;
|
||||||
@ -451,6 +441,9 @@ void Connection::HandleMessagePacket(const std::vector<uint8_t>& buffer) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case BA_MESSAGE_NULL:
|
||||||
|
// An empty message that can get thrown around for ping purposes.
|
||||||
|
break;
|
||||||
default: {
|
default: {
|
||||||
// Let's silently ignore these since we may be adding various
|
// Let's silently ignore these since we may be adding various
|
||||||
// messages mid-protocol in a backwards-compatible way.
|
// messages mid-protocol in a backwards-compatible way.
|
||||||
|
|||||||
@ -132,7 +132,7 @@ class Connection : public Object {
|
|||||||
bool errored_{};
|
bool errored_{};
|
||||||
millisecs_t last_prune_time_{};
|
millisecs_t last_prune_time_{};
|
||||||
millisecs_t last_ack_send_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.
|
// These are explicitly 16 bit values.
|
||||||
uint16_t next_out_message_num_ = kFirstConnectionStateNum;
|
uint16_t next_out_message_num_ = kFirstConnectionStateNum;
|
||||||
uint16_t next_out_unreliable_message_num_{};
|
uint16_t next_out_unreliable_message_num_{};
|
||||||
|
|||||||
@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
namespace ballistica {
|
namespace ballistica {
|
||||||
|
|
||||||
|
// How long to go between sending out null packets for pings.
|
||||||
|
const int kPingSendInterval = 2000;
|
||||||
|
|
||||||
ConnectionToHost::ConnectionToHost() = default;
|
ConnectionToHost::ConnectionToHost() = default;
|
||||||
|
|
||||||
auto ConnectionToHost::GetAsUDP() -> ConnectionToHostUDP* { return nullptr; }
|
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.
|
// Seems we get a false alarm here.
|
||||||
#pragma clang diagnostic push
|
#pragma clang diagnostic push
|
||||||
|
|||||||
@ -38,6 +38,7 @@ class ConnectionToHost : public Connection {
|
|||||||
bool got_host_info_ = false;
|
bool got_host_info_ = false;
|
||||||
// can remove once back-compat protocol is > 29
|
// can remove once back-compat protocol is > 29
|
||||||
bool ignore_old_attach_remote_player_packets_ = false;
|
bool ignore_old_attach_remote_player_packets_ = false;
|
||||||
|
millisecs_t last_ping_send_time_{};
|
||||||
// the client-session that we're driving
|
// the client-session that we're driving
|
||||||
Object::WeakRef<ClientSession> client_session_;
|
Object::WeakRef<ClientSession> client_session_;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -74,6 +74,7 @@ namespace ballistica {
|
|||||||
#define BA_MESSAGE_SESSION_RESET 0
|
#define BA_MESSAGE_SESSION_RESET 0
|
||||||
#define BA_MESSAGE_SESSION_COMMANDS 1
|
#define BA_MESSAGE_SESSION_COMMANDS 1
|
||||||
#define BA_MESSAGE_SESSION_DYNAMICS_CORRECTION 2
|
#define BA_MESSAGE_SESSION_DYNAMICS_CORRECTION 2
|
||||||
|
#define BA_MESSAGE_NULL 3
|
||||||
#define BA_MESSAGE_REQUEST_REMOTE_PLAYER 4
|
#define BA_MESSAGE_REQUEST_REMOTE_PLAYER 4
|
||||||
#define BA_MESSAGE_ATTACH_REMOTE_PLAYER 5 // OBSOLETE (use the _2 version)
|
#define BA_MESSAGE_ATTACH_REMOTE_PLAYER 5 // OBSOLETE (use the _2 version)
|
||||||
#define BA_MESSAGE_DETACH_REMOTE_PLAYER 6
|
#define BA_MESSAGE_DETACH_REMOTE_PLAYER 6
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user