/*
 * This file is part of OpenTTD.
 * 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.
 * 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.
 * 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/>.
 */

/**
 * @file roadtypes.h
 * All the roadtype-specific information is stored here.
 */

#ifndef ROADTYPES_H
#define ROADTYPES_H

/**
 * Global Roadtype definition
 */
static const RoadTypeInfo _original_roadtypes[] = {
	/* Road */
	{
		/* GUI sprites */
		{
			SPR_IMG_ROAD_X_DIR,
			SPR_IMG_ROAD_Y_DIR,
			SPR_IMG_AUTOROAD,
			SPR_IMG_ROAD_DEPOT,
			SPR_IMG_ROAD_TUNNEL,
			SPR_IMG_CONVERT_ROAD,
		},

		{
			SPR_CURSOR_ROAD_NESW,
			SPR_CURSOR_ROAD_NWSE,
			SPR_CURSOR_AUTOROAD,
			SPR_CURSOR_ROAD_DEPOT,
			SPR_CURSOR_ROAD_TUNNEL,
			SPR_CURSOR_CONVERT_ROAD,
		},

		/* strings */
		{
			STR_ROAD_NAME_ROAD,
			STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION,
			STR_ROAD_MENU_ROAD_CONSTRUCTION,
			STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION,
			STR_REPLACE_ROAD_VEHICLES,
			STR_ENGINE_PREVIEW_ROAD_VEHICLE,

			STR_ERROR_CAN_T_BUILD_ROAD_HERE,
			STR_ERROR_CAN_T_REMOVE_ROAD_FROM,
			STR_ERROR_CAN_T_BUILD_ROAD_DEPOT,
			{ STR_ERROR_CAN_T_BUILD_BUS_STATION,         STR_ERROR_CAN_T_BUILD_TRUCK_STATION },
			{ STR_ERROR_CAN_T_REMOVE_BUS_STATION,        STR_ERROR_CAN_T_REMOVE_TRUCK_STATION },
			STR_ERROR_CAN_T_CONVERT_ROAD,
			{ STR_STATION_BUILD_BUS_ORIENTATION,         STR_STATION_BUILD_TRUCK_ORIENTATION },
			{ STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP, STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP },
		},

		/* Powered roadtypes */
		ROADTYPES_ROAD,

		/* flags */
		ROTFB_TOWN_BUILD,

		/* extra flags */
		RXTFB_NONE,

		/* collision mode */
		RTCM_NORMAL,

		/* cost multiplier */
		8,

		/* maintenance cost multiplier */
		16,

		/* max speed */
		0,

		/* road type label */
		ROADTYPE_LABEL_ROAD,

		/* alternate labels */
		RoadTypeLabelList(),

		/* map colour */
		0x01,

		/* introduction date */
		CalTime::MIN_DATE,

		/* roadtypes required for this to be introduced */
		ROADTYPES_NONE,

		/* introduction road types */
		ROADTYPES_ROAD,

		/* sort order */
		0x07,

		{ nullptr },
		{ nullptr },
	},

	/* Electrified Tram */
	{
		/* GUI sprites */
		{
			SPR_IMG_TRAMWAY_X_DIR,
			SPR_IMG_TRAMWAY_Y_DIR,
			SPR_IMG_AUTOTRAM,
			SPR_IMG_ROAD_DEPOT,
			SPR_IMG_ROAD_TUNNEL,
			SPR_IMG_CONVERT_TRAM,
		},

		{
			SPR_CURSOR_TRAMWAY_NESW,
			SPR_CURSOR_TRAMWAY_NWSE,
			SPR_CURSOR_AUTOTRAM,
			SPR_CURSOR_ROAD_DEPOT,
			SPR_CURSOR_ROAD_TUNNEL,
			SPR_CURSOR_CONVERT_TRAM,
		},

		/* strings */
		{
			STR_ROAD_NAME_TRAM,
			STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION,
			STR_ROAD_MENU_TRAM_CONSTRUCTION,
			STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION,
			STR_REPLACE_TRAM_VEHICLES,
			STR_ENGINE_PREVIEW_TRAM_VEHICLE,

			STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE,
			STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM,
			STR_ERROR_CAN_T_BUILD_TRAM_DEPOT,
			{ STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION,         STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION },
			{ STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION,        STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION },
			STR_ERROR_CAN_T_CONVERT_TRAMWAY,
			{ STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION,         STR_STATION_BUILD_CARGO_TRAM_ORIENTATION },
			{ STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP, STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP },
		},

		/* Powered roadtypes */
		ROADTYPES_TRAM,

		/* flags */
		ROTFB_CATENARY | ROTFB_NO_HOUSES,

		/* extra flags */
		RXTFB_NONE,

		/* collision mode */
		RTCM_NORMAL,

		/* cost multiplier */
		16,

		/* maintenance cost multiplier */
		24,

		/* max speed */
		0,

		/* road type label */
		ROADTYPE_LABEL_TRAM,

		/* alternate labels */
		RoadTypeLabelList(),

		/* map colour */
		0x01,

		/* introduction date */
		CalTime::INVALID_DATE,

		/* roadtypes required for this to be introduced */
		ROADTYPES_NONE,

		/* introduction road types */
		ROADTYPES_TRAM,

		/* sort order */
		0x17,

		{ nullptr },
		{ nullptr },
	},
};

#endif /* ROADTYPES_H */
