From 3d15c2db5d02aed71ee4f76f07e806e6d2f4c231 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Mon, 8 Jun 2026 17:55:41 +0200 Subject: connect to local server directly --- main.lua | 10 +++++++--- server.lua | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/main.lua b/main.lua index 871b9c9..30f21a5 100644 --- a/main.lua +++ b/main.lua @@ -53,7 +53,7 @@ local function save_location(save) return love.filesystem.getSaveDirectory().."/saves/"..save..".json" end -local function start_client(invite) +local function client_join(invite) local c, err = client.join(invite) if err then quit_game("Invalid invite") @@ -62,6 +62,10 @@ local function start_client(invite) end end +local function client_connect(addr, secret) + clt = client.connect(addr, secret) +end + local function start_server(save) local s, err = server.create(save_location(save)) if err then @@ -138,7 +142,7 @@ local function update_server() if status == "fail" then quit_game("Failed to register match (match server down?)") elseif status == "active" and not clt then - start_client(invite) + client_connect("localhost:" .. server.port(srv), srv.secret) end end @@ -340,7 +344,7 @@ function love.load() love.graphics.setBackgroundColor(color(0xffffff)) love.window.setTitle("RAINBOW SIX: PANOPTICON") - dialog.main_menu = main_menu.create({ join_game = start_client, load_save = show_load_save, create_save = show_create_save }) + dialog.main_menu = main_menu.create({ join_game = client_join, load_save = show_load_save, create_save = show_create_save }) dialog.loading = create_loading() dialog.error = create_error() dialog.create_player = create_create_player() diff --git a/server.lua b/server.lua index 02d92fd..8d85dcd 100644 --- a/server.lua +++ b/server.lua @@ -107,6 +107,10 @@ function server.create(filename, match_addr) return srv end +function server.port(srv) + return srv.host:get_socket_address():match(":([^:]*)$") +end + local function handle_match(srv, pkt) if pkt.type == "server_match" then local game_id = type(pkt.game_id) == "string" and util.base64_dec(pkt.game_id) -- cgit v1.2.3