diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -989,22 +989,26 @@ uint PatchPage::Draw(GameSettings *patch } -static PatchEntry _patches_ui[] = { +static PatchEntry _patches_ui_display[] = { PatchEntry("gui.vehicle_speed"), PatchEntry("gui.status_long_date"), PatchEntry("gui.date_format_in_default_names"), - PatchEntry("gui.show_finances"), + PatchEntry("gui.population_in_label"), + PatchEntry("gui.measure_tooltip"), + PatchEntry("gui.loading_indicators"), + PatchEntry("gui.liveries"), + PatchEntry("gui.show_track_reservation"), +}; +/** Display options sub-page */ +static PatchPage _patches_ui_display_page = {_patches_ui_display, lengthof(_patches_ui_display)}; + +static PatchEntry _patches_ui_interaction[] = { PatchEntry("gui.autoscroll"), PatchEntry("gui.reverse_scroll"), PatchEntry("gui.smooth_scroll"), - PatchEntry("gui.errmsg_duration"), - PatchEntry("gui.toolbar_pos"), - PatchEntry("gui.measure_tooltip"), PatchEntry("gui.window_snap_radius"), PatchEntry("gui.window_soft_limit"), - PatchEntry("gui.population_in_label"), PatchEntry("gui.link_terraform_toolbar"), - PatchEntry("gui.liveries"), PatchEntry("gui.prefer_teamchat"), /* While the horizontal scrollwheel scrolling is written as general code, only * the cocoa (OSX) driver generates input for it. @@ -1015,47 +1019,67 @@ static PatchEntry _patches_ui[] = { /* We might need to emulate a right mouse button on mac */ PatchEntry("gui.right_mouse_btn_emulation"), #endif + PatchEntry("gui.left_mouse_btn_scrolling"), +}; +/** Interaction sub-page */ +static PatchPage _patches_ui_interaction_page = {_patches_ui_interaction, lengthof(_patches_ui_interaction)}; + +static PatchEntry _patches_ui[] = { + PatchEntry(&_patches_ui_display_page, STR_CONFIG_PATCHES_DISPLAY_OPTIONS), + PatchEntry(&_patches_ui_interaction_page, STR_CONFIG_PATCHES_INTERACTION), + PatchEntry("gui.show_finances"), + PatchEntry("gui.errmsg_duration"), + PatchEntry("gui.toolbar_pos"), PatchEntry("gui.pause_on_newgame"), PatchEntry("gui.advanced_vehicle_list"), - PatchEntry("gui.loading_indicators"), PatchEntry("gui.timetable_in_ticks"), PatchEntry("gui.quick_goto"), PatchEntry("gui.default_rail_type"), PatchEntry("gui.always_build_infrastructure"), PatchEntry("gui.persistent_buildingtools"), - PatchEntry("gui.show_track_reservation"), - PatchEntry("gui.left_mouse_btn_scrolling"), }; /** Interface subpage */ static PatchPage _patches_ui_page = {_patches_ui, lengthof(_patches_ui)}; +static PatchEntry _patches_construction_signals[] = { + PatchEntry("construction.signal_side"), + PatchEntry("gui.enable_signal_gui"), + PatchEntry("gui.drag_signals_density"), + PatchEntry("gui.semaphore_build_before"), + PatchEntry("gui.default_signal_type"), + PatchEntry("gui.cycle_signal_types"), +}; +/** Signals subpage */ +static PatchPage _patches_construction_signals_page = {_patches_construction_signals, lengthof(_patches_construction_signals)}; + static PatchEntry _patches_construction[] = { + PatchEntry(&_patches_construction_signals_page, STR_CONFIG_PATCHES_CONSTRUCTION_SIGNALS), PatchEntry("construction.build_on_slopes"), PatchEntry("construction.autoslope"), PatchEntry("construction.extra_dynamite"), PatchEntry("construction.longbridges"), - PatchEntry("construction.signal_side"), PatchEntry("station.always_small_airport"), - PatchEntry("gui.enable_signal_gui"), - PatchEntry("gui.drag_signals_density"), PatchEntry("game_creation.oil_refinery_limit"), - PatchEntry("gui.semaphore_build_before"), - PatchEntry("gui.default_signal_type"), - PatchEntry("gui.cycle_signal_types"), }; /** Construction sub-page */ static PatchPage _patches_construction_page = {_patches_construction, lengthof(_patches_construction)}; +static PatchEntry _patches_stations_cargo[] = { + PatchEntry("order.improved_load"), + PatchEntry("order.gradual_loading"), + PatchEntry("order.selectgoods"), +}; +/** Cargo handling sub-page */ +static PatchPage _patches_stations_cargo_page = {_patches_stations_cargo, lengthof(_patches_stations_cargo)}; + static PatchEntry _patches_stations[] = { + PatchEntry(&_patches_stations_cargo_page, STR_CONFIG_PATCHES_STATIONS_CARGOHANDLING), PatchEntry("station.join_stations"), - PatchEntry("order.improved_load"), - PatchEntry("order.selectgoods"), PatchEntry("gui.new_nonstop"), PatchEntry("station.nonuniform_stations"), PatchEntry("station.station_spread"), PatchEntry("order.serviceathelipad"), PatchEntry("station.modified_catchment"), - PatchEntry("order.gradual_loading"), PatchEntry("construction.road_stop_on_town_road"), PatchEntry("station.adjacent_stations"), PatchEntry("station.distant_join_stations"), @@ -1064,27 +1088,37 @@ static PatchEntry _patches_stations[] = /** Stations sub-page */ static PatchPage _patches_stations_page = {_patches_stations, lengthof(_patches_stations)}; -static PatchEntry _patches_economy[] = { - PatchEntry("economy.inflation"), - PatchEntry("construction.raw_industry_construction"), - PatchEntry("economy.multiple_industry_per_town"), - PatchEntry("economy.same_industry_close"), +static PatchEntry _patches_economy_towns[] = { PatchEntry("economy.bribe"), PatchEntry("economy.exclusive_rights"), - PatchEntry("economy.give_money"), - PatchEntry("gui.colored_news_year"), - PatchEntry("economy.smooth_economy"), - PatchEntry("economy.allow_shares"), PatchEntry("economy.town_layout"), PatchEntry("economy.mod_road_rebuild"), PatchEntry("economy.town_growth_rate"), PatchEntry("economy.larger_towns"), PatchEntry("economy.initial_city_size"), }; +/** Towns sub-page */ +static PatchPage _patches_economy_towns_page = {_patches_economy_towns, lengthof(_patches_economy_towns)}; + +static PatchEntry _patches_economy_industries[] = { + PatchEntry("construction.raw_industry_construction"), + PatchEntry("economy.multiple_industry_per_town"), + PatchEntry("economy.same_industry_close"), +}; +/** Industries sub-page */ +static PatchPage _patches_economy_industries_page = {_patches_economy_industries, lengthof(_patches_economy_industries)}; + +static PatchEntry _patches_economy[] = { + PatchEntry(&_patches_economy_towns_page, STR_CONFIG_PATCHES_ECONOMY_TOWNS), + PatchEntry(&_patches_economy_industries_page, STR_CONFIG_PATCHES_ECONOMY_INDUSTRIES), + PatchEntry("economy.inflation"), + PatchEntry("gui.colored_news_year"), + PatchEntry("economy.smooth_economy"), +}; /** Economy sub-page */ static PatchPage _patches_economy_page = {_patches_economy, lengthof(_patches_economy)}; -static PatchEntry _patches_ai[] = { +static PatchEntry _patches_ai_npc[] = { PatchEntry("ai.ainew_active"), PatchEntry("ai.ai_in_multiplayer"), PatchEntry("ai.ai_disable_veh_train"), @@ -1092,38 +1126,70 @@ static PatchEntry _patches_ai[] = { PatchEntry("ai.ai_disable_veh_aircraft"), PatchEntry("ai.ai_disable_veh_ship"), }; +/** Computer players sub-page */ +static PatchPage _patches_ai_npc_page = {_patches_ai_npc, lengthof(_patches_ai_npc)}; + +static PatchEntry _patches_ai[] = { + PatchEntry(&_patches_ai_npc_page, STR_CONFIG_PATCHES_AI_NPC), + PatchEntry("economy.give_money"), + PatchEntry("economy.allow_shares"), +}; /** AI sub-page */ static PatchPage _patches_ai_page = {_patches_ai, lengthof(_patches_ai)}; -static PatchEntry _patches_vehicles[] = { - PatchEntry("vehicle.realistic_acceleration"), - PatchEntry("pf.forbid_90_deg"), - PatchEntry("vehicle.mammoth_trains"), - PatchEntry("order.gotodepot"), - PatchEntry("pf.roadveh_queue"), +static PatchEntry _patches_vehicles_routing[] = { PatchEntry("pf.pathfinder_for_trains"), + PatchEntry("pf.forbid_90_deg"), PatchEntry("pf.pathfinder_for_roadvehs"), + PatchEntry("pf.roadveh_queue"), PatchEntry("pf.pathfinder_for_ships"), - PatchEntry("gui.vehicle_income_warn"), - PatchEntry("gui.order_review_system"), - PatchEntry("vehicle.never_expire_vehicles"), - PatchEntry("gui.lost_train_warn"), +}; +/** Autorenew sub-page */ +static PatchPage _patches_vehicles_routing_page = {_patches_vehicles_routing, lengthof(_patches_vehicles_routing)}; + +static PatchEntry _patches_vehicles_autorenew[] = { PatchEntry("gui.autorenew"), PatchEntry("gui.autorenew_months"), PatchEntry("gui.autorenew_money"), - PatchEntry("vehicle.max_trains"), - PatchEntry("vehicle.max_roadveh"), - PatchEntry("vehicle.max_aircraft"), - PatchEntry("vehicle.max_ships"), +}; +/** Autorenew sub-page */ +static PatchPage _patches_vehicles_autorenew_page = {_patches_vehicles_autorenew, lengthof(_patches_vehicles_autorenew)}; + +static PatchEntry _patches_vehicles_servicing[] = { PatchEntry("vehicle.servint_ispercent"), PatchEntry("vehicle.servint_trains"), PatchEntry("vehicle.servint_roadveh"), PatchEntry("vehicle.servint_ships"), PatchEntry("vehicle.servint_aircraft"), PatchEntry("order.no_servicing_if_no_breakdowns"), +}; +/** Servicing sub-page */ +static PatchPage _patches_vehicles_servicing_page = {_patches_vehicles_servicing, lengthof(_patches_vehicles_servicing)}; + +static PatchEntry _patches_vehicles_trains[] = { + PatchEntry("vehicle.realistic_acceleration"), + PatchEntry("vehicle.mammoth_trains"), + PatchEntry("gui.vehicle_income_warn"), + PatchEntry("gui.lost_train_warn"), PatchEntry("vehicle.wagon_speed_limits"), PatchEntry("vehicle.disable_elrails"), PatchEntry("vehicle.freight_trains"), +}; +/** Trains sub-page */ +static PatchPage _patches_vehicles_trains_page = {_patches_vehicles_trains, lengthof(_patches_vehicles_trains)}; + +static PatchEntry _patches_vehicles[] = { + PatchEntry(&_patches_vehicles_routing_page, STR_CONFIG_PATCHES_VEHICLES_ROUTING), + PatchEntry(&_patches_vehicles_autorenew_page, STR_CONFIG_PATCHES_VEHICLES_AUTORENEW), + PatchEntry(&_patches_vehicles_servicing_page, STR_CONFIG_PATCHES_VEHICLES_SERVICING), + PatchEntry(&_patches_vehicles_trains_page, STR_CONFIG_PATCHES_VEHICLES_TRAINS), + PatchEntry("order.gotodepot"), + PatchEntry("gui.order_review_system"), + PatchEntry("vehicle.never_expire_vehicles"), + PatchEntry("vehicle.max_trains"), + PatchEntry("vehicle.max_roadveh"), + PatchEntry("vehicle.max_aircraft"), + PatchEntry("vehicle.max_ships"), PatchEntry("vehicle.plane_speed"), PatchEntry("order.timetabling"), PatchEntry("vehicle.dynamic_engines"),