mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-29 18:53:22 +08:00
more work on making internal bits optional
This commit is contained in:
parent
57d875544a
commit
8af544b223
@ -3995,50 +3995,50 @@
|
||||
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
|
||||
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
|
||||
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e6/fa/a6d850360d1a7cbf35ceb764ad32",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/58/f9/1c7086b632a9ebdb5ba19dfab3cf",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/05/53/9039866ebcd2dd69645fcd872cd9",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/62/b5/79f78facfdd4cd86dc1d4767cc15",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3f/d4/e6c1a8f06f1d23eee27fb7164839",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/42/d1/268f4cebbbab626f668e22d08689",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/29/9f/cd098d7d87936893eafcd1cd52c0",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/35/32/0e9e8d112b8aa02e787fd72ca2e6",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/da/92/be9c4085ed3fe8cb8aeb6dd4b6b8",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/6a/65/3a80fd6a0594d157b8ab92883b2f",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ba/39/be2b8f7b86feebde32147640de7a",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/92/ad/ba0c7c1286337c1837d018fe9320",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a5/09/f4d4da0f458f26fb551f97a321c4",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b4/26/a6bc39c9413bc1d12d0d4c6a14d8",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/be/f0/b0864fb2909027994f99862af75c",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/25/0b/10f2197f805915c0124dd0948975",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d5/fc/bd1594788c70e4a1c217247c1fbb",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/98/b2/b549c884954266dad836090d53ca",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/33/b3/9ea1255d8a81a20b7cc400f0b9c0",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/15/f1/bc11435032c10e5d4f60bb6cb951",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/65/9f762ac4a1c07bbc85714f4ff487",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/60/12/7d0d2c7fa57705f26f9ee25f5eb7",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/89/8afc89527d34b8b32d792b1768cc",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/00/3b/26438d3e877a2a5b30ff0622d1d9",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/37/ed1a28f6d2f8801939c3af3f2cbe",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/84/c0/33d97960b9bbb74f3764ddfb5510",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8b/2f/dd23665f6b590f0d1392634d58fc",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/54/5d/2a9fbe5f0011bfc45e560f56376e",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/85/08/152e657b8ed6917233ecabd88813",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fa/5c/16405030ec49d878d8b6de06c665",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ec/8e/e320531f0d1f280afdb841c85667",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/4c/14/536c47d64624acdb36ccc393ecf4",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/fe/db/cf274ff81ccc70090fac58bdbdda",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d0/cc/dd5234f21a502657aeb042440f49",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8e/69/d9407dd92b1397548cd274c16b5f",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/df/83/0a461388cf1b14a7e5b8356af40f",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/42/b4/3456304a0c61e7ea54de0c714b64",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/00/cf/15cff772100169a8e17eb1e9420f",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/08/0a/3c1628d8387d54ac1afc3b946662",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/3f/d3/e6faece149393d0933f4bdc01989",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/f8/3e/266e72c426e172f39f7808931850",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/20/e5/cf23928643af4440a129b6b05ce0",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/d8/a1/ce2de181c40cad598c6f41ee50e9",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/6f/74/a733036d25bf2a4ca529b37c4dce",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/96/3f/37701d98f6fe178b6f89a8b2fb8b",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/77/93/ac338b1194ac1f67575ec5e6ae1c",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/82/6d/938e831ac3eba7129148cd383aa0",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4a/9a/39bd6327021300fff3171941c6a5",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/78/e90972b880c259b39d79286cb802",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b1/dd/d569b53533cca0e778663f9e7c08",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/1d/44/41d1018c6c45ac76627805543c8e",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2d/e3/80a9a7641fe2f9d75c30b2ddf80d",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/ab/bf/0e961b0d1392d2515a5e3401cf01",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/29/9b/2a0cbdfec96786c3ce1def4252eb",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/82/fd/feef4ba6ef02cd46a478e923c0a5",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/98/96/5dbc51c710bea2f533750935ccc8",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a9/26/f0a5ec1017a7f06d5e289ac00189",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/4b/96/fb3209202be6647b30bc240f7cf2",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/72/2d/443099b95f8c17801df53c9f4033",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d1/4c/9f2bcd8052b8333384de7c560fd8",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e9/32/244adc43265fd1627c3b3bc9bd15",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7b/5a/82619a3a9855c04dffe8abdbae6a",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/0c/9e/aa44a345c3be645f245216e27a9e",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/22/f6/99a02c69ef2d4065847ece339e9a",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ed/ab/bb1936d686208edc8c4730949632",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0b/88/beb016a2d7ff70fcf7016d8187ae",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/12/be/b10ca74c866bf5d6783672805037",
|
||||
"build/prefab/lib/linux_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/af/f2/5acd4d29a8b1991c1e09737195f9",
|
||||
"build/prefab/lib/linux_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/0f/19/279502db6206f11c8e4b5422bc34",
|
||||
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/a1/f2/99be86d804b841689a49f484d35d",
|
||||
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/00/44/dd1e2251e0215546803c9fbac444",
|
||||
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/16/81/25d134cc4a2bd4bf47fd176f0700",
|
||||
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/2a/a1/546dae6c198c49ff56ef5fad1187",
|
||||
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/01/60/bb0aae698489aefb789ad78a9340",
|
||||
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/df/fb/4f5eef097e21d2bef9c89d6fe8f0",
|
||||
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/76/d8/adc5e75eee89d891802c13b27cb0",
|
||||
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cd/d7/d96b6c39bce663f33f736f879342",
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/92/aa/398f81c2cc39c37185034c62af39",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/88/b1/3a1e67fab19230eb82ef229a1729",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/03/32/ec1822a2b5eb602885762e6fa886",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/8a/c6/59b6b07b0539d4f7430137d7ac9a",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/c9/fd/b1809da3a5d616237b549fcfa939",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/98/a9/7312d26177d831c2ba74de16db6a",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/4a/7f/99ef6b4b1443c25e19cada13e2dc",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/db/63/24f8d94eb31ea68b6e76d4224aee",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/43/01/7386ee5ed0213b10b223f37a8756",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/c1/67/8a848c47bab2063f656f6ca54294",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/7d/23/b78b2cbe0a37ec2819e281e57917",
|
||||
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/7d/3e/229a581cb2454ed856f1d8b564a7",
|
||||
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/98/12/571b2160d69d42580e8f31fa6a8d"
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
### 1.7.7 (build 20746, api 7, 2022-09-03)
|
||||
### 1.7.7 (build 20754, api 7, 2022-09-03)
|
||||
- Added `ba.app.meta.load_exported_classes()` for loading classes discovered by the meta subsystem cleanly in a background thread.
|
||||
- Improved logging of missing playlist game types.
|
||||
- Some ba.Lstr functionality can now be used in background threads.
|
||||
|
||||
@ -1 +1 @@
|
||||
58669269684775875412740144262313315598
|
||||
70054840476702184810018356968995584648
|
||||
@ -32,7 +32,7 @@ def bootstrap() -> None:
|
||||
|
||||
# Give a soft warning if we're being used with a different binary
|
||||
# version than we expect.
|
||||
expected_build = 20746
|
||||
expected_build = 20754
|
||||
running_build: int = env['build_number']
|
||||
if running_build != expected_build:
|
||||
print(
|
||||
|
||||
@ -457,7 +457,7 @@ add_executable(ballisticacore
|
||||
${BA_SRC_ROOT}/ballistica/input/remote_app.h
|
||||
${BA_SRC_ROOT}/ballistica/input/std_input_module.cc
|
||||
${BA_SRC_ROOT}/ballistica/input/std_input_module.h
|
||||
${BA_SRC_ROOT}/ballistica/internal/internal.h
|
||||
${BA_SRC_ROOT}/ballistica/internal/app_internal.h
|
||||
${BA_SRC_ROOT}/ballistica/math/matrix44f.cc
|
||||
${BA_SRC_ROOT}/ballistica/math/matrix44f.h
|
||||
${BA_SRC_ROOT}/ballistica/math/point2d.h
|
||||
|
||||
@ -448,7 +448,7 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\internal.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\point2d.h" />
|
||||
|
||||
@ -778,7 +778,7 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ballistica\internal\internal.h">
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h">
|
||||
<Filter>ballistica\internal</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc">
|
||||
|
||||
@ -443,7 +443,7 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\remote_app.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\input\std_input_module.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\internal.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h" />
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\matrix44f.h" />
|
||||
<ClInclude Include="..\..\src\ballistica\math\point2d.h" />
|
||||
|
||||
@ -778,7 +778,7 @@
|
||||
<ClInclude Include="..\..\src\ballistica\input\std_input_module.h">
|
||||
<Filter>ballistica\input</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\src\ballistica\internal\internal.h">
|
||||
<ClInclude Include="..\..\src\ballistica\internal\app_internal.h">
|
||||
<Filter>ballistica\internal</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\..\src\ballistica\math\matrix44f.cc">
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
#include "ballistica/dynamics/bg/bg_dynamics_server.h"
|
||||
#include "ballistica/game/account.h"
|
||||
#include "ballistica/graphics/graphics_server.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/media/media_server.h"
|
||||
#include "ballistica/networking/network_write_module.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
@ -22,7 +23,7 @@
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kAppBuildNumber = 20746;
|
||||
const int kAppBuildNumber = 20754;
|
||||
const char* kAppVersion = "1.7.7";
|
||||
|
||||
// Our standalone globals.
|
||||
|
||||
@ -154,44 +154,6 @@ auto GetAppInstanceUUID() -> const std::string&;
|
||||
/// Have our main threads/modules all been inited yet?
|
||||
auto IsBootstrapped() -> bool;
|
||||
|
||||
/// Internal bits.
|
||||
auto CreateAppInternal() -> AppInternal*;
|
||||
auto AppInternalPyInitialize(void* pyconfig) -> void;
|
||||
auto AppInternalPythonPostInit() -> void;
|
||||
auto AppInternalHasBlessingHash() -> bool;
|
||||
auto AppInternalPutLog(bool fatal) -> bool;
|
||||
auto AppInternalAAT() -> void;
|
||||
auto AppInternalAATE() -> void;
|
||||
auto AppInternalV1LoginDidChange() -> void;
|
||||
auto AppInternalSetAdCompletionCall(PyObject* obj, bool pass_actually_showed)
|
||||
-> void;
|
||||
auto AppInternalPushAdViewComplete(const std::string& purpose,
|
||||
bool actually_showed) -> void;
|
||||
auto AppInternalPushPublicPartyState() -> void;
|
||||
auto AppInternalPushSetFriendListCall(const std::vector<std::string>& friends)
|
||||
-> void;
|
||||
auto AppInternalDispatchRemoteAchievementList(const std::set<std::string>& achs)
|
||||
-> void;
|
||||
auto AppInternalPushAnalyticsCall(const std::string& type, int increment)
|
||||
-> void;
|
||||
auto AppInternalPushPurchaseTransactionCall(const std::string& item,
|
||||
const std::string& receipt,
|
||||
const std::string& signature,
|
||||
const std::string& order_id,
|
||||
bool user_initiated) -> void;
|
||||
auto AppInternalGetPublicAccountID() -> std::string;
|
||||
auto AppInternalOnLogicThreadPause() -> void;
|
||||
auto AppInternalDirectSendLogs(const std::string& prefix,
|
||||
const std::string& suffix, bool instant,
|
||||
int* result = nullptr) -> void;
|
||||
auto AppInternalClientInfoQuery(const std::string& val1,
|
||||
const std::string& val2,
|
||||
const std::string& val3, int build_number)
|
||||
-> void;
|
||||
auto AppInternalCalcV1PeerHash(const std::string& peer_hash_input)
|
||||
-> std::string;
|
||||
auto AppInternalV1SetClientInfo(JsonDict* dict) -> void;
|
||||
|
||||
/// Does it appear that we are a blessed build with no known user-modifications?
|
||||
auto IsUnmodifiedBlessedBuild() -> bool;
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
#include "ballistica/app/app.h"
|
||||
#include "ballistica/core/logging.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
|
||||
namespace ballistica {
|
||||
@ -81,7 +82,7 @@ auto FatalError::ReportFatalError(const std::string& message,
|
||||
if (g_app_globals == nullptr) {
|
||||
suffix = logmsg;
|
||||
}
|
||||
AppInternalDirectSendLogs(prefix, suffix, true, &result);
|
||||
g_app_internal->DirectSendLogs(prefix, suffix, true, &result);
|
||||
|
||||
// If we're able to show a fatal-error dialog synchronously, do so.
|
||||
if (g_platform && g_platform->CanShowBlockingFatalErrorDialog()) {
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
|
||||
#include "ballistica/app/app_globals.h"
|
||||
#include "ballistica/game/game.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/networking/telnet_server.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
#include "ballistica/python/python.h"
|
||||
@ -102,7 +103,7 @@ void Logging::Log(const std::string& msg, bool to_stdout, bool to_server) {
|
||||
if (g_app_globals == nullptr) {
|
||||
logsuffix = msg;
|
||||
}
|
||||
AppInternalDirectSendLogs(logprefix, logsuffix, false);
|
||||
g_app_internal->DirectSendLogs(logprefix, logsuffix, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
#include "ballistica/app/app_globals.h"
|
||||
#include "ballistica/game/game.h"
|
||||
#include "ballistica/generic/utils.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
|
||||
namespace ballistica {
|
||||
@ -176,7 +177,7 @@ void Account::SetLogin(V1AccountType account_type, V1LoginState login_state,
|
||||
}
|
||||
if (call_login_did_change) {
|
||||
// Inform a few subsystems of the change.
|
||||
AppInternalV1LoginDidChange();
|
||||
g_app_internal->V1LoginDidChange();
|
||||
g_platform->V1LoginDidChange();
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
#include "ballistica/game/session/host_session.h"
|
||||
#include "ballistica/generic/json.h"
|
||||
#include "ballistica/input/device/client_input_device.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/media/media.h"
|
||||
#include "ballistica/networking/networking.h"
|
||||
#include "ballistica/python/python.h"
|
||||
@ -390,7 +391,7 @@ void ConnectionToClient::HandleMessagePacket(
|
||||
if (!token_.empty()) {
|
||||
// Kick off a query to the master-server for this client's info.
|
||||
// FIXME: we need to add retries for this in case of failure.
|
||||
AppInternalClientInfoQuery(
|
||||
g_app_internal->ClientInfoQuery(
|
||||
token_, our_handshake_player_spec_str_ + our_handshake_salt_,
|
||||
peer_hash_, build_number_);
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "ballistica/generic/json.h"
|
||||
#include "ballistica/input/device/input_device.h"
|
||||
#include "ballistica/input/input.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/math/vector3f.h"
|
||||
#include "ballistica/media/media.h"
|
||||
#include "ballistica/networking/networking.h"
|
||||
@ -171,7 +172,7 @@ void ConnectionToHost::HandleGamePacket(const std::vector<uint8_t>& data) {
|
||||
set_peer_spec(PlayerSpec(string_buffer.data()));
|
||||
}
|
||||
|
||||
peer_hash_ = AppInternalCalcV1PeerHash(peer_hash_input_);
|
||||
peer_hash_ = g_app_internal->CalcV1PeerHash(peer_hash_input_);
|
||||
|
||||
set_can_communicate(true);
|
||||
g_game->LaunchClientSession();
|
||||
@ -196,7 +197,7 @@ void ConnectionToHost::HandleGamePacket(const std::vector<uint8_t>& data) {
|
||||
JsonDict dict;
|
||||
dict.AddNumber("b", kAppBuildNumber);
|
||||
|
||||
AppInternalV1SetClientInfo(&dict);
|
||||
g_app_internal->V1SetClientInfo(&dict);
|
||||
|
||||
// Pass the hash we generated from their handshake; they can use
|
||||
// this to make sure we're who we say we are.
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#include "ballistica/input/device/client_input_device.h"
|
||||
#include "ballistica/input/device/keyboard_input.h"
|
||||
#include "ballistica/input/device/touch_input.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/networking/network_write_module.h"
|
||||
#include "ballistica/networking/sockaddr.h"
|
||||
#include "ballistica/networking/telnet_server.h"
|
||||
@ -992,7 +993,7 @@ void Game::HandleThreadPause() {
|
||||
|
||||
// Let Python and internal layers do their thing.
|
||||
g_python->obj(Python::ObjID::kOnAppPauseCall).Call();
|
||||
AppInternalOnLogicThreadPause();
|
||||
g_app_internal->OnLogicThreadPause();
|
||||
}
|
||||
|
||||
void Game::PushPythonCall(const Object::Ref<PythonContextCall>& call) {
|
||||
@ -1164,7 +1165,7 @@ void Game::GameServiceAchievementList(
|
||||
const std::set<std::string>& achievements) {
|
||||
assert(g_python);
|
||||
assert(InLogicThread());
|
||||
AppInternalDispatchRemoteAchievementList(achievements);
|
||||
g_app_internal->DispatchRemoteAchievementList(achievements);
|
||||
}
|
||||
|
||||
void Game::PushScoresToBeatResponseCall(bool success,
|
||||
@ -1501,7 +1502,7 @@ void Game::Shutdown(bool soft) {
|
||||
HandleThreadPause();
|
||||
|
||||
// Attempt to report/store outstanding log stuff.
|
||||
AppInternalPutLog(false);
|
||||
g_app_internal->PutLog(false);
|
||||
|
||||
// Ideally we'd want to give some of the above stuff
|
||||
// a few seconds to complete, but just calling it done for now.
|
||||
@ -2138,7 +2139,7 @@ void Game::SetPublicPartyEnabled(bool val) {
|
||||
return;
|
||||
}
|
||||
public_party_enabled_ = val;
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
|
||||
void Game::SetPublicPartySize(int count) {
|
||||
@ -2151,7 +2152,7 @@ void Game::SetPublicPartySize(int count) {
|
||||
// Push our new state to the server *ONLY* if public-party is turned on
|
||||
// (wasteful otherwise).
|
||||
if (public_party_enabled_) {
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2165,7 +2166,7 @@ void Game::SetPublicPartyMaxSize(int count) {
|
||||
// Push our new state to the server *ONLY* if public-party is turned on
|
||||
// (wasteful otherwise).
|
||||
if (public_party_enabled_) {
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2179,7 +2180,7 @@ void Game::SetPublicPartyName(const std::string& name) {
|
||||
// Push our new state to the server *ONLY* if public-party is turned on
|
||||
// (wasteful otherwise).
|
||||
if (public_party_enabled_) {
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2193,7 +2194,7 @@ void Game::SetPublicPartyStatsURL(const std::string& url) {
|
||||
// Push our new state to the server *ONLY* if public-party is turned on
|
||||
// (wasteful otherwise).
|
||||
if (public_party_enabled_) {
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2207,7 +2208,7 @@ void Game::SetPublicPartyPlayerCount(int count) {
|
||||
// Push our new state to the server *ONLY* if public-party is turned on
|
||||
// (wasteful otherwise).
|
||||
if (public_party_enabled_) {
|
||||
AppInternalPushPublicPartyState();
|
||||
g_app_internal->PushPublicPartyState();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -392,10 +392,10 @@ void Player::SetInputDevice(InputDevice* input_device) {
|
||||
input_device_ = input_device;
|
||||
}
|
||||
|
||||
auto Player::GetPublicAccountID() const -> std::string {
|
||||
auto Player::GetPublicV1AccountID() const -> std::string {
|
||||
assert(InLogicThread());
|
||||
if (input_device_.exists()) {
|
||||
return input_device_->GetPublicAccountID();
|
||||
return input_device_->GetPublicV1AccountID();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ class Player : public Object {
|
||||
// If an public account-id can be determined with relative
|
||||
// certainty for this player, returns it. Otherwise returns
|
||||
// an empty string.
|
||||
auto GetPublicAccountID() const -> std::string;
|
||||
auto GetPublicV1AccountID() const -> std::string;
|
||||
|
||||
auto SetHostActivity(HostActivity* host_activity) -> void;
|
||||
auto GetHostActivity() const -> HostActivity*;
|
||||
|
||||
@ -52,7 +52,7 @@ auto ClientInputDevice::GetAccountName(bool full) const -> std::string {
|
||||
return "???";
|
||||
}
|
||||
|
||||
auto ClientInputDevice::GetPublicAccountID() const -> std::string {
|
||||
auto ClientInputDevice::GetPublicV1AccountID() const -> std::string {
|
||||
assert(InLogicThread());
|
||||
if (connection_to_client_.exists()) {
|
||||
return connection_to_client_->peer_public_account_id();
|
||||
|
||||
@ -24,7 +24,7 @@ class ClientInputDevice : public InputDevice {
|
||||
// Return player-profiles dict if available; otherwise nullptr.
|
||||
auto GetPlayerProfiles() const -> PyObject* override;
|
||||
auto GetAccountName(bool full) const -> std::string override;
|
||||
auto GetPublicAccountID() const -> std::string override;
|
||||
auto GetPublicV1AccountID() const -> std::string override;
|
||||
void AttachToLocalPlayer(Player* player) override;
|
||||
void DetachFromPlayer() override;
|
||||
void PassInputCommand(InputType type, float value) {
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
#include "ballistica/game/player.h"
|
||||
#include "ballistica/game/session/host_session.h"
|
||||
#include "ballistica/game/session/net_client_session.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/networking/networking.h"
|
||||
#include "ballistica/python/class/python_class_input_device.h"
|
||||
#include "ballistica/python/python.h"
|
||||
@ -74,13 +75,13 @@ static auto GetRandomName(const std::string& full_name) -> std::string {
|
||||
|
||||
auto InputDevice::GetPlayerProfiles() const -> PyObject* { return nullptr; }
|
||||
|
||||
auto InputDevice::GetPublicAccountID() const -> std::string {
|
||||
auto InputDevice::GetPublicV1AccountID() const -> std::string {
|
||||
assert(InLogicThread());
|
||||
|
||||
// This default implementation assumes the device is local
|
||||
// so just returns the locally signed in account's public id.
|
||||
|
||||
return AppInternalGetPublicAccountID();
|
||||
return g_app_internal->GetPublicV1AccountID();
|
||||
}
|
||||
|
||||
auto InputDevice::GetAccountName(bool full) const -> std::string {
|
||||
|
||||
@ -42,12 +42,12 @@ class InputDevice : public Object {
|
||||
/// (for remote players, returns their account).
|
||||
virtual auto GetAccountName(bool full) const -> std::string;
|
||||
|
||||
/// Return the public Account ID of the signed-in account associated
|
||||
/// Return the public V1 Account ID of the signed-in account associated
|
||||
/// with this device, or an empty string if not (yet) available.
|
||||
/// Note that in some cases there may be a delay before this value
|
||||
/// is available. (remote player account IDs are verified with the
|
||||
/// master server before becoming available, etc)
|
||||
virtual auto GetPublicAccountID() const -> std::string;
|
||||
virtual auto GetPublicV1AccountID() const -> std::string;
|
||||
|
||||
/// Returns player-profiles dict if available; otherwise nullptr.
|
||||
virtual auto GetPlayerProfiles() const -> PyObject*;
|
||||
|
||||
61
src/ballistica/internal/app_internal.h
Normal file
61
src/ballistica/internal/app_internal.h
Normal file
@ -0,0 +1,61 @@
|
||||
// Released under the MIT License. See LICENSE for details.
|
||||
|
||||
#ifndef BALLISTICA_INTERNAL_APP_INTERNAL_H_
|
||||
#define BALLISTICA_INTERNAL_APP_INTERNAL_H_
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#include "ballistica/core/types.h"
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
/// Internal bits.
|
||||
auto CreateAppInternal() -> AppInternal*;
|
||||
|
||||
/// Our high level app interface module.
|
||||
/// It runs in the main thread and is what platform wrappers
|
||||
/// should primarily interact with.
|
||||
class AppInternal {
|
||||
public:
|
||||
virtual ~AppInternal() {}
|
||||
|
||||
virtual auto PyInitialize(void* pyconfig) -> void = 0;
|
||||
virtual auto PythonPostInit() -> void = 0;
|
||||
virtual auto HasBlessingHash() -> bool = 0;
|
||||
virtual auto PutLog(bool fatal) -> bool = 0;
|
||||
virtual auto AAT() -> void = 0;
|
||||
virtual auto AATE() -> void = 0;
|
||||
virtual auto V1LoginDidChange() -> void = 0;
|
||||
virtual auto SetAdCompletionCall(PyObject* obj, bool pass_actually_showed)
|
||||
-> void = 0;
|
||||
virtual auto PushAdViewComplete(const std::string& purpose,
|
||||
bool actually_showed) -> void = 0;
|
||||
virtual auto PushPublicPartyState() -> void = 0;
|
||||
virtual auto PushSetFriendListCall(const std::vector<std::string>& friends)
|
||||
-> void = 0;
|
||||
virtual auto DispatchRemoteAchievementList(const std::set<std::string>& achs)
|
||||
-> void = 0;
|
||||
virtual auto PushAnalyticsCall(const std::string& type, int increment)
|
||||
-> void = 0;
|
||||
virtual auto PushPurchaseTransactionCall(const std::string& item,
|
||||
const std::string& receipt,
|
||||
const std::string& signature,
|
||||
const std::string& order_id,
|
||||
bool user_initiated) -> void = 0;
|
||||
virtual auto GetPublicV1AccountID() -> std::string = 0;
|
||||
virtual auto OnLogicThreadPause() -> void = 0;
|
||||
virtual auto DirectSendLogs(const std::string& prefix,
|
||||
const std::string& suffix, bool instant,
|
||||
int* result = nullptr) -> void = 0;
|
||||
virtual auto ClientInfoQuery(const std::string& val1, const std::string& val2,
|
||||
const std::string& val3, int build_number)
|
||||
-> void = 0;
|
||||
virtual auto CalcV1PeerHash(const std::string& peer_hash_input)
|
||||
-> std::string = 0;
|
||||
virtual auto V1SetClientInfo(JsonDict* dict) -> void = 0;
|
||||
};
|
||||
|
||||
} // namespace ballistica
|
||||
|
||||
#endif // BALLISTICA_INTERNAL_APP_INTERNAL_H_
|
||||
@ -1,18 +0,0 @@
|
||||
// Released under the MIT License. See LICENSE for details.
|
||||
|
||||
#ifndef BALLISTICA_INTERNAL_INTERNAL_H_
|
||||
#define BALLISTICA_INTERNAL_INTERNAL_H_
|
||||
|
||||
namespace ballistica {
|
||||
|
||||
/// Our high level app interface module.
|
||||
/// It runs in the main thread and is what platform wrappers
|
||||
/// should primarily interact with.
|
||||
class AppInternalBase {
|
||||
public:
|
||||
virtual ~AppInternalBase() {}
|
||||
};
|
||||
|
||||
} // namespace ballistica
|
||||
|
||||
#endif // BALLISTICA_INTERNAL_INTERNAL_H_
|
||||
@ -489,7 +489,7 @@ auto PythonClassSessionPlayer::GetV1AccountID(PythonClassSessionPlayer* self)
|
||||
if (!p) {
|
||||
throw Exception(PyExcType::kSessionPlayerNotFound);
|
||||
}
|
||||
std::string account_id = p->GetPublicAccountID();
|
||||
std::string account_id = p->GetPublicV1AccountID();
|
||||
if (account_id.empty()) {
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
#include "ballistica/generic/json.h"
|
||||
#include "ballistica/graphics/graphics.h"
|
||||
#include "ballistica/input/device/input_device.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/media/component/sound.h"
|
||||
#include "ballistica/platform/platform.h"
|
||||
#include "ballistica/python/python.h"
|
||||
@ -454,7 +455,7 @@ auto PyGetGameRoster(PyObject* self, PyObject* args, PyObject* keywds)
|
||||
// Let's also include a public account-id if we have one.
|
||||
std::string account_id;
|
||||
if (clientid == -1) {
|
||||
account_id = AppInternalGetPublicAccountID();
|
||||
account_id = g_app_internal->GetPublicV1AccountID();
|
||||
} else {
|
||||
auto client2 =
|
||||
g_game->connections()->connections_to_clients().find(clientid);
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
#include "ballistica/game/connection/connection_set.h"
|
||||
#include "ballistica/game/game.h"
|
||||
#include "ballistica/input/input.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/python/python.h"
|
||||
#include "ballistica/python/python_sys.h"
|
||||
#include "ballistica/ui/root_ui.h"
|
||||
@ -1908,8 +1909,8 @@ auto PyShowAd(PyObject* self, PyObject* args, PyObject* keywds) -> PyObject* {
|
||||
&on_completion_call_obj, &pass_actually_showed)) {
|
||||
return nullptr;
|
||||
}
|
||||
AppInternalSetAdCompletionCall(on_completion_call_obj,
|
||||
static_cast<bool>(pass_actually_showed));
|
||||
g_app_internal->SetAdCompletionCall(on_completion_call_obj,
|
||||
static_cast<bool>(pass_actually_showed));
|
||||
|
||||
// In cases where we support ads, store our callback and kick one off.
|
||||
// We'll then fire our callback once its done.
|
||||
@ -1918,7 +1919,7 @@ auto PyShowAd(PyObject* self, PyObject* args, PyObject* keywds) -> PyObject* {
|
||||
if (g_platform->GetHasAds()) {
|
||||
g_platform->ShowAd(purpose);
|
||||
} else {
|
||||
AppInternalPushAdViewComplete(purpose, false);
|
||||
g_app_internal->PushAdViewComplete(purpose, false);
|
||||
}
|
||||
Py_RETURN_NONE;
|
||||
BA_PYTHON_CATCH;
|
||||
@ -1938,8 +1939,8 @@ auto PyShowAd2(PyObject* self, PyObject* args, PyObject* keywds) -> PyObject* {
|
||||
&on_completion_call_obj, &pass_actually_showed)) {
|
||||
return nullptr;
|
||||
}
|
||||
AppInternalSetAdCompletionCall(on_completion_call_obj,
|
||||
static_cast<bool>(pass_actually_showed));
|
||||
g_app_internal->SetAdCompletionCall(on_completion_call_obj,
|
||||
static_cast<bool>(pass_actually_showed));
|
||||
|
||||
// In cases where we support ads, store our callback and kick one off.
|
||||
// We'll then fire our callback once its done.
|
||||
@ -1948,7 +1949,7 @@ auto PyShowAd2(PyObject* self, PyObject* args, PyObject* keywds) -> PyObject* {
|
||||
if (g_platform->GetHasAds()) {
|
||||
g_platform->ShowAd(purpose);
|
||||
} else {
|
||||
AppInternalPushAdViewComplete(purpose, false);
|
||||
g_app_internal->PushAdViewComplete(purpose, false);
|
||||
}
|
||||
Py_RETURN_NONE;
|
||||
BA_PYTHON_CATCH;
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
#include "ballistica/graphics/graphics.h"
|
||||
#include "ballistica/input/device/joystick.h"
|
||||
#include "ballistica/input/device/keyboard_input.h"
|
||||
#include "ballistica/internal/app_internal.h"
|
||||
#include "ballistica/media/component/collide_model.h"
|
||||
#include "ballistica/media/component/model.h"
|
||||
#include "ballistica/media/component/sound.h"
|
||||
@ -939,7 +940,7 @@ void Python::Reset(bool do_init) {
|
||||
}
|
||||
|
||||
// Inits our _ba module and runs Py_Initialize().
|
||||
AppInternalPyInitialize(&config);
|
||||
g_app_internal->PyInitialize(&config);
|
||||
|
||||
// Grab __main__ in case we need to use it later.
|
||||
PyObject* m;
|
||||
@ -979,7 +980,7 @@ void Python::Reset(bool do_init) {
|
||||
// Import and grab all the Python stuff we use from C++.
|
||||
#include "ballistica/generated/python_embedded/binding.inc"
|
||||
|
||||
AppInternalPythonPostInit();
|
||||
g_app_internal->PythonPostInit();
|
||||
|
||||
// Alright I guess let's pull ba in to main, since pretty
|
||||
// much all interactive commands will be using it.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user