summary refs log tree commit diff stats
path: root/racing/multiplayer.gd
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-02-08 18:14:38 -0500
committerStar Rauchenberger <fefferburbia@gmail.com>2024-02-08 18:14:38 -0500
commite01b33777328b27901687fad4445685ec2b31ac7 (patch)
tree74247b0a7d3ed8b38cbf8f4c8370c8013359f6ca /racing/multiplayer.gd
parent2244fcb7caabb4edaaac23beb703b3589edd7070 (diff)
downloadlingo-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.gd52
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
45func _process(_delta: float) -> void: 50func _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"]) 208func _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
223func _receive_member_location(member_id: int, global_transform) -> void: 233func _receive_member_location(member_id: int, global_transform) -> void: