Merge branch 'efroemling:main' into main

This commit is contained in:
Loup 2024-09-20 14:54:14 +05:30 committed by GitHub
commit 32b5fe0f3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 151 additions and 133 deletions

72
.efrocachemap generated
View File

@ -4096,26 +4096,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": "d75f5f4310f75e74040fd0617e64f808",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "b58ff78d4b313d2f929c4d02ee48c3fd",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "09217687f4cd81efd1061788dbc16830",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "556abef315aab24e2b29b058ec4e97fa",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "f7c223996f159ead8e57bd5d718bfd57",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "62b67a3c1dc9fa3460ad330a5e41fb57",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "a64bff24f4813517b481696442f4a66c",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "4e9fd279decc11c8f686c52474e97e4a",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "4c5ce050b46aa6e69f49351bb81ff33f",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "faaade6fa2863f1ad214ca8f6440acfe",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "8a5273647be0a4979ef7457d9a293f2a",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "29caca9434388e5256c951f7f4ff3705",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "9addb788e8b1777f91952dd3dcd7a76c",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "d4caaec3da50abfaef83e966c1e4b27e",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "e6601219689eeb0aea9775b744cefc35",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "5c91f9eb1064b3291f337014362e6290",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "b580bfe90d14ffa181484d5dcd0c2039",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "f674dcf98a27bcc90c3dfaa0df103175",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ece0bcba0c29308b4f0b4f81a383abdf",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f2b6a65b264164145f5f0c90b74807a1",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "fad0592c63dbf5623fd085b1f94dc5b5",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "b18b7d1073b180dd2b0ed563e3befda7",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "2ea095b28288927982060509174ed625",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "bdd91ad1d25228813e6123adecc16031",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "354635e2cdb27b523c229ee3c723e136",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "6a3ecdf84a34549f451cfa43e87bae28",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "5e01a1b583a53c3d475013363b6e0372",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "179905fc0b716c99c57b56179f84166e",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "be15731bcd223a8723f146d8e3153b53",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "dfc1d123a5517302f5869b151a436a7f",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "b1ef6725fdcf9071aba0f0f5e038727d",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "24ac52a8b44b2b815cce76a150f38629",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "488119eac17785da1bf534702e8ed51f",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "cb59173e8b176b98206b7f69b9a08972",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "60700ee6b7ed262215fca2c02ec5561b",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "972c6e59e59ca24c7d1739b1d7530a30",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "b04c87e6dec8916aaf3666fe0aa4d158",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "04ddbccf8268c1199d196b3dc4559e1b",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "02c9824a5e1951e8298c75196ae154e2",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "da0705f8cc9e9eece02592fd1295ea40",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "73ad3303fe1a82005918fbc5dae3446c",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "fa659b5d6119acba6570c92ce4d35ae2",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "73ad3303fe1a82005918fbc5dae3446c",
@ -4124,22 +4124,22 @@
"build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "4a4c19120f810ff5b4c7afbf11c23cf6",
"build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "ab8467107ed371eb542e0317a7e7395d",
"build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "4a4c19120f810ff5b4c7afbf11c23cf6",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "bbee8acd115ca24fc14146a9fc47c676",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "8b68b56dda9a9f421823e653b752445a",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "bbee8acd115ca24fc14146a9fc47c676",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "8b68b56dda9a9f421823e653b752445a",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "3108eb4d3a41bde33702e22fb893b218",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "3e5c5fd0a09f55ba7b05ce1e2ec7171e",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "1659535e95e3047fda529543e265ac97",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "3e5c5fd0a09f55ba7b05ce1e2ec7171e",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "b109d15f1fb304874cac3d931d43a36b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "aa913ed657a00c1806ab09a8458222b8",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "4b48897babf11db572bbd1ebb6fdfb47",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "fefa3781a2f219fd11cde65e88ddf73b",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "b64f90b8ab5fad730899089902ee9cc3",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "97046c99136410186428976d96fc6089",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "945a62b44dfe35e066264e014fe20e27",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "79eb0ddb488d8d19141d7d1afb294398",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "f4c36e72fa8d9d06f8a00684a3fc4679",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "3168e8377498df85a4adacede63d126a",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "f4c36e72fa8d9d06f8a00684a3fc4679",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "3168e8377498df85a4adacede63d126a",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "427a392c291aa9562e93c570c9f1b92c",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "3f50101eed1a5178d5630064dbafb3ee",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "78cf6a2069ab46f5f0be3f5b57a6ee70",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "3f50101eed1a5178d5630064dbafb3ee",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "4769b8b8a99ef0e08aa968af3072fa38",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "f999d258cb8c7645c5b462ff81012289",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "aee027b5a96a835583d07ea95ac6d608",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "3f7d65bf17deb2714862df46c6772e06",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "d332af0eee1178cc7c00b6e3ed5ca8a2",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "2c8f29b6b26f657c776fee12f81bd28e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "26a02edb690a0f9e5baaf0923cc1e57d",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "62d7688c402895869b794541366a3e20",
"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": "efa61468cf098f77cc6a234461d8b86d",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22004, api 9, 2024-09-05)
### 1.7.37 (build 22007, api 9, 2024-09-19)
- 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.

