1886 * @param p1 town ID to rename |
1886 * @param p1 town ID to rename |
1887 * @param p2 unused |
1887 * @param p2 unused |
1888 */ |
1888 */ |
1889 CommandCost CmdRenameTown(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
1889 CommandCost CmdRenameTown(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
1890 { |
1890 { |
1891 StringID str; |
|
1892 Town *t; |
1891 Town *t; |
1893 |
1892 |
1894 if (!IsValidTownID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR; |
1893 if (!IsValidTownID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR; |
1895 |
1894 |
1896 t = GetTown(p1); |
1895 t = GetTown(p1); |
1897 |
1896 |
1898 if (!IsUniqueTownName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE); |
1897 if (!IsUniqueTownName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE); |
1899 |
1898 |
1900 str = AllocateName(_cmd_text, 4); |
|
1901 if (str == 0) return CMD_ERROR; |
|
1902 |
|
1903 if (flags & DC_EXEC) { |
1899 if (flags & DC_EXEC) { |
1904 DeleteName(t->townnametype); |
1900 free(t->name); |
1905 t->townnametype = str; |
1901 t->name = strdup(_cmd_text); |
1906 t->townnamegrfid = 0; |
|
1907 |
1902 |
1908 UpdateTownVirtCoord(t); |
1903 UpdateTownVirtCoord(t); |
1909 _town_sort_dirty = true; |
1904 _town_sort_dirty = true; |
1910 UpdateAllStationVirtCoord(); |
1905 UpdateAllStationVirtCoord(); |
1911 UpdateAllWaypointSigns(); |
1906 UpdateAllWaypointSigns(); |
1912 MarkWholeScreenDirty(); |
1907 MarkWholeScreenDirty(); |
1913 } else { |
|
1914 DeleteName(str); |
|
1915 } |
1908 } |
1916 return CommandCost(); |
1909 return CommandCost(); |
1917 } |
1910 } |
1918 |
1911 |
1919 /** Called from GUI */ |
1912 /** Called from GUI */ |
2415 |
2408 |
2416 SLE_VAR(Town, num_houses, SLE_UINT16), |
2409 SLE_VAR(Town, num_houses, SLE_UINT16), |
2417 SLE_CONDVAR(Town, townnamegrfid, SLE_UINT32, 66, SL_MAX_VERSION), |
2410 SLE_CONDVAR(Town, townnamegrfid, SLE_UINT32, 66, SL_MAX_VERSION), |
2418 SLE_VAR(Town, townnametype, SLE_UINT16), |
2411 SLE_VAR(Town, townnametype, SLE_UINT16), |
2419 SLE_VAR(Town, townnameparts, SLE_UINT32), |
2412 SLE_VAR(Town, townnameparts, SLE_UINT32), |
|
2413 SLE_CONDSTR(Town, name, SLE_STR, 0, 84, SL_MAX_VERSION), |
2420 |
2414 |
2421 SLE_VAR(Town, flags12, SLE_UINT8), |
2415 SLE_VAR(Town, flags12, SLE_UINT8), |
2422 SLE_VAR(Town, statues, SLE_UINT8), |
2416 SLE_VAR(Town, statues, SLE_UINT8), |
2423 |
2417 |
2424 /* sort_index_obsolete was stored here in savegame format 0 - 1 */ |
2418 /* sort_index_obsolete was stored here in savegame format 0 - 1 */ |