summary refs log tree commit diff stats
path: root/racing/lobby.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/lobby.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/lobby.gd')
-rw-r--r--racing/lobby.gd18
1 files changed, 16 insertions, 2 deletions
diff --git a/racing/lobby.gd b/racing/lobby.gd index 87647bb..933345e 100644 --- a/racing/lobby.gd +++ b/racing/lobby.gd
@@ -15,6 +15,7 @@ const MAX_PLAYERS = 250
15const PROTOCOL_VERSION = 2 15const PROTOCOL_VERSION = 2
16const RECIPIENT_BROADCAST_ALL = -1 16const RECIPIENT_BROADCAST_ALL = -1
17const LOBBY_MAP_NAME = "ll1_racing" 17const LOBBY_MAP_NAME = "ll1_racing"
18const VERSION = "0.0.2"
18 19
19const LL1_AREAS = [ 20const LL1_AREAS = [
20 ["Starting Room", 0, 0, 0], 21 ["Starting Room", 0, 0, 0],
@@ -90,6 +91,9 @@ func _ready():
90 91
91 global.add_child(race_manager) 92 global.add_child(race_manager)
92 93
94 var race_manager = global.get_node("RaceManager")
95 race_manager.held_messages.clear()
96
93 var _ignore = get_node("Panel/main_button").connect("pressed", self, "_main_button_pressed") 97 var _ignore = get_node("Panel/main_button").connect("pressed", self, "_main_button_pressed")
94 _ignore = get_node("Panel/return_button").connect("pressed", self, "_return_button_pressed") 98 _ignore = get_node("Panel/return_button").connect("pressed", self, "_return_button_pressed")
95 99
@@ -100,13 +104,14 @@ func _ready():
100 dynamic_font.outline_size = 2 104 dynamic_font.outline_size = 2
101 get_node("Panel/ItemList").add_font_override("font", dynamic_font) 105 get_node("Panel/ItemList").add_font_override("font", dynamic_font)
102 106
103 get_node("Panel/title").text = "LINGO RACING LOBBY (%s)" % global.save_file 107 get_node("Panel/title").text = "LINGO RACING %s LOBBY (%s)" % [VERSION, global.save_file]
104 108
105 player_steam_id = Steam.getSteamID() 109 player_steam_id = Steam.getSteamID()
106 110
107 _ignore = Steam.connect("lobby_match_list", self, "_on_lobby_match_list") 111 _ignore = Steam.connect("lobby_match_list", self, "_on_lobby_match_list")
108 _ignore = Steam.connect("lobby_created", self, "_on_lobby_created") 112 _ignore = Steam.connect("lobby_created", self, "_on_lobby_created")
109 _ignore = Steam.connect("lobby_joined", self, "_on_lobby_joined") 113 _ignore = Steam.connect("lobby_joined", self, "_on_lobby_joined")
114 _ignore = Steam.connect("lobby_chat_update", self, "_on_lobby_chat_update")
110 _ignore = Steam.connect("lobby_data_update", self, "_on_lobby_data_update") 115 _ignore = Steam.connect("lobby_data_update", self, "_on_lobby_data_update")
111 _ignore = Steam.connect("persona_state_change", self, "_on_persona_state_change") 116 _ignore = Steam.connect("persona_state_change", self, "_on_persona_state_change")
112 _ignore = Steam.connect("p2p_session_request", self, "_on_p2p_session_request") 117 _ignore = Steam.connect("p2p_session_request", self, "_on_p2p_session_request")
@@ -201,6 +206,12 @@ func _on_lobby_joined(lobby_id: int, _permissions: int, _locked: bool, result: i
201 _update_lobby_members() 206 _update_lobby_members()
202 207
203 208
209func _on_lobby_chat_update(
210 _lobby_id: int, _member_id: int, _making_change_id: int, _chat_state: int
211) -> void:
212 _update_lobby_members()
213
214
204func _on_lobby_data_update(_lobby_id: int, _member_id: int, _key: int) -> void: 215func _on_lobby_data_update(_lobby_id: int, _member_id: int, _key: int) -> void:
205 _update_lobby_members() 216 _update_lobby_members()
206 217
@@ -255,6 +266,10 @@ func _read_p2p_packet() -> void:
255 var packet: Dictionary = Steam.readP2PPacket(packet_size, 0) 266 var packet: Dictionary = Steam.readP2PPacket(packet_size, 0)
256 var remote_id = packet["steam_id_remote"] 267 var remote_id = packet["steam_id_remote"]
257 if remote_id in active_lobby_members: 268 if remote_id in active_lobby_members:
269 var race_manager = global.get_node("RaceManager")
270 if is_starting:
271 race_manager.held_messages.append(packet.duplicate(true))
272 return
258 var serialized: PoolByteArray = packet["data"] 273 var serialized: PoolByteArray = packet["data"]
259 var data: Dictionary = bytes2var(serialized, false) 274 var data: Dictionary = bytes2var(serialized, false)
260 if "message_id" in data: 275 if "message_id" in data:
@@ -267,7 +282,6 @@ func _read_p2p_packet() -> void:
267 false 282 false
268 ) 283 )
269 if "start_x" in data: 284 if "start_x" in data:
270 var race_manager = global.get_node("RaceManager")
271 race_manager.start_pos = [ 285 race_manager.start_pos = [
272 data["start_name"], 286 data["start_name"],
273 int(data["start_x"]), 287 int(data["start_x"]),