View File

@ -1,14 +1,14 @@
cpplint==1.6.1
dmgbuild==1.6.2
filelock==3.15.4
filelock==3.16.1
furo==2024.8.6
mypy==1.11.2
pbxproj==4.2.1
pdoc==14.6.1
pdoc==14.7.0
pur==7.3.2
pylint==3.2.7
pylsp-mypy==0.6.9
pytest==8.3.2
pytest==8.3.3
python-daemon==3.0.1
python-lsp-black==2.0.0
python-lsp-server==1.12.0
@ -17,6 +17,6 @@ Sphinx==8.0.2
tomlkit==0.13.2
types-certifi==2021.10.8.3
types-filelock==3.2.7
types-requests==2.32.0.20240905
types-requests==2.32.0.20240914
typing_extensions==4.12.2
urllib3==2.2.2
urllib3==2.2.3

View File

@ -152,14 +152,6 @@ class DevConsoleTabUI(DevConsoleTab):
def refresh(self) -> None:
from babase._mgen.enums import UIScale
# self.text(
# 'UI Testing',
# scale=0.8,
# pos=(15, 77),
# h_anchor='left',
# h_align='left',
# v_align='center',
# )
self.text(
'Make sure all interactive UI fits in the'
' virtual bounds at all UI-scales (not counting things'

View File

@ -52,7 +52,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 22004
TARGET_BALLISTICA_BUILD = 22007
TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -7,7 +7,6 @@ from __future__ import annotations
import time
import random
import weakref
import functools
from typing import TYPE_CHECKING, override
import bascenev1 as bs
@ -251,7 +250,7 @@ class MainMenuActivity(bs.Activity[bs.Player, bs.Team]):
y = -15
base_scale = 1.1
self._word_actors = []
base_delay = 1.0
base_delay = 0.8
delay = base_delay
delay_inc = 0.02
@ -631,21 +630,37 @@ class MainMenuActivity(bs.Activity[bs.Player, bs.Team]):
time_v += random.random() * 0.1
bs.animate(cmb, 'input1', keys, loop=True)
if custom_texture is None:
# Do a fun spinny animation on the logo the first time in.
if (
custom_texture is None
and bs.app.classic is not None
and not bs.app.classic.main_menu_did_initial_transition
):
jitter()
cmb = bs.newnode('combine', owner=logo.node, attrs={'size': 2})
def rotate_logo() -> None:
logo_scale = logo.node.scale
assert not isinstance(logo_scale, float)
logo.node.rotate = logo.node.rotate + 4
logo.node.scale = (logo_scale[0] - 20, logo_scale[1] - 20)
if logo.node.rotate >= 356:
self._logo_rotate_timer = None
jitter()
delay = 0.0
keys = {
delay: 5000.0 * scale,
delay + 0.4: 530.0 * scale,
delay + 0.45: 620.0 * scale,
delay + 0.5: 590.0 * scale,
delay + 0.55: 605.0 * scale,
delay + 0.6: 600.0 * scale,
}
bs.animate(cmb, 'input0', keys)
bs.animate(cmb, 'input1', keys)
cmb.connectattr('output', logo.node, 'scale')
self._logo_rotate_timer = bs.Timer(
0.001, functools.partial(rotate_logo), repeat=True
)
keys = {
delay: 100.0,
delay + 0.4: 370.0,
delay + 0.45: 357.0,
delay + 0.5: 360.0,
}
bs.animate(logo.node, 'rotate', keys)
else:
# For all other cases do a simple scale up animation.
jitter()
cmb = bs.newnode('combine', owner=logo.node, attrs={'size': 2})

View File

@ -982,7 +982,7 @@ class AccountSettingsWindow(bui.MainWindow):
# bit of spacing before the reset/sign-out section
# v -= 5
button_width = 250
button_width = 300
self._linked_accounts_text: bui.Widget | None
if show_linked_accounts_text:

View File

@ -188,11 +188,16 @@ class MainMenuWindow(bui.MainWindow):
)
if not classic.did_menu_intro:
self._tdelay = 1.7
self._t_delay_inc = 0.05
self._t_delay_play = 1.7
self._tdelay = 1.6
self._t_delay_inc = 0.03
classic.did_menu_intro = True
td1 = 2
td2 = 1
td3 = 0
td4 = -1
td5 = -2
self._width = 400.0
self._height = 200.0
@ -231,6 +236,7 @@ class MainMenuWindow(bui.MainWindow):
)
# Version/copyright info.
thistdelay = self._tdelay + td3 * self._t_delay_inc
bui.textwidget(
parent=self._root_widget,
position=(self._width * 0.5, button_y_offs - 10),
@ -245,7 +251,8 @@ class MainMenuWindow(bui.MainWindow):
),
h_align='center',
v_align='center',
transition_delay=self._t_delay_play,
# transition_delay=self._t_delay_play,
transition_delay=thistdelay,
)
# In kiosk mode, provide a button to get back to the kiosk menu.
@ -255,11 +262,12 @@ class MainMenuWindow(bui.MainWindow):
v = button_y_offs
scale = 1.0
this_b_width = self._button_width * 0.4 * scale
demo_menu_delay = (
0.0
if self._t_delay_play == 0.0
else max(0, self._t_delay_play + 0.1)
)
# demo_menu_delay = (
# 0.0
# if self._t_delay_play == 0.0
# else max(0, self._t_delay_play + 0.1)
# )
demo_menu_delay = 0.0
self._demo_menu_button = bui.buttonwidget(
parent=self._root_widget,
position=(self._width * 0.5 - this_b_width * 0.5, v + 90),
@ -289,6 +297,8 @@ class MainMenuWindow(bui.MainWindow):
- side_button_width * side_button_scale * 0.5
)
v = button_y_offs + side_button_y_offs
thistdelay = self._tdelay + td2 * self._t_delay_inc
self._gather_button = btn = bui.buttonwidget(
parent=self._root_widget,
position=(h - side_button_width * side_button_scale * 0.5, v),
@ -297,7 +307,7 @@ class MainMenuWindow(bui.MainWindow):
autoselect=self._use_autoselect,
button_type='square',
label='',
transition_delay=self._tdelay,
transition_delay=thistdelay,
on_activate_call=self._gather_press,
)
bui.textwidget(
@ -305,7 +315,7 @@ class MainMenuWindow(bui.MainWindow):
position=(h, v + side_button_height * side_button_scale * 0.25),
size=(0, 0),
scale=0.75,
transition_delay=self._tdelay,
transition_delay=thistdelay,
draw_controller=btn,
color=(0.75, 1.0, 0.7),
maxwidth=side_button_width * side_button_scale * 0.8,
@ -318,7 +328,7 @@ class MainMenuWindow(bui.MainWindow):
parent=self._root_widget,
size=(icon_size, icon_size),
draw_controller=btn,
transition_delay=self._tdelay,
transition_delay=thistdelay,
position=(
h - 0.5 * icon_size,
v
@ -327,6 +337,8 @@ class MainMenuWindow(bui.MainWindow):
),
texture=bui.gettexture('usersButton'),
)
thistdelay = self._tdelay + td1 * self._t_delay_inc
# self._tdelay += self._t_delay_inc
h -= (
side_button_width * side_button_scale * 0.5
@ -343,7 +355,7 @@ class MainMenuWindow(bui.MainWindow):
button_type='square',
scale=side_button_2_scale,
label=bui.Lstr(resource=f'{self._r}.howToPlayText'),
transition_delay=self._tdelay,
transition_delay=thistdelay,
on_activate_call=self._howtoplay,
)
self._how_to_play_button = btn
@ -353,6 +365,7 @@ class MainMenuWindow(bui.MainWindow):
v = button_y_offs
assert play_button_width is not None
assert play_button_height is not None
thistdelay = self._tdelay + td3 * self._t_delay_inc
self._play_button = start_button = bui.buttonwidget(
parent=self._root_widget,
position=(h - play_button_width * 0.5 * play_button_scale, v),
@ -361,7 +374,7 @@ class MainMenuWindow(bui.MainWindow):
scale=play_button_scale,
text_res_scale=2.0,
label=bui.Lstr(resource='playText'),
transition_delay=self._t_delay_play,
transition_delay=thistdelay,
on_activate_call=self._play_press,
)
bui.containerwidget(
@ -370,7 +383,7 @@ class MainMenuWindow(bui.MainWindow):
selected_child=start_button,
)
self._tdelay += self._t_delay_inc
# self._tdelay += self._t_delay_inc
h = (
self._width * 0.5
@ -379,6 +392,7 @@ class MainMenuWindow(bui.MainWindow):
+ side_button_width * side_button_scale * 0.5
)
v = button_y_offs + side_button_y_offs
thistdelay = self._tdelay + td4 * self._t_delay_inc
self._watch_button = btn = bui.buttonwidget(
parent=self._root_widget,
position=(h - side_button_width * side_button_scale * 0.5, v),
@ -387,7 +401,7 @@ class MainMenuWindow(bui.MainWindow):
autoselect=self._use_autoselect,
button_type='square',
label='',
transition_delay=self._tdelay,
transition_delay=thistdelay,
on_activate_call=self._watch_press,
)
bui.textwidget(
@ -395,7 +409,7 @@ class MainMenuWindow(bui.MainWindow):
position=(h, v + side_button_height * side_button_scale * 0.25),
size=(0, 0),
scale=0.75,
transition_delay=self._tdelay,
transition_delay=thistdelay,
color=(0.75, 1.0, 0.7),
draw_controller=btn,
maxwidth=side_button_width * side_button_scale * 0.8,
@ -408,7 +422,7 @@ class MainMenuWindow(bui.MainWindow):
parent=self._root_widget,
size=(icon_size, icon_size),
draw_controller=btn,
transition_delay=self._tdelay,
transition_delay=thistdelay,
position=(
h - 0.5 * icon_size,
v
@ -419,7 +433,8 @@ class MainMenuWindow(bui.MainWindow):
)
# Credits button.
self._tdelay += self._t_delay_inc
# self._tdelay += self._t_delay_inc
thistdelay = self._tdelay + td5 * self._t_delay_inc
h += side_button_width * side_button_scale * 0.5 + hspace2
v = button_y_offs + side_button_2_y_offs
@ -438,10 +453,10 @@ class MainMenuWindow(bui.MainWindow):
scale=side_button_2_scale,
autoselect=self._use_autoselect,
label=bui.Lstr(resource=f'{self._r}.creditsText'),
transition_delay=self._tdelay,
transition_delay=thistdelay,
on_activate_call=self._credits,
)
self._tdelay += self._t_delay_inc
# self._tdelay += self._t_delay_inc
self._quit_button: bui.Widget | None
if self._have_quit_button:
@ -461,13 +476,13 @@ class MainMenuWindow(bui.MainWindow):
)
),
on_activate_call=self._quit,
transition_delay=self._tdelay,
transition_delay=thistdelay,
)
bui.containerwidget(
edit=self._root_widget, cancel_button=quit_button
)
self._tdelay += self._t_delay_inc
# self._tdelay += self._t_delay_inc
else:
self._quit_button = None

