summaryrefslogtreecommitdiff
path: root/src/settings_type.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings_type.h')
-rw-r--r--src/settings_type.h73
1 files changed, 72 insertions, 1 deletions
diff --git a/src/settings_type.h b/src/settings_type.h
index e6ac3e015..d567152e8 100644
--- a/src/settings_type.h
+++ b/src/settings_type.h
@@ -110,13 +110,35 @@ struct GUISettings {
uint8 scrollwheel_scrolling; ///< scrolling using the scroll wheel?
uint8 scrollwheel_multiplier; ///< how much 'wheel' per incoming event from the OS?
bool timetable_arrival_departure; ///< show arrivals and departures in vehicle timetables
+ uint8 max_departures; ///< maximum number of departures to show per station
+ uint16 max_departure_time; ///< maximum time in advance to show departures
+ uint16 departure_calc_frequency; ///< how often to calculate departures (in ticks)
+ bool departure_show_vehicle; ///< whether to show vehicle names with departures
+ bool departure_show_group; ///< whether to show group names with departures
+ bool departure_show_company; ///< whether to show company names with departures
+ bool departure_show_vehicle_type; ///< whether to show vehicle type icons with departures
+ bool departure_show_vehicle_color; ///< whether to show vehicle type icons in silver instead of orange
+ bool departure_larger_font; ///< whether to show the calling at list in a larger font
+ bool departure_destination_type; ///< whether to show destination types for ports and airports
+ bool departure_show_both; ///< whether to show departure and arrival times on the same line
+ bool departure_only_passengers; ///< whether to only show passenger services
+ bool departure_smart_terminus; ///< whether to only show passenger services
+ uint8 departure_conditionals; ///< how to handle conditional orders
+ bool departure_show_all_stops; ///< whether to show stops regardless of loading/unloading done at them
+ bool departure_merge_identical; ///< whether to merge identical departures
bool left_mouse_btn_scrolling; ///< left mouse button scroll
bool pause_on_newgame; ///< whether to start new games paused or not
bool enable_signal_gui; ///< show the signal GUI when the signal button is pressed
Year coloured_news_year; ///< when does newspaper become coloured?
bool timetable_in_ticks; ///< whether to show the timetable in ticks rather than days
+ bool time_in_minutes; ///< whether to use the hh:mm conversion when printing dates
+ bool timetable_start_text_entry; ///< whether to enter timetable start times as text (hhmm format)
+ uint8 ticks_per_minute; ///< how many ticks per minute
+ uint8 date_with_time; ///< whether to show the month and year with the time
+ uint16 clock_offset; ///< clock offset in minutes
bool quick_goto; ///< Allow quick access to 'goto button' in vehicle orders window
bool auto_euro; ///< automatically switch to euro in 2002
+ byte simulated_wormhole_signals; ///< simulate signals in tunnel
byte drag_signals_density; ///< many signals density
bool drag_signals_fixed_distance; ///< keep fixed distance between signals when dragging
Year semaphore_build_before; ///< build semaphore signals automatically before this year
@@ -135,6 +157,8 @@ struct GUISettings {
uint8 graph_line_thickness; ///< the thickness of the lines in the various graph guis
uint8 osk_activation; ///< Mouse gesture to trigger the OSK.
+ uint32 layer_view_type; ///< зарезервировано (тип отображения)
+
uint16 console_backlog_timeout; ///< the minimum amount of time items should be in the console backlog before they will be removed in ~3 seconds granularity.
uint16 console_backlog_length; ///< the minimum amount of items in the console backlog before items will be removed.
#ifdef ENABLE_NETWORK
@@ -151,7 +175,6 @@ struct GUISettings {
uint8 settings_restriction_mode; ///< selected restriction mode in adv. settings GUI. @see RestrictionMode
bool newgrf_show_old_versions; ///< whether to show old versions in the NewGRF list
uint8 newgrf_default_palette; ///< default palette to use for NewGRFs without action 14 palette information
-
/**
* Returns true when the user has sufficient privileges to edit newgrfs on a running game
* @return whether the user has sufficient privileges to edit newgrfs in an existing game
@@ -265,6 +288,7 @@ struct GameCreationSettings {
Year starting_year; ///< starting date
uint8 map_x; ///< X size of map
uint8 map_y; ///< Y size of map
+ uint8 layers; ///< map layer count
byte land_generator; ///< the landscape generator
byte oil_refinery_limit; ///< distance oil refineries allowed from map edge
byte snow_line_height; ///< a number 0-15 that configured snow line height
@@ -305,6 +329,13 @@ struct ConstructionSettings {
uint16 clear_frame_burst; ///< how many tiles may, over a short period, be cleared?
uint32 tree_per_64k_frames; ///< how many trees may, over a long period, be planted per 65536 frames?
uint16 tree_frame_burst; ///< how many trees may, over a short period, be planted?
+
+ bool traffic_lights; ///< Whether traffic lights are enabled.
+ bool towns_build_traffic_lights; ///< Whether towns build traffic lights during road construction.
+ bool allow_building_tls_in_towns; ///< Whether the players are allowed to build traffic lights on town owned roads.
+ uint8 traffic_lights_green_phase; ///< How long traffic lights' green phase lasts.
+ uint8 max_tlc_size; ///< Maximum size for traffic light consists.
+ uint8 max_tlc_distance; ///< Maximum distance between traffic lights for synchronising them.
};
/** Settings related to the AI. */
@@ -352,6 +383,7 @@ struct NPFSettings {
uint32 npf_road_curve_penalty; ///< the penalty for curves
uint32 npf_crossing_penalty; ///< the penalty for level crossings
uint32 npf_road_drive_through_penalty; ///< the penalty for going through a drive-through road stop
+ uint32 npf_road_trafficlight_penalty; ///< Penalty for junctions with traffic lights.
uint32 npf_road_dt_occupied_penalty; ///< the penalty multiplied by the fill percentage of a drive-through road stop
uint32 npf_road_bay_occupied_penalty; ///< the penalty multiplied by the fill percentage of a road bay
};
@@ -368,6 +400,7 @@ struct YAPFSettings {
uint32 road_curve_penalty; ///< penalty for curves
uint32 road_crossing_penalty; ///< penalty for level crossing
uint32 road_stop_penalty; ///< penalty for going through a drive-through road stop
+ uint32 road_trafficlight_penalty; ///< Penalty for junctions with traffic lights.
uint32 road_stop_occupied_penalty; ///< penalty multiplied by the fill percentage of a drive-through road stop
uint32 road_stop_bay_occupied_penalty; ///< penalty multiplied by the fill percentage of a road bay
bool rail_firstred_twoway_eol; ///< treat first red two-way signal as dead end
@@ -394,6 +427,14 @@ struct YAPFSettings {
uint32 rail_longer_platform_per_tile_penalty; ///< penalty for longer station platform than train (per tile)
uint32 rail_shorter_platform_penalty; ///< penalty for shorter station platform than train
uint32 rail_shorter_platform_per_tile_penalty; ///< penalty for shorter station platform than train (per tile)
+
+ uint32 route_transfer_cost; ///< penalty for transferring to a different vehicle
+ uint32 route_max_transfers; ///< maximum number of allowed transfers
+ uint16 route_distance_factor; ///< factor for the link length
+ uint16 route_travel_time_factor; ///< factor * CYapfCostRouteLinkT::PENALTY_DIVISOR (=16) for the link travel time
+ uint16 route_station_last_veh_factor; ///< factor * CYapfCostRouteLinkT::PENALTY_DIVISOR (=16) for the time since the last vehicle arrived at a station
+ uint16 route_station_waiting_factor; ///< factor * CYapfCostRouteLinkT::PENALTY_DIVISOR (=16) for the waiting cargo at a station
+ byte route_mode_cost_factor[4]; ///< vehicle type dependent factor for the link length
};
/** Settings related to all pathfinders. */
@@ -425,6 +466,7 @@ struct OrderSettings {
bool gradual_loading; ///< load vehicles gradually
bool selectgoods; ///< only send the goods to station if a train has been there
bool no_servicing_if_no_breakdowns; ///< don't send vehicles to depot when breakdowns are disabled
+ bool automatic_timetable_separation; ///< Enable automatic separation of vehicles in the timetable.
bool serviceathelipad; ///< service helicopters at helipads automatically (no need to send to depot)
};
@@ -451,6 +493,33 @@ struct VehicleSettings {
uint8 plane_crashes; ///< number of plane crashes, 0 = none, 1 = reduced, 2 = normal
};
+/** Settings related to cargo destinations. */
+struct CargodestSettings {
+ uint8 mode_pax_mail; ///< routing mode for cargoes with TE_PASSENGERS or TE_MAIL
+ uint8 mode_town_cargo; ///< routing mode for cargoes with other town effects
+ uint8 mode_others; ///< routing mode for all other cargoes
+ uint8 base_town_links[2]; ///< minimum number of town demand links for (0=#BASE_TOWN_LINKS) all cargoes except (1=#BASE_TOWN_LINKS_SYMM) symmetric cargoes
+ uint8 base_ind_links[3]; ///< minimum number of industry demand links for (0=#BASE_IND_LINKS) all cargoes except (1=#BASE_IND_LINKS_TOWN) town cargoes and (2=#BASE_IND_LINKS_SYMM) symmetric cargoes
+ uint8 city_town_links; ///< additional number of links for cities
+ uint8 town_chances_town[4]; ///< chances a link from a town to a town has a specific destination class (@see FindTownDestination)
+ uint8 town_chances_city[4]; ///< chances a link from a city to a town has a specific destination class (@see FindTownDestination)
+ uint8 ind_chances[3]; ///< chances a link to an industry has a specific destination class (@see FindIndustryDestination)
+ uint8 random_dest_chance; ///< percentage for traffic with random destination
+ uint32 big_town_pop[2]; ///< (0=#BIG_TOWN_POP_MAIL) mail, (1=#BIG_TOWN_POP_PAX) passenger amount to count as a big town
+ uint16 pop_scale_town[4]; ///< population/cargo amount scale divisor for (0=#SCALE_TOWN) all cargoes (1=#SCALE_TOWN_BIG) for big towns except (2=#SCALE_TOWN_PAX) passengers (3=#SCALE_TOWN_BIG_PAX) for big towns
+ uint16 cargo_scale_ind[2]; ///< cargo amount scale divisor for (0=#CARGO_SCALE_IND) all cargoes except (1=#CARGO_SCALE_IND_TOWN) town cargoes
+ uint16 min_weight_town[2]; ///< minimum link weight for (0=MIN_WEIGHT_TOWN) all cargoes except (1=MIN_WEIGHT_TOWN_PAX) passengers
+ uint16 min_weight_ind; ///< minimum link weight for industry links
+ uint16 weight_scale_town[4]; ///< weight scale divisor for (0=#SCALE_TOWN) all cargoes (1=#SCALE_TOWN_BIG) for big towns except (2=#SCALE_TOWN_PAX) passengers (3=#SCALE_TOWN_BIG_PAX) for big towns
+ uint16 weight_scale_ind[2]; ///< weight scale divisor for (0=#WEIGHT_SCALE_IND_PROD) produced cargo (1=#WEIGHT_SCALE_IND_PILE) stockpiled cargo
+ uint32 town_nearby_dist; ///< squared distance (on a 256x256 map) inside which a town is considered nearby
+ uint32 ind_nearby_dist; ///< squared distance (on a 256x256 map) inside which an industry is considered nearby
+ uint16 max_route_age; ///< maximum days since the last vehicle traveled a link until link expiration
+ uint16 route_recalc_delay; ///< delay in ticks between recalculating the next hop of cargo packets
+ uint16 route_recalc_chunk; ///< maximum amount of cargo packets to recalculate in one step
+ uint16 max_route_penalty[2]; ///< maximum penalty factor based on distance, (1) base value, (2) random additional span
+};
+
/** Settings related to the economy. */
struct EconomySettings {
bool inflation; ///< disable inflation
@@ -473,8 +542,10 @@ struct EconomySettings {
TownFoundingByte found_town; ///< town founding, @see TownFounding
bool station_noise_level; ///< build new airports when the town noise level is still within accepted limits
uint16 town_noise_population[3]; ///< population to base decision on noise evaluation (@see town_council_tolerance)
+ uint8 random_road_construction; ///< Chance for towns to start random road construction
bool allow_town_level_crossings; ///< towns are allowed to build level crossings
bool infrastructure_maintenance; ///< enable monthly maintenance fee for owner infrastructure
+ CargodestSettings cargodest; ///< settings related to cargo destinations
};
/** Settings related to stations. */