2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 /** @file town_cmd.h Command definitions related to towns. */
13 #include "command_type.h"
14 #include "company_type.h"
15 #include "town_type.h"
17 enum TownEffect
: byte
;
19 std::tuple
<CommandCost
, Money
, TownID
> CmdFoundTown(DoCommandFlag flags
, TileIndex tile
, TownSize size
, bool city
, TownLayout layout
, bool random_location
, uint32 townnameparts
, const std::string
&text
);
20 CommandCost
CmdRenameTown(DoCommandFlag flags
, TownID town_id
, const std::string
&text
);
21 CommandCost
CmdDoTownAction(DoCommandFlag flags
, TownID town_id
, uint8 action
);
22 CommandCost
CmdTownGrowthRate(DoCommandFlag flags
, TownID town_id
, uint16 growth_rate
);
23 CommandCost
CmdTownRating(DoCommandFlag flags
, TownID town_id
, CompanyID company_id
, int16 rating
);
24 CommandCost
CmdTownCargoGoal(DoCommandFlag flags
, TownID town_id
, TownEffect te
, uint32 goal
);
25 CommandCost
CmdTownSetText(DoCommandFlag flags
, TownID town_id
, const std::string
&text
);
26 CommandCost
CmdExpandTown(DoCommandFlag flags
, TownID town_id
, uint32 grow_amount
);
27 CommandCost
CmdDeleteTown(DoCommandFlag flags
, TownID town_id
);
29 DEF_CMD_TRAIT(CMD_FOUND_TOWN
, CmdFoundTown
, CMD_DEITY
| CMD_NO_TEST
, CMDT_LANDSCAPE_CONSTRUCTION
) // founding random town can fail only in exec run
30 DEF_CMD_TRAIT(CMD_RENAME_TOWN
, CmdRenameTown
, CMD_DEITY
| CMD_SERVER
, CMDT_OTHER_MANAGEMENT
)
31 DEF_CMD_TRAIT(CMD_DO_TOWN_ACTION
, CmdDoTownAction
, 0, CMDT_LANDSCAPE_CONSTRUCTION
)
32 DEF_CMD_TRAIT(CMD_TOWN_CARGO_GOAL
, CmdTownCargoGoal
, CMD_DEITY
, CMDT_OTHER_MANAGEMENT
)
33 DEF_CMD_TRAIT(CMD_TOWN_GROWTH_RATE
, CmdTownGrowthRate
, CMD_DEITY
, CMDT_OTHER_MANAGEMENT
)
34 DEF_CMD_TRAIT(CMD_TOWN_RATING
, CmdTownRating
, CMD_DEITY
, CMDT_OTHER_MANAGEMENT
)
35 DEF_CMD_TRAIT(CMD_TOWN_SET_TEXT
, CmdTownSetText
, CMD_DEITY
| CMD_STR_CTRL
, CMDT_OTHER_MANAGEMENT
)
36 DEF_CMD_TRAIT(CMD_EXPAND_TOWN
, CmdExpandTown
, CMD_DEITY
, CMDT_LANDSCAPE_CONSTRUCTION
)
37 DEF_CMD_TRAIT(CMD_DELETE_TOWN
, CmdDeleteTown
, CMD_OFFLINE
, CMDT_LANDSCAPE_CONSTRUCTION
)
39 CommandCallback CcFoundTown
;
40 void CcFoundRandomTown(Commands cmd
, const CommandCost
&result
, Money
, TownID town_id
);
42 #endif /* TOWN_CMD_H */