diff --git a/.efrocachemap b/.efrocachemap index b6dd77ac..b662c580 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/04/0a/c4f7d2794b018593ab0b2bcb07f0", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/06/4d/18777c9a2eb2207a2891a2837a70", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/81/90/23ab1ecc8c55267bd904a9c05344", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/86/81/74172efe05c0e0508abf24e2de32", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/f5/92/636aa7d2257db81d98bd17d43ffd", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/de/25/74be4875c2a0e22b813a4e1a103b", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/49/5f/b29bb65369040892fe6601801637", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/c3/3f/c37ac3c65ac65f171af9313a502a", @@ -440,7 +440,7 @@ "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/9a/3d/9aff685d04d2e1cabb2f9ddafcf3", "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/33/04/b1c54ce2b8979cc983aecc781228", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/0a/84/bbb6ed2abf66509406f534cbbb52", - "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/30/f9/b4f4e8ff8e3c8372162b2c98f3e1", + "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/1e/67/f8d1d6579698c10af9da2ecb62d9", "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/88/4b/6745a1a58220772e259f0de51196", "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/42/b5/7612cce15fe4555889585108b3ef", "assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/44/3c/7cc06ca8d5475e1687d0ed05bdbf", @@ -3934,14 +3934,14 @@ "assets/build/windows/Win32/vcruntime140d.dll": "https://files.ballistica.net/cache/ba1/50/8d/bc2600ac9491f1b14d659709451f", "build/prefab/linux-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ac/96/c3b9934061393fe09cc90ff24b8d", "build/prefab/linux-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/38/2b/5641b3b40846f74f232771ac0457", - "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/12/0a/ea925f186b90fc6825826a172ff4", - "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/33/c6/eef5bce22b04b76d250086bf0f8e", - "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/bf/9c/f478ef45dd97e24820875692febf", - "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d1/a1/1abc324a112757d413b783b4604f", - "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/a0/1b/926ca3d53ed7b3a5c915f6cef903", - "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e2/1c/b15ca147f7fde42f92c7178bc8b1", - "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/ec/cd/23e1c5e72dc5ec432f1d4453246c", - "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/ff/a9/3aac029e7bf8511eb3cf0a40a454", - "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/a0/04/8274ec50900ee6ba4bc68960f074", - "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/98/9f/1a878cf5afa75ce59130ecf39d3b" + "build/prefab/linux/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/6e/7e/56adde97a5cb545933bdd52700d9", + "build/prefab/linux/release/ballisticacore": "https://files.ballistica.net/cache/ba1/3c/f9/d971d471660647f1eacb768f0d10", + "build/prefab/mac-server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ef/b7/aa17c70752baab2bd4ea970b7b2d", + "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/43/77/27920088a7fb8490a833623894a1", + "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/70/3a/36ff319dbed727b6bd148073e278", + "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/83/81/5d46cb2627d0ae1f0c59a9dd123a", + "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/3a/8f/502e7fef458bb05da2864f4724ea", + "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/60/38/2d0e9f0cf486bae30056f3d3c11a", + "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/37/a6/ae4e2bf9c60fc0cbfd66136dc344", + "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/02/f4/907cfc73510e071f9ab5ca914646" } \ No newline at end of file diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 53679d5c..cc801a97 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -29,8 +29,8 @@ achname achs acinstance - ack'ed ack + ack'ed acked acks acnt @@ -151,8 +151,8 @@ bacommon badguy bafoundation - ballistica's ballistica + ballistica's ballisticacore ballisticacorecb bamaster @@ -793,8 +793,8 @@ gamedata gameinstance gamemap - gamepad's gamepad + gamepad's gamepadadvanced gamepads gamepadselect @@ -1177,8 +1177,8 @@ lsqlite lssl lstart - lstr's lstr + lstr's lstrs lsval ltex @@ -1803,8 +1803,8 @@ sessionname sessionplayer sessionplayers - sessionteam's sessionteam + sessionteam's sessionteams sessiontype setactivity @@ -2135,8 +2135,8 @@ txtw typeargs typecheck - typechecker's typechecker + typechecker's typedval typeshed typestr diff --git a/docs/ba_module.md b/docs/ba_module.md index a4b30a75..8f282d8e 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -

