fixed quit-on-idle for servers

This commit is contained in:
Eric 2023-06-18 12:58:54 -07:00
parent d44e547c79
commit 0dbe834987
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
32 changed files with 98 additions and 89 deletions

88
.efrocachemap generated
View File

@ -4072,50 +4072,50 @@
"build/assets/workspace/ninjafightplug.py": "https://files.ballistica.net/cache/ba1/18/4b/787a9267e17be3c49966072581a5",
"build/assets/workspace/onslaughtplug.py": "https://files.ballistica.net/cache/ba1/20/f6/4ce9bc3c1f3732f6adf8237fbe9b",
"build/assets/workspace/runaroundplug.py": "https://files.ballistica.net/cache/ba1/a5/30/9058181df0b1255bf6950cbc7813",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/6a/42/b88d197a3de29d53a0600cbdb1ef",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/fa/12/fae2e5f0e89b2fdc4714bda6a1dc",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/4a/12/b66634b220927006c073fb33b4e0",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/de/91/eac9be7e7861cd3c55c57b26f064",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/13/48/b56c565b9a6712ed90f1d9dddd38",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/10/5e/06d49fe4b2e8fd829fb2ba323777",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/90/a7/ed96ee574a40d39a709111314564",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/46/f5/b98511cefe587edc2eddefdd7bf8",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/60/1f/f7632a84d7cd682cece84081a965",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/e2/e0/32e13cf436b16fc08aada5a5f0f3",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/ec/7e/ced54c19d29156862beb951acbcd",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/7c/08/b01016388bc443adce61506f757f",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/de/b2/467bab2e5ee702c05043550bf554",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/ea/da/219a2c518298c5bf00e9918b62d9",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/ca/bb/30a2598c3aad8d687e4d7a56c868",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/a8/d9/452bce81d43a544880dba9a7a84f",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/3c/a0/3ab7920b1225d42a5b127dce394b",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/ce/e0/5aac96f6aef80f2da1e4eb7318f7",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/f7/73/432ddfcab5d37e893350a21bb42e",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/92/7a/976a6f97db199315dc35b40e052a",
"build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2f/47/41725589da4deec95cee1aadb5d7",
"build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/9c/43/013d60c82f071e30f6628d8a8c53",
"build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/63/1b/74234e9ffe039aab144b64fc1367",
"build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/cc/bf/06896425648bf6f047d59d5703ae",
"build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/28/e9/7bbfd532a37bfc48d551e119bab3",
"build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/92/82/8f57f0d4e95be62debcc0aa03ab2",
"build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/f2/28/903128a3301b0997d5e152f33737",
"build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/18/ef/8977538a039818f76ef0f90352ce",
"build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/4c/f3/b4ce11182cec5f368d53c5ee4df9",
"build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/df/87/e9e35793cca422629c1203719f6f",
"build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/d1/f5/d87f66ed4d72db81186107269c72",
"build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/6e/d4/96d7edabbba3c15b29b902705b2c",
"build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/f1/ab/81e232865fbc6992fcc856980e76",
"build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/1b/88/1acc3d873753e7ab20091a17f8e6",
"build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/85/7f/5037f541b8a68b46fb92e8516cb2",
"build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/3c/74/592b9f7ba0cc23d5abf2324fcdbd",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/49/3e/1334bb9ae22717520faf220aee8c",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/93/29/ff9334384556cb85a1747225830b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/c5/fd/ab023b6be42cf08753928cfb4086",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/ed/df/7abb93c4da8032dc6811e0fab1fc",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/ac/a4/ae3439fb4638485a4c94eb245d03",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/dd/75/9a807fc3f236cc60ce8fcff0f519",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/46/b3/8e93fd8686e52b1584798879a1ee",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/5e/9d/b6a7212ffa0cc0891812c637f8d6",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/02/45/1748a3903dafb20dd0cfbed3f5bb",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/92/e9/fc686b9bc8ce4378c0ffb22ab84e",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/6d/83/89377b33b6c77ea3ba2a196ad31c",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/23/19/f1b5b330f9a2cfbbb06ea121c38f",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/87/f4/f486a1858d5a8b58470329d1afca",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/54/d4/e1b5c492b85eea0c336d161bbea6",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/37/d1/2c525af4ae3076dd8b700b621a67",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/c0/31/318f5ddf431861102501a24b9311",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/d9/de/6dda22728067d16af05d9d9007e8",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/52/c1/846d2e881853eab3ab240ecb6c47",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/24/dd/2f1376395636ec554ae148cffb38",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/cf/1c/4e03f93b35ee4eb046b1142d61da",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/b1/da/ebf6e0607638e892276a5d572f6a",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/32/c9/b5016e09b4092491f34b6561b1af",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/91/03/1ac1441cd60c3a39afb881805960",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/17/29/f23eca0e8507a0a9f47a59644288",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/63/fa/61531b575dfeff4f40613c8590ee",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/f1/bd/12d64962eb14ef43fd0a650450ae",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/e1/0b/90e0cab2bfd5477ddcadefb22ca8",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/39/c9/64209e8fc8582d873d69ff35f1e5",
"build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/86/48/3c609a88bece81cb33dfc7970739",
"build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ce/eb/b904fb630f5271555639f67cbd1d",
"build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/7c/3b/ccf254ede242fc538e3858474d11",
"build/prefab/lib/linux_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/60/e0/e07f97ec0084eb150945b27284e5",
"build/prefab/lib/linux_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/04/26/3649b220dd17dab55ffdfc18ef03",
"build/prefab/lib/linux_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/2a/87/c28eb4d1b700194f2d6714fd58cd",
"build/prefab/lib/linux_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/8d/46/bc29c2f931a5105f11094420ebe4",
"build/prefab/lib/linux_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/01/b0/b6bc9fb997a7a2396f538c151e1b",
"build/prefab/lib/mac_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/23/78/588cb1441f24f6cd1bf3080941b2",
"build/prefab/lib/mac_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/80/03/0e86a5c70e8921531a5d8c0a0da6",
"build/prefab/lib/mac_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/1d/86/e10cd783d461332dcba8d5aabae6",
"build/prefab/lib/mac_arm64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/cc/37/dadc19268a249173f4cc9b75adf9",
"build/prefab/lib/mac_x86_64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/69/90/498d5b6ae433282b83380fe3b7da",
"build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/28/5a/ac8da1fe2abed240afee77a6e8dd",
"build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/f0/1e/afb767e5a9f3641e8902ba726d90",
"build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/a9/50/e31c09ce0b4fffc720b4783c8572",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/a4/5d/3248586d7224c984332b83d97690",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/f5/5d/c2bff082d611dd50e1afdd65ea59",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/55/f4/15fea1f4bb88b5e6942fe25a9a27",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/90/1c/d4f326a37203c8c772d49f04b6c6",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/b0/4f/4ed45130baa2672f75ebce006062",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/31/d0/afcf0d54d08b88fa8d3f63b29140",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/47/19/a869e648ec012488c1bf29a2f479",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/fd/33/85c3a2b199ef4343f47a7c299a4f",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/52/c6/c11130af7b10d6c0321add5518fa",
"src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/38/c3/1dedd5e74f2508efc5974c8815a1",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/ea/6a/6a4721b144e5e297b542d2a0eea2",

