mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r13712) -Fix: enforce the length restrictions of company and president name in the commands too.
This commit is contained in:
parent
88848d78b5
commit
2e4f32023c
|
@ -225,7 +225,7 @@ static bool IsUniqueCompanyName(const char *name)
|
|||
*/
|
||||
CommandCost CmdChangeCompanyName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) > MAX_LENGTH_COMPANY_NAME) return CMD_ERROR;
|
||||
|
||||
if (!IsUniqueCompanyName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
|
||||
|
||||
|
@ -262,7 +262,7 @@ static bool IsUniquePresidentName(const char *name)
|
|||
*/
|
||||
CommandCost CmdChangePresidentName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) > MAX_LENGTH_PRESIDENT_NAME) return CMD_ERROR;
|
||||
|
||||
if (!IsUniquePresidentName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ enum {
|
|||
NETWORK_MASTER_SERVER_VERSION = 1, ///< What version of master-server-protocol do we use?
|
||||
|
||||
NETWORK_NAME_LENGTH = 80, ///< The maximum length of the server name and map name, in bytes including '\0'
|
||||
NETWORK_COMPANY_NAME_LENGTH = 32, ///< The maximum length of the company name, in bytes including '\0'
|
||||
NETWORK_HOSTNAME_LENGTH = 80, ///< The maximum length of the host name, in bytes including '\0'
|
||||
NETWORK_UNIQUE_ID_LENGTH = 33, ///< The maximum length of the unique id of the clients, in bytes including '\0'
|
||||
NETWORK_REVISION_LENGTH = 15, ///< The maximum length of the revision, in bytes including '\0'
|
||||
|
|
|
@ -70,6 +70,7 @@ uint8 _network_advertise_retries;
|
|||
|
||||
/* Check whether NETWORK_NUM_LANDSCAPES is still in sync with NUM_LANDSCAPE */
|
||||
assert_compile((int)NETWORK_NUM_LANDSCAPES == (int)NUM_LANDSCAPE);
|
||||
assert_compile((int)NETWORK_COMPANY_NAME_LENGTH == MAX_LENGTH_COMPANY_NAME + 1);
|
||||
|
||||
// global variables (declared in network_data.h)
|
||||
CommandPacket *_local_command_queue;
|
||||
|
|
|
@ -35,7 +35,7 @@ enum {
|
|||
};
|
||||
|
||||
struct NetworkPlayerInfo {
|
||||
char company_name[NETWORK_NAME_LENGTH]; ///< Company name
|
||||
char company_name[NETWORK_COMPANY_NAME_LENGTH]; ///< Company name
|
||||
char password[NETWORK_PASSWORD_LENGTH]; ///< The password for the player
|
||||
Year inaugurated_year; ///< What year the company started in
|
||||
Money company_value; ///< The company value
|
||||
|
|
|
@ -1252,13 +1252,13 @@ struct PlayerCompanyWindow : Window
|
|||
case PCW_WIDGET_PRESIDENT_NAME:
|
||||
this->query_widget = PCW_WIDGET_PRESIDENT_NAME;
|
||||
SetDParam(0, this->window_number);
|
||||
ShowQueryString(STR_PLAYER_NAME, STR_700B_PRESIDENT_S_NAME, 31, 94, this, CS_ALPHANUMERAL);
|
||||
ShowQueryString(STR_PLAYER_NAME, STR_700B_PRESIDENT_S_NAME, MAX_LENGTH_PRESIDENT_NAME, 94, this, CS_ALPHANUMERAL);
|
||||
break;
|
||||
|
||||
case PCW_WIDGET_COMPANY_NAME:
|
||||
this->query_widget = PCW_WIDGET_COMPANY_NAME;
|
||||
SetDParam(0, this->window_number);
|
||||
ShowQueryString(STR_COMPANY_NAME, STR_700A_COMPANY_NAME, 31, 150, this, CS_ALPHANUMERAL);
|
||||
ShowQueryString(STR_COMPANY_NAME, STR_700A_COMPANY_NAME, MAX_LENGTH_COMPANY_NAME, 150, this, CS_ALPHANUMERAL);
|
||||
break;
|
||||
|
||||
case PCW_WIDGET_BUILD_VIEW_HQ: {
|
||||
|
|
|
@ -30,6 +30,11 @@ enum Owner {
|
|||
};
|
||||
DECLARE_POSTFIX_INCREMENT(Owner);
|
||||
|
||||
enum {
|
||||
MAX_LENGTH_PRESIDENT_NAME = 31, ///< The maximum length for a president's name
|
||||
MAX_LENGTH_COMPANY_NAME = 31, ///< The maximum length for a company's name
|
||||
};
|
||||
|
||||
/** Define basic enum properties */
|
||||
template <> struct EnumPropsT<Owner> : MakeEnumPropsT<Owner, byte, OWNER_BEGIN, OWNER_END, INVALID_OWNER> {};
|
||||
typedef TinyEnumT<Owner> OwnerByte;
|
||||
|
|
Loading…
Reference in New Issue