last updated on 2020-10-02 for Ballistica version 1.5.26 build 20194

+

last updated on 2020-10-09 for Ballistica version 1.5.26 build 20195

This page documents the Python classes and functions in the 'ba' module, which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please let me know. Happy modding!


diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index 6ffc85c2..a977a442 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -29,9 +29,8 @@ namespace ballistica { // These are set automatically via script; don't change here. -const int kAppBuildNumber = 20195; +const int kAppBuildNumber = 20196; const char* kAppVersion = "1.5.26"; -const char* kBlessingHash = nullptr; // Our standalone globals. // These are separated out for easy access. @@ -178,7 +177,6 @@ auto BallisticaMain(int argc, char** argv) -> int { } } } - // printf("BLESSED? %d\n", static_cast(IsUnmodifiedBlessedBuild())); g_platform->WillExitMain(false); return g_app_globals->return_value; @@ -301,40 +299,6 @@ void SetPythonException(PyExcType python_type, const char* description) { Python::SetPythonException(python_type, description); } -auto IsUnmodifiedBlessedBuild() -> bool { - // Assume debug builds are not blessed (we'll determine this after - // we finish calcing blessing hash, but this we don't get false positives - // up until that point) - if (g_buildconfig.debug_build()) { - return false; - } - - // Return false if we're unblessed or it seems that the user is likely - // mucking around with stuff. If we just don't know yet - // (for instance if blessing has calc hasn't completed) we assume we're - // clean. - if (g_app_globals && g_app_globals->user_ran_commands) { - return false; - } - - // If they're using custom app scripts, just consider it modified. - // Otherwise can can tend to get errors in early bootstrapping before - // we've been able to calc hashes to see if things are modified. - if (g_platform && g_platform->using_custom_app_python_dir()) { - return false; - } - - // If we don't have an embedded blessing hash, we're not blessed. Duh. - if (kBlessingHash == nullptr) { - return false; - } - - // If we have an embedded hash and we've calced ours - // and it doesn't match, consider ourself modified. - return !(g_app_globals && !g_app_globals->calced_blessing_hash.empty() - && g_app_globals->calced_blessing_hash != kBlessingHash); -} - } // namespace ballistica // If desired, define main() in the global namespace. diff --git a/src/ballistica/ballistica.h b/src/ballistica/ballistica.h index b8b7a0e7..ec319921 100644 --- a/src/ballistica/ballistica.h +++ b/src/ballistica/ballistica.h @@ -38,7 +38,6 @@ namespace ballistica { extern const int kAppBuildNumber; extern const char* kAppVersion; -extern const char* kBlessingHash; // Protocol version we host games with and write replays to. // This should be incremented whenever there are changes made to the @@ -155,6 +154,7 @@ auto IsBootstrapped() -> bool; /// Create/init our internal (non-public) parts. auto CreateAppInternal() -> AppInternal*; auto AppInternalGameThreadInit() -> void; +auto AppInternalHasBlessingHash() -> bool; /// Does it appear that we are a blessed build with no known user-modifications? auto IsUnmodifiedBlessedBuild() -> bool; diff --git a/src/ballistica/core/logging.cc b/src/ballistica/core/logging.cc index 8a3f32a1..3867415f 100644 --- a/src/ballistica/core/logging.cc +++ b/src/ballistica/core/logging.cc @@ -156,7 +156,7 @@ auto Logging::DirectSendLogs(const std::string& prefix, // between blessing not being calced yet and being confirmed as un-blessed. // FIXME: should probably do this in python layer log submits too. std::string bless_calc_state; - if (kBlessingHash == nullptr) { + if (!AppInternalHasBlessingHash()) { bless_calc_state = "nointhash"; } else if (g_app_globals == nullptr) { bless_calc_state = "noglobs";