polishing mac app store update and putting android back together

This commit is contained in:
Eric 2023-11-18 10:25:19 -08:00
parent e377f0b106
commit fa2b8f7990
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
17 changed files with 185 additions and 86 deletions

104
.efrocachemap generated
View File

@ -421,7 +421,7 @@
"build/assets/ba_data/audio/zoeOw.ogg": "74befe45a8417e95b6a2233c51992a26",
"build/assets/ba_data/audio/zoePickup01.ogg": "48ab8cddfcde36a750856f3f81dd20c8",
"build/assets/ba_data/audio/zoeScream01.ogg": "2b468aedfa8741090247f04eb9e6df55",
"build/assets/ba_data/data/langdata.json": "02522e0d2593baf2e57a97fbfbfe3368",
"build/assets/ba_data/data/langdata.json": "229f9ecdddd777a0be2471979a0a01d6",
"build/assets/ba_data/data/languages/arabic.json": "e0001d8542c904bc3c98a174f256efd9",
"build/assets/ba_data/data/languages/belarussian.json": "7fe38341815ca6ff4d95224196e7a67e",
"build/assets/ba_data/data/languages/chinese.json": "4e2f4f1f38216940953fcbee4da1563e",
@ -430,14 +430,14 @@
"build/assets/ba_data/data/languages/czech.json": "93c5fe0d884d95435da6c675f64e30e0",
"build/assets/ba_data/data/languages/danish.json": "3fd69080783d5c9dcc0af737f02b6f1e",
"build/assets/ba_data/data/languages/dutch.json": "22b44a33bf81142ba2befad14eb5746e",
"build/assets/ba_data/data/languages/english.json": "fe32cbe79483153db283e363da039a7a",
"build/assets/ba_data/data/languages/english.json": "bd43b77b1ccca059573acbde148b4767",
"build/assets/ba_data/data/languages/esperanto.json": "0e397cfa5f3fb8cef5f4a64f21cda880",
"build/assets/ba_data/data/languages/filipino.json": "afbda3adf14555e1567ee63c32e340e7",
"build/assets/ba_data/data/languages/french.json": "49ff6d211537b8003b8241438dca661d",
"build/assets/ba_data/data/languages/german.json": "450fa41ae264f29a5d1af22143d0d0ad",
"build/assets/ba_data/data/languages/gibberish.json": "00a9f70bccdfa407043e69a42e5b944c",
"build/assets/ba_data/data/languages/gibberish.json": "9aae526303a22372fe9b4cf1781520ef",
"build/assets/ba_data/data/languages/greek.json": "287c0ec437b38772284ef9d3e4fb2fc3",
"build/assets/ba_data/data/languages/hindi.json": "8ea0c58a44a24edb131d0e53b074d1f6",
"build/assets/ba_data/data/languages/hindi.json": "8848f6b0caec0fcf9d85bc6e683809ec",
"build/assets/ba_data/data/languages/hungarian.json": "796a290a8c44a1e7635208c2ff5fdc6e",
"build/assets/ba_data/data/languages/indonesian.json": "97657eb2ab75d821045387b6d7a2b52d",
"build/assets/ba_data/data/languages/italian.json": "cda5760f247500657722c279bc2f2bc7",
@ -445,16 +445,16 @@
"build/assets/ba_data/data/languages/malay.json": "832562ce997fc70704b9234c95fb2e38",
"build/assets/ba_data/data/languages/persian.json": "4f448b29ba04f2b789329600cb7f9ab7",
"build/assets/ba_data/data/languages/polish.json": "8bb8f7baa5efcf6cdd627140d209c2b2",
"build/assets/ba_data/data/languages/portuguese.json": "c738cc76396305060d4f94cb77db5bec",
"build/assets/ba_data/data/languages/portuguese.json": "93070dbcc020d6879b3a8b163bb833b4",
"build/assets/ba_data/data/languages/romanian.json": "aeebdd54f65939c2facc6ac50c117826",
"build/assets/ba_data/data/languages/russian.json": "cdaac43afde13ab622babe403b9858a4",
"build/assets/ba_data/data/languages/russian.json": "e120993371f52edd2d99f2236188933c",
"build/assets/ba_data/data/languages/serbian.json": "d7452dd72ac0e51680cb39b5ebaa1c69",
"build/assets/ba_data/data/languages/slovak.json": "27962d53dc3f7dd4e877cd40faafeeef",
"build/assets/ba_data/data/languages/spanish.json": "f73b0d4d534f030f95c00385bb06cbc1",
"build/assets/ba_data/data/languages/spanish.json": "80ea58bd3295a0252b7fdac9154aa22f",
"build/assets/ba_data/data/languages/swedish.json": "5142a96597d17d8344be96a603da64ac",
"build/assets/ba_data/data/languages/tamil.json": "b4de1a2851afe4869c82e9acd94cd89c",
"build/assets/ba_data/data/languages/thai.json": "77755219bbf5fb7eea0d6b226684f403",
"build/assets/ba_data/data/languages/turkish.json": "326bcc54b69cb6a1bda4abb732f9f56f",
"build/assets/ba_data/data/languages/turkish.json": "b1e491b70cec59cfa1057b8c5e7801b2",
"build/assets/ba_data/data/languages/ukrainian.json": "e5c861187c4c6db37d1a033f4ef3dd5a",
"build/assets/ba_data/data/languages/venetian.json": "9fe1a58d9e5dfb00f31ce3b2eb9993f4",
"build/assets/ba_data/data/languages/vietnamese.json": "921cd1e50f60fe3e101f246e172750ba",
@ -4056,50 +4056,50 @@
"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": "abab400c9116a3825a5bb90d31ebe3b7",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "5641927c9074dc4e759d3761a42dd3cc",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "113eb282e6f5d7a082f8dfc2f19db078",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "cdee95f3c6bc21f7ff3016ff3c719178",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "a20fb4fd648a6e66bc5395f48796a5b8",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "be599ec099f2a1f4109ceda6a05a8c62",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "f22486755f0c0f2b106926d5a9ee97c9",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "ca382a4fa963a50af3675c811526ba76",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "00f392858c451a8d395c7cd7958f7af7",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "1f66a8a8f8d8041667a4b6cb71baffbd",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "c4153466b51a30b444d2350156a9fbb7",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "91c3c980de79faee6854c1c88408bd0c",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "143bfda2b349f5505068dd874802413f",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "293cb9525c241d1dda224461db34b631",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "6dc3c9f9637d3f4e16d0a9093a59b1e7",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "bbce1ea501fc419f6d83882b2c283eb0",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "cceac583899afd4e97e4fd7dea2611fb",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "6ad184e11ae0b85137b37bbf2a75b331",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "a1b15a12b361ba60cead3f8045bbd545",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "1949706b21961783d428034b03982521",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "dc8d1e0f82fe799cbbacfd89bbf04498",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "c6be3757c2ee85a7f4f8a66d327a24a0",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "dc8d1e0f82fe799cbbacfd89bbf04498",
"build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "c6be3757c2ee85a7f4f8a66d327a24a0",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "859470a05f3d968031ae9843bdf818c3",
"build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "bd8926fb9d12b7f4972870efea006d54",
"build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "859470a05f3d968031ae9843bdf818c3",
"build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "bd8926fb9d12b7f4972870efea006d54",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "11eeb74f8cb307ed673768c0629ca302",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "5f6ed20081020d554b1866389136b712",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "11eeb74f8cb307ed673768c0629ca302",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "5f6ed20081020d554b1866389136b712",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "d9407d62ab82cdf25e970e3fde8971fa",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "856a05aadbe4b75baee3048296aa8eef",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "c5eb4a9161b68775876c4d19bff1cc1b",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "856a05aadbe4b75baee3048296aa8eef",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "f297a236664bf55b81f19e5c69d81b64",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "9eb9f987869a87ab1280d70c8069df6a",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "f269cab8edb50101fff358735255151d",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "2631845123a868a98ef1156c786d1cff",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "a5f59a9cd23e6b3ec18834a169d6a6e0",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "35b984001137f4bde7dc7bf4576da320",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "cf974280198d48a836b0f433ebf84b68",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "97260251b62485cc95da5b41aa90f9ca",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "04cc9672b68549229d886d3a96c559f8",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "60bc7a1b793cb8c7cc9ee2305a75953b",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "eb68b04ffb489e7f54e4b13eabc0c416",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "5a84d5cfb73f0e0ece21e1770297cbb3",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "d738dcba7e385ef2f33b7fa99f67a1cf",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "f77cca19be423f9f336e16aafd7d0a5c",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "f9b295df29fd33143b2f22f493b6bc7b",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "c001b5a1209f65915cb5fb5e535ce53f",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "e14f263b6b6de064bf511793c6daf475",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "ba8114d593ba4bba116fc2c80187e38c",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "04abddf234a1a24769a80c5338600cd0",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "2f0a86b778a4bd1e6d9030c8e487667b",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "ea3c80e71f0f9649316b25c463d0cca1",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "5466299bc6a5441e163f8b0d20cf46b8",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "2db72fb3a266978da20f771942c0522d",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "46d9588afa767ac1d42e9ea8410ce479",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "a4b700a36f77b981187292d875062fb1",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "f029c6193ff74de24294bc36c747e42e",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "c9c886f24652bccb21eae3916d156733",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "9d6dee5923fdad2444e4980421b61cff",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "d13fe92c2320101a4181492268ba70ca",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "0a2c9c29c146659e06c0d759de0470a3",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "d13fe92c2320101a4181492268ba70ca",
"build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "0a2c9c29c146659e06c0d759de0470a3",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "35ea11934b942d4e324cf33a7f7db1dd",
"build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "df851b6dd6df1ffb00695faf8e33cc5d",
"build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "35ea11934b942d4e324cf33a7f7db1dd",
"build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "df851b6dd6df1ffb00695faf8e33cc5d",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "157a0fd47c7b48c66be6058e76743620",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "9e89c86c7d5a525ce08193fced92145e",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "157a0fd47c7b48c66be6058e76743620",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "9e89c86c7d5a525ce08193fced92145e",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "0cfbed48c5d2500ae087b4a3416589f0",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "d036dfa710783e8b7948c656902660f8",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "f453e38d79316914e6caeb0eb077c439",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "d036dfa710783e8b7948c656902660f8",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "be8918e4c25df2ca78754e73e8acb2d3",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "09c0a5d4fb356b39959091185500e100",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "9fd25d104cbe1cf2c11ae5ffd45bd5b6",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "3af52572a283f2a7c1c52cb069e02828",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "c62abf065085981e6a34298abe457a59",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "acacc1c19b703e2358efde714eeab986",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "35e4e4162ba4d34cda62fef2699b20a7",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "862b132df7db2003ff505113d446e089",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "28323912b56ec07701eda3d41a6a4101",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "72bfed2cce8ff19741989dec28302f3f",

