diff options
Diffstat (limited to 'racing/lobby.gd')
| -rw-r--r-- | racing/lobby.gd | 52 |
1 files changed, 31 insertions, 21 deletions
| diff --git a/racing/lobby.gd b/racing/lobby.gd index 36a90b6..d326098 100644 --- a/racing/lobby.gd +++ b/racing/lobby.gd | |||
| @@ -154,7 +154,7 @@ func _on_lobby_created(result: int, lobby_id: int) -> void: | |||
| 154 | _ignore = Steam.setLobbyData(lobby_id, "save_file", global.save_file.to_lower()) | 154 | _ignore = Steam.setLobbyData(lobby_id, "save_file", global.save_file.to_lower()) |
| 155 | _ignore = Steam.setLobbyData(lobby_id, "racing_vip", str(player_steam_id)) | 155 | _ignore = Steam.setLobbyData(lobby_id, "racing_vip", str(player_steam_id)) |
| 156 | _ignore = Steam.setLobbyData(lobby_id, "closed", "false") | 156 | _ignore = Steam.setLobbyData(lobby_id, "closed", "false") |
| 157 | is_vip = true | 157 | _become_vip() |
| 158 | _request_lobby_list() | 158 | _request_lobby_list() |
| 159 | 159 | ||
| 160 | 160 | ||
| @@ -166,7 +166,7 @@ func _on_lobby_joined(lobby_id: int, _permissions: int, _locked: bool, result: i | |||
| 166 | Steam.leaveLobby(active_lobby_id) | 166 | Steam.leaveLobby(active_lobby_id) |
| 167 | active_lobby_id = lobby_id | 167 | active_lobby_id = lobby_id |
| 168 | if Steam.getLobbyData(lobby_id, "racing_vip") == str(player_steam_id): | 168 | if Steam.getLobbyData(lobby_id, "racing_vip") == str(player_steam_id): |
| 169 | is_vip = true | 169 | _become_vip() |
| 170 | _update_lobby_members() | 170 | _update_lobby_members() |
| 171 | 171 | ||
| 172 | 172 | ||
| @@ -249,15 +249,14 @@ func _read_p2p_packet() -> void: | |||
| 249 | ) | 249 | ) |
| 250 | if "start_x" in data: | 250 | if "start_x" in data: |
| 251 | race_manager.level = data["level"] | 251 | race_manager.level = data["level"] |
| 252 | race_manager.start_pos = [ | 252 | race_manager.start_pos = { |
| 253 | data["start_name"], | 253 | "title": data["start_name"], |
| 254 | int(data["start_x"]), | 254 | "pos": [int(data["start_x"]), int(data["start_y"]), int(data["start_z"])] |
| 255 | int(data["start_y"]), | 255 | } |
| 256 | int(data["start_z"]) | 256 | race_manager.end_pos = { |
| 257 | ] | 257 | "title": data["end_name"], |
| 258 | race_manager.end_pos = [ | 258 | "pos": [int(data["end_x"]), int(data["end_y"]), int(data["end_z"])] |
| 259 | data["end_name"], int(data["end_x"]), int(data["end_y"]), int(data["end_z"]) | 259 | } |
| 260 | ] | ||
| 261 | 260 | ||
| 262 | is_starting = true | 261 | is_starting = true |
| 263 | _start_game() | 262 | _start_game() |
| @@ -302,13 +301,22 @@ func _send_p2p_packet(data: Dictionary, recipient_id: int, mode: int, needs_ack: | |||
| 302 | var _ignore = Steam.sendP2PPacket(recipient_id, serialized, mode) | 301 | var _ignore = Steam.sendP2PPacket(recipient_id, serialized, mode) |
| 303 | 302 | ||
| 304 | 303 | ||
| 304 | func _become_vip(): | ||
| 305 | is_vip = true | ||
| 306 | get_node("Panel/ItemList").margin_left = 226 | ||
| 307 | get_node("Panel/Settings").visible = true | ||
| 308 | |||
| 309 | |||
| 305 | func _main_button_pressed(): | 310 | func _main_button_pressed(): |
| 306 | if everyone_ready and is_vip: | 311 | if everyone_ready and is_vip: |
| 307 | get_node("Panel/main_button").disabled = true | 312 | get_node("Panel/main_button").disabled = true |
| 308 | 313 | ||
| 309 | var _ignore = Steam.setLobbyData(active_lobby_id, "closed", "true") | 314 | var _ignore = Steam.setLobbyData(active_lobby_id, "closed", "true") |
| 310 | 315 | ||
| 311 | var route = router.choose_route() | 316 | var route = router.choose_route( |
| 317 | get_node("Panel/Settings/LevelOption").get_selected_id(), | ||
| 318 | get_node("Panel/Settings/LengthOption").get_selected_id() | ||
| 319 | ) | ||
| 312 | var start_pos = route[1] | 320 | var start_pos = route[1] |
| 313 | var end_pos = route[2] | 321 | var end_pos = route[2] |
| 314 | 322 | ||
| @@ -327,14 +335,14 @@ func _main_button_pressed(): | |||
| 327 | _send_p2p_packet( | 335 | _send_p2p_packet( |
| 328 | { | 336 | { |
| 329 | "level": route[0], | 337 | "level": route[0], |
| 330 | "start_name": start_pos[0], | 338 | "start_name": start_pos["title"], |
| 331 | "start_x": str(start_pos[1]), | 339 | "start_x": str(start_pos["pos"][0]), |
| 332 | "start_y": str(start_pos[2]), | 340 | "start_y": str(start_pos["pos"][1]), |
| 333 | "start_z": str(start_pos[3]), | 341 | "start_z": str(start_pos["pos"][2]), |
| 334 | "end_name": end_pos[0], | 342 | "end_name": end_pos["title"], |
| 335 | "end_x": str(end_pos[1]), | 343 | "end_x": str(end_pos["pos"][0]), |
| 336 | "end_y": str(end_pos[2]), | 344 | "end_y": str(end_pos["pos"][1]), |
| 337 | "end_z": str(end_pos[3]), | 345 | "end_z": str(end_pos["pos"][2]), |
| 338 | }, | 346 | }, |
| 339 | RECIPIENT_BROADCAST_ALL, | 347 | RECIPIENT_BROADCAST_ALL, |
| 340 | Steam.P2P_SEND_RELIABLE, | 348 | Steam.P2P_SEND_RELIABLE, |
| @@ -361,7 +369,9 @@ func _start_game(): | |||
| 361 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) | 369 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) |
| 362 | global.map = race_manager.level | 370 | global.map = race_manager.level |
| 363 | global.entry_point = Vector3( | 371 | global.entry_point = Vector3( |
| 364 | race_manager.start_pos[1], race_manager.start_pos[2] + 1, race_manager.start_pos[3] | 372 | race_manager.start_pos["pos"][0], |
| 373 | race_manager.start_pos["pos"][1] + 1, | ||
| 374 | race_manager.start_pos["pos"][2] | ||
| 365 | ) | 375 | ) |
| 366 | global.entry_rotate = Vector3(0, 0, 0) | 376 | global.entry_rotate = Vector3(0, 0, 0) |
| 367 | global.sets_entry_point = true | 377 | global.sets_entry_point = true |
