#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_BUILD_MANY_SIGNALS = 110, //CMD_DESTROY_INDUSTRY = 109, CMD_DESTROY_COMPANY_HQ = 111, }; 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 */