diff options
Diffstat (limited to 'command.h')
-rw-r--r-- | command.h | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/command.h b/command.h new file mode 100644 index 000000000..b2e330622 --- /dev/null +++ b/command.h @@ -0,0 +1,180 @@ +#ifndef COMMAND_H +#define COMMAND_H + +enum { + CMD_BUILD_RAILROAD_TRACK = 0, + CMD_REMOVE_RAILROAD_TRACK = 1, + CMD_BUILD_SINGLE_RAIL = 2, + CMD_REMOVE_SINGLE_RAIL = 3, + CMD_LANDSCAPE_CLEAR = 4, + CMD_BUILD_BRIDGE = 5, + CMD_BUILD_RAILROAD_STATION = 6, + CMD_BUILD_TRAIN_DEPOT = 7, + CMD_BUILD_SIGNALS = 8, + CMD_REMOVE_SIGNALS = 9, + CMD_TERRAFORM_LAND = 10, + CMD_PURCHASE_LAND_AREA = 11, + CMD_SELL_LAND_AREA = 12, + CMD_BUILD_TUNNEL = 13, + + CMD_REMOVE_FROM_RAILROAD_STATION = 14, + CMD_CONVERT_RAIL = 15, + + CMD_BUILD_TRAIN_CHECKPOINT = 16, + CMD_RENAME_CHECKPOINT = 17, + CMD_REMOVE_TRAIN_CHECKPOINT = 18, + + CMD_BUILD_TRUCK_STATION = 19, + CMD_BUILD_BUS_STATION = 21, + CMD_BUILD_LONG_ROAD = 23, + CMD_REMOVE_LONG_ROAD = 24, + CMD_BUILD_ROAD = 25, + CMD_REMOVE_ROAD = 26, + CMD_BUILD_ROAD_DEPOT = 27, + + CMD_BUILD_AIRPORT = 29, + + CMD_BUILD_DOCK = 30, + + CMD_BUILD_SHIP_DEPOT = 31, + CMD_BUILD_BUOY = 32, + + CMD_PLANT_TREE = 33, + + CMD_BUILD_RAIL_VEHICLE = 34, + CMD_MOVE_RAIL_VEHICLE = 35, + + CMD_START_STOP_TRAIN = 36, + + CMD_SELL_RAIL_WAGON = 38, + + CMD_TRAIN_GOTO_DEPOT = 39, + CMD_FORCE_TRAIN_PROCEED = 40, + CMD_REVERSE_TRAIN_DIRECTION = 41, + + CMD_MODIFY_ORDER = 42, + CMD_SKIP_ORDER = 43, + CMD_DELETE_ORDER = 44, + CMD_INSERT_ORDER = 45, + + CMD_CHANGE_TRAIN_SERVICE_INT = 46, + + CMD_BUILD_INDUSTRY = 47, + + CMD_BUILD_COMPANY_HQ = 48, + CMD_SET_PLAYER_FACE = 49, + CMD_SET_PLAYER_COLOR = 50, + + CMD_INCREASE_LOAN = 51, + CMD_DECREASE_LOAN = 52, + + CMD_WANT_ENGINE_PREVIEW = 53, + + CMD_NAME_VEHICLE = 54, + CMD_RENAME_ENGINE = 55, + CMD_CHANGE_COMPANY_NAME = 56, + CMD_CHANGE_PRESIDENT_NAME = 57, + CMD_RENAME_STATION = 58, + + CMD_SELL_AIRCRAFT = 59, + CMD_START_STOP_AIRCRAFT = 60, + CMD_BUILD_AIRCRAFT = 61, + CMD_SEND_AIRCRAFT_TO_HANGAR = 62, + CMD_CHANGE_AIRCRAFT_SERVICE_INT = 63, + CMD_REFIT_AIRCRAFT = 64, + + CMD_PLACE_SIGN = 65, + CMD_RENAME_SIGN = 66, + + CMD_BUILD_ROAD_VEH = 67, + CMD_START_STOP_ROADVEH = 68, + CMD_SELL_ROAD_VEH = 69, + CMD_SEND_ROADVEH_TO_DEPOT = 70, + CMD_TURN_ROADVEH = 71, + CMD_CHANGE_ROADVEH_SERVICE_INT = 72, + + CMD_PAUSE = 73, + + CMD_BUY_SHARE_IN_COMPANY = 74, + CMD_SELL_SHARE_IN_COMPANY = 75, + CMD_BUY_COMPANY = 76, + + CMD_BUILD_TOWN = 77, + + CMD_RENAME_TOWN = 80, + CMD_DO_TOWN_ACTION = 81, + + CMD_SET_ROAD_DRIVE_SIDE = 82, + CMD_SET_TOWN_NAME_TYPE = 83, + + + CMD_CHANGE_DIFFICULTY_LEVEL = 85, + + CMD_START_STOP_SHIP = 86, + CMD_SELL_SHIP = 87, + CMD_BUILD_SHIP = 88, + CMD_SEND_SHIP_TO_DEPOT = 89, + CMD_CHANGE_SHIP_SERVICE_INT = 90, + CMD_REFIT_SHIP = 91, + + CMD_START_NEW_GAME = 92, + CMD_LOAD_GAME = 93, + CMD_CREATE_SCENARIO = 94, + CMD_SET_SINGLE_PLAYER = 95, + + CMD_SET_NEW_LANDSCAPE_TYPE = 97, + + CMD_GEN_RANDOM_NEW_GAME = 98, + + CMD_CLONE_ORDER = 99, + CMD_CLEAR_AREA = 100, + + CMD_RESUME = 101, + + CMD_MONEY_CHEAT = 102, + CMD_BUILD_CANAL = 103, + + CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc. + CMD_LEVEL_LAND = 105, // level land + + CMD_REFIT_RAIL_VEHICLE = 106, + CMD_RESTORE_ORDER_INDEX = 107, + CMD_BUILD_LOCK = 108, + + CMD_START_SCENARIO = 109, + + //CMD_DESTROY_INDUSTRY = 109, +}; + +enum { + DC_EXEC = 1, + DC_AUTO = 2, // don't allow building on structures + DC_QUERY_COST = 4, // query cost only, don't build. + DC_NO_WATER = 8, // don't allow building on water + DC_NO_RAIL_OVERLAP = 0x10, // don't allow overlap of rails (used in buildrail) + DC_AI_BUILDING = 0x20, // special building rules for AI + DC_NO_TOWN_RATING = 0x40, // town rating does not disallow you from building + DC_FORCETEST = 0x80, // force test too. + + CMD_ERROR = ((int32)0x80000000), +}; + +#define CMD_MSG(x) ((x)<<16) + +enum { + CMD_AUTO = 0x200, + CMD_NO_WATER = 0x400, + CMD_DONT_NETWORK = 0x800, // execute the command without sending it on the network + CMD_ASYNC = 0x1000, // execute the command asynchronously without testing first in networking +}; + +//#define return_cmd_error(errcode) do { _error_message=(errcode); return CMD_ERROR; } while(0) +#define return_cmd_error(errcode) do { return CMD_ERROR | (errcode); } while (0) + +/* command.c */ +int32 DoCommand(int x, int y, uint32 p1, uint32 p2, uint32 flags, uint procc); +int32 DoCommandByTile(TileIndex tile, uint32 p1, uint32 p2, uint32 flags, uint procc); + +int32 GetAvailableMoneyForCommand(); + +#endif /* COMMAND_H */ |