diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-08 18:55:25 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-08 18:55:25 -0500 |
commit | 09e500f0c1cacc8142bbaba0f801bfcfb082ec18 (patch) | |
tree | 8477407251c1d190fe30f1c38619bb22bcec7394 /racing/multiplayer.gd | |
parent | a78ebd0916e540790141f8df64145d00c549fa2c (diff) | |
download | lingo-race-09e500f0c1cacc8142bbaba0f801bfcfb082ec18.tar.gz lingo-race-09e500f0c1cacc8142bbaba0f801bfcfb082ec18.tar.bz2 lingo-race-09e500f0c1cacc8142bbaba0f801bfcfb082ec18.zip |
logging + ack check
Diffstat (limited to 'racing/multiplayer.gd')
-rw-r--r-- | racing/multiplayer.gd | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/racing/multiplayer.gd b/racing/multiplayer.gd index 2df69c1..e740cee 100644 --- a/racing/multiplayer.gd +++ b/racing/multiplayer.gd | |||
@@ -43,6 +43,7 @@ func _ready(): | |||
43 | 43 | ||
44 | var race_manager = global.get_node("RaceManager") | 44 | var race_manager = global.get_node("RaceManager") |
45 | for packet in race_manager.held_messages: | 45 | for packet in race_manager.held_messages: |
46 | global._print("(MP) Handling held packet") | ||
46 | _handle_packet(packet) | 47 | _handle_packet(packet) |
47 | race_manager.held_messages.clear() | 48 | race_manager.held_messages.clear() |
48 | 49 | ||
@@ -178,8 +179,10 @@ func _update_lobby_members(): | |||
178 | active_lobby_members[member_id].steam_name = steam_name | 179 | active_lobby_members[member_id].steam_name = steam_name |
179 | if Steam.getLobbyMemberData(active_lobby_id, member_id, "loaded") != "true": | 180 | if Steam.getLobbyMemberData(active_lobby_id, member_id, "loaded") != "true": |
180 | everyone_ready = false | 181 | everyone_ready = false |
182 | global._print("%d is not ready" % member_id) | ||
181 | if Steam.getLobbyMemberData(active_lobby_id, member_id, "timeout") != "true": | 183 | if Steam.getLobbyMemberData(active_lobby_id, member_id, "timeout") != "true": |
182 | everyone_activated = false | 184 | everyone_activated = false |
185 | global._print("%d is not activated" % member_id) | ||
183 | for member in prior_lobby_members.values(): | 186 | for member in prior_lobby_members.values(): |
184 | if not member.steam_id in active_lobby_members: | 187 | if not member.steam_id in active_lobby_members: |
185 | member.queue_free() | 188 | member.queue_free() |
@@ -209,6 +212,7 @@ func _handle_packet(packet): | |||
209 | var remote_id = packet["steam_id_remote"] | 212 | var remote_id = packet["steam_id_remote"] |
210 | var serialized: PoolByteArray = packet["data"] | 213 | var serialized: PoolByteArray = packet["data"] |
211 | var data: Dictionary = bytes2var(serialized, false) | 214 | var data: Dictionary = bytes2var(serialized, false) |
215 | global._print("(MP) RECEIVED Packet %s" % JSON.print(data)) | ||
212 | if "global_transform" in data: | 216 | if "global_transform" in data: |
213 | _receive_member_location(remote_id, data["global_transform"]) | 217 | _receive_member_location(remote_id, data["global_transform"]) |
214 | if "message_id" in data: | 218 | if "message_id" in data: |
@@ -228,6 +232,7 @@ func _handle_packet(packet): | |||
228 | _someone_victory(Steam.getFriendPersonaName(remote_id)) | 232 | _someone_victory(Steam.getFriendPersonaName(remote_id)) |
229 | if "ack" in data: | 233 | if "ack" in data: |
230 | messages_needing_ack.erase(data["ack"]) | 234 | messages_needing_ack.erase(data["ack"]) |
235 | _update_lobby_members() | ||
231 | 236 | ||
232 | 237 | ||
233 | func _receive_member_location(member_id: int, global_transform) -> void: | 238 | func _receive_member_location(member_id: int, global_transform) -> void: |
@@ -239,6 +244,7 @@ func _receive_member_location(member_id: int, global_transform) -> void: | |||
239 | 244 | ||
240 | func _send_p2p_packet(data: Dictionary, recipient_id: int, mode: int, needs_ack: bool) -> void: | 245 | func _send_p2p_packet(data: Dictionary, recipient_id: int, mode: int, needs_ack: bool) -> void: |
241 | if recipient_id == RECIPIENT_BROADCAST_ALL: | 246 | if recipient_id == RECIPIENT_BROADCAST_ALL: |
247 | global._print("(MP) SENDING packet %s" % JSON.print(data)) | ||
242 | for member_id in active_lobby_members.keys(): | 248 | for member_id in active_lobby_members.keys(): |
243 | _send_p2p_packet(data.duplicate(), member_id, mode, needs_ack) | 249 | _send_p2p_packet(data.duplicate(), member_id, mode, needs_ack) |
244 | return | 250 | return |
@@ -263,6 +269,7 @@ func _send_p2p_packet(data: Dictionary, recipient_id: int, mode: int, needs_ack: | |||
263 | 269 | ||
264 | 270 | ||
265 | func player_loaded(): | 271 | func player_loaded(): |
272 | global._print("(MP) Player has loaded") | ||
266 | is_loaded = true | 273 | is_loaded = true |
267 | if active_lobby_id != 0: | 274 | if active_lobby_id != 0: |
268 | Steam.setLobbyMemberData(active_lobby_id, "loaded", "true") | 275 | Steam.setLobbyMemberData(active_lobby_id, "loaded", "true") |
@@ -271,6 +278,7 @@ func player_loaded(): | |||
271 | 278 | ||
272 | 279 | ||
273 | func send_timeout(): | 280 | func send_timeout(): |
281 | global._print("(MP) Player is activating") | ||
274 | is_activating = true | 282 | is_activating = true |
275 | Steam.setLobbyMemberData(active_lobby_id, "timeout", "true") | 283 | Steam.setLobbyMemberData(active_lobby_id, "timeout", "true") |
276 | _send_p2p_packet({"timeout": "true"}, RECIPIENT_BROADCAST_ALL, Steam.P2P_SEND_RELIABLE, true) | 284 | _send_p2p_packet({"timeout": "true"}, RECIPIENT_BROADCAST_ALL, Steam.P2P_SEND_RELIABLE, true) |
@@ -278,6 +286,7 @@ func send_timeout(): | |||
278 | 286 | ||
279 | 287 | ||
280 | func time_to_start(): | 288 | func time_to_start(): |
289 | global._print("(MP) Time To Start") | ||
281 | var player = get_tree().get_root().get_node("Spatial/player") | 290 | var player = get_tree().get_root().get_node("Spatial/player") |
282 | player.playable = true | 291 | player.playable = true |
283 | get_node("/root/Spatial/label").text = ( | 292 | get_node("/root/Spatial/label").text = ( |
@@ -288,6 +297,7 @@ func time_to_start(): | |||
288 | 297 | ||
289 | func player_victory(): | 298 | func player_victory(): |
290 | if !is_victory: | 299 | if !is_victory: |
300 | global._print("(MP) Victory!") | ||
291 | is_victory = true | 301 | is_victory = true |
292 | _send_p2p_packet( | 302 | _send_p2p_packet( |
293 | {"victory": "true"}, RECIPIENT_BROADCAST_ALL, Steam.P2P_SEND_RELIABLE, true | 303 | {"victory": "true"}, RECIPIENT_BROADCAST_ALL, Steam.P2P_SEND_RELIABLE, true |
@@ -297,6 +307,7 @@ func player_victory(): | |||
297 | 307 | ||
298 | func _someone_victory(name): | 308 | func _someone_victory(name): |
299 | if !victorious_players.has(name): | 309 | if !victorious_players.has(name): |
310 | global._print("(MP) Someone's victory") | ||
300 | victorious_players.append(name) | 311 | victorious_players.append(name) |
301 | 312 | ||
302 | var label = get_node("/root/Spatial/label") | 313 | var label = get_node("/root/Spatial/label") |