View File

@ -1,4 +1,4 @@
### 1.7.20 (build 21125, api 8, 2023-06-18)
### 1.7.20 (build 21126, api 8, 2023-06-18)
- This seems like a good time for a `refactoring` release in anticipation of
changes coming in 1.8. Basically this means that a lot of things will be
@ -356,6 +356,10 @@
use log calls instead of prints. The environment vars to enable them are now
`BA_DEBUG_LOG_CONNECTIVITY` and `BA_DEBUG_LOG_V2_TRANSPORT`. Set either to '1'
to enable debug logging.
- (build 21125) Fixed a bug where feature-sets would not have their
DoApplyConfig callbacks called in C++, which was causing the server-mode
`idle_exit_minutes` value to be ignored. Servers should now properly exit
after being idle for this length of time.
### 1.7.19 (build 20997, api 7, 2023-01-19)

View File

@ -188,7 +188,7 @@ class ServerController:
self._executing_shutdown = True
timestrval = time.strftime('%c')
if self._shutdown_reason is ShutdownReason.RESTARTING:
babase.screenmessage(
bascenev1.broadcastmessage(
babase.Lstr(resource='internal.serverRestartingText'),
color=(1, 0.5, 0.0),
)
@ -197,7 +197,7 @@ class ServerController:
f' at {timestrval}.{Clr.RST}'
)
else:
babase.screenmessage(
bascenev1.broadcastmessage(
babase.Lstr(resource='internal.serverShuttingDownText'),
color=(1, 0.5, 0.0),
)

View File

@ -28,7 +28,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 21125
TARGET_BALLISTICA_BUILD = 21126
TARGET_BALLISTICA_VERSION = '1.7.20'
_g_env_config: EnvConfig | None = None

View File

@ -40,7 +40,7 @@ void App::PostInit() {
g_core->platform->GetLegacyUserAgentString());
}
void App::LogicThreadApplyAppConfig() {
void App::DoLogicThreadApplyAppConfig() {
// Note: this gets called in the logic thread since that's where
// config reading happens. We should grab whatever values we need
// and then forward them to ourself in the main thread.
@ -48,7 +48,7 @@ void App::LogicThreadApplyAppConfig() {
// to do the same.
assert(g_base->InLogicThread());
g_base->networking->ApplyAppConfig();
g_base->networking->DoApplyAppConfig();
}
void App::LogicThreadStepDisplayTime() { assert(g_base->InLogicThread()); }

View File

@ -26,11 +26,11 @@ class App {
/// should go here.
void PostInit();
/// Gets called when the app config is being read.
/// Gets called when the app config is being applied.
/// Note that this call happens in the logic thread, so we should
/// do any reading that needs to happen in the logic thread and then
/// forward the values to ourself back in our main thread.
void LogicThreadApplyAppConfig();
void DoLogicThreadApplyAppConfig();
/// Return whether this class runs its own event loop.
/// If true, MonolithicMain() will continuously ask the app for events

View File

@ -56,7 +56,7 @@ auto AppMode::HasConnectionToHost() const -> bool { return false; }
auto AppMode::HasConnectionToClients() const -> bool { return false; }
void AppMode::ApplyAppConfig() {}
void AppMode::DoApplyAppConfig() {}
auto AppMode::GetForegroundContext() -> ContextRef { return {}; }

View File

@ -39,7 +39,7 @@ class AppMode {
virtual void OnAppShutdown();
/// Apply the app config.
virtual void ApplyAppConfig();
virtual void DoApplyAppConfig();
/// Update the logic thread for a new display-time. Can be called at any
/// frequency. In gui builds, generally corresponds with frame drawing. In

View File

@ -27,7 +27,7 @@ void Audio::OnAppShutdown() { assert(g_base->InLogicThread()); }
void Audio::StepDisplayTime() { assert(g_base->InLogicThread()); }
void Audio::ApplyAppConfig() {
void Audio::DoApplyAppConfig() {
assert(g_base->InLogicThread());
SetVolumes(g_base->app_config->Resolve(AppConfig::FloatID::kMusicVolume),
g_base->app_config->Resolve(AppConfig::FloatID::kSoundVolume));

View File

@ -24,7 +24,7 @@ class Audio {
virtual void OnAppPause();
virtual void OnAppResume();
virtual void OnAppShutdown();
virtual void ApplyAppConfig();
virtual void DoApplyAppConfig();
virtual void OnScreenSizeChange();
virtual void StepDisplayTime();

View File

@ -240,6 +240,11 @@ void BaseFeatureSet::set_app_mode(AppMode* mode) {
app_mode_->OnActivate();
// Since app-modes will mostly become active after the initial global
// apply-app-config happens, we need to tell them to do so explicitly when
// they spin up.
app_mode_->DoApplyAppConfig();
// Let some stuff know.
logic->OnAppModeChanged();
} catch (const Exception& exc) {

View File

@ -102,7 +102,7 @@ void Graphics::OnAppResume() {
void Graphics::OnAppShutdown() { assert(g_base->InLogicThread()); }
void Graphics::ApplyAppConfig() {
void Graphics::DoApplyAppConfig() {
assert(g_base->InLogicThread());
// Not relevant for fullscreen anymore

View File

@ -54,7 +54,7 @@ class Graphics {
void OnAppPause();
void OnAppResume();
void OnAppShutdown();
void ApplyAppConfig();
void DoApplyAppConfig();
void OnScreenSizeChange(float virtual_width, float virtual_height,
float physical_width, float physical_height);
void StepDisplayTime();

View File

@ -565,7 +565,7 @@ void Input::OnAppResume() { assert(g_base->InLogicThread()); }
void Input::OnAppShutdown() { assert(g_base->InLogicThread()); }
// Tells all inputs to update their controls based on the app config.
void Input::ApplyAppConfig() {
void Input::DoApplyAppConfig() {
assert(g_base->InLogicThread());
UpdateEnabledControllerSubsystems();

View File

@ -25,7 +25,7 @@ class Input {
void OnAppShutdown();
void StepDisplayTime();
void ApplyAppConfig();
void DoApplyAppConfig();
void OnScreenSizeChange();

View File

@ -147,21 +147,21 @@ void Logic::ApplyAppConfig() {
// Give all our other subsystems a chance.
// Note: keep these in the same order as OnAppStart.
g_base->graphics->ApplyAppConfig();
g_base->audio->ApplyAppConfig();
g_base->input->ApplyAppConfig();
g_base->ui->ApplyAppConfig();
g_core->platform->ApplyAppConfig();
g_base->app_mode()->ApplyAppConfig();
g_base->graphics->DoApplyAppConfig();
g_base->audio->DoApplyAppConfig();
g_base->input->DoApplyAppConfig();
g_base->ui->DoApplyAppConfig();
g_core->platform->DoApplyAppConfig();
g_base->app_mode()->DoApplyAppConfig();
if (g_base->HavePlus()) {
g_base->plus()->ApplyAppConfig();
g_base->plus()->DoApplyAppConfig();
}
g_base->python->ApplyAppConfig();
g_base->python->DoApplyAppConfig();
// Give the app subsystem a chance too even though its main-thread based.
// We call it here in the logic thread, allowing it to read whatever
// it needs and pass it to itself in the main thread.
g_base->app->LogicThreadApplyAppConfig();
g_base->app->DoLogicThreadApplyAppConfig();
applied_app_config_ = true;
}

View File

@ -12,7 +12,7 @@ namespace ballistica::base {
Networking::Networking() = default;
void Networking::ApplyAppConfig() {
void Networking::DoApplyAppConfig() {
// Be aware this runs in the logic thread; not the main thread like
// most of our stuff.
assert(g_base->InLogicThread());

View File

@ -117,7 +117,7 @@ namespace ballistica::base {
class Networking {
public:
// Called in the logic thread when the app is reading its config.
void ApplyAppConfig();
void DoApplyAppConfig();
// Send a message to an address. This may block for a brief moment, so it can
// be more efficient to send a SendToMessage to the NetworkWrite thread which

View File

@ -160,7 +160,7 @@ void BasePython::OnAppShutdown() {
objs().Get(BasePython::ObjID::kShutdownCall).Call();
}
void BasePython::ApplyAppConfig() { assert(g_base->InLogicThread()); }
void BasePython::DoApplyAppConfig() { assert(g_base->InLogicThread()); }
void BasePython::OnScreenSizeChange() { assert(g_base->InLogicThread()); }

View File

@ -18,7 +18,7 @@ class BasePython {
void OnAppPause();
void OnAppResume();
void OnAppShutdown();
void ApplyAppConfig();
void DoApplyAppConfig();
void OnScreenSizeChange();
void StepDisplayTime();

View File

@ -553,7 +553,7 @@ static PyMethodDef PyQuitDef = {
static auto PyApplyConfig(PyObject* self, PyObject* args) -> PyObject* {
BA_PYTHON_TRY;
// Hmm; python runs in the logic thread; technically we could just run
// Hmm; Python runs in the logic thread; technically we could just run
// ApplyAppConfig() immediately (though pushing is probably safer).
g_base->logic->event_loop()->PushCall(
[] { g_base->logic->ApplyAppConfig(); });

View File

@ -22,7 +22,7 @@ class PlusSoftInterface {
virtual void OnAppPause() = 0;
virtual void OnAppResume() = 0;
virtual void OnAppShutdown() = 0;
virtual void ApplyAppConfig() = 0;
virtual void DoApplyAppConfig() = 0;
virtual void OnScreenSizeChange() = 0;
virtual void StepDisplayTime() = 0;

View File

@ -37,7 +37,7 @@ class UIV1SoftInterface {
virtual void OnLanguageChange() = 0;
virtual auto GetRootWidget() -> ui_v1::Widget* = 0;
virtual auto SendWidgetMessage(const WidgetMessage& m) -> int = 0;
virtual void ApplyAppConfig() = 0;
virtual void DoApplyAppConfig() = 0;
};
} // namespace ballistica::base

View File

@ -83,10 +83,10 @@ void UI::OnAppResume() {
void UI::OnAppShutdown() { assert(g_base->InLogicThread()); }
void UI::ApplyAppConfig() {
void UI::DoApplyAppConfig() {
assert(g_base->InLogicThread());
if (g_base->HaveUIV1()) {
g_base->ui_v1()->ApplyAppConfig();
g_base->ui_v1()->DoApplyAppConfig();
}
}

View File

@ -39,7 +39,7 @@ class UI {
void OnAppPause();
void OnAppResume();
void OnAppShutdown();
void ApplyAppConfig();
void DoApplyAppConfig();
void OnScreenSizeChange();
void StepDisplayTime();

View File

@ -718,7 +718,7 @@ void CorePlatform::AndroidSetResString(const std::string& res) {
throw Exception();
}
void CorePlatform::ApplyAppConfig() {}
void CorePlatform::DoApplyAppConfig() {}
void CorePlatform::AndroidSynthesizeBackPress() {
Log(LogLevel::kError, "AndroidSynthesizeBackPress() unimplemented");

View File

@ -59,7 +59,7 @@ class CorePlatform {
virtual void OnAppPause();
virtual void OnAppResume();
virtual void OnAppShutdown();
virtual void ApplyAppConfig();
virtual void DoApplyAppConfig();
virtual void OnScreenSizeChange();
virtual void StepDisplayTime();

View File

@ -458,6 +458,8 @@ void SceneV1AppMode::StepDisplayTime() {
UpdateKickVote();
HandleQuitOnIdle();
// Send the game roster to our clients if it's changed recently.
if (game_roster_dirty_) {
if (app_time > last_game_roster_send_time_ + 2500) {
@ -1149,7 +1151,7 @@ void SceneV1AppMode::LocalDisplayChatMessage(
}
}
void SceneV1AppMode::ApplyAppConfig() {
void SceneV1AppMode::DoApplyAppConfig() {
// Kick-idle-players setting (hmm is this still relevant?).
auto* host_session = dynamic_cast<HostSession*>(foreground_session_.Get());
kick_idle_players_ =
@ -1367,11 +1369,9 @@ void SceneV1AppMode::HandleQuitOnIdle() {
if (!idle_exiting_ && idle_seconds > (idle_exit_minutes_.value() * 60.0f)) {
idle_exiting_ = true;
Log(LogLevel::kInfo, "Quitting due to reaching idle-exit-minutes.");
g_base->logic->event_loop()->PushCall([] {
assert(g_base->InLogicThread());
// Just go through _babase.quit()
// FIXME: Shouldn't need to go out to the python layer here...
g_base->python->objs().Get(base::BasePython::ObjID::kQuitCall).Call();
});
}

View File

@ -80,7 +80,7 @@ class SceneV1AppMode : public base::AppMode {
auto chat_messages() const -> const std::list<std::string>& {
return chat_messages_;
}
void ApplyAppConfig() override;
void DoApplyAppConfig() override;
// Return whichever session is front and center.
auto GetForegroundSession() const -> Session* {

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 21125;
const int kEngineBuildNumber = 21126;
const char* kEngineVersion = "1.7.20";
auto MonolithicMain(const core::CoreConfig& core_config) -> int {

View File

@ -279,7 +279,7 @@ void UIV1FeatureSet::DeleteWidget(Widget* widget) {
}
}
void UIV1FeatureSet::ApplyAppConfig() {
void UIV1FeatureSet::DoApplyAppConfig() {
TextWidget::set_always_use_internal_keyboard(g_base->app_config->Resolve(
base::AppConfig::BoolID::kAlwaysUseInternalKeyboard));
}

View File

@ -101,7 +101,7 @@ class UIV1FeatureSet : public FeatureSetNativeComponent,
void OnLanguageChange() override;
auto GetRootWidget() -> ui_v1::Widget* override;
auto SendWidgetMessage(const base::WidgetMessage& m) -> int override;
void ApplyAppConfig() override;
void DoApplyAppConfig() override;
private:
UIV1FeatureSet();