mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-29 02:23:22 +08:00
Connecting to a party via exec arg now works
This commit is contained in:
parent
c91a07bd6b
commit
8007f7de42
@ -3932,26 +3932,26 @@
|
||||
"assets/build/windows/Win32/ucrtbased.dll": "https://files.ballistica.net/cache/ba1/b5/85/f8b6d0558ddb87267f34254b1450",
|
||||
"assets/build/windows/Win32/vc_redist.x86.exe": "https://files.ballistica.net/cache/ba1/1c/e1/4a1a2eddda2f4aebd5f8b64ab08e",
|
||||
"assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f",
|
||||
"build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/46/ad/ce8ca86415841e139569bb3c1f8f",
|
||||
"build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/7e/cd/849c232cd841cfcba662d9684e3c",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b9/1c/6e85525c5de9bca9685a7c1d26e9",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f8/d3/97dd8a8200380f589a705e720055",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/c2/76/cb60618d327e7e7536d00461b886",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/fc/fa/fcca1e02ff3a47785abcf46f37f2",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fc/79/9c289328cf04042c28f449690cc3",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/32/f9/4e443b5e25cd319a386a7223d7ac",
|
||||
"build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/14/aa/7de00108edbe74a83191feffd9f6",
|
||||
"build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/21/d2/655075853f455ee7f3640604635a",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2a/63/20338b8263c013cd095f9c42315b",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/20/b9/50a276c94c32c122aa5d4e6fa2ac",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3e/e5/6383ca046609f0d5349243333474",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/23/1c/b85c95ea38daca6c780ca6735756",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5f/53/fb376ece15f95659bfdfec34363a",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/ae/353a1773ee4da017a9e3f9ca3684",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e5/d6/78ea684cc9a71e4546ec0349784c",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/dd/56/6106a0adf4002d69d3be14846d2b",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/fd/d3/e72d3b3e217bd3fd329106e88c2c",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/0e/b3/f440e97dab1b4ec890c0b8c91453",
|
||||
"build/prefab/full/linux_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/bd/13/4b8f2b347863747aeaab5d19ffbe",
|
||||
"build/prefab/full/linux_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/20/00/4f13a3cf0cafd8f60a90008ce605",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4d/ae/c8e188c091474324e580ec94f4e0",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c0/e8/e9915433922b616281694b3c903d",
|
||||
"build/prefab/full/linux_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/6c/52/090604f97715740cfff85f4c3f48",
|
||||
"build/prefab/full/linux_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/1e/e9/9de31a86255b65d7d89a02c257b4",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/da/ce/a2db4cee1c1858143214c03d3a2c",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/17/70/b0b4a3853c5182121325de58e224",
|
||||
"build/prefab/full/mac_arm64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e4/42/aa2626b27e0c393b50ae57406bb2",
|
||||
"build/prefab/full/mac_arm64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/d7/dd/4b7fb2832972f49b01101aac0ca2",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d0/80/5a44a3728b56aafe499081d863b2",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/91/13/a46a521e933e4d8dc43f4997e238",
|
||||
"build/prefab/full/mac_x86_64/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/88/e9/3c26f08c41f7c74db6e6495159ee",
|
||||
"build/prefab/full/mac_x86_64/release/ballisticacore": "https://files.ballistica.net/cache/ba1/6f/42/49707eb374d25778fe9813963bcd",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/25/45/2de5c321525af7c3f152b11f1884",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ef/c1/94aab0266746ffb01fdc1cd47a08",
|
||||
"build/prefab/full/windows_x86/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b3/1d/a1d6998e968d27e7eecdf2526eb1",
|
||||
"build/prefab/full/windows_x86/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/34/47/9378839338629fe8e322a9ddb860",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/e0/dc/0bd676886c0a5391366edfad4bd4",
|
||||
"build/prefab/full/windows_x86_server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/5d/5f/020bb8c78559871f9924042894ff",
|
||||
"build/prefab/lib/linux_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4c/bf/393694ea67f3d590dd2706c9955e",
|
||||
"build/prefab/lib/linux_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/78/cb/bb9ae4f896f862074057c8e36e1d",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/bd/39d7b885f7f01e81d0e96f0f85ce",
|
||||
@ -3960,12 +3960,12 @@
|
||||
"build/prefab/lib/linux_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/52/d9/563a6949d2c4db5a915c54460fbc",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/6a/42fe8d2e34f95e1b3282e8422344",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/50/cf/bad44b07a4022aee3001002086b5",
|
||||
"build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d1/d6/699843b13518be29ea1a370dc7b2",
|
||||
"build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0c/88/bb8f8cc3b426b3ba9a15ed3697de",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3b/bf/31fcadf412a0ecf92e8cdc61a01a",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f5/4c/5f5c9d5a5e1985371a0f8f0e5aa6",
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5f/75/b2490bcee215d922c7b250ea5bda",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/c9/38/7695ffdddb2eba1f1d800c84dc04",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/73/ab/6333cfc10a127265eb0f0c3fe4b1",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/09/95/dd9f50fbc4eb499018713f3e32da"
|
||||
"build/prefab/lib/mac_arm64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8e/d8/b00361f54ae023feb88cbf0ef78c",
|
||||
"build/prefab/lib/mac_arm64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/42/68/fa75c5f75e97ae5214679c75bbc0",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/62/b9/2e9fca8ae23035741fadd143a932",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/eb/b1/4a527ce50b6d52e7970efb149fbb",
|
||||
"build/prefab/lib/mac_x86_64/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/11/cf/3e89a9502fdec55eb218ecad26a2",
|
||||
"build/prefab/lib/mac_x86_64/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8a/80/2db47e59931fd4e663d4a62c0b5e",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f0/04/ba4cd87f743c35f3db8649a62ede",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fc/4d/a37663dbf38601f3daf924065747"
|
||||
}
|
||||
@ -12,6 +12,7 @@
|
||||
- Server-wrapper improvements allowing config path and ba_root path to be passed explicitly.
|
||||
- Binary -cfgdir option now properly allows any path, not just './ba_root'.
|
||||
- Additional server-wrapper options such as disabling auto-restart and automatic restarts on config file changes.
|
||||
- Running a `_ba.connect_to_party` command via the -exec arg should now do the right thing.
|
||||
|
||||
### 1.5.29 (20246)
|
||||
- Exposed ba method/class initing in public C++ layer.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||
<h4><em>last updated on 2021-02-27 for Ballistica version 1.6.0 build 20312</em></h4>
|
||||
<h4><em>last updated on 2021-03-03 for Ballistica version 1.6.0 build 20319</em></h4>
|
||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
||||
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||
<hr>
|
||||
|
||||
@ -108,6 +108,7 @@ void App::PushShutdownCompleteCall() {
|
||||
}
|
||||
|
||||
void App::ShutdownComplete() {
|
||||
assert(InMainThread());
|
||||
assert(g_platform);
|
||||
|
||||
// Need to call our cleanup stuff that would otherwise get called in main.
|
||||
|
||||
@ -56,7 +56,7 @@ class AppGlobals {
|
||||
UIScale ui_scale{UIScale::kLarge};
|
||||
AccountType account_type{AccountType::kInvalid};
|
||||
bool remote_server_accepting_connections{true};
|
||||
std::string game_commands;
|
||||
std::string exec_command;
|
||||
std::string user_agent_string{"BA_USER_AGENT_UNSET (" BA_PLATFORM_STRING ")"};
|
||||
int return_value{};
|
||||
bool is_stdin_a_terminal{true};
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't change here.
|
||||
const int kAppBuildNumber = 20319;
|
||||
const int kAppBuildNumber = 20321;
|
||||
const char* kAppVersion = "1.6.0";
|
||||
|
||||
// Our standalone globals.
|
||||
@ -87,7 +87,6 @@ auto BallisticaMain(int argc, char** argv) -> int {
|
||||
g_app_globals = new AppGlobals(argc, argv);
|
||||
g_app_internal = CreateAppInternal();
|
||||
g_platform = Platform::Create();
|
||||
g_platform->PostInit();
|
||||
g_account = new Account();
|
||||
g_utils = new Utils();
|
||||
Scene::Init();
|
||||
@ -126,15 +125,15 @@ auto BallisticaMain(int argc, char** argv) -> int {
|
||||
// Phase 2: Set things in motion.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
// Ok; now that we're bootstrapped, tell the game thread to read and apply
|
||||
// the config which should kick off the real action.
|
||||
g_game->PushApplyConfigCall();
|
||||
|
||||
// Let the app and platform do whatever else it wants here such as adding
|
||||
// initial input devices/etc.
|
||||
g_app->OnBootstrapComplete();
|
||||
g_platform->OnBootstrapComplete();
|
||||
|
||||
// Ok; now that we're bootstrapped, tell the game thread to read and apply
|
||||
// the config which should kick off the real action.
|
||||
g_game->PushApplyConfigCall();
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Phase 3/4: Create a screen and/or kick off game (in other threads).
|
||||
// -------------------------------------------------------------------------
|
||||
@ -258,7 +257,7 @@ auto InNetworkWriteThread() -> bool {
|
||||
&& g_network_write_module->thread()->IsCurrent());
|
||||
}
|
||||
|
||||
auto GetInterfaceType() -> UIScale { return g_app_globals->ui_scale; }
|
||||
auto GetUIScale() -> UIScale { return g_app_globals->ui_scale; }
|
||||
|
||||
void Log(const std::string& msg, bool to_stdout, bool to_server) {
|
||||
Logging::Log(msg, to_stdout, to_server);
|
||||
|
||||
@ -220,7 +220,7 @@ auto GetCurrentThreadName() -> std::string;
|
||||
auto Log(const std::string& msg, bool to_stdout = true, bool to_server = true)
|
||||
-> void;
|
||||
|
||||
auto GetInterfaceType() -> UIScale;
|
||||
auto GetUIScale() -> UIScale;
|
||||
|
||||
/// Return true if stdin seems to be coming from a terminal
|
||||
/// (so we know to print prompts, etc).
|
||||
|
||||
@ -317,6 +317,7 @@ void Game::Prune() { g_media->Prune(); }
|
||||
|
||||
// Launch into main menu or whatever else.
|
||||
void Game::RunAppLaunchCommands() {
|
||||
assert(InGameThread());
|
||||
assert(!ran_app_launch_commands_);
|
||||
|
||||
// First off, run our python app-launch call.
|
||||
@ -325,10 +326,11 @@ void Game::RunAppLaunchCommands() {
|
||||
ScopedSetContext cp(GetUIContext());
|
||||
g_python->obj(Python::ObjID::kOnAppLaunchCall).Call();
|
||||
}
|
||||
ran_app_launch_commands_ = true;
|
||||
|
||||
// If we were passed launch command args, run them.
|
||||
if (!g_app_globals->game_commands.empty()) {
|
||||
bool success = PythonCommand(g_app_globals->game_commands, BA_BCFN).Run();
|
||||
if (!g_app_globals->exec_command.empty()) {
|
||||
bool success = PythonCommand(g_app_globals->exec_command, BA_BCFN).Run();
|
||||
if (!success) {
|
||||
exit(1);
|
||||
}
|
||||
@ -340,8 +342,6 @@ void Game::RunAppLaunchCommands() {
|
||||
}
|
||||
|
||||
UpdateProcessTimer();
|
||||
|
||||
ran_app_launch_commands_ = true;
|
||||
}
|
||||
|
||||
Game::~Game() = default;
|
||||
@ -353,7 +353,9 @@ void Game::UpdateProcessTimer() {
|
||||
// This might get called before we set up our timer in some cases. (such as
|
||||
// very early) should be safe to ignore since we update the interval
|
||||
// explicitly after creating the timers.
|
||||
if (!process_timer_) return;
|
||||
if (!process_timer_) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If there's loading to do, keep at it rather vigorously.
|
||||
if (have_pending_loads_) {
|
||||
@ -883,18 +885,17 @@ void Game::LaunchHostSession(PyObject* session_type_obj,
|
||||
}
|
||||
|
||||
void Game::RunMainMenu() {
|
||||
PushCall([this] {
|
||||
if (g_app_globals->shutting_down) {
|
||||
return;
|
||||
}
|
||||
assert(g_python);
|
||||
assert(InGameThread());
|
||||
PythonRef result =
|
||||
g_python->obj(Python::ObjID::kLaunchMainMenuSessionCall).Call();
|
||||
if (!result.exists()) {
|
||||
throw Exception("error running main menu");
|
||||
}
|
||||
});
|
||||
assert(InGameThread());
|
||||
if (g_app_globals->shutting_down) {
|
||||
return;
|
||||
}
|
||||
assert(g_python);
|
||||
assert(InGameThread());
|
||||
PythonRef result =
|
||||
g_python->obj(Python::ObjID::kLaunchMainMenuSessionCall).Call();
|
||||
if (!result.exists()) {
|
||||
throw Exception("error running main menu");
|
||||
}
|
||||
}
|
||||
|
||||
// Commands run via the in-game console. These are a bit more 'casual' and run
|
||||
|
||||
@ -12,7 +12,7 @@ AreaOfInterest::~AreaOfInterest() = default;
|
||||
|
||||
void AreaOfInterest::SetRadius(float r_in) {
|
||||
// We slightly scale this for phone situations.
|
||||
float extrascale = (GetInterfaceType() == UIScale::kSmall) ? 0.85f : 1.0f;
|
||||
float extrascale = (GetUIScale() == UIScale::kSmall) ? 0.85f : 1.0f;
|
||||
radius_ = r_in * extrascale;
|
||||
}
|
||||
|
||||
|
||||
@ -5833,7 +5833,7 @@ std::string RendererGL::GetAutoAndroidRes() {
|
||||
if (strstr(renderer, "Adreno (TM) 4") || strstr(renderer, "Adreno (TM) 5")) {
|
||||
// for phones lets go with 1080p (phones most likely have 1920x1080-ish
|
||||
// aspect ratios)
|
||||
if (GetInterfaceType() == UIScale::kSmall) {
|
||||
if (GetUIScale() == UIScale::kSmall) {
|
||||
return "1080p";
|
||||
} else {
|
||||
// tablets are more likely to have 1920x1200 so lets inch a bit higher
|
||||
@ -5845,7 +5845,7 @@ std::string RendererGL::GetAutoAndroidRes() {
|
||||
if (is_extra_speedy_android_device_) {
|
||||
// for phones lets go with 1080p (phones most likely have 1920x1080-ish
|
||||
// aspect ratios)
|
||||
if (GetInterfaceType() == UIScale::kSmall) {
|
||||
if (GetUIScale() == UIScale::kSmall) {
|
||||
return "1080p";
|
||||
} else {
|
||||
// tablets are more likely to have 1920x1200 so lets inch a bit higher
|
||||
|
||||
@ -431,7 +431,7 @@ void Graphics::DrawMiscOverlays(RenderPass* pass) {
|
||||
// during gameplay.
|
||||
float start_v = g_graphics->screen_virtual_height() * 0.05f;
|
||||
float scale;
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kSmall:
|
||||
scale = 1.5f;
|
||||
break;
|
||||
|
||||
@ -71,7 +71,7 @@ void TouchInput::HandleTouchEvent(TouchEvent::Type type, void* touch, float x,
|
||||
}
|
||||
|
||||
TouchInput::TouchInput() {
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kSmall:
|
||||
base_controls_scale_ = 2.0f;
|
||||
world_draw_scale_ = 1.2f;
|
||||
@ -866,7 +866,7 @@ void TouchInput::UpdateMapping() {
|
||||
g_app_config->Resolve(AppConfig::BoolID::kTouchControlsSwipeHidden);
|
||||
|
||||
// Start with defaults.
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kSmall:
|
||||
buttons_default_frac_x_ = 0.88f;
|
||||
buttons_default_frac_y_ = 0.2f;
|
||||
|
||||
@ -23,7 +23,7 @@ class PlatformApple : public Platform {
|
||||
auto GetLocale() -> std::string override;
|
||||
auto DoGetDeviceName() -> std::string override;
|
||||
auto DoHasTouchScreen() -> bool override;
|
||||
auto GetInterfaceType() -> UIScale override;
|
||||
auto GetUIScale() -> UIScale override;
|
||||
auto IsRunningOnDesktop() -> bool override;
|
||||
void HandleLog(const std::string& msg) override;
|
||||
void SetupDataDirectory() override;
|
||||
|
||||
@ -105,6 +105,7 @@ namespace ballistica {
|
||||
|
||||
auto Platform::Create() -> Platform* {
|
||||
auto platform = new BA_PLATFORM_CLASS();
|
||||
platform->PostInit();
|
||||
return platform;
|
||||
}
|
||||
|
||||
@ -562,7 +563,7 @@ static void HandleArgs(int argc, char** argv) {
|
||||
g_app_globals->vr_mode = false;
|
||||
} else if (!strcmp(argv[i], "-exec")) {
|
||||
if (i + 1 < argc) {
|
||||
g_app_globals->game_commands = argv[i + 1];
|
||||
g_app_globals->exec_command = argv[i + 1];
|
||||
} else {
|
||||
printf("%s", "Error: expected arg after -exec\n");
|
||||
fflush(stdout);
|
||||
@ -597,13 +598,13 @@ static void HandleArgs(int argc, char** argv) {
|
||||
|
||||
// In Android's case we have to pull our exec arg from the java/kotlin layer.
|
||||
if (g_buildconfig.ostype_android()) {
|
||||
g_app_globals->game_commands = g_platform->GetAndroidExecArg();
|
||||
g_app_globals->exec_command = g_platform->GetAndroidExecArg();
|
||||
}
|
||||
|
||||
// TEMP/HACK: hard code launch args.
|
||||
if (explicit_bool(false)) {
|
||||
if (g_buildconfig.ostype_android()) {
|
||||
g_app_globals->game_commands =
|
||||
g_app_globals->exec_command =
|
||||
"import ba.internal; ba.internal.run_stress_test()";
|
||||
}
|
||||
}
|
||||
@ -685,7 +686,7 @@ void Platform::CreateAuxiliaryModules() {
|
||||
|
||||
void Platform::WillExitMain(bool errored) {}
|
||||
|
||||
auto Platform::GetInterfaceType() -> UIScale {
|
||||
auto Platform::GetUIScale() -> UIScale {
|
||||
// Handles mac/pc/linux cases.
|
||||
return UIScale::kLarge;
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ class Platform {
|
||||
virtual auto IsEventPushMode() -> bool;
|
||||
|
||||
// Return the interface type based on the environment (phone, tablet, etc).
|
||||
virtual auto GetInterfaceType() -> UIScale;
|
||||
virtual auto GetUIScale() -> UIScale;
|
||||
|
||||
// Return a string *reasonably* likely to be unique and consistent for this
|
||||
// device. Do not assume this is globally unique and *do not* assume that it
|
||||
|
||||
@ -742,7 +742,7 @@ auto PyEnv(PyObject* self) -> PyObject* {
|
||||
bool iircade_mode{g_buildconfig.arcade_build()};
|
||||
|
||||
const char* ui_scale;
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kLarge:
|
||||
ui_scale = "large";
|
||||
break;
|
||||
|
||||
@ -4934,7 +4934,7 @@ void SpazNode::Draw(FrameDef* frame_def) {
|
||||
|
||||
int elem_count = name_text_group_.GetElementCount();
|
||||
float s_extra =
|
||||
(IsVRMode() || GetInterfaceType() == UIScale::kSmall) ? 1.2f : 1.0f;
|
||||
(IsVRMode() || GetUIScale() == UIScale::kSmall) ? 1.2f : 1.0f;
|
||||
|
||||
for (int e = 0; e < elem_count; e++) {
|
||||
// Gracefully skip unloaded textures.
|
||||
|
||||
@ -27,7 +27,7 @@ const float kMenuButtonDrawDepth = -0.07f;
|
||||
|
||||
RootUI::RootUI() {
|
||||
float base_scale;
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kLarge:
|
||||
base_scale = 1.0f;
|
||||
break;
|
||||
|
||||
@ -56,7 +56,7 @@ UI::UI() {
|
||||
// VR and tv builds always use medium.
|
||||
g_app_globals->ui_scale = UIScale::kMedium;
|
||||
} else {
|
||||
g_app_globals->ui_scale = g_platform->GetInterfaceType();
|
||||
g_app_globals->ui_scale = g_platform->GetUIScale();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ auto RootWidget::AddCover(float h_align, VAlign v_align, float x, float y,
|
||||
// when the user specifies no backing it means they intend to cover the screen
|
||||
// with a flat-ish window texture.. however this only applies to phone-size;
|
||||
// for other sizes we always draw a backing.
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.visibility_mask |=
|
||||
static_cast<uint32_t>(Widget::ToolbarVisibility::kMenuFull);
|
||||
}
|
||||
@ -152,7 +152,7 @@ auto RootWidget::AddCover(float h_align, VAlign v_align, float x, float y,
|
||||
|
||||
void RootWidget::AddMeter(float h_align, float x, int type, float r, float g,
|
||||
float b, bool plus, const std::string& s) {
|
||||
float yoffs = (GetInterfaceType() == UIScale::kSmall) ? 0.0f : -7.0f;
|
||||
float yoffs = (GetUIScale() == UIScale::kSmall) ? 0.0f : -7.0f;
|
||||
|
||||
float width = type == 1 ? 80.0f : 110.0f;
|
||||
// bar
|
||||
@ -170,7 +170,7 @@ void RootWidget::AddMeter(float h_align, float x, int type, float r, float g,
|
||||
bd.color_r = 0.32f;
|
||||
bd.color_g = 0.30f;
|
||||
bd.color_b = 0.4f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.color_r *= TOOLBAR_COLOR_R;
|
||||
bd.color_g *= TOOLBAR_COLOR_G;
|
||||
bd.color_b *= TOOLBAR_COLOR_B;
|
||||
@ -286,7 +286,7 @@ void RootWidget::AddMeter(float h_align, float x, int type, float r, float g,
|
||||
bd.color_r = 0.35f;
|
||||
bd.color_g = 0.35f;
|
||||
bd.color_b = 0.55f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.color_r *= TOOLBAR_COLOR_R;
|
||||
bd.color_g *= TOOLBAR_COLOR_G;
|
||||
bd.color_b *= TOOLBAR_COLOR_B;
|
||||
@ -349,9 +349,9 @@ void RootWidget::Setup() {
|
||||
|
||||
// widen this a bit in small mode so it just covers most of the top
|
||||
// - that looks funny in medium/large mode though
|
||||
// if (GetInterfaceType() == UIScale::kSmall) {
|
||||
// if (GetUIScale() == UIScale::kSmall) {
|
||||
// AddCover(0.5f, VAlign::kTop, 0.0f, 320.0f,
|
||||
// GetInterfaceType() == UIScale::kSmall ? 1000.0f :
|
||||
// GetUIScale() == UIScale::kSmall ? 1000.0f :
|
||||
// 1000.0f, 800.0f, 0.4f);
|
||||
// }
|
||||
// if (c) {
|
||||
@ -365,14 +365,14 @@ void RootWidget::Setup() {
|
||||
bd.h_align = 0.5f;
|
||||
bd.v_align = VAlign::kTop;
|
||||
bd.width = 370.0f;
|
||||
// if (GetInterfaceType() != UIScale::kSmall) {
|
||||
// if (GetUIScale() != UIScale::kSmall) {
|
||||
// bd.width = 950.0f;
|
||||
// }
|
||||
bd.height = 90.0f;
|
||||
bd.x = 256.0f;
|
||||
bd.y = -20.0f;
|
||||
bd.img = "uiAtlas2";
|
||||
// if (GetInterfaceType() != UIScale::kSmall) {
|
||||
// if (GetUIScale() != UIScale::kSmall) {
|
||||
// bd.model_transparent = "toolbarBackingTop";
|
||||
// } else {
|
||||
bd.model_transparent = "toolbarBackingTop2";
|
||||
@ -382,7 +382,7 @@ void RootWidget::Setup() {
|
||||
bd.color_g = 0.41f;
|
||||
bd.color_b = 0.56f;
|
||||
bd.opacity = 1.0f;
|
||||
// if (GetInterfaceType() != UIScale::kSmall) {
|
||||
// if (GetUIScale() != UIScale::kSmall) {
|
||||
// bd.color_r *= TOOLBAR_COLOR_R;
|
||||
// bd.color_g *= TOOLBAR_COLOR_G;
|
||||
// bd.color_b *= TOOLBAR_COLOR_B;
|
||||
@ -409,14 +409,14 @@ void RootWidget::Setup() {
|
||||
bd.h_align = 0.5f;
|
||||
bd.v_align = VAlign::kTop;
|
||||
bd.width = 850.0f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.width = 850.0f;
|
||||
}
|
||||
bd.height = 90.0f;
|
||||
bd.x = 0.0f;
|
||||
bd.y = -20.0f;
|
||||
bd.img = "uiAtlas2";
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.model_transparent = "toolbarBackingTop2";
|
||||
} else {
|
||||
bd.model_transparent = "toolbarBackingTop2";
|
||||
@ -426,7 +426,7 @@ void RootWidget::Setup() {
|
||||
bd.color_g = 0.41f;
|
||||
bd.color_b = 0.56f;
|
||||
bd.opacity = 1.0f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.color_r *= TOOLBAR_COLOR_R * TOOLBAR_BACK_COLOR_R;
|
||||
bd.color_g *= TOOLBAR_COLOR_G * TOOLBAR_BACK_COLOR_G;
|
||||
bd.color_b *= TOOLBAR_COLOR_B * TOOLBAR_BACK_COLOR_B;
|
||||
@ -446,7 +446,7 @@ void RootWidget::Setup() {
|
||||
AddButton(bd);
|
||||
}
|
||||
|
||||
float yoffs = (GetInterfaceType() == UIScale::kSmall) ? 0.0f : -10.0f;
|
||||
float yoffs = (GetUIScale() == UIScale::kSmall) ? 0.0f : -10.0f;
|
||||
|
||||
// account button
|
||||
{
|
||||
@ -456,12 +456,12 @@ void RootWidget::Setup() {
|
||||
bd.width = 160.0f;
|
||||
bd.height = 60.0f;
|
||||
bd.depth_min = 0.3f;
|
||||
bd.x = (GetInterfaceType() == UIScale::kSmall) ? 100.0f : -50.0f;
|
||||
bd.x = (GetUIScale() == UIScale::kSmall) ? 100.0f : -50.0f;
|
||||
bd.y = -24.0f + yoffs;
|
||||
bd.color_r = 0.56f;
|
||||
bd.color_g = 0.5f;
|
||||
bd.color_b = 0.73f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.color_r *= TOOLBAR_COLOR_R;
|
||||
bd.color_g *= TOOLBAR_COLOR_G;
|
||||
bd.color_b *= TOOLBAR_COLOR_B;
|
||||
@ -473,7 +473,7 @@ void RootWidget::Setup() {
|
||||
| static_cast<int>(Widget::ToolbarVisibility::kMenuFullRoot));
|
||||
|
||||
// on desktop, stick this in the top left corner
|
||||
// if (GetInterfaceType() == UIScale::kLarge) {
|
||||
// if (GetUIScale() == UIScale::kLarge) {
|
||||
// bd.h_align = 0.0f;
|
||||
// bd.x = 120.0f;
|
||||
// }
|
||||
@ -511,7 +511,7 @@ void RootWidget::Setup() {
|
||||
}
|
||||
}
|
||||
|
||||
float anchorx = (GetInterfaceType() == UIScale::kSmall) ? 0.3f : 0.25f;
|
||||
float anchorx = (GetUIScale() == UIScale::kSmall) ? 0.3f : 0.25f;
|
||||
|
||||
AddMeter(anchorx, 200.0f - 148.0f, 0, 1.0f, 1.0f, 1.0f, false, "456/1000");
|
||||
AddMeter(anchorx, 200.0f, 1, 1.0f, 1.0f, 1.0f, false, "123");
|
||||
@ -657,7 +657,7 @@ void RootWidget::Setup() {
|
||||
float backingCoverG = backingG;
|
||||
float backingCoverB = backingB;
|
||||
float backingA = 1.0f;
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
backingR *= TOOLBAR_COLOR_R * TOOLBAR_BACK_COLOR_R;
|
||||
backingG *= TOOLBAR_COLOR_G * TOOLBAR_BACK_COLOR_G;
|
||||
backingB *= TOOLBAR_COLOR_B * TOOLBAR_BACK_COLOR_B;
|
||||
@ -685,7 +685,7 @@ void RootWidget::Setup() {
|
||||
bd.x = 0.0f;
|
||||
bd.y = 41.0f;
|
||||
bd.img = "uiAtlas2";
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
bd.model_transparent = "toolbarBackingBottom2";
|
||||
} else {
|
||||
bd.model_transparent = "toolbarBackingBottom2";
|
||||
@ -945,7 +945,7 @@ void RootWidget::StepPositions(float dt) {
|
||||
}
|
||||
if (&b == back_button_) {
|
||||
// back button is always disabled in medium/large UI
|
||||
if (GetInterfaceType() != UIScale::kSmall) {
|
||||
if (GetUIScale() != UIScale::kSmall) {
|
||||
enable_button = false;
|
||||
}
|
||||
|
||||
@ -1034,7 +1034,7 @@ void RootWidget::StepPositions(float dt) {
|
||||
void RootWidget::UpdateLayout() {
|
||||
// Now actually put things in place.
|
||||
base_scale_ = 1.0f;
|
||||
switch (GetInterfaceType()) {
|
||||
switch (GetUIScale()) {
|
||||
case UIScale::kLarge:
|
||||
base_scale_ = 0.6f;
|
||||
break;
|
||||
|
||||
@ -230,7 +230,7 @@ void TextWidget::Draw(RenderPass* pass, bool draw_transparent) {
|
||||
c.SetTexture(g_media->GetTexture(SystemTextureID::kTextClearButton));
|
||||
c.PushTransform();
|
||||
c.Translate(r - 20, b * 0.5f + t * 0.5f, 0.1f);
|
||||
if (GetInterfaceType() == UIScale::kSmall) {
|
||||
if (GetUIScale() == UIScale::kSmall) {
|
||||
c.Scale(30, 30);
|
||||
} else {
|
||||
c.Scale(25, 25);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user