From b46eb9c1843cb4babc550003e243bd07a6a96cdc Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 23 Mar 2024 17:27:43 +0100 Subject: You may now edit saved multiplayer servers in-game --- StarsEx/NetClientConfig.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'StarsEx/NetClientConfig.cpp') diff --git a/StarsEx/NetClientConfig.cpp b/StarsEx/NetClientConfig.cpp index 69dda99..061ae89 100644 --- a/StarsEx/NetClientConfig.cpp +++ b/StarsEx/NetClientConfig.cpp @@ -62,7 +62,7 @@ void NetClientConfig::AddServer(const char* name, const char* addr, WORD port, const char* pass, bool save) { if (!addr || !*addr || port < 1024 || port > 48000) - return; + return; char buffer[1024]; if (name && *name) @@ -87,6 +87,31 @@ NetClientConfig::AddServer(const char* name, const char* addr, WORD port, const } void +NetClientConfig::UpdateServer(int index, const char* name, const char* addr, WORD port, const char* pass) +{ + if (index < 0 || index >= servers.size() || !addr || !*addr || port < 1024 || port > 48000) + return; + + char buffer[1024]; + if (name && *name) + strcpy_s(buffer, name); + else + sprintf_s(buffer, "%s:%d", addr, port); + + auto* server = servers[index]; + server->name = buffer; + server->hostname = addr; + server->addr = NetAddr(addr, port); + server->port = port; + server->password = pass; + + if (server->addr.IPAddr() == 0) { + Print("NetClientConfig::UpdateServer(%d, %s, %s, %d) failed to resolve IP Addr\n", + index, name, addr, port); + } +} + +void NetClientConfig::DelServer(int index) { if (index >= 0 && index < servers.size()) { -- cgit v1.1