diff --git a/.efrocachemap b/.efrocachemap index 6714e6d6..72b8f52d 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -432,7 +432,7 @@ "build/assets/ba_data/audio/zoeOw.ogg": "b2d705c31c9dcc1efdc71394764c3beb", "build/assets/ba_data/audio/zoePickup01.ogg": "e9366dc2d2b8ab8b0c4e2c14c02d0789", "build/assets/ba_data/audio/zoeScream01.ogg": "903e0e45ee9b3373e9d9ce20c814374e", - "build/assets/ba_data/data/langdata.json": "603a4d0333564e469a7782d1bf39150b", + "build/assets/ba_data/data/langdata.json": "cd059a1e20ac384f763c6386038837d8", "build/assets/ba_data/data/languages/arabic.json": "32b9849fb8389b8c7798f0b744620318", "build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff", "build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d", @@ -441,12 +441,12 @@ "build/assets/ba_data/data/languages/czech.json": "3418bee44e69be13b7f72996abe96921", "build/assets/ba_data/data/languages/danish.json": "8e57db30c5250df2abff14a822f83ea7", "build/assets/ba_data/data/languages/dutch.json": "4ba5bbcc0fecddd0aac6ee2c165d1e40", - "build/assets/ba_data/data/languages/english.json": "eb90ceebf5e090911881b20040578552", + "build/assets/ba_data/data/languages/english.json": "5506f0629e42604eb62c92bed4551d3b", "build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880", "build/assets/ba_data/data/languages/filipino.json": "1894fc331dcad7ce9cf4c180843f548f", "build/assets/ba_data/data/languages/french.json": "6d20655730b1017ef187fd828b91d43c", "build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5", - "build/assets/ba_data/data/languages/gibberish.json": "ef1dc16a451da31390ccf3e88aa7d6d1", + "build/assets/ba_data/data/languages/gibberish.json": "85b93e21e4969e2e3eceb26f1f66237c", "build/assets/ba_data/data/languages/greek.json": "d28d1092fbb00ed857cbd53124c0dc78", "build/assets/ba_data/data/languages/hindi.json": "567e6976b3c72f891431ad7fcc62ab16", "build/assets/ba_data/data/languages/hungarian.json": "af801baffb2c06460635dfb04c34bb3e", @@ -4174,22 +4174,22 @@ "build/assets/windows/Win32/ucrtbased.dll": "bfd1180c269d3950b76f35a63655e9e1", "build/assets/windows/Win32/vc_redist.x86.exe": "15a5f1f876503885adbdf5b3989b3718", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "9f8cc8474d9d9fafa7851c24e3b621c0", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "346b7218b645de8318994f3124bc9312", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "847cc254906723c32d27d778bdeb7b68", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "58c31a76047ed77c0f438af29f5d028e", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "94f1b6f9cbfff14e5d6a9276e222c7f4", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "d86bc94af4461ef2dec7ccd3dcd5578f", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "893ea9524e6d6abf8d0c47ae5ec0e66b", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "dadc5b75429ca98e406a99fe47c10cdd", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "1bcb3955cbf88fda9c66938cd773ffe4", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "0da1566deefa1bbc5f84c1e2e1fc2ab6", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "555b58e77cd6a5d736806367a8f0c18f", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "360b0662c075fd6f55f4c9c2a3ffbebd", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "22591e638d3f72c10a80856e050b00f8", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "ae2b28631e9e7b6fea4680c7981979bb", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ba456d79d1148a2eb4197ada84adacfd", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "8318c623f927f576b415bc4e2f41c1fa", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "490075b1f0f409dac071e27dc3a5396a", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "60efb54d98253d7d97021efc3dbcbd59", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "9c6eb8e03faf95e6902adb8bfde24a8b", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "bd670699053a1e0d474ee345f4edd656", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "3741d31a0f0dd0422a85f04e0ff0fa3f", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "32c46e38a916c8176322a910efcbcb3b", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "fd8708e164382c48edfbf9c7544a6e38", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "bc05c6a771e4defb28cdb7ca0561a689", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "99ec5b6f6cf2d0f925cb06ce7f8ab805", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "f4f245a47dc0279051dadd007959b689", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "28245a834bb409b6f11e90458c1624e2", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "1aa5230ba881011366f1d9fb9a895d3d", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "1e72ce51c2c2d2f1f2550a52ac3fc344", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "ecc96fe59adc13ea67e1d2e50b253b7a", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "aa0a5767a0eea6d4723ff54cc43cd81c", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "44091a64667a2c06f548a29805890321", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "273a6f64cac5a233694223b85cd0f22b", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "7497894d2943b75b6ac830cdba8481af", @@ -4202,14 +4202,14 @@ "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "55a2b0c2d1db4d70627c901471d05fc7", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "7e071962108a8d1727525fb331b70ee4", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "1be9c32787b77fbff6b873c2105aa8df", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "e06383bd4455b4fb8d8c2a80af08f66f", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "5c188e125967a837a3ec8098bd18da7b", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "0075d2a35454bf2a798947d30bc2304e", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "35dcb66b6c629d8d692d9e8fdca84708", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "2b34093f00e3059767b4a5aaf0978098", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "6df45f531d709730e042c6c0b492822a", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "3c0dff3038d6277c2e8535e0fc9e2e49", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "ed2d35d12c3abb5113b4725c25076532", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "bfa9e7ac4d012d9d3556fd1401055a14", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "a4dd8c160b5cde72d93b7627950ea755", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "5a730a358d15ddb2f18cd58505941409", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "5db366eeb98b8366ef8f1878f22c0e95", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "b368c2712eb5b1296cac5a35b2ef910e", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "37677230e1b27a733c90552eaa227691", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "efffad67c4056754c29d88010c239175", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad", "src/ballistica/base/mgen/pyembed/binding_base.inc": "06042d31df0ff9af96b99477162e2a91", diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c4ece39..57d00522 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22221, api 9, 2025-01-20) +### 1.7.37 (build 22222, api 9, 2025-01-20) - Bumping api version to 9. As you'll see below, there's some UI changes that will require a bit of work for any UI mods to adapt to. If your mods don't touch UI stuff at all you can simply bump your api version and call it a day. diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index e6837493..aff17745 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -53,7 +53,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 22221 +TARGET_BALLISTICA_BUILD = 22222 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/assets/ba_data/python/bauiv1lib/settings/advanced.py b/src/assets/ba_data/python/bauiv1lib/settings/advanced.py index 7cf9cd84..f9b01431 100644 --- a/src/assets/ba_data/python/bauiv1lib/settings/advanced.py +++ b/src/assets/ba_data/python/bauiv1lib/settings/advanced.py @@ -39,34 +39,51 @@ class AdvancedSettingsWindow(bui.MainWindow): uiscale = bui.app.ui_v1.uiscale self._width = 1030.0 if uiscale is bui.UIScale.SMALL else 670.0 - x_inset = 150 if uiscale is bui.UIScale.SMALL else 0 self._height = ( - 390.0 + 490.0 if uiscale is bui.UIScale.SMALL - else 450.0 if uiscale is bui.UIScale.MEDIUM else 520.0 + else 450.0 if uiscale is bui.UIScale.MEDIUM else 550.0 ) self._lang_status_text: bui.Widget | None = None self._spacing = 32 self._menu_open = False - top_extra = 10 if uiscale is bui.UIScale.SMALL else 0 + + # Do some fancy math to fill all available screen area up to the + # size of our backing container. + # + # TODO: We need an auto-refresh mechanism for cases where screen + # size changes under us. Currently one must navigate out and + # back in to properly reflect such changes. + screensize = bui.get_virtual_screen_size() + scale = ( + 2.04 + if uiscale is bui.UIScale.SMALL + else 1.3 if uiscale is bui.UIScale.MEDIUM else 1.0 + ) + + # Calc screen size in our local container space and clamp to a + # bit smaller than our container size. + target_width = min(self._width - 80, screensize[0] / scale) + target_height = min(self._height - 80, screensize[1] / scale) + + # To get top/left coords, go to the center of our window and + # offset by half the width/height of our target area. + yoffs = 0.5 * self._height + 0.5 * target_height + 30.0 + + self._scroll_width = target_width + self._scroll_height = target_height - 25 + scroll_y = yoffs - 56 - self._scroll_height super().__init__( root_widget=bui.containerwidget( - size=(self._width, self._height + top_extra), + size=(self._width, self._height), toolbar_visibility=( 'menu_minimal' if uiscale is bui.UIScale.SMALL else 'menu_full' ), - scale=( - 2.04 - if uiscale is bui.UIScale.SMALL - else 1.4 if uiscale is bui.UIScale.MEDIUM else 1.0 - ), - stack_offset=( - (0, 10) if uiscale is bui.UIScale.SMALL else (0, 0) - ), + scale=scale, ), transition=transition, origin_widget=origin_widget, @@ -82,11 +99,7 @@ class AdvancedSettingsWindow(bui.MainWindow): # so no need to show this. self._show_always_use_internal_keyboard = not app.env.vr - self._scroll_width = self._width - (100 + 2 * x_inset) - self._scroll_height = self._height - ( - 125.0 if uiscale is bui.UIScale.SMALL else 115.0 - ) - self._sub_width = self._scroll_width * 0.95 + self._sub_width = min(550, self._scroll_width * 0.95) self._sub_height = 870.0 if self._show_always_use_internal_keyboard: @@ -121,12 +134,12 @@ class AdvancedSettingsWindow(bui.MainWindow): else: self._back_button = bui.buttonwidget( parent=self._root_widget, - position=(53 + x_inset, self._height - 60), - size=(140, 60), + position=(50, yoffs - 48), + size=(60, 60), scale=0.8, autoselect=True, - label=bui.Lstr(resource='backText'), - button_type='back', + label=bui.charstr(bui.SpecialChar.BACK), + button_type='backSmall', on_activate_call=self.main_window_back, ) bui.containerwidget( @@ -137,30 +150,23 @@ class AdvancedSettingsWindow(bui.MainWindow): parent=self._root_widget, position=( self._width * 0.5, - self._height - (61 if uiscale is bui.UIScale.SMALL else 40), + yoffs - (43 if uiscale is bui.UIScale.SMALL else 25), ), size=(0, 0), - scale=0.85 if uiscale is bui.UIScale.SMALL else 1.0, + scale=0.75 if uiscale is bui.UIScale.SMALL else 1.0, text=bui.Lstr(resource=f'{self._r}.titleText'), color=app.ui_v1.title_color, h_align='center', v_align='center', ) - if self._back_button is not None: - bui.buttonwidget( - edit=self._back_button, - button_type='backSmall', - size=(60, 60), - label=bui.charstr(bui.SpecialChar.BACK), - ) - self._scrollwidget = bui.scrollwidget( parent=self._root_widget, - position=(50 + x_inset, 50), + size=(self._scroll_width, self._scroll_height), + position=(self._width * 0.5 - self._scroll_width * 0.5, scroll_y), simple_culling_v=20.0, highlight=False, - size=(self._scroll_width, self._scroll_height), + center_small_content_horizontally=True, selection_loops_to_parent=True, border_opacity=0.4, ) diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 47bfe444..d5ae676e 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -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 = 22221; +const int kEngineBuildNumber = 22222; const char* kEngineVersion = "1.7.37"; const int kEngineApiVersion = 9;