diff --git a/.efrocachemap b/.efrocachemap index 2ecdd6d8..39cc8568 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -420,7 +420,7 @@ "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/60/ad/38269b7f1c7dc20cb9a506cd0681", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/72/85/d6fc4d16b7081d91fba2850b5b10", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/e9/ae/1d674d0c086eaa0bd1c3b1db0505", - "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/d4/64/6fff42a428e5c775795c081474e6", + "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/5a/10/dae249cdd589b795fd341ebbec42", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/e2/24/5e7ea9ca5c9de4d3b7a28e53564d", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/61/03/89070ca765e06da3a419a579f503", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f8/15/e1a2fa38697417bcf2cf19cd34ef", @@ -433,12 +433,12 @@ "assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/4c/c7/0184b8178869d1a3827a1bfcd5bb", "assets/build/ba_data/data/languages/filipino.json": "https://files.ballistica.net/cache/ba1/e9/07/b2dc862601bcd70701b083d43279", "assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/2e/48/b0a8fafc5e5436e99d9a3d697d23", - "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/ef/e6/d4909f571d7473fd04055728490e", + "assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/8a/09/3e0fa9e44913b53f4dab195d3fae", "assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/8a/2a/b2bc00eed0608b2199b2bc379b2e", - "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/82/eb/37ff44af76812097f9c98f05c730", + "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/e0/04/6be14bff785255719756e0906ea9", "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/91/98/42701cd595c2f70b7484614a8f49", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/d8/f2/aa16bc336bd7660cc86c3264bfc4", - "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/23/3b/26e9be528460af952a11e98c3b68", + "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/7f/a9/db86d4c8b70f06fd8a1fe0c0511b", "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/1a/10/9563348e729d1e5c8ae8c9cbc1f2", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/a8/e9/171a904f1331fdb7b1918a0f2598", "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/df/b1/b2c9ebaad5e873ebedd365726d3d", @@ -3995,26 +3995,26 @@ "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/06/a9/6af2420bb4c2472e9ee8eb4adbbb", - "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/5a/1a/06cb8a31b90d5f6b4687f0dd900e", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ec/5a/228a7a4533f47476d7feb66eb753", - "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/34/db/161b4aff5dce8ce73dc4a4124ea6", - "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d8/71/572c6ae3b24dab621444cb9cb4b9", - "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/82/ea/742386e234f74bd27618341c8b1c", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3d/3c/f41c01c6d97baad1a2b0a5c8fe34", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/59/ad/360fb7b46011c5bb22015e8d88e7", - "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/7c/1d/807ae39cd64308fb2cc4ee3821f0", - "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e9/f3/ec8376ed0c6f53f009dd6f9c14ab", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c4/d9/bd6d53b98c90e8ea9ba9a38390ba", - "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c1/22/e76cf27c846b4bbf630d0058d244", - "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/f2/ed/59aa13c1dbd45f574d50903d7b84", - "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/d0/85/e527ac19480e8a168e0d4da742a4", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e8/9b/c35aa8a2690173004954345c879a", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/56/8d/25475ac95c66ab90193bd835a5d1", - "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/7f/f4/460bff13d91b0d61f41ecc9f9128", - "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/53/84/0439b2c18a02c33e71027d18f853", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/a4/c0/7cf3abfa3224860e96c4d4c44184", - "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/5b/e5/f2858d831cad4162dc4d6529f28e", + "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/65/20/4018efcdc22d8513850a4e1b3d10", + "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b7/89/d0ca6d018e542fbaca470e927922", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/88/77/faac6cf856b2e6162ca4db71ad17", + "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/75/a2/d480618d4ac6771cd5064859538d", + "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/82/53/8dcb2d83da87b82e5cc10cb6d0f2", + "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/b3/7f/9c207efc2274b9ea5f8f285c3d21", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/33/78/a29574c81dce7d5c5884696349dd", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4b/4d/854b0d6cd43b4a8237b3fa8b570d", + "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/52/f8/27d9fd3e145686d7fb2c70e9296d", + "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/2b/26/882108b33ceba3bc65523a3721e4", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/27/a8/124e50e5016c07860ec1a937d509", + "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/7d/51/b0c298b5a5a5fe27e1fcfa73f074", + "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/10/ea/588fb3f6884eaedf09fdc158ca71", + "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/1a/75/270911692d8c3739571b379ab60d", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/01/ff/e214812b759342bff1b7ebea610e", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/09/39/8efc28f1afa0ab986bd8f97589c5", + "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/08/d9/9c909e295fc208b7c6b6a44450ea", + "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/c0/04/feb674158bd8b2cbea99cf1d777c", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/bb/61/fc42fd653728036ac3574e74ff64", + "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/0a/33/17419665893ca5e9e7a134975e51", "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/41/b3/5a5813294b9281ca6bbb1f5caebe", "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/28/05/b6cc01e7b6762a3c8d47851cd30c", "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/f7/8c/36acf6d02d7c322aed086cc4ec3f", diff --git a/CHANGELOG.md b/CHANGELOG.md index 42740e8f..3f3bc965 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -### 1.7.9 (build 20875, api 7, 2022-09-21) +### 1.7.9 (build 20877, api 7, 2022-09-21) +- Cleaned up the efro.message system to isolate response types that are used purely internally (via a new SysResponse type). ### 1.7.8 (build 20871, api 7, 2022-09-21) - Fixed tournament scores submits which were broken in 1.7.7 (oops). diff --git a/assets/src/ba_data/python/ba/_bootstrap.py b/assets/src/ba_data/python/ba/_bootstrap.py index 6ec84868..325e4b70 100644 --- a/assets/src/ba_data/python/ba/_bootstrap.py +++ b/assets/src/ba_data/python/ba/_bootstrap.py @@ -45,7 +45,7 @@ def bootstrap() -> None: # Give a soft warning if we're being used with a different binary # version than we expect. - expected_build = 20875 + expected_build = 20877 running_build: int = env['build_number'] if running_build != expected_build: print( diff --git a/src/ballistica/ballistica.cc b/src/ballistica/ballistica.cc index c9f39df7..578bebac 100644 --- a/src/ballistica/ballistica.cc +++ b/src/ballistica/ballistica.cc @@ -32,7 +32,7 @@ namespace ballistica { // These are set automatically via script; don't modify them here. -const int kAppBuildNumber = 20875; +const int kAppBuildNumber = 20877; const char* kAppVersion = "1.7.9"; // Our standalone globals. diff --git a/tools/efro/message/_message.py b/tools/efro/message/_message.py index f74794eb..7a00070c 100644 --- a/tools/efro/message/_message.py +++ b/tools/efro/message/_message.py @@ -25,12 +25,9 @@ class Message: @classmethod def get_response_types(cls) -> list[type[Response] | None]: - """Return all message types this Message can result in when sent. + """Return all Response types this Message can return when sent. - The default implementation specifies EmptySysResponse, so messages with - no particular response needs can leave this untouched. - Note that ErrorMessage is handled as a special case and does not - need to be specified here. + The default implementation specifies a None return type. """ return [None] @@ -53,10 +50,9 @@ class SysResponse: @ioprepped @dataclass class ErrorSysResponse(SysResponse): - """Response saying some error has occurred for the send. + """SysResponse saying some error has occurred for the send. - This type is unique in that it is not returned to the user; it - instead results in a local exception being raised. + This generally results in an Exception being raised for the caller. """ class ErrorType(Enum): diff --git a/tools/efro/message/_protocol.py b/tools/efro/message/_protocol.py index 7d7e572e..86387deb 100644 --- a/tools/efro/message/_protocol.py +++ b/tools/efro/message/_protocol.py @@ -79,9 +79,8 @@ class MessageProtocol: self.response_types_by_id[r_id] = r_type self.response_ids_by_type[r_type] = r_id - # Go ahead and auto-register a few common response types - # if the user has not done so explicitly. Use unique negative - # IDs which will never change or overlap with user ids. + # Register our SysResponse types. These use negative + # IDs so as to never overlap with user Response types. def _reg_sys(reg_tp: type[SysResponse], reg_id: int) -> None: assert self.response_types_by_id.get(reg_id) is None self.response_types_by_id[reg_id] = reg_tp @@ -339,8 +338,6 @@ class MessageProtocol: f' """Protocol-specific bound sender."""\n') def _filt_tp_name(rtype: type[Response] | None) -> str: - # We accept None to equal EmptySysResponse so reflect that - # in the type annotation. return 'None' if rtype is None else rtype.__name__ # Define handler() overloads for all registered message types. @@ -437,8 +434,6 @@ class MessageProtocol: # Define handler() overloads for all registered message types. def _filt_tp_name(rtype: type[Response] | None) -> str: - # We accept None to equal EmptySysResponse so reflect that - # in the type annotation. return 'None' if rtype is None else rtype.__name__ if msgtypes: diff --git a/tools/efro/message/_receiver.py b/tools/efro/message/_receiver.py index 5bf5d869..5b23a80c 100644 --- a/tools/efro/message/_receiver.py +++ b/tools/efro/message/_receiver.py @@ -130,10 +130,6 @@ class MessageReceiver: responsetypes = tuple(None if r is type(None) else r for r in responsetypes) - # Return type of None translates to EmptySysResponse. - # responsetypes = tuple(EmptySysResponse if r is type(None) else r - # for r in responsetypes) # noqa - # Make sure our protocol has this message type registered and our # return types exactly match. (Technically we could return a subset # of the supported types; can allow this in the future if it makes