diff options
| author | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-06-08 17:55:41 +0200 |
|---|---|---|
| committer | Lizzy Fleckenstein <lizzy@vlhl.dev> | 2026-06-08 17:55:41 +0200 |
| commit | 3d15c2db5d02aed71ee4f76f07e806e6d2f4c231 (patch) | |
| tree | ea3e365618181ef974d16a25817c6ed340655d1e | |
| parent | ec10eebd1d61f43c3d4f9c479d2f7041b352a777 (diff) | |
| download | r6p-3d15c2db5d02aed71ee4f76f07e806e6d2f4c231.tar.xz | |
connect to local server directly
| -rw-r--r-- | main.lua | 10 | ||||
| -rw-r--r-- | server.lua | 4 |
2 files changed, 11 insertions, 3 deletions
@@ -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() @@ -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) |
