diff --git a/.efrocachemap b/.efrocachemap index 3128ed3e..ba35e5be 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -1528,9 +1528,9 @@ "build/assets/ba_data/textures/fontBig.ktx": "94b56c2488d6c9ebabfbbb740eca07dd", "build/assets/ba_data/textures/fontBig.pvr": "dff3f6c04a8c7b0bb937001640b42c8d", "build/assets/ba_data/textures/fontBig_preview.png": "f8b15cb04f0deca7774def335a72f053", - "build/assets/ba_data/textures/fontExtras.dds": "0a5a39028853c443cd88bc2492cb6ad9", - "build/assets/ba_data/textures/fontExtras.ktx": "5b14075ce3d1d29c6d5635602e2176d8", - "build/assets/ba_data/textures/fontExtras.pvr": "8cc68ca85ba327c20c45bad73b000d8c", + "build/assets/ba_data/textures/fontExtras.dds": "d2d20fdde7c6114925ba626ade35151f", + "build/assets/ba_data/textures/fontExtras.ktx": "2dde1a343493a9329792d7042116d301", + "build/assets/ba_data/textures/fontExtras.pvr": "80ab1f61fafba22ce0259177944beabf", "build/assets/ba_data/textures/fontExtras2.dds": "18063a12912dadc9528afd90d1cf2369", "build/assets/ba_data/textures/fontExtras2.ktx": "36da7f6cfbfb8d32fb14371de0a8f660", "build/assets/ba_data/textures/fontExtras2.pvr": "7a4e8e64ac05313b1782fb5b958150d0", @@ -1543,7 +1543,7 @@ "build/assets/ba_data/textures/fontExtras4.ktx": "6d872ac15e2e874c1252f63b4584722b", "build/assets/ba_data/textures/fontExtras4.pvr": "6a0a0a1a8bbbc3ee9d6b8b914e7aa697", "build/assets/ba_data/textures/fontExtras4_preview.png": "363e2647621917b3821c9068267d2516", - "build/assets/ba_data/textures/fontExtras_preview.png": "b6503267cc15e9e2524f41fabd94e773", + "build/assets/ba_data/textures/fontExtras_preview.png": "182e41ed4042207404a95e17efbdcee7", "build/assets/ba_data/textures/fontSmall0.dds": "b30bfe5f9e436be7be8b5eae6e8490c3", "build/assets/ba_data/textures/fontSmall0.ktx": "7e6058f37e6c5a4ea628f35b5f92c227", "build/assets/ba_data/textures/fontSmall0.pvr": "c66e3d6aa1f7def83aaacd8a6c9185e5", @@ -4060,26 +4060,26 @@ "build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "deab05678a29cc97b3735fe9f672f701", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "a78b8a42c3b38bf50f64883fb813e157", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "1a71f94d2c0b7d81cb1a94ec63a4740d", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "bab33040650b0b5cd6a51be0408a7eb5", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "1fdd1c91c11c00ad414cfae5b2ed8e7f", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "2562f6a76d2509727fac5e4d9dba6024", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "790e3e9dc274f62208bb4d5d9a1c5d8a", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "7edb44bdc8f02041fce95b9ef58e914f", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "31446a8bba8454055ede15de93aa3959", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "02bb6a1791ea69af7a0d3472b2fdaf00", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "0d566139dece0e13a1055f1e1718b8ee", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "7d4338020172447cca0a956b97577b52", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "e4a746112f5ec92e9d4ba63ae17a42fa", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "d81e70b56bd623ece8529ad97fb56f48", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "a9a12b47a247ff57ff70ce8188cd7eac", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "7c84daa6aaec505f4ee584d1ba81fc8e", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "0cb7e1e9f509d798b95d5111827165f5", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "40ce2fb11630bb58a33af0f6eb2b322a", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "6a396a487dcc0aef42914c6a920935fe", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f6cc0bd1decf1acc1c7cc5cfe8ca6ed3", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "a7db473017fa13d1212e9587b4bda76a", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "8ce62f899f97c32ca7352512d130c94d", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "20a42bb622efc117843164631209a38a", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "09ef551b00bda642f2e9ffd3df829528", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "f95382d735042cacc0a9b9169898eef6", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "034c45f3d8475443e3f08a8804d50c54", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "9a5a758e249512689c2636eb95c800da", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "5b35fd7bd9478df81bea9ae933f6626c", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "9b07d0576ef0210932802834ffd1e906", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "4909af00548787703b22c9378c5d55c4", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "c3015bdc3c96b6113fcd8b788de2e8f1", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "e9346722a61a9235689cd4a7584fd3f4", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "50553482d627914284738077865bba4e", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "433684a6d7a9c6d3e1e34fb7fde85233", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "2ae2760397e99d9f559cb5b9001f99ee", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "77005ff5b5551959f3666ce463b0c26e", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "86f40d9912c007bdcb422de528b79a6a", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "aafe6d208f5cbfd751ade57e434771e4", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "e7fe163c28bbc62ecf211a670cd63a0e", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "02c785d636aec2bf65250f3cb7f28f85", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "db535f0ca1e01af825f75f204fbc8928", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "97d51afca996ae15b61fd9f409a00459", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "db535f0ca1e01af825f75f204fbc8928", @@ -4096,16 +4096,16 @@ "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "452623f0495dd4375e5b5d9b80d643d5", "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "ca49b32ed573feea11613d62cd89840c", "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "452623f0495dd4375e5b5d9b80d643d5", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "8d7a27873efa3595c3209a19de05ff9d", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "54322d4265553cc935840cb2b966c18c", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "50254a1075a671d50fbb1a86aac86cb9", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "fe1eb9d9b16128058c38c46646e37a79", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "b7095b4bdeba71cb04dba2765e8d497c", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "06303398d77e04dc56badaf9f8480132", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "61f5d7b685ab8948995c4eba78b2bf3b", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "45df75b7cbfba620aa63a23a47ecd42b", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "e9494cd7208333dc6bd5cbac2e0aefc0", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "394ac61c479969f32f907202bc86015a", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "fb19dd72fc79a208fd55a5ab01fe978f", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "b1280e359206f6e626ceb33df18d1f84", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "4bd91c11238f1d135285c22c0ff68644", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "a0aaf79bb595d8449f46421f5e86f04e", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "cb0974645afa59e96d690844361514df", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "55285a142b79b7b5643b749864d64aae", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", - "src/assets/ba_data/python/babase/_mgen/enums.py": "28323912b56ec07701eda3d41a6a4101", + "src/assets/ba_data/python/babase/_mgen/enums.py": "b611c090513a21e2fe90e56582724e9d", "src/ballistica/base/mgen/pyembed/binding_base.inc": "72bfed2cce8ff19741989dec28302f3f", "src/ballistica/base/mgen/pyembed/binding_base_app.inc": "97efb93f4bfd8e8b09f2db24398e29fc", "src/ballistica/classic/mgen/pyembed/binding_classic.inc": "3ceb412513963f0818ab39c58bf292e3", diff --git a/CHANGELOG.md b/CHANGELOG.md index ba15ac98..5b90f6f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 1.7.33 (build 21753, api 8, 2024-01-05) +### 1.7.33 (build 21754, api 8, 2024-01-05) - Stress test input-devices are now a bit smarter; they won't press any buttons while UIs are up (this could cause lots of chaos if it happened). - Added a 'Show Demos When Idle' option in advanced settings. If enabled, the @@ -6,6 +6,7 @@ periodically after sitting idle at the main menu for a bit. Like an old arcade game. I added this for an upcoming conference appearance but though people might like to enable it in other cases. +- Replays now have a play/pause button alongside the speed adjustment buttons (Thanks vishal332008!) ### 1.7.32 (build 21741, api 8, 2023-12-20) - Fixed a screen message that no one will ever see (Thanks vishal332008?...) diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 330bd2ff..6f096ade 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -52,7 +52,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 21753 +TARGET_BALLISTICA_BUILD = 21754 TARGET_BALLISTICA_VERSION = '1.7.33' diff --git a/src/assets/ba_data/python/bauiv1lib/mainmenu.py b/src/assets/ba_data/python/bauiv1lib/mainmenu.py index 4cbb9bcd..4c078d11 100644 --- a/src/assets/ba_data/python/bauiv1lib/mainmenu.py +++ b/src/assets/ba_data/python/bauiv1lib/mainmenu.py @@ -514,24 +514,29 @@ class MainMenuWindow(bui.Window): size=(0, 0), scale=3.0 * t_scale, ) - btn = bui.buttonwidget( + self._pause_resume_button = btn = bui.buttonwidget( parent=self._root_widget, position=(h - b_size * 0.5, v - b_size - b_buffer_2 + v_offs), button_type='square', size=(b_size, b_size), - label='', + label=bui.charstr( + bui.SpecialChar.PLAY_BUTTON + if bs.is_replay_paused() + else bui.SpecialChar.PAUSE_BUTTON + ), autoselect=True, on_activate_call=bui.Call(self._pause_or_resume_replay), ) - self._pause_and_resume_image = bui.imagewidget( - parent=self._root_widget, - size=(b_size, b_size), - draw_controller=btn, - position=(h - b_size * 0.47, v - b_size - b_buffer_2 + v_offs), - texture=bui.gettexture( - 'pauseIcon' if bs.is_replay_paused() else 'resumeIcon' - ), - ) + # self._pause_and_resume_image = bui.imagewidget( + # parent=self._root_widget, + # size=(b_size, b_size), + # draw_controller=btn, + # position=(h - b_size * 0.47, + # v - b_size - b_buffer_2 + v_offs), + # texture=bui.gettexture( + # 'pauseIcon' if bs.is_replay_paused() else 'resumeIcon' + # ), + # ) def _refresh_not_in_game( self, positions: list[tuple[float, float, float]] @@ -1058,15 +1063,15 @@ class MainMenuWindow(bui.Window): def _pause_or_resume_replay(self) -> None: if bs.is_replay_paused(): bs.resume_replay() - bui.imagewidget( - edit=self._pause_and_resume_image, - texture=bui.gettexture('resumeIcon'), + bui.buttonwidget( + edit=self._pause_resume_button, + label=bui.charstr(bui.SpecialChar.PAUSE_BUTTON), ) else: bs.pause_replay() - bui.imagewidget( - edit=self._pause_and_resume_image, - texture=bui.gettexture('pauseIcon'), + bui.buttonwidget( + edit=self._pause_resume_button, + label=bui.charstr(bui.SpecialChar.PLAY_BUTTON), ) def _quit(self) -> None: diff --git a/src/ballistica/base/assets/assets.cc b/src/ballistica/base/assets/assets.cc index f95ebcb6..a8b59020 100644 --- a/src/ballistica/base/assets/assets.cc +++ b/src/ballistica/base/assets/assets.cc @@ -1238,6 +1238,13 @@ void Assets::InitSpecialChars() { special_char_strings_[SpecialChar::kPlayPauseButton] = "\xee\x80\x8E"; special_char_strings_[SpecialChar::kFastForwardButton] = "\xee\x80\x8F"; special_char_strings_[SpecialChar::kDpadCenterButton] = "\xee\x80\x90"; + special_char_strings_[SpecialChar::kPlayStationCrossButton] = "\xee\x80\x91"; + special_char_strings_[SpecialChar::kPlayStationCircleButton] = "\xee\x80\x92"; + special_char_strings_[SpecialChar::kPlayStationTriangleButton] = + "\xee\x80\x93"; + special_char_strings_[SpecialChar::kPlayStationSquareButton] = "\xee\x80\x94"; + special_char_strings_[SpecialChar::kPlayButton] = "\xee\x80\x95"; + special_char_strings_[SpecialChar::kPauseButton] = "\xee\x80\x96"; special_char_strings_[SpecialChar::kOuyaButtonO] = "\xee\x80\x99"; special_char_strings_[SpecialChar::kOuyaButtonU] = "\xee\x80\x9A"; diff --git a/src/ballistica/scene_v1/support/client_session.cc b/src/ballistica/scene_v1/support/client_session.cc index 7f684f0f..f796c64c 100644 --- a/src/ballistica/scene_v1/support/client_session.cc +++ b/src/ballistica/scene_v1/support/client_session.cc @@ -174,11 +174,6 @@ void ClientSession::Update(int time_advance_millisecs, double time_advance) { if (shutting_down_) { return; } - if (auto* appmode = SceneV1AppMode::GetActiveOrThrow()) { - if (appmode->is_replay_paused()) { - return; - } - } // Allow replays to modulate speed, etc. // Also plug in our more exact time-advance here instead of the old int one. diff --git a/src/ballistica/scene_v1/support/client_session_replay.cc b/src/ballistica/scene_v1/support/client_session_replay.cc index 780d3bd5..f5c63095 100644 --- a/src/ballistica/scene_v1/support/client_session_replay.cc +++ b/src/ballistica/scene_v1/support/client_session_replay.cc @@ -17,6 +17,9 @@ namespace ballistica::scene_v1 { auto ClientSessionReplay::GetActualTimeAdvanceMillisecs( double base_advance_millisecs) -> double { auto* appmode = SceneV1AppMode::GetActiveOrFatal(); + if (appmode->is_replay_paused()) { + return 0.0; + } return base_advance_millisecs * pow(2.0f, appmode->replay_speed_exponent()); } diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index b15b7809..b5a1bf9b 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 = 21753; +const int kEngineBuildNumber = 21754; const char* kEngineVersion = "1.7.33"; const int kEngineApiVersion = 8; diff --git a/src/ballistica/shared/foundation/types.h b/src/ballistica/shared/foundation/types.h index 971e5f52..a785406f 100644 --- a/src/ballistica/shared/foundation/types.h +++ b/src/ballistica/shared/foundation/types.h @@ -211,6 +211,12 @@ enum class SpecialChar : uint8_t { kPlayPauseButton, kFastForwardButton, kDpadCenterButton, + kPlayStationCrossButton, + kPlayStationCircleButton, + kPlayStationTriangleButton, + kPlayStationSquareButton, + kPlayButton, + kPauseButton, kOuyaButtonO, kOuyaButtonU, kOuyaButtonY,