10 #ifndef NETWORK_FUNC_H
11 #define NETWORK_FUNC_H
21 #include "../console_type.h"
22 #include "../gfx_type.h"
23 #include "../openttd.h"
24 #include "../company_type.h"
25 #include "../string_type.h"
34 uint8_t NetworkSpectatorCount();
44 void NetworkGameLoop();
69 bool NetworkServerStart();
Owner
Enum for all companies/owners.
TextColour
Colour of the strings, see _string_colourmap in table/string_colours.h or docs/ottd-colourtext-palett...
void NetworkServerSendChat(NetworkAction action, DestType type, int dest, const std::string &msg, ClientID from_id, int64_t data=0, bool from_admin=false)
Send an actual chat message.
void NetworkUpdateClientName(const std::string &client_name)
Send the server our name as callback from the setting.
StringList _network_host_list
The servers we know.
bool NetworkServerChangeClientName(ClientID client_id, const std::string &new_name)
Change the client name of the given client.
void NetworkServerNewCompany(const Company *company, NetworkClientInfo *ci)
Perform all the server specific administration of a new company.
void NetworkPrintClients()
Print all the clients to the console.
void NetworkServerUpdateGameInfo()
Update the server's NetworkServerGameInfo due to changes in settings.
void NetworkClientJoinGame()
Actually perform the joining to the server.
bool NetworkClientConnectGame(const std::string &connection_string, CompanyID default_company, const std::string &join_server_password="")
Join a client to the server at with the given connection string.
void NetworkServerSendRcon(ClientID client_id, TextColour colour_code, const std::string &string)
Send an rcon reply to the client.
void NetworkUpdateClientInfo(ClientID client_id)
Send updated client info of a particular client.
ClientID _redirect_console_to_client
If not invalid, redirect the console output to a client.
uint NetworkServerKickOrBanIP(ClientID client_id, bool ban, const std::string &reason)
Ban, or kick, everyone joined from the given client's IP.
void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const std::string &message)
Add a text message to the 'chat window' to be shown.
void NetworkOnGameStart()
Perform tasks when the server is started.
bool NetworkIsValidClientName(const std::string_view client_name)
Check whether the given client name is deemed valid for use in network games.
bool NetworkValidateOurClientName()
Convenience method for NetworkValidateClientName on _settings_client.network.client_name.
void NetworkPopulateCompanyStats(NetworkCompanyStats *stats)
Populate the company stats.
void NetworkClientRequestMove(CompanyID company)
Notify the server of this client wanting to be moved to another company.
uint8_t _network_reconnect
Reconnect timeout.
void NetworkServerSendConfigUpdate()
Send Config Update.
void NetworkServerKickClient(ClientID client_id, const std::string &reason)
Kick a single client.
StringList _network_ban_list
The banned clients.
void NetworkReInitChatBoxSize()
Initialize all font-dependent chat box sizes.
void NetworkServerDoMove(ClientID client_id, CompanyID company_id)
Handle the tid-bits of moving a client from one company to another.
bool NetworkCompanyHasClients(CompanyID company)
Check whether a particular company has clients.
std::string_view ParseFullConnectionString(const std::string &connection_string, uint16_t &port, CompanyID *company_id=nullptr)
Converts a string to ip/port/company Format: IP:port::company.
void NetworkAfterNewGRFScan()
Rebuild the GRFConfig's of the servers in the game list as we did a rescan and might have found new N...
bool NetworkMaxCompaniesReached()
Check if max_companies has been reached on the server (local check only).
std::string_view NetworkGetPublicKeyOfClient(ClientID client_id)
Get the public key of the client with the given id.
void NetworkBackgroundLoop()
We have to do some (simple) background stuff that runs normally, even when we are not in multiplayer.
StringList _network_bind_list
The addresses to bind on.
uint NetworkMaxCompaniesAllowed()
Get the maximum number of companies that are allowed by the server.
void NetworkInitChatMessage()
Initialize all buffers of the chat visualisation.
void NetworkDisconnect(bool close_admins=true)
We want to disconnect from the host/clients.
void NetworkClientsToSpectators(CompanyID cid)
Move the clients of a company to the spectators.
ClientID _network_own_client_id
Uncomment the following define to enable command replaying.
bool NetworkClientPreferTeamChat(const NetworkClientInfo *cio)
Tell whether the client has team members who they can chat to.
void NetworkUndrawChatMessage()
Hide the chatbox.
void NetworkClientSendChat(NetworkAction action, DestType type, int dest, const std::string &msg, int64_t data=0)
Send a chat message.
void NetworkServerShowStatusToConsole()
Show the status message of all clients on the console.
void NetworkHandlePauseChange(PauseMode prev_mode, PauseMode changed_mode)
Handle the pause mode change so we send the right messages to the chat.
void NetworkServerSendExternalChat(const std::string &source, TextColour colour, const std::string &user, const std::string &msg)
Send a chat message from external source.
void NetworkUpdateServerGameType()
The setting server_game_type was updated; possibly we need to take some action.
bool NetworkCanJoinCompany(CompanyID company_id)
Returns whether the given company can be joined by this client.
bool NetworkValidateClientName(std::string &client_name)
Trim the given client name in place, i.e.
void NetworkClientSendRcon(const std::string &password, const std::string &command)
Send a remote console command.
bool NetworkValidateServerName(std::string &server_name)
Trim the given server name in place, i.e.
Types used for networking.
DestType
Destination of our chat messages.
NetworkAction
Actions that can be used for NetworkTextMessage.
ClientID
'Unique' identifier to be given to clients
PauseMode
Modes of pausing we've got.
std::vector< std::string > StringList
Type for a list of strings.
Container for all information known about a client.
Simple calculated statistics of a company.