# DEF_CMD(CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_RAILROAD_TRACK # DEF_CMD(CmdRemoveRailroadTrack, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_REMOVE_RAILROAD_TRACK 'BUILD_RAILROAD_TRACK': { 'start_tile': ('tile', 'TileIndex'), 'end_tile': ('p1', 'TileIndex'), 'railtype': ('p2', 0, 6, ''), 'track': ('p2', 6, 3, 'Track'), 'fail_on_obstacle': ('p2', 10, 'bool'), 'fail_on_signal': ('p2', 11, 'bool'), '_area': ('track', 'start_tile', 'end_tile', 'track'), '_no_water': True, }, 'REMOVE_RAILROAD_TRACK': { 'start_tile': ('tile', 'TileIndex'), 'end_tile': ('p1', 'TileIndex'), 'railtype': ('p2', 0, 6, ''), 'track': ('p2', 6, 3, 'Track'), 'fail_on_obstacle': ('p2', 10, 'bool'), 'fail_on_signal': ('p2', 11, 'bool'), '_area': ('track', 'start_tile', 'end_tile', 'track'), }, # DEF_CMD(CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_SINGLE_RAIL # DEF_CMD(CmdRemoveSingleRail, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_REMOVE_SINGLE_RAIL 'BUILD_SINGLE_RAIL': { 'tile': True, 'railtype': ('p1', 'RailType'), 'track': ('p2', 0, 3, 'Track'), 'fail_on_signal': ('p2', 3), '_area': 'tile', '_no_water': True, }, 'REMOVE_SINGLE_RAIL': { 'tile': True, 'track': ('p2', 0, 3, 'Track'), 'fail_on_signal': ('p2', 3), '_area': 'tile', }, # DEF_CMD(CmdLandscapeClear, CMD_DEITY, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_LANDSCAPE_CLEAR 'LANDSCAPE_CLEAR': { 'tile': True, '_area': 'tile', '_deity': True, } # DEF_CMD(CmdBuildBridge, CMD_DEITY | CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_BRIDGE 'BUILD_BRIDGE': { 'end_tile': ('tile', 'TileIndex'), 'start_tile': ('p1', 'TileIndex'), 'bridge_type': ('p2', 0, 8, 'BridgeType'), 'railtype': ('p2', 8, 6, 'RailType'), 'transport_type': ('p2', 15, 2, 'TransportType'), '_area': ('bridge', 'start_tile', 'end_tile'), '_deity': True, } # DEF_CMD(CmdBuildRailStation, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_RAIL_STATION 'BUILD_RAIL_STATION': { 'start_tile': ('tile', 'TileIndex'), 'railtype': ('p1', 0, 6, 'RailType'), 'axis': ('p1', 6, 1, 'Axis'), 'num_tracks': ('p1', 8, 8, 'uint8'), 'platform_len': ('p1', 16, 8, 'uint8'), 'allow_adjacent': ('p1', 24, 'bool'), 'station_class': ('p2', 0, 8, 'StationClassID'), 'spec_index': ('p2', 8, 8, 'uint8'), 'station_to_join_id': ('p2', 16, 16, 'StationID'), '_no_water': True, '_area': ('station', 'start_tile', 'axis', 'num_tracks', 'platform_len'), } # DEF_CMD(CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_TRAIN_DEPOT 'BUILD_TRAIN_DEPOT': { 'tile': True, 'railtype': ('p1', 'RailType'), 'ddir': ('p2', 'DiagDirection'), '_area': 'tile', '_no_water': True, } # DEF_CMD(CmdBuildSingleSignal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_SIGNALS # DEF_CMD(CmdRemoveSingleSignal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_REMOVE_SIGNALS 'BUILD_SINGLE_SIGNAL': { 'tile': True, 'track': ('p1', 0, 3, 'Track'), 'override': ('p1', 3, 'bool'), 'semaphore': ('p1', 4, 'bool'), 'signal_type': ('p1', 5, 3, 'SignalType'), 'convert': ('p1', 8, 'bool'), 'cycle_start': ('p1', 9, 3, 'SignalType'), 'cycle_stop': ('p1', 12, 3, 'SignalType'), 'cycle_count': ('p1', 15, 2, 'uint8'), 'convert': ('p1', 17, 'bool'), 'signal_to_copy': ('p2', 'SignalType'), '_area': 'tile', } 'REMOVE_SINGLE_SIGNAL': { 'tile': True, 'track': ('p1', 0, 3, 'Track'), '_area': 'tile', } # DEF_CMD(CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_TERRAFORM_LAND 'TERRAFORM_LAND': { 'tile': True, 'corners': ('p1', 'uint8'), 'direction': ('p2', 'uint8'), '_area': ('terraform', 'tile', 'corners', 'direction'), } # DEF_CMD(CmdBuildObject, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_OBJECT 'BUILD_OBJECT': { 'tile': True, 'type': ('p1', 0, 16, 'ObjectType'), 'view': ('p2', 0, 2, 'uint8'), '_area': ('object', 'tile', 'type'), } # DEF_CMD(CmdBuildTunnel, CMD_DEITY | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_TUNNEL 'BUILD_TUNNEL': { } 'goal_question': { 'question_id': ('p1', 0, 16, 'uint16'), 'company_id': ('p1', 16, 16, 'CompanyID', '(p2 & 0x80000000) == 0'), 'client_id': ('p1', 16, 16, 'ClientID', '(p2 & 0x80000000) == 1'), 'buttons': ('p2', 0, 18, 'uint32'), 'type': ('p2', 29, 2, 'uint8'), 'for_client': ('p2', 31, 1, 'bool'), },