diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-08 18:14:38 -0500 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-02-08 18:14:38 -0500 |
commit | e01b33777328b27901687fad4445685ec2b31ac7 (patch) | |
tree | 74247b0a7d3ed8b38cbf8f4c8370c8013359f6ca /racing/multiplayer.gd | |
parent | 2244fcb7caabb4edaaac23beb703b3589edd7070 (diff) | |
download | lingo-race-e01b33777328b27901687fad4445685ec2b31ac7.tar.gz lingo-race-e01b33777328b27901687fad4445685ec2b31ac7.tar.bz2 lingo-race-e01b33777328b27901687fad4445685ec2b31ac7.zip |
version num, held messages, updated lobby list
Diffstat (limited to 'racing/multiplayer.gd')
-rw-r--r-- | racing/multiplayer.gd | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/racing/multiplayer.gd b/racing/multiplayer.gd index 4255ba6..2df69c1 100644 --- a/racing/multiplayer.gd +++ b/racing/multiplayer.gd | |||
@@ -41,6 +41,11 @@ func _ready(): | |||
41 | 41 | ||
42 | # _request_lobby_list() | 42 | # _request_lobby_list() |
43 | 43 | ||
44 | var race_manager = global.get_node("RaceManager") | ||
45 | for packet in race_manager.held_messages: | ||
46 | _handle_packet(packet) | ||
47 | race_manager.held_messages.clear() | ||
48 | |||
44 | 49 | ||
45 | func _process(_delta: float) -> void: | 50 | func _process(_delta: float) -> void: |
46 | _read_p2p_packet() | 51 | _read_p2p_packet() |
@@ -197,27 +202,32 @@ func _read_p2p_packet() -> void: | |||
197 | var packet: Dictionary = Steam.readP2PPacket(packet_size, 0) | 202 | var packet: Dictionary = Steam.readP2PPacket(packet_size, 0) |
198 | var remote_id = packet["steam_id_remote"] | 203 | var remote_id = packet["steam_id_remote"] |
199 | if remote_id in active_lobby_members: | 204 | if remote_id in active_lobby_members: |
200 | var serialized: PoolByteArray = packet["data"] | 205 | _handle_packet(packet) |
201 | var data: Dictionary = bytes2var(serialized, false) | 206 | |
202 | if "global_transform" in data: | 207 | |
203 | _receive_member_location(remote_id, data["global_transform"]) | 208 | func _handle_packet(packet): |
204 | if "message_id" in data: | 209 | var remote_id = packet["steam_id_remote"] |
205 | _send_p2p_packet( | 210 | var serialized: PoolByteArray = packet["data"] |
206 | { | 211 | var data: Dictionary = bytes2var(serialized, false) |
207 | "ack": data["message_id"], | 212 | if "global_transform" in data: |
208 | }, | 213 | _receive_member_location(remote_id, data["global_transform"]) |
209 | remote_id, | 214 | if "message_id" in data: |
210 | Steam.P2P_SEND_RELIABLE_WITH_BUFFERING, | 215 | _send_p2p_packet( |
211 | false | 216 | { |
212 | ) | 217 | "ack": data["message_id"], |
213 | if "loaded" in data: | 218 | }, |
214 | _update_lobby_members() | 219 | remote_id, |
215 | if "timeout" in data: | 220 | Steam.P2P_SEND_RELIABLE_WITH_BUFFERING, |
216 | _update_lobby_members() | 221 | false |
217 | if "victory" in data: | 222 | ) |
218 | _someone_victory(Steam.getFriendPersonaName(remote_id)) | 223 | if "loaded" in data: |
219 | if "ack" in data: | 224 | _update_lobby_members() |
220 | messages_needing_ack.erase(data["ack"]) | 225 | if "timeout" in data: |
226 | _update_lobby_members() | ||
227 | if "victory" in data: | ||
228 | _someone_victory(Steam.getFriendPersonaName(remote_id)) | ||
229 | if "ack" in data: | ||
230 | messages_needing_ack.erase(data["ack"]) | ||
221 | 231 | ||
222 | 232 | ||
223 | func _receive_member_location(member_id: int, global_transform) -> void: | 233 | func _receive_member_location(member_id: int, global_transform) -> void: |