summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/console_cmds.cpp10
-rw-r--r--src/lang/english.txt3
-rw-r--r--src/network/core/game_info.cpp5
-rw-r--r--src/network/core/game_info.h1
-rw-r--r--src/network/network_client.cpp12
-rw-r--r--src/network/network_func.h1
-rw-r--r--src/network/network_gui.cpp28
-rw-r--r--src/network/network_server.cpp4
-rw-r--r--src/settings_type.h1
-rw-r--r--src/table/settings/network_settings.ini10
-rw-r--r--src/widgets/network_widget.h4
11 files changed, 5 insertions, 74 deletions
diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp
index fd7f09e3c..8963c4751 100644
--- a/src/console_cmds.cpp
+++ b/src/console_cmds.cpp
@@ -698,14 +698,14 @@ DEF_CONSOLE_CMD(ConServerInfo)
{
if (argc == 0) {
IConsolePrint(CC_HELP, "List current and maximum client/company limits. Usage 'server_info'.");
- IConsolePrint(CC_HELP, "You can change these values by modifying settings 'network.max_clients', 'network.max_companies' and 'network.max_spectators'.");
+ IConsolePrint(CC_HELP, "You can change these values by modifying settings 'network.max_clients' and 'network.max_companies'.");
return true;
}
IConsolePrint(CC_DEFAULT, "Invite code: {}", _network_server_invite_code);
IConsolePrint(CC_DEFAULT, "Current/maximum clients: {:3d}/{:3d}", _network_game_info.clients_on, _settings_client.network.max_clients);
IConsolePrint(CC_DEFAULT, "Current/maximum companies: {:3d}/{:3d}", Company::GetNumItems(), _settings_client.network.max_companies);
- IConsolePrint(CC_DEFAULT, "Current/maximum spectators: {:3d}/{:3d}", NetworkSpectatorCount(), _settings_client.network.max_spectators);
+ IConsolePrint(CC_DEFAULT, "Current spectators: {:3d}", NetworkSpectatorCount());
return true;
}
@@ -765,11 +765,6 @@ DEF_CONSOLE_CMD(ConJoinCompany)
return true;
}
- if (company_id == COMPANY_SPECTATOR && NetworkMaxSpectatorsReached()) {
- IConsolePrint(CC_ERROR, "Cannot join spectators, maximum number of spectators reached.");
- return true;
- }
-
if (company_id != COMPANY_SPECTATOR && !Company::IsHumanID(company_id)) {
IConsolePrint(CC_ERROR, "Cannot join AI company.");
return true;
@@ -2422,7 +2417,6 @@ void IConsoleStdLibRegister()
IConsole::AliasRegister("server_port", "setting server_port %+");
IConsole::AliasRegister("max_clients", "setting max_clients %+");
IConsole::AliasRegister("max_companies", "setting max_companies %+");
- IConsole::AliasRegister("max_spectators", "setting max_spectators %+");
IConsole::AliasRegister("max_join_time", "setting max_join_time %+");
IConsole::AliasRegister("pause_on_join", "setting pause_on_join %+");
IConsole::AliasRegister("autoclean_companies", "setting autoclean_companies %+");
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 44d226cbf..eb7b7365b 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -2079,9 +2079,6 @@ STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Choose t
STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} compan{P y ies}
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximum number of companies:
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limit the server to a certain amount of companies
-STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} spectator{P "" s}
-STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximum number of spectators:
-STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limit the server to a certain amount of spectators
STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Language spoken:
STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Other players will know which language is spoken on the server
diff --git a/src/network/core/game_info.cpp b/src/network/core/game_info.cpp
index ebc78fffc..1576ae413 100644
--- a/src/network/core/game_info.cpp
+++ b/src/network/core/game_info.cpp
@@ -126,7 +126,6 @@ void FillStaticNetworkServerGameInfo()
_network_game_info.start_date = ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1);
_network_game_info.clients_max = _settings_client.network.max_clients;
_network_game_info.companies_max = _settings_client.network.max_companies;
- _network_game_info.spectators_max = _settings_client.network.max_spectators;
_network_game_info.map_width = MapSizeX();
_network_game_info.map_height = MapSizeY();
_network_game_info.landscape = _settings_game.game_creation.landscape;
@@ -234,7 +233,7 @@ void SerializeNetworkGameInfo(Packet *p, const NetworkServerGameInfo *info, bool
/* NETWORK_GAME_INFO_VERSION = 2 */
p->Send_uint8 (info->companies_max);
p->Send_uint8 (info->companies_on);
- p->Send_uint8 (info->spectators_max);
+ p->Send_uint8 (info->clients_max); // Used to be max-spectators
/* NETWORK_GAME_INFO_VERSION = 1 */
p->Send_string(info->server_name);
@@ -331,7 +330,7 @@ void DeserializeNetworkGameInfo(Packet *p, NetworkGameInfo *info, const GameInfo
case 2:
info->companies_max = p->Recv_uint8 ();
info->companies_on = p->Recv_uint8 ();
- info->spectators_max = p->Recv_uint8 ();
+ p->Recv_uint8(); // Used to contain max-spectators.
FALLTHROUGH;
case 1:
diff --git a/src/network/core/game_info.h b/src/network/core/game_info.h
index 91fd96ad9..95073f6c2 100644
--- a/src/network/core/game_info.h
+++ b/src/network/core/game_info.h
@@ -105,7 +105,6 @@ struct NetworkServerGameInfo {
byte companies_on; ///< How many started companies do we have
byte companies_max; ///< Max companies allowed on server
byte spectators_on; ///< How many spectators do we have?
- byte spectators_max; ///< Max spectators allowed on server
byte landscape; ///< The used landscape
int gamescript_version; ///< Version of the gamescript.
std::string gamescript_name; ///< Name of the gamescript.
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp
index db8992f3b..16fd31cfe 100644
--- a/src/network/network_client.cpp
+++ b/src/network/network_client.cpp
@@ -314,8 +314,6 @@ static std::string _password_server_id;
/** Maximum number of companies of the currently joined server. */
static uint8 _network_server_max_companies;
-/** Maximum number of spectators of the currently joined server. */
-static uint8 _network_server_max_spectators;
/** Information about the game to join to. */
NetworkJoinInfo _network_join;
@@ -1189,7 +1187,6 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_CONFIG_UPDATE(P
if (this->status < STATUS_ACTIVE) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
_network_server_max_companies = p->Recv_uint8();
- _network_server_max_spectators = p->Recv_uint8();
return NETWORK_RECV_STATUS_OKAY;
}
@@ -1406,12 +1403,3 @@ bool NetworkMaxCompaniesReached()
{
return Company::GetNumItems() >= (_network_server ? _settings_client.network.max_companies : _network_server_max_companies);
}
-
-/**
- * Check if max_spectatos has been reached on the server (local check only).
- * @return true if the max value has been reached or exceeded, false otherwise.
- */
-bool NetworkMaxSpectatorsReached()
-{
- return NetworkSpectatorCount() >= (_network_server ? _settings_client.network.max_spectators : _network_server_max_spectators);
-}
diff --git a/src/network/network_func.h b/src/network/network_func.h
index c0f68f915..1708ed95b 100644
--- a/src/network/network_func.h
+++ b/src/network/network_func.h
@@ -60,7 +60,6 @@ void NetworkClientSendChat(NetworkAction action, DestType type, int dest, const
bool NetworkClientPreferTeamChat(const NetworkClientInfo *cio);
bool NetworkCompanyIsPassworded(CompanyID company_id);
bool NetworkMaxCompaniesReached();
-bool NetworkMaxSpectatorsReached();
void NetworkPrintClients();
void NetworkHandlePauseChange(PauseMode prev_mode, PauseMode changed_mode);
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index 13c1faa0a..076b3d46e 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -1033,10 +1033,6 @@ struct NetworkStartServerWindow : public Window {
case WID_NSS_COMPANIES_TXT:
SetDParam(0, _settings_client.network.max_companies);
break;
-
- case WID_NSS_SPECTATORS_TXT:
- SetDParam(0, _settings_client.network.max_spectators);
- break;
}
}
@@ -1079,7 +1075,6 @@ struct NetworkStartServerWindow : public Window {
case WID_NSS_CLIENTS_BTND: case WID_NSS_CLIENTS_BTNU: // Click on up/down button for number of clients
case WID_NSS_COMPANIES_BTND: case WID_NSS_COMPANIES_BTNU: // Click on up/down button for number of companies
- case WID_NSS_SPECTATORS_BTND: case WID_NSS_SPECTATORS_BTNU: // Click on up/down button for number of spectators
/* Don't allow too fast scrolling. */
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
this->HandleButtonClick(widget);
@@ -1092,9 +1087,6 @@ struct NetworkStartServerWindow : public Window {
case WID_NSS_COMPANIES_BTND: case WID_NSS_COMPANIES_BTNU:
_settings_client.network.max_companies = Clamp(_settings_client.network.max_companies + widget - WID_NSS_COMPANIES_TXT, 1, MAX_COMPANIES);
break;
- case WID_NSS_SPECTATORS_BTND: case WID_NSS_SPECTATORS_BTNU:
- _settings_client.network.max_spectators = Clamp(_settings_client.network.max_spectators + widget - WID_NSS_SPECTATORS_TXT, 0, MAX_CLIENTS);
- break;
}
}
_left_button_clicked = false;
@@ -1112,12 +1104,6 @@ struct NetworkStartServerWindow : public Window {
ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, 3, this, CS_NUMERAL, QSF_NONE);
break;
- case WID_NSS_SPECTATORS_TXT: // Click on number of spectators
- this->widget_id = WID_NSS_SPECTATORS_TXT;
- SetDParam(0, _settings_client.network.max_spectators);
- ShowQueryString(STR_JUST_INT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, 4, this, CS_NUMERAL, QSF_NONE);
- break;
-
case WID_NSS_GENERATE_GAME: // Start game
if (!CheckServerName()) return;
_is_network_server = true;
@@ -1172,7 +1158,7 @@ struct NetworkStartServerWindow : public Window {
void OnTimeout() override
{
- static const int raise_widgets[] = {WID_NSS_CLIENTS_BTND, WID_NSS_CLIENTS_BTNU, WID_NSS_COMPANIES_BTND, WID_NSS_COMPANIES_BTNU, WID_NSS_SPECTATORS_BTND, WID_NSS_SPECTATORS_BTNU, WIDGET_LIST_END};
+ static const int raise_widgets[] = {WID_NSS_CLIENTS_BTND, WID_NSS_CLIENTS_BTNU, WID_NSS_COMPANIES_BTND, WID_NSS_COMPANIES_BTNU, WIDGET_LIST_END};
for (const int *widget = raise_widgets; *widget != WIDGET_LIST_END; widget++) {
if (this->IsWidgetLowered(*widget)) {
this->RaiseWidget(*widget);
@@ -1194,7 +1180,6 @@ struct NetworkStartServerWindow : public Window {
default: NOT_REACHED();
case WID_NSS_CLIENTS_TXT: _settings_client.network.max_clients = Clamp(value, 2, MAX_CLIENTS); break;
case WID_NSS_COMPANIES_TXT: _settings_client.network.max_companies = Clamp(value, 1, MAX_COMPANIES); break;
- case WID_NSS_SPECTATORS_TXT: _settings_client.network.max_spectators = Clamp(value, 0, MAX_CLIENTS); break;
}
}
@@ -1246,15 +1231,6 @@ static const NWidgetPart _nested_network_start_server_window_widgets[] = {
NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, WID_NSS_COMPANIES_BTNU), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP),
EndContainer(),
EndContainer(),
-
- NWidget(NWID_VERTICAL), SetPIP(0, 1, 0),
- NWidget(WWT_TEXT, COLOUR_LIGHT_BLUE, WID_NSS_SPECTATORS_LABEL), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS, STR_NULL),
- NWidget(NWID_HORIZONTAL),
- NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, WID_NSS_SPECTATORS_BTND), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_DOWN, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
- NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, WID_NSS_SPECTATORS_TXT), SetFill(1, 0), SetDataTip(STR_NETWORK_START_SERVER_SPECTATORS_SELECT, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
- NWidget(WWT_IMGBTN, COLOUR_LIGHT_BLUE, WID_NSS_SPECTATORS_BTNU), SetMinimalSize(12, 12), SetFill(0, 1), SetDataTip(SPR_ARROW_UP, STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP),
- EndContainer(),
- EndContainer(),
EndContainer(),
/* 'generate game' and 'load game' buttons */
@@ -1369,8 +1345,6 @@ struct NetworkLobbyWindow : public Window {
this->SetWidgetDisabledState(WID_NL_JOIN, this->company == INVALID_COMPANY || GetLobbyCompanyInfo(this->company)->ai);
/* Cannot start new company if there are too many. */
this->SetWidgetDisabledState(WID_NL_NEW, gi->companies_on >= gi->companies_max);
- /* Cannot spectate if there are too many spectators. */
- this->SetWidgetDisabledState(WID_NL_SPECTATE, gi->spectators_on >= gi->spectators_max);
this->vscroll->SetCount(gi->companies_on);
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index 25ce602f0..e4e1de906 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -820,7 +820,6 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendConfigUpdate()
Packet *p = new Packet(PACKET_SERVER_CONFIG_UPDATE);
p->Send_uint8(_settings_client.network.max_companies);
- p->Send_uint8(_settings_client.network.max_spectators);
this->SendPacket(p);
return NETWORK_RECV_STATUS_OKAY;
}
@@ -890,9 +889,6 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_JOIN(Packet *p)
}
break;
case COMPANY_SPECTATOR: // Spectator
- if (NetworkSpectatorCount() >= _settings_client.network.max_spectators) {
- return this->SendError(NETWORK_ERROR_FULL);
- }
break;
default: // Join another company (companies 1-8 (index 0-7))
if (!Company::IsValidHumanID(playas)) {
diff --git a/src/settings_type.h b/src/settings_type.h
index ababe718b..05833cdb0 100644
--- a/src/settings_type.h
+++ b/src/settings_type.h
@@ -291,7 +291,6 @@ struct NetworkSettings {
uint8 autoclean_novehicles; ///< remove companies with no vehicles after this many months
uint8 max_companies; ///< maximum amount of companies
uint8 max_clients; ///< maximum amount of clients
- uint8 max_spectators; ///< maximum amount of spectators
Year restart_game_year; ///< year the server restarts
uint8 min_active_clients; ///< minimum amount of active clients to unpause the game
bool reload_cfg; ///< reload the config file before restarting
diff --git a/src/table/settings/network_settings.ini b/src/table/settings/network_settings.ini
index 86f8aafc8..50e769c7f 100644
--- a/src/table/settings/network_settings.ini
+++ b/src/table/settings/network_settings.ini
@@ -225,16 +225,6 @@ post_cb = [](auto) { UpdateClientConfigValues(); }
cat = SC_BASIC
[SDTC_VAR]
-var = network.max_spectators
-type = SLE_UINT8
-flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY
-def = 15
-min = 0
-max = MAX_CLIENTS
-post_cb = [](auto) { UpdateClientConfigValues(); }
-cat = SC_BASIC
-
-[SDTC_VAR]
var = network.restart_game_year
type = SLE_INT32
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY
diff --git a/src/widgets/network_widget.h b/src/widgets/network_widget.h
index cef564e98..ea9891276 100644
--- a/src/widgets/network_widget.h
+++ b/src/widgets/network_widget.h
@@ -66,10 +66,6 @@ enum NetworkStartServerWidgets {
WID_NSS_COMPANIES_BTND, ///< 'Max companies' downarrow.
WID_NSS_COMPANIES_TXT, ///< 'Max companies' text.
WID_NSS_COMPANIES_BTNU, ///< 'Max companies' uparrow.
- WID_NSS_SPECTATORS_LABEL, ///< Label for 'max spectators'.
- WID_NSS_SPECTATORS_BTND, ///< 'Max spectators' downarrow.
- WID_NSS_SPECTATORS_TXT, ///< 'Max spectators' text.
- WID_NSS_SPECTATORS_BTNU, ///< 'Max spectators' uparrow.
WID_NSS_GENERATE_GAME, ///< New game button.
WID_NSS_LOAD_GAME, ///< Load game button.