Files @ r27636:dd08900a2d5c
Branch filter:

Location: cpp/openttd-patchpack/source/src/network/network_gamelist.h

Peter Nelson
Fix #11054: Prevent translation of currency codes.

Most languages stick with the 3-letter latin currency codes in the name
string, however some translations are... clever... and use the currency
symbol instead. Whilst this may look nice, it can cause issues with fonts
as some scripts have a specific limited set of fonts which do not include
these symbols.

Instead, hard code the currency code list and add it when drawing the
currency name.
/*
 * This file is part of OpenTTD.
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 */

/** @file network_gamelist.h Handling of the list of games. */

#ifndef NETWORK_GAMELIST_H
#define NETWORK_GAMELIST_H

#include "core/address.h"
#include "core/game_info.h"
#include "network_type.h"

/** The status a server can be in. */
enum NetworkGameListStatus {
	NGLS_OFFLINE, ///< Server is offline (or cannot be queried).
	NGLS_ONLINE,  ///< Server is online.
	NGLS_FULL,    ///< Server is full and cannot be queried.
	NGLS_BANNED,  ///< You are banned from this server.
	NGLS_TOO_OLD, ///< Server is too old to query.
};

/** Structure with information shown in the game list (GUI) */
struct NetworkGameList {
	NetworkGameList(const std::string &connection_string) : connection_string(connection_string) {}

	NetworkGameInfo info = {};                   ///< The game information of this server.
	std::string connection_string;               ///< Address of the server.
	NetworkGameListStatus status = NGLS_OFFLINE; ///< Stats of the server.
	bool manually = false;                       ///< True if the server was added manually.
	bool refreshing = false;                     ///< Whether this server is being queried.
	int version = 0;                             ///< Used to see which servers are no longer available on the Game Coordinator and can be removed.
	NetworkGameList *next = nullptr;             ///< Next pointer to make a linked game list.
};

extern NetworkGameList *_network_game_list;
extern int _network_game_list_version;

NetworkGameList *NetworkGameListAddItem(const std::string &connection_string);
void NetworkGameListRemoveItem(NetworkGameList *remove);
void NetworkGameListRemoveExpired();

#endif /* NETWORK_GAMELIST_H */