View File

@ -1,4 +1,12 @@
### 1.7.28 (build 21596, api 8, 2023-11-14)
### 1.7.29 (build 21609, api 8, 2023-11-18)
- Simply continued work on the big 1.7.28 update. I finally got the Mac App
Store version of the game updated (it had been stuck at 1.4!), and it turns
out that Apple AppStore submissions require the version number to increase
each time and not just the build number, so we may start seeing more minor
version bumps for that reason.
### 1.7.28 (build 21599, api 8, 2023-11-16)
- Turning off ticket continues on all platforms. I'll be moving the game towards
a new monetization scheme mostly based on cosmetics and this has always felt a

View File

@ -103,7 +103,8 @@ ctx.src_unchecked_paths = {
'ballisticakit-xcode/BallisticaKit Shared/Assets.xcassets/*/*.png',
'ballisticakit-xcode/BallisticaKit Shared/Assets.xcassets/*/*/*.png',
'ballisticakit-xcode/BallisticaKit Shared/Assets.xcassets/*/*/*/*/*.png',
'ballisticakit-xcode/BallisticaKit.xcodeproj/xcuserdata',
'ballisticakit-xcode/BallisticaKit.xcodeproj/'
'project.xcworkspace/xcuserdata',
'ballisticakit-android/BallisticaKit/src/*/res/*/*.png',
'ballisticakit-android/BallisticaKit/src/*/assets/ballistica_files',
'ballisticakit-android/local.properties',

View File

@ -6,7 +6,7 @@ from __future__ import annotations
import hashlib
import logging
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, assert_never
from efro.call import tpartial
from efro.error import CommunicationError
@ -199,18 +199,26 @@ class AccountV2Subsystem:
state.login_id
)
# Special case: if the user is already signed in but not with
# this implicit login, we may want to let them know that the
# 'Welcome back FOO' they likely just saw is not actually
# accurate.
# Special case: if the user is already signed in but not
# with this implicit login, let them know that the 'Welcome
# back FOO' they likely just saw is not actually accurate.
if (
self.primary is not None
and not self.login_adapters[login_type].is_back_end_active()
):
service_str: Lstr | None
if login_type is LoginType.GPGS:
service_str = Lstr(resource='googlePlayText')
else:
elif login_type is LoginType.GAME_CENTER:
# Note: Apparently Game Center is just called 'Game
# Center' in all languages. Can revisit if not true.
# https://developer.apple.com/forums/thread/725779
service_str = Lstr(value='Game Center')
elif login_type is LoginType.EMAIL:
# Not possible; just here for exhaustive coverage.
service_str = None
else:
assert_never(login_type)
if service_str is not None:
_babase.apptimer(
2.0,

View File

@ -52,8 +52,8 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 21596
TARGET_BALLISTICA_VERSION = '1.7.28'
TARGET_BALLISTICA_BUILD = 21609
TARGET_BALLISTICA_VERSION = '1.7.29'
@dataclass

View File

@ -66,6 +66,16 @@ class UIV1Subsystem(babase.AppSubsystem):
# a more elegant way once we revamp high level UI stuff a bit.
self.selecting_private_party_playlist: bool = False
@property
def available(self) -> bool:
"""Can uiv1 currently be used?
Code that may run in headless mode, before the UI has been spun up,
while other ui systems are active, etc. can check this to avoid
likely erroring.
"""
return _bauiv1.is_available()
@property
def uiscale(self) -> babase.UIScale:
"""Current ui scale for the app."""

View File

@ -654,6 +654,9 @@ class AccountSettingsWindow(bui.Window):
position=((self._sub_width - button_width) * 0.5, v - 20),
autoselect=True,
size=(button_width, 60),
# Note: Apparently Game Center is just called 'Game Center'
# in all languages. Can revisit if not true.
# https://developer.apple.com/forums/thread/725779
label=bui.Lstr(
value='${A}${B}',
subs=[
@ -860,7 +863,7 @@ class AccountSettingsWindow(bui.Window):
button_width = 300
v -= game_service_button_space * 0.6
if game_center_active:
# Update: Apparently Game Center is just called 'Game Center'
# Note: Apparently Game Center is just called 'Game Center'
# in all languages. Can revisit if not true.
# https://developer.apple.com/forums/thread/725779
game_service_button_label = bui.Lstr(

View File

@ -26,7 +26,7 @@ class PromoCodeWindow(bui.Window):
transition = 'in_right'
width = 450
height = 230
height = 330
self._modal = modal
self._r = 'promoCodeWindow'
@ -62,17 +62,50 @@ class PromoCodeWindow(bui.Window):
iconscale=1.2,
)
v = height - 74
bui.textwidget(
parent=self._root_widget,
text=bui.Lstr(resource='codesExplainText'),
maxwidth=width * 0.9,
position=(width * 0.5, v),
color=(0.7, 0.7, 0.7, 1.0),
size=(0, 0),
scale=0.8,
h_align='center',
v_align='center',
)
v -= 60
bui.textwidget(
parent=self._root_widget,
text=bui.Lstr(
resource='supportEmailText',
subs=[('${EMAIL}', 'support@froemling.net')],
),
maxwidth=width * 0.9,
position=(width * 0.5, v),
color=(0.7, 0.7, 0.7, 1.0),
size=(0, 0),
scale=0.65,
h_align='center',
v_align='center',
)
v -= 80
bui.textwidget(
parent=self._root_widget,
text=bui.Lstr(resource=self._r + '.codeText'),
position=(22, height - 113),
position=(22, v),
color=(0.8, 0.8, 0.8, 1.0),
size=(90, 30),
h_align='right',
)
v -= 8
self._text_field = bui.textwidget(
parent=self._root_widget,
position=(125, height - 121),
position=(125, v),
size=(280, 46),
text='',
h_align='left',
@ -86,10 +119,11 @@ class PromoCodeWindow(bui.Window):
)
bui.widget(edit=btn, down_widget=self._text_field)
v -= 79
b_width = 200
self._enter_button = btn2 = bui.buttonwidget(
parent=self._root_widget,
position=(width * 0.5 - b_width * 0.5, height - 200),
position=(width * 0.5 - b_width * 0.5, v),
size=(b_width, 60),
scale=1.0,
label=bui.Lstr(

View File

@ -27,7 +27,10 @@ namespace ballistica::base {
class AppAdapterApple::ScopedAllowGraphics_ {
public:
explicit ScopedAllowGraphics_(AppAdapterApple* adapter) : adapter_{adapter} {
// We currently assume only one thread will be doing this at any given
// time; will need to add a lock if that's not always the case.
assert(!adapter_->graphics_allowed_);
// Keep graphics thread updated each time through since it can change.
adapter->graphics_thread_ = std::this_thread::get_id();
adapter->graphics_allowed_ = true;
}
@ -99,9 +102,9 @@ void AppAdapterApple::ReloadRenderer_(const GraphicsSettings* settings) {
gs->LoadRenderer();
}
void AppAdapterApple::UpdateScreenSizes_() {
assert(g_base->app_adapter->InGraphicsContext());
}
// void AppAdapterApple::UpdateScreenSizes_() {
// assert(g_base->app_adapter->InGraphicsContext());
// }
auto AppAdapterApple::TryRender() -> bool {
auto allow = ScopedAllowGraphics_(this);
@ -187,7 +190,7 @@ auto AppAdapterApple::ShouldUseCursor() -> bool {
}
auto AppAdapterApple::HasHardwareCursor() -> bool {
// (mac should be only build getting called here)
// Mac should be only build getting called here (see ShouldUseCursor).
assert(g_buildconfig.ostype_macos());
return true;

View File

@ -66,7 +66,7 @@ class AppAdapterApple : public AppAdapter {
private:
class ScopedAllowGraphics_;
void UpdateScreenSizes_();
// void UpdateScreenSizes_();
void ReloadRenderer_(const GraphicsSettings* settings);
std::thread::id graphics_thread_{};

View File

@ -239,9 +239,6 @@ void BaseFeatureSet::StartApp() {
// to avoid crashing if called early.
app_started_ = true;
// Inform anyone who wants to know that we're done starting.
platform->OnMainThreadStartAppComplete();
// As the last step of this phase, tell the logic thread to apply the app
// config which will kick off screen creation and otherwise get the ball
// rolling.

View File

@ -165,8 +165,6 @@ void BasePlatform::SetupInterruptHandling() {
#endif
}
void BasePlatform::OnMainThreadStartAppComplete() {}
void BasePlatform::OnAppStart() { assert(g_base->InLogicThread()); }
void BasePlatform::OnAppPause() { assert(g_base->InLogicThread()); }
void BasePlatform::OnAppResume() { assert(g_base->InLogicThread()); }

View File

@ -24,10 +24,6 @@ class BasePlatform {
#pragma mark APP EVENTS / LIFECYCLE --------------------------------------------
/// Called to inform the platform that all subsystems are up and running
/// and it can start talking to them.
virtual void OnMainThreadStartAppComplete();
// Logic thread callbacks.
virtual void OnAppStart();
virtual void OnAppPause();

View File

@ -39,8 +39,8 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 21596;
const char* kEngineVersion = "1.7.28";
const int kEngineBuildNumber = 21609;
const char* kEngineVersion = "1.7.29";
const int kEngineApiVersion = 8;
#if BA_MONOLITHIC_BUILD

View File

@ -2821,7 +2821,7 @@ static PyMethodDef PyIsPartyIconVisibleDef = {
"(internal)",
};
// ------------------------ is_party_icon_visible ------------------------------
// ----------------------------- toolbar_test ----------------------------------
static auto PyToolbarTest(PyObject* self) -> PyObject* {
BA_PYTHON_TRY;
@ -2843,6 +2843,31 @@ static PyMethodDef PyToolbarTestDef = {
"(internal)",
};
// ----------------------------- is_available ----------------------------------
static auto PyIsAvailable(PyObject* self) -> PyObject* {
BA_PYTHON_TRY;
BA_PRECONDITION(g_base->InLogicThread());
// Consider ourself available if the active ui delegate is us.
if (dynamic_cast<UIV1FeatureSet*>(g_base->ui->delegate()) != nullptr) {
Py_RETURN_TRUE;
} else {
Py_RETURN_FALSE;
}
BA_PYTHON_CATCH;
}
static PyMethodDef PyIsAvailableDef = {
"is_available", // name
(PyCFunction)PyIsAvailable, // method
METH_NOARGS, // flags
"is_available() -> bool\n"
"\n"
"(internal)",
};
// -----------------------------------------------------------------------------
auto PythonMethodsUIV1::GetMethods() -> std::vector<PyMethodDef> {
@ -2877,6 +2902,7 @@ auto PythonMethodsUIV1::GetMethods() -> std::vector<PyMethodDef> {
PyGetTextureDef,
PyGetMeshDef,
PyToolbarTestDef,
PyIsAvailableDef,
};
}

View File

@ -309,7 +309,22 @@ class ResourcesMakefileGenerator:
]
for size in sizes:
res = int(size[0] * size[1])
src = os.path.join('icon', 'icon_clipped_mac.png')
# The largest size gets used by the Mac App Store, and lots
# of games seem to fill their entire icon canvas instead of
# sticking with the big-sur icon size, so ours looks kinda
# small next to those if we don't do the same. Strangely,
# iOS apps in the Mac App Store also show up large like that
# (as of Nov 2023). So we use a separate as-big-as-possible
# icon for our largest size only. The downside of this is
# our icon changes in appearance if someone cranks the
# finder view options icon size slider all the way up, but
# who actually does that?
srcname = (
'icon_clipped_mac_app_store.png'
if size[0] == 512
else 'icon_clipped_mac.png'
)
src = os.path.join('icon', srcname)
dst = os.path.join(
ROOT_DIR,
f'{self.namel}-xcode',

View File

@ -42,7 +42,7 @@ OPENSSL_VER_ANDROID = '3.0.12'
LIBFFI_VER_APPLE = '3.4.4'
BZIP2_VER_APPLE = '1.0.8'
XZ_VER_APPLE = '5.4.5'
XZ_VER_APPLE = '5.4.4'
# Android repo doesn't seem to be getting updated much so manually
# bumping various versions to keep things up to date.