diff --git a/.efrocachemap b/.efrocachemap index c7bf42d8..591bbe3e 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/75/1d/868bb04cf691736035c917d02762", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/44/2a/8535b446284235cb503947ece074", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/f5/d3/8e941851c4310465646c4167afc1", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/b5/5b/63af84997e9012c1917ea298ebbb", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/12/d8/86ab6418b837b98ccdd60695c3f7", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/4c/ca/1e38748da251895ca11dcdc87107", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/49/5f/b29bb65369040892fe6601801637", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/bc/59/21bb0b4ef33c733022340c60aebf", @@ -429,13 +429,13 @@ "assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/dd/5a/14ca3ebb92a802315921e2b2b215", "assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28", "assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/5b/a3/a46a77f0cc498e1f1e369d772414", - "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/30/f3/4ef3bbaf1e5b7abe114c119ec106", + "assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/e7/8e/3553965def02a0b2362a0ed8aebe", "assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731", "assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/c7/63/f72f7f8b2004ff79b1606b040f8b", "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/ef/92/4a602f11f6dd3d0310ce98cd5538", - "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/8e/24/f070599beb7b09e1268569fa55b1", + "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/43/ee/42cf5ad52de3d4f567ec04018655", "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/17/78/3fd0dca40e632ce53d03a944e7fa", - "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/30/e7/d36b1b1eeb2ec10633281855a34c", + "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/11/56/ed2b07866104596338f7ce582d64", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/4d/4b/0790110201c9adb1b521e9a55e63", "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/e3/6f/df2600b658a163f80077bd6c8d78", "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/70/d0/36b0d655839c60c2a763bbe52332", @@ -443,7 +443,7 @@ "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/8e/3f/41e12b96fc07a623d89153b10c38", "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/62/18/c2987e85c8ce48544cfa9c29d7bb", "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/66/0b/df2cd57be4eb505876d209a673d9", - "assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/f6/d0/335b952306d211d56172b5c72d8c", + "assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/44/3c/7cc06ca8d5475e1687d0ed05bdbf", "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/33/82/be19758f3563ba6617db4736de74", "assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/e7/d8/ace32888249fc8b8cca0e2edb48b", "assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/b7/0a/fab820b96e7aa587ee56427ecdc2", @@ -4135,16 +4135,16 @@ "assets/build/windows/x64/vc_redist.x64.exe": "https://files.ballistica.net/cache/ba1/ea/19/8b8787d81abcdce158ba608cd24f", "assets/build/windows/x64/vcruntime140_1d.dll": "https://files.ballistica.net/cache/ba1/11/d8/ff6344b429b00c24d9a1930d4338", "assets/build/windows/x64/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/20/33/0825e11e6518f87ece3009309933", - "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/18/b3/8ce3edf7899253523ca4052d6822", - "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5e/3b/93d65e405633a271b532c8b0c41a", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/76/dc/51f5097955d8cf2fa7a90726ed94", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/fb/92/90dd14d0476826f68b85979130c6", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9c/75/039bc1ef241286e04cae7cf7f741", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/18/bcddf334f1236a356d1387e545e6", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b8/9d/986c79244ce3563899917bbe6b80", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/f0/f0/55696477ef4ec8844e2dac651e76", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/bc/9d/bd9670b2e4f6955089544d8cbefc", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/e2/de/a49454db24304ac508d193feac2d", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d1/6c/ad012a25d04940733b69c88da29e", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/c4/0a/21e32e240ab6ee416c098cc7520f" + "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a9/91/6f5f68ff311414a11f64291f5e5d", + "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/df/da/500d5bfe62ba1dfb46fed74f1885", + "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/ad/dbfe0a1a79c08774dbb62d651f44", + "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/2e/5c/0448f94d859f0c9aff6ac746484c", + "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/53/53/499bd0581788ace12577ffa4e563", + "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/09/5a/4e0aa4eee0945e6bcf03861ac74e", + "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/03/81/48ac08db74f2593cc88ff75b1da9", + "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/5d/a3/85b1ff72f83cef742b4eec6369c2", + "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/1f/59/555b2d780d465032756e80f269ad", + "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/c0/28/1ae99132dc301d9a57bf9dc73958", + "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/30/41/19c5adcfe23cea006d0d07cecdc0", + "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/41/ee/31a6d9e0a3dc5afdf9d94c726968" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d249d9b4..1fcea28c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ### 1.5.21 (20136) - Added a UI subsystem at ba.app.ui (containing globals/functionality that was previously directly under ba.app). And hopefully added a fix for rare state of two main menus appearing on-screen at once. +- Added options in the 'Advanced' section to disable camera shake and camera gyroscope motion. ### 1.5.20 (20126) - The ba.Session.teams and ba.Session.players lists are now ba.Session.sessionteams and ba.Session.sessionplayers. This is to help keep it clear that a Team/Player and a SessionTeam/SessionPlayer are different things now. diff --git a/assets/src/ba_data/python/bastd/ui/settings/advanced.py b/assets/src/ba_data/python/bastd/ui/settings/advanced.py index 50c5d8f6..e3fefe7f 100644 --- a/assets/src/ba_data/python/bastd/ui/settings/advanced.py +++ b/assets/src/ba_data/python/bastd/ui/settings/advanced.py @@ -82,11 +82,15 @@ class AdvancedSettingsWindow(ba.Window): self._scroll_width = self._width - (100 + 2 * x_inset) self._scroll_height = self._height - 115.0 self._sub_width = self._scroll_width * 0.95 - self._sub_height = 740.0 + self._sub_height = 724.0 if self._show_always_use_internal_keyboard: self._sub_height += 62 + self._show_disable_gyro = app.platform in {'ios', 'android'} + if self._show_disable_gyro: + self._sub_height += 42 + self._do_vr_test_button = app.vr_mode self._do_net_test_button = True self._extra_button_spacing = self._spacing * 2.5 @@ -359,6 +363,29 @@ class AdvancedSettingsWindow(ba.Window): scale=1.0, maxwidth=430) + v -= 42 + self._disable_camera_shake_check_box = ConfigCheckBox( + parent=self._subcontainer, + position=(50, v), + size=(self._sub_width - 100, 30), + configkey='Disable Camera Shake', + displayname=ba.Lstr(resource=self._r + '.disableCameraShakeText'), + scale=1.0, + maxwidth=430) + + self._disable_gyro_check_box: Optional[ConfigCheckBox] = None + if self._show_disable_gyro: + v -= 42 + self._disable_gyro_check_box = ConfigCheckBox( + parent=self._subcontainer, + position=(50, v), + size=(self._sub_width - 100, 30), + configkey='Disable Camera Gyro', + displayname=ba.Lstr(resource=self._r + + '.disableCameraGyroscopeMotionText'), + scale=1.0, + maxwidth=430) + self._always_use_internal_keyboard_check_box: Optional[ConfigCheckBox] if self._show_always_use_internal_keyboard: v -= 42 @@ -414,7 +441,7 @@ class AdvancedSettingsWindow(ba.Window): v -= self._spacing * 2.0 - btn = self._modding_guide_button = ba.buttonwidget( + self._modding_guide_button = ba.buttonwidget( parent=self._subcontainer, position=(self._sub_width / 2 - this_button_width / 2, v - 10), size=(this_button_width, 60), @@ -425,33 +452,6 @@ class AdvancedSettingsWindow(ba.Window): ba.open_url, 'http://www.froemling.net/docs/bombsquad-modding-guide')) - v -= self._spacing * 1.8 - - self._enable_package_mods_checkbox = ConfigCheckBox( - parent=self._subcontainer, - position=(80, v), - size=(self._sub_width - 100, 30), - configkey='Enable Package Mods', - autoselect=True, - value_change_call=ba.WeakCall(self._show_restart_needed), - displayname=ba.Lstr(resource=self._r + '.enablePackageModsText'), - scale=1.0, - maxwidth=400) - ccb = self._enable_package_mods_checkbox.widget - ba.widget(edit=btn, down_widget=ccb) - ba.widget(edit=ccb, up_widget=btn) - ba.textwidget(parent=self._subcontainer, - position=(90, v - 10), - size=(0, 0), - text=ba.Lstr(resource=self._r + - '.enablePackageModsDescriptionText'), - maxwidth=400, - flatness=1.0, - scale=0.65, - color=(0.4, 0.9, 0.4, 0.8), - h_align='left', - v_align='center') - v -= self._spacing * 0.6 self._vr_test_button: Optional[ba.Widget] @@ -492,11 +492,6 @@ class AdvancedSettingsWindow(ba.Window): text_scale=1.0, on_activate_call=self._on_benchmark_press) - ba.widget(edit=self._vr_test_button if self._vr_test_button is not None - else self._net_test_button if self._net_test_button - is not None else self._benchmarks_button, - up_widget=cbw) - for child in self._subcontainer.get_children(): ba.widget(edit=child, show_buffer_bottom=30, show_buffer_top=20) @@ -581,10 +576,15 @@ class AdvancedSettingsWindow(ba.Window): sel_name = 'Benchmarks' elif sel == self._kick_idle_players_check_box.widget: sel_name = 'KickIdlePlayers' + elif sel == self._disable_camera_shake_check_box.widget: + sel_name = 'DisableCameraShake' elif (self._always_use_internal_keyboard_check_box is not None and sel == self._always_use_internal_keyboard_check_box.widget): sel_name = 'AlwaysUseInternalKeyboard' + elif (self._disable_gyro_check_box is not None + and sel == self._disable_gyro_check_box.widget): + sel_name = 'DisableGyro' elif (self._language_popup is not None and sel == self._language_popup.get_button()): sel_name = 'Languages' @@ -594,8 +594,6 @@ class AdvancedSettingsWindow(ba.Window): sel_name = 'ShowUserMods' elif sel == self._modding_guide_button: sel_name = 'ModdingGuide' - elif sel == self._enable_package_mods_checkbox.widget: - sel_name = 'PackageMods' elif sel == self._language_inform_checkbox: sel_name = 'LangInform' else: @@ -630,10 +628,15 @@ class AdvancedSettingsWindow(ba.Window): sel = self._benchmarks_button elif sel_name == 'KickIdlePlayers': sel = self._kick_idle_players_check_box.widget + elif sel_name == 'DisableCameraShake': + sel = self._disable_camera_shake_check_box.widget elif (sel_name == 'AlwaysUseInternalKeyboard' and self._always_use_internal_keyboard_check_box is not None): sel = self._always_use_internal_keyboard_check_box.widget + elif (sel_name == 'DisableGyro' + and self._disable_gyro_check_box is not None): + sel = self._disable_gyro_check_box.widget elif (sel_name == 'Languages' and self._language_popup is not None): sel = self._language_popup.get_button() @@ -643,8 +646,6 @@ class AdvancedSettingsWindow(ba.Window): sel = self._show_user_mods_button elif sel_name == 'ModdingGuide': sel = self._modding_guide_button - elif sel_name == 'PackageMods': - sel = self._enable_package_mods_checkbox.widget elif sel_name == 'LangInform': sel = self._language_inform_checkbox else: