src/misc_cmd.cpp
changeset 10148 ad8e8a65f6a2
parent 10142 3381ba0bd3ca
child 10151 0dd6c35bf0cc
equal deleted inserted replaced
10147:f0215b6c526e 10148:ad8e8a65f6a2
   222  * @param p1 unused
   222  * @param p1 unused
   223  * @param p2 unused
   223  * @param p2 unused
   224  */
   224  */
   225 CommandCost CmdChangeCompanyName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   225 CommandCost CmdChangeCompanyName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   226 {
   226 {
   227 	if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_COMPANY_NAME_BYTES) return CMD_ERROR;
   227 	bool reset = StrEmpty(_cmd_text);
   228 
   228 
   229 	if (!IsUniqueCompanyName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
   229 	if (!reset) {
       
   230 		if (strlen(_cmd_text) >= MAX_LENGTH_COMPANY_NAME_BYTES) return CMD_ERROR;
       
   231 		if (!IsUniqueCompanyName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
       
   232 	}
   230 
   233 
   231 	if (flags & DC_EXEC) {
   234 	if (flags & DC_EXEC) {
   232 		Player *p = GetPlayer(_current_player);
   235 		Player *p = GetPlayer(_current_player);
   233 		free(p->name);
   236 		free(p->name);
   234 		p->name = strdup(_cmd_text);
   237 		p->name = reset ? NULL : strdup(_cmd_text);
   235 		MarkWholeScreenDirty();
   238 		MarkWholeScreenDirty();
   236 	}
   239 	}
   237 
   240 
   238 	return CommandCost();
   241 	return CommandCost();
   239 }
   242 }
   258  * @param p1 unused
   261  * @param p1 unused
   259  * @param p2 unused
   262  * @param p2 unused
   260  */
   263  */
   261 CommandCost CmdChangePresidentName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   264 CommandCost CmdChangePresidentName(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
   262 {
   265 {
   263 	if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_PRESIDENT_NAME_BYTES) return CMD_ERROR;
   266 	bool reset = StrEmpty(_cmd_text);
   264 
   267 
   265 	if (!IsUniquePresidentName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
   268 	if (!reset) {
       
   269 		if (strlen(_cmd_text) >= MAX_LENGTH_PRESIDENT_NAME_BYTES) return CMD_ERROR;
       
   270 		if (!IsUniquePresidentName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
       
   271 	}
   266 
   272 
   267 	if (flags & DC_EXEC) {
   273 	if (flags & DC_EXEC) {
   268 		Player *p = GetPlayer(_current_player);
   274 		Player *p = GetPlayer(_current_player);
   269 		free(p->president_name);
   275 		free(p->president_name);
   270 		p->president_name = strdup(_cmd_text);
   276 
   271 
   277 		if (reset) {
   272 		if (p->name_1 == STR_SV_UNNAMED && p->name == NULL) {
   278 			p->president_name = NULL;
   273 			char buf[80];
   279 		} else {
   274 
   280 			p->president_name = strdup(_cmd_text);
   275 			snprintf(buf, lengthof(buf), "%s Transport", _cmd_text);
   281 
   276 			_cmd_text = buf;
   282 			if (p->name_1 == STR_SV_UNNAMED && p->name == NULL) {
   277 			DoCommand(0, 0, 0, DC_EXEC, CMD_CHANGE_COMPANY_NAME);
   283 				char buf[80];
       
   284 
       
   285 				snprintf(buf, lengthof(buf), "%s Transport", _cmd_text);
       
   286 				_cmd_text = buf;
       
   287 				DoCommand(0, 0, 0, DC_EXEC, CMD_CHANGE_COMPANY_NAME);
       
   288 			}
   278 		}
   289 		}
       
   290 
   279 		MarkWholeScreenDirty();
   291 		MarkWholeScreenDirty();
   280 	}
   292 	}
   281 
   293 
   282 	return CommandCost();
   294 	return CommandCost();
   283 }
   295 }