View File

@ -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 = 22004;
const int kEngineBuildNumber = 22007;
const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9;

View File

@ -27,8 +27,8 @@ namespace ballistica::ui_v1 {
// ------------------------------ getsound -------------------------------------
static auto PyGetSound(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyGetSound(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
const char* name;
static const char* kwlist[] = {"name", nullptr};
@ -56,8 +56,8 @@ static PyMethodDef PyGetSoundDef = {
// ----------------------------- gettexture ------------------------------------
static auto PyGetTexture(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyGetTexture(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
const char* name;
static const char* kwlist[] = {"name", nullptr};
@ -85,8 +85,8 @@ static PyMethodDef PyGetTextureDef = {
// -------------------------- get_qrcode_texture -------------------------------
static auto PyGetQRCodeTexture(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyGetQRCodeTexture(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
const char* url;
static const char* kwlist[] = {"url", nullptr};
@ -115,8 +115,8 @@ static PyMethodDef PyGetQRCodeTextureDef = {
// ------------------------------- getmesh -------------------------------------
static auto PyGetMesh(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyGetMesh(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
const char* name;
static const char* kwlist[] = {"name", nullptr};
@ -144,8 +144,8 @@ static PyMethodDef PyGetMeshDef = {
// ----------------------------- buttonwidget ----------------------------------
static auto PyButtonWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyButtonWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
PyObject* pos_obj = Py_None;
@ -506,8 +506,8 @@ static PyMethodDef PyButtonWidgetDef = {
// --------------------------- checkboxwidget ----------------------------------
static auto PyCheckBoxWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyCheckBoxWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
PyObject* pos_obj = Py_None;
@ -680,8 +680,8 @@ static PyMethodDef PyCheckBoxWidgetDef = {
// ----------------------------- imagewidget -----------------------------------
static auto PyImageWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyImageWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
PyObject* pos_obj = Py_None;
@ -885,8 +885,8 @@ static PyMethodDef PyImageWidgetDef = {
// ----------------------------- columnwidget ----------------------------------
static auto PyColumnWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyColumnWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj{Py_None};
@ -1067,8 +1067,8 @@ static PyMethodDef PyColumnWidgetDef = {
// ---------------------------- containerwidget --------------------------------
static auto PyContainerWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyContainerWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
PyObject* pos_obj = Py_None;
@ -1417,8 +1417,8 @@ static PyMethodDef PyContainerWidgetDef = {
// ------------------------------ rowwidget ------------------------------------
static auto PyRowWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyRowWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj{Py_None};
@ -1546,8 +1546,8 @@ static PyMethodDef PyRowWidgetDef = {
// ---------------------------- scrollwidget -----------------------------------
static auto PyScrollWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj{Py_None};
PyObject* pos_obj{Py_None};
@ -1734,8 +1734,8 @@ static PyMethodDef PyScrollWidgetDef = {
// ---------------------------- hscrollwidget ----------------------------------
static auto PyHScrollWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyHScrollWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
@ -1913,8 +1913,8 @@ static PyMethodDef PyHScrollWidgetDef = {
// ------------------------------ textwidget -----------------------------------
static auto PyTextWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyTextWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* size_obj = Py_None;
PyObject* pos_obj = Py_None;
@ -2311,8 +2311,8 @@ static PyMethodDef PyTextWidgetDef = {
// ------------------------------- widget --------------------------------------
static auto PyWidgetCall(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyWidgetCall(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
PyObject* edit_obj = Py_None;
@ -2516,8 +2516,8 @@ static PyMethodDef PySetPartyWindowOpenDef = {
// -------------------------- get_special_widget -------------------------------
static auto PyGetSpecialWidget(PyObject* self, PyObject* args,
PyObject* keywds) -> PyObject* {
static auto PyGetSpecialWidget(PyObject* self, PyObject* args, PyObject* keywds)
-> PyObject* {
BA_PYTHON_TRY;
const char* name;

View File

@ -135,13 +135,8 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) {
show_icons = true;
}
bool ouya_icons = false;
bool remote_icons = false;
// Phasing out ouya stuff.
if (explicit_bool(false)) {
ouya_icons = true;
}
if (icon_type_ == IconType::kCancel && device != nullptr
&& device->IsRemoteControl()) {
remote_icons = true;
@ -151,7 +146,7 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) {
millisecs_t transition =
(birth_time_millisecs_ + transition_delay_) - current_time;
if (transition > 0) {
extra_offs_x -= static_cast<float>(transition) * 4.0f;
extra_offs_x -= static_cast<float>(transition) * 4.0f / scale();
}
if (text_width_dirty_) {
@ -380,11 +375,6 @@ void ButtonWidget::Draw(base::RenderPass* pass, bool draw_transparent) {
1.0f * mult * (1.0f), 1.0f);
c.SetTexture(
g_base->assets->SysTexture(base::SysTextureID::kBackIcon));
} else if (ouya_icons) {
c.SetColor(1.0f * mult * (1.0f), 1.0f * mult * (1.0f),
1.0f * mult * (1.0f), 1.0f);
c.SetTexture(
g_base->assets->SysTexture(base::SysTextureID::kOuyaAButton));
} else {
c.SetColor(1.5f * mult * (color_red_), 1.5f * mult * (color_green_),
1.5f * mult * (color_blue_), 1.0f);

View File

@ -155,7 +155,9 @@ def run(projroot: str, args: list[str]) -> None:
ver = lines[0].strip().replace("'", '').replace('"', '').split()[-1]
path = os.path.join(sdk_dir, 'ndk', ver)
if not os.path.isdir(path):
raise RuntimeError(f'NDK listed in gradle not found: {path}.')
raise RuntimeError(
f'NDK path listed in gradle file not found: {path}.'
)
print(path)
if command == 'get-adb-path':

View File

@ -339,13 +339,17 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None:
subprocess.run(['git', 'checkout', PY_VER_EXACT_ANDROID], check=True)
# These builds require ANDROID_NDK to be set; make sure that's the case.
os.environ['ANDROID_NDK'] = (
ndkpath = (
subprocess.check_output(
[f'{rootdir}/tools/pcommand', 'android_sdk_utils', 'get-ndk-path']
)
.decode()
.strip()
)
if not os.path.isdir(ndkpath):
raise RuntimeError(f'NDK path does not exist: "{ndkpath}".')
os.environ['ANDROID_NDK'] = ndkpath
# TEMP - hard coding old ndk for the moment; looks like libffi needs to
# be fixed to build with it. I *think* this has already been done; we just