diff --git a/.efrocachemap b/.efrocachemap index 4f1475213..54578ebaf 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -432,41 +432,41 @@ "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": "aada367fb1ea687a5891aaa78e755d29", - "build/assets/ba_data/data/languages/arabic.json": "955758fcbd6ceaa19c8984ec04dc409b", + "build/assets/ba_data/data/langdata.json": "d109aa56e5aabca2666974107607ea3d", + "build/assets/ba_data/data/languages/arabic.json": "d95c590f7db91a9e8b7df4b9b58c8529", "build/assets/ba_data/data/languages/belarussian.json": "009b452aa308bf2b2f7e92d9b78ba5ff", "build/assets/ba_data/data/languages/chinese.json": "5363a79f843e6be7ef47a840f47cc17d", "build/assets/ba_data/data/languages/chinesetraditional.json": "bea0f9c17324591b8261015cbd80a265", - "build/assets/ba_data/data/languages/croatian.json": "1ad9d43f30c6d7ed3b39e2a0e8bfae0b", + "build/assets/ba_data/data/languages/croatian.json": "f36e1c6f20f2ce0d1fa8adb9c3cbf509", "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": "77fb833372b208b6f15e1c8442033ac7", "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/french.json": "061fd0da99c8b2bd8fcfb1ad0b2b02c0", "build/assets/ba_data/data/languages/german.json": "bc656f1ada467161c23546f48d0dacc5", "build/assets/ba_data/data/languages/gibberish.json": "8eca04f0bf36f2d306dc2f7d550d8339", "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", "build/assets/ba_data/data/languages/indonesian.json": "607ba358179185f032096ea1978e4448", - "build/assets/ba_data/data/languages/italian.json": "656dbe1c77d0d4776f3b095384e8dda2", + "build/assets/ba_data/data/languages/italian.json": "efddc0d1740328da9655e4bc68693ce9", "build/assets/ba_data/data/languages/korean.json": "360760d72832863e1a3451b0a514cb08", "build/assets/ba_data/data/languages/malay.json": "0212e18e54efa202c17505376e5b82fb", "build/assets/ba_data/data/languages/persian.json": "517217e679c768fff4ffec7f8000ab77", "build/assets/ba_data/data/languages/piratespeak.json": "e93ca3bed6c5218e4788021514dbde76", "build/assets/ba_data/data/languages/polish.json": "993b612c5854fc42a78726ed09c65251", - "build/assets/ba_data/data/languages/portuguese.json": "99eaba2900ab66b05f0e9f22da4792a2", + "build/assets/ba_data/data/languages/portuguese.json": "e9d49c3287ba7011ffd526a9dc1fe2a5", "build/assets/ba_data/data/languages/romanian.json": "b04345d8c7631d657a69c73eb7be755a", "build/assets/ba_data/data/languages/russian.json": "7164b2e1f9f2c16604a0c6eac968577c", "build/assets/ba_data/data/languages/serbian.json": "623fa4129a1154c2f32ed7867e56ff6a", "build/assets/ba_data/data/languages/slovak.json": "c11c29708b3742cdc2a92b4fa0d6d29f", - "build/assets/ba_data/data/languages/spanish.json": "950c0d90697849d393e334e50ca8cba8", + "build/assets/ba_data/data/languages/spanish.json": "4b77db2a5342767e5eda24bfff4a7549", "build/assets/ba_data/data/languages/swedish.json": "3b179e7333183c70adb0811246b09959", "build/assets/ba_data/data/languages/tamil.json": "ead39b864228696a9b0d19344bc4b5ec", "build/assets/ba_data/data/languages/thai.json": "383540a1e9c7c131ac579f51afc87471", - "build/assets/ba_data/data/languages/turkish.json": "f4c3e07275180114d951c002be5ef101", + "build/assets/ba_data/data/languages/turkish.json": "457b05da532950390e19e7e5ce7f1d3f", "build/assets/ba_data/data/languages/ukrainian.json": "0db55824759119aca74d2ee8ffe6daae", "build/assets/ba_data/data/languages/venetian.json": "acea003316bef657925d776dd460e713", "build/assets/ba_data/data/languages/vietnamese.json": "cc578c670bfb9855f93bbdc51922d267", @@ -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": "e24bb1259608c728a356750e81c536e6", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "2f34a75859192d79062ddcef8b53959a", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "188c2627da68618f1757d7c6264c631a", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "a5e1677bee69b8cdc49a34009dd100c1", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "48991687444dd243c6031e3cee4a1fa8", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "6d664808b8c7644b32c41b25eeca0143", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "6c0ba3f4be9540c30fc09f13e8524fa4", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "378faae22a13d5ef4446fc3c6bb1ef90", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "f41cd399c703dc097d5321a39fcc0ac3", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "b23c4ad8cc56228d58dab66e1387b615", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "331c5320a5a5d0908d1ac36e2ad01242", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "48fed8f481ad390c12b094a41a0d07ac", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "94c6c1ea2bda02fe7f1fa156248692c9", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "2525b8c3ab7e5cb2481f6d8157f10042", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "9325b076f45b5cbe258344ce01adb2cc", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "51a1b1ba2304004bf4d08642e3e2cca8", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "190cf431fb58f58a90c3b1f1b3b2cd8e", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "d52a35acfdf26e2bec59bafa1cf1a9cd", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "790fbee4aa460212dcbc09ce0a133dd7", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "6eae53649da1f422d33132f4c0b38c1f", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "d22dac1f95d99902e73eb7e704f7a77b", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "17a58dde669858b88329f8526b0e20d4", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "472f1ba85c258391fa6c67627ac957d2", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "ff14729577a1a0ddd9609235e4b93f7b", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "a0376d99830ae4818eea852ae4f241ee", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "f338b429a183182d8bde539b710ae07a", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "bfcd3a32d494ca064bc3cbfb8fc7e110", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "e241c83ef781822756452349ecf973cd", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "aa38f6679f6a89a1ef8534671230bcf1", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "2c3ca2e9f5f845cfaf18231a78e21c24", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "edaa517ca583975d8d46de3ce7426cfb", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "cdc00ff8e151989a643bb33f314d9cc8", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "37c5f795ccbaeffeb5d6ede4fe9f3c19", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "2ee184af9b80d60afea7f97aba29cb16", @@ -4202,14 +4202,14 @@ "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "314516411d5ac8e991a6f742f399d4de", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "d258789fd7bdc5092aab87ccb4601921", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "df2bc18bde4af2d0aa05d2696ed28060", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "ddb90a0e869711ca95b53e44f97ed06e", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "0f1e187828da6902b69f0fb87bda4e56", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "b850a9e3104f7624360c0b72e4bd64be", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "3e85e624989f770aefbdbb1c2e6fcaae", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "d9e8a6fbf09896edd8cddf906ccc6afc", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "43c98fe2b7735cf63a1e24b74259b623", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "68974f508f5328f37f675c42c06b406a", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "af09bfcde702cc15a1f9c434aecb60b8", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "6e2d4f66f04bde2c84188bbe6a2f3253", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "110e2b4178f61803b7ec63a5b0f37c06", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "bb340505487b31d30514990605db5395", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "a0181b1ba3e6c44f1d075d38b8f49c10", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "457e62f80aa030317512f744a60eb3fa", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "7f3805e26422a37c2fee915bb4ebe4de", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "3acf5b6457fff747908657c683e70bf1", "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 5efcda5a8..ee2edb3e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.37 (build 22251, api 9, 2025-01-25) +### 1.7.37 (build 22252, api 9, 2025-01-25) - 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 907068d2f..475bb66a3 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -53,7 +53,7 @@ # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 22251 +TARGET_BALLISTICA_BUILD = 22252 TARGET_BALLISTICA_VERSION = '1.7.37' diff --git a/src/assets/ba_data/python/bauiv1lib/playlist/addgame.py b/src/assets/ba_data/python/bauiv1lib/playlist/addgame.py index 993e359ac..0173b8291 100644 --- a/src/assets/ba_data/python/bauiv1lib/playlist/addgame.py +++ b/src/assets/ba_data/python/bauiv1lib/playlist/addgame.py @@ -26,30 +26,44 @@ def __init__( self._r = 'addGameWindow' assert bui.app.classic is not None uiscale = bui.app.ui_v1.uiscale - self._width = 750 if uiscale is bui.UIScale.SMALL else 650 - x_inset = 50 if uiscale is bui.UIScale.SMALL else 0 - yoffs = -44 if uiscale is bui.UIScale.SMALL else 0 + self._width = 900 if uiscale is bui.UIScale.SMALL else 650 self._height = ( - 400 + 1200.0 if uiscale is bui.UIScale.SMALL - else 400 if uiscale is bui.UIScale.MEDIUM else 460 + else 450.0 if uiscale is bui.UIScale.MEDIUM else 500.0 ) self._scroll_width = 210 + # Do some fancy math to fill all available screen area up to the + # size of our backing container. This lets us fit to the exact + # screen shape at small ui scale. + screensize = bui.get_virtual_screen_size() + scale = ( + 2.4 + if uiscale is bui.UIScale.SMALL + else 1.35 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 - 50, screensize[0] / scale) + target_height = min(self._height - 70, 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 + 5.0 + x_inset = 0.5 * self._width - 0.5 * target_width + super().__init__( root_widget=bui.containerwidget( size=(self._width, self._height), - scale=( - 1.95 - if uiscale is bui.UIScale.SMALL - else 1.5 if uiscale is bui.UIScale.MEDIUM else 1.0 - ), - stack_offset=(0, 1) if uiscale is bui.UIScale.SMALL else (0, 0), + scale=scale, toolbar_visibility='menu_minimal', ), transition=transition, origin_widget=origin_widget, + # We're affected by screen size only at small ui-scale. + refresh_on_screen_size_changes=uiscale is bui.UIScale.SMALL, ) if uiscale is bui.UIScale.SMALL: @@ -57,16 +71,20 @@ def __init__( else: self._back_button = bui.buttonwidget( parent=self._root_widget, - position=(58 + x_inset, self._height - 53 + yoffs), + position=(58 + x_inset, yoffs - 53), size=(60, 48), label=bui.charstr(bui.SpecialChar.BACK), autoselect=True, button_type='backSmall', on_activate_call=self.main_window_back, ) + self._select_button = select_button = bui.buttonwidget( parent=self._root_widget, - position=(self._width - (172 + x_inset), self._height - 50 + yoffs), + position=( + x_inset + target_width - 172, + yoffs - 50, + ), autoselect=True, size=(160, 60), scale=0.75, @@ -82,7 +100,7 @@ def __init__( bui.textwidget( parent=self._root_widget, - position=(self._width * 0.5, self._height - 28 + yoffs), + position=(self._width * 0.5, yoffs - 28), size=(0, 0), scale=1.0, text=bui.Lstr(resource=f'{self._r}.titleText'), @@ -91,7 +109,7 @@ def __init__( maxwidth=250, v_align='center', ) - v = self._height - 64 + yoffs + v = yoffs - 64 self._selected_title_text = bui.textwidget( parent=self._root_widget, @@ -115,11 +133,9 @@ def __init__( h_align='left', ) - scroll_height = self._height - ( - 160 if uiscale is bui.UIScale.SMALL else 100 - ) + scroll_height = target_height - 60 - v = self._height - 60 + yoffs + v = yoffs - 60 self._scrollwidget = bui.scrollwidget( parent=self._root_widget, @@ -260,7 +276,7 @@ def _on_get_more_games_press(self) -> None: from bauiv1lib.store.browser import StoreBrowserWindow # No-op if we're not in control. - if self.main_window_has_control(): + if not self.main_window_has_control(): return plus = bui.app.plus diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index 362f69c3c..7b1a3df17 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 = 22251; +const int kEngineBuildNumber = 22252; const char* kEngineVersion = "1.7.37"; const int kEngineApiVersion = 9;