From 94ab992da556635160332ae33f5b5325c58a6379 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sun, 3 May 2026 09:27:40 +0200 Subject: [PATCH] =?UTF-8?q?fix(client):=20sim=5Fbridge=20=E2=80=94=20Messa?= =?UTF-8?q?gepack=20parse-order=20+=20type=20annotations=20on=20untyped=20?= =?UTF-8?q?field=20calls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Messagepack class_name ref with inline load() in _process(). Add explicit int/PackedByteArray annotations on locals derived from untyped _bridge/_server fields (pid, err, bridge_status, msg, send_err) so GDScript can type-check call sites. Co-Authored-By: Claude Sonnet 4.6 --- client/scripts/autoloads/sim_bridge.gd | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/client/scripts/autoloads/sim_bridge.gd b/client/scripts/autoloads/sim_bridge.gd index d751049a3..83e9007b0 100644 --- a/client/scripts/autoloads/sim_bridge.gd +++ b/client/scripts/autoloads/sim_bridge.gd @@ -134,7 +134,7 @@ func connect_to_sim() -> void: var game_id: String = GameState.current_game_id if not game_id.is_empty(): args.append_array(["--game-id", game_id]) - var pid := _server.start(server_path, args) + var pid: int = _server.start(server_path, args) if pid <= 0: push_error("SimBridge: failed to start server") _set_state(ConnectionState.ERROR) @@ -162,7 +162,7 @@ func disconnect_from_sim() -> void: func _try_connect() -> void: var LB := load("res://scripts/protocol/local_bridge.gd") _bridge = LB.new() - var err := _bridge.connect_to_server("127.0.0.1", server_port) + var err: int = _bridge.connect_to_server("127.0.0.1", server_port) if err != OK: push_warning( ( @@ -222,7 +222,7 @@ func _process(delta: float) -> void: # gdlint:disable=max-returns _bridge.poll() # Check connection dropped during handshake - var bridge_status := _bridge.get_status() + var bridge_status: int = _bridge.get_status() if ( bridge_status == StreamPeerTCP.STATUS_ERROR or bridge_status == StreamPeerTCP.STATUS_NONE @@ -244,13 +244,14 @@ func _process(delta: float) -> void: # gdlint:disable=max-returns return # Try to read first message - var msg := _bridge.poll_message() + var msg: PackedByteArray = _bridge.poll_message() if msg.is_empty(): return # Not ready yet, continue polling # Decode HandshakeMessage — D-192 (#875): protocol_version field dropped. # Server sends {} or a minimal dict; only structural validity is required. - var decoded: Variant = Messagepack.decode(msg) + var MP = load("res://addons/messagepack/messagepack.gd") + var decoded: Variant = MP.decode(msg) if decoded.status != null or not (decoded.value is Dictionary): var reason := "Handshake decode failed: malformed HandshakeMessage" push_error("SimBridge: %s" % reason) @@ -266,7 +267,7 @@ func _process(delta: float) -> void: # gdlint:disable=max-returns GameState.character_visual_descriptor ) if startup_bytes.size() > 0: - var send_err := _bridge.send_message(startup_bytes) + var send_err: int = _bridge.send_message(startup_bytes) if send_err != OK: var reason := "Failed to send startup message: %s" % error_string(send_err) push_error("SimBridge: %s" % reason) @@ -305,7 +306,7 @@ func _process(delta: float) -> void: # gdlint:disable=max-returns match _bridge.get_status(): StreamPeerTCP.STATUS_CONNECTED: # Receive: drain all complete messages from the bridge - var msg := _bridge.poll_message() + var msg: PackedByteArray = _bridge.poll_message() while msg.size() > 0: receive_bytes(msg) msg = _bridge.poll_message() @@ -317,7 +318,7 @@ func _process(delta: float) -> void: # gdlint:disable=max-returns if outbound.size() > 0: var encoded := Protocol.encode_player_inputs(outbound) if encoded.size() > 0: - var err := _bridge.send_message(encoded) + var err: int = _bridge.send_message(encoded) if err != OK: push_error("SimBridge: failed to send message: %s" % error_string(err)) else: