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 } |