src/town_cmd.cpp
changeset 8258 9fa31acb07bc
parent 8254 1496654ca5e7
child 8264 b1e85998c7d3
equal deleted inserted replaced
8257:3151fdbc73f9 8258:9fa31acb07bc
    53 	this->xy = tile;
    53 	this->xy = tile;
    54 }
    54 }
    55 
    55 
    56 Town::~Town()
    56 Town::~Town()
    57 {
    57 {
    58 	DeleteName(this->townnametype);
    58 	free(this->name);
    59 
    59 
    60 	if (CleaningPool()) return;
    60 	if (CleaningPool()) return;
    61 
    61 
    62 	Industry *i;
    62 	Industry *i;
    63 
    63 
  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 */