From 5e83f01595b7a07b61dbfc9964b4f5cab86d4406 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 6 Jan 2024 14:24:39 +0100 Subject: [PATCH] Feature: analyze Survey Results per week and report a summary of them --- .github/workflows/create-summary.yml | 137 + README.md | 6 + _config.yml | 6 +- _data/summaries/2024/wk01.json | 4510 ++++++++++++++++++++++++++ _layouts/default.html | 4 +- _layouts/summaries.html | 75 + _plugins/openttd-filters.rb | 10 + _summaries/2024/wk01.md | 8 + analysis/__main__.py | 194 +- pages/results.html | 19 - pages/summaries.html | 19 + requirements.base | 0 12 files changed, 4956 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/create-summary.yml create mode 100644 _data/summaries/2024/wk01.json create mode 100644 _layouts/summaries.html create mode 100644 _plugins/openttd-filters.rb create mode 100644 _summaries/2024/wk01.md delete mode 100644 pages/results.html create mode 100644 pages/summaries.html delete mode 100644 requirements.base diff --git a/.github/workflows/create-summary.yml b/.github/workflows/create-summary.yml new file mode 100644 index 0000000..a4efac3 --- /dev/null +++ b/.github/workflows/create-summary.yml @@ -0,0 +1,137 @@ +name: Create Summary + +on: + schedule: + - cron: '0 5 * * 1' + workflow_dispatch: + inputs: + year: + description: 'Year to create the summary of' + required: true + week: + description: 'ISO week to create the summary of' + required: true + +jobs: + publish: + runs-on: ubuntu-latest + + name: Create Summary + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install rclone + shell: bash + run: | + curl -sL https://rclone.org/install.sh | sudo bash + + rclone config create --no-obscure openttd s3 \ + provider Cloudflare \ + access_key_id ${{ secrets.R2_SURVEY_ACCESS_KEY_ID }} \ + secret_access_key ${{ secrets.R2_SURVEY_SECRET_ACCESS_KEY }} \ + endpoint ${{ secrets.R2_SURVEY_ENDPOINT }} \ + acl private \ + no_check_bucket true + + - name: Calculate dates + shell: bash + id: dates + run: | + year="${{ inputs.year }}" + week="${{ inputs.week }}" + + # If no year/week is given, detect the week before today. + # This assumes this script is started on a Monday. + if [ -z "${year}" ] || [ -z "${week}"]; then + year=$(date -d "yesterday" +%G) + week=$(date -d "yesterday" +%V) + fi + + # Calculate the start and end of the week. + day_in_week=$(date -d "${year}-01-01" +%u) + if [ "${day_in_week}" -lt 5 ]; then + first_monday=$(date -d "${year}-01-01 -${day_in_week} days +1 day" +%Y-%m-%d) + else + first_monday=$(date -d "${year}-01-01 -${day_in_week} days +8 day" +%Y-%m-%d) + fi + start_date=$(date -d "${first_monday} +${week} weeks -1 week" +%Y-%m-%d) + end_date=$(date -d "${start_date} +6 days" +%Y-%m-%d) + + # Ensure the start date is actually in the week we want. + start_check=$(date -d "${start_date}" +$G-%V) + if [ "${start_check}" != "${year}-${week}" ]; then + echo "Start date ${start_date} is not in week ${week} of ${year}, but in ${start_check}" + exit 1 + fi + + # Ensure the end date is actually in the week we want. + end_check=$(date -d "${end_date}" +$G-%V) + if [ "${end_check}" != "${year}-${week}" ]; then + echo "End date ${end_date} is not in week ${week} of ${year}, but in ${end_check}" + exit 1 + fi + + if [ "${week}" -lt 10 ]; then + week="0${week}" + fi + + echo "Week: ${week}" + echo "Year: ${year}" + echo "Start date: ${start_date}" + echo "End date: ${end_date}" + + echo "week=${week}" >> "$GITHUB_OUTPUT" + echo "year=${year}" >> "$GITHUB_OUTPUT" + echo "start_date=${start_date}" >> "$GITHUB_OUTPUT" + echo "end_date=${end_date}" >> "$GITHUB_OUTPUT" + + - name: Download packed results + shell: bash + run: | + echo "Downloading packs for week ${{ steps.dates.outputs.week }} in ${{ steps.dates.outputs.year }}: [${{ steps.dates.outputs.start_date }} .. ${{ steps.dates.outputs.end_date }}]" + + mkdir -p packed + for i in $(seq 0 6); do + date=$(date -d "${start_date} +${i} days" +%Y-%m-%d) + date_year=$(date -d "${start_date} +${i} days" +%Y) + date_month=$(date -d "${start_date} +${i} days" +%m) + + echo "Downloading ${date}" + rclone copy -v openttd:survey-packed-prod/${date_year}/${date_month}/openttd-survey-pack.${date}.tar.xz packed + done + + - name: Run analysis + shell: bash + run: | + mkdir -p _data/summaries/${{ steps.dates.outputs.year }} + python -m analysis packed/* > _data/summaries/${{ steps.dates.outputs.year }}/wk${{ steps.dates.outputs.week }}.json + + - name: Create summary entry + shell: bash + run: | + mkdir -p _summaries/${{ steps.dates.outputs.year }} + + summary="_summaries/${{ steps.dates.outputs.year }}/wk${{ steps.dates.outputs.week }}.md" + + echo "---" > ${summary} + echo "name: ${{ steps.dates.outputs.year }} - Week ${{ steps.dates.outputs.week }}" >> ${summary} + echo "active_nav: summaries" >> ${summary} + echo "year: \"${{ steps.dates.outputs.year }}\"" >> ${summary} + echo "week: wk${{ steps.dates.outputs.week }}" >> ${summary} + echo "start_date: \"${{ steps.dates.outputs.start_date }}\"" >> ${summary} + echo "end_date: \"${{ steps.dates.outputs.end_date }}\"" >> ${summary} + echo "---" >> ${summary} + + - name: Commit and push + shell: bash + run: | + git config --global user.name "OpenTTD Survey" + git config --global user.email "survey@openttd.org" + + git add _data/summaries/${{ steps.dates.outputs.year }}/wk${{ steps.dates.outputs.week }}.json + git add _summaries/${{ steps.dates.outputs.year }}/wk${{ steps.dates.outputs.week }}.md + + git commit -m "Add: summary for week ${{ steps.dates.outputs.week }} of ${{ steps.dates.outputs.year }}" + git push diff --git a/README.md b/README.md index 19c1741..8777a95 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ This is a [Jekyll](https://jekyllrb.com/) website, and is served by nginx as a s ## Development +### Survey results + +To summarize survey results, the Python application `analysis` processes a bundle of JSONs and outputs another JSON with the summary. + +To run it, simply execute `python3 -m analysis ` + ### Running a local server If you do not want to run a server, but just build the current site, replace `serve` with `build` in the examples below. diff --git a/_config.yml b/_config.yml index a89693c..649b3f7 100644 --- a/_config.yml +++ b/_config.yml @@ -23,10 +23,10 @@ defaults: layout: "default" - scope: path: "" - type: "analysis" + type: "summaries" values: - layout: "analysis" + layout: "summaries" collections: - analysis: + summaries: output: true diff --git a/_data/summaries/2024/wk01.json b/_data/summaries/2024/wk01.json new file mode 100644 index 0000000..055ea99 --- /dev/null +++ b/_data/summaries/2024/wk01.json @@ -0,0 +1,4510 @@ +{ + "jgrpp-0.56.2": { + "game.settings.advance_order_on_clone": { + "false": 3201830, + "true": 838419 + }, + "game.settings.ai.ai_disable_veh_aircraft": { + "false": 3601304, + "true": 438945 + }, + "game.settings.ai.ai_disable_veh_roadveh": { + "false": 3991816, + "true": 48433 + }, + "game.settings.ai.ai_disable_veh_ship": { + "false": 3773004, + "true": 267245 + }, + "game.settings.ai.ai_disable_veh_train": { + "false": 3648505, + "true": 391744 + }, + "game.settings.ai.ai_in_multiplayer": { + "true": 3094805, + "false": 945444 + }, + "game.settings.allow_hidpi": { + "true": 164895 + }, + "game.settings.auto_timetable_separation_rate": { + "40": 3941932, + "30": 44448, + "100": 40386, + "50": 13483 + }, + "game.settings.blitter": { + "(empty)": 3969651, + "32bpp-sse4-anim": 68928, + "32bpp-anim": 1306, + "8bpp-optimized": 364 + }, + "game.settings.cargo_payment_x_mode": { + "0": 3696369, + "1": 343880 + }, + "game.settings.client_locale.sync_locale_network_server": { + "false": 3821017, + "true": 219232 + }, + "game.settings.construction.allow_docks_under_bridges": { + "true": 2129854, + "false": 1910395 + }, + "game.settings.construction.allow_grf_objects_under_bridges": { + "true": 2097142, + "false": 1943107 + }, + "game.settings.construction.allow_road_stops_under_bridges": { + "true": 4040249 + }, + "game.settings.construction.allow_stations_under_bridges": { + "true": 2679896, + "false": 1360353 + }, + "game.settings.construction.autoslope": { + "true": 4033307, + "false": 6942 + }, + "game.settings.construction.build_object_area_permitted": { + "true": 3580386, + "false": 459863 + }, + "game.settings.construction.build_object_frame_burst": { + "2048": 4040249 + }, + "game.settings.construction.build_object_per_64k_frames": { + "2097152": 4040249 + }, + "game.settings.construction.build_on_slopes": { + "true": 4040249 + }, + "game.settings.construction.chunnel": { + "true": 2985711, + "false": 1054538 + }, + "game.settings.construction.clear_frame_burst": { + "4096": 4040249 + }, + "game.settings.construction.clear_per_64k_frames": { + "4194304": 4040249 + }, + "game.settings.construction.command_pause_level": { + "3": 2441709, + "1": 1588797, + "2": 5368, + "0": 4375 + }, + "game.settings.construction.convert_town_road_no_houses": { + "false": 3759657, + "true": 280592 + }, + "game.settings.construction.crossing_with_competitor": { + "true": 4040249 + }, + "game.settings.construction.enable_build_river": { + "true": 2655201, + "false": 1385048 + }, + "game.settings.construction.enable_remove_water": { + "true": 4035787, + "false": 4462 + }, + "game.settings.construction.extra_dynamite": { + "true": 3993043, + "false": 47206 + }, + "game.settings.construction.extra_tree_placement": { + "2": 2820108, + "3": 709718, + "0": 388479, + "1": 121944 + }, + "game.settings.construction.flood_from_edges": { + "true": 3959759, + "false": 80490 + }, + "game.settings.construction.freeform_edges": { + "true": 3934189, + "false": 106060 + }, + "game.settings.construction.ignore_object_intro_dates": { + "false": 3419414, + "true": 620835 + }, + "game.settings.construction.industry_platform": { + "1": 2707599, + "3": 618733, + "0": 548988, + "4": 151152, + "2": 13777 + }, + "game.settings.construction.map_edge_mode": { + "0": 4018931, + "2": 11777, + "1": 9541 + }, + "game.settings.construction.map_height_limit": { + "30": 832746, + "142": 526877, + "64": 341366, + "65": 268363, + "78": 262936, + "15": 231511, + "115": 204408, + "34": 164464, + "88": 156668, + "45": 156339, + "52": 120401, + "32": 119666, + "87": 118272, + "19": 114117, + "46": 112745, + "90": 57410, + "255": 55279, + "114": 45913, + "143": 44448, + "38": 31774, + "60": 27326, + "82": 10800, + "75": 10541, + "20": 9381, + "76": 6942, + "95": 4462, + "128": 2223, + "47": 1306, + "105": 857, + "25": 708 + }, + "game.settings.construction.max_bridge_height": { + "12": 2553411, + "255": 856668, + "120": 242346, + "100": 133443, + "16": 71941, + "20": 67604, + "32": 45913, + "24": 43157, + "36": 14635, + "18": 7299, + "15": 3832 + }, + "game.settings.construction.max_bridge_length": { + "64": 1778290, + "128": 1182285, + "4096": 306207, + "640": 269645, + "30": 120993, + "72": 110186, + "500": 100509, + "80": 56813, + "100": 53502, + "512": 12977, + "70": 9776, + "200": 7441, + "68": 7299, + "24": 5237, + "256": 5113, + "8": 4462, + "2429": 4375, + "32": 3720, + "999": 1214, + "130": 205 + }, + "game.settings.construction.max_tunnel_length": { + "64": 1786036, + "128": 1080939, + "4096": 312863, + "640": 269645, + "50": 120993, + "72": 110186, + "150": 101723, + "300": 75365, + "120": 52789, + "256": 51026, + "80": 19500, + "200": 17818, + "100": 17801, + "512": 12977, + "32": 5026, + "24": 3931, + "999": 1214, + "96": 310, + "70": 107 + }, + "game.settings.construction.maximum_signal_evaluations": { + "256": 4008742, + "4096": 21941, + "265": 5957, + "500": 3609 + }, + "game.settings.construction.no_expire_objects_after": { + "0": 3977297, + "1": 56295, + "2024": 4375, + "2000": 2282 + }, + "game.settings.construction.purchase_land_frame_burst": { + "1024": 4040249 + }, + "game.settings.construction.purchase_land_per_64k_frames": { + "1048576": 4040249 + }, + "game.settings.construction.purchase_land_permitted": { + "1": 2438513, + "2": 1601736 + }, + "game.settings.construction.rail_custom_bridge_heads": { + "true": 3919256, + "false": 120993 + }, + "game.settings.construction.raw_industry_construction": { + "1": 1709900, + "2": 1269886, + "0": 1060463 + }, + "game.settings.construction.road_custom_bridge_heads": { + "true": 4040249 + }, + "game.settings.construction.road_stop_on_competitor_road": { + "true": 3772256, + "false": 267993 + }, + "game.settings.construction.road_stop_on_town_road": { + "true": 4040053, + "false": 196 + }, + "game.settings.construction.terraform_frame_burst": { + "4096": 4040249 + }, + "game.settings.construction.terraform_per_64k_frames": { + "4194304": 3912043, + "2500": 79633, + "1048576": 48573 + }, + "game.settings.construction.train_signal_side": { + "1": 3464229, + "0": 576020 + }, + "game.settings.construction.tree_frame_burst": { + "4096": 4040249 + }, + "game.settings.construction.tree_growth_rate": { + "0": 3041911, + "4": 663240, + "3": 156530, + "2": 121576, + "1": 56992 + }, + "game.settings.construction.tree_per_64k_frames": { + "4194304": 4040249 + }, + "game.settings.construction.trees_around_snow_line_dynamic_range": { + "75": 4025409, + "0": 14840 + }, + "game.settings.construction.trees_around_snow_line_enabled": { + "true": 3976865, + "false": 63384 + }, + "game.settings.construction.trees_around_snow_line_range": { + "8": 3873730, + "12": 125455, + "64": 14840, + "1": 10472, + "3": 10296, + "50": 3609, + "2": 1847 + }, + "game.settings.copy_clone_add_to_group": { + "true": 3886888, + "false": 153361 + }, + "game.settings.debug.chicken_bits": { + "0": 4040249 + }, + "game.settings.debug.newgrf_optimiser_flags": { + "0": 3983741, + "1": 56508 + }, + "game.settings.default_sched_dispatch_duration": { + "0": 4022097, + "1440": 18152 + }, + "game.settings.difficulty.competitor_speed": { + "2": 3279578, + "0": 429453, + "4": 146058, + "1": 107063, + "3": 78097 + }, + "game.settings.difficulty.competitors_interval": { + "10": 3583210, + "0": 230258, + "1": 158044, + "60": 42620, + "5": 10296, + "2": 7777, + "11": 5957, + "15": 1414, + "40": 366, + "30": 307 + }, + "game.settings.difficulty.construction_cost": { + "0": 2606306, + "1": 1253285, + "2": 180658 + }, + "game.settings.difficulty.disasters": { + "false": 3848529, + "true": 191720 + }, + "game.settings.difficulty.economy": { + "false": 3490467, + "true": 549782 + }, + "game.settings.difficulty.industry_density": { + "0": 1149855, + "2": 703981, + "4": 644959, + "3": 635125, + "1": 454954, + "5": 447762, + "6": 3613 + }, + "game.settings.difficulty.initial_interest": { + "2": 3011237, + "4": 652469, + "3": 376543 + }, + "game.settings.difficulty.line_reverse_mode": { + "false": 3992700, + "true": 47549 + }, + "game.settings.difficulty.max_loan": { + "300000": 1200658, + "500000": 812566, + "2000000000": 611989, + "2500000": 544968, + "400000": 308204, + "1000000": 177189, + "50000000": 120993, + "10000000": 49745, + "0": 44448, + "900000": 33649, + "1500000": 32337, + "100000": 20005, + "350000": 18921, + "250000": 16549, + "12000000": 14229, + "1100000": 10595, + "380000": 5750, + "2000000": 4511, + "1400000": 4462, + "200000": 4210, + "5000000": 2282, + "150000": 996, + "60000000": 993 + }, + "game.settings.difficulty.max_no_competitors": { + "0": 3119802, + "1": 359044, + "3": 334388, + "12": 119666, + "2": 71744, + "4": 18569, + "14": 11381, + "6": 2948, + "10": 1253, + "8": 655, + "7": 462, + "5": 337 + }, + "game.settings.difficulty.money_cheat_in_multiplayer": { + "false": 3574883, + "true": 465366 + }, + "game.settings.difficulty.number_towns": { + "0": 1191582, + "4": 1009829, + "2": 880045, + "1": 656236, + "3": 302557 + }, + "game.settings.difficulty.override_town_settings_in_multiplayer": { + "false": 3291242, + "true": 749007 + }, + "game.settings.difficulty.quantity_sea_lakes": { + "2": 1761330, + "0": 1474338, + "1": 427231, + "4": 275685, + "3": 101665 + }, + "game.settings.difficulty.rename_towns_in_multiplayer": { + "false": 3315910, + "true": 724339 + }, + "game.settings.difficulty.subsidy_duration": { + "1": 3080094, + "5000": 338966, + "3": 322859, + "4": 121272, + "20": 76188, + "15": 42218, + "2": 28463, + "10": 22357, + "5": 4000, + "50": 3832 + }, + "game.settings.difficulty.subsidy_multiplier": { + "2": 2646010, + "3": 1266125, + "1": 128114 + }, + "game.settings.difficulty.terrain_type": { + "3": 1353189, + "1": 1115326, + "4": 542471, + "0": 465665, + "2": 412700, + "5": 150898 + }, + "game.settings.difficulty.town_council_tolerance": { + "0": 3186379, + "3": 792142, + "1": 50449, + "2": 11279 + }, + "game.settings.difficulty.vehicle_breakdowns": { + "0": 2021589, + "1": 1217027, + "64": 702351, + "2": 99282 + }, + "game.settings.difficulty.vehicle_costs": { + "0": 3007747, + "1": 828444, + "2": 204058 + }, + "game.settings.difficulty.vehicle_costs_in_depot": { + "1": 2840183, + "8": 721177, + "5": 268363, + "2": 132598, + "7": 44448, + "4": 33480 + }, + "game.settings.difficulty.vehicle_costs_when_stopped": { + "1": 2278183, + "2": 853577, + "8": 734211, + "3": 125239, + "4": 49039 + }, + "game.settings.display_opt.FULL_ANIMATION": { + "true": 3797992, + "false": 1067728 + }, + "game.settings.display_opt.FULL_DETAIL": { + "true": 3434120, + "false": 1431600 + }, + "game.settings.display_opt.SHOW_COMPETITOR_SIGNS": { + "true": 3758141, + "false": 1107579 + }, + "game.settings.display_opt.SHOW_SIGNS": { + "true": 3809542, + "false": 1056178 + }, + "game.settings.display_opt.SHOW_STATION_NAMES": { + "true": 3664882, + "false": 1200838 + }, + "game.settings.display_opt.SHOW_TOWN_NAMES": { + "true": 3736888, + "false": 1128832 + }, + "game.settings.display_opt.WAYPOINTS": { + "true": 3489775, + "false": 1375945 + }, + "game.settings.economy.allow_shares": { + "false": 2279221, + "true": 1761028 + }, + "game.settings.economy.allow_town_bridges": { + "true": 3141931, + "false": 898318 + }, + "game.settings.economy.allow_town_level_crossings": { + "false": 2461016, + "true": 1579233 + }, + "game.settings.economy.allow_town_roads": { + "true": 3505257, + "false": 534992 + }, + "game.settings.economy.bribe": { + "true": 3975386, + "false": 64863 + }, + "game.settings.economy.city_zone_0_mult": { + "15": 3238842, + "255": 550672, + "0": 124536, + "100": 80490, + "30": 19828, + "120": 10595, + "75": 10296, + "20": 2282, + "13": 2281, + "50": 427 + }, + "game.settings.economy.city_zone_1_mult": { + "9": 3142075, + "4": 536626, + "0": 197944, + "8": 89327, + "30": 44448, + "16": 10595, + "50": 10296, + "153": 4375, + "10": 2282, + "7": 2281 + }, + "game.settings.economy.city_zone_2_mult": { + "0": 3301662, + "3": 536626, + "4": 89327, + "128": 52789, + "7": 44448, + "32": 10595, + "17": 4375, + "2": 427 + }, + "game.settings.economy.city_zone_3_mult": { + "5": 3143930, + "2": 545463, + "0": 152237, + "14": 117856, + "255": 52789, + "16": 10595, + "25": 10296, + "85": 4375, + "3": 2708 + }, + "game.settings.economy.city_zone_4_mult": { + "3": 3141648, + "1": 545463, + "0": 189603, + "2": 83198, + "255": 52789, + "8": 10595, + "15": 10296, + "45": 4375, + "5": 2282 + }, + "game.settings.economy.day_length_factor": { + "1": 1366641, + "25": 526877, + "4": 373264, + "10": 354789, + "16": 243180, + "20": 176563, + "125": 173805, + "5": 119969, + "8": 102373, + "50": 101166, + "40": 94033, + "6": 78994, + "9": 60386, + "7": 50169, + "19": 42988, + "2": 34897, + "15": 23766, + "14": 19582, + "60": 18500, + "35": 18294, + "11": 17163, + "33": 14011, + "3": 13101, + "30": 8749, + "100": 2162, + "23": 1984, + "31": 1847, + "21": 996 + }, + "game.settings.economy.disable_inflation_newgrf_flag": { + "false": 4029654, + "true": 10595 + }, + "game.settings.economy.dist_local_authority": { + "20": 4040249 + }, + "game.settings.economy.exclusive_rights": { + "true": 2869863, + "false": 1170386 + }, + "game.settings.economy.feeder_payment_share": { + "75": 2855449, + "100": 590868, + "50": 387201, + "80": 70515, + "20": 45913, + "76": 44448, + "60": 42932, + "70": 2282, + "83": 496, + "51": 145 + }, + "game.settings.economy.found_town": { + "2": 1579313, + "0": 1409450, + "1": 1051486 + }, + "game.settings.economy.fund_buildings": { + "true": 3019699, + "false": 1020550 + }, + "game.settings.economy.fund_roads": { + "true": 2806965, + "false": 1233284 + }, + "game.settings.economy.give_money": { + "true": 3954953, + "false": 85296 + }, + "game.settings.economy.industry_cargo_scale_factor": { + "0": 2548994, + "10": 848080, + "50": 316791, + "20": 132113, + "34": 76188, + "30": 62474, + "5": 18091, + "28": 13199, + "16": 10866, + "6": 7777, + "3": 4511, + "4": 579, + "18": 307, + "2": 279 + }, + "game.settings.economy.inflation": { + "false": 3181775, + "true": 858474 + }, + "game.settings.economy.inflation_fixed_dates": { + "true": 2768703, + "false": 1271546 + }, + "game.settings.economy.infrastructure_maintenance": { + "true": 2043931, + "false": 1996318 + }, + "game.settings.economy.infrastructure_sharing[0]": { + "true": 2040662, + "false": 1999587 + }, + "game.settings.economy.infrastructure_sharing[1]": { + "true": 2113804, + "false": 1926445 + }, + "game.settings.economy.infrastructure_sharing[2]": { + "false": 2104655, + "true": 1935594 + }, + "game.settings.economy.infrastructure_sharing[3]": { + "false": 2062971, + "true": 1977278 + }, + "game.settings.economy.initial_city_size": { + "2": 2451666, + "4": 555508, + "10": 394606, + "1": 325409, + "5": 191433, + "3": 119345, + "8": 2282 + }, + "game.settings.economy.larger_towns": { + "4": 2565458, + "16": 526877, + "1": 257018, + "6": 171369, + "5": 152269, + "40": 125455, + "10": 91909, + "7": 60615, + "33": 44448, + "3": 18434, + "8": 10175, + "15": 9669, + "0": 4375, + "2": 2071, + "12": 107 + }, + "game.settings.economy.max_town_heightlevel": { + "255": 3542426, + "150": 156668, + "40": 125455, + "20": 110186, + "26": 44448, + "5": 31771, + "10": 21051, + "42": 7251, + "50": 993 + }, + "game.settings.economy.min_city_land_area": { + "75": 3413428, + "0": 282350, + "400": 120993, + "20": 118272, + "30": 65499, + "40": 16008, + "45": 7299, + "55": 5611, + "100": 5113, + "300": 4462, + "60": 1214 + }, + "game.settings.economy.min_town_land_area": { + "0": 3615748, + "30": 120993, + "10": 110186, + "20": 90239, + "8": 35549, + "40": 31771, + "5": 19077, + "15": 7111, + "25": 5113, + "50": 4462 + }, + "game.settings.economy.min_years_for_shares": { + "6": 3393392, + "0": 494070, + "5": 115201, + "2": 34433, + "10": 1847, + "240": 1306 + }, + "game.settings.economy.mod_road_rebuild": { + "true": 4035341, + "false": 4908 + }, + "game.settings.economy.multiple_industry_per_town": { + "true": 2092371, + "false": 1947878 + }, + "game.settings.economy.payment_algorithm": { + "1": 2601561, + "0": 1438688 + }, + "game.settings.economy.random_road_reconstruction": { + "0": 3763684, + "1": 123392, + "20": 85649, + "120": 41488, + "10": 20740, + "100": 5296 + }, + "game.settings.economy.sharing_fee[0]": { + "100": 3372681, + "5000": 268363, + "0": 159421, + "75": 100509, + "500": 48573, + "300": 40785, + "400": 19582, + "40": 12318, + "420": 10541, + "10": 4573, + "1000000": 1306, + "50": 894, + "750": 703 + }, + "game.settings.economy.sharing_fee[1]": { + "100": 3447795, + "5000": 268363, + "0": 159421, + "50": 104129, + "200": 34422, + "120": 10541, + "5": 7943, + "1": 4375, + "10": 1847, + "1000000": 1306, + "150": 107 + }, + "game.settings.economy.sharing_fee[2]": { + "100": 3399222, + "5000": 268363, + "0": 159421, + "150": 100616, + "200": 68155, + "120": 14840, + "160": 10541, + "5": 7943, + "100000": 4375, + "20": 2726, + "10": 1847, + "1000000": 1306, + "50": 894 + }, + "game.settings.economy.sharing_fee[3]": { + "100": 3410785, + "5000": 268363, + "0": 159421, + "500": 100616, + "200": 48573, + "400": 19582, + "1000": 14840, + "160": 10541, + "10000": 4375, + "50": 1847, + "1000000": 1306 + }, + "game.settings.economy.sharing_payment_in_debt": { + "false": 2481711, + "true": 1558538 + }, + "game.settings.economy.station_noise_level": { + "true": 2021279, + "false": 2018970 + }, + "game.settings.economy.tick_rate": { + "0": 3517310, + "1": 522939 + }, + "game.settings.economy.town_build_tunnels": { + "2": 3370352, + "0": 469717, + "1": 200180 + }, + "game.settings.economy.town_cargo_scale_factor": { + "0": 1742393, + "10": 682801, + "2": 311895, + "20": 309272, + "30": 246721, + "5": 162439, + "15": 119666, + "-3": 95022, + "34": 76188, + "1": 45913, + "-4": 44448, + "26": 27299, + "19": 21970, + "-40": 21051, + "-5": 20002, + "80": 19828, + "-12": 13879, + "28": 13199, + "6": 11549, + "-2": 10648, + "17": 10595, + "-33": 9669, + "-15": 6650, + "23": 4625, + "32": 4624, + "-10": 3329, + "40": 1306, + "9": 764, + "8": 733, + "4": 579, + "24": 311, + "18": 307, + "21": 303, + "16": 271 + }, + "game.settings.economy.town_cargogen_mode": { + "1": 2863062, + "0": 1177187 + }, + "game.settings.economy.town_growth_cargo_transported": { + "0": 3212721, + "40": 315727, + "100": 232755, + "90": 80490, + "30": 68944, + "20": 57476, + "5": 47660, + "10": 9416, + "15": 9395, + "80": 5665 + }, + "game.settings.economy.town_growth_rate": { + "2": 2521968, + "4": 423123, + "-2": 327499, + "0": 295732, + "1": 236665, + "3": 144705, + "-1": 90557 + }, + "game.settings.economy.town_layout": { + "1": 1904750, + "0": 1348647, + "3": 598066, + "2": 102306, + "4": 86480 + }, + "game.settings.economy.town_max_road_slope": { + "4": 3048629, + "0": 555264, + "2": 165441, + "1": 161043, + "8": 103982, + "7": 5611, + "5": 279 + }, + "game.settings.economy.town_min_distance": { + "20": 2814586, + "15": 551810, + "30": 148973, + "40": 122060, + "200": 110186, + "60": 89811, + "50": 62668, + "75": 36383, + "140": 32337, + "250": 31771, + "16": 19582, + "150": 10296, + "100": 7504, + "32": 2282 + }, + "game.settings.economy.town_noise_population[0]": { + "800": 4040249 + }, + "game.settings.economy.town_noise_population[1]": { + "2000": 3976865, + "4000": 63384 + }, + "game.settings.economy.town_noise_population[2]": { + "4000": 3976865, + "20535": 63384 + }, + "game.settings.economy.town_zone_0_mult": { + "15": 3255885, + "255": 690171, + "0": 44448, + "17": 30084, + "30": 10296, + "25": 4375, + "20": 2282, + "11": 2281, + "50": 427 + }, + "game.settings.economy.town_zone_1_mult": { + "9": 3111991, + "3": 547221, + "0": 137873, + "2": 117856, + "255": 52789, + "30": 44448, + "15": 14671, + "8": 8837, + "10": 2282, + "6": 2281 + }, + "game.settings.economy.town_zone_2_mult": { + "0": 3425072, + "2": 551596, + "8": 44448, + "1": 10296, + "4": 8837 + }, + "game.settings.economy.town_zone_3_mult": { + "5": 3114273, + "1": 546922, + "3": 120137, + "0": 110172, + "4": 80490, + "15": 44448, + "8": 14970, + "2": 8837 + }, + "game.settings.economy.town_zone_4_mult": { + "3": 3111991, + "0": 619292, + "1": 289433, + "2": 12876, + "4": 4375, + "5": 2282 + }, + "game.settings.economy.town_zone_calc_mode": { + "false": 2777706, + "true": 1262543 + }, + "game.settings.economy.type": { + "1": 3695420, + "0": 255464, + "2": 89365 + }, + "game.settings.engine_renew": { + "true": 3197535, + "false": 842714 + }, + "game.settings.engine_renew_money": { + "100000": 3548632, + "0": 223699, + "60000": 119234, + "300000": 76393, + "1000000": 44448, + "20000": 19500, + "1020000": 4511, + "130000": 3832 + }, + "game.settings.engine_renew_months": { + "6": 3305116, + "12": 269600, + "-2": 182943, + "0": 115706, + "-6": 97897, + "1": 38410, + "-12": 17716, + "3": 12861 + }, + "game.settings.extra_display_opt.SHOW_HIDDEN_SIGNS": { + "false": 4719763, + "true": 145957 + }, + "game.settings.extra_display_opt.SHOW_MONEY_TEXT_EFFECTS": { + "true": 3923608, + "false": 942112 + }, + "game.settings.extra_transparency_locks": { + "0": 3823794, + "1": 216455 + }, + "game.settings.extra_transparency_options": { + "0": 2965373, + "1": 1074876 + }, + "game.settings.fullscreen": { + "false": 3158649, + "true": 881600 + }, + "game.settings.game_creation.amount_of_rivers": { + "0": 1933652, + "1": 1035029, + "2": 831886, + "3": 211820, + "4": 20342, + "5": 7520 + }, + "game.settings.game_creation.amount_of_rocks": { + "5": 3760096, + "7": 135996, + "1": 76785, + "4": 35026, + "2": 18569, + "6": 13777 + }, + "game.settings.game_creation.build_public_roads": { + "0": 2865538, + "1": 705765, + "2": 468946 + }, + "game.settings.game_creation.climate_threshold_mode": { + "0": 4040249 + }, + "game.settings.game_creation.coast_tropics_width": { + "0": 4036640, + "2": 3609 + }, + "game.settings.game_creation.custom_industry_number": { + "1": 3121187, + "2000": 544968, + "200": 125455, + "560": 79391, + "5000": 76034, + "20": 27567, + "10": 21051, + "9999": 17566, + "14": 13466, + "1000": 10166, + "64": 1306, + "50": 993, + "400": 857, + "100": 242 + }, + "game.settings.game_creation.custom_sea_level": { + "1": 2702955, + "2": 956443, + "10": 157410, + "60": 63384, + "15": 45913, + "70": 44951, + "3": 44448, + "5": 15409, + "30": 6064, + "90": 1390, + "20": 1306, + "13": 279, + "65": 205, + "50": 92 + }, + "game.settings.game_creation.custom_terrain_type": { + "30": 2824631, + "255": 590826, + "1": 337568, + "60": 156668, + "40": 63384, + "33": 33649, + "50": 10541, + "10": 10296, + "14": 10166, + "32": 1306, + "20": 1214 + }, + "game.settings.game_creation.custom_town_number": { + "1": 2315840, + "1400": 544968, + "4000": 242346, + "3000": 120993, + "1500": 118272, + "400": 79391, + "50": 79090, + "5000": 71975, + "144": 69301, + "35": 63384, + "300": 55601, + "283": 45913, + "40": 40470, + "8": 35549, + "32": 31771, + "169": 24749, + "30": 23762, + "500": 17566, + "200": 10099, + "150": 9749, + "1300": 9395, + "1200": 6942, + "800": 6282, + "2500": 4462, + "250": 4024, + "20": 2502, + "100": 2280, + "825": 2071, + "15": 1306, + "120": 196 + }, + "game.settings.game_creation.desert_coverage": { + "50": 2915665, + "20": 546688, + "0": 170393, + "100": 152498, + "60": 95433, + "10": 63663, + "40": 57303, + "25": 19500, + "30": 19106 + }, + "game.settings.game_creation.ending_year": { + "2050": 3509227, + "0": 205491, + "20500": 125455, + "2500": 76188, + "2060": 37677, + "1000": 34523, + "2100": 22369, + "2090": 9116, + "4999999": 8501, + "3000": 6942, + "2049": 2282, + "4000": 1306, + "2051": 993, + "23000": 179 + }, + "game.settings.game_creation.height_affects_rocks": { + "0": 3688257, + "2": 169654, + "1": 82772, + "25": 44448, + "3": 21051, + "5": 20290, + "8": 13777 + }, + "game.settings.game_creation.heightmap_height": { + "30": 2169790, + "127": 545808, + "50": 286797, + "255": 280963, + "100": 219352, + "15": 149349, + "72": 118272, + "45": 70346, + "128": 55190, + "99": 45913, + "31": 27299, + "10": 13466, + "60": 10541, + "12": 10166, + "48": 7251, + "2": 7111, + "80": 4462, + "5": 3609, + "70": 2948, + "1": 2905, + "150": 2450, + "33": 2281, + "25": 1390, + "36": 1306, + "90": 857, + "200": 427 + }, + "game.settings.game_creation.heightmap_rotation": { + "0": 3745725, + "1": 294524 + }, + "game.settings.game_creation.lake_size": { + "8": 3640005, + "20": 177719, + "100": 129830, + "96": 44448, + "2": 14702, + "14": 13777, + "4": 9108, + "12": 6419, + "40": 3609, + "30": 427, + "10": 205 + }, + "game.settings.game_creation.lake_tropics_width": { + "5": 3992192, + "13": 44448, + "25": 3609 + }, + "game.settings.game_creation.lakes_allowed_in_deserts": { + "false": 3924275, + "true": 115974 + }, + "game.settings.game_creation.land_generator": { + "1": 4040249 + }, + "game.settings.game_creation.landscape": { + "temperate": 2062772, + "arctic": 1375253, + "tropic": 602224 + }, + "game.settings.game_creation.map_x": { + "10": 903566, + "12": 735364, + "6": 688350, + "8": 651930, + "9": 432827, + "11": 362502, + "13": 128398, + "14": 72935, + "7": 64377 + }, + "game.settings.game_creation.map_y": { + "11": 858946, + "10": 718471, + "6": 688350, + "8": 643034, + "9": 460255, + "12": 388665, + "13": 172743, + "7": 64377, + "14": 45408 + }, + "game.settings.game_creation.min_river_length": { + "16": 3641482, + "50": 192448, + "60": 156668, + "21": 44653, + "255": 4375, + "75": 427, + "20": 196 + }, + "game.settings.game_creation.oil_refinery_limit": { + "32": 3015103, + "48": 771875, + "128": 142341, + "45": 63384, + "64": 28585, + "12": 11386, + "30": 4024, + "40": 2948, + "27": 496, + "54": 107 + }, + "game.settings.game_creation.rainforest_line_height": { + "8": 4040249 + }, + "game.settings.game_creation.river_route_random": { + "5": 3855809, + "50": 125455, + "35": 44448, + "10": 10296, + "20": 3609, + "3": 427, + "15": 205 + }, + "game.settings.game_creation.river_tropics_width": { + "5": 3767765, + "7": 156668, + "12": 63384, + "8": 44448, + "2": 4375, + "20": 3609 + }, + "game.settings.game_creation.rivers_top_of_hill": { + "true": 3959759, + "false": 80490 + }, + "game.settings.game_creation.se_flat_world_height": { + "1": 3416510, + "3": 481370, + "15": 88483, + "2": 35470, + "10": 10296, + "4": 4511, + "7": 3609 + }, + "game.settings.game_creation.snow_coverage": { + "40": 2181936, + "20": 828316, + "60": 280809, + "100": 195641, + "30": 121273, + "45": 103520, + "55": 88863, + "0": 76188, + "80": 73438, + "50": 52048, + "70": 21051, + "10": 13062, + "90": 4104 + }, + "game.settings.game_creation.snow_line_height": { + "10": 1705204, + "7": 414459, + "8": 349288, + "5": 268363, + "3": 253450, + "2": 249929, + "15": 232696, + "13": 157471, + "12": 122296, + "11": 100509, + "9": 74158, + "25": 45913, + "6": 34193, + "4": 23092, + "24": 4279, + "30": 2726, + "100": 2223 + }, + "game.settings.game_creation.starting_year": { + "1985": 527390, + "1972": 448157, + "2000": 447905, + "1950": 315211, + "1977": 242346, + "1900": 162154, + "1872": 156668, + "1800": 127146, + "1970": 123558, + "3000": 121230, + "1955": 119666, + "2103": 117856, + "1880": 115619, + "1930": 112663, + "1920": 111982, + "1870": 90735, + "1925": 86460, + "1850": 86447, + "2025": 54244, + "2020": 53847, + "2026": 52789, + "1936": 48572, + "1832": 34866, + "1976": 32398, + "1952": 28117, + "1980": 26348, + "1918": 24749, + "1960": 23280, + "1945": 18377, + "2070": 18091, + "1815": 14702, + "1935": 13776, + "1982": 10166, + "1921": 9381, + "2023": 8671, + "1940": 7943, + "1929": 7299, + "725": 6942, + "1997": 5611, + "2001": 4511, + "12024": 4375, + "1938": 4334, + "2050": 2360, + "2015": 2281, + "1860": 2269, + "1949": 1414, + "1879": 1009, + "2077": 840, + "2024": 834, + "8745": 470, + "1978": 462, + "1990": 442, + "1865": 427, + "2010": 250, + "2232": 220, + "2009": 164, + "1913": 147, + "1953": 78 + }, + "game.settings.game_creation.tgen_smoothness": { + "1": 2331633, + "0": 748060, + "3": 538043, + "2": 422513 + }, + "game.settings.game_creation.town_name": { + "21": 1432755, + "22": 717639, + "american": 698744, + "english": 603640, + "polish": 114706, + "dutch": 102306, + "romanian": 76712, + "silly": 67601, + "latin": 67097, + "czech": 63382, + "danish": 28422, + "german": 25867, + "25": 16262, + "swiss": 10296, + "23": 4279, + "108": 3832, + "107": 2948, + "french": 2465, + "turkish": 1218, + "24": 78 + }, + "game.settings.game_creation.tree_placer": { + "2": 2253388, + "0": 955339, + "3": 816682, + "1": 14840 + }, + "game.settings.game_creation.variety": { + "5": 989106, + "4": 913135, + "0": 810340, + "1": 567711, + "3": 483984, + "2": 275973 + }, + "game.settings.game_creation.water_borders": { + "15": 2343400, + "0": 758082, + "16": 444285, + "2": 202197, + "13": 71975, + "5": 53041, + "12": 51026, + "7": 34184, + "10": 29973, + "6": 25592, + "4": 10541, + "1": 9669, + "8": 6105, + "9": 179 + }, + "game.settings.game_time.clock_offset": { + "0": 4008881, + "180": 31368 + }, + "game.settings.game_time.ticks_per_minute": { + "74": 1982927, + "200": 656424, + "100": 268363, + "300": 242346, + "500": 201116, + "296": 130373, + "800": 125455, + "37": 119023, + "50": 102306, + "1980": 32305, + "84": 31368, + "320": 27299, + "1365": 21051, + "600": 19828, + "4": 14702, + "954": 14008, + "10": 10541, + "99": 10472, + "148": 10166, + "2000": 4375, + "60": 3805, + "2400": 3609, + "150": 2450, + "75": 2282, + "94": 2281, + "592": 714, + "444": 427, + "1184": 120, + "54": 113 + }, + "game.settings.game_time.time_in_minutes": { + "true": 2282978, + "false": 1757271 + }, + "game.settings.gui.action_when_viewport_map_is_dblclicked": { + "1": 3969214, + "0": 57612, + "2": 13423 + }, + "game.settings.gui.adv_sig_bridge_tun_modes": { + "false": 2170334, + "true": 1869915 + }, + "game.settings.gui.advanced_vehicle_list": { + "1": 3163353, + "2": 876896 + }, + "game.settings.gui.ai_developer_tools": { + "false": 3389981, + "true": 650268 + }, + "game.settings.gui.allow_hiding_waypoint_labels": { + "false": 3089737, + "true": 950512 + }, + "game.settings.gui.auto_euro": { + "true": 4040249 + }, + "game.settings.gui.auto_remove_signals": { + "false": 2519562, + "true": 1520687 + }, + "game.settings.gui.auto_scrolling": { + "0": 3938307, + "1": 73046, + "2": 28194, + "3": 702 + }, + "game.settings.gui.autosave_interval": { + "10": 2318216, + "120": 667006, + "30": 436476, + "60": 420903, + "0": 59898, + "20": 59150, + "3": 40386, + "15": 21172, + "2": 16763, + "5": 279 + }, + "game.settings.gui.autosave_on_exit": { + "false": 3559084, + "true": 481165 + }, + "game.settings.gui.autosave_on_network_disconnect": { + "true": 4010643, + "false": 29606 + }, + "game.settings.gui.autosave_realtime": { + "true": 3914515, + "false": 125734 + }, + "game.settings.gui.bigger_main_toolbar": { + "false": 3620357, + "true": 419892 + }, + "game.settings.gui.city_in_label": { + "false": 3580390, + "true": 459859 + }, + "game.settings.gui.clock_offset": { + "0": 4004779, + "180": 35470 + }, + "game.settings.gui.coloured_news_year": { + "2000": 3217408, + "1985": 453387, + "1980": 117290, + "1990": 85681, + "0": 51515, + "5000000": 40386, + "1970": 37212, + "1999": 14161, + "1960": 10296, + "1940": 4511, + "1987": 4024, + "2400": 3609, + "1995": 647, + "2002": 122 + }, + "game.settings.gui.console_backlog_length": { + "100": 4040249 + }, + "game.settings.gui.console_backlog_timeout": { + "100": 4040249 + }, + "game.settings.gui.console_show_unlisted": { + "false": 4040249 + }, + "game.settings.gui.cycle_signal_types": { + "0": 2906999, + "1": 1133250 + }, + "game.settings.gui.dash_level_of_route_lines": { + "0": 3786910, + "2": 112650, + "6": 51229, + "9": 34634, + "5": 23750, + "10": 22126, + "1": 8950 + }, + "game.settings.gui.date_format_in_default_names": { + "iso": 3092218, + "long": 821673, + "short": 126358 + }, + "game.settings.gui.date_with_time": { + "0": 2508673, + "3": 1428816, + "1": 68928, + "2": 33832 + }, + "game.settings.gui.default_rail_type": { + "0": 2502910, + "2": 1425183, + "1": 112156 + }, + "game.settings.gui.default_road_type": { + "0": 3079598, + "2": 767556, + "1": 160129, + "3": 32966 + }, + "game.settings.gui.default_signal_type": { + "5": 1638778, + "4": 1447516, + "0": 625833, + "1": 319449, + "2": 8673 + }, + "game.settings.gui.default_viewport_map_mode": { + "0": 3436904, + "1": 412040, + "2": 150190, + "3": 41115 + }, + "game.settings.gui.demolish_confirm_mode": { + "2": 4017402, + "0": 22847 + }, + "game.settings.gui.departure_calc_frequency": { + "10": 3884933, + "3": 56831, + "1": 40386, + "25": 27495, + "15": 14627, + "120": 11602, + "110": 4375 + }, + "game.settings.gui.departure_conditionals": { + "0": 3732017, + "1": 305950, + "2": 2282 + }, + "game.settings.gui.departure_destination_type": { + "false": 2500620, + "true": 1539629 + }, + "game.settings.gui.departure_larger_font": { + "false": 3352169, + "true": 688080 + }, + "game.settings.gui.departure_merge_identical": { + "false": 3419005, + "true": 621244 + }, + "game.settings.gui.departure_only_passengers": { + "false": 3488327, + "true": 551922 + }, + "game.settings.gui.departure_show_all_stops": { + "false": 3606873, + "true": 433376 + }, + "game.settings.gui.departure_show_both": { + "false": 2849900, + "true": 1190349 + }, + "game.settings.gui.departure_show_company": { + "false": 3093079, + "true": 947170 + }, + "game.settings.gui.departure_show_group": { + "false": 2445133, + "true": 1595116 + }, + "game.settings.gui.departure_show_vehicle": { + "false": 2946870, + "true": 1093379 + }, + "game.settings.gui.departure_show_vehicle_color": { + "false": 2902203, + "true": 1138046 + }, + "game.settings.gui.departure_show_vehicle_type": { + "false": 2460763, + "true": 1579486 + }, + "game.settings.gui.departure_smart_terminus": { + "false": 3943271, + "true": 96978 + }, + "game.settings.gui.depot_tooltip_mode": { + "1": 3572465, + "2": 466478, + "0": 1306 + }, + "game.settings.gui.developer": { + "1": 4040249 + }, + "game.settings.gui.disable_top_veh_list_mass_actions": { + "false": 3684822, + "true": 355427 + }, + "game.settings.gui.disable_water_animation": { + "255": 3512291, + "3": 353197, + "4": 174761 + }, + "game.settings.gui.drag_signals_density": { + "4": 991499, + "5": 558884, + "2": 450691, + "3": 437024, + "7": 271233, + "8": 267140, + "6": 231509, + "20": 187300, + "13": 144119, + "1": 117331, + "11": 83079, + "12": 80836, + "10": 68345, + "16": 65735, + "15": 54377, + "9": 31147 + }, + "game.settings.gui.drag_signals_fixed_distance": { + "false": 2657372, + "true": 1382877 + }, + "game.settings.gui.drag_signals_skip_stations": { + "false": 3941344, + "true": 98905 + }, + "game.settings.gui.dual_pane_train_purchase_window": { + "true": 3971021, + "false": 69228 + }, + "game.settings.gui.dual_pane_train_purchase_window_dual_buttons": { + "true": 4029953, + "false": 10296 + }, + "game.settings.gui.enable_single_veh_shared_order_gui": { + "false": 3073568, + "true": 966681 + }, + "game.settings.gui.errmsg_duration": { + "5": 3208369, + "2": 501685, + "10": 159405, + "4": 73531, + "6": 63384, + "3": 29500, + "20": 4375 + }, + "game.settings.gui.fast_forward_speed_limit": { + "2500": 3183723, + "0": 273805, + "10000": 122614, + "5000": 122316, + "3500": 110186, + "500": 58150, + "2790": 37212, + "2630": 30352, + "2400": 25156, + "4000": 18391, + "1000": 16691, + "2600": 14702, + "1300": 10296, + "1700": 5957, + "50000": 4375, + "2000": 4024, + "1600": 1306, + "15000": 993 + }, + "game.settings.gui.graph_line_thickness": { + "3": 3182523, + "2": 612042, + "1": 194286, + "4": 51398 + }, + "game.settings.gui.hide_default_stop_location": { + "true": 4040249 + }, + "game.settings.gui.hover_delay_ms": { + "250": 3734400, + "0": 140001, + "200": 139467, + "150": 15701, + "3000": 10296, + "50": 384 + }, + "game.settings.gui.industry_tooltip_show": { + "true": 4001871, + "false": 38378 + }, + "game.settings.gui.industry_tooltip_show_name": { + "true": 4019134, + "false": 21115 + }, + "game.settings.gui.industry_tooltip_show_produced": { + "true": 4020440, + "false": 19809 + }, + "game.settings.gui.industry_tooltip_show_required": { + "false": 3306393, + "true": 733856 + }, + "game.settings.gui.industry_tooltip_show_stockpiled": { + "false": 3482706, + "true": 557543 + }, + "game.settings.gui.instant_tile_tooltip": { + "false": 4038943, + "true": 1306 + }, + "game.settings.gui.keep_all_autosave": { + "false": 4038943, + "true": 1306 + }, + "game.settings.gui.link_terraform_toolbar": { + "false": 2269670, + "true": 1770579 + }, + "game.settings.gui.linkgraph_colours": { + "0": 3998632, + "1": 37242, + "2": 4375 + }, + "game.settings.gui.liveries": { + "2": 3540306, + "1": 499943 + }, + "game.settings.gui.loading_indicators": { + "1": 3557902, + "2": 482347 + }, + "game.settings.gui.lost_vehicle_warn": { + "true": 3481259, + "false": 558990 + }, + "game.settings.gui.max_departure_time": { + "120": 3512797, + "365": 239885, + "240": 170095, + "30": 79524, + "60": 32337, + "180": 5611 + }, + "game.settings.gui.max_departure_time_minutes": { + "1440": 3771205, + "360": 125455, + "5000": 98057, + "720": 28194, + "750": 13506, + "500": 3832 + }, + "game.settings.gui.max_departures": { + "10": 2839773, + "30": 654636, + "20": 386569, + "14": 63297, + "5": 32337, + "15": 32305, + "12": 12199, + "1": 10296, + "8": 8837 + }, + "game.settings.gui.max_num_autosaves": { + "16": 3540693, + "10": 481165, + "24": 18391 + }, + "game.settings.gui.max_num_lt_autosaves": { + "8": 4040249 + }, + "game.settings.gui.measure_tooltip": { + "true": 4040249 + }, + "game.settings.gui.missing_strings_threshold": { + "25": 4040249 + }, + "game.settings.gui.network_chat_box_height": { + "25": 4040249 + }, + "game.settings.gui.network_chat_box_width_pct": { + "40": 4040249 + }, + "game.settings.gui.network_chat_timeout": { + "20": 4040249 + }, + "game.settings.gui.new_nonstop": { + "true": 3394862, + "false": 645387 + }, + "game.settings.gui.newgrf_default_palette": { + "1": 4040249 + }, + "game.settings.gui.newgrf_developer_tools": { + "false": 2843748, + "true": 1196501 + }, + "game.settings.gui.newgrf_disable_big_gui": { + "false": 4040249 + }, + "game.settings.gui.newgrf_show_old_versions": { + "false": 3748309, + "true": 291940 + }, + "game.settings.gui.news_message_timeout": { + "2": 4040249 + }, + "game.settings.gui.no_depot_order_warn": { + "0": 3462532, + "1": 376350, + "2": 201367 + }, + "game.settings.gui.open_vehicle_gui_clone_share": { + "false": 3726959, + "true": 313290 + }, + "game.settings.gui.order_review_system": { + "2": 2405544, + "1": 1358262, + "0": 276443 + }, + "game.settings.gui.osk_activation": { + "double": 3489739, + "disabled": 550510 + }, + "game.settings.gui.override_time_settings": { + "false": 3611364, + "true": 428885 + }, + "game.settings.gui.pause_on_newgame": { + "false": 2258719, + "true": 1781530 + }, + "game.settings.gui.persistent_buildingtools": { + "true": 4021422, + "false": 18827 + }, + "game.settings.gui.population_in_label": { + "true": 4040249 + }, + "game.settings.gui.prefer_teamchat": { + "false": 3986195, + "true": 54054 + }, + "game.settings.gui.quick_goto": { + "true": 3590512, + "false": 449737 + }, + "game.settings.gui.refresh_rate": { + "60": 3444303, + "144": 216768, + "165": 133164, + "30": 88080, + "75": 63384, + "240": 43828, + "95": 30510, + "59": 15701, + "100": 4511 + }, + "game.settings.gui.restriction_wait_vehicle_warn": { + "false": 2705947, + "true": 1334302 + }, + "game.settings.gui.right_click_wnd_close": { + "no": 3306577, + "yes": 723298, + "except sticky": 10374 + }, + "game.settings.gui.right_mouse_btn_emulation": { + "0": 164895 + }, + "game.settings.gui.savegame_overwrite_confirm": { + "yes": 3960676, + "no": 40386, + "different": 19809, + "not same": 19378 + }, + "game.settings.gui.scale_bevels": { + "true": 3814591, + "false": 225658 + }, + "game.settings.gui.scenario_developer": { + "false": 2551354, + "true": 1488895 + }, + "game.settings.gui.scroll_mode": { + "0": 3681470, + "2": 163776, + "1": 101124, + "3": 93879 + }, + "game.settings.gui.scrollwheel_multiplier": { + "5": 3400273, + "1": 447443, + "6": 63297, + "15": 55013, + "4": 44448, + "3": 19274, + "7": 10501 + }, + "game.settings.gui.scrollwheel_scrolling": { + "0": 4040249 + }, + "game.settings.gui.semaphore_build_before": { + "1950": 2996208, + "1975": 444566, + "1943": 122614, + "1900": 120660, + "0": 82620, + "1949": 63384, + "1970": 44448, + "5000000": 40386, + "1800": 35470, + "1945": 28918, + "9000": 19500, + "1955": 14702, + "1948": 13777, + "1000": 4444, + "1904": 4375, + "1965": 2282, + "1940": 1306, + "1920": 589 + }, + "game.settings.gui.settings_restriction_mode": { + "2": 3605956, + "0": 268885, + "1": 147815, + "5": 17593 + }, + "game.settings.gui.shade_trees_on_slopes": { + "true": 4011392, + "false": 28857 + }, + "game.settings.gui.show_adv_load_mode_features": { + "false": 2523984, + "true": 1516265 + }, + "game.settings.gui.show_adv_tracerestrict_features": { + "false": 2648778, + "true": 1391471 + }, + "game.settings.gui.show_all_signal_default": { + "0": 3982163, + "1": 58086 + }, + "game.settings.gui.show_bridges_on_map": { + "true": 3976952, + "false": 63297 + }, + "game.settings.gui.show_cargo_in_vehicle_lists": { + "false": 2789580, + "true": 1250669 + }, + "game.settings.gui.show_date_in_logs": { + "false": 4040249 + }, + "game.settings.gui.show_depot_sell_gui": { + "false": 2487747, + "true": 1552502 + }, + "game.settings.gui.show_finances": { + "true": 2942143, + "false": 1098106 + }, + "game.settings.gui.show_group_hierarchy_name": { + "false": 3659490, + "true": 380759 + }, + "game.settings.gui.show_height_on_viewport_map": { + "true": 4020749, + "false": 19500 + }, + "game.settings.gui.show_newgrf_name": { + "true": 2445236, + "false": 1595013 + }, + "game.settings.gui.show_noentrysig_ui": { + "false": 2840230, + "true": 1200019 + }, + "game.settings.gui.show_order_number_vehicle_view": { + "false": 3791501, + "true": 248748 + }, + "game.settings.gui.show_order_occupancy_by_default": { + "false": 3233157, + "true": 807092 + }, + "game.settings.gui.show_progsig_ui": { + "false": 2850043, + "true": 1190206 + }, + "game.settings.gui.show_restricted_signal_recolour": { + "true": 4020440, + "false": 19809 + }, + "game.settings.gui.show_scrolling_viewport_on_map": { + "3": 3922806, + "1": 102816, + "2": 14627 + }, + "game.settings.gui.show_slopes_on_viewport_map": { + "true": 4040249 + }, + "game.settings.gui.show_track_reservation": { + "true": 3589065, + "false": 451184 + }, + "game.settings.gui.show_train_length_in_details": { + "true": 4040249 + }, + "game.settings.gui.show_train_weight_ratios_in_details": { + "false": 2519990, + "true": 1520259 + }, + "game.settings.gui.show_tunnels_on_map": { + "true": 4040249 + }, + "game.settings.gui.show_vehicle_group_hierarchy_name": { + "false": 3861255, + "true": 178994 + }, + "game.settings.gui.show_vehicle_group_in_details": { + "true": 4040249 + }, + "game.settings.gui.show_vehicle_list_company_colour": { + "true": 3980054, + "false": 60195 + }, + "game.settings.gui.show_vehicle_route": { + "true": 3566272, + "false": 473977 + }, + "game.settings.gui.show_vehicle_route_mode": { + "1": 3966067, + "0": 52146, + "2": 22036 + }, + "game.settings.gui.show_vehicle_route_steps": { + "true": 4020440, + "false": 19809 + }, + "game.settings.gui.show_wagon_intro_year": { + "false": 3306712, + "true": 733537 + }, + "game.settings.gui.signal_gui_mode": { + "0": 2180875, + "1": 1859374 + }, + "game.settings.gui.smallmap_land_colour": { + "0": 3866635, + "1": 100678, + "2": 72936 + }, + "game.settings.gui.smooth_scroll": { + "false": 3084440, + "true": 955809 + }, + "game.settings.gui.sort_track_types_by_speed": { + "false": 3188076, + "true": 852173 + }, + "game.settings.gui.sprite_zoom_min": { + "0": 3771393, + "2": 268856 + }, + "game.settings.gui.starting_colour": { + "16": 2905481, + "0": 234506, + "3": 208673, + "8": 207392, + "4": 150842, + "1": 76572, + "15": 73798, + "14": 73603, + "10": 68715, + "13": 23229, + "7": 7111, + "12": 4602, + "6": 3275, + "5": 2450 + }, + "game.settings.gui.starting_colour_secondary": { + "16": 3833112, + "15": 109439, + "9": 37931, + "11": 21661, + "4": 18569, + "3": 10296, + "5": 6942, + "6": 1306, + "0": 993 + }, + "game.settings.gui.station_dragdrop": { + "true": 2237081, + "false": 1803168 + }, + "game.settings.gui.station_gui_group_order": { + "3": 1688012, + "0": 823927, + "5": 777610, + "4": 569966, + "1": 123760, + "2": 56974 + }, + "game.settings.gui.station_gui_sort_by": { + "0": 2415032, + "1": 1625217 + }, + "game.settings.gui.station_gui_sort_order": { + "0": 3311013, + "1": 729236 + }, + "game.settings.gui.station_numtracks": { + "1": 2265265, + "2": 1277717, + "4": 229414, + "3": 131919, + "6": 121333, + "7": 7308, + "5": 7293 + }, + "game.settings.gui.station_platlength": { + "1": 1107321, + "2": 717210, + "5": 689303, + "7": 582929, + "4": 439716, + "3": 405529, + "6": 98241 + }, + "game.settings.gui.station_rating_tooltip_mode": { + "1": 2948559, + "2": 1091690 + }, + "game.settings.gui.station_show_coverage": { + "true": 3865317, + "false": 174932 + }, + "game.settings.gui.station_viewport_tooltip_cargo": { + "true": 4038943, + "false": 1306 + }, + "game.settings.gui.station_viewport_tooltip_name": { + "1": 3954512, + "2": 85737 + }, + "game.settings.gui.statusbar_pos": { + "1": 4001251, + "0": 28832, + "2": 10166 + }, + "game.settings.gui.stop_location": { + "1": 2151386, + "2": 1365684, + "0": 523179 + }, + "game.settings.gui.threaded_saves": { + "true": 4040249 + }, + "game.settings.gui.ticks_per_minute": { + "74": 3045898, + "500": 201116, + "300": 185515, + "800": 125455, + "37": 119023, + "200": 113998, + "50": 68928, + "84": 35470, + "1980": 32305, + "100": 31519, + "1365": 21051, + "4": 14702, + "10": 10541, + "99": 10472, + "148": 10166, + "2000": 4375, + "2400": 3609, + "150": 2450, + "75": 2282, + "592": 714, + "444": 427, + "1184": 120, + "54": 113 + }, + "game.settings.gui.time_in_minutes": { + "false": 2886126, + "true": 1154123 + }, + "game.settings.gui.timetable_arrival_departure": { + "true": 4040249 + }, + "game.settings.gui.timetable_in_ticks": { + "false": 3466707, + "true": 573542 + }, + "game.settings.gui.timetable_leftover_ticks": { + "false": 3295400, + "true": 744849 + }, + "game.settings.gui.timetable_start_text_entry": { + "false": 3014990, + "true": 1025259 + }, + "game.settings.gui.toolbar_pos": { + "1": 3818001, + "0": 208473, + "2": 13775 + }, + "game.settings.gui.town_name_tooltip_mode": { + "1": 3816906, + "2": 203534, + "0": 19809 + }, + "game.settings.gui.use_owner_colour_for_tunnelbridge": { + "false": 3085472, + "true": 954777 + }, + "game.settings.gui.vehicle_income_warn": { + "true": 2665522, + "false": 1374727 + }, + "game.settings.gui.vehicle_names": { + "1": 3668661, + "2": 232702, + "0": 138886 + }, + "game.settings.gui.waypoint_viewport_tooltip_name": { + "1": 3964984, + "2": 75265 + }, + "game.settings.gui.window_snap_radius": { + "10": 3808132, + "7": 156668, + "5": 54920, + "32": 10296, + "8": 10028, + "12": 205 + }, + "game.settings.gui.window_soft_limit": { + "20": 3176249, + "100": 481165, + "30": 207202, + "40": 125455, + "255": 44761, + "25": 3832, + "0": 1306, + "16": 279 + }, + "game.settings.gui.zoom_max": { + "9": 3646152, + "5": 156668, + "6": 96795, + "8": 76245, + "7": 64389 + }, + "game.settings.gui.zoom_min": { + "0": 4013959, + "1": 26290 + }, + "game.settings.gui_scale": { + "-1": 1957409, + "100": 553969, + "150": 532939, + "200": 386469, + "175": 181774, + "125": 129172, + "250": 103317, + "275": 102816, + "225": 91748, + "400": 364, + "350": 272 + }, + "game.settings.infra_others_buy_in_depot[0]": { + "false": 3174895, + "true": 865354 + }, + "game.settings.infra_others_buy_in_depot[1]": { + "false": 3348641, + "true": 691608 + }, + "game.settings.infra_others_buy_in_depot[2]": { + "false": 3309209, + "true": 731040 + }, + "game.settings.infra_others_buy_in_depot[3]": { + "false": 3300810, + "true": 739439 + }, + "game.settings.invisibility_options": { + "0": 1398493, + "2": 553242, + "6": 421751, + "230": 398331, + "127": 311895, + "3": 185930, + "34": 159792, + "218": 122614, + "151": 120993, + "254": 73925, + "50": 45828, + "239": 44448, + "134": 41488, + "198": 29902, + "55": 22893, + "4": 19541, + "514": 15701, + "255": 14983, + "231": 14578, + "54": 12577, + "32": 9528, + "206": 6626, + "123": 5113, + "23": 4462, + "102": 3720, + "130": 1306, + "195": 384, + "126": 205 + }, + "game.settings.keyboard": { + "(empty)": 4040249 + }, + "game.settings.keyboard_caps": { + "(empty)": 4040249 + }, + "game.settings.language": { + "english.lng": 1185767, + "korean.lng": 650210, + "english_US.lng": 466807, + "simplified_chinese.lng": 405910, + "russian.lng": 266019, + "german.lng": 252989, + "japanese.lng": 243253, + "czech.lng": 232161, + "english_AU.lng": 131935, + "polish.lng": 123898, + "slovak.lng": 40386, + "swedish.lng": 27848, + "spanish.lng": 10422, + "french.lng": 2465, + "dutch.lng": 179 + }, + "game.settings.large_aa": { + "false": 3843505, + "true": 196744 + }, + "game.settings.large_font": { + "(empty)": 3205218, + "Gulim": 446531, + "DejaVu Serif, Bold": 112712, + "UD Digi Kyokasho NK-B": 56265, + "Ubuntu": 44448, + "Unifont": 36146, + "arial": 35549, + "c:\\windows\\fonts\\gulim.ttc": 34634, + "Unifont-JP": 28194, + "C:\\Windows\\Fonts\\ARIALNB.TTF": 10296, + "Times New Roman": 10166, + "Noto Sans CJK JP": 8837, + "Cambria": 4088, + "Roboto Medium": 2282, + "Arial": 1582, + "tahoma": 1306, + "Comic Sans MS": 1161, + "NanumGothic": 834 + }, + "game.settings.large_size": { + "0": 2832351, + "16": 1009553, + "20": 71686, + "18": 57769, + "26": 44448, + "14": 19500, + "15": 4295, + "2": 647 + }, + "game.settings.linkgraph.accuracy": { + "16": 3627375, + "40": 242346, + "15": 98882, + "64": 28723, + "20": 22001, + "12": 10296, + "32": 5957, + "2": 3668, + "24": 894, + "30": 107 + }, + "game.settings.linkgraph.aircraft_link_scale": { + "100": 2794130, + "300": 446086, + "400": 268363, + "1000": 267797, + "150": 227797, + "450": 27299, + "200": 8777 + }, + "game.settings.linkgraph.demand_distance": { + "100": 2785195, + "150": 564358, + "50": 257048, + "60": 114117, + "120": 79007, + "90": 55699, + "0": 53388, + "140": 41072, + "255": 27299, + "85": 19500, + "75": 15779, + "105": 13777, + "180": 9669, + "15": 3832, + "80": 427, + "125": 82 + }, + "game.settings.linkgraph.demand_size": { + "100": 3780633, + "90": 131113, + "75": 39497, + "0": 32337, + "20": 27299, + "80": 15129, + "95": 14241 + }, + "game.settings.linkgraph.distribution_armoured": { + "0": 2772324, + "1": 813758, + "2": 318426, + "20": 131366, + "21": 4375 + }, + "game.settings.linkgraph.distribution_default": { + "0": 3165352, + "1": 729407, + "20": 141115, + "21": 4375 + }, + "game.settings.linkgraph.distribution_mail": { + "2": 1720026, + "0": 1434217, + "1": 546209, + "20": 339797 + }, + "game.settings.linkgraph.distribution_pax": { + "2": 2364800, + "0": 919430, + "1": 380368, + "20": 363174, + "21": 12477 + }, + "game.settings.linkgraph.distribution_per_cargo[0]": { + "128": 3735577, + "2": 278335, + "20": 26337 + }, + "game.settings.linkgraph.distribution_per_cargo[10]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[11]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[12]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[13]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[14]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[15]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[16]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[17]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[18]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[19]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[1]": { + "128": 4030277, + "0": 9972 + }, + "game.settings.linkgraph.distribution_per_cargo[20]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[21]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[22]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[23]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[24]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[25]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[26]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[27]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[28]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[29]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[2]": { + "128": 4007122, + "20": 23155, + "1": 9972 + }, + "game.settings.linkgraph.distribution_per_cargo[30]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[31]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[32]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[33]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[34]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[35]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[36]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[37]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[38]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[39]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[3]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[40]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[41]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[42]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[43]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[44]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[45]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[46]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[47]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[48]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[49]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[4]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[50]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[51]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[52]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[53]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[54]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[55]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[56]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[57]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[58]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[59]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[5]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[60]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[61]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[62]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[63]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[6]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[7]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[8]": { + "128": 4040249 + }, + "game.settings.linkgraph.distribution_per_cargo[9]": { + "128": 4040249 + }, + "game.settings.linkgraph.recalc_interval": { + "8": 1952245, + "16": 848285, + "30": 526877, + "32": 326172, + "24": 125455, + "12": 120627, + "64": 110506, + "5": 18500, + "4": 7777, + "6": 3805 + }, + "game.settings.linkgraph.recalc_time": { + "32": 2011197, + "64": 750194, + "120": 652332, + "128": 269856, + "2": 123242, + "60": 76188, + "8192": 53516, + "256": 48325, + "8": 31323, + "30": 11131, + "1024": 7251, + "20": 2433, + "10": 1847, + "512": 1414 + }, + "game.settings.linkgraph.short_path_saturation": { + "80": 2822364, + "75": 755734, + "20": 242346, + "70": 132344, + "0": 66148, + "85": 13501, + "50": 3117, + "65": 1847, + "100": 1306, + "60": 834, + "55": 708 + }, + "game.settings.locale.currency": { + "GBP": 1395799, + "USD": 832183, + "EUR": 526387, + "KRW": 492057, + "JPY": 295897, + "custom": 288710, + "CZK": 105715, + "SEK": 27848, + "RUR": 26041, + "BRL": 24007, + "CHF": 14320, + "PLN": 7845, + "DEM": 1495, + "FIM": 993, + "DKK": 496, + "LTL": 334, + "CNY": 122 + }, + "game.settings.locale.digit_decimal_separator": { + "(empty)": 4040249 + }, + "game.settings.locale.digit_group_separator": { + "(empty)": 4040249 + }, + "game.settings.locale.digit_group_separator_currency": { + "(empty)": 4040249 + }, + "game.settings.locale.units_force": { + "si": 3901621, + "imperial": 103412, + "metric": 35216 + }, + "game.settings.locale.units_height": { + "metric": 3716300, + "si": 173466, + "imperial": 150483 + }, + "game.settings.locale.units_power": { + "metric": 2961675, + "si": 847378, + "imperial": 231196 + }, + "game.settings.locale.units_velocity": { + "metric": 3801223, + "imperial": 239026 + }, + "game.settings.locale.units_velocity_nautical": { + "metric": 3657283, + "4": 195979, + "imperial": 182612, + "gameunits": 4375 + }, + "game.settings.locale.units_volume": { + "metric": 3481722, + "si": 487452, + "imperial": 71075 + }, + "game.settings.locale.units_weight": { + "metric": 3810920, + "imperial": 128655, + "si": 100674 + }, + "game.settings.medium_aa": { + "false": 3843505, + "true": 196744 + }, + "game.settings.medium_font": { + "(empty)": 3249666, + "Gulim": 446531, + "DejaVu Sans, Bold": 112712, + "MS Mincho": 56265, + "Unifont": 36146, + "arial": 35549, + "c:\\windows\\fonts\\gulim.ttc": 34634, + "Unifont-JP": 28194, + "Tahoma Bold": 11748, + "C:\\Windows\\Fonts\\ARIALNB.TTF": 10296, + "Noto Sans CJK JP": 8837, + "Calibri Bold": 4088, + "Roboto Bold": 2282, + "tahoma": 1306, + "Comic Sans MS": 1161, + "NanumGothic": 834 + }, + "game.settings.medium_size": { + "0": 2804157, + "12": 656585, + "10": 450183, + "16": 45609, + "15": 38929, + "20": 19500, + "17": 10296, + "9": 10166, + "11": 2282, + "13": 1306, + "2": 647, + "14": 589 + }, + "game.settings.mono_aa": { + "false": 3843505, + "true": 196744 + }, + "game.settings.mono_font": { + "(empty)": 3246016, + "Gulim": 446531, + "DejaVu Sans Mono, Bold": 112712, + "UD Digi Kyokasho NK-B": 56265, + "Ubuntu": 44448, + "Unifont": 36146, + "c:\\windows\\fonts\\gulim.ttc": 34634, + "Unifont-JP": 28194, + "Courier New": 14030, + "C:\\Windows\\Fonts\\ARIALNB.TTF": 10296, + "Noto Sans CJK JP": 8837, + "courier new": 1306, + "NanumGothic": 834 + }, + "game.settings.mono_size": { + "0": 2852874, + "12": 621911, + "10": 514344, + "20": 34634, + "18": 10296, + "15": 4295, + "13": 1895 + }, + "game.settings.music.playing": { + "true": 2189702, + "false": 1850547 + }, + "game.settings.music.playlist": { + "0": 3613903, + "4": 222545, + "2": 117457, + "1": 50787, + "3": 24002, + "5": 11555 + }, + "game.settings.music.shuffle": { + "false": 3258906, + "true": 781343 + }, + "game.settings.musicdriver": { + "(empty)": 4040249 + }, + "game.settings.network.autoclean_companies": { + "false": 3934875, + "true": 105374 + }, + "game.settings.network.autoclean_novehicles": { + "0": 3877142, + "36": 93879, + "60": 69228 + }, + "game.settings.network.autoclean_protected": { + "36": 3875836, + "240": 93879, + "0": 69228, + "3": 1306 + }, + "game.settings.network.autoclean_unprotected": { + "12": 3877142, + "240": 93879, + "0": 69228 + }, + "game.settings.network.bytes_per_frame": { + "8": 4040249 + }, + "game.settings.network.bytes_per_frame_burst": { + "256": 4040249 + }, + "game.settings.network.commands_per_frame": { + "2": 4029777, + "4": 10472 + }, + "game.settings.network.commands_per_frame_server": { + "16": 4040249 + }, + "game.settings.network.frame_freq": { + "0": 4040249 + }, + "game.settings.network.max_auth_failures": { + "10": 4040249 + }, + "game.settings.network.max_clients": { + "25": 2595367, + "255": 554727, + "30": 200319, + "17": 156668, + "15": 147201, + "5": 142552, + "20": 63384, + "2": 54970, + "200": 30352, + "250": 19809, + "10": 16763, + "7": 15701, + "3": 14627, + "6": 13108, + "16": 10677, + "8": 4024 + }, + "game.settings.network.max_commands_in_queue": { + "16": 4029777, + "32": 10472 + }, + "game.settings.network.max_companies": { + "15": 3883354, + "2": 54970, + "1": 50188, + "3": 37036, + "8": 14701 + }, + "game.settings.network.max_download_time": { + "1000": 3704509, + "32000": 109794, + "2000": 93879, + "5000": 69228, + "10000": 62839 + }, + "game.settings.network.max_init_time": { + "100": 3813399, + "1000": 132067, + "10000": 56265, + "32000": 38518 + }, + "game.settings.network.max_join_time": { + "500": 3703675, + "32000": 234328, + "5000": 87619, + "10000": 14627 + }, + "game.settings.network.max_lag_time": { + "500": 3882627, + "32000": 94783, + "15000": 44448, + "5000": 18391 + }, + "game.settings.network.max_password_time": { + "2000": 3833096, + "32000": 93477, + "5000": 69228, + "20000": 44448 + }, + "game.settings.network.min_active_clients": { + "0": 3868791, + "1": 171458 + }, + "game.settings.network.pause_on_join": { + "true": 3929447, + "false": 110802 + }, + "game.settings.network.reload_cfg": { + "false": 4040249 + }, + "game.settings.network.restart_game_year": { + "0": 3908182, + "2052": 69228, + "9999": 44448, + "3000": 18391 + }, + "game.settings.network.server_admin_chat": { + "true": 4040249 + }, + "game.settings.network.server_admin_port": { + "3977": 3995801, + "26766": 44448 + }, + "game.settings.network.server_game_type": { + "local": 2488896, + "public": 1264927, + "invite-only": 286426 + }, + "game.settings.network.server_port": { + "3979": 3995801, + "26765": 44448 + }, + "game.settings.network.sync_freq": { + "100": 4040249 + }, + "game.settings.news_display.acceptance": { + "full": 2586292, + "summarized": 1147145, + "off": 306812 + }, + "game.settings.news_display.accident": { + "full": 3784590, + "summarized": 202595, + "off": 53064 + }, + "game.settings.news_display.accident_other": { + "full": 3520299, + "summarized": 312152, + "off": 207798 + }, + "game.settings.news_display.advice": { + "full": 2431584, + "summarized": 929811, + "off": 678854 + }, + "game.settings.news_display.arrival_other": { + "summarized": 3231938, + "off": 686539, + "full": 121772 + }, + "game.settings.news_display.arrival_player": { + "full": 2469055, + "summarized": 968228, + "off": 602966 + }, + "game.settings.news_display.close": { + "summarized": 3294888, + "full": 403697, + "off": 341664 + }, + "game.settings.news_display.company_info": { + "full": 3340990, + "summarized": 401441, + "off": 297818 + }, + "game.settings.news_display.economy": { + "full": 3282871, + "summarized": 643419, + "off": 113959 + }, + "game.settings.news_display.general": { + "full": 2917956, + "summarized": 896595, + "off": 225698 + }, + "game.settings.news_display.new_vehicles": { + "full": 2827163, + "summarized": 823149, + "off": 389937 + }, + "game.settings.news_display.open": { + "summarized": 3422780, + "off": 324711, + "full": 292758 + }, + "game.settings.news_display.production_nobody": { + "off": 3371319, + "summarized": 536318, + "full": 132612 + }, + "game.settings.news_display.production_other": { + "off": 3322809, + "summarized": 648212, + "full": 69228 + }, + "game.settings.news_display.production_player": { + "summarized": 3403591, + "full": 360128, + "off": 276530 + }, + "game.settings.news_display.subsidies": { + "summarized": 3414050, + "full": 405613, + "off": 220586 + }, + "game.settings.order.gradual_loading": { + "true": 4040249 + }, + "game.settings.order.improved_load": { + "true": 4040104, + "false": 145 + }, + "game.settings.order.no_servicing_if_no_breakdowns": { + "true": 3956872, + "false": 83377 + }, + "game.settings.order.nonstop_only": { + "false": 3239001, + "true": 801248 + }, + "game.settings.order.selectgoods": { + "true": 4040249 + }, + "game.settings.order.serviceathelipad": { + "true": 3916383, + "false": 123866 + }, + "game.settings.order_occupancy_smoothness": { + "75": 4020440, + "50": 19809 + }, + "game.settings.pf.back_of_one_way_pbs_waiting_point": { + "true": 4015366, + "false": 24883 + }, + "game.settings.pf.forbid_90_deg": { + "true": 2715568, + "false": 1324681 + }, + "game.settings.pf.npf.maximum_go_to_depot_penalty": { + "2000": 4040249 + }, + "game.settings.pf.npf.npf_buoy_penalty": { + "200": 4040249 + }, + "game.settings.pf.npf.npf_crossing_penalty": { + "300": 4040249 + }, + "game.settings.pf.npf.npf_max_search_nodes": { + "10000": 4040249 + }, + "game.settings.pf.npf.npf_rail_curve_penalty": { + "100": 3982571, + "1": 57678 + }, + "game.settings.pf.npf.npf_rail_depot_reverse_penalty": { + "5000": 4040249 + }, + "game.settings.pf.npf.npf_rail_firstred_exit_penalty": { + "10000": 4040249 + }, + "game.settings.pf.npf.npf_rail_firstred_penalty": { + "1000": 4040249 + }, + "game.settings.pf.npf.npf_rail_lastred_penalty": { + "1000": 4040249 + }, + "game.settings.pf.npf.npf_rail_pbs_cross_penalty": { + "300": 4040249 + }, + "game.settings.pf.npf.npf_rail_pbs_signal_back_penalty": { + "1500": 4040249 + }, + "game.settings.pf.npf.npf_rail_slope_penalty": { + "100": 4040249 + }, + "game.settings.pf.npf.npf_rail_station_penalty": { + "100": 4040249 + }, + "game.settings.pf.npf.npf_road_bay_occupied_penalty": { + "1500": 4040249 + }, + "game.settings.pf.npf.npf_road_curve_penalty": { + "100": 3982571, + "1": 57678 + }, + "game.settings.pf.npf.npf_road_drive_through_penalty": { + "800": 4040249 + }, + "game.settings.pf.npf.npf_road_dt_occupied_penalty": { + "800": 4040249 + }, + "game.settings.pf.npf.npf_water_curve_penalty": { + "100": 3982571, + "25": 57678 + }, + "game.settings.pf.path_backoff_interval": { + "20": 4037967, + "1": 2282 + }, + "game.settings.pf.pathfinder_for_roadvehs": { + "2": 4040249 + }, + "game.settings.pf.pathfinder_for_ships": { + "2": 3934189, + "1": 106060 + }, + "game.settings.pf.pathfinder_for_trains": { + "2": 4040249 + }, + "game.settings.pf.reroute_rv_on_layout_change": { + "1": 3966721, + "2": 73528 + }, + "game.settings.pf.reserve_paths": { + "false": 4030854, + "true": 9395 + }, + "game.settings.pf.reverse_at_signals": { + "false": 3924821, + "true": 115428 + }, + "game.settings.pf.roadveh_queue": { + "true": 4040249 + }, + "game.settings.pf.wait_for_pbs_path": { + "30": 4040249 + }, + "game.settings.pf.wait_oneway_signal": { + "15": 4040249 + }, + "game.settings.pf.wait_twoway_signal": { + "41": 4040249 + }, + "game.settings.pf.yapf.disable_node_optimization": { + "false": 4040249 + }, + "game.settings.pf.yapf.max_search_nodes": { + "10000": 4040249 + }, + "game.settings.pf.yapf.maximum_go_to_depot_penalty": { + "2000": 4040249 + }, + "game.settings.pf.yapf.rail_crossing_penalty": { + "300": 4040249 + }, + "game.settings.pf.yapf.rail_curve45_penalty": { + "100": 4029777, + "300": 10472 + }, + "game.settings.pf.yapf.rail_curve90_penalty": { + "600": 4040249 + }, + "game.settings.pf.yapf.rail_depot_reverse_penalty": { + "5000": 4040249 + }, + "game.settings.pf.yapf.rail_doubleslip_penalty": { + "100": 4040249 + }, + "game.settings.pf.yapf.rail_firstred_exit_penalty": { + "10000": 4040249 + }, + "game.settings.pf.yapf.rail_firstred_penalty": { + "1000": 4040249 + }, + "game.settings.pf.yapf.rail_firstred_twoway_eol": { + "false": 2049228, + "true": 1991021 + }, + "game.settings.pf.yapf.rail_lastred_exit_penalty": { + "10000": 4040249 + }, + "game.settings.pf.yapf.rail_lastred_penalty": { + "1000": 4040249 + }, + "game.settings.pf.yapf.rail_longer_platform_penalty": { + "800": 4040249 + }, + "game.settings.pf.yapf.rail_longer_platform_per_tile_penalty": { + "0": 4040249 + }, + "game.settings.pf.yapf.rail_look_ahead_max_signals": { + "10": 4040249 + }, + "game.settings.pf.yapf.rail_look_ahead_signal_p0": { + "500": 4040249 + }, + "game.settings.pf.yapf.rail_look_ahead_signal_p1": { + "-100": 4040249 + }, + "game.settings.pf.yapf.rail_look_ahead_signal_p2": { + "5": 4040249 + }, + "game.settings.pf.yapf.rail_pbs_cross_penalty": { + "300": 4040249 + }, + "game.settings.pf.yapf.rail_pbs_signal_back_penalty": { + "1500": 4040249 + }, + "game.settings.pf.yapf.rail_pbs_station_penalty": { + "800": 4040249 + }, + "game.settings.pf.yapf.rail_shorter_platform_penalty": { + "4000": 4040249 + }, + "game.settings.pf.yapf.rail_shorter_platform_per_tile_penalty": { + "0": 4040249 + }, + "game.settings.pf.yapf.rail_slope_penalty": { + "200": 4040249 + }, + "game.settings.pf.yapf.rail_station_penalty": { + "1000": 3578908, + "3000": 461341 + }, + "game.settings.pf.yapf.road_crossing_penalty": { + "300": 4040249 + }, + "game.settings.pf.yapf.road_curve_penalty": { + "100": 4040249 + }, + "game.settings.pf.yapf.road_slope_penalty": { + "200": 4040249 + }, + "game.settings.pf.yapf.road_stop_bay_occupied_penalty": { + "1500": 4040249 + }, + "game.settings.pf.yapf.road_stop_occupied_penalty": { + "800": 4040249 + }, + "game.settings.pf.yapf.road_stop_penalty": { + "800": 4040249 + }, + "game.settings.pf.yapf.ship_curve45_penalty": { + "100": 4040249 + }, + "game.settings.pf.yapf.ship_curve90_penalty": { + "600": 4040249 + }, + "game.settings.prefix": { + "(empty)": 3872851, + "Neo\u20ac": 63297, + "\u00a7": 44448, + "$": 21076, + "cr. ": 19500, + "MC ": 14702, + "\u00a2": 4375 + }, + "game.settings.rate": { + "1": 3720061, + "2": 84373, + "3": 44448, + "9": 37212, + "20120": 36146, + "5": 30352, + "14": 28194, + "135": 22037, + "100": 19077, + "133": 18349 + }, + "game.settings.remain_if_next_order_same_station": { + "true": 4004779, + "false": 35470 + }, + "game.settings.renew_keep_length": { + "false": 4034432, + "true": 5817 + }, + "game.settings.resolution": { + "1920,1080": 491100, + "1920,1009": 400980, + "1920,991": 395116, + "1920,1018": 311895, + "1920,1017": 215788, + "2560,1377": 203209, + "2560,1369": 201240, + "1366,768": 184235, + "1920,1001": 157341, + "1512,945": 153361, + "2560,1494": 149887, + "1920,1027": 114274, + "1854,976": 101166, + "1920,1111": 82152, + "2560,1440": 79311, + "1920,1011": 68928, + "1920,1057": 63297, + "2560,1346": 61453, + "1920,1137": 57988, + "1920,1051": 50171, + "1920,1020": 40386, + "2560,1334": 36146, + "2520,1555": 35470, + "2560,1417": 31976, + "2560,1414": 30510, + "1920,1046": 29055, + "2560,1520": 28194, + "1680,987": 19888, + "1254,1017": 19614, + "1920,989": 19500, + "1856,1057": 18500, + "2560,1361": 18391, + "3840,2081": 14627, + "2489,1638": 13444, + "1253,1017": 13102, + "2880,1526": 12477, + "1408,797": 11262, + "1600,837": 11240, + "1366,705": 10541, + "1618,1368": 10166, + "1920,1055": 9108, + "2160,1920": 9048, + "1920,988": 8837, + "1738,1017": 8772, + "1920,1007": 5611, + "3840,2126": 4511, + "4468,1351": 3837, + "2560,1400": 3713, + "2573,1319": 3165, + "1918,976": 2948, + "1920,986": 2450, + "1600,900": 2282, + "1615,801": 1488, + "2525,1062": 1306, + "3440,1440": 1169, + "1858,1057": 1161, + "2560,1356": 993, + "1631,840": 885, + "3840,2127": 364, + "2560,1300": 310, + "2560,1315": 279, + "1440,900": 272, + "2560,1387": 205, + "1920,1061": 154 + }, + "game.settings.rightclick_emulate": { + "false": 4040249 + }, + "game.settings.savegame_format": { + "(empty)": 3559084, + "zlib": 481165 + }, + "game.settings.scenario.house_ignore_dates": { + "false": 3335573, + "true": 704676 + }, + "game.settings.scenario.house_ignore_grf": { + "false": 3282249, + "true": 758000 + }, + "game.settings.scenario.house_ignore_zones": { + "0": 3272451, + "2": 752892, + "1": 14906 + }, + "game.settings.scenario.multiple_buildings": { + "false": 3006097, + "true": 1034152 + }, + "game.settings.screenshot_format": { + "(empty)": 3557778, + "png": 481165, + "jpeg": 1306 + }, + "game.settings.script.script_max_memory_megabytes": { + "1024": 3963369, + "8192": 32514, + "2048": 32337, + "3000": 10296, + "256": 1306, + "4096": 427 + }, + "game.settings.script.script_max_opcode_till_suspend": { + "10000": 3840988, + "100000": 121833, + "35000": 44448, + "250000": 32980 + }, + "game.settings.script.settings_profile": { + "easy": 3265511, + "hard": 537792, + "medium": 236946 + }, + "game.settings.separator": { + ".": 3218646, + "(empty)": 624131, + ",": 174129, + " ": 23343 + }, + "game.settings.small_aa": { + "false": 3847593, + "true": 192656 + }, + "game.settings.small_font": { + "(empty)": 3249666, + "Gulim": 446531, + "DejaVu Sans": 112712, + "UD Digi Kyokasho NK-B": 56265, + "Unifont": 36146, + "arial": 35549, + "c:\\windows\\fonts\\gulim.ttc": 34634, + "Unifont-JP": 28194, + "Arial": 11748, + "C:\\Windows\\Fonts\\ARIALNB.TTF": 10296, + "Noto Sans CJK JP": 8837, + "Calibri": 4088, + "Roboto Medium": 2282, + "tahoma": 1306, + "Comic Sans MS": 1161, + "NanumGothic": 834 + }, + "game.settings.small_size": { + "0": 2840303, + "10": 507018, + "8": 467905, + "12": 113301, + "11": 36463, + "14": 35795, + "9": 12448, + "6": 10472, + "16": 10296, + "15": 4295, + "13": 1306, + "2": 647 + }, + "game.settings.sound.ambient": { + "true": 3467274, + "false": 572975 + }, + "game.settings.sound.click_beep": { + "true": 3357634, + "false": 682615 + }, + "game.settings.sound.confirm": { + "true": 3387543, + "false": 652706 + }, + "game.settings.sound.disaster": { + "true": 3449825, + "false": 590424 + }, + "game.settings.sound.new_year": { + "true": 3491313, + "false": 548936 + }, + "game.settings.sound.news_full": { + "true": 3396172, + "false": 644077 + }, + "game.settings.sound.news_ticker": { + "true": 3225753, + "false": 814496 + }, + "game.settings.sound.vehicle": { + "true": 3494329, + "false": 545920 + }, + "game.settings.sounddriver": { + "(empty)": 4040249 + }, + "game.settings.sprite_cache_size_px": { + "128": 3983570, + "512": 46138, + "256": 10541 + }, + "game.settings.station.adjacent_stations": { + "true": 4038859, + "false": 1390 + }, + "game.settings.station.cargo_class_rating_wait_time": { + "false": 2549306, + "true": 1490943 + }, + "game.settings.station.catchment_increase": { + "0": 3260646, + "5": 514529, + "2": 194641, + "3": 46906, + "4": 19582, + "1": 3945 + }, + "game.settings.station.distant_join_stations": { + "true": 4033307, + "false": 6942 + }, + "game.settings.station.modified_catchment": { + "true": 4040249 + }, + "game.settings.station.never_expire_airports": { + "true": 2711079, + "false": 1329170 + }, + "game.settings.station.serve_neutral_industries": { + "true": 3786668, + "false": 253581 + }, + "game.settings.station.station_delivery_mode": { + "0": 3077228, + "1": 963021 + }, + "game.settings.station.station_size_rating_cargo_amount": { + "false": 2163421, + "true": 1876828 + }, + "game.settings.station.station_spread": { + "64": 1224616, + "12": 1038669, + "24": 765938, + "50": 239842, + "30": 120123, + "16": 119082, + "10": 116288, + "60": 77161, + "32": 75192, + "22": 45913, + "40": 43883, + "36": 32337, + "15": 31157, + "20": 29966, + "43": 27299, + "21": 19500, + "25": 19499, + "35": 9395, + "14": 2720, + "29": 803, + "18": 589, + "9": 277 + }, + "game.settings.suffix": { + " credits": 2582605, + "(empty)": 636466, + "credits": 485167, + "\u5186": 156668, + "BabElevium": 102816, + "Ruble": 30352, + "RSD": 25546, + " RSD": 14840, + "COINs": 4375, + " \u55b5\u55b5\u5143": 1414 + }, + "game.settings.support8bpp": { + "no": 4040249 + }, + "game.settings.timetable_autofill_rounding": { + "0": 2513653, + "74": 1249294, + "1": 196646, + "125": 44448, + "300": 29902, + "50": 4024, + "75": 2282 + }, + "game.settings.to_euro": { + "0": 3992555, + "2004": 28194, + "2999": 19500 + }, + "game.settings.transparency_locks": { + "0": 3075475, + "505": 525613, + "377": 125455, + "34": 106755, + "8": 69228, + "259": 31286, + "256": 28194, + "1": 21076, + "16": 21051, + "323": 14627, + "473": 10541, + "58": 4088, + "370": 4024, + "467": 1306, + "385": 834, + "2": 589, + "280": 107 + }, + "game.settings.transparency_options": { + "0": 1696220, + "2": 544789, + "38": 253986, + "7": 202422, + "3": 180034, + "39": 165295, + "6": 156860, + "1": 153723, + "5": 131269, + "131": 120993, + "34": 103328, + "4": 96177, + "511": 39961, + "35": 23349, + "263": 21090, + "262": 18555, + "14": 16763, + "32": 16703, + "37": 15954, + "257": 15951, + "503": 11240, + "67": 10637, + "128": 10296, + "487": 9048, + "10": 6094, + "8": 5785, + "463": 4511, + "135": 4024, + "142": 3609, + "63": 1306, + "256": 277 + }, + "game.settings.vehicle.adjacent_crossings": { + "true": 3722334, + "false": 317915 + }, + "game.settings.vehicle.auto_separation_by_default": { + "true": 3656744, + "false": 383505 + }, + "game.settings.vehicle.auto_timetable_by_default": { + "false": 3265278, + "true": 774971 + }, + "game.settings.vehicle.disable_elrails": { + "false": 4040249 + }, + "game.settings.vehicle.drive_through_train_depot": { + "true": 2035738, + "false": 2004511 + }, + "game.settings.vehicle.dynamic_engines": { + "true": 3934189, + "false": 106060 + }, + "game.settings.vehicle.extend_vehicle_life": { + "0": 4040249 + }, + "game.settings.vehicle.freight_trains": { + "1": 2559223, + "4": 780677, + "5": 396966, + "2": 168871, + "3": 130488, + "7": 4024 + }, + "game.settings.vehicle.improved_breakdowns": { + "false": 2480692, + "true": 1559557 + }, + "game.settings.vehicle.limit_train_acceleration": { + "false": 2469074, + "true": 1571175 + }, + "game.settings.vehicle.max_aircraft": { + "200": 2486756, + "10000": 821197, + "5000": 323055, + "2000": 158710, + "500": 60691, + "100": 48168, + "50": 34654, + "300": 32337, + "1000": 22724, + "1": 19500, + "4100": 14702, + "400": 14635, + "0": 1390, + "10": 1306, + "800": 279, + "15": 145 + }, + "game.settings.vehicle.max_roadveh": { + "500": 1811448, + "10000": 852343, + "5000": 758889, + "1000": 452254, + "200": 52789, + "750": 32337, + "1100": 19303, + "4100": 14702, + "2000": 10626, + "1600": 10595, + "8000": 10541, + "2500": 6942, + "3000": 6152, + "1500": 987, + "1250": 196, + "100": 145 + }, + "game.settings.vehicle.max_ships": { + "300": 2191539, + "10000": 821197, + "5000": 312742, + "1000": 254307, + "3000": 171971, + "200": 72371, + "600": 45913, + "250": 44448, + "100": 38374, + "450": 32337, + "500": 27862, + "4100": 14702, + "1500": 6942, + "2000": 2525, + "10": 1390, + "700": 1009, + "1100": 279, + "750": 196, + "50": 145 + }, + "game.settings.vehicle.max_train_length": { + "16": 744861, + "7": 728598, + "20": 674741, + "64": 476010, + "50": 429100, + "15": 333171, + "10": 135290, + "24": 125654, + "22": 110186, + "32": 99427, + "30": 46174, + "12": 40653, + "8": 36396, + "29": 21051, + "14": 20045, + "21": 14008, + "25": 4024, + "19": 655, + "40": 205 + }, + "game.settings.vehicle.max_trains": { + "500": 1658744, + "10000": 1044095, + "5000": 724982, + "1500": 316936, + "1000": 94524, + "400": 63384, + "750": 46972, + "4000": 45913, + "1100": 19303, + "4100": 14702, + "2500": 7868, + "2000": 2630, + "1250": 196 + }, + "game.settings.vehicle.never_expire_vehicles": { + "true": 2657343, + "false": 1382906 + }, + "game.settings.vehicle.no_expire_vehicles_after": { + "0": 3963921, + "2100": 21661, + "1200": 19500, + "2022": 14702, + "1960": 9381, + "2023": 4375, + "2000": 4259, + "2060": 2450 + }, + "game.settings.vehicle.no_introduce_vehicles_after": { + "0": 4029953, + "2015": 10296 + }, + "game.settings.vehicle.no_train_crash_other_company": { + "false": 3596441, + "true": 443808 + }, + "game.settings.vehicle.non_leading_engines_keep_name": { + "false": 3592860, + "true": 447389 + }, + "game.settings.vehicle.pay_for_repair": { + "true": 3904568, + "false": 135681 + }, + "game.settings.vehicle.plane_crashes": { + "0": 2351118, + "2": 1445924, + "1": 243207 + }, + "game.settings.vehicle.plane_speed": { + "1": 1939050, + "4": 1481762, + "3": 505380, + "2": 114057 + }, + "game.settings.vehicle.rail_depot_speed_limit": { + "61": 2531881, + "80": 544443, + "100": 330073, + "60": 242346, + "41": 125455, + "70": 110186, + "50": 80490, + "65": 26731, + "10": 21051, + "75": 20658, + "5": 4375, + "46": 2281, + "76": 279 + }, + "game.settings.vehicle.realistic_braking_aspect_limited": { + "0": 2549594, + "1": 1490655 + }, + "game.settings.vehicle.repair_cost": { + "100": 3766990, + "255": 111302, + "10": 80490, + "20": 27299, + "50": 19582, + "106": 13777, + "90": 9381, + "200": 7299, + "80": 2282, + "8": 1847 + }, + "game.settings.vehicle.road_side": { + "right": 2983363, + "left": 1056886 + }, + "game.settings.vehicle.roadveh_acceleration_model": { + "1": 3819564, + "0": 220685 + }, + "game.settings.vehicle.roadveh_articulated_overtaking": { + "true": 4030854, + "false": 9395 + }, + "game.settings.vehicle.roadveh_cant_quantum_tunnel": { + "false": 3326068, + "true": 714181 + }, + "game.settings.vehicle.roadveh_slope_steepness": { + "7": 2993212, + "4": 485172, + "0": 298846, + "5": 177618, + "10": 52879, + "8": 22963, + "6": 8253, + "3": 1306 + }, + "game.settings.vehicle.safer_crossings": { + "true": 2312377, + "false": 1727872 + }, + "game.settings.vehicle.servint_aircraft": { + "100": 3544182, + "50": 194245, + "60": 102816, + "365": 85296, + "700": 63384, + "70": 47071, + "15": 2282, + "160": 589, + "20": 384 + }, + "game.settings.vehicle.servint_ispercent": { + "false": 3843338, + "true": 196911 + }, + "game.settings.vehicle.servint_roadveh": { + "150": 3591253, + "50": 179543, + "30": 117518, + "365": 76188, + "400": 63384, + "125": 9108, + "15": 2282, + "210": 589, + "35": 384 + }, + "game.settings.vehicle.servint_ships": { + "360": 3667441, + "50": 194245, + "60": 102816, + "700": 63384, + "365": 9108, + "30": 2282, + "420": 589, + "20": 384 + }, + "game.settings.vehicle.servint_trains": { + "150": 3506970, + "50": 179543, + "30": 117518, + "365": 76188, + "400": 63384, + "100": 47071, + "90": 37212, + "125": 9108, + "15": 2282, + "210": 589, + "20": 384 + }, + "game.settings.vehicle.ship_collision_avoidance": { + "true": 3979134, + "false": 61115 + }, + "game.settings.vehicle.slow_road_vehicles_in_curves": { + "true": 3276972, + "false": 763277 + }, + "game.settings.vehicle.smoke_amount": { + "2": 2389802, + "1": 1650447 + }, + "game.settings.vehicle.through_load_speed_limit": { + "15": 3207644, + "10": 245931, + "500": 156668, + "60": 115113, + "25": 114018, + "30": 94887, + "5": 48874, + "50": 31771, + "20": 25343 + }, + "game.settings.vehicle.train_acceleration_model": { + "1": 3970604, + "0": 69645 + }, + "game.settings.vehicle.train_braking_model": { + "1": 2204074, + "0": 1836175 + }, + "game.settings.vehicle.train_slope_steepness": { + "3": 3061931, + "2": 412965, + "0": 321400, + "5": 221273, + "6": 10695, + "1": 4871, + "4": 4833, + "8": 2281 + }, + "game.settings.vehicle.train_speed_adaptation": { + "false": 2783912, + "true": 1256337 + }, + "game.settings.vehicle.wagon_speed_limits": { + "true": 3372924, + "false": 667325 + }, + "game.settings.video_hw_accel": { + "true": 3051440, + "false": 988809 + }, + "game.settings.video_vsync": { + "false": 3033988, + "true": 1006261 + }, + "game.settings.videodriver": { + "(empty)": 4040249 + }, + "game.settings.window_maximize": { + "true": 3172727, + "false": 551481 + }, + "game.settings.zoning_overlay_inner": { + "0": 3565011, + "5": 185998, + "4": 116201, + "7": 107393, + "10": 56265, + "2": 9381 + }, + "game.settings.zoning_overlay_outer": { + "0": 3369522, + "4": 502522, + "5": 156130, + "1": 9381, + "7": 2489, + "2": 205 + }, + "info.configuration.blitter": { + "40bpp-anim": 2980842, + "32bpp-sse2-anim": 740691, + "32bpp-anim": 154939, + "32bpp-sse4-anim": 89979, + "null": 57733, + "32bpp-optimized": 15701, + "8bpp-optimized": 364 + }, + "info.configuration.language.filename": { + "english.lng": 1185767, + "korean.lng": 650210, + "english_US.lng": 466807, + "simplified_chinese.lng": 405910, + "russian.lng": 266019, + "german.lng": 252989, + "japanese.lng": 243253, + "czech.lng": 232161, + "english_AU.lng": 131935, + "polish.lng": 123898, + "slovak.lng": 40386, + "swedish.lng": 27848, + "spanish.lng": 10422, + "french.lng": 2465, + "dutch.lng": 179 + }, + "info.configuration.language.isocode": { + "en_GB": 1185767, + "ko_KR": 650210, + "en_US": 466807, + "zh_CN": 405910, + "ru_RU": 266019, + "de_DE": 252989, + "ja_JP": 243253, + "cs_CZ": 232161, + "en_AU": 131935, + "pl_PL": 123898, + "sk_SK": 40386, + "sv_SE": 27848, + "es_ES": 10422, + "fr_FR": 2465, + "nl_NL": 179 + }, + "info.configuration.language.name": { + "English (UK)": 1185767, + "Korean": 650210, + "English (US)": 466807, + "Chinese (Simplified)": 405910, + "Russian": 266019, + "German": 252989, + "Japanese": 243253, + "Czech": 232161, + "English (AU)": 131935, + "Polish": 123898, + "Slovak": 40386, + "Swedish": 27848, + "Spanish": 10422, + "French": 2465, + "Dutch": 179 + }, + "info.configuration.music_driver": { + "null": 1989865, + "dmusic": 1945658, + "win32": 74642, + "extmidi": 24109, + "fluidsynth": 5975 + }, + "info.configuration.network": { + "no": 2959356, + "client": 900359, + "server": 180534 + }, + "info.configuration.sound_driver": { + "win32": 3663400, + "cocoa": 164895, + "sdl": 151146, + "null": 60808 + }, + "info.configuration.video_driver": { + "win32-opengl": 2900294, + "win32": 766181, + "cocoa": 164895, + "sdl-opengl": 151146, + "dedicated": 57733 + }, + "info.configuration.video_info": { + "(no hardware acceleration)": 988809, + "Intel(R) RaptorLake-S Mobile Graphics Controller": 299660, + "AMD Radeon(TM) R3 Graphics": 184235, + "Intel(R) HD Graphics 620": 169762, + "AMD Radeon(TM) Graphics": 161063, + "NVIDIA GeForce RTX 4060/PCIe/SSE2": 151569, + "NVIDIA GeForce RTX 3060/PCIe/SSE2": 145648, + "Intel(R) UHD Graphics 770": 137200, + "NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2": 120747, + "AMD Radeon RX 6600": 120401, + "NVIDIA GeForce RTX 4080/PCIe/SSE2": 117245, + "NVIDIA GeForce GT 1030/PCIe/SSE2": 110186, + "Intel(R) Iris(R) Xe Graphics": 109933, + "Intel(R) UHD Graphics": 83907, + "NVIDIA GeForce RTX 3070/PCIe/SSE2": 81989, + "Intel(R) UHD Graphics 630": 78740, + "NVIDIA GeForce RTX 4050 Laptop GPU/PCIe/SSE2": 76188, + "AMD Radeon RX 7800 XT": 69301, + "Mesa Intel(R) HD Graphics 630": 68928, + "NVIDIA GeForce GTX 1060 3GB/PCIe/SSE2": 58191, + "NVIDIA GeForce RTX 4060 Laptop GPU/PCIe/SSE2": 51798, + "NVIDIA GeForce RTX 3050 4GB Laptop GPU/PCIe/SSE2": 47071, + "NVIDIA GeForce GTX 970/PCIe/SSE2": 46068, + "AMD Radeon RX 5700 XT": 40676, + "AMD CAICOS": 40386, + "GeForce GTX 1070/PCIe/SSE2": 35549, + "AMD Radeon RX 6750 XT": 34858, + "GeForce GTX 1050 Ti/PCIe/SSE2": 34634, + "NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2": 32292, + "Intel(R) UHD Graphics 620": 30367, + "NVIDIA GeForce RTX 3080 Laptop GPU/PCIe/SSE2": 30352, + "NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2": 30329, + "AMD Radeon RX 7900 XT": 22308, + "NVIDIA GeForce RTX 4060 Ti/PCIe/SSE2": 20180, + "Intel(R) UHD Graphics 610": 18913, + "NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2": 16763, + "NVIDIA GeForce GTX 1070/PCIe/SSE2": 15264, + "AMD Radeon(TM) Vega 8 Graphics": 14702, + "NVIDIA GeForce RTX 2070/PCIe/SSE2": 14627, + "NVIDIA GeForce RTX 3080/PCIe/SSE2": 14616, + "Intel(R) HD Graphics 630": 14011, + "NVIDIA GeForce RTX 2060 SUPER/PCIe/SSE2": 12477, + "AMD Radeon(TM) RX Vega 10 Graphics": 9749, + "AMD Radeon R9 200 / HD 7900 Series": 9048, + "AMD Radeon Vega 11 Graphics": 8837, + "NVIDIA GeForce GTX 1080/PCIe/SSE2": 6942, + "AMD Radeon R7 Graphics": 5611, + "NVIDIA GeForce RTX 4070 Ti/PCIe/SSE2": 5113, + "AMD Radeon HD 5450": 4511, + "NVIDIA GeForce GTX 960M/PCIe/SSE2": 4511, + "NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2": 4334, + "NVIDIA GeForce GTX 1660/PCIe/SSE2": 4187, + "AMD Radeon(TM) R7 Graphics": 4088, + "Intel(R) HD Graphics Gen11": 3832, + "NVIDIA GeForce RTX 2080/PCIe/SSE2": 2465, + "Quadro M4000/PCIe/SSE2": 2373, + "GeForce GTS 450/PCIe/SSE2": 2282, + "NVIDIA GeForce GTX 750/PCIe/SSE2": 2252, + "Radeon RX 570 Series": 1847, + "NVIDIA GeForce RTX 3050 Ti Laptop GPU/PCIe/SSE2": 1414, + "GeForce RTX 2070 SUPER/PCIe/SSE2": 1306, + "Radeon RX 580 Series": 1274, + "NVIDIA GeForce GTX 980/PCIe/SSE2": 993, + "AMD Radeon RX 6700 XT": 589, + "Intel(R) Arc(TM) A770 Graphics": 384, + "NVIDIA TITAN RTX/PCIe/SSE2": 364 + }, + "info.font.large": { + "sprite": 2288122, + "\uad74\ub9bc": 481999, + "\u5fae\u8f6f\u96c5\u9ed1": 341570, + "Arial": 310743, + "\uff2d\uff33 \u30b4\u30b7\u30c3\u30af": 234416, + "Arial Unicode MS": 153361, + "DejaVu Serif, Bold": 68928, + "Arial Bold": 37827, + "Unifont": 36146, + "Unifont-JP": 28194, + "\ub9d1\uc740 \uace0\ub515": 14850, + "Arial Narrow Fett": 10296, + "Times New Roman": 10166, + "Noto Sans CJK JP, Regular": 8837, + "Arial Fett": 5957, + "Cambria": 4088, + "Roboto Medium": 2282, + "Tahoma": 1306, + "Comic Sans MS": 1161 + }, + "info.font.medium": { + "sprite": 2332570, + "\uad74\ub9bc": 481999, + "\u5fae\u8f6f\u96c5\u9ed1": 341570, + "Arial": 264713, + "\uff2d\uff33 \u30b4\u30b7\u30c3\u30af": 234416, + "Arial Unicode MS": 153361, + "DejaVu Sans, Bold": 68928, + "Arial Bold": 37827, + "Unifont": 36146, + "Unifont-JP": 28194, + "\ub9d1\uc740 \uace0\ub515": 14850, + "Arial Narrow Fett": 10296, + "Tahoma Bold": 10166, + "Noto Sans CJK JP, Regular": 8837, + "Arial Fett": 6950, + "Calibri Bold": 4088, + "Roboto Bold": 2282, + "Tahoma": 1306, + "Comic Sans MS": 1161, + "Arial Pogrubiony": 589 + }, + "info.font.mono": { + "sprite": 3979834, + "\uad74\ub9bc": 30421, + "Courier New": 10476, + "Noto Sans CJK JP, Regular": 8837, + "\u65b0\u5b8b\u4f53": 8628, + "Arial Narrow Fett": 1168, + "\uad74\ub9bc\uccb4": 885 + }, + "info.font.small": { + "sprite": 2332570, + "\uad74\ub9bc": 481999, + "\u5fae\u8f6f\u96c5\u9ed1": 341570, + "Arial": 282418, + "\uff2d\uff33 \u30b4\u30b7\u30c3\u30af": 234416, + "Arial Unicode MS": 153361, + "DejaVu Sans, Book": 68928, + "DejaVu Sans": 37827, + "Unifont": 36146, + "Unifont-JP": 28194, + "\ub9d1\uc740 \uace0\ub515": 14850, + "Arial Narrow Fett": 10296, + "Noto Sans CJK JP, Regular": 8837, + "Calibri": 4088, + "Roboto Medium": 2282, + "Tahoma": 1306, + "Comic Sans MS": 1161 + }, + "info.openttd.bits": { + "64": 3999863, + "32": 40386 + }, + "info.openttd.dedicated_build": { + "no": 4040249 + }, + "info.openttd.endian": { + "little": 4040249 + }, + "info.os.hardware_concurrency": { + "8": 1027663, + "4": 670525, + "20": 623768, + "12": 526295, + "16": 506569, + "2": 262938, + "24": 217595, + "32": 105325, + "6": 99571 + }, + "info.os.machine": { + "ARM64E": 153633, + "x86_64": 151146, + "Intel 80486": 11262 + }, + "info.os.memory": { + "16 GiB": 1416795, + "8 GiB": 812204, + "32 GiB": 752289, + "64 GiB": 329560, + "4 GiB": 272682, + "24 GiB": 181002, + "12 GiB": 112581, + "15 GiB": 63297, + "6 GiB": 33288, + "48 GiB": 31957, + "63 GiB": 30510, + "40 GiB": 3720, + "62 GiB": 364 + }, + "info.os.os": { + "Windows 10.0.19045": 1607529, + "Windows 10.0.22621": 1088653, + "Windows 10.0.22631": 313400, + "Windows 6.1.7601 (Service Pack 1)": 311895, + "MacOS 14.3.0": 153361, + "Windows 10.0.19044": 122736, + "Windows 10.0.22000": 89742, + "Linux 5.15.0": 68928, + "Windows 10.0.20348": 57733, + "Windows 10.0.7601 (Service Pack 1)": 40386, + "Windows 10.0.19042": 35549, + "Windows 10.0.19043": 35470, + "Linux 6.6.6": 30510, + "Linux 6.5.0": 27848, + "Windows 10.0.15063": 19809, + "MacOS 10.15.7": 11262, + "Linux 6.6.2": 9048, + "Linux 6.6.8": 8837, + "Linux 6.5.11": 5611, + "Windows 10.0.17763": 1306, + "Linux 6.1.67": 364, + "MacOS 13.4.1": 272 + }, + "info.os.vendor": { + "Windows": 3724208, + "MacOS": 164895, + "Linux": 151146 + }, + "reason": { + "exit": 2268279, + "leave": 1587659, + "crash": 184311 + }, + "summary": { + "seconds": 4040249, + "count": 714, + "ids": 328 + } + }, + "vanilla-master": null +} diff --git a/_layouts/default.html b/_layouts/default.html index b7d56f3..4faa12e 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -25,8 +25,8 @@
  • Participate
  • -
  • - Results +
  • + Summaries
  • diff --git a/_layouts/summaries.html b/_layouts/summaries.html new file mode 100644 index 0000000..9586083 --- /dev/null +++ b/_layouts/summaries.html @@ -0,0 +1,75 @@ +--- +layout: default +--- + +
    +
    +

    Survey Result Summary - {{ page.name }}

    +
    +
    +
    +

    + Below is the summary of the survey results from {{ page.start_date }} to {{ page.end_date }}. +

    + +
      + {% for version in site.data.summaries[page.year][page.week] %} +
    • + {{ version[0] }} +
    • + {% endfor %} +
    + +

    + Be mindful that these numbers are only based on those people willing to send us survey results. + It might not be representative of the entire OpenTTD player base. +

    +
    +
    + + {% for version in site.data.summaries[page.year][page.week] %} +
    +

    {{ version[0] }}

    +
    +
    +
    + {% if version[1] == nil %} +

    + Due to low number of games played, no summary is available. +

    + {% continue %} + {% endif %} + + {% assign seconds = version[1].summary.seconds | times: 1.0 %} + +

    + We received surveys for a total of {{ version[1].summary.seconds | divided_by: 3600 | round: 2 }} hours of games played, over a total of {{ version[1].summary.ids }} games. + This is an average of {{ seconds | divided_by: version[1].summary.ids | divided_by: 3600 | round: 2 }} hours per game. +

    + + + {% for summary in version[1] %} + {% if summary[0] == "summary" %}{% continue %}{% endif %} + + + + {% for line in summary[1] %} + {% assign percentage = line[1] | divided_by: seconds | percentage %} + + + + {% if percentage == "0.0" %} + + {% else %} + + {% endif %} + + {% endfor %} + {% endfor %} +
    + {{ summary[0] }} +
    {{ line[0] }}<0.1%{{ percentage }}%
    +
    +
    + {% endfor %} +
    diff --git a/_plugins/openttd-filters.rb b/_plugins/openttd-filters.rb new file mode 100644 index 0000000..1733cc1 --- /dev/null +++ b/_plugins/openttd-filters.rb @@ -0,0 +1,10 @@ +module Jekyll + module OpenTTDFilters + + def percentage(value) + return sprintf("%.1f", value * 100) + end + end +end + +Liquid::Template.register_filter(Jekyll::OpenTTDFilters) diff --git a/_summaries/2024/wk01.md b/_summaries/2024/wk01.md new file mode 100644 index 0000000..909e64e --- /dev/null +++ b/_summaries/2024/wk01.md @@ -0,0 +1,8 @@ +--- +name: 2024 - Week 1 +active_nav: summaries +year: "2024" +week: wk01 +start_date: "2024-01-01" +end_date: "2024-01-06" +--- diff --git a/analysis/__main__.py b/analysis/__main__.py index ee642f2..20da739 100644 --- a/analysis/__main__.py +++ b/analysis/__main__.py @@ -1,14 +1,192 @@ -""" -TODO -""" +import json +import sys +import tarfile -import asyncio +from collections import defaultdict +# Ensure the summary is always based on a good amount of surveys. +# Otherwise it is very easy for one user to be visible in the results. +THRESHOLD_DIFFERENT_SAVEGAMES = 150 +THRESHOLD_DIFFERENT_SURVEYS = 300 -async def main(): - pass +BLACKLIST_PATHS = [ + "date", # Not interesting. + "game.companies", # Processed differently. + "game.game_script", # Processed differently. + "game.grfs", # Processed differently. + "game.settings.game_creation.generation_seed", # Too many results. + "game.settings.game_creation.generation_unique_id", # Too many results. + "game.settings.last_newgrf_count", # Not interesting. + "game.settings.music.custom_1", # Not interesting. + "game.settings.music.custom_2", # Not interesting. + "game.settings.music.effect_vol", # Not interesting. + "game.settings.music.music_vol", # Not interesting. + "game.settings.musicset", # Already in "info.configuration.music_set". + "game.settings.player_face", # Not interesting. + "game.settings.soundsset", # Already in "info.configuration.sound_set". + "game.timers", # Not interesting. + "id", # Not interesting. + "info.compiler", # Not interesting. + "info.configuration.graphics_set", # Processed differently. + "info.configuration.music_set", # Processed differently. + "info.configuration.sound_set", # Processed differently. + "info.libraries", # Not interesting. + "info.openttd.build_date", # Not interesting. + "info.openttd.version", # Not interesting. + "info.os.machine", # OS specific setting, not interesting. + "info.os.max_ver", # OS specific setting, Not interesting. + "info.os.min_ver", # OS specific setting, Not interesting. + "info.os.release", # Combined with "info.os.os". + "info.os.version", # OS specific setting, Not interesting. + "key", # Not interesting. + "schema", # Not interesting. +] + + +def summarize_setting(summary, version, seconds, path, data): + if path in BLACKLIST_PATHS: + return + + if type(data) is dict: + for key, value in data.items(): + # Combine info.os.os with info.os.release, as their whole is the OS version. + if path == "info.os" and key == "os": + summarize_setting(summary, version, seconds, f"{path}.vendor", value) + + value = f"{value} {data['release']}".replace(" ()", "").split("-")[0] + summarize_setting(summary, version, seconds, f"{path}.{key}", value) + + return + + if type(data) is list: + raise Exception("Lists are not implemented yet") + + if path in ("game.settings.display_opt", "game.settings.extra_display_opt"): + if not data: + return + + for option in data.split("|"): + summarize_setting(summary, version, seconds, f"{path}.{option}", "true") + return + + if path == "info.configuration.video_info": + if "(" not in data or data.startswith("sdl "): + data = "(no hardware acceleration)" + else: + driver = data.split("(")[0].strip() + + # SDL reports slightly different from the rest. + if driver == "sdl-opengl": + data = data.split("(", 2)[2] + else: + data = data.split("(", 1)[1] + + # Only keep the graphics driver name; remove all versions etc. + data = data.replace("(TM)", "@TM@").replace("(R)", "@R@").replace("(C)", "@C@") + data = data.split(",")[0].split("(")[0].strip() + data = data.replace("@TM@", "(TM)").replace("@R@", "(R)").replace("@C@", "(C)") + + if type(data) is str: + if data.startswith('"') and data.endswith('"'): + data = data[1:-1] + if not data: + data = "(empty)" + + summary[version][path][data] += seconds + + +def summarize_result(summary, fp): + data = json.loads(fp.read()) + + try: + seconds = data["game"]["timers"]["seconds"] + ticks = data["game"]["timers"]["ticks"] + except KeyError: + # Invalid (or very old) survey result. + return 0 + + # Surveys results that were either mostly paused or really short are skipped + # to avoid people gaming the system. + if seconds < 60 or ticks < 100: + return 0 + + version = data["info"]["openttd"]["version"]["revision"] + + if "-" in version and version[0:8].isdigit(): + branch = version.split("-")[1] + # Only track the nightlies. + if branch == "master": + version = "vanilla-master" + else: + return 0 + + for key, value in data.items(): + summarize_setting(summary, version, seconds, key, value) + + summary[version]["summary"]["count"] += 1 + summary[version]["summary"]["seconds"] += seconds + + if "ids" not in summary[version]["summary"]: + summary[version]["summary"]["ids"] = set() + summary[version]["summary"]["ids"].add(data["id"]) + + return seconds + + +def summarize_archive(summary, filename): + if filename.endswith(".json"): + if not filename.endswith("verified.json"): + return 0 + + with open(filename) as fp: + return summarize_result(summary, fp) + + total_seconds = 0 + + with tarfile.open(filename) as archive: + for member in archive: + if not member.isfile(): + continue + + # If the filename doesn't end with "verified.json", the survey result + # wasn't created by an official client. For now, we skip those results. + if not member.name.endswith("verified.json"): + continue + + with archive.extractfile(member) as fp: + total_seconds += summarize_result(summary, fp) + + return total_seconds + + +def main(): + summary = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) + + total_seconds = 0 + for filename in sys.argv[1:]: + total_seconds += summarize_archive(summary, filename) + + # Calculate the "false" condition of each display option, assuming that if you didn't have it on, it was off. + for version, version_summary in summary.items(): + # Sort the data based on the path. + summary[version] = dict(sorted(summary[version].items(), key=lambda item: item[0])) + + for path, data in version_summary.items(): + if path == "summary": + data["ids"] = len(data["ids"]) + + if data["ids"] < THRESHOLD_DIFFERENT_SAVEGAMES or data["count"] < THRESHOLD_DIFFERENT_SURVEYS: + summary[version] = None + break + + if path.startswith("game.settings.display_opt.") or path.startswith("game.settings.extra_display_opt."): + data["false"] = total_seconds - data["true"] + + # Sort the data based on the value. + summary[version][path] = dict(sorted(data.items(), key=lambda item: item[1], reverse=True)) + + print(json.dumps(summary, indent=4)) if __name__ == "__main__": - loop = asyncio.get_event_loop() - loop.run_until_complete(main()) + main() diff --git a/pages/results.html b/pages/results.html deleted file mode 100644 index aee4447..0000000 --- a/pages/results.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default -title: Results -active_nav: results -permalink: /results.html ---- - -
    -
    -

    Results

    -
    -
    -
    -

    - Coming soon (once enough surveys have been received to make the results meaningful) -

    -
    -
    -
    diff --git a/pages/summaries.html b/pages/summaries.html new file mode 100644 index 0000000..ac80a31 --- /dev/null +++ b/pages/summaries.html @@ -0,0 +1,19 @@ +--- +layout: default +title: Summaries +active_nav: summaries +permalink: /summaries.html +--- + +
    +
    +

    Survey Result Summaries

    +
    +
    +
    + {% for year in site.summaries %} + {{ year.end_date }}: Survey Result Summary - {{ year.name }}
    + {% endfor %} +
    +
    +
    diff --git a/requirements.base b/requirements.base deleted file mode 100644 index e69de29..0000000