From 502f06af914539a6c201d8cb8427f2f3996dce00 Mon Sep 17 00:00:00 2001 From: X123M3-256 Date: Thu, 26 May 2022 22:28:17 +0100 Subject: [PATCH] Add "Alpine Coaster" ride type (#16825) * Implement "Alpine Coaster" ride type Co-authored-by: duncanspumpkin --- data/language/en-GB.txt | 6 +- distribution/changelog.txt | 1 + resources/g2/sprites.json | 2592 +++++- resources/g2/track/alpine/block_brake_1.png | Bin 0 -> 945 bytes resources/g2/track/alpine/block_brake_2.png | Bin 0 -> 927 bytes resources/g2/track/alpine/brake_1.png | Bin 0 -> 948 bytes resources/g2/track/alpine/brake_2.png | Bin 0 -> 929 bytes resources/g2/track/alpine/flat_1.png | Bin 0 -> 952 bytes resources/g2/track/alpine/flat_2.png | Bin 0 -> 949 bytes resources/g2/track/alpine/flat_diag_1.png | Bin 0 -> 904 bytes resources/g2/track/alpine/flat_diag_2.png | Bin 0 -> 945 bytes resources/g2/track/alpine/flat_diag_3.png | Bin 0 -> 902 bytes resources/g2/track/alpine/flat_diag_4.png | Bin 0 -> 945 bytes .../g2/track/alpine/flat_diag_lift_1.png | Bin 0 -> 914 bytes .../g2/track/alpine/flat_diag_lift_2.png | Bin 0 -> 8951 bytes .../g2/track/alpine/flat_diag_lift_3.png | Bin 0 -> 911 bytes .../g2/track/alpine/flat_diag_lift_4.png | Bin 0 -> 8870 bytes resources/g2/track/alpine/flat_lift_1.png | Bin 0 -> 963 bytes resources/g2/track/alpine/flat_lift_2.png | Bin 0 -> 947 bytes resources/g2/track/alpine/flat_lift_3.png | Bin 0 -> 966 bytes resources/g2/track/alpine/flat_lift_4.png | Bin 0 -> 953 bytes .../g2/track/alpine/flat_to_gentle_up_1.png | Bin 0 -> 1029 bytes .../g2/track/alpine/flat_to_gentle_up_2.png | Bin 0 -> 990 bytes .../g2/track/alpine/flat_to_gentle_up_3.png | Bin 0 -> 983 bytes .../g2/track/alpine/flat_to_gentle_up_4.png | Bin 0 -> 1032 bytes .../track/alpine/flat_to_gentle_up_diag_1.png | Bin 0 -> 1038 bytes .../track/alpine/flat_to_gentle_up_diag_2.png | Bin 0 -> 926 bytes .../track/alpine/flat_to_gentle_up_diag_3.png | Bin 0 -> 1042 bytes .../track/alpine/flat_to_gentle_up_diag_4.png | Bin 0 -> 949 bytes .../alpine/flat_to_gentle_up_diag_lift_1.png | Bin 0 -> 1037 bytes .../alpine/flat_to_gentle_up_diag_lift_2.png | Bin 0 -> 8712 bytes .../alpine/flat_to_gentle_up_diag_lift_3.png | Bin 0 -> 1040 bytes .../alpine/flat_to_gentle_up_diag_lift_4.png | Bin 0 -> 8271 bytes .../track/alpine/flat_to_gentle_up_lift_1.png | Bin 0 -> 1037 bytes .../track/alpine/flat_to_gentle_up_lift_2.png | Bin 0 -> 997 bytes .../track/alpine/flat_to_gentle_up_lift_3.png | Bin 0 -> 1002 bytes .../track/alpine/flat_to_gentle_up_lift_4.png | Bin 0 -> 1032 bytes .../g2/track/alpine/flat_to_left_bank_1_1.png | Bin 0 -> 971 bytes .../g2/track/alpine/flat_to_left_bank_1_2.png | Bin 0 -> 902 bytes .../g2/track/alpine/flat_to_left_bank_2_1.png | Bin 0 -> 959 bytes .../g2/track/alpine/flat_to_left_bank_2_2.png | Bin 0 -> 914 bytes .../g2/track/alpine/flat_to_left_bank_3.png | Bin 0 -> 1025 bytes .../g2/track/alpine/flat_to_left_bank_4.png | Bin 0 -> 1016 bytes .../alpine/flat_to_left_bank_diag_1_1.png | Bin 0 -> 924 bytes .../alpine/flat_to_left_bank_diag_1_2.png | Bin 0 -> 913 bytes .../track/alpine/flat_to_left_bank_diag_2.png | Bin 0 -> 8853 bytes .../track/alpine/flat_to_left_bank_diag_3.png | Bin 0 -> 969 bytes .../track/alpine/flat_to_left_bank_diag_4.png | Bin 0 -> 9352 bytes .../g2/track/alpine/flat_to_right_bank_1.png | Bin 0 -> 1016 bytes .../g2/track/alpine/flat_to_right_bank_2.png | Bin 0 -> 1021 bytes .../track/alpine/flat_to_right_bank_3_1.png | Bin 0 -> 960 bytes .../track/alpine/flat_to_right_bank_3_2.png | Bin 0 -> 913 bytes .../track/alpine/flat_to_right_bank_4_1.png | Bin 0 -> 970 bytes .../track/alpine/flat_to_right_bank_4_2.png | Bin 0 -> 897 bytes .../alpine/flat_to_right_bank_diag_1.png | Bin 0 -> 971 bytes .../alpine/flat_to_right_bank_diag_2.png | Bin 0 -> 8806 bytes .../alpine/flat_to_right_bank_diag_3_1.png | Bin 0 -> 919 bytes .../alpine/flat_to_right_bank_diag_3_2.png | Bin 0 -> 913 bytes .../alpine/flat_to_right_bank_diag_4.png | Bin 0 -> 9274 bytes resources/g2/track/alpine/gentle_1.png | Bin 0 -> 957 bytes resources/g2/track/alpine/gentle_2.png | Bin 0 -> 916 bytes resources/g2/track/alpine/gentle_3.png | Bin 0 -> 915 bytes resources/g2/track/alpine/gentle_4.png | Bin 0 -> 973 bytes resources/g2/track/alpine/gentle_diag_1.png | Bin 0 -> 991 bytes resources/g2/track/alpine/gentle_diag_2.png | Bin 0 -> 929 bytes resources/g2/track/alpine/gentle_diag_3.png | Bin 0 -> 982 bytes resources/g2/track/alpine/gentle_diag_4.png | Bin 0 -> 965 bytes .../g2/track/alpine/gentle_diag_lift_1.png | Bin 0 -> 968 bytes .../g2/track/alpine/gentle_diag_lift_2.png | Bin 0 -> 9252 bytes .../g2/track/alpine/gentle_diag_lift_3.png | Bin 0 -> 949 bytes .../g2/track/alpine/gentle_diag_lift_4.png | Bin 0 -> 8242 bytes resources/g2/track/alpine/gentle_lift_1.png | Bin 0 -> 973 bytes resources/g2/track/alpine/gentle_lift_2.png | Bin 0 -> 930 bytes resources/g2/track/alpine/gentle_lift_3.png | Bin 0 -> 925 bytes resources/g2/track/alpine/gentle_lift_4.png | Bin 0 -> 948 bytes .../track/alpine/gentle_to_flat_up_diag_1.png | Bin 0 -> 1033 bytes .../track/alpine/gentle_to_flat_up_diag_2.png | Bin 0 -> 940 bytes .../track/alpine/gentle_to_flat_up_diag_3.png | Bin 0 -> 1040 bytes .../track/alpine/gentle_to_flat_up_diag_4.png | Bin 0 -> 946 bytes .../alpine/gentle_to_flat_up_diag_lift_1.png | Bin 0 -> 1041 bytes .../alpine/gentle_to_flat_up_diag_lift_2.png | Bin 0 -> 9234 bytes .../alpine/gentle_to_flat_up_diag_lift_3.png | Bin 0 -> 1044 bytes .../alpine/gentle_to_flat_up_diag_lift_4.png | Bin 0 -> 7921 bytes .../g2/track/alpine/gentle_up_to_flat_1.png | Bin 0 -> 1034 bytes .../g2/track/alpine/gentle_up_to_flat_2.png | Bin 0 -> 972 bytes .../g2/track/alpine/gentle_up_to_flat_3.png | Bin 0 -> 975 bytes .../g2/track/alpine/gentle_up_to_flat_4.png | Bin 0 -> 1024 bytes .../track/alpine/gentle_up_to_flat_lift_1.png | Bin 0 -> 1044 bytes .../track/alpine/gentle_up_to_flat_lift_2.png | Bin 0 -> 983 bytes .../track/alpine/gentle_up_to_flat_lift_3.png | Bin 0 -> 990 bytes .../track/alpine/gentle_up_to_flat_lift_4.png | Bin 0 -> 1032 bytes .../alpine/gentle_up_to_left_bank_1_1.png | Bin 0 -> 989 bytes .../alpine/gentle_up_to_left_bank_1_2.png | Bin 0 -> 907 bytes .../alpine/gentle_up_to_left_bank_2_1.png | Bin 0 -> 940 bytes .../alpine/gentle_up_to_left_bank_2_2.png | Bin 0 -> 918 bytes .../track/alpine/gentle_up_to_left_bank_3.png | Bin 0 -> 1002 bytes .../track/alpine/gentle_up_to_left_bank_4.png | Bin 0 -> 1042 bytes .../gentle_up_to_left_bank_diag_1_1.png | Bin 0 -> 965 bytes .../gentle_up_to_left_bank_diag_1_2.png | Bin 0 -> 948 bytes .../alpine/gentle_up_to_left_bank_diag_2.png | Bin 0 -> 9276 bytes .../alpine/gentle_up_to_left_bank_diag_3.png | Bin 0 -> 1055 bytes .../alpine/gentle_up_to_left_bank_diag_4.png | Bin 0 -> 8363 bytes .../alpine/gentle_up_to_right_bank_1.png | Bin 0 -> 1046 bytes .../alpine/gentle_up_to_right_bank_2.png | Bin 0 -> 1007 bytes .../alpine/gentle_up_to_right_bank_3_1.png | Bin 0 -> 936 bytes .../alpine/gentle_up_to_right_bank_3_2.png | Bin 0 -> 919 bytes .../alpine/gentle_up_to_right_bank_4_1.png | Bin 0 -> 997 bytes .../alpine/gentle_up_to_right_bank_4_2.png | Bin 0 -> 897 bytes .../alpine/gentle_up_to_right_bank_diag_1.png | Bin 0 -> 1055 bytes .../alpine/gentle_up_to_right_bank_diag_2.png | Bin 0 -> 9344 bytes .../gentle_up_to_right_bank_diag_3_1.png | Bin 0 -> 951 bytes .../gentle_up_to_right_bank_diag_3_2.png | Bin 0 -> 940 bytes .../alpine/gentle_up_to_right_bank_diag_4.png | Bin 0 -> 8326 bytes .../alpine/large_turn_left_to_diag_1_1.png | Bin 0 -> 994 bytes .../alpine/large_turn_left_to_diag_1_2.png | Bin 0 -> 971 bytes .../alpine/large_turn_left_to_diag_1_3.png | Bin 0 -> 915 bytes .../alpine/large_turn_left_to_diag_1_4.png | Bin 0 -> 957 bytes .../alpine/large_turn_left_to_diag_2_1.png | Bin 0 -> 1010 bytes .../alpine/large_turn_left_to_diag_2_2.png | Bin 0 -> 952 bytes .../alpine/large_turn_left_to_diag_2_3.png | Bin 0 -> 943 bytes .../alpine/large_turn_left_to_diag_2_4.png | Bin 0 -> 937 bytes .../alpine/large_turn_left_to_diag_3_1.png | Bin 0 -> 1019 bytes .../alpine/large_turn_left_to_diag_3_2.png | Bin 0 -> 1002 bytes .../alpine/large_turn_left_to_diag_3_3.png | Bin 0 -> 896 bytes .../alpine/large_turn_left_to_diag_3_4.png | Bin 0 -> 938 bytes .../alpine/large_turn_left_to_diag_4_1.png | Bin 0 -> 994 bytes .../alpine/large_turn_left_to_diag_4_2.png | Bin 0 -> 998 bytes .../alpine/large_turn_left_to_diag_4_3.png | Bin 0 -> 878 bytes .../alpine/large_turn_left_to_diag_4_4.png | Bin 0 -> 944 bytes .../large_turn_left_to_diag_bank_1_1.png | Bin 0 -> 956 bytes .../large_turn_left_to_diag_bank_1_2.png | Bin 0 -> 948 bytes .../large_turn_left_to_diag_bank_1_3.png | Bin 0 -> 904 bytes .../large_turn_left_to_diag_bank_1_4.png | Bin 0 -> 984 bytes .../large_turn_left_to_diag_bank_2_1.png | Bin 0 -> 968 bytes .../large_turn_left_to_diag_bank_2_2.png | Bin 0 -> 1005 bytes .../large_turn_left_to_diag_bank_2_3.png | Bin 0 -> 860 bytes .../large_turn_left_to_diag_bank_2_4.png | Bin 0 -> 928 bytes .../large_turn_left_to_diag_bank_3_1.png | Bin 0 -> 1043 bytes .../large_turn_left_to_diag_bank_3_2.png | Bin 0 -> 998 bytes .../large_turn_left_to_diag_bank_3_3.png | Bin 0 -> 895 bytes .../large_turn_left_to_diag_bank_3_4.png | Bin 0 -> 939 bytes .../large_turn_left_to_diag_bank_4_1.png | Bin 0 -> 1024 bytes .../large_turn_left_to_diag_bank_4_2.png | Bin 0 -> 1041 bytes .../large_turn_left_to_diag_bank_4_3.png | Bin 0 -> 887 bytes .../large_turn_left_to_diag_bank_4_4.png | Bin 0 -> 967 bytes .../alpine/large_turn_right_to_diag_1_1.png | Bin 0 -> 989 bytes .../alpine/large_turn_right_to_diag_1_2.png | Bin 0 -> 1002 bytes .../alpine/large_turn_right_to_diag_1_3.png | Bin 0 -> 878 bytes .../alpine/large_turn_right_to_diag_1_4.png | Bin 0 -> 943 bytes .../alpine/large_turn_right_to_diag_2_1.png | Bin 0 -> 1005 bytes .../alpine/large_turn_right_to_diag_2_2.png | Bin 0 -> 995 bytes .../alpine/large_turn_right_to_diag_2_3.png | Bin 0 -> 896 bytes .../alpine/large_turn_right_to_diag_2_4.png | Bin 0 -> 935 bytes .../alpine/large_turn_right_to_diag_3_1.png | Bin 0 -> 1019 bytes .../alpine/large_turn_right_to_diag_3_2.png | Bin 0 -> 957 bytes .../alpine/large_turn_right_to_diag_3_3.png | Bin 0 -> 946 bytes .../alpine/large_turn_right_to_diag_3_4.png | Bin 0 -> 934 bytes .../alpine/large_turn_right_to_diag_4_1.png | Bin 0 -> 992 bytes .../alpine/large_turn_right_to_diag_4_2.png | Bin 0 -> 974 bytes .../alpine/large_turn_right_to_diag_4_3.png | Bin 0 -> 914 bytes .../alpine/large_turn_right_to_diag_4_4.png | Bin 0 -> 958 bytes .../large_turn_right_to_diag_bank_1_1.png | Bin 0 -> 1020 bytes .../large_turn_right_to_diag_bank_1_2.png | Bin 0 -> 1026 bytes .../large_turn_right_to_diag_bank_1_3.png | Bin 0 -> 887 bytes .../large_turn_right_to_diag_bank_1_4.png | Bin 0 -> 970 bytes .../large_turn_right_to_diag_bank_2_1.png | Bin 0 -> 1041 bytes .../large_turn_right_to_diag_bank_2_2.png | Bin 0 -> 994 bytes .../large_turn_right_to_diag_bank_2_3.png | Bin 0 -> 895 bytes .../large_turn_right_to_diag_bank_2_4.png | Bin 0 -> 935 bytes .../large_turn_right_to_diag_bank_3_1.png | Bin 0 -> 971 bytes .../large_turn_right_to_diag_bank_3_2.png | Bin 0 -> 1011 bytes .../large_turn_right_to_diag_bank_3_3.png | Bin 0 -> 860 bytes .../large_turn_right_to_diag_bank_3_4.png | Bin 0 -> 928 bytes .../large_turn_right_to_diag_bank_4_1.png | Bin 0 -> 1017 bytes .../large_turn_right_to_diag_bank_4_2.png | Bin 0 -> 946 bytes .../large_turn_right_to_diag_bank_4_3.png | Bin 0 -> 906 bytes .../large_turn_right_to_diag_bank_4_4.png | Bin 0 -> 952 bytes resources/g2/track/alpine/left_bank_1.png | Bin 0 -> 917 bytes resources/g2/track/alpine/left_bank_2.png | Bin 0 -> 926 bytes resources/g2/track/alpine/left_bank_3.png | Bin 0 -> 957 bytes resources/g2/track/alpine/left_bank_4.png | Bin 0 -> 966 bytes .../g2/track/alpine/left_bank_diag_1.png | Bin 0 -> 904 bytes .../g2/track/alpine/left_bank_diag_2.png | Bin 0 -> 8391 bytes .../g2/track/alpine/left_bank_diag_3.png | Bin 0 -> 920 bytes .../g2/track/alpine/left_bank_diag_4.png | Bin 0 -> 8378 bytes .../alpine/left_bank_to_gentle_up_1_1.png | Bin 0 -> 983 bytes .../alpine/left_bank_to_gentle_up_1_2.png | Bin 0 -> 922 bytes .../alpine/left_bank_to_gentle_up_2_1.png | Bin 0 -> 941 bytes .../alpine/left_bank_to_gentle_up_2_2.png | Bin 0 -> 908 bytes .../track/alpine/left_bank_to_gentle_up_3.png | Bin 0 -> 998 bytes .../track/alpine/left_bank_to_gentle_up_4.png | Bin 0 -> 1055 bytes .../left_bank_to_gentle_up_diag_1_1.png | Bin 0 -> 963 bytes .../left_bank_to_gentle_up_diag_1_2.png | Bin 0 -> 938 bytes .../alpine/left_bank_to_gentle_up_diag_2.png | Bin 0 -> 9375 bytes .../alpine/left_bank_to_gentle_up_diag_3.png | Bin 0 -> 1063 bytes .../alpine/left_bank_to_gentle_up_diag_4.png | Bin 0 -> 7892 bytes .../track/alpine/medium_helix_left_up_1_1.png | Bin 0 -> 925 bytes .../track/alpine/medium_helix_left_up_1_2.png | Bin 0 -> 920 bytes .../track/alpine/medium_helix_left_up_1_3.png | Bin 0 -> 926 bytes .../track/alpine/medium_helix_left_up_1_4.png | Bin 0 -> 952 bytes .../track/alpine/medium_helix_left_up_1_5.png | Bin 0 -> 954 bytes .../track/alpine/medium_helix_left_up_1_6.png | Bin 0 -> 1088 bytes .../track/alpine/medium_helix_left_up_2_1.png | Bin 0 -> 974 bytes .../track/alpine/medium_helix_left_up_2_2.png | Bin 0 -> 890 bytes .../track/alpine/medium_helix_left_up_2_3.png | Bin 0 -> 976 bytes .../track/alpine/medium_helix_left_up_2_4.png | Bin 0 -> 860 bytes .../track/alpine/medium_helix_left_up_2_5.png | Bin 0 -> 989 bytes .../track/alpine/medium_helix_left_up_3_1.png | Bin 0 -> 1051 bytes .../track/alpine/medium_helix_left_up_3_2.png | Bin 0 -> 957 bytes .../track/alpine/medium_helix_left_up_3_3.png | Bin 0 -> 961 bytes .../track/alpine/medium_helix_left_up_3_4.png | Bin 0 -> 911 bytes .../track/alpine/medium_helix_left_up_3_5.png | Bin 0 -> 907 bytes .../track/alpine/medium_helix_left_up_3_6.png | Bin 0 -> 910 bytes .../track/alpine/medium_helix_left_up_4_1.png | Bin 0 -> 1038 bytes .../track/alpine/medium_helix_left_up_4_2.png | Bin 0 -> 1024 bytes .../track/alpine/medium_helix_left_up_4_3.png | Bin 0 -> 907 bytes .../track/alpine/medium_helix_left_up_4_4.png | Bin 0 -> 1036 bytes .../track/alpine/medium_helix_left_up_4_5.png | Bin 0 -> 986 bytes .../alpine/medium_helix_right_up_1_1.png | Bin 0 -> 1039 bytes .../alpine/medium_helix_right_up_1_2.png | Bin 0 -> 1029 bytes .../alpine/medium_helix_right_up_1_3.png | Bin 0 -> 907 bytes .../alpine/medium_helix_right_up_1_4.png | Bin 0 -> 1043 bytes .../alpine/medium_helix_right_up_1_5.png | Bin 0 -> 992 bytes .../alpine/medium_helix_right_up_2_1.png | Bin 0 -> 1050 bytes .../alpine/medium_helix_right_up_2_2.png | Bin 0 -> 958 bytes .../alpine/medium_helix_right_up_2_3.png | Bin 0 -> 962 bytes .../alpine/medium_helix_right_up_2_4.png | Bin 0 -> 910 bytes .../alpine/medium_helix_right_up_2_5.png | Bin 0 -> 908 bytes .../alpine/medium_helix_right_up_2_6.png | Bin 0 -> 910 bytes .../alpine/medium_helix_right_up_3_1.png | Bin 0 -> 974 bytes .../alpine/medium_helix_right_up_3_2.png | Bin 0 -> 890 bytes .../alpine/medium_helix_right_up_3_3.png | Bin 0 -> 978 bytes .../alpine/medium_helix_right_up_3_4.png | Bin 0 -> 860 bytes .../alpine/medium_helix_right_up_3_5.png | Bin 0 -> 982 bytes .../alpine/medium_helix_right_up_4_1.png | Bin 0 -> 933 bytes .../alpine/medium_helix_right_up_4_2.png | Bin 0 -> 915 bytes .../alpine/medium_helix_right_up_4_3.png | Bin 0 -> 926 bytes .../alpine/medium_helix_right_up_4_4.png | Bin 0 -> 953 bytes .../alpine/medium_helix_right_up_4_5.png | Bin 0 -> 957 bytes .../alpine/medium_helix_right_up_4_6.png | Bin 0 -> 1093 bytes .../g2/track/alpine/medium_turn_left_1_1.png | Bin 0 -> 987 bytes .../g2/track/alpine/medium_turn_left_1_2.png | Bin 0 -> 941 bytes .../g2/track/alpine/medium_turn_left_1_3.png | Bin 0 -> 960 bytes .../g2/track/alpine/medium_turn_left_1_4.png | Bin 0 -> 950 bytes .../g2/track/alpine/medium_turn_left_1_5.png | Bin 0 -> 1019 bytes .../g2/track/alpine/medium_turn_left_2_1.png | Bin 0 -> 1012 bytes .../g2/track/alpine/medium_turn_left_2_2.png | Bin 0 -> 921 bytes .../g2/track/alpine/medium_turn_left_2_3.png | Bin 0 -> 980 bytes .../g2/track/alpine/medium_turn_left_2_4.png | Bin 0 -> 923 bytes .../g2/track/alpine/medium_turn_left_2_5.png | Bin 0 -> 1012 bytes .../g2/track/alpine/medium_turn_left_3_1.png | Bin 0 -> 1017 bytes .../g2/track/alpine/medium_turn_left_3_2.png | Bin 0 -> 952 bytes .../g2/track/alpine/medium_turn_left_3_3.png | Bin 0 -> 964 bytes .../g2/track/alpine/medium_turn_left_3_4.png | Bin 0 -> 941 bytes .../g2/track/alpine/medium_turn_left_3_5.png | Bin 0 -> 989 bytes .../g2/track/alpine/medium_turn_left_4_1.png | Bin 0 -> 993 bytes .../g2/track/alpine/medium_turn_left_4_2.png | Bin 0 -> 975 bytes .../g2/track/alpine/medium_turn_left_4_3.png | Bin 0 -> 918 bytes .../g2/track/alpine/medium_turn_left_4_4.png | Bin 0 -> 972 bytes .../g2/track/alpine/medium_turn_left_4_5.png | Bin 0 -> 1002 bytes .../alpine/medium_turn_left_bank_1_1.png | Bin 0 -> 929 bytes .../alpine/medium_turn_left_bank_1_2.png | Bin 0 -> 921 bytes .../alpine/medium_turn_left_bank_1_3.png | Bin 0 -> 929 bytes .../alpine/medium_turn_left_bank_1_4.png | Bin 0 -> 952 bytes .../alpine/medium_turn_left_bank_1_5.png | Bin 0 -> 954 bytes .../alpine/medium_turn_left_bank_1_6.png | Bin 0 -> 1040 bytes .../alpine/medium_turn_left_bank_2_1.png | Bin 0 -> 963 bytes .../alpine/medium_turn_left_bank_2_2.png | Bin 0 -> 909 bytes .../alpine/medium_turn_left_bank_2_3.png | Bin 0 -> 932 bytes .../alpine/medium_turn_left_bank_2_4.png | Bin 0 -> 910 bytes .../alpine/medium_turn_left_bank_2_5.png | Bin 0 -> 971 bytes .../alpine/medium_turn_left_bank_3_1.png | Bin 0 -> 1046 bytes .../alpine/medium_turn_left_bank_3_2.png | Bin 0 -> 958 bytes .../alpine/medium_turn_left_bank_3_3.png | Bin 0 -> 950 bytes .../alpine/medium_turn_left_bank_3_4.png | Bin 0 -> 926 bytes .../alpine/medium_turn_left_bank_3_5.png | Bin 0 -> 927 bytes .../alpine/medium_turn_left_bank_3_6.png | Bin 0 -> 920 bytes .../alpine/medium_turn_left_bank_4_1.png | Bin 0 -> 1025 bytes .../alpine/medium_turn_left_bank_4_2.png | Bin 0 -> 1001 bytes .../alpine/medium_turn_left_bank_4_3.png | Bin 0 -> 929 bytes .../alpine/medium_turn_left_bank_4_4.png | Bin 0 -> 999 bytes .../alpine/medium_turn_left_bank_4_5.png | Bin 0 -> 1030 bytes .../alpine/medium_turn_left_gentle_up_1_1.png | Bin 0 -> 1043 bytes .../alpine/medium_turn_left_gentle_up_1_2.png | Bin 0 -> 1011 bytes .../alpine/medium_turn_left_gentle_up_1_3.png | Bin 0 -> 860 bytes .../alpine/medium_turn_left_gentle_up_1_4.png | Bin 0 -> 1075 bytes .../alpine/medium_turn_left_gentle_up_1_5.png | Bin 0 -> 1051 bytes .../alpine/medium_turn_left_gentle_up_2_1.png | Bin 0 -> 999 bytes .../alpine/medium_turn_left_gentle_up_2_2.png | Bin 0 -> 952 bytes .../alpine/medium_turn_left_gentle_up_2_3.png | Bin 0 -> 945 bytes .../alpine/medium_turn_left_gentle_up_2_4.png | Bin 0 -> 970 bytes .../alpine/medium_turn_left_gentle_up_2_5.png | Bin 0 -> 1015 bytes .../alpine/medium_turn_left_gentle_up_3_1.png | Bin 0 -> 1004 bytes .../alpine/medium_turn_left_gentle_up_3_2.png | Bin 0 -> 860 bytes .../alpine/medium_turn_left_gentle_up_3_3.png | Bin 0 -> 912 bytes .../alpine/medium_turn_left_gentle_up_3_4.png | Bin 0 -> 860 bytes .../alpine/medium_turn_left_gentle_up_3_5.png | Bin 0 -> 939 bytes .../alpine/medium_turn_left_gentle_up_4_1.png | Bin 0 -> 1031 bytes .../alpine/medium_turn_left_gentle_up_4_2.png | Bin 0 -> 1010 bytes .../alpine/medium_turn_left_gentle_up_4_3.png | Bin 0 -> 921 bytes .../alpine/medium_turn_left_gentle_up_4_4.png | Bin 0 -> 959 bytes .../alpine/medium_turn_left_gentle_up_4_5.png | Bin 0 -> 954 bytes .../medium_turn_right_gentle_up_1_1.png | Bin 0 -> 1042 bytes .../medium_turn_right_gentle_up_1_2.png | Bin 0 -> 1017 bytes .../medium_turn_right_gentle_up_1_3.png | Bin 0 -> 917 bytes .../medium_turn_right_gentle_up_1_4.png | Bin 0 -> 961 bytes .../medium_turn_right_gentle_up_1_5.png | Bin 0 -> 965 bytes .../medium_turn_right_gentle_up_2_1.png | Bin 0 -> 1011 bytes .../medium_turn_right_gentle_up_2_2.png | Bin 0 -> 860 bytes .../medium_turn_right_gentle_up_2_3.png | Bin 0 -> 906 bytes .../medium_turn_right_gentle_up_2_4.png | Bin 0 -> 860 bytes .../medium_turn_right_gentle_up_2_5.png | Bin 0 -> 940 bytes .../medium_turn_right_gentle_up_3_1.png | Bin 0 -> 992 bytes .../medium_turn_right_gentle_up_3_2.png | Bin 0 -> 957 bytes .../medium_turn_right_gentle_up_3_3.png | Bin 0 -> 955 bytes .../medium_turn_right_gentle_up_3_4.png | Bin 0 -> 971 bytes .../medium_turn_right_gentle_up_3_5.png | Bin 0 -> 1005 bytes .../medium_turn_right_gentle_up_4_1.png | Bin 0 -> 1035 bytes .../medium_turn_right_gentle_up_4_2.png | Bin 0 -> 1014 bytes .../medium_turn_right_gentle_up_4_3.png | Bin 0 -> 860 bytes .../medium_turn_right_gentle_up_4_4.png | Bin 0 -> 1079 bytes .../medium_turn_right_gentle_up_4_5.png | Bin 0 -> 1062 bytes resources/g2/track/alpine/preview_support.png | Bin 0 -> 7110 bytes resources/g2/track/alpine/preview_track.png | Bin 0 -> 10801 bytes .../alpine/right_bank_to_gentle_up_1.png | Bin 0 -> 1049 bytes .../alpine/right_bank_to_gentle_up_2.png | Bin 0 -> 999 bytes .../alpine/right_bank_to_gentle_up_3_1.png | Bin 0 -> 943 bytes .../alpine/right_bank_to_gentle_up_3_2.png | Bin 0 -> 908 bytes .../alpine/right_bank_to_gentle_up_4_1.png | Bin 0 -> 990 bytes .../alpine/right_bank_to_gentle_up_4_2.png | Bin 0 -> 920 bytes .../alpine/right_bank_to_gentle_up_diag_1.png | Bin 0 -> 1054 bytes .../alpine/right_bank_to_gentle_up_diag_2.png | Bin 0 -> 9373 bytes .../right_bank_to_gentle_up_diag_3_1.png | Bin 0 -> 954 bytes .../right_bank_to_gentle_up_diag_3_2.png | Bin 0 -> 943 bytes .../alpine/right_bank_to_gentle_up_diag_4.png | Bin 0 -> 7977 bytes resources/g2/track/alpine/s_bend_left_1_1.png | Bin 0 -> 988 bytes resources/g2/track/alpine/s_bend_left_1_2.png | Bin 0 -> 944 bytes resources/g2/track/alpine/s_bend_left_1_3.png | Bin 0 -> 951 bytes resources/g2/track/alpine/s_bend_left_1_4.png | Bin 0 -> 1014 bytes resources/g2/track/alpine/s_bend_left_2_1.png | Bin 0 -> 1012 bytes resources/g2/track/alpine/s_bend_left_2_2.png | Bin 0 -> 922 bytes resources/g2/track/alpine/s_bend_left_2_3.png | Bin 0 -> 973 bytes resources/g2/track/alpine/s_bend_left_2_4.png | Bin 0 -> 996 bytes .../g2/track/alpine/s_bend_right_1_1.png | Bin 0 -> 993 bytes .../g2/track/alpine/s_bend_right_1_2.png | Bin 0 -> 974 bytes .../g2/track/alpine/s_bend_right_1_3.png | Bin 0 -> 921 bytes .../g2/track/alpine/s_bend_right_1_4.png | Bin 0 -> 1006 bytes .../g2/track/alpine/s_bend_right_2_1.png | Bin 0 -> 1013 bytes .../g2/track/alpine/s_bend_right_2_2.png | Bin 0 -> 947 bytes .../g2/track/alpine/s_bend_right_2_3.png | Bin 0 -> 940 bytes .../g2/track/alpine/s_bend_right_2_4.png | Bin 0 -> 996 bytes .../track/alpine/small_helix_left_up_1_1.png | Bin 0 -> 960 bytes .../track/alpine/small_helix_left_up_1_2.png | Bin 0 -> 916 bytes .../track/alpine/small_helix_left_up_1_3.png | Bin 0 -> 939 bytes .../track/alpine/small_helix_left_up_1_4.png | Bin 0 -> 1037 bytes .../track/alpine/small_helix_left_up_2_1.png | Bin 0 -> 969 bytes .../track/alpine/small_helix_left_up_2_2.png | Bin 0 -> 860 bytes .../track/alpine/small_helix_left_up_2_3.png | Bin 0 -> 996 bytes .../track/alpine/small_helix_left_up_3_1.png | Bin 0 -> 1007 bytes .../track/alpine/small_helix_left_up_3_2.png | Bin 0 -> 928 bytes .../track/alpine/small_helix_left_up_3_3.png | Bin 0 -> 927 bytes .../track/alpine/small_helix_left_up_3_4.png | Bin 0 -> 916 bytes .../track/alpine/small_helix_left_up_4_1.png | Bin 0 -> 1064 bytes .../track/alpine/small_helix_left_up_4_2.png | Bin 0 -> 921 bytes .../track/alpine/small_helix_left_up_4_3.png | Bin 0 -> 1028 bytes .../track/alpine/small_helix_right_up_1_1.png | Bin 0 -> 1071 bytes .../track/alpine/small_helix_right_up_1_2.png | Bin 0 -> 912 bytes .../track/alpine/small_helix_right_up_1_3.png | Bin 0 -> 1024 bytes .../track/alpine/small_helix_right_up_2_1.png | Bin 0 -> 1006 bytes .../track/alpine/small_helix_right_up_2_2.png | Bin 0 -> 931 bytes .../track/alpine/small_helix_right_up_2_3.png | Bin 0 -> 924 bytes .../track/alpine/small_helix_right_up_2_4.png | Bin 0 -> 914 bytes .../track/alpine/small_helix_right_up_3_1.png | Bin 0 -> 971 bytes .../track/alpine/small_helix_right_up_3_2.png | Bin 0 -> 860 bytes .../track/alpine/small_helix_right_up_3_3.png | Bin 0 -> 982 bytes .../track/alpine/small_helix_right_up_4_1.png | Bin 0 -> 953 bytes .../track/alpine/small_helix_right_up_4_2.png | Bin 0 -> 910 bytes .../track/alpine/small_helix_right_up_4_3.png | Bin 0 -> 933 bytes .../track/alpine/small_helix_right_up_4_4.png | Bin 0 -> 1041 bytes .../g2/track/alpine/small_turn_left_1_1.png | Bin 0 -> 1012 bytes .../g2/track/alpine/small_turn_left_1_2.png | Bin 0 -> 926 bytes .../g2/track/alpine/small_turn_left_1_3.png | Bin 0 -> 997 bytes .../g2/track/alpine/small_turn_left_2_1.png | Bin 0 -> 1014 bytes .../g2/track/alpine/small_turn_left_2_2.png | Bin 0 -> 867 bytes .../g2/track/alpine/small_turn_left_2_3.png | Bin 0 -> 1021 bytes .../g2/track/alpine/small_turn_left_3_1.png | Bin 0 -> 997 bytes .../g2/track/alpine/small_turn_left_3_2.png | Bin 0 -> 920 bytes .../g2/track/alpine/small_turn_left_3_3.png | Bin 0 -> 1004 bytes .../g2/track/alpine/small_turn_left_4_1.png | Bin 0 -> 1007 bytes .../g2/track/alpine/small_turn_left_4_2.png | Bin 0 -> 904 bytes .../g2/track/alpine/small_turn_left_4_3.png | Bin 0 -> 1011 bytes .../track/alpine/small_turn_left_bank_1_1.png | Bin 0 -> 955 bytes .../track/alpine/small_turn_left_bank_1_2.png | Bin 0 -> 917 bytes .../track/alpine/small_turn_left_bank_1_3.png | Bin 0 -> 933 bytes .../track/alpine/small_turn_left_bank_1_4.png | Bin 0 -> 1001 bytes .../track/alpine/small_turn_left_bank_2_1.png | Bin 0 -> 972 bytes .../track/alpine/small_turn_left_bank_2_2.png | Bin 0 -> 868 bytes .../track/alpine/small_turn_left_bank_2_3.png | Bin 0 -> 987 bytes .../track/alpine/small_turn_left_bank_3_1.png | Bin 0 -> 1003 bytes .../track/alpine/small_turn_left_bank_3_2.png | Bin 0 -> 928 bytes .../track/alpine/small_turn_left_bank_3_3.png | Bin 0 -> 955 bytes .../track/alpine/small_turn_left_bank_3_4.png | Bin 0 -> 912 bytes .../track/alpine/small_turn_left_bank_4_1.png | Bin 0 -> 1053 bytes .../track/alpine/small_turn_left_bank_4_2.png | Bin 0 -> 917 bytes .../track/alpine/small_turn_left_bank_4_3.png | Bin 0 -> 1057 bytes .../small_turn_left_bank_to_gentle_up_1_1.png | Bin 0 -> 1016 bytes .../small_turn_left_bank_to_gentle_up_1_2.png | Bin 0 -> 1079 bytes .../small_turn_left_bank_to_gentle_up_2_1.png | Bin 0 -> 895 bytes .../small_turn_left_bank_to_gentle_up_2_2.png | Bin 0 -> 959 bytes .../small_turn_left_bank_to_gentle_up_2_3.png | Bin 0 -> 1037 bytes .../small_turn_left_bank_to_gentle_up_3_1.png | Bin 0 -> 1010 bytes .../small_turn_left_bank_to_gentle_up_3_2.png | Bin 0 -> 947 bytes .../small_turn_left_bank_to_gentle_up_4_1.png | Bin 0 -> 1101 bytes .../small_turn_left_bank_to_gentle_up_4_2.png | Bin 0 -> 1015 bytes .../alpine/small_turn_left_gentle_up_1_1.png | Bin 0 -> 1114 bytes .../alpine/small_turn_left_gentle_up_1_2.png | Bin 0 -> 1029 bytes .../alpine/small_turn_left_gentle_up_2_1.png | Bin 0 -> 993 bytes .../alpine/small_turn_left_gentle_up_2_2.png | Bin 0 -> 1068 bytes .../alpine/small_turn_left_gentle_up_3_1.png | Bin 0 -> 958 bytes .../alpine/small_turn_left_gentle_up_3_2.png | Bin 0 -> 955 bytes .../alpine/small_turn_left_gentle_up_4_1.png | Bin 0 -> 1054 bytes .../alpine/small_turn_left_gentle_up_4_2.png | Bin 0 -> 1003 bytes ...small_turn_right_bank_to_gentle_up_1_1.png | Bin 0 -> 1106 bytes ...small_turn_right_bank_to_gentle_up_1_2.png | Bin 0 -> 1020 bytes ...small_turn_right_bank_to_gentle_up_2_1.png | Bin 0 -> 1012 bytes ...small_turn_right_bank_to_gentle_up_2_2.png | Bin 0 -> 950 bytes ...small_turn_right_bank_to_gentle_up_3_1.png | Bin 0 -> 894 bytes ...small_turn_right_bank_to_gentle_up_3_2.png | Bin 0 -> 964 bytes ...small_turn_right_bank_to_gentle_up_3_3.png | Bin 0 -> 1040 bytes ...small_turn_right_bank_to_gentle_up_4_1.png | Bin 0 -> 1013 bytes ...small_turn_right_bank_to_gentle_up_4_2.png | Bin 0 -> 1086 bytes .../alpine/small_turn_right_gentle_up_1_1.png | Bin 0 -> 1059 bytes .../alpine/small_turn_right_gentle_up_1_2.png | Bin 0 -> 1011 bytes .../alpine/small_turn_right_gentle_up_2_1.png | Bin 0 -> 965 bytes .../alpine/small_turn_right_gentle_up_2_2.png | Bin 0 -> 954 bytes .../alpine/small_turn_right_gentle_up_3_1.png | Bin 0 -> 980 bytes .../alpine/small_turn_right_gentle_up_3_2.png | Bin 0 -> 1054 bytes .../alpine/small_turn_right_gentle_up_4_1.png | Bin 0 -> 1079 bytes .../alpine/small_turn_right_gentle_up_4_2.png | Bin 0 -> 1079 bytes src/openrct2-ui/windows/NewRide.cpp | 1 + src/openrct2/libopenrct2.vcxproj | 2 + src/openrct2/localisation/StringIds.h | 2 + src/openrct2/network/NetworkBase.cpp | 2 +- src/openrct2/object/RideObject.cpp | 1 + src/openrct2/park/ParkFile.h | 4 +- src/openrct2/ride/Ride.h | 1 + src/openrct2/ride/RideData.cpp | 2 + src/openrct2/ride/RideRatings.cpp | 37 + src/openrct2/ride/RideRatings.h | 1 + src/openrct2/ride/TrackPaint.h | 4 + src/openrct2/ride/Vehicle.h | 1 + src/openrct2/ride/coaster/AlpineCoaster.cpp | 7296 +++++++++++++++++ .../ride/coaster/meta/AlpineCoaster.h | 52 + src/openrct2/sprites.h | 29 +- 454 files changed, 10027 insertions(+), 7 deletions(-) create mode 100644 resources/g2/track/alpine/block_brake_1.png create mode 100644 resources/g2/track/alpine/block_brake_2.png create mode 100644 resources/g2/track/alpine/brake_1.png create mode 100644 resources/g2/track/alpine/brake_2.png create mode 100644 resources/g2/track/alpine/flat_1.png create mode 100644 resources/g2/track/alpine/flat_2.png create mode 100644 resources/g2/track/alpine/flat_diag_1.png create mode 100644 resources/g2/track/alpine/flat_diag_2.png create mode 100644 resources/g2/track/alpine/flat_diag_3.png create mode 100644 resources/g2/track/alpine/flat_diag_4.png create mode 100644 resources/g2/track/alpine/flat_diag_lift_1.png create mode 100644 resources/g2/track/alpine/flat_diag_lift_2.png create mode 100644 resources/g2/track/alpine/flat_diag_lift_3.png create mode 100644 resources/g2/track/alpine/flat_diag_lift_4.png create mode 100644 resources/g2/track/alpine/flat_lift_1.png create mode 100644 resources/g2/track/alpine/flat_lift_2.png create mode 100644 resources/g2/track/alpine/flat_lift_3.png create mode 100644 resources/g2/track/alpine/flat_lift_4.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_1.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_2.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_3.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_4.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_1.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_2.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_3.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_4.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_lift_1.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_lift_2.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_lift_3.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_diag_lift_4.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_lift_1.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_lift_2.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_lift_3.png create mode 100644 resources/g2/track/alpine/flat_to_gentle_up_lift_4.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_1_1.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_1_2.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_2_1.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_2_2.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_3.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_4.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_diag_1_1.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_diag_1_2.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_diag_2.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_diag_3.png create mode 100644 resources/g2/track/alpine/flat_to_left_bank_diag_4.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_1.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_2.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_3_1.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_3_2.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_4_1.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_4_2.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_diag_1.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_diag_2.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_diag_3_1.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_diag_3_2.png create mode 100644 resources/g2/track/alpine/flat_to_right_bank_diag_4.png create mode 100644 resources/g2/track/alpine/gentle_1.png create mode 100644 resources/g2/track/alpine/gentle_2.png create mode 100644 resources/g2/track/alpine/gentle_3.png create mode 100644 resources/g2/track/alpine/gentle_4.png create mode 100644 resources/g2/track/alpine/gentle_diag_1.png create mode 100644 resources/g2/track/alpine/gentle_diag_2.png create mode 100644 resources/g2/track/alpine/gentle_diag_3.png create mode 100644 resources/g2/track/alpine/gentle_diag_4.png create mode 100644 resources/g2/track/alpine/gentle_diag_lift_1.png create mode 100644 resources/g2/track/alpine/gentle_diag_lift_2.png create mode 100644 resources/g2/track/alpine/gentle_diag_lift_3.png create mode 100644 resources/g2/track/alpine/gentle_diag_lift_4.png create mode 100644 resources/g2/track/alpine/gentle_lift_1.png create mode 100644 resources/g2/track/alpine/gentle_lift_2.png create mode 100644 resources/g2/track/alpine/gentle_lift_3.png create mode 100644 resources/g2/track/alpine/gentle_lift_4.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_1.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_2.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_3.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_4.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_lift_1.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_lift_2.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_lift_3.png create mode 100644 resources/g2/track/alpine/gentle_to_flat_up_diag_lift_4.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_3.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_4.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_lift_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_lift_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_lift_3.png create mode 100644 resources/g2/track/alpine/gentle_up_to_flat_lift_4.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_1_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_1_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_2_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_2_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_3.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_4.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_diag_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_diag_3.png create mode 100644 resources/g2/track/alpine/gentle_up_to_left_bank_diag_4.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_3_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_3_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_4_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_4_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_diag_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_diag_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_diag_3_1.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_diag_3_2.png create mode 100644 resources/g2/track/alpine/gentle_up_to_right_bank_diag_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_1_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_1_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_1_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_1_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_2_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_2_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_2_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_2_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_3_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_3_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_3_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_3_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_4_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_4_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_4_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_4_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_1_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_1_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_1_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_1_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_2_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_2_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_2_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_2_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_3_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_3_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_3_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_3_4.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_4_1.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_4_2.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_4_3.png create mode 100644 resources/g2/track/alpine/large_turn_left_to_diag_bank_4_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_1_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_1_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_1_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_1_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_2_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_2_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_2_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_2_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_3_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_3_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_3_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_3_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_4_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_4_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_4_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_4_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_1_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_1_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_1_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_1_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_2_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_2_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_2_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_2_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_3_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_3_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_3_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_3_4.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_4_1.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_4_2.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_4_3.png create mode 100644 resources/g2/track/alpine/large_turn_right_to_diag_bank_4_4.png create mode 100644 resources/g2/track/alpine/left_bank_1.png create mode 100644 resources/g2/track/alpine/left_bank_2.png create mode 100644 resources/g2/track/alpine/left_bank_3.png create mode 100644 resources/g2/track/alpine/left_bank_4.png create mode 100644 resources/g2/track/alpine/left_bank_diag_1.png create mode 100644 resources/g2/track/alpine/left_bank_diag_2.png create mode 100644 resources/g2/track/alpine/left_bank_diag_3.png create mode 100644 resources/g2/track/alpine/left_bank_diag_4.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_3.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_4.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_diag_1_1.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_diag_1_2.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_diag_2.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_diag_3.png create mode 100644 resources/g2/track/alpine/left_bank_to_gentle_up_diag_4.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_1.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_2.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_3.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_4.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_5.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_1_6.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_2_1.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_2_2.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_2_3.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_2_4.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_2_5.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_1.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_2.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_3.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_4.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_5.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_3_6.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_4_1.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_4_2.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_4_3.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_4_4.png create mode 100644 resources/g2/track/alpine/medium_helix_left_up_4_5.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_1_1.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_1_2.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_1_3.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_1_4.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_1_5.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_1.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_2.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_3.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_4.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_5.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_2_6.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_3_1.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_3_2.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_3_3.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_3_4.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_3_5.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_1.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_2.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_3.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_4.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_5.png create mode 100644 resources/g2/track/alpine/medium_helix_right_up_4_6.png create mode 100644 resources/g2/track/alpine/medium_turn_left_1_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_1_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_1_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_1_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_1_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_2_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_2_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_2_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_2_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_2_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_3_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_3_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_3_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_3_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_3_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_4_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_4_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_4_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_4_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_4_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_1_6.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_2_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_2_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_2_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_2_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_2_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_3_6.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_4_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_4_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_4_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_4_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_bank_4_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_1_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_1_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_1_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_2_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_2_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_2_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_3_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_3_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_3_5.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_4_3.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_4_4.png create mode 100644 resources/g2/track/alpine/medium_turn_left_gentle_up_4_5.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_1_3.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_1_4.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_1_5.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_2_3.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_2_4.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_2_5.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_3_3.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_3_4.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_3_5.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_4_3.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_4_4.png create mode 100644 resources/g2/track/alpine/medium_turn_right_gentle_up_4_5.png create mode 100644 resources/g2/track/alpine/preview_support.png create mode 100644 resources/g2/track/alpine/preview_track.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_1.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_2.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_diag_1.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_diag_2.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_diag_3_1.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_diag_3_2.png create mode 100644 resources/g2/track/alpine/right_bank_to_gentle_up_diag_4.png create mode 100644 resources/g2/track/alpine/s_bend_left_1_1.png create mode 100644 resources/g2/track/alpine/s_bend_left_1_2.png create mode 100644 resources/g2/track/alpine/s_bend_left_1_3.png create mode 100644 resources/g2/track/alpine/s_bend_left_1_4.png create mode 100644 resources/g2/track/alpine/s_bend_left_2_1.png create mode 100644 resources/g2/track/alpine/s_bend_left_2_2.png create mode 100644 resources/g2/track/alpine/s_bend_left_2_3.png create mode 100644 resources/g2/track/alpine/s_bend_left_2_4.png create mode 100644 resources/g2/track/alpine/s_bend_right_1_1.png create mode 100644 resources/g2/track/alpine/s_bend_right_1_2.png create mode 100644 resources/g2/track/alpine/s_bend_right_1_3.png create mode 100644 resources/g2/track/alpine/s_bend_right_1_4.png create mode 100644 resources/g2/track/alpine/s_bend_right_2_1.png create mode 100644 resources/g2/track/alpine/s_bend_right_2_2.png create mode 100644 resources/g2/track/alpine/s_bend_right_2_3.png create mode 100644 resources/g2/track/alpine/s_bend_right_2_4.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_1_1.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_1_2.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_1_3.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_1_4.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_2_1.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_2_2.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_2_3.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_3_1.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_3_2.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_3_3.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_3_4.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_4_1.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_4_2.png create mode 100644 resources/g2/track/alpine/small_helix_left_up_4_3.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_1_1.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_1_2.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_1_3.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_2_1.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_2_2.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_2_3.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_2_4.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_3_1.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_3_2.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_3_3.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_4_1.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_4_2.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_4_3.png create mode 100644 resources/g2/track/alpine/small_helix_right_up_4_4.png create mode 100644 resources/g2/track/alpine/small_turn_left_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_1_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_2_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_3_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_4_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_4_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_1_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_1_4.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_2_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_3_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_3_4.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_4_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_4_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_3.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_left_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_3.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_4_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_1_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_1_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_2_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_2_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_3_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_3_2.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_4_1.png create mode 100644 resources/g2/track/alpine/small_turn_right_gentle_up_4_2.png create mode 100644 src/openrct2/ride/coaster/AlpineCoaster.cpp create mode 100644 src/openrct2/ride/coaster/meta/AlpineCoaster.h diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index ec870eee37..8351bebb4b 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -96,6 +96,7 @@ STR_0091 :Unknown Ride (59) STR_0092 :LIM Launched Roller Coaster STR_0093 :Hybrid Coaster STR_0094 :Single Rail Roller Coaster +STR_0095 :Alpine Coaster STR_0512 :A compact roller coaster with a spiral lift hill and smooth, twisting drops. STR_0513 :A looping roller coaster where the riders ride in a standing position STR_0514 :Trains suspended beneath the roller coaster track swing out to the side around corners @@ -175,8 +176,9 @@ STR_0598 :Inverted roller coaster trains are accelerated out of the station t STR_0599 :A compact roller coaster with individual cars and smooth twisting drops STR_0600 :Powered mine trains career along a smooth and twisted track layout STR_0602 :Roller coaster trains are accelerated out of the station by linear induction motors to speed through twisting inversions -STR_0603 :A wooden style roller coaster with a steel track, allowing for steep drops and inversions. -STR_0604 :Riders ride single file on a narrow monorail track, as they race through tight inversions and direction changes. +STR_0603 :A wooden style roller coaster with a steel track, allowing for steep drops and inversions +STR_0604 :Riders ride single file on a narrow monorail track, as they race through tight inversions and direction changes +STR_0605 :Riders toboggan down a meandering steel track, braking to control their speed STR_0767 :Guest {INT32} STR_0768 :Handyman {INT32} STR_0769 :Mechanic {INT32} diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 7b046258ec..f5d9ae8fb0 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,5 +1,6 @@ 0.4.1 (in development) ------------------------------------------------------------------------ +- Feature: [#16825] Add Alpine Coaster track type. - Feature: [#17011] Option to show ride vehicles as separate entries when selecting a ride to construct. - Improved: [#13966] Music Style dropdown is now sorted by name. - Improved: [#16978] Tree placement is more natural during map generation. diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index ca5c1fad5d..31fa07ddd7 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -11793,5 +11793,2595 @@ "path": "track/raptor/small_steep_to_flat_up_diag_lift_4.png", "x_offset": -3, "y_offset": -30 + }, + { + "path": "track/alpine/preview_track.png", + "x_offset": 8, + "y_offset": 1 + }, + { + "path": "track/alpine/preview_support.png", + "x_offset": 25, + "y_offset": 11 + }, + { + "path": "track/alpine/flat_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_4.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_4.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_1.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_2.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_3.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_4.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_1_1.png", + "x_offset": -19, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_1_2.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_1_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_2_2.png", + "x_offset": -2, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_2_3.png", + "x_offset": -32, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_3_1.png", + "x_offset": -4, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_3_2.png", + "x_offset": 24, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_3_3.png", + "x_offset": -8, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_4_1.png", + "x_offset": -26, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_4_2.png", + "x_offset": -8, + "y_offset": 24, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_4_3.png", + "x_offset": -19, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_1_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_1_2.png", + "x_offset": -28, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_1_3.png", + "x_offset": 9, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_1_4.png", + "x_offset": -24, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_1_5.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_2_2.png", + "x_offset": -8, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_2_3.png", + "x_offset": -28, + "y_offset": 17, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_2_4.png", + "x_offset": -14, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_2_5.png", + "x_offset": -30, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_3_1.png", + "x_offset": -14, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_3_2.png", + "x_offset": 11, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_3_3.png", + "x_offset": -22, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_3_4.png", + "x_offset": 12, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_3_5.png", + "x_offset": -10, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_4_1.png", + "x_offset": -22, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_4_2.png", + "x_offset": -28, + "y_offset": 17, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_4_3.png", + "x_offset": -14, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_4_4.png", + "x_offset": -16, + "y_offset": 17, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_4_5.png", + "x_offset": -19, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_1_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_1_2.png", + "x_offset": -26, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_1_3.png", + "x_offset": 17, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_1_4.png", + "x_offset": -8, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_2_2.png", + "x_offset": -10, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_2_3.png", + "x_offset": -20, + "y_offset": 21, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_2_4.png", + "x_offset": -28, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_3_1.png", + "x_offset": -16, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_3_2.png", + "x_offset": -1, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_3_3.png", + "x_offset": -32, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_3_4.png", + "x_offset": -4, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_4_1.png", + "x_offset": -20, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_4_2.png", + "x_offset": -32, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_4_3.png", + "x_offset": -3, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_4_4.png", + "x_offset": 0, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_1_1.png", + "x_offset": -19, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_1_2.png", + "x_offset": -18, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_1_3.png", + "x_offset": -4, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_1_4.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_2_2.png", + "x_offset": -22, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_2_3.png", + "x_offset": 23, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_2_4.png", + "x_offset": -6, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_3_1.png", + "x_offset": -28, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_3_2.png", + "x_offset": -24, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_3_3.png", + "x_offset": -12, + "y_offset": 21, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_3_4.png", + "x_offset": 0, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_4_1.png", + "x_offset": -12, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_4_2.png", + "x_offset": 1, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_4_3.png", + "x_offset": -31, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_4_4.png", + "x_offset": -4, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_1.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_3.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_4.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_3.png", + "x_offset": -33, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_4.png", + "x_offset": -5, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_3.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_4.png", + "x_offset": -5, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_1.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_3.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_4.png", + "x_offset": -5, + "y_offset": -20, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_1_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_1_2.png", + "x_offset": -1, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_2_2.png", + "x_offset": -19, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_4.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_3_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_3_2.png", + "x_offset": -15, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_4_1.png", + "x_offset": -18, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_4_2.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_1_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_1_2.png", + "x_offset": -15, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_2_1.png", + "x_offset": -18, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_2_2.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_3.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_4.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_2.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_3_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_3_2.png", + "x_offset": -5, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_4_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_4_2.png", + "x_offset": -18, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_1_1.png", + "x_offset": -19, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_1_2.png", + "x_offset": -1, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_2_2.png", + "x_offset": -16, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_3.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_4.png", + "x_offset": -19, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_1.png", + "x_offset": -19, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_2.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_3_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_3_2.png", + "x_offset": -15, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_4_1.png", + "x_offset": -18, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_4_2.png", + "x_offset": -19, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_2.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_3.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_4.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_diag_1_1.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_diag_1_2.png", + "x_offset": -32, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_diag_3.png", + "x_offset": -32, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_left_bank_diag_4.png", + "x_offset": -4, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_diag_1.png", + "x_offset": -32, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_diag_2.png", + "x_offset": -4, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_diag_3_1.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_diag_3_2.png", + "x_offset": -32, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_right_bank_diag_4.png", + "x_offset": -5, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_diag_1_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_diag_1_2.png", + "x_offset": -32, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_diag_2.png", + "x_offset": -5, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_diag_3.png", + "x_offset": -33, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_to_gentle_up_diag_4.png", + "x_offset": -4, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_diag_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_diag_2.png", + "x_offset": -4, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_diag_3_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_diag_3_2.png", + "x_offset": -31, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/right_bank_to_gentle_up_diag_4.png", + "x_offset": -5, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_diag_1_1.png", + "x_offset": -32, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_diag_1_2.png", + "x_offset": -32, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_diag_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_diag_3.png", + "x_offset": -32, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_left_bank_diag_4.png", + "x_offset": -4, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_diag_1.png", + "x_offset": -32, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_diag_2.png", + "x_offset": -4, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_diag_3_1.png", + "x_offset": -32, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_diag_3_2.png", + "x_offset": -32, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_right_bank_diag_4.png", + "x_offset": -5, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_diag_1.png", + "x_offset": -32, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_diag_2.png", + "x_offset": -5, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_diag_3.png", + "x_offset": -32, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/left_bank_diag_4.png", + "x_offset": -4, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_1_1.png", + "x_offset": -19, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_1_2.png", + "x_offset": -15, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_1_3.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_1_4.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_2_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_2_2.png", + "x_offset": -2, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_2_3.png", + "x_offset": -32, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_3_1.png", + "x_offset": -5, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_3_2.png", + "x_offset": 23, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_3_3.png", + "x_offset": -7, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_3_4.png", + "x_offset": -6, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_4_1.png", + "x_offset": -28, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_4_2.png", + "x_offset": -8, + "y_offset": 23, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_4_3.png", + "x_offset": -19, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_2.png", + "x_offset": -15, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_3.png", + "x_offset": -26, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_4.png", + "x_offset": 11, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_5.png", + "x_offset": -25, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_1_6.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_2_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_2_2.png", + "x_offset": -8, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_2_3.png", + "x_offset": -24, + "y_offset": 19, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_2_4.png", + "x_offset": -14, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_2_5.png", + "x_offset": -28, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_1.png", + "x_offset": -14, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_2.png", + "x_offset": 11, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_3.png", + "x_offset": -22, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_4.png", + "x_offset": 13, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_5.png", + "x_offset": -9, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_3_6.png", + "x_offset": -10, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_4_1.png", + "x_offset": -24, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_4_2.png", + "x_offset": -30, + "y_offset": 16, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_4_3.png", + "x_offset": -16, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_4_4.png", + "x_offset": -18, + "y_offset": 16, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_bank_4_5.png", + "x_offset": -19, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_1_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_1_2.png", + "x_offset": -24, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_1_3.png", + "x_offset": 19, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_1_4.png", + "x_offset": -13, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_2_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_2_2.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_2_3.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_2_4.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_3_1.png", + "x_offset": -17, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_3_2.png", + "x_offset": -2, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_3_3.png", + "x_offset": -32, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_3_4.png", + "x_offset": -4, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_4_1.png", + "x_offset": -22, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_4_2.png", + "x_offset": -32, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_4_3.png", + "x_offset": -4, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_left_to_diag_bank_4_4.png", + "x_offset": 0, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_1_1.png", + "x_offset": -19, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_1_2.png", + "x_offset": -20, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_1_3.png", + "x_offset": -6, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_1_4.png", + "x_offset": -32, + "y_offset": 9, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_2_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_2_2.png", + "x_offset": -22, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_2_3.png", + "x_offset": 23, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_2_4.png", + "x_offset": -6, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_3_1.png", + "x_offset": -26, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_3_2.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_3_3.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_3_4.png", + "x_offset": 0, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_4_1.png", + "x_offset": -25, + "y_offset": -10, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_4_2.png", + "x_offset": 1, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_4_3.png", + "x_offset": -31, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/large_turn_right_to_diag_bank_4_4.png", + "x_offset": -4, + "y_offset": 11, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_1_1.png", + "x_offset": -25, + "y_offset": -30, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_1_2.png", + "x_offset": -13, + "y_offset": -16, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_2_1.png", + "x_offset": -13, + "y_offset": -7, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_2_2.png", + "x_offset": -38, + "y_offset": -16, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_3_1.png", + "x_offset": -14, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_3_2.png", + "x_offset": -2, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_4_1.png", + "x_offset": -26, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_gentle_up_4_2.png", + "x_offset": -25, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_1_1.png", + "x_offset": -25, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_1_2.png", + "x_offset": -26, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_2_1.png", + "x_offset": -13, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_2_2.png", + "x_offset": -25, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_3_1.png", + "x_offset": -38, + "y_offset": -7, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_3_2.png", + "x_offset": -13, + "y_offset": -16, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_4_1.png", + "x_offset": -2, + "y_offset": -23, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_gentle_up_4_2.png", + "x_offset": -14, + "y_offset": -16, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_1_1.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_1_2.png", + "x_offset": -28, + "y_offset": -9, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_1_3.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_1_4.png", + "x_offset": -26, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_1_5.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_2_1.png", + "x_offset": -19, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_2_2.png", + "x_offset": 0, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_2_3.png", + "x_offset": 0, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_2_4.png", + "x_offset": -12, + "y_offset": -20, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_2_5.png", + "x_offset": -17, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_3_1.png", + "x_offset": -22, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_3_2.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_3_3.png", + "x_offset": -20, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_3_4.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_3_5.png", + "x_offset": -13, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_4_1.png", + "x_offset": -24, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_4_2.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_4_3.png", + "x_offset": -17, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_4_4.png", + "x_offset": -16, + "y_offset": 5, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_left_gentle_up_4_5.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_1_1.png", + "x_offset": -19, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_1_2.png", + "x_offset": -11, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_1_3.png", + "x_offset": 0, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_1_4.png", + "x_offset": -16, + "y_offset": 5, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_1_5.png", + "x_offset": -18, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_2_2.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_2_3.png", + "x_offset": 0, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_2_4.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_2_5.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_3_1.png", + "x_offset": -32, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_3_2.png", + "x_offset": -32, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_3_3.png", + "x_offset": -25, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_3_4.png", + "x_offset": -21, + "y_offset": -22, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_3_5.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_4_1.png", + "x_offset": -11, + "y_offset": -11, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_4_2.png", + "x_offset": 11, + "y_offset": -9, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_4_3.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_4_4.png", + "x_offset": 10, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/medium_turn_right_gentle_up_4_5.png", + "x_offset": -14, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_1_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_1_2.png", + "x_offset": -26, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_1_3.png", + "x_offset": 10, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_1_4.png", + "x_offset": -15, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_2_2.png", + "x_offset": -10, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_2_3.png", + "x_offset": -28, + "y_offset": 17, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_left_2_4.png", + "x_offset": -20, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_1_1.png", + "x_offset": -19, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_1_2.png", + "x_offset": -18, + "y_offset": 17, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_1_3.png", + "x_offset": -14, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_1_4.png", + "x_offset": -30, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_2_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_2_2.png", + "x_offset": -24, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_2_3.png", + "x_offset": 12, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/s_bend_right_2_4.png", + "x_offset": -12, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_1_1.png", + "x_offset": -18, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_1_2.png", + "x_offset": -15, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_1_3.png", + "x_offset": -32, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_1_4.png", + "x_offset": -19, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_2_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_2_2.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_2_3.png", + "x_offset": -32, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_3_1.png", + "x_offset": -6, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_3_2.png", + "x_offset": 23, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_3_3.png", + "x_offset": -5, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_3_4.png", + "x_offset": -5, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_4_1.png", + "x_offset": -26, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_4_2.png", + "x_offset": -8, + "y_offset": 19, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_left_up_4_3.png", + "x_offset": -18, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_1_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_1_2.png", + "x_offset": -6, + "y_offset": 19, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_1_3.png", + "x_offset": -26, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_2_1.png", + "x_offset": -19, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_2_2.png", + "x_offset": -32, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_2_3.png", + "x_offset": -19, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_2_4.png", + "x_offset": -16, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_3_1.png", + "x_offset": -32, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_3_2.png", + "x_offset": 0, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_3_3.png", + "x_offset": -19, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_4_1.png", + "x_offset": -6, + "y_offset": -1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_4_2.png", + "x_offset": -6, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_4_3.png", + "x_offset": 23, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_helix_right_up_4_4.png", + "x_offset": -7, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_1.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_2.png", + "x_offset": -15, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_3.png", + "x_offset": -28, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_4.png", + "x_offset": 9, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_5.png", + "x_offset": -22, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_1_6.png", + "x_offset": -19, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_2_1.png", + "x_offset": -19, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_2_2.png", + "x_offset": -4, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_2_3.png", + "x_offset": -32, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_2_4.png", + "x_offset": 1, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_2_5.png", + "x_offset": -32, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_1.png", + "x_offset": -16, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_2.png", + "x_offset": 10, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_3.png", + "x_offset": -21, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_4.png", + "x_offset": 15, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_5.png", + "x_offset": -3, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_3_6.png", + "x_offset": -7, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_4_1.png", + "x_offset": -20, + "y_offset": 5, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_4_2.png", + "x_offset": -30, + "y_offset": 13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_4_3.png", + "x_offset": -8, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_4_4.png", + "x_offset": -26, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_left_up_4_5.png", + "x_offset": -18, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_1_1.png", + "x_offset": -19, + "y_offset": 5, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_1_2.png", + "x_offset": -20, + "y_offset": 13, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_1_3.png", + "x_offset": -8, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_1_4.png", + "x_offset": -30, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_1_5.png", + "x_offset": -14, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_1.png", + "x_offset": -19, + "y_offset": 1, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_2.png", + "x_offset": -24, + "y_offset": 8, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_3.png", + "x_offset": 5, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_4.png", + "x_offset": -30, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_5.png", + "x_offset": -19, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_2_6.png", + "x_offset": -15, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_3_1.png", + "x_offset": -32, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_3_2.png", + "x_offset": -6, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_3_3.png", + "x_offset": -32, + "y_offset": 12, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_3_4.png", + "x_offset": -2, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_3_5.png", + "x_offset": -19, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_1.png", + "x_offset": -8, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_2.png", + "x_offset": -8, + "y_offset": 4, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_3.png", + "x_offset": 15, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_4.png", + "x_offset": -21, + "y_offset": 6, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_5.png", + "x_offset": 10, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/medium_helix_right_up_4_6.png", + "x_offset": -17, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_1_1.png", + "x_offset": -24, + "y_offset": -14, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_1_2.png", + "x_offset": -13, + "y_offset": -8, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_2_1.png", + "x_offset": -10, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_2_2.png", + "x_offset": -12, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_2_3.png", + "x_offset": -38, + "y_offset": -8, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_3_1.png", + "x_offset": -15, + "y_offset": -2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_3_2.png", + "x_offset": -3, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_4_1.png", + "x_offset": -26, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_left_bank_to_gentle_up_4_2.png", + "x_offset": -25, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_1_1.png", + "x_offset": -24, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_1_2.png", + "x_offset": -26, + "y_offset": 7, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_2_1.png", + "x_offset": -12, + "y_offset": -2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_2_2.png", + "x_offset": -25, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_3_1.png", + "x_offset": -38, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_3_2.png", + "x_offset": -38, + "y_offset": 0, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_3_3.png", + "x_offset": -13, + "y_offset": -8, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_4_1.png", + "x_offset": -2, + "y_offset": -14, + "palette": "keep" + }, + { + "path": "track/alpine/small_turn_right_bank_to_gentle_up_4_2.png", + "x_offset": -15, + "y_offset": -8, + "palette": "keep" + }, + { + "path": "track/alpine/flat_lift_1.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_lift_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_lift_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_lift_4.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_lift_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_lift_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_lift_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_lift_4.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_lift_1.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_lift_2.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_lift_3.png", + "x_offset": -19, + "y_offset": 3, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_up_to_flat_lift_4.png", + "x_offset": -19, + "y_offset": -5, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_lift_1.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_lift_2.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_lift_3.png", + "x_offset": -19, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_lift_4.png", + "x_offset": -19, + "y_offset": -13, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_lift_1.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_lift_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_lift_3.png", + "x_offset": -32, + "y_offset": 10, + "palette": "keep" + }, + { + "path": "track/alpine/flat_diag_lift_4.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_lift_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_lift_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_lift_3.png", + "x_offset": -33, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/flat_to_gentle_up_diag_lift_4.png", + "x_offset": -5, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_lift_1.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_lift_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_lift_3.png", + "x_offset": -32, + "y_offset": 2, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_to_flat_up_diag_lift_4.png", + "x_offset": -5, + "y_offset": -12, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_lift_1.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_lift_2.png", + "x_offset": -5, + "y_offset": -4, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_lift_3.png", + "x_offset": -32, + "y_offset": -6, + "palette": "keep" + }, + { + "path": "track/alpine/gentle_diag_lift_4.png", + "x_offset": -5, + "y_offset": -20, + "palette": "keep" } -] +] \ No newline at end of file diff --git a/resources/g2/track/alpine/block_brake_1.png b/resources/g2/track/alpine/block_brake_1.png new file mode 100644 index 0000000000000000000000000000000000000000..16b8a833fb0c895b733b36e33c455bd61d3027bd GIT binary patch literal 945 zcmXAoL5SmY6vp37XC^aKN*B6NFhZ1qaS573zzpONHM7>)tdnIk&_jhR1ni-Qpiz1V z5}6#T#0$ZIb5qk*O!>mN8l0#re=pjgjuH;ami$NC*5~PPw|7KbE-g|tP_d9&= zeRAu#S=oPP9{?&xZyw$*<_ksDc1uN{oj9ieCAf9-0eHPoxl_yYGiz{nl-E0w#N{)2q+!8{!HJfP3ML$ivbrv;oP$=l};Kr(LbgL*i(B?m_cA9!=Mq&@S-jVz>=rjxg{dybmb!5Dm2YLCyN-Rd zimEl1q*@Hy;f0!?M*Xh zo=?)t#Tu2VYL%_mn?ysVXqDr1QR*wjGGk&7F2<82it{B8iiqiQ)l>+lOAQU)@5|F+ z=fXD^;V@l9dHxvj04)F=zya_9E&x^-phA*>3?2C%N){3c8Uq6!f+i#qAQ_NWM>c~z z2?bp=>!ZYjC&9BI3eb|Uu39&H)WB(uJ#{*@;@D5q7!@qM1B_ATox0=^N@rxQMMlqXX5pu|AX6cU6$*>v7p@#?&EA$Z92t5Q0 zYz{>t8>NRHdZ-YjNML)ILk>9viAxU!0~WUfL5dWtuxOATiWK?Hvhcp|<6Yi6y!U-| zdC|Oe^2!MS+&aH^cE7xDlvA%(%00XC9|Bb1@}sM}CEeTG+uz@>R4NAt2Zx7;M@L5( zhE=Q8OuRQQoF_l5I8wm5~j;WlCmG>5cSJWJZ~j=KX9vUTzaygt`hu z8z>uSALBC~=9*&J|{@HIPmrheksVMIy@Nvi$tpwSS)fz!&!~ zR5<&nwDmr%&ikkp3fQn&yt!Cl4OOigvoyziAr?arEhn|O`2xsa|zCp_b zr;?&hwJb(+Ib$T)fi##Z{!9(i4#DEI*yI#S(%7~x=zY2Gsa~jui4~`VBp+v+sK!HG zfkp=i6G#_hy@og;+YzrPEhjVll^df|nW}3n-V-UO#f>##YAA`VEr!N2uvgJ=lLTlP z*Xk@uwHUU;3q3_~G;P%DO&llkyd(^>`FyonA;5JYhZr-i2~%8|QJqZaFWY|Jo37mX zdXk?nHmFL~YHXt+5>17oHI6eRxvv(>%!xBN8&A?WS!X<`5@skhOC{VcH8T02uS`ds zv%p$JqkIvs*AEd7&;l?3Tz~-J3}A@?DkKZYG*IB9bRmx zDD0wHAEiD#4xR-`fR>DPwT9KB2Cg{vwdvGOk|56$RIu<4FlLo^8?sNRA*rXFyJ`pP z-gGmZorf7(tjIdB1SZn8HcxaF#_UM0)%6F~G#Dgtkf$+PXRIWl5KsyT6eDAOQPcK!wO`{Ix9FF$|w;L!(Z^}DAx&pdiC@UnMY l^QSR+<;r>GV)klY{^r;F;`dJ-+$(5sboKb~hc|BA`X7y13`=A5Tsy~9Ewz|xJZ!*Jq*ilmWB6yAMf(s;l1yx z^E2u8t(R{B!0poyPAMND z7*?%T4-XF;&1REj8Br8eRo3;kX&Sv=&-2F9X&A?gJl_-r%YeXxBG=mOdbdkjHq#&Q z-bk5DwOM2)>0r6?MH*}IHA8MVEz;GgvB_Tb#K>zUQzM`E*SWvl#1a7-4VD0|icJhG z8sOQaUL*usGpNwejf+s+1W*7p3^Q=tAqbbEe4f8jlzFF%25;BA5Is;u3SU8n00omntU<6xb~s918cj6y&;AXH}2FYTU#=-H#y ziW_;)VJ3;#ZmZp{ZrcXS^f<;7*g#|>nOP|Gy46G)i5v=zSQH89sc*r&Aq!{*rha_ N-ak9}?!AYP{s&STir)YL literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_1.png b/resources/g2/track/alpine/flat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6ae3cb0e4d019c6e119f7646f7a8c52eb6791e55 GIT binary patch literal 952 zcmXAoL5SmY6vp37XC|F3Yr!hj4U)xz5yB89NDf&xqnWi^B9nD9&_fRqGHee;BSh?> zV3zHnN)AyfAJ zjWjGUi?dN_72znQ(Mmz57D8bKKmt%OOe+=*9Jff);kXk?nlzg;!+1Cxq9DMTQiU(m z62U2CRio+#qgtFk5W23|_hlziyrfC6I9;u9G9{{PLld-~)Eg>8PxE3UO!{#;ny-T* z4<#AOO&~fzS{OSlSI1-{;I+7J&UI&Lh3G`0N-B%DtCU&iMylZJa@2kS5fNMb77&9sgJ}yU8b1w824JU2; zOKZ9sr>CcP=ezN>o~}Aca5%i3SYvcod7-@w0n{ zf1donM^_JJ*#GO^wai?r9lUw;>KC^^7oWNQTK*vYFTMTie(UAm-v0AZ?aMtne02T8 ze_we0&iQxu_HVs({&D`+x#Rm^J$sY6tbY3Z&ySBk{`m&#iGMJ91H1XnJ#pvTJ6J}9+NHyT@85dw#{Xo`m!$vz literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_2.png b/resources/g2/track/alpine/flat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad76eaeb8c4b408f1269780564d5f0e2e744a4c GIT binary patch literal 949 zcmXAoPl()f6vyBG&2EP_LJmU>n!`wA36iA|a>z>5Y#Eo7O}kkLIEM()jxcDD6b8v5 z(jbElG|C7$%wdWV1_?OeB0=VmLXbH`$YBqohBAc#r@EBcI)_pA@H3_GeedzTyzk-j z-WN9ysuwT3cmV(|?!U8lSj;O$5nF3TPmjF20Bdmb#?ke{uB@!AuCA`Ft*x)GZ)|LA zZf;^2wzajjy}ezoR4N?DN|LCmvSHLL%XD4W_j`julq4s4K3^<27DNFQxm2qWjRw`U z*;ZTdyGnnc4`VCM+LLJ@F_zi2I#>ahPk&vsEB1& zp#+_-nvCXfh9_8E$qnVsPz_Q&%Ig$Qvek;9GP1$fOv!91t)AYC%qVk`ypzrPlVyyH zK&Viz17!p4VSKM#9niH{G&8L|v4Xjmpksw044!OOnYJeM4QXhpnQM%FYZ|)q*k5KL znkG2G(~QRPbx~@nYTGcn&E}xpj(fchN(_$k<#Ls(s0?cef+Z_0y;x=s+MQ8BD<7BZoMIwL(U;%glA;1V=iUBI5NXWKO7@&Nt&|q@V5h1EVt^iU2nPt@G zP@tfwfzlSr19%3W2U!A5!5T){X)+zJ+7FE3(9N=NHp@_vMb?3{OQKg+0!oi)GZ(yh zEnGB*OFuo2CTKjT3E(NL%HlPVYN(uDmp!Kubev(>$&zrECulL@Wf?_)azLnH(JJDe zi*)Vobjo-A=d#jNs@2p+!?10WV_ly0MJ|-MSY}TYW~Nn;P9cXzT@FPe%H-ns`PWKM zpZ&m{!vhuG{PVZlg)#Q`-a2~q>z}?7E?GCS{I{p+(I&u)EpO?<;3o~Xp% z_@hg&AAXCy@XdYu#s}^$JiUDSc;}A?kFR}{ez@n~|NYh#?DN69y!i5?J7@phBhLCS nXy^m&dO>WOfS%0Q=Vu_I`N#y}SPds7jOC literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_diag_1.png b/resources/g2/track/alpine/flat_diag_1.png new file mode 100644 index 0000000000000000000000000000000000000000..61bbd4b9591c3acab48ea6f6da5ac714aaa199f3 GIT binary patch literal 904 zcmX9-F{tZg82x&CZ`1qgGeU)m5u$d;5F|>#2to5S_YyCWo6F0C3`O!FV22JFB6P?Q zFhkJ{8OkF{hYk@s1gvm}3;_cM?9d@YhYA@wR4n+0Jju`tSNP52!TG+Avz#-W^L>AF zEj@hj_5%QTc=hGQq;uby1iw9#msoSZb9&C}D}p^W`$mvQ1HxRmCzO@Sw<@!Js=Dkz<>gcziHZ z7E3)zt#$70_Mu2)8s9PHo}-bzLCr1p))mu0TQALGH8~XFvCJd_bQ;D2_$szAvDCx2 zi*B_h(1Agfj_!SgvOa(UpktVc;|@Xi6czIPt)i@k!>!{ypU+X65^T3G^caQYbxJa6 z&0!6nw`QUn$1XIxp}Pi0j3wIB_=O=RmYTc9Hn8@QTc*J=kI+8DyBtMp zEH@Oyv8sB8F&mGUo|n$&c^vOHo3bns5GGIo#x8I%A=EWJ+=-L@AUuqd(%)3e!~OP% zIy8=Ry`Dt&Rhlt)-jbDxUW?gFZ@OA6i!85p0_ZYkskoz){)nF0LNrm6*>Dv(+jMr= zW>xhZ2>=>^Ro4I@0$2g;F+epG5!n`sLR4%O3QQKJ0>ly&3Lq7b*+U+SLIuSmw4R_M zgqOi{Ad8?W*vRNPV|waKi_l0CH_xNPAxE_rF$C7`2!2lqNj;{_g7?coRE?8ku)dFX zXj@WU;7Ckj@PR;%RMsBKzB3A^P7+P?EIJe!s&{O!&=c2)}yo|M=SOgV%;#s3} i_ruq3&ffj01#tVvXP^4NJ4~$rSC`ipzkKoZyZ-^t2z-wK literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_diag_2.png b/resources/g2/track/alpine/flat_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f184ff5fb3bf32953ed3e331b2d98c0c94ead23a GIT binary patch literal 945 zcmXAoL5SmY6vp37XC|F3V-7u343cGf$RW4^gGR_9YG$ZI+{wBb=pkU#z?P+lAQ7t+ z2^h341*4QTVhBWMNjS|A)_0s!nBytH?<=;!lpxm46ws^8xMD8ZGNkM;|@wzjsuzFsPoHa0dkH#fJo zwlEAUm&@DR+qHVV&a#Xs3W_4>x@ww+ZQHIpnoNQ?K26gs&shcp9%QMas?~Oz>~xu4 zpLd7yc%p@oIZgWWg(uQjldl+3&1#a4PK`|V*cKzVIh`2kNpG2Yt1NC1pwZ9~z)`TV zfkl0MHm>GV0xcPoYv{~DD6Rv@02+oFIBpSyLs1^jAItJdt2MK%d!rGGB7&{fg&HH1 zyhb$)x@obx!<$3V_N76ncvCG%TO>y?jXJN;lFq4yX!PXXNE-!4kXUg#NS5RID#8V* zDo|?y*#*kMxKXV!q0~q)l4gHydYKcWW0|h%9MNge{U$%w#n4m|Tc5e+!nd=?T_rwR z#CVmX=qAgx1hJzieO(`RI+K1s8jX@5n4g|zS%!cxfO0W*jEf@8Gp*$Fe} zG@mTbW-C;oah$8w8f0Ce8J*`%N$zRIvhJimI2ljUILYS%XcA^BxTTR!n;v!rzo&%5 z)`@S;qTzBD=lMM(05kzi00+PaI00B-fC|YX>YB*+P&$(-FjyD}5Hui_0V#lt8tSvi zlTpw{(;iAaI1io!Nra}1we_0Sp$AT5?CD`>CyBpYCa7Q$EnvG9!Kuj}sRfjg@=m7u zc_&=C)3acXW*Jolj>H-at_oyZVY@BKvD)6i3jIM6`^z*&`J9s^6aY#Ap(2Z3fqNvv z?hY3VZsQ96f&X<|nrv`|)B~{1;{W*Y7@k>p9%Klz+)w7Qf!T^zNSz z)<1otwDb8#A4tD`wR`mT5q5C)Pn~NDtJ(d zLN%CHg9@g&;K73i4=Q!x1`UFWB7&hFG3hoMNN;6j*gFy8;wS@**rNpIXyka zFs#*Tot>TGy5og)DD60LQWkBFTk=wf79Sq2!!;E}> zGF9daBT4O5?r(RYNMjn`wq)GZ$iSp#HhbfV=|o#CtYSGTi||lo5&;GcLjeL6n_F1w zcQ*6xenp^?L3;z;1qfw500qFnFssvX2_m4Vkmqj{W!djO3NmvTcR~mMl)j;TXF7Y#W*kL+e6wBpsNDj z2hss5z_=MMEhs$|tX%WAc31@&x>4w^$q_?|_BDQPiixe}p1GOWyU453$sv!>F6(qT ziq=@JFNi}`^-Xg+94>r6oz3z%-mceGRUsfOpe7hQ?}!PZuIT<&9PRY5941w;-Y?3# z%>lLPPKU#BiR`H~WAeN$DgU$3{_zij6{n#ll#CSb{V>}142%3ToOxzvP<3O5+W|DY$9+hQ|YAvD8s}M578%-aIax+ApaKx8y%^PUZ$Ws@bhqQC zlee%}D^b_g!N7DJi)B2HnFwqovZ>6h6}r@V$RLqRp(%@E0p)TXe(t08e{X)^o9inT z9{=;#*ERX%^8E8>4}UUmFW!HC`v4PuH;;th{11M9XWM#NHUED1#dYi9hYuRf+dp5P jeEaI-AHMqWNdsAfWSPut27BlsLckn)$RT1G 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 BC`|wW literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_diag_lift_3.png b/resources/g2/track/alpine/flat_diag_lift_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e68ece0f0edcafc079077d1d457a2dad4a93f192 GIT binary patch literal 911 zcmX9-L5SmI82vh(X*yfiEOa1Zgs45_5F}uPC_%EC8R8I~jGKiXf@C3J4+R4op@$v< z7A%@W4rPgwLxmiA2-t-=LXip)dMH?M4^?vLz#M+FEWGdgc$fDM?|na9 zU&;6Hy?GA+?q7a({;0YStHGM}YJ2}A9|F|j`t!#Z6|L23M@L8Xdj0tL_~hiI(P&^8 z)@(LUPfv+Xr^9iqB#D})n5J&q)@U^H{poxjXW6PK_GQVjAPS%=EnRQ-`_y2_j$OeI z)Y;rfQhS-Zn{6mDSXXFS3gL7q&!nd|cQcYwzq_1U#bUfG!oxn3NiY}~h~R11%)(L^ zU(ed*l0-Wel?J-=5Xw3LDu97u7LGe4>Ctp32sf&_==Ii)^I|$hX-abKj!3X7B^b19 zFC4k~LPxQ)3!iaqeWrB;U<8hZGl~tpU*k zY6!H4@l!&c(|RgedDq?8;oi&8jmor5o*c-G+ZAS}l-OE6GS|MnjYj*_KjabGW_X*Y znJ&loL}{RDu4x8?!Q6Gz=`@ey&1$vZ?-7s|&_2e^a48|RCDYqTsM9w-5 zcI&JxUmy{n3t(3@0Ehq<09y=D1yw>r8$}^1)+!Aa2NMxu844AU2FN0i%b`$3aUU(m zs0iU@@H{9IbXBZx63&2`c=9YXlVp_V(QcQc%8Tp)H*AR>p@x(Z(^esPdp#-#$-!UV z#T&HV({11>OlEOir1}~+>?xkp4<}9%P4X<-6&WfwyrQ5OPyq;4S&S>YS0G2jV7ui5 z{}t@zQqpy;-#3Rti(^MT>x*0@ajC+tRA$%hAcH~>MVHs=LWzRcAfjC|Ma6u2re(K&VT*%$#?$)Xm)wn literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_diag_lift_4.png b/resources/g2/track/alpine/flat_diag_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..54ec48a3b2a48efe7f39d581d55f332865f0d193 GIT binary patch literal 8870 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 Ix%BG6|Ngm~S^xk5 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_lift_2.png b/resources/g2/track/alpine/flat_lift_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c024d3359d74a7f819ef4be2835bf59bd3b03f65 GIT binary patch literal 947 zcmXAoL5SRR6vp4~>~3~DtvO5~&}dUTVv0c`b91v&scda+ZEtVy z?Cf9|w!6E#x3@>s>vfJ}B}vpY#WWkXZF!y-hW+6%$+AgNELSUz1yKN1sWuw5R*Q1l zY{wVEo;nyBqtqVf{%jse45kZJOCemH3QW3hb0?mZhWdDD6{np=5v`Y*OoG9HBSN5I z0}D%id^)JD#w1#>Xl06Y zr38bPEk<`aGZ5^a_YRaA`zpW2QNiI`c-fa7N2u zvKlVVrfXDXaGWOynW}3HYYKv`s2!tR)*kxZ)4{OF^3_ZPL&0nfcMU3NF}=1JceGKj zc^bRZw6~aMtJPB^0_XrXKmZT}oC3@-K&4a(wQUqfsF6 zYxm}Jz85~1JswMqhSqAC?Y70S9?ym%7fW2KuoIP8=yhaJ$fZ$_Ly3rTr96KA_3Gcx ze&CbahZ;C27 jV)gQ|X3618Z*IKu#ZM1^y?W!z5(Wo15BDFuedpf)M?#TW literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_lift_3.png b/resources/g2/track/alpine/flat_lift_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c61e4bf0f6164978dd0b7c983b826d9f1dbd51 GIT binary patch literal 966 zcmXAoQHa}g9LIlmy}R69y=7RWU>@?&ZBgPDF~i7$WSWldh+f8WQl&@+K?@emLk@~m z$XJC=szm8Sm7+xg775sg12YT~FksOjdFY@*27TzTgCW(0qu??AW(>Z+-;eLh@AL5e z{XV&}SK8TrdK&hY*GkL~3mC=sC2P#3^b zuz`;GZG1AwB_V<43`$gVY#|gB0Av6a!*m=s3BsZ%o97Q@c~q@VO!I!fk9?nCa|I#K z$Rw{)C7mvttY+~>Pi#6;$5ZT3b>k|@5lpGTE3~9>6(lusIbK!TF zk%MLdp5rLG%yLyhtSd@e(|Yy#u-*3i{m6Bv@Bjpq$XZmH?A#<1NP4Tf!5FGnVOjxqws>nH1`=$Q4i|rN_^m z&Hnr72M(_8DRA+xKi^Hw!EW)D{b#=T>~m@R`twf|56|6u7)^4wPX2M~spo#YdG5hi zN7@S?7C$)g2KnX5%<0V8cM3m!bos*C`#UdwJb3o{n@_&3zx;M$KfJ*G z?Hzr6``WEfzq?!ic5tBF`~JUgZr)|@{B!=L2QU9zee3p}^G4?F)4wP9!}l(xeAvCT LSN!4CYd8J}CQqAE literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_lift_4.png b/resources/g2/track/alpine/flat_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..87cec5b3aed4e15bf6f996d81ad92e7d4c5d437d GIT binary patch literal 953 zcmXAoL5SmY6vp37XC^aS$AASZ1`JX#D^a2wF$+PWn;Ei0bTV#6BJ>b3U>A!9jZm;c zhAmPguo>wgU=LM-mNjURL4p zJjP2LMQbcq6U2t9I)>40GzN|n^?FGd&L)#A%McJIP#(tiadAkfW4bmI+w-cwXbdxV zvK%bVr)Q{0<2Y9?OJqf*8H497S!wI}vgW|)jQWE#PL?wPbQ!Z$+}26APIsF^&{l`t z+9LF#Oyqi^n zWn*~ejnBgwnr2i9I1-Z>yeg1&m2K8!*RJ~=dl+<*I9Q}HTFy9GMj@aS5X!S?=eS2A zTFvf!&UL*gWl<=gM9z<&d$IW7 z;SYRvZC{1g@BjNjZfbiwZya9y`q$%^A3u8OvBGN}vX6yVZcWyY;mhy#p1jn1|NQ9m z>h9-ny>sdA(N7;ym#-XLfA!-dej-AhmrNpiIwXgfeSLQN`#3$2wcUAMNbH`$Muh)KXV*>?>)YM-uJ=x z-o>@m)a=aM3;@ioJe^$k=Sja}!GPZhY}Nw^z}mAL%RU_&8yg=V4+H`e6BCn@lT%Yu z7={Id!RhJgXgnULs07EcqR7i~Mpcz!u~@Cvo6VMOAG)qL98w8j84&nTCKJi!@O&Xr zDl^rZ&}d3+OYJ!2UfbQwZ;`qzS0(rj?{9qI2}u*;*3c0GM!O4r6iQJ;Vr}hqyba_9l!)Q0O(_Yd zF0}~7WppoN4)g6%wR7C+p{_?nfX1;@BAj9IoJbY2ysqVpiqf`#xS3B4j!3E<->GzLkPF#F_d-td1 zobM=K&n_Gd!t?h+h=HCiEcWU#_ z%{OOM;m?OA$Qx9KC?w+}1JtI55kmoEGdnXS4$ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_2.png b/resources/g2/track/alpine/flat_to_gentle_up_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5014108c0fae6a38d99577c0881bcbd6e921fb GIT binary patch literal 990 zcmX9-VTjvw6n}TUyWCxG7AY=jm4MX+2^uxSFe79xchn7-)7 zI=U@lrsXJDq#uIzL%@z58l<`)LGD9`K~C(=h!r~54<{7uhYIKTn`7|fz4!a_en0rV zck%dI?!e;xivVz7_4(!XxF6b|=M!=L=fYoa03_h}3nx}$IyE&lJw2UBBxYu2W@l&T z=H@UAo1dRwSXjWb*(}4*g22nNsA+k_&?}Wnz20oMy&%|*qS1KF(7kb;MbLITaUJ?!^oM8f?Nhv3Q9cK zGS<>D-%9mb>2WuMhBO+hXwOC{$O1?JDu(H)l$pucBIPTae3{_>LtgC~}by^Y4F=5Kz!^WdkGPo7zN z^}q8+?-tj8=$!l`x%2&n7nd($OK)y`cIkt2R}SyIbl>VF@~InNFE1&N(#Zermos0< zr%rxx?&i<0Jbc^w_3S&T*A6{?)F^Btgfsre|hZm`~L$-$EpYb literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_3.png b/resources/g2/track/alpine/flat_to_gentle_up_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d7fb6fa9440127c69cc25836a4cbed2a732e86 GIT binary patch literal 983 zcmX9-VTjvw6n}TUyY#L*>*$9JqhzjlL4rgK5+p)4b4PbZE@K&1D3U?cdREMbC`H2v zu56tKiBhy5DijQ(vY_QWFpPr1WpEq)5U?LQ30SaTVH1j0IgUgA<{12V@BO~K-w%H8 zeR6KAu)6Zt3IMEbo?Snm^tGcool5H8*Z$lFNWr;RE^H)pZfw!2+F3u6|!nF zb(?Rt*!cuXNR5KtWTf`gJvo^bPx*j05X7zVR|-e5rjigF3<1E@?N<-w5$j1HVOiQ&E*B0 zkx5>q3OZf1Sk2*$mRR$oMo)43svnn0j$jITUZEw8E9s(Mm+Nh{?dyJIg>fUAbVmC@ zR)CxWco|3&C0%FUE2=Y?a22>gTZt!#i$(97NqOfLJa;%EmuzFr23cX1jqS=U(B;*5%0ih&| zdLs7_M9plC$6TxV5JtZ*mP$&cqM4@7GBu8A3alrxfy4}CdQ!|Il|&YWS}gJf6iLbP zbI)Y{I{Jb4&u=Mk`j2~WCFIKH`k4zSzP$4JnMZCvn@$}dD|6zt?N#&a^|jYkc85Ct z;b(9DlzJli=bG^7bLpqI4<5Hqef-}14=dE#ozw509O+*?`NrjwjUOv_fBoio|HeB9 zE%wE`Utj<2lyK~;-1Dzqy!73rPu=_e&o5j(+_-i1+j}qjAN+T#`^$iwyMN=On}Yi9 cu^nxIuLnDCZ$E|qo*077jji?XU%Ghtf59)K(EtDd literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_4.png b/resources/g2/track/alpine/flat_to_gentle_up_4.png new file mode 100644 index 0000000000000000000000000000000000000000..98e0483d9f97008dd20d16fa5e84586746e0e9cc GIT binary patch literal 1032 zcmX9-afsV=6n=NTUV1A>VI2f6NW_AHg|jD-i;zEZGk4Tm=4D(4MT=$ z8CI-YIimKD4vJQdSTL{-4i=Asb(T@I9{Hmj6{Gf#&eda%B1H~4Z$C2z-+PbmpZD?c zy?6EOMq>Wh!Z84tUw?6R)1OcKMT7!=r?B}kKmg93Ik)E1si~>y>FGcqFf%g~3f2M<-nZjpAscphFX(b__rQP%uo3L=1v3DazuwZAt26GJV6iU#p>3i(sNL z9*;{Tr%(xvP8y7Aa(Y!L*kZXUTV2KRG9*jH6ERMvMU_oyf>xA@HKpcgj%&2NvOB5| z4q6c&qB7taAoD<(7+b>=4Jy^*H8)ur=+@Y5qiutF zhbe26YmUv{q%k_|AD}QDiLf}HAY(EeS2<1>rJ~|5%Qs5pPQBr^-N}FlMZ|PDVko4U zrK@?~F3QbnrehoZR&~^GPbT*f50C`V0ZafJpaU?(0Qryvl-H4MA+Ik{pfOP9!AXE8 z0g?e}I4Uv7l8}={-6HZVcoaMfq5w$=%c{7MqswNZZmG>?!FBD?$VI*ukpU(j=1p9( zNX4Nvk2A+9dy;D&RJw=G0QJXI6j%~V#3L!5%*sqYBbr9mDjQ9^?6&QZ*G7{8D~iYg zN}*{qt+YfQYr#w$Ey3rtIl_au6hj3I?Y28F5& za(Lv5{_(Sm;lCgKz@^O%8CLH7oc77B_0?17p5NN~_|)<5mO|4c#lG6@=3JacC~qnF#|u$vV!$+*rH$wS1d zLBcH98%3g4RP>@GEs}>K9gCxrDgg_t*oQf*6jtya{&oz0-}mu*`F{NP zec#!&)x`YVy>kFCzw+eL`gksmYhflZ?g{eD6@UP&J-x9!rV|qrlarHyKwxTWYI=G) z7z|<7s3s3M&keO;Cj-TUGeFCV4rfQ_^~N zZqO)=JR9{~Jj{?(l4jBzpOvJ7qLj1QTA|RWR6NJ&w%dcj00E%_S;FWl&esX4MWwrZ zzL&E4+4{h24{QCM&IpAl9A_etL^LK*afM|yLCnkJWqPepY*uT&>kYdc$O5KGxFJW) z3{}=SJ1^DC>85RT8s&b+9S(0G4j>7j0hjELAiURZFSYbDn4S`yLu=5ow_H5NAe2 zD=Isr>a*q`We>CUQK_}#bWvwOhJlGSLt|;iI+Iq=IMqIZ;Mnv8AEau86+yx z$l;JDjE|o=5c>D_54^m-D#2ra{<=9P->obyZanzzh4+pxPj^|JVon7w*~f z+%tho<@3zmM~`0%?s;o=^N9nu?CWn||BA>n?5R^n5B_yz>ywW+@bl{QtqW^M`{zP` z|8eZlzGvrupF8}^#IE~=lZW+<)bh#qFLj=}i~VWe#(zg@C#EaqS1;50%zc^e8{c32 p8J+#IedsqS?_Bxe=9!Pa{_J6Q_ZOeOKK21C%d1PDKYrrP{{d@QyN&<= literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_diag_2.png b/resources/g2/track/alpine/flat_to_gentle_up_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c5059d08b90aa711e4b61a0ba9ff6128a88e4717 GIT binary patch literal 926 zcmX9-L5SmI82#GLOgdB794b~OhaeRK#wCXw0vjZ*nWZyioeZ1N9(srp*dj%PMCc)h zfISom5}`_k9tuV*7_j0Tf<(z7U=I~?=%GRmJ#^Wqdk7k&;vl~n79QXCy~}%t_r8xW z&Re&Rj*kG~*4gRFgJR#@$JI(Pf4KANa{v{%xPN)Cprul&TrO8CmA$>a{r&xeg98l1 zs@3Y@;bEiMY_cpPih`m@n$|H4eJ~h|$J6=TkD^tQWO>dqAn+hdwN9tr>ydqv8QT1K zBG2Y(5E{$a-fUfw#@c*Mml{@^bTn#euvY^y9JiNqJy{IX#NB04ivX2|z5tGb&2%iZ z@%5~pFA0<~C|A+7gHY52kO5Q-({bD)2#2Cvp1+diMYp@QtS8ec3PXaeH-!cxle|i` zbh>S^n!_6tao|a#KyjCwauS$tX@|n_Y+tP*&tPMvH7JG^6pnA<09v5HsiYXfc~7QJilCP$kSza7!hf9z8JyZ>R*5?!vRy z;Ury0dHw_m0BryRzya_8764lePyty)rhz;cC2N@iorRGAehU&AkOD|=Ae%+5jQk#2 z4pHL5P4FB@BD7_!r!}lTJ#tzzR||qc9D8XRqr!{m0&CU;ry;wf>Qj2cJ6Xre`@wF! zy!JO}ol$k*NUX)+9f9mAtl5J&_G1W+l^UyNOg1SrnSE$QMv773Jq{*Z#cufe#;? zEAZOmUmq6a{@Kah%NIWXnFukH1%ar@Vjs??3Op0@CU4 zFORNtso1GaMCzMy^Oab4RXbT*l?FX#a?3*a|Beya*LL z2wI^?r(qT;qthaFb{eqg$s$I`pt@7)8MdOGMl7RX)l;fesdyegGX~##kME!N@$tR) z^3i2(@19%t0KneF(!z>2=e^qJ_j#QoUicco2S<;rE_!rqY;1gd+~@O6OiWBpPEJit zVHoE3`=_U;!_jDzqGBw|h$1h`DOFYS`Fy!tZ8Xegv+cTr;gE^}69<70q*9?wCX&s? z3dMN2BGem_WveZx*zMI=5=+Jd3Ln;z5nU##Dz%Yk?Q*i!P~6Qz->r=XO%4Z%ge(KP zh}9L$E(SaG(6EK0ehdvIw4)=`i~@M3rXw^SB-417Ba6v+U1lv+bnRml5|623P?I8h zhOFcmqaa$9^roS8>`K4W91gb;1CRtz0dxQZU=yH+0rDWQD5oN$hTM)ofI>lu0h0q) z03-rZ!l+20nt;pNVN2@{VKl`wsH7@H9}l0HcS6 zT0}Al#f|HOlrhX&qjGD5n}OY=N3 z0l9#Xmqo#oy8%3(tMqzwrF;WwtHq{LVkRT!atam8)3Gu`87yV_=lTjo^kVc>i zg-ixHym$QcY~au9Kk)3zvIr0TboIDLE+!V{S7%P2J3W7(d5_<>i$>osT|DO>U17KH zT3cVbw|DGLegDB=;nW}8O`ljZ*FH|1&xaPDdG3b~*N)Gf*gbK}N3Tfo&7aOB){nSn zuFjR8oE?5~3XZkk`uX?Jft~WWzcfEv-CDyF3E{D8;jJIfURu4I+dcE>q0bM$_V|09 z*>^6dP6qz|_VA%ApS{_JUoXA=4g7U*{YyLX%hPv!b>ZEu2Q%M&aNB*>^E>;(mtW6z tRvwW4`}d#oZ_Hf~f4lwFm!hM|r}p1}(mcEJi01_oi^~h|Km5dt{{w;6#c%)s literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_diag_4.png b/resources/g2/track/alpine/flat_to_gentle_up_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a547729f5ae1e57748495c3589043771700c825b GIT binary patch literal 949 zcmXAoL5SmY6vp37XC|F3vt{ies}ZtLBw!c<8zf+mtfosGBa?NrP^5<}#N8fx$RVqB z%^_livKEX|mI__yA%~8H*&ap=Ls)|5P^DmyE>?(8p=b|#2vW3%IsDDA@bTXJF7J2v z-g|K4P};lj(ggt6J9xWtGwbK`tNC13pIm$W6d(sT-o14_vl|;5o12@tTyAS?YkPZp zXJ-e)uzWthySs~*%Vm~jL{U&xS=Vc(X|!6cUT-iO`B5}Yl619V84!3-=b9i(rQAWC4*KPI&%<;$^Z(0hG9mrXcL4(Q7+G)D9X5ApV{`a!2pFJ!IsJb z&L||WQIbJdZB}=9voE$hxf`hNMDvq6$q|fH=2cqOxtbvwZKXZX2EO6Pc9eAE<#4_Z zivpBX!0SL-KsgvUz@-sY3k4&tcIKv=IuSZi=#tJ6O^NPQ`JpZbrW&{OSZD$CUcv8k#ZUGF!WqfRFr3}WA(Pp4^`A|MQ)dKfz_iUFZc==xl2FKX_x z8Klm1HCmp{)~G-iiyV$iWLc#do##ziX=~XsYt-qEhodBlS91Y088g+Qt&vWH?puP_ zR)ct;5m>*s47@P$L%KFb)=!I2SF>2z2!1S8H=a`YZU|sS6ou_DI?*X zwC1gv!MZm&^XF)mQYGL>Ok#>Pfo!O(RhJ#R;dbr7>&B6{Od_f1(UqG>(9Y42U z_~-lw?%h08;o9H7-_4AEPBUT{WbjQ!LL{Mg+KSAA1{9K z&7-(`=jiV7QRT|!#>Gp@=aY|bU;S!pe|BoVA0B`Et4?BM5(!S~+d`{#Xp zeDA$`WH~yuYi1V!Of4-g9QEeBSJUG@uSbcq8vs5ya`@OGj}8qD4G$0de7=#9k!^X$QCnhFBkw}E5DW2yfNl+A7)6`5Rlg}3`6}w*FblqORPgB6LAPRn24knY~ zRGP{fY`!3tEAeVgYdS`|Q{qW1#`;wuq{qUhLKHQ6EyLIHv1Ube8`-W~8uaQ>9O5LT zI4~uwtYS4I&?*P}O&oP8)Q_Vb6QOzpKm>?mm>LM^IBpU|iDlPBv5`o$bp2Mbh-x*Q z4o0{TC5G8J5mm{UPAev>75I!LAs8Moa;n8B%Ngq27^VPut8vtqUwFWRc@=yf;e zbj$5QEx zj+N=v@&m_0oq8b15M+#I5*(kBBtuaOsZ_-^s+wINGUayA$SAoc5bUDCRaj8ir z+I+Snm%6EH&)n=+x;w1_@{@r86ADGc5s9P}mem9?8~2u_D@LwSuDErl-{v4LV44)r z<6$#N7Sf!Rm8ykA!_r%|Lbp}#_irH%AO@fTm;e?)1E7Ne@*wgkts$#~+?GgyN<)qV zI|{A{NCKpWkU^u8i0mY4W|3QhyTLOc@DLNRq!Q9oWX_D1OG>qxaU84Lb&#ipCxA}- zIWr`d!f~5WUDoW$RzFo85J>Z#iq0?as`FqfsOU5fl$2 zoj?T|*&K2N@A#R={r}wkfj5pWOE7n1>y$^TOAGVI9(nK5k4w|%W+zAHHYV;M{Wky0 z@{Olf@Gll0xN;vhx96L4FZ{dv2X%e#uY2E|nt$u;{AUL*JbCFcbN0EdJ>=|5FCQ4J zs*~#aqx&xSXD)wq{g17cn_s>-{rblbe!5t`W^G@8`qV{UcCQ`yYX8+&dk?L4u2LV! z58r?0WaHVdSCVf}p5N_m-kkk?-}gWLdEEUuck%BJ58pZIUowm{$6tH?+Y_t5y)tq6 tuburH>*t?&;*-;{?eEm|=_|x-AB|7Fzde)t&$9tbhn5#UKX~Gu{{d?)!UX^T literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_diag_lift_2.png b/resources/g2/track/alpine/flat_to_gentle_up_diag_lift_2.png new file mode 100644 index 0000000000000000000000000000000000000000..50bb6d6625462728d5eef42349fa60159c39324b GIT binary patch literal 8712 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_diag_lift_4.png b/resources/g2/track/alpine/flat_to_gentle_up_diag_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1d7bf2eecf755a944f54963caa49cb5f3dd285 GIT binary patch literal 8271 zcmeHMdpOhm`~OHeCJM=+#wf&WGmJTmM$X46r!uq6EQe`xmLv)(hg5PXF^5oeawv+T zR4ar?OLE9^t|p4I->Bz#damF1x_;MlUBB;t&#uot`@HY>{eIo|{kre>``W#wI5}8~ ziO7in03c>At{m~DSiMD z`MM;RLQ^)}kjUjo(G!Q)XtfQk+5Jpx>?^0Rg2=ov5Z*+#u%)F8A2r{x>3#TO6E}DP zbog}f#OX7+UhRVD@{-Lc>cqhxbDVzA_@Tr1{F>tGXCBm}h4!6jd^FjYJNqepayjVe zWC_RN;*JW=vd^LKmr7!m7qy-1y^E$Fzpaib3U`!h`4Zox`e9)st@8ahAxw4O(vsVj zuk0!Hm+7qKxfrErTX)stmtM3bu(!;LnJ>xgn`*RX(`)0`PdfXKe3P53K5|I9tghfu zT5XVSticEVod*w{>K(ZdW1(>@#_EtT?QqPG&v!VVKbsx$QZ=g1pZKA5sL^{gdL%9T z1FPw-+WNxdC4UylGpwW1`T0(`<-*WY9; zo;j*SKED;xEFv7}vi|0KF}Q@?L_#39x&4@^GiC-iG-k7S#OrI>V}pblXy(#MmfK~B z28LrkfLKIYGwMR`?Y$lU3t4g8S--*`|hja^3At5y>tr?jeJgLJ(SRw z&(7T&cX)F~^u7JVf%&N_3U@a_Makx%GVv10u}uvQYMTh%u*Z!ER9K(VeAShDYliIk zLYWJJg$P?Y{AqL2`WxUG55xZFGE$7QmSeZ_ZU*)^wrO6tw%M;vSk^|Q->|>6V>l9s z*nZ>`_2kCd(czcyl+#Yk7%#<(IKGpod){VNXl}|)JNxL2WX2^u9MJ=ev^4YdX{YAtmBI2YFK-FbyXI`B&v)wPV9lV%v7HhPYnZir zyY?x|DNdhciEVz}dO!KA!;H

Xfe#@s`D6{uz6rXz1wGqyw$qU8azT;l3X0*cO3O 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_lift_1.png b/resources/g2/track/alpine/flat_to_gentle_up_lift_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f906d1f0d7acba7e345365d727d20c84501d73 GIT binary patch literal 1037 zcmX9-Z)oFm7=HIR-R8(fIV%?IVfFGMN|cekd5YoD?l* z)QUyJnZqLeP@zg3{Sa;yC&n4M3K1t)B;e*%%!lF?EqF*zt5g{7XO4sCeP5n0@596M zzHcutC8sCvodkgC#Z&Vu!8{gJG&B-)0-NpujKK2g)rEi#4Gj$s508wDjE;_ujg5_u zk7F1X3WX*nCL-~8oT3sO$BH5^%V||r3WY+sT&>q_*WL5|UcXNzfMr17r_$+gHXF<3 z6GfdVSA<$!avEyW)7u@BBe4`SrSK6g6*FX_s#4npu2D`k>x#cy?E2=Q=O&{dk&t7- z5V4wqHFUgH3-_B*)J>qigboaZ+&F*$AYqt-<61Oo5QNDv+k&v0$+R@>X0?hMjVKk4 zvyp@lVVpXczitTBxU-G)O z_Mm~Y5Edblfmj|01EZ^vWSvMiSj9`}ZPn}9?y56W(J=<>Y?e%&+1W^TuGDg*K&WVamGSlXY zowV7_IXz>qU+*5Y255@JaXJ!7#^NHGkQqkhg`yNJ%h&bNZmsUSUcb$P#AB+6Yf{X} zl9fDb6-B3#*|oG*qtb1;{r*kF0;B*`00Y1R*ahfdfC2~{%B#pSk>3&sP$(#|U?;&B z0EvK<2+}EJ3dqi)W)b-&+zy@wo`aNtW#x#LBTGiIX3CCJ@I0&A^-!P{%>b33VvUGk z#w43ie8%Xdt$xlKl$!^38?|~w80Z+5OyFrYmKCXdhBvgVS<)P<aN>2&By`3}@(lS`+?Y*xSLEKy?6X>_mL1cSNd$go_lNm=&j{X zoTskl#B_xN+x zDtUST)7P#{6wkkZja++RX6W>fM|JyOZu2;Pan(w$)tkS}Jp0`rv;8-hcE0-S#YgY| m`Gq6@QU5%#_Rg!nUcb8e?G59;b!9)W0gDSu^IK1yedB)@^TCGz literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_lift_2.png b/resources/g2/track/alpine/flat_to_gentle_up_lift_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1480e140f2284a0e4048f8c3c27c38cc8d74d673 GIT binary patch literal 997 zcmX9-Ux?du9RJ?m+#k;%MKUg8=M@)N(CPxqFu3S)qdPJ#^KxF5JmetGqJ4-gY9E3` zEVF7Kf|gs6f)xXnBWNG)A;SvU4DKE(=Hb9jqARRmkW;D_Jn#lTa|}Lwzu(Wx_w#|z z_xs_c)!f3|;v4`htXx=LOZthUd1fN1|9tSrYXB2)>EinNgpQ4kjgOB{OiWBpPEJit zO;1l_7&bFAGdnv=WHK3s$qE85%c7y&W zJlHbU(lNh^_gbk@mqc+EjZ}1KBNSu+Bmfn|bR4%x(xxbf<8~xzw@~O=)_${ze4k`e z8J@^WX-=hbI-R!|&E|}TPxkcp+m}Dy3iLY z1I39;ouR!qYR8AY12j+LI7<+@bVjDL8pj!;R8f;OiQIjVWwS9Du#NhC7~QU*C~~o=nWoNU%WSsJGp@k+Vs=lW<9r6GX=G8T!61)E zp_m*$`^5a;M?di9+NuoC{dW7+gw$4+pI<+=b@k($bHP&&2=Bc8AL5@``uWGpSIpa= zD<>};|7$6JXlM1rpHHtYJ$mC5dG^@mt!ZK7`!^~lnbTX;nO~_FuV)JDkAHJ&=GObK zY)s#KyUsza3rqgMP%5WSjioBxabzQS8t6Hr$o1X7?!*DnnQ5j$v5cs8hK2a#7 zibkeXW~w!z(Uetl!D2io8sTGUOa=Bfv2cFmOc89|u0$c;4icyU?*TTgPsrI?j zAn!!Q*3j;bn$bybjF!lFoK7aQskBID6o%1xp(Ib18O?I#sL>4lVAN+p<}qE2n{vu7 zkTrvKOJb|09=T?(U5k4DXmpHN00}?`umN0vBY*)0Xaa#lhK^hZg*|})je-gbUKTJ5nm&?zjNiRal=L8J_ox6Oi6FVWhs}V+I*%fkdc%|atfIQs!_;e zQNT}*pMGKK(diGom)j8G{2#yUOvtC}s~5JO*}JyOFZwT?Sv|b;>LGf3_4hN15edXb8`MbxGv~qmz8rqF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_gentle_up_lift_4.png b/resources/g2/track/alpine/flat_to_gentle_up_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8e216de044d73a447681cebf25e4bccca6ba6eca GIT binary patch literal 1032 zcmX9-afsV=6n=NTTY5W=o)j%EXu*O3g9{oYH#08Xa<_WqxQu0IokepHw0~5HBf|`e z1T0deZkd*?e-tSre-w-u;ba-sQAX9m>XvZ_b|Yeuf(7S@(#Z+u@iSxaz4!S3c^@C& zdmkTP%gpURupa>CR$f^;5zc4B!lRL}6WCk;5P{>XCznGyF)=YYIT?vWrlzK*r>FPr z+lOITG#Z_mnMtHlDVnBuo|7a&QF5B5mP(~st>HLsr?c(*!FWtlz_B0-v$zkQj_P;IBj4HyIvE^f5_Aqs z32UlYyAta+W(`^~S*^~OY@yncte))p`6Po=nG`FLg2LofUM-8|hTL#f*E2eP)f+Vj zJM9<;aS0N6NEU%GF{Y8oI7F_^sb01+(5%4hpiPmCD-5n@$V!%NDtt?mypqzdX+ygd zv}-$_jfS0AoFT|8&Ez>=m!yiK)OFpdRN9S(=emRK?H~vc;3^O`jBdvG7B2P3{D3bH zbJj?21?KkH8SVCW&@35?F^NPbnUY9KVOdQO%W}A^=v1oRrsH?K@qhzaz%(gl$Vsz6 z){C57mRj|E*Eag?`l#O-kMAK4APb-Ym;g3F7hs413L)~Ss3F@zeqSU&rJ>4!n*m=0 zBmq(rs6r!4L~a4~%E-6iVekwHJY+?zpd<{PteTmorLn9#;^i{vPqLUIxr1gg`> z<&Y^u#|r<<3*NExA8UUmzFl~5jlK|^S-G6*F?*jMd~tb^`)OD3$k zg-Cz#zx%Ow7FQ>+E9j+npFSHQFPu$pJ^9?mn|k{6k*_CTP2E_yJJEaXyQ7DHTt1BB z|IXVVo^o!_u6Nhpcw*(+H|bmKL4(pN_}KKLKfK)iSW literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_1_1.png b/resources/g2/track/alpine/flat_to_left_bank_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6dbe82bd91c1bccd524132cf7cc9eb2a0e9750 GIT binary patch literal 971 zcmX9-QHa}g82@g)YwlKOh7~Id8l;m5LBbJdkO-OPW<269V>u~WwoHTTLm5$`mRUw% zMT-;`r4I%B(1)m+HF)z#ItwY5^YTxMBD6a`h4b-ikuMyu88^#-Gn7lwOroGunD0|F0np>N<_G2^>dfYjNMjYgV8|t_LfSetFxlOf81yQWkr9vEN$eb?p+ta2Lqh;t z#fAnJbnxl0xR?+qVbDTDhc-fC89)KhFwDSliy&-@a(I4MQO32})Ux&m0~7=VTPzDD zMj?5Pk_@_HvAWHheX-@rU0-!3nitndj$ouRuhO#4RSnT-EA4?c@C+}q!nhkH!`VTA z3s6*{R0FaJl#OwNk~E^KfnY?H&dhXDJ4Cw*UDP?EA<>-*Kh#CvRHK$Y?U{48l?J_o z$VKxIFLD%JVY!+hHdM8v>-|P!)ae9+LF9R}y}dL|5fBDYJ&YaVqEDz3x;7Kr^Qx0H z{M6oCjFQ9Y0V>cq&Xr0MSypLA=Xq0B+FG`(IqG!B!%-YYi*s3=%nFIf$`YfD2%_x)BBxk(bCOpB-i+bjrnNpVQcql}oh z)2h2@_y@hop*KU*lqv#8ViJQ_1+uQP&6;dmb*F3jZZ`_uBo5JH#>q1B0L6e%mPI?0 zyAPt(?9b<1zjq(zWFl6pYQ3&En+D6YIHo7CuE+*5v!~EWrHnKZSrqEC$P-W`XUESy zUHJFj54?MRONG;a{dzegS2s6a*naBM4}V^NaCv<-cls{+^HT1I&wl^*_~-w;bYpti zE?oPrs9g9vfA;Z@uKah?dH92!_kR2S;)y@<{u|?4J71*g_)Yo_+wS~wefzE111Nv0 z{OXsFEPwOkW6oK)c3*ocl_4jW-f8{6X9sG%BhIg*rynW;C?VV2^ Q%}l`NnXQelU%Yhvf0nwQCjbBd literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_1_2.png b/resources/g2/track/alpine/flat_to_left_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..25d3fbc95dd78300963aa03ab12f85b4ce47135d GIT binary patch literal 902 zcmX9-L5SmI6n-4h{|u4-b!y zjxY?X*Xzf}$E|j|&9aOr3aTm_hGtpja5(h5$!r#-=`zoYvSb+$cu?eqrZsy#vOi!( z4)6KObf(9NwaA?HCJ$8CaeDJtOkYekuNyDQs%HkqI#A=qYHXfX=O z>y%{D9h)^=-txs^D34<`Sm;sSB{_nT+Pq532B(>#IZ{RweG-{bW~cc$+fLWJ1Q(#G zLaPhp04NvZCM{`3X^CKF9cOI?g`1*lg>D)g(U)ka!%qz{w$yBBtUPNI4vWOwWg*(6 zc$1^(4$E}~v9GF*Vfg+2%yE**B#WZ;a#<7w0>T8!!`LY<#)P_{yK8Z@(SmJ1F5G1~ z+up2ps6pd6*J?>*TcsI;=Pg+o>D98q%o)$8vpmhpwE((|St@Spq}!wYfe?<=*ze9m zdzJXxRa%zMkO0sDumD_u5MU0l!2nfIL^QBa7@&NmP++n!79f%!R{*Ji%ocK36euX_ zp~VR00lW;J16hQQg7u7+-KWQ{G!2Y69%fm%-DarrBD%m18iLzW0#c7CGw0nx3(J1I z^AQaUGpZ@(tCEmL@|KMKz$A{njb_Taj|M(X@_|iZ9XLIZRM{m9R`{VoHKYH`YiT~uq p+rRwq^QTW6&%ga?eEa;xSC8Mg{rS~@R5cG5cP`I={qVsz{{wUQez^bu literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_2_1.png b/resources/g2/track/alpine/flat_to_left_bank_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b46ccb194729b60a5db7b81e50f6ff3e797eabcf GIT binary patch literal 959 zcmXAoQHa}g9LIlmy=!_`&VU6A1_`5T9AN|rn1=}2ncM1-aXFS@k*Eomzu%AV%kT5> z{rzqp9+Y>spWOz4o&DGME~fLvw4Tmo(hj+|D1ZzcUbu8Fb!%&D>+9>8OlD(aV{>ye zo6TYvmdoX~wzi6;Qi)|5Q4|zK(sk7|jYgy4y4`+1h@x?lES5`_0f7fu%ByOjRwL^c z(`@l>NAC5tL1>QR)^z5HG*;pBhE%jGq@z<^lRavPp<5aCjbzxIC*Eoil?l*js0-jI zSkJ)17Cz|}mLmeq8MM^UiGxs70+0bT3^Q=tCJ2Y3Jf1(2>UH9Kn=Jyh2Mlry8Qsl$%|x8yG=sM@c)L_ok~5 z7oea(u?nOGl!I~IV!2PLpI#Z&U_Lrmk*EtPysLj8~`6+2r$C{rIJNtnaKB0GLb1TSZE6nlp&D;DS(V3 zYO%k;$$}~XM`C3LR|T@BuvS%a?3&lM2Yx$_{CN_g<&={o6aY#9p)`wT zihClWVRdFRuH!zDIU0$os?=(_Wf?5f;22k6eUS|%W-Qb5N(pHsvMJPIQ6QjLN{^pA zlYjX52R^!ZpupL`?thS)%lmt~mtMN{=@+|C9iPpuKSGweHWq*VuKwq%yTd=eDSZ9R zsawaV-*|fuJ7oX4w{_#I5C6SB&i`bde*SZ;cK+{E+i(7M_uk#-u3o?J%V*clb6J;s z|H{iZlHarcU4DiB^3I)|ACKOkkKeg@``V+2FW^6 D)##V` literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_2_2.png b/resources/g2/track/alpine/flat_to_left_bank_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f556bf21255c6bea001fcb2136111f48d813d3 GIT binary patch literal 914 zcmX9-L5SmI82x5C)68rg>(WEO9I{w2LX;dLmDD&hvb|*{}=r>KzUFBN6lZZ90?*>H%GgkT#@0cRAF z*D1-QTMldZyfqNrNbXP6aHhw3o8$;aYVs;A8=Pi}W>4u2^*+hPX7Qv_vqombbLRwV$F(g>D!e(UoYg#g7beVyT&HECOp4x$7j@W)WJY z^#(`LEtYEwVpml?!x(hCW6w*5!z_-M^Z9zcMnITA1sFT3ixWbf(e0(!TWMj@ovi)& zW?Wn^wx~we>l}_tWK*RXgXb+->FK4IJ@)$3(Kt`D%~Ake#w@k&=%nAF2euIP)XAVd zjhsa?C>H5v^9%_9EdUF^2Z#Ws04oeo2}MM1i1o81!UsLV^OG} zxPxXrl!x#5^dj28+BLz)m5|h9%FKCxtwo#e zWE;$`<0V?GsRnQ)CNXtQAUi5+w`Jeygnefc^|Lf8@)T{BoGhalP!0%{S@cS~7a&}F zuv&40;03JNOw=^B(=lw@WEq!Z0)dT0Hj$aRLKm$j(n;h{XuzUaK$%>YpL?tJ&+{Mn z{O*|w$4`F$q$J0uC+}Rm@%2xSAKipoFWtWSD;eMauO=C_X@y#Juog3~)^CqLi5|Hc2r C421;% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_3.png b/resources/g2/track/alpine/flat_to_left_bank_3.png new file mode 100644 index 0000000000000000000000000000000000000000..53188b4a17942cd27750a4a39f1ad9f2f1711ae9 GIT binary patch literal 1025 zcmX9-QD_@=82{R|y>y|bBbG>G4J_Cb4-MmxQ%-l=u5B#0^-8Z2A?nEv3>fK6ZWewjj#C3h2pI4lGI!8S`f!y9_i$>48Qy9hGP#F5^l!%C_kAC~m+$w3 z-}imEzLuIfGJgaBW>%kH+8E8nQOyMdqrNcnMhzeU>t{BXM|5m#YCc*i9~`VlPt>!0w+lsMUgd4t5j-@hUGXN&l?PfWD*z}crKL5L~^-! zzK|@I=t`BZH^io`wB1s#Z?FWGrb99pRnu`@!fOh-qp@}+-EPQUtLS^i!N5tyKqMf~ zfG%Kl8M8~_Zap$=$B>^yLlGV72ssG=9zet}IUH7FF&)PZn%?30RyNyJ)w{JCvh5fd zNifkQAE!k;B@=0tlyq9DvYN@2n}X36EiW6VV#!p376?wFGBPU{`C?71S+eD-j#qa5 zdhfsvGY}CVnuT})a2=y+(NqJ^*o^F^OFhLH=nmT9iHJnS@+qQ}rt1>hR0LO(x)r5w zY6H7+;F_rKgd-GAq)95vuz5i!Nm4bRZ#)*uhSU}1_)v@;1!IlhuLOKXcO5U zTkK~HKi?eaonga2>>i*H5e`$)Xeyo%h@?c*3da}4(Xv9LRBqK9p5qRC42T@22w_!> z>p7xYV9cV>tY%xL+O?~G*BK7)A_gE0paAFqCO`|Ij{zEiXHh{xrh&XJkAqA?nE@*W z9uG(WBu7z+L`@$t zEI=M0G|HkllDm(XR;c#-RJC#+O1sTwGD0pV6$&z$)Tm^IAx)OFxnzeY{B#0|airp? zN+OFvE;l-U>WR=__kQ5Q#+m>pZ{K=tL>jA0r#2t^!87w9Wf zFYZ41<>xog1@6oaPoJ23^!4|z-Q0g^^W|ID=g-=^KkR>S?1k`i?|!rLcEbDj;?vTf b?zdx~=6|>SpQ`_iti$T^+S2yvSKs>|_58V< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_4.png b/resources/g2/track/alpine/flat_to_left_bank_4.png new file mode 100644 index 0000000000000000000000000000000000000000..322e9429058459781885b26c5d8bbcdcd419ea40 GIT binary patch literal 1016 zcmX9-afsV=6n=NTYwlKWb#zi(nH35bF=&+_fknv9+^A>9WiFF4Dr8*H$|8g#LSaDy z>mTK;8eGM4l+iyjRv}{@oERaK=yF=6aN(#}F@F^8T*V2s$-Ix{mfJ3AYRMCRt^=I7_5 z(I|#t3kwU2i;KxjCPR{0mSqHilca*GD&=yyUT?PBw&(SNU_6_en8GFXeAR5m z5U`elxz%{Tm6&u>Xp}`05gix^c^Lp6K*TU59@kST1IJC8-r@O9vDnx3`^_eD-4vO~ zFv%>RrbRrb5P6-H3|eilWs9phg4q@ApqQpo*<6Me2u`933aeE3N>gmwitX!OQ1eHv z!PJd2kPskQgtP{@fly5`_1StjZI!3nQtdkPDL~+1Y zh6Qs}a>hn)(jFc3rzl3m<5V)4OJ@WkE77#d@f9&#rnRfJPOBYw{$#*_$YH7w*Tu9U z6Ag{ADuUA}b}YT`Hb#AKGP#c!fINT-U;tPE9e^PQC9dbro!!3s z1A9HPZ65!nwsE_8_rKWc#+q_;|H;ic;m%U@W2yPs*RQX<_%){L<&A@nzn)@m|!qvRmAJ>q5Tsg5dN2Ts|Uxap#XG-rhIg4IRVU MsrA*HFI~9&Kh$ou>Hq)$ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_diag_1_1.png b/resources/g2/track/alpine/flat_to_left_bank_diag_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1456e67d62e55fccc34fa8375f74b56f47efdf31 GIT binary patch literal 924 zcmX9-L5SmI82x5CGwDnnEA~(^LKccd2%1B{AVD&k8RATIGHe!dC=wxP4?W}%A%}nw zgA~awIh3`B9(u^3NW?D8AwmxkawyV6&>p%Fw1=YAT`;UU6dmC=%fkDfzyGv(;)b3@r$}qDZ>lHci8I-N9fqnM6sl$g;dB7#esEWU1C}H@aQIvgw}3 z4Tkb~qD^CSo_ecwAW)df)eNcWsD!VRBa^vyg?OOOCq_2wZL(mSCn63S1r`s!f{hI< z_Ug-VqnP7pL!&}NH$Fm13qS_YFwCge9US*bGT^vtS)O$|OUHRU8lgDGnMR9m(lWtm zq-ap8!{|O|4h1)q`coyCYf;uASezDHoI*)D+cpHFC-+9$C^DkdNwR*r8Lzf+ori`3 z%?=PYkUqwan&O0P$GnlM-pUMeKS9?r)zDeo5-CsR#=0;ymDJUj19Kg^c|6#rAzCN( z21`;Z!*+PVQWQ_uhn6+*ym&N9qiD5Qq%(yO0ab-?*Rzh#x4mQ>__ZP)v zbF`RCV&qR0?Yu`7@!iefNT?m0m_y#2?hgw9wHGk8IS_VXd;h6fsCRq zn)gr^z|-JakOWX=tgAO2i|YI0IMAn4H%-IMCPk$e-T}t0@qSYd2rVLwjPvt$SXk5T zV15&=&@v|*z!I29*V{bNRT#S?`A#?JJJYbACgCPaP_beq2}OW1K&Z^3SK2)T?%Kok znjH?F!JN;9c3bIob=x)=+GXhh&x8UKOY}mfHfjrL1ae3;WKhJTR4U8QzFvFs^ann@ zeW}37?+-sI$;J8UJ9l2Xf6ssG`5#WIm4A?X{Qc4Ljf?wtUwiPvo7G=lq~VWS&Y!ick-PH9z3X2r7Cz(Kok`;XwaY}y5JsaPe&Bcpn?j5c+enaus|?ENzUxO4I8`J?*YtLLcMsQ2l&zkLtTfUD0QKdkA&!NK9-VWZJFIyyQ&K0Y}) z!7!}ZY@VK;;@xhSWf@Tv6h$%&&9*Ji^MYV9n1k#!iqU!#i8QA2Ela{(mGlj2VzW1%m<8%$W|i~dwv6^w-XlP#VIY97U{edr zM(x$Kvs(~o%b=Z(ZheIEE`SW6W0=)$y9D7=RK)W)vOMqiSFZbdGC^5Ju$``eGcw8R zRL`PSmoq?Ot1=dw6>$l&(V!ccMOgg^yrbwPYp4(mBKStfxU^nDhu{Sj5c|@ z!%?)#a(zJ@D9Xq%!ogrR8fBA7ktFNovZ^WsgauT9vD3Dg63T+^uf^d;i?)Nb@|U~W z_I9;LExO(2aJ)x$6`C=4-j?K{UW+-i(ReH8^8yM0pLLQTN6lAVV%C@yJj?Y(|BCu@wUv-Zp}#&N&uCBP@ToFwtEM{bHdGr z3xjvC7Yk9-6w@>u$6^_eV*-JVMK+U|rA%+tF49TlQYd6mBA`O5%g=q>`tR)zTtB*0 z;NHs@Pii7uoZo-^-gnP`=g;7iX5*@I_4r3gc=76^>wm%r&AWeK;fEbKx&GkgUqAf$ r?>Dr%xbOY+`QOjYFMj#;YvL=oOFT*bf5mgP6kI&KJpcK@mrvgSjuU}= literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_diag_2.png b/resources/g2/track/alpine/flat_to_left_bank_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbfdd72ee860976df4cd1fc5bc3343d52b289ec GIT binary patch literal 8853 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_diag_3.png b/resources/g2/track/alpine/flat_to_left_bank_diag_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d8212f500585eaa4007be6933fdce83859c8fbfa GIT binary patch literal 969 zcmX9-QHa}g82|3tyYyB@m=!7p3|k)}M2RD4z&vC#H?lMHa$W`S5E=J>8;C~yUDzeR3?*3`r)IEKLJv(bLHx#gs!Zttgf!6QmJ%0y|%Wt zzP^rOSSFL%*x1My3I&#BL{U&xS=URZY1C@9R;$zN`C&MUWvGR$J-zw0>X?qsC>2T(K8xMuJd_B~Xs8O{ zs94v)f(AbB<`zQ&%^0-M(20XkSO8D}Gz>Fv+$IQzqFkOoQj|ftJhtuQP6q`6!R87= zo>53%qa=ea+N|#IW?QUza-dHr*kq%dB3bIq3G{Fj`Cm&}7V1aa$vu3f;B@ zudepn<$-69gZ6A3E*8f~04M^O01ki$FaVfhfD$MovP|T;C>|>m7%Vge@Fj>9Kq??3 zj~Xm;735dYu#RFEo(Io?EJ9JiDtg|o(oIL|x_ZA~iz06}i%_CPl!3Lff|FNVQu8Sz z=AC)TTU7hY*6_ripz)l_0Y_pIgO>!dqOw+5cI=AVwEJE&3cXnzqQ!)hW#j{j0ih&| zdLs7%M9peXr(C=B0_JcimP%@+qFa{1GBu8A39Kiwfy|5)dR8nTjYKwu+AQ(~6v@f) zb8lv!J^z8*yW1*Uc>2p;LaJMv7q7m4XaCN{m&CIf@gX`OGXH(B|HHY%lXu>~eR=2O z<+bnr`s&BC=-)S9zW&y&&(2?e?abr5M>qZ+-L3D5!%x}oUwQZb7xxa<)3*+u$xptu ze*W-yXHTSmdi?O5>NLA&qMQ4_fAi?KdxtB7U!^PQPp0?(c<}U}?Az(jZ=T;(mWc(} Ny0pFd;JuH&{2y=opNjwh literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_left_bank_diag_4.png b/resources/g2/track/alpine/flat_to_left_bank_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7006a75c6d7ffc1c970dc570e26e8ff4736d7c GIT binary patch literal 9352 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 kE5c$qM%IS63_Rlg2Yv>usQ>@~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_1.png b/resources/g2/track/alpine/flat_to_right_bank_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba69cd1074d82d34f77c77a71808afea82bbe84e GIT binary patch literal 1016 zcmX9-VTjvw6n}TUyWH&@1v}_whCL}5B}ipKg9gm)a$7CAU2e-kh0f(5%nC&Ui(Ga6 z5Vb;?W#purMa!r&Vn1Zq4~GOSBS^-&Q8lv4x{+}O3+C`X6e-dVr~J(r{N8)~zP#TL ze(zmcTTLE3@XP@KIGB2K`AjgM59-itDCqZ3+phzJU~OgnL_jAdCMG8*L!r>r)YSC! z^vui*hGDa_vvYHE(Re&gQ3;M?MUj`~jH)WdVzFASH=CB@bUkl48c_*g84&pSOeT`c z#qxzjsmxSsLZd0QY_;Q-`vZd`u{1NU@KG%t(`BNrQrkt&uBJOp#cP**&lnG#Bn}b@ zc@}gLYbcmq4)+?7Q3pqU0*xfJuOsBd0R#XE!<2AX!*QJ;42IbjgmyOD)3m*M9oaTc zMdEBUA;cJoNGfDnqhy^?Yh2OfD=pFJNS2q4(Rd;mXGD^h>5RfDC81Q8>Xu@;n&VYm zztJDtVHP4HM6(bp0HI@aJ(_G18Jktybh)n@L)}5!0vVBMJf9@XX{I4_Emd@ja<8fm z%;M0lj$IQCoN$CD$TUS~SuQV%Wm&G}^UZSEuGd}5>UX=t;Sd3?08z!LMwn~iVu#H3 zxzZqG`1#gQ?~a=Oes7HC$#9sCMw79)NG4>4QF);x1TF9O{&iXTam&Y2Z0X3s_E$YI(AvCmV*`Y874A^nDivT6h+y!aS=- z1tTU|gyJ#!Fk_DLt#P%pZ}m}cNJM~+VaY@|!^UzVRmk$XmNP0^%dEJL>3a?u^=Y0* z79bB03bH5#a!-I43$?+3u2r8v?R23~2}ZpLQ0W3N0dZ^YZz-Z~VTs zA}oHD+dQ1w*!*|v!_QqS!eQ|bjm$(u-a_H^# zA5Q+)d67O@zjF1#!rHr^Ub_EKyF(m1YhFBZ{pEYi=6ko(7ruV>uaAB__wy@$s`eUw zo&Mmr3m>0W7PdD0oo|kg|G0MJRqB`BpMEVE-Q3}dxc%s#huf<=U!L39jruqD?w-1M R`&Qr>QYTiIzhBz;)7K{72{)Xc?^KZ4|sICHmpWL}PCQlz-35$otMo)P;; zk$^od(vx^Aqex*za@ap2c6w-p9xEfTqE#XuQYB&?l~tTlM#0J*<7dX;d++i6^S%$h z_ugMwPR{K+v=0F0mY!ZX6U?JQ9Snzp{=nRY8bAnEPM=*2=)}atbEF2C;B9V9^kzg2F5O`S@RW+^aTA@&=RBDZe+;>30hGq)|8r~IiBJAWp7aL zjayM3Vlu=tK;(fmF}4;@Hpp~~*Su7zr&~kQMOzXTQ&~Khq)I8St_n?E_6lmZqWA5> zuvHm*HtM_47)w$qhRyIoPL@lmTFvDerBbU_^BkwQvojnH5#Sn-6^yAzg(fa{s7y~N z_S4oN*BqKVqsCybJ4UlqG|I-~Ng^Rrw90Y1C>51pS-w#!x9bhx^+r7&6cN+qsG$&M zma67?yC^rSnYL|oTh&3=9gS`w9v}sv1DF6dKpUWs0SX`qD6b>iLVi~wL1UoIgOdbb z0we>{;;6(ROF~W-b&ANh;BN3NhytV}EUU(i991@xbxUnF3!Y~W1|ABu@C-2dS>B9G z7NIz#=5yvSZI5!zaiz28^iX$5#(*WTBpprjL{?_<8PPPdR@rFUWzV$-zKcdZRuqu~ z$OnXiEQ*2LJ>Z3Wwclr}m3z=T9U+~TvspEt*BH9M(iNVu1*Rp^I}$ZWC6GcOgG5yZ zIXv>j;P~0cW^dp9fj7@A%kbpQpI-@xy|i%h?86)HUOaJe>O?qn2aOL!R=$w_kku-;{lFesgo;PZtb7zw{z{48*l7CzJ2-F)!+5~2a0#TEAC>y XM*a@fo;ZpE+px5_yztpmFTC?VOK7+2 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_3_1.png b/resources/g2/track/alpine/flat_to_right_bank_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0e33d8a9be5a95d49f50f78ead3d5bc0ce8b4881 GIT binary patch literal 960 zcmXAoL5SmY6vp37XC|E~W6=tQi4df+83;>ObI2i!+1<=ihsb1iGSEYJi4d@dqB%tA zLRljAP@JGq3Y$X@RkK=`h{YW=ivc49>_QI#d+12O9tzvTDn+8(!+?LYEPU@hzRUX^ zzV|-5c2M5l+Svkt?fp0Q4%2xqtrxPHv_tj=36OznZysGu-O9?!>gsAHlUZ9^TVG$_ z*x0}@ESt@4Zf+J!r4qx?g22nNsH#<6*IKQXZTAKPFAT?Vyhsv;2A%^+%vGy}dYx!A z>9)z)U8z4%{6HT?=5*!=6jtGKnpiX{gr$-_ojGX(Uc)VCF5a1e+HpcYxf{)81sx}qcv#K+1 z_zP>C4CZH(CCX9xJXNa_| zE&JWt&^0DOcRmS|gb<0cIGWRFZ(2I&vKpPb3mF20A==Wr!s}G9ayp zOa?g;^6F^RMzI4=gJ(e$pdw*)wP-Y`j#chEs_(a=$eqt4l(O&|FwGoq6(xsIJW`7} zYf*KRhQG8&XWkS|7Gwcf0xQ$`Do@m9rdbm$qwaJJ-|a-9JC8$@Oj%Jx9-tTyO0#IE zxM#v!&F*Z*cI{`xfS zKKJ+2A9(NZK!!_?PTx+=yZd{Wk9I%%__tS|`{hDbxIRTcZ=c>hy!_YBZi0VHfAHUn znOo1_+x-61l}~)(%a@M+yuJ72RoOIk+qQ z9=@Kn$`yfj3@QzD<0F)I02BZN!z>(k3BsqSkms)yW!dYkUHAEPijst2TOFazC?s!C zl0|DSYx=xB5r>gHUZ~;9i1QxF5scK~Ra!PV-4d;lGMXCG*oreZ&Bxhpw%I4R04){T zJs=&Re2km6r8%W1f|Y6B#tsWVMOO;lGC5)((VoW7OmShW+0a}E_BI+8NwCi%v`z6A zN6{L~^#pOCs-9_127|fhCDUmZ$D8Zxq9_m$7El4k&Tw%-s4Kd+5l34++zl3me_hUZ zH|srW(m2kw+Y;GPX~yJvTUJI!CFab%@p3lL)2!SGV91!Q;;upZeR|>u(MVlPddtXN zCzIVeEz9Rf0MGzz03RR%SORP@Kot}bIW~$yl&=*EEEdKB#1iBRAQh0+Mjneo1;u@| z8lgOd7r}ENi=Zi3-)y@BdhAQH&|EBrSr+Yf8LGU991Iaut2 z)lIxX>w;jK$VS*IuaZa*Bmi)fss(JoI>x#46P#ei}^sLEng*}ViYbSB#^ zHwj+CUadr3SNna_aV(Y@a!eqwk;o=8bFI)jt%D2_xfGhPC>BsASLNs4ZvOY;2flc4 zuEOcxe|%aI;jH`q!#6L#x%~N6IBop;r+e|`+eJ$M1;k{84!4orFBg!)@o$E z!L-`E+m-tRJ&deT(wxcwA)dymjuD&;9xeJAs|ekT#W7GVn`?>x;hbCQ_aij z;mkRh53;lIDO#s-oGXiT?luI! zrG(w;(6`4?Hyg+E`7sgzQ~(RW0q_Ba08NeJv?ct@4@ZYbdujag>wmAv}zn$Oj{qyIA$4@SpHwquCE$6+3*EYY+J;3(m MovrU)dh3(_0lL4WNB{r; literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_4_2.png b/resources/g2/track/alpine/flat_to_right_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bb976214d49d746a647ad787844e972570d73ea8 GIT binary patch literal 897 zcmX9-L5SmI6n-^iZ(ifuNO{b-(!e&RYNtxcAFO z;aHu{%rtWrg}>fJ5`*bN%T@?irvi(fINY@-Wud;9+2wq=Eu(#v%Osc#^hF3XY-(ef zkFTcf-GW407VS)Q6Cjj#08{`I!)zRPNiv}6ND!`7b>8i+T=&^zg0hU{+8vQ#RZ1{v z*=BT?vjV{xOJ1yuQY~7TN!g`%l9fAx#wZqV*pfX|hZA#>*h%5$<*3+B*ZT|?p{)VY z1!@3vfbkPTp3z1o+J)|~ou~?ObgeRNizoXs^}yV>?; zwMQ)m$9aN~sgB05mLNEaIyCELgPA{?PiJLb?A9Wf3g&3IYf?dv84tvGsHNlXJa$*v zc)QAXyJtuQ&;cBP03ZgK18gurHB<==927^WT&XnJ9E?OrWGGcY8X%iMK8GR|B|Wql zqB4T#!SkRkahbv{Rc5PqkVzqzMq>^oA}W;n`1w1nzn}lWXZNo( zc>9mvKduFPdH&9W<~NVNdVB_NzV!58wEp7BuRlKd{I^b`Xh3~z`cX{6j z-+QxJ3{SMY$YzEJ-J|+Ssxl_j+hJB$#}W zFO(#bQ>lthS1m?!IHN1rp4bj#H&XqiMzTbyQsiV>)L2Cq^rqD8sXbr!V=GMB@vJ{t z4sjmxG8Ae+nm{=i+bdKClrrS?xZ0W+?%WB{u|(%JmS|MyR+Z~(LSV?Tt&Kaz)U)Tq z&NBAUG{o~PMOPWN#tRKuZfRP#(HOK^!(K1;{mE!FpU)8xI#3;q>El8`$Prze2+gVD z&Kkko87&60v+)vb(m2i*3Kg;_(4Jx94;1*5f4xWFaR6?58wn~iUCR?3CJ{%=b~gRQJ^!>=E1K(A_0;C z=>^nckSig-j-nZ^YHj7cJMbv;XH+iQZxuoh- zdcrw##alFjWhXlGCulsU^1zZ6Gnup2LVDK~dy-T{BIcDcNkP!!w@148_t&qG#12Qb}Y{sLLRqN3ob5 zKl{q&KhJ*P)BRl;w*EYQFC|~>lrLSqc=xkAmsSriWY?Y|Qz-}KuUD=ad*y@b?Hljs z{>t5b?Y{HJ*~5$MwHH2Kx&C19n_FLAdH3N*KYZ|gGBqP4?|&|CzuL|C7k)bZ*7*4lfAZbYlhv2eSMOMN{@YGX Oz|Q5}^1U|>ZvGFL&7kH0 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_diag_2.png b/resources/g2/track/alpine/flat_to_right_bank_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd65b178164c7c0b7719ec7a3143489e4af0eaf GIT binary patch literal 8806 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 F{s;N$z%T#+ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_diag_3_1.png b/resources/g2/track/alpine/flat_to_right_bank_diag_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..752271bd300cf34de40e70aad1e570932e98f064 GIT binary patch literal 919 zcmX9-L5SmI82x72nRKQs1uIlGVAKj>36evQpgCkUGsGb>88-tt^pM5CR_GzHS?M8S z(5zGmnnQJS=%HW^1tVMBL35}OFoz-qgU+F14m}j?VGluqlw}V8W?6XO_wg?89p3xC zIy)7w9bP{KfNLl39o;JL&2p->O1Td{{rv$z13nqwS$9$R=eG17+Mf`MUiy9W15EJIKDrgPNO8b%(A>F7#esEWU1ciGgcI5MKtPO@RTnXI;PgNLR9 ztu7E2kRHa4TjG@L#JrKJ?#c{uFF_YF)zn$MFH)|`O>|*qDygF{eRCZ;dF*e~5UrC& zlO-vYVY|H0R}@#*NB#cPb>s0kjiS}%WuE5JI0VX_lnLiU&=?Or>FKgx8}+79S3j*{C}Y z?PWaLER&*mjCcSQzy$CBLV!8I8Us{97LaA4FhJQ-Cc$7}$U`JTCIeCc87<^8D3DRq zLyG~*0(cfY3z7h;jP>-E-KU10I0^LG%t_O5vq@3ug?E9m>b%#I144^PBjdch6Bhm1 z)?ZvjE40kXCa?r1(v1#J^c2SGN}k;dhW0ERrb)QT5>%{MNkS2z3=k@_7?gI;fjib{ zy=F)LbC`>T(CH|>o^DwNLpv<(^Gql(u|!|W)JAP1jX*YuMhuF0luBj!**EI{J^O)s zw@wwf`S0I%N^*R1^v?N9-+lefTQ9&XwaOFZyn1%ygKvMjOFg{*eSCd+GmAZmWNA)<1`j2>X71%gjWCn literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_diag_3_2.png b/resources/g2/track/alpine/flat_to_right_bank_diag_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..78e40a637c7dc79d6b7d104d9eb95c8962d4d7c7 GIT binary patch literal 913 zcmX9-F^Jn{82#?-JDuZPMR38PqG)hI1yM9;P(XvO)g9`ga0*eV1`R3|jRy}JRPdk@ zwe?_HQ$*{w8a%k5!GlUQ+@L{&3K~o?MS}+iGvuf%mwQ4t>{r(d`4IVvwa#7KPgM-7v!&MqG4Bj$ot?uhO!~>6T~>mEqKw##WrWSuxJHv-Lj31!$?z z?gHrm0r^lW&3(O=LTo=fm$~s-yb9=$qO~P@Wh1()S<(iXa6ay*%p(=}EW%nAyz?p0| z+{Awkd$AC8UG4Qu$FW#uz%jnSh9aBF%u=DZS_c^dXJ@}D_iv7{)cx{7{qD^hnDFzPho7T=Pv3oc v`p(PK%eTM(RQT>&^vxgtMb9tpJ%qnMc^dyo|MF2K1(z3B=f8gN@mK!?Rlb1U literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/flat_to_right_bank_diag_4.png b/resources/g2/track/alpine/flat_to_right_bank_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..28a22340dc071340292776834e5f27f0ccdcaeda GIT binary patch literal 9274 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 O0x;4u)2-2Qx%5A*3$8Q( literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_1.png b/resources/g2/track/alpine/gentle_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b1fe6aa63dd89681c5d7f18ecbdb4e92bcf1f64c GIT binary patch literal 957 zcmXAoL5SmY6vp37JCm6$YsDS{MvPi9u0ewYjSw)7nWYYq$vPPiI29x2FuR1I3=wjeLk~HWr3*O}EpEX*lqF&hv&-Ks3*UQ>@A7_! z@4XvWb}JVzym$csF7AA?y_d~5vMO)nvL3&4odL+fl~4CCXLe;}Wp#Bmm&@hz`L(sR z_4RcO!!|ZHHa9o%a=Fa1j3^3rIt-0bY)@ydNMlvLpi8(}B^{0G8|<+qhTZDO*ORmMJaLzcs6v2BLsI}p z!3H`O+QrGBl#U2AXHcr5a|fZQ3?Kuj7^WACCP6q95|3~%?fQ-`GF=54JEd;N!OTp)*|dK zV-L-uVu_>ZD$CUcv8gDwruCXl-?qbkKMsQFc)VCF5D+?0U5p(R#UY`L==xM_&uZ?x zIb1m7)SsVEmZ(4%iyV$u$g)B+8qXV&+*Y$?E#K~(4g4gE)2RTegc(ZFR7s~n_gaG2 zR))R$nP*PI-h2|J=|dy{Q~?YC2fzb31DIieGRY!p8OU={GLb3JS?CB5R3MQ7DS&hw z*(`Ep6g1GNjS?502G4;cLRH2Z8g4e}j#C-9+Hh#au{WQ`C}RVL zXHoOg=5W~^od;7iSx_b5NUXvXYXaF&*j8O~%!b=Bhh8U+ym=C#bjnE*3IHX5P?kkI z!#xvWwR*D|*Xur$F&c@rn$l=!t(ML*7RPi2))U!KV#YE(ua=QYB9lTr76k%|rR?~* zw+oM+{=oNpy9#{t;Qm*cY3yuo?SF9Vw6pabyt}db1X(}-^=0qBgKxe)O!L>bj*tIX zy}$q3>o?#3?Uf%tyi|X=1U6w{(5?t|0frZUj6Cd^Ml(N7IrT0ZvX!A7uWs=)q9*a literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_2.png b/resources/g2/track/alpine/gentle_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b8de7ea646f19163983683266994457a28934934 GIT binary patch literal 916 zcmX9-L5SmI82x5CGwDoOgH(-d4nYd$5G98!LZ6$e}{ixD>1!v0}j<77R;p3p>hhmWB6yAMf(s;l1y( zTNm<`ldC5HaOM1sv)ko;xg4xoDYsTnaexZkdh5>3lJ4#8?eFhbDwTtSgTuqaqoX4X z!>ZNl@$oUyXf!yEl_XKq6vJp)mf7$3U3W5@1#!I0vb-ob7DNG5rPgZII~}UqV+TXQ z9jnus9!6G@4%Zt`Vz8!AGZn&aQjS4SEN_FL9B=E>&jRY#^ONHjTy{3PhADW%>D6YY(6N!27o^ zG`RlP&+nDw#`)Rlofp6O^t;n%KE7U+?*ERydEsRK;~%e_)jtd;*A74b{_ki1l^?Mm z*uQ-A)jRWdU%&tMbH9E0&*`5p{q*M7zdn5a>f?j|ez^Bqa_!qv4B-6c#o4_ZcR%?b Di-U(I literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_3.png b/resources/g2/track/alpine/gentle_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3673f4155a3b3567bb969a7c35e824277c93ae09 GIT binary patch literal 915 zcmX9-L5SmI82x5CGwDoOa;R*?9I{w2hafrRkV6jHF*C#=GFc}J5qgLcwTB=%MCc(% zz#w($Az;yfMT+K7B(ObY>5P`Qi4It zHlur-83@i$@?&L?YSGL{$_~YotlSbbMlt!eE!jP_H!?!t zpj@B>j2{v5gl=b|UFiL#6K#SVU8_vfu$OU=G)2o zZm~lR2FH1Vkg1l&u%;k5irO!3J7T@VkQDUK4 z50w$T44wx?0$s%{lkmFCAdttAnWlbG#Orl|Dlf7FoZAosLX9XRq3u!#Htl%ZO?Tn! zE?J_*hHe5+VKR%iMat4Rx1$7}6%D*J9u#@JE_1Y9@`{2IKqVklWznnbUV-%8;cCSX z!&h)-GpXIyEX#CVn`3>R4Mi@NxJ+T^DznyG$e@r%qalY95fw^Re*W#oKQDja^Q%h@ z9{&CNrxiK9I6Hm(`nO*_S5DwT{rtBC{r6pV@$o0Geevtr)34##kMCPIzdXD9;pf}d w^P2}RR{A%8Jo)#{@BeCD{b_!7bNZ7-d=O8hQ||spl^9%{U!FaE=ff}m2O_|RPXGV_ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_4.png b/resources/g2/track/alpine/gentle_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd770a0bffd7c7924b97043a4393f682ee3c805 GIT binary patch literal 973 zcmX9-L5SmI6n-ag{TE11kFeeQF4fyS+YZx$ue0e(nG|6J!IJ^5eh~L zTBWW_FX(%OF823_8khmWA)V$9H+(2j6>F zF6@Y>Pu+J408Ve8+uF_N!+BMUg}ld)y-foY;KKQfXLGu=w6wguTqqP)R#sM5SJ&3o zFbpdei|gy_c(qz(7+Mf`MUgbEZkk4`)pFhba2Q0t$Uhnik#e zaBfc?4AoI+PU6mN?gk$scdYYCxSn+%O)+)fkkIE%yzs1!7La1?A{ zU}2{;9h4W73QB3TP|=BlP*eqw0aOe#N+r8eaY)kRxII}OHyTshKI->T7*?2amB(qB z;8apHsG7}a4rlg+mM?WjiZ@Y%q(QJ1TC8#kC24Hk5RA6m?yLR42x2=*x^X&~9fu_z z$_n5OAS@sqjP2v%kgSKi5!X61)61L)?a5SGV=GOO>eRS_CX7raZfR53ocpaTbdO^n z&7)G8C8-+2Hh7__C>>4fHJiguC+zp*AebE-WLbuwVgTu4%%CKUD$0av%!Ky5?xoF9 z<{T`B>B;mMZBV5Wi{m0uRVZ5HI8&0_YQD@GcDm!iFp1*Dj0aW1Or>P2grieEi}%~g zsMi?#_B8CJ(`d0cLOehXzyxpre1I{)90Qa?7La8k-$Th%Cc$8!%R?YSA_GzY893@N z$dgf^qe&Yj9^4L|1xbLKjOiL~H>s{84m@o%YQ?dirZLL3Dh*()4c@_Jk5B{BNH`~} z`-|r2*qxjNGc?V}GOz?D(xp02=n7*sB*)ghu08U*apb2-gcdVal28CB0fh1_+PT~v zR9aSVK4*LG9hj4eP_HYxu347B&@GmBdBzu*P@)fHDy>zKN+6p=Jq86lilzMc*+)12 zy!`_&@9rq@)Xi%z{Ke77pX~=<{q)~E>FV+a4_?||JDlV; OVEgRO)~C-r_s0KwZKx*z literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_1.png b/resources/g2/track/alpine/gentle_diag_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a63480e93015f6a851180f169b644cca183eebbc GIT binary patch literal 991 zcmX9-Z;0D;7=G_>?sgoNm62mXGUy;e)P9IAgCN<=&3HyG<1#F+LL7nhLzSFFEF-eW z3RVeckizmILgB)!5Lv+kGw6qMi*iCagBIyr#C|BOAC6I^LK%nr%osfH`|^Bwp9h}z z{qpjrxO(FB2>@8#cyoO#ofpzNwKSLZ{eRcK1DJ!$Z(q5T(wUi=+1c5-xw-lI`Gtjr z#l=Mo!X%$Cb! z#mv`i&h_MGOKo?IZfp;RzCdFIZbg@Ht3Wy$)i9X7s?c!@-Iksl)JBOv9Y-PoDh(AL z90hCYSjW!vo7qX1K%+dGsOZ>1D9QoI04j#*nT$mc4n_GKw4L>*4rh2mHIV9U#qX+NQX*L*FXlLfmNd4g3wlkiHPl9^hp`nU^?1}A zOgkAKvI^iOAWfhgjBVgziz;?_JucV-!yh{l+LP(5#u62gwhLTS6WWFnSGB%t41?;p z<4)rM4Wmq!rRV~~mUy9}D7L0~l}gLDJB>yhhJ#*jJRTz;bf8>}X=a2rp>*leK&TCi z{;1L(JH1J3bljh!6*`k)aa<&G3Z2(D&XDAqnl3Y2cKx8)N}_l&;6arzL&;bw>6B^D zuZ2DTeU5(>lG>TEGMU;RsS9k}PeNqi6 zJ>i^jF_=`^Q@48@4p4tgWq~CzF`p^&WLaU%lH^!rzizdIdK?9#Btnw`D@iB>lmJ3$ z7PVCF8HlRs4Tr4fK7-Ni3dN#QE^DT#Gx;i;cX=idn2wb1$@Hj@Ln?_Z3V93)c@#_O z@v|?j{PXk&KHl0?;KHK^*Hf~yv3~K&`JFrUizk0Nvo!w%nXAlM_uh5?&#S@g`ROO8 z-&()D``)d?FBaC$Y-K*ZcGCOcH|*tmzrS$m^T+0MkDBk=KkUEr{O)$|*ZU8z8P4DM zxBTJu&dvREf82a^?eMmDWA|~*{c(qX@I<-FlpcO%938&+(T86bxdry;zwW=W_`Uee j-5alno5tBY|NXM8o_lTcv$nmR8iS2Xo9lO9fB)A1^Wdqm literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_2.png b/resources/g2/track/alpine/gentle_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c045a5399cb0f350ba8644f10459e59bdb224b87 GIT binary patch literal 929 zcmX9-L5SmI82x5C({#4G2JInY4gq_}AxL(~LJm2^-ONzO$YkBD_RvFw;8qDsga}n4 zM2%Q9U~r3crC<+13I?n&hv*iG5TS=6ISg1Kha3u9bPq*x=*k>^Gb}v5?|YZ`4)1+m z+&XDpx%9#%0Jw7e%Hi#DU);~tD&>6R-S|U*3fy|_&QVEsc6N4mcPo|3-rnB+{(iMu z#W1W^s~sF15Y1+j<5)=&RaMsYj%Asy>kfzG=`>1`vn<;b1;>IYfFjpBorYmhJ)7-& z!f>QarrIpF7O9u70*S%eLfw=Jr%m}fJ+`=0SBi)2#njB^{dE>>H%W^Gje(vBzKTsu zEcWo_q){wLv}RGEp>rRhqzRw^Xc%VVxI>aYO$UN-swnercj-8f$72-7B-dz)1glVj zMz>6+?Qps;SR=^|<-tr17Fv{bDV}6oO+jU3o$r{E*;o2wZ5)|V>Ll49T~G3DjEm4v zf#?Ed1MOq{m}pJuPAr;f+smzB<0t4;VH!G5_F9bB7ACqhv((hpmqTk6x|?{oO+&Ow z@CHvaZI17XQcqPqT_5#&Q_qXX<1~u$v$M@+gMc)F9%9@Cmu958V7j@~Uv+|YZ?^Hz zis|}%xkYsb$9aNiQB9R$bwRLXrLUD@_S759C(|rRi(CXv#w-uI6Y?IwpF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_3.png b/resources/g2/track/alpine/gentle_diag_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e5a44a068c8c86f940390c8e4b35c0fd19af63 GIT binary patch literal 982 zcmX9-QHa}g82|3tyIfbdg2lxx5Ao~IM~|F50su$1FK%6m=h?WP+DOFxr-x7907$^j%e&`ey0Wsey1JT3B$CPG+S=Os z`Z|VT8yg#`R0_}KatxCf1YVX!RW0kfRj9DoF%V3?N4m;_-{l*4iRk~FAP#-@3{(?PyZFxecB z=OvO;sDeh9Oh&aiy)D#TvDufMq2fgqk|pwm94FJF%9b@jYenpfS+o!7D%{0g?e} zIIp9)|907NS^-r~qT6c^j7;Qt>D) z;_P|ZUDW!^*6`4qpz)l_0!w0re5TBkRhcm=qHR{4rrCF!Vc^c904*l0C?XF~1PH}h zG-A2OAnHbYI%V6f$IypEpy-P(I&fdHIW=yVZZ=KscbM4EKc>MA+8*4jD|Ih!PPuZWoT7={8gwrox z`Qi5quN_>udHad2?@~9;rT+PGxV3xc;MmP#^1}Ft$=FYT>< dcKU8|^!W?7cJKXqE%pQ3=Zjn4y!ggP{{wS~qVE6z literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_4.png b/resources/g2/track/alpine/gentle_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..33e40aaa6af3e8a084d9170748c9d38e7a3cb3c6 GIT binary patch literal 965 zcmX9-Pl)4m6n?XvnarPE0~U-}BtnHK!3|6fIph#Evv!9JlXWssBw&Q7UC1H28K|?x zi5R3VVTo=J1$*crN?8LI86;>A6~kJjO2k>HYlI#OM%aNMJ&Z8I&kPG6@4fHxz7M|l zZe81{Tv~f-4FE1}UESQx`}w@FQpoG>z3*gz0$khPyOPs|g@p?jE))ud#l^*?rKRQN zWemesR#sM5SBY}D%(9Fq3W_4>x@uXb<2dbhx8Dz==r~ET`J81y;6awwRkdgsWWB*O zUB2Csdwp#%w8pVJo%te-Rrz&OBJ3*Z=~UNZj~sE>u8#X=GHRxYf0{*=5@YCtxC@-VJTRQi-U6wJ8lPAxz4B6K9vMV%|vE3{kXd%8HVl-SWHZEF@d*|2>Y z2WS@IMUJAYELRi6x}vzc-l^C7t~=~@<1m~aA7@#HpkxBo#@HS%4ob?Hu1&?}O!d?H zAoGsr{q$^diq>fy=Ln)gmKB=OdES!brj{>j^xf8|*H5B&J{3TdFiXL0jr0t<(-4BD zGU(Jsfjt>^(n&O*KSTmR6~F@U00Mv!zzhSFLl#lPLV=HxiA;gXLQ8Lx^egUHFuAA<+qzBm))CclzuNqH@5eGFg|{d zOm6-8)5+SiKW;34{owGIKMu7|o;)b*C->hy`R|D@53{F#egDDzMK%uyVC%}x=2tJj G@!|ih(Vk!c literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_lift_1.png b/resources/g2/track/alpine/gentle_diag_lift_1.png new file mode 100644 index 0000000000000000000000000000000000000000..09764ec53ffb3a9a16dd7dad11e94efd0beb8ea0 GIT binary patch literal 968 zcmX9-Pl)4m6n^tJGh4?Vsv9v35qpSkkbr^BN)DMdGj_)~lVvkdp@-}e-GUVYX0b?x zh&>dk5}2Z8Em9$1#fXKSLk>a08g$t0A%`k;$)ShB=CEMU$aG~Eer8$t-g|tP_kHla z_u1wB(#DzR&j7&2?xpQ3+1$$N*|nvt-~RWx?*W$J@>>Tx8C_UdSX^9OT3T9OUS3&Q zSzTSlFl=pYZGC+mFBXd|%ZQ?&D3YdC3`1`=o84}IICO(x97Rc*vJ413$WpFSDb#9Y zy}`8Fe77eLhN|Zqqp&@l*&>aV`J67{W|_1!s&BAIP0{a`M?*b2ZpD#3Pl6HwDh+i3 zECn0rnBUG%28DD)pqN3aicT$rf+BznpkkPw&zl5cQIyT|N3wietxinyLBEfDpI{3` z0cT{ASE-UtmrYi)c%vsa9jW6f_DFT3D#;N{smLp|q;VBp)LU|^ul8Nt4b33xgz;cH z_wxc26u_%MHh{7)u8)_7RK*wcu-u*+c47tSNTv%KN7PGnyUY(X(KD2=sZF}Z%xNZm zcOE)u7UT;YMVDEwDu{JOX=_@qULUsGe!m~O?sPm(k^}*v1J%XYL0hBw@q6(kNYe*M04M_(02Y7)a11cR0A-Lx)G&}^qi7;iptH~sz%4-}15yC# zIBK)VmXTXSqZW#6cpN+jk_crPt7*7dr#n_@U~8V&3_~Z5LzHO|RbU%A!NO&mR9#As zcq^$mY2BN5N2l%-O%kdA9Ep{fd_^E@3frhkmRYkqrss6Rz=@*(rBhClkP9dRgt9DJ zncNc)%|>rF<9gjEFh(P>Qc-F(tX$3Jl6%Dw_y_y4?}kq>vbFCJX@;@6J!^d~Powe7u;m|K5c6@GlQb9-6)=Ie(i z*3HAOURthQI$v17lY8w&>*bBl@0|PS%Rk<{cqrd{=a={F5BAQ_0{q%o&o1jnt literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_lift_2.png b/resources/g2/track/alpine/gentle_diag_lift_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b5dbb002724fbe3e82c9a803b911a13a7ba1a8ce GIT binary patch literal 9252 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_lift_3.png b/resources/g2/track/alpine/gentle_diag_lift_3.png new file mode 100644 index 0000000000000000000000000000000000000000..303419389a7bd6b987a6adcf0a8cf74ed769534a GIT binary patch literal 949 zcmXAoL5SmY6vp37XC|E)hPc~VA{!)!A_0RNAz+k%StlJjLzc<9S?HmMs1bYUA%}<+ zB4*YMl%+_(3O)2tB!>zCdl(^y9)d(HQkJMA)-_7eF6OX@uymn^IsDDC@V)o=F7J2v z-n)PMq`J3reFp&cj*lvL@_93_YsEs|zkmATHvk2=ee3RFZr9e<*4Nhyg~GaEQkUq@@~CeYBs5s z#kM;_udfV8+Bh_)ac92pBnGPqyM|2IHOkfLfytdaQrN3aM@BMfr-`@9qACd*11%9; z6&o5@*uiJR(sD|oltoJoUAhQGWdH?0!!QHKZIX0p+7pCxMVT}jGuwVV7@#mDxl&mq zScMWax@s^ro6}vv>`RU>cgLzX)q-|=1)aitSK^z40i;FDF5ReAYJ&YUT(wJ1IOk*y!7j-Xf zjWhRRIZ7{QE40htI8P8&s;n}sE(oTqw6%PhHR^OH!%-5&%ee@ejF~EKYn0n$`j+Uo z)p5Tu@$FgIPiN6``51`+H2@R91@HkT01FIIE=59?iF^+wGld3&gRTfc6%qxI3dkT( zheMu%f+m`_QR2a~;CYZGs3}-eC+rr}b*n>9ACH|l_R};*Ig4xnXYGnEp?H)Q&_*J- zS>0c@#;e}+GMJ-TMwfu6uqun!MXITCRzr5}rq{K{em9Q%G>Oo1&dV|i040D>o<%#y zJs0U%{l$Xs_nym~PNjNXZ8mkwGC0=Z*`CPx5*Nzsg~Ft@GSVny)2Pp(Kt!>eA3y)< z?vrOf@X?(U6>k3b$A`Jmk1KEAedCJ>U`!ml>_I|mFZ+zUG=Qub%JgIzp@b2gT1HV*}OaK4? literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_diag_lift_4.png b/resources/g2/track/alpine/gentle_diag_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a9af3e108e6897bf73a87dea3155ca934287620e GIT binary patch literal 8242 zcmeHMc{r5o`+t!}WXV$2Gh>8mj2Q-FZ7_COM+l`cGc>lDW`+@=5EX@xEG0`(M2qYt zhsct(>`PJh<&=;(&2Ol4zUN%O??30de!u_DT<^?0@BQ4*=f3aHeLv4N_q>;EtxfrP zC3yh=;5RojvS)v9ja7NL*q`<C-1Pr>}llsZqSYW>n`+sR)S(1k1j?mKERGw{kZ8J1DxRlbqVPF`5!s`%ouYrqNfqVv3bt^daEXq2d}G-y?PbLhnIv9dvYyZ42Zd_n>9 z$fO$L`)c3j0%*0@p4vWIrwH#)U6b@J%YHQ@SFhi&pi@BO-2D3cW^Tn!A<-+3ubas~ z{5?G}osWtVRqeMWofFGVz-aBI6__U+fSNxRz1MATrebb! zP*MKnb?j9IOKYvEYd-$+$WL7kypD@l6Uj5lcBUC&(YwOi)RvW=w3iJ-QykqMcefN4RShb<4Mghr50Iyh z2aYW8t20v+zgN%QHPdig0X%B}Gi*$<;F%ApITHHBnr*&Ly`j63>9&x`hW zMs`2XYMb^|ZJo7dt@!uWOkMVUeII^O>e+q|RTSu?QGgGkuf@!7V6Sw2q-%4UZfer= zD$?+cd18^CqnRFY+-TmD$bS*%wqorahgxZ;Kg^9u4){DhsCvby$TuM1nGtgDw1xMb zrDL*PiI;qW>bI>U@42z&Y>yMAsx7P zLY0AYnzXr(ajGR(+pNV<*Qu*_ZC$R}?=MQexO(C^P5fA-q?7B=Yh-Zc)x??)+LrPv zvu$u}z~NOtk8>;cQnY0X8ng|i9y`f_UmBl&>^M?4sg%*bD27{ziWqL@ef8y8b=t2Q zuxJ74Ot(ItvQn{cG?gVg1+iQwW4kxZ;}Z{y@+g!0gBNZK&PW~$6TVpVFtx%}T4QO{ z<5tb!)qqQd7NBZ?tE=y2Ns`ij{o3nU&99W(Dx-9d9jSA~pE@C85h9(z9_;;7X^;*tx7}Y;)7Mr>>CYkwo*=}cC z(rZK6{BB(&+S29a)5Fn;5J{PeT9Z%3kemYqPm9yv%2I?q+S@x+44HxBvli1YA7t`p zj%x(;MDEvŠ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 Tx%H^fhNEl8hu^>Q#s~icW%Q7L literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_lift_3.png b/resources/g2/track/alpine/gentle_lift_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5cc6129c1a915343a561f541875176bcefa6e2d1 GIT binary patch literal 925 zcmX9-L5SmI82x5CGwDoOa_Avqzz79{#3f3^Ai;@lW{E?V$*@_-Awm`c+e45XBJ>b6 zux02<4-tw4>_QJwDg^9d4mkvj5|=>=1}st`vON^+VGl(s^f2OYmWB6yk9Yar;l1zk z^E3Iz(aT2waO3pDle-naRt;9KRa?tro|zk|b)HVp)dkI^AwJ3`dhmlIOFsTyHiU3!(t3(lCssZBreO?e&Fl zsE#LQnz_@WzgR{RgXu!UQ3zkB0*fBG++|nFLVY@M%B$Y0jJE4sCc$K&BSN5IV+YIn z_lOi8q2(Z)pA0YZ5TKm{-{%)xP=Bm`%jP?nKgvn3L&N(m+{ zJB;pgRv@@TsT(VUREwr&Qno3cWaXBiF^a_-j^y;z-pCv!PEz=JIVe`+#Wur5Xlg*T zf%1S3Fn&bH6WYi`r_lQgH(Ccdx>T8_#giSG>FdJSl2TVIy4E~&mvMKUh1()V%N%d= zG^2BTTa-GQ*0-!-r!(pIv(czXlErMcUat|54$vXSjd3X@wJFnHNWG;ItvcyCm~AGj z>-iQn7#!ybLZ(_8!&-viDr(QHj(L;*;A%W6^J23Q!Bj9;!+nzqY-Z?*aZgK!?W@?I zXT#Mz-)x>C5kLoU0Rn&+;0j=g0ji)%$a7H~p>nR$;BYVyA(5d}0cn670`)l*sVK40 zw1>(Fo(Io^B7v@Awng|IW)R5Z$V$_0QN*iNfhsSu4V>2y144}`GohVQ2-Zft>7?6m zdYvrLd`&ljr!bkt4Uw`n&TA`yZ$|?^jR!>@ugV;47QCXM1W*YGRax{ZyB8q4-f+3( zhv5sj)2U<_nr&O2=WuM7XG4*TB`#CgnaZs67BVU1(`d+{L_~#Bm7l-a`0M!(d~)|p zgZKaZ{Xr#^(~}SGz4Ya$zbHpPyjkBnpI`ie9)I)pfA9SE=*g|6@$S#B?%u~Ae%l}?^k~P`r_jF>0{z6@@9S<1|NS0ugjA+e*EW7)mnhl+h-@= I-Matqe@_F6;{X5v literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_lift_4.png b/resources/g2/track/alpine/gentle_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4cf047fb44d78376e18ea539f62b820e22e96f21 GIT binary patch literal 948 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_to_flat_up_diag_4.png b/resources/g2/track/alpine/gentle_to_flat_up_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..de97a80134d311abd6573db286b033f83bb931fa GIT binary patch literal 946 zcmXAoL5SmY6vp37XC|GkYmlND3=)>YMm8)FqQ==AvTJ7S4w1>SS?D2$ECi-P)qoMY zkV9bWSfq!r)}@CYdWcXoV39clEs{gPuJn*YkqQxdD44@2Wyzt3VfmY3;p4scUEc5T zz4y(%z}P$+C|ZEbIF z@9gYg7*;G6cXxM*N~OYatR#u5DjSAoS!S!%>h%VrQ4mG5Bw1w{$ATz;B9}C++-Oiu zn{9W5USAoG^l@lS zRcvTtVF#ZN%h{AfDT^{4UAPEE6#xZ5$1oGe9g=iu+7pB`MVZv=bH_O!3{V)7T)83= ztU?JoT{W4S!x^q%^`(|CcgLzX)q|u?@g!TV2r45Ryk<&fTWJsUL0|^46D8d^9WK@( zE<#xaq7IY|w2ScrqB^3rP&DIOXJL6OH$rC$Q#N?AS!FskVQ5HWOO0E`yk{-_)++3+ zV;?Oeyv)-~jpOU0)Kt}uVf35LQKu6Q25}H9X0z35g@81H?qS>zm&T+zW$Fv5z0|z4 zIbON5Y?NNi*QmtcI8P8&s-iNiAqbYNwDo+MJ?eBP!%-5&*+K+e#w-bPH@_|81+r}HSw&XEXE1F!&G03Toiu*3l6QY2(s$oEh(S7-8k~oBtqGOmt_o@{>f$#;A2Sm%Gf zAHO@@D}HfJ`g=3^;l}mh-DfKCJvy1c_Ospi`t{*;=EwI=-%4-&w@rP1=c_*+J$n1} igVS$+)qY=ZeD(sKQTzYi6sQ~paCCTl@Y9D6AO8>bV~x%L literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_1.png b/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0660ce585388640eb5072a9e963f878beda5fbff GIT binary patch literal 1041 zcmX9-e~8<36n}TUyWEe>f)$Du?4V*ivt3|8GmMyB$d}3lE9E-&$isU#}6nR-rs;ZL9!>kYQrnEJ0?e931&*+!&)M$%XnF(HgcR(N;Im9U(a`abGzrpBOnow zVL=zMih?9#=?EE*F(SdsbW-7zypS(TWm~a5&Gn03 zx6CJw%yVKf6Q$#RGhr{t`Oe9E|VN_noOM_+EYN1%KRDIX$w^@*QOcjHg z6xGv&k!7vCSTj;}OKUksx8?TxcMuDZ08jyR01KcF(7^x=AaE$FBFjX6OTa;)pvZz9 z2VVdr0#d@LKp|5=b{aME$Twj(cp7*P5(1W%!&-(Y>hX#x*J?S>v$|am4YVRDpt4h} z9u~}~WaEm@=)I)X&(yX{jUBsss0@YBj6qxmMSAQNK;| zJhB1#fY2a|{6Ov=BDt*5>Ci^$9@IvIOD4s1TFzz_ipS5Zy!!Nl~QX z$e@tTB99*&KYd{8?(Pq)EiZ~Nd;8YvfH(_thgTl^`1AApeeS+Jb1#IyL;oE*{N&wp z8(-I#HZR?%3P&&QV^?P@=AAI(^d*PGo!`CLA~y^hi}GydgZO| z*x1-E;Dt(Sh?ymjGf?2l6c;@G-+CbLXl uJ8^u4*_r<5wFmb!|Q8%{<{9u)gJ~{U}1i7?((xI-u)l`Da0B8 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_2.png b/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_2.png new file mode 100644 index 0000000000000000000000000000000000000000..89816166977fd1cba5dffa974243cb5797d5d7c7 GIT binary patch literal 9234 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_4.png b/resources/g2/track/alpine/gentle_to_flat_up_diag_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8398d7273db56d50981559c4eaf4fa1cc1aafb3e GIT binary patch literal 7921 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_flat_1.png b/resources/g2/track/alpine/gentle_up_to_flat_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc45d87b5cdef775350fe35edbc16545a00fb3c GIT binary patch literal 1034 zcmX9-afsV=6n=NTyWCy9)mgN%2tf;GBS`)TEY2XgTW;1P^D-`{RVqY@Sh-H}M}#uE z5wS>}#S2=_{!y_?)ShIlr{~P1Y;{&VU6~mctr(@Sf*qU^N5w-9{FyQM-g|uiypNCX zz0=1Q6EoBMrU77P;nDe}VBQ}TJ{bx+iOu)`Avkt)`A9%VMn*qf@UkqbYD(9&d_G?;SL=1B)#`YjKO8bN@Ek~DIF*WKGDJ2< z7m8fDBGu|jqp7#uVy|xr6qe+|niw;ZgsGBMo!QI_&2q9`*SxL5z_WJzRssiwf-DcF zjMX%(S&VdR(P0}$0~!q#v}+>NiUUXh3WjNsh=JoKNm?AYDM?%Dbk{Jpt5wu&;!HHo z$7qS*6f&VvNrO>MPOk`gTP!tXtF1U*nqYA{5$9w|RN0g!Xa%WIRjQ8WxJJt>xr177 zry1cPDnl#{L=H$3W2>=5olG@(%}o}2y5*ZKv?)o58an3Xqhrj2bhtRLM-#EVa?dyRJPLxG2!V)4=4yycv@$ zLUBmV<4iwg53`M(a(mb5p{`FxfhDj69ZB&-MrLwp(KIqv$!ORmw`C8!78>?gQA7?P z4-g8nCj!>2e0=E(#qi%>nS1T2?4FtB(<8s!PORUzd-vx*ow9rJqU%hdkvSMLqqdHrO%ehv=(eRU)8?DWNVD<}4Rdi>Ij|6ZWCS2mX3 ze3}22e*4rzcbtFnMPl`{Yx4KI%lA}Y{rLLE!N=X|KaIOCUVUuy%oFoJet6ATIz lb?0~D%D`EEnttRYT>16SwR1DK)dLT(aAa}*?BQo#`5!rS!sY+~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_flat_2.png b/resources/g2/track/alpine/gentle_up_to_flat_2.png new file mode 100644 index 0000000000000000000000000000000000000000..48426fee760739d64b4b2394152e158d9d147911 GIT binary patch literal 972 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_flat_lift_4.png b/resources/g2/track/alpine/gentle_up_to_flat_lift_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3e05b6aeb03786d933d7e1e50e8ee0854320383f GIT binary patch literal 1032 zcmX9-QHa}g82|2icez`=t5CM6d8klXWSK+_7@-fD%N^aB?Q**umNO5zBWi_$dB|pw z%A)H--O9+$;xZ{%A!5;t_2Iy>>qEs1JFnBA_fTh;-7Ku)km4$wb3p7LP8^1$1O&WOQ^i6bg-vjg60w zPfSc;7&bXMIW;wf$K!E^p?RK@BtcbWUDxvYyk%8twYuwW`~F}!WN6?LAPQkwj%G5k zY>qAz6INNQ)|5t5Z+pdV&*mvCl?ZDBZlq$SN>+4cBhNRjRJ*46twP_ocLr{f0EL1q z2d0EoHLO{TbgI!|n?QXU4HdL&BIL#aL;wZDv`EAt2$Ll3L}Eh}Tj_MiFz!|=sM#c# zXq>}oF_uusq(-F-Ml}<9na?{ysUg{IrS7L=EI}vZ35gO^R@Qi}AQmc0rLNUI!}UvE zzuMhtMmUH{fTtmr1JcCU3ZATya+A}%RI#hu1JgwtA{A9xBAcX&sYF%f8@lA>)sCh2 zocy3^?RXCAxsfPKQYnT_b9`2kimF=9W^2V_vr_Tu_3rleU@$;HXh2#RQ;qNqLTXd# zE??-$c0bz~nA^izf48%P!c-)};&?I^mnd3IBy>S6D8aH^typSRYrg9ZyBsJ2rb`h+ ziJ2Lyoa3B=)F`K0j?rnB`yF>Uyo)%16o3w30yqFIfF1@YfXJhqjvO2L9gzf$ff5Jx zB={mA36O@PB71 z0o4KdfKZS{A&`3rBA+YwdTiNx2)*6rWm(E()Lc$u=sZhX9OLjzQ=qp+s-KD@C58+V zl^Im$kS7Gk&ps3W>%kA4SXz+a(4C*(2*_9Svo9^bc<$VX&+T)ce1!k_*uePl>b2*E zV@FcU^g*<8VK$Sw_Ic}3{{5AUC#Poiuf2_Zy?E={;bZH`wby?7{?OTIoY|bdaBrQs z|8!(+{K~#lTU+-JztDZ6zNE0;dCUdI>Sm1jP9bL*b?&-L49zWw6WU%#>bo4$T< z?Z(YNK06h9kDIyl^3tF3&6DBHTmRmEYwywX`s0^Zf7tz{{m$0vm+RD1xUL`g{o>xg l=RWHGwt9Lc|6St~`s|4to9B;vcLE16KesS@`S9xL{{a*nz%Bp) literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_1_1.png b/resources/g2/track/alpine/gentle_up_to_left_bank_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c152b6dec01484c69c52f43145b8f0c6f533198a GIT binary patch literal 989 zcmX9-QHa}g82|2icj?`2R@R5W1<6B^C_#FXjetS2EjO|wdfAqf!YV`vx58Bkn7Jwe zDQx&?6LcgO&yR~uT?oWCm0V)j@ z9vlU0>sZ&$4BFYaPoQxg#VR^*5bEUsWB?Vz^i0Mg2#2Cvj@yyt-BM{_S&v&S)a?>X zHpk<6ndDST)aio7XbxvIg{mjj1I6vDepDh^A}{7Rg_bn7s0(^cuC>&bulu3Zi|XOH zJ>2hRc*rV%mw+^Zaxk`qiyf-i<@K;&4-I$X^w5q>XEm0nh_qec+L{m;N?6qf4P)e0 zC*8(==%GQj2eIg_FnSAzXU|G*!j!Gy{JOJZU^Q{>6A!k8t=vC3}U3cPyQ^TtsR#Y0w-kPj#V zgpw?3iQF>~RkJx7vCYOa82!FbEGp%)W|}&aud?|D&v*jUmGXNsJuc*sN+OFwO$PZq z3Z>-u*;f|-dHMqv&#ftN{LzC839(mKPOQK5<+batKKI-4bm~83rGC2e=YzL4zx(?B zwF{qrm5z_9lhc>{f45#9ytb4bEnm6$>+;20zuanFJ^SsWABq0YPd(>y`7Kd<`0?eyeE;srW8dKCSH8b7I<$Th oyT5Sd`q_=`_zQCT?|WqZ*blGYdprG6VhdJJt*zWX`OfA40UE%m$N&HU literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_1_2.png b/resources/g2/track/alpine/gentle_up_to_left_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4014329bc077a5bb35f264295f89f8f127413b22 GIT binary patch literal 907 zcmX9-F^Jn{82#>ick;yqK^>}c8dUJ0K?D(05JiL9>Js%(dkWDVE_hI>N<}e6g8~j{ z5JUx21l3@Q1`iGh>VhDK-XN$44T5^`pn?Y%G#Khq6*8Ej!O)}pRS3NA`*_QH!+YO% zk1yrBch2qrz}<_F&!5!yUOjlTQSa3w$^>Y@<4>+0*7V@u;PCLU(P$hU9UUJZpPZav z7}jhyPft&YPN&0htR#t=rWi)gwk^-|!f-O1C0VvAid|K4EQkWAN~_mv_xseqVTZmD zj@9W*pQrXR_cz-}Vz92zvJ}GYQh`BFZ0^RB(y+UnS;b;l7SVo}$t36u3`7VtY-(Yt zkFTfgYDuD!MU{?j1B9{;fC`{vn1$mmNd`0>3Brx4E=+Uny00b^l%^!t?uZ1dQi4v) z7SnY(BM|Jd;d{H`!Hq`9r-p0N(?ZS3vRaG%F$o8fJq zX1W}2iqb&Se8U(I1~cDJCzCu$HmlWcw?jZ$K!+GN#ico^Eg5qo4Y$3h9L#sYs+yIz z>pf~QIL;Gn9hnUuQnp+3TA7#t5ZRr89QP;)aGMz5xeVj zT&}aKdWA%QE`SXX0K@b0|_#(nrf7 zDk69tJP(QlT@~vagganHfjo_j`P|F%xGZy2dyyt^PD>03HKO!{whAHG_2OzU--pZF zWP{c_x(z&q$t>OzslLWJrV_aQXynf0QJ%$Rk)dkCD+)>g6@XBk#jv(}1JZNG+bus1 z-@sljrCv|#_YKFfIM(CYP~>8XOBHsdGG(`ebPBmN8gnQSQLfbG=kK@vdHn-VpImD2 z!C$|BRg?EG&Of|*=Z9~;fAAK(+syt&xcB#qn^WWE{flSvZ*O0H`RRK<|N7aF#2459 np%?P=KZIYtzW(#+<+t|1qo2;MA7tpP7J-Y0m*+1(`uzF-O%#7I literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_2_1.png b/resources/g2/track/alpine/gentle_up_to_left_bank_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3892697cfabee69a65476fb5c99bcaa522deabe9 GIT binary patch literal 940 zcmXAoL5SmY6vp4QGn1LALs%+A44Om5ECh*=Ly#P@Yi6lqWHN46x@^D*S*%zvhbV&iNmNzYFf_|D9mny!{%{z^@gz;N<&tAT6hM(nnpSQ!sAh|8 zcLcAe42JqBvc^egHuoh4s|h7jChQvJ8g$>{jvXoTYU81qp0*dMzslk&2|5E!5nL4; zm{`=or-SlxOriygmO46f5sE7S3V@DbCXU-A>C&_>2*-+YTCY!S`$4~tqKM?m6_H>S zO3>-5$<%Dla0RO;If2|Ass30G(>leIY_%e&jBN0lDVc4h-Pik}876j|c9X?mwu*2O z$|?|bpjtq?7~dzVLt2YOGpTiEmY=yXI#!sn!IRA@)2RsqLmF9X;uurUng>o6d8;Hq z^B6DlG*jdFx+pbOwPP5)W^>r-ME!mehO@~e%Q6I{3ABfC16&%B>X@m|r1o6%7tK-T zPL{*P*>r_U436^zQKc#>!y1BM$x2(#m$inS?&)Bd#>sLff-Ym0irYHnHke*Z4BG0b zS3eExY1CUx!e7Jv&70GtBMF+jN#3AHQ~_$Zw!G?*N8MF^{qDu7f#CV@H} z@)Z;|(726KA07qIgDgQ!!5Ri(H<_+m9r(s*V;!FLL@toHNM&P9d8{Jr0E;O62_b`4>w6 zKKg<8FCVCI;qTwy&ds&`y^B|#`r_8F!p@H`K2bcJp&xEPcmMDu_2kQ=+n=`WbI*KM zIJp_Y`D+)Sd|mhxfA!;^&;NJwmGj1j!kzEGyZ^brcH`=M?|$;mH$QPVpMCiC^$Wl3 i{&VkxKOSDc@#bGwwZffq)1#aM`2z3@5k)~!Bu(oZhHl%o=gk(2FiF-~R+J^nfWU(+HT(V6a7d0!X6*3Z zRGu%?C^lB9v)%b3jrI7ZF14*5>1x!>U@vSj_Ij&@o-N0D=I@K7OMptlNB~#C<~kNT z_-5WJR|Lu#RI2FGMJVY2$N(ya={Rl?giBFA&tJ&$axmCf)}z@B#WBIQIzpR~NnWM8 zI^DBa&E<`$Xa~|HQv8(~W&@HVm~MwxXi4Mxx~Pxk@l2hCdYD>CHc9jOb|2#cv=nF$ zfHZ+}F>coGE~tJi=xNW{8h+s>=t8Dj8b^$}wA16~niv^MYHJ(M*adbGd;2s%y994> z6y0OFfgp|)#nH6sXtZ#gcs5JJaJya?MS+0Of$}hRj*AhYtmwg39Pj#mK8gx=T`uy= z%^o#r9Ov5YF4<9NM&o%ylE-Q#W-gq`a=yrtwA>1yN|>SGmP)!qdTI*6Sc#^CWngXM zX}(Fy@(~gMdH@E13lIP-0d^Rm3bKey0|h?HHZlb|3ljmtE@Uzw1(4oG4vTylg+sI& zqs)iL!E+#q(37#D*0x6U#O=;~EsE?k4e~ril@~Dp)@%xHTlPscr1Xq;i+)g!qP@4e z47X@gP%Yp{tjpkifgCEVIgngy=ufODn50RNX9+5|oFt(TPzDH9S&S>YCm?Kdy4!J6 z?+J|6O6>QQ;ZQS8on>r}@dP#y*;r!MGM)E2NF|X)p(%?(0i{w^e(r_lKaYRlgFEL6 z-2C&mcPesvcKXWQ#y6k2FI{_Zvr+pGnYA15-hb=$Uq1i!dWZb#?KiJK_wz@8zsLSi z|M6q@Y4(pVui5HPzkmJxjSt_a9z65!r=Pedf7Ks;`*P>0S$J6K!P%|z)9+rrcmIEd Cpo1F# literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_3.png b/resources/g2/track/alpine/gentle_up_to_left_bank_3.png new file mode 100644 index 0000000000000000000000000000000000000000..273b5556abbc97d1088c2085517936a05c834f9d GIT binary patch literal 1002 zcmX9-Ux?du9RJ?m-0j%vC|EE;kitbTYS1u)%8wo2A?W~VH)s@Zl!i}uVxq!%hgq(smozm?N;@^ zS01*ihoOi1K_bbLRF+}$yik;7OI4j>v0+)QS}pYbUZ*o04iVrQkX4MSCxj+0x2b$j zF#9=oP;3tE&Zsds>K>vwDv@AQsSJ^pDO%+?U6f2EURG*YmA!f+3c^v32SvnmIbkS- zU7(y2@0oJb$?thax8)4F!DzIPcz`T`4qyX#0C5uf7@!!EfJ!>@ToiRB5;O)XJop)i zBtSACErl!wxf1dVsBNOig$Ks7APSI`u!5R0id4nU)LpgNEQg^t7=$R+!t=nC=6E|L zxrE}ATEyAIoHr^q53B7XzlXX*G6^h!W#~kXCkirC%8Ry9a4SaBtAv3!hypa~v7(54 zKoKAmdtt_M4}q6UPQTAO)rZjAZ6TMF3k9`Q(ipnT(p8@E1g0g@9f=xb(?}tZK_Z7i zK952%4nOe`cP0ed|Yd8Cm~5 ze{uQX*9*?4H_Z<&z4zz(BM17e=2yGLx9{6m?xuz(e{lTsH@=Q}; zb?aD>-UwKs+*;@$xQZF}kDElT+F@Z;dK$FT3K>)_tm@{96e)7z&y2zM-sAh{eSCcH zy}i1^&uzPR8vx8LKe2S!n-6$(pWo;8hbJGA0erCf)R99TotT)IoSgLed{a|X)6>&4 zGcy>5`ThRc+1XGu8l|Wh$FY(msA^o-wQM$9ELLhYyV>lx?r=1sV!$#W3W0b$m`p}e z=~yn$6iZ^YrqmmH+sXI(CP!j26VQZEMvfRNQPHW5EY~Q??V9Gcas$^K51V`#6cSP_ z7!p?1utpy5R)eE<7!6`*q@XPWp=K071W+(c!|_ZwY!HOWFdL%SN+i0O%*{##H5y?m z7-d5-F~TSWuaR zF4vEngH(NJbVjwoR(Fg7B#zUe5Fd$3WK3lkT@Z7Mw=7-D7h2Vt+jK@f78C)~B|M`< zj3ik~vsO;3ml7>2(`}Rn-R5X?6R`kZ`Z|CCU;(rM`WPS&B8SpCvP|T5MFKPm3M|+> zxFR44kQPFD3Yj9Zlc=3Tt_gR7r$OLA7O|un%B0AG!BQ=#NS_8L&_3ndU!>G$8P-eqDQVQFD)E7aPC}T-}dQ!{>9JHN%MmH`sTmK z)WVIqUANEwJ^%dH{K3(wz~i@0oH=#&e0lxB-D~A?lw804P?z!V-dVV3{>Sz0|1CW8 z!iBSMy?^b}>^D1}KE1j)xU%zDt-ic=_0Qu6-Z>M(zOC)L{QWBjpPYyG&oABj^|udR zo_$Sz^OsLK6)S(T|BJb+n_qu?x%GQzt-Sx@-aWnbrmTcEcKH9fxR>8N{_N3{e|+hR t_bgaR5_t^dqE`R;Ikq_{xkKQdm`kChimJh8geYkky^#8ov#Sj1h literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_1.png b/resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..97868b477448d9c1c5f0085119f086f100c7b5da GIT binary patch literal 965 zcmXAoQHa}g9LImX-d*liW`rUY^AMqy9K@MHga`q1Gk0`H z{r$eYa9BQl>a|kKW`&Qw%zl@j#D9twrpvlCVsGN<%{c zN5T3!7TEZ-pI?p%v|!LuMJEnIVG%$EP%%u$af=`vigJ1WNR~&n+SIb1^m-@=2sU37 z3XDwhDpl6$ip6RUZ*;|`C$)!)J68R;MsfsGF7gU3XlMlasu~D-RIz7ZmllIgt05sfl!SNOgr4hH_(-q3mIL;LcWwNNyjK=eZB)8ObnK`iAqy8WcqvcEhRl*Dfw^Y)p(_K^W zTFS6n8+q0==q{$=a`^-a02KfOzya_8MgVgRP%2qOrhz;c#Z#FAorSglei>pJkOD|A zAe%+5jQlzpw@~cD^WZsv?QU_FryBxWMhi%JoxB(f;fWsxtSNJ@{N zJCpnS`44<@@lb)?N5@xFV;turyWh^ebmR4xv%CMHE7x*V&b#t<=I*U~uYOVb z_AdF=jehQzpJqhq{+&mEeE37@S^clWSMGoP%`NHU^Zz`=Gat}zJw8)<rgEM0 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_2.png b/resources/g2/track/alpine/gentle_up_to_left_bank_diag_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..063585cb8576be0125083512192e52bb07358356 GIT binary patch literal 948 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
-cYRmvhDV8w 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 GeD;6WBE;_i literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_left_bank_diag_4.png b/resources/g2/track/alpine/gentle_up_to_left_bank_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c69863f5ed82f32cf157c8ad2616ace6fde61b GIT binary patch literal 8363 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_1.png b/resources/g2/track/alpine/gentle_up_to_right_bank_1.png new file mode 100644 index 0000000000000000000000000000000000000000..faf4357c7b88b25ed4ec1f027891a59ea4ab5c43 GIT binary patch literal 1046 zcmX9-QHa}g82{h(?sB*Ds8U&B5dxOG41z=m7`GrfmmArUahaFf^;{+qqU%GIuth1m zIs@xN-IZJBdb1CGsArIhIo82FWHU(B2o*cc#;FwomeFk$Pv~49itgcW#^CpTAHSFH z$B*ClT{yPDPwm;a2LLcNe`IbkoHJoPHy#Q5!Qoeu07SsCqf3WFIy5viJUkqUL`FtN zMn^}-#>Nl?86O{?n3#ws5($bTIgXViK~-g4*K)aBsZ^=e9M9Vcf?mH*k$`1@C``(7 zES<(OSu$T>N@cNHQ{1}V^b75d#Suu7nbd^1k;F_Dujtfvj;oiF&6*Z8^4-81^gJE~ z3IQ@KFeRj_A@xGERgLwVDD0B3ufRtpgkAyw5dZ~2v}n{oQ4_~4hS?UyMk>`ZjNM8F z*6S!0OR#ZL#25wVH6m$Hs>$eOE@ulxSF)Ol6QnR2CHVv+5rRs~8mHyOd_}1^n&TT@ zQ1rXi_MjeRK}-Vi6u`0oHxarL=WDoJXEi@rXzNzb^x(Eg#8ev1@I)cWR8`K^B|oRO zN_xl6_3EX8Z^MokjnO!fr05jOWhAMfs^v_kRw&df72k2%J3GBz4+2yJcnP7ZQO-rB zCXs4$`HpOLGj7k^>DRiCS_3#qM5A;(&SMFQAXSFZ1u?IL%d)jXu~DrBp5Je?KoJmK ziW&-LripTvweyl&PBm`|KnK78Kp19`59OW!&1K7-4qYxif!=I#vMi<3YBsA;WR50FEM;?4T_ATvqMJ-W z1%n0-%M^52=nLWT(=SZ^^Y{neTU?O9?ET+Qh2;DBxmTB7USGe=?Db~HBRAl=pZMz^ zt>DvVzBqZ4%l&rh%x7{W^;P1**qy7hU(eot@tZ~c&;2VK)2q`rzPz;jGkRa-^%9STd!Za>9!8eTw31#>ks$cYqviA_3pjZJEzx{&OWs|oI1Ys?0@Ia z9+00VFW&w!c71;RgY{2JC*OX@zPM~F`Coq6o!vWBjb|<#|MvN{hbPkeUs6u&Zr-0e zLM|TIcw=o1n~p_4zxVGU<2CB&2L55={bwjF?TkM7`1F;#p&u}Rcwz49p*PR}52Gu? A761SM literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_2.png b/resources/g2/track/alpine/gentle_up_to_right_bank_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb3c1ebd3424fe52be7cf48d9f2aa7518fd00fd GIT binary patch literal 1007 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_4_2.png b/resources/g2/track/alpine/gentle_up_to_right_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..74f97ed66b3572a0bbadca79014857c855550c35 GIT binary patch literal 897 zcmX9-F^Jn{6n=NUJNe?IBA6nm3K|U6Ac_haG-yy-T~H5|Q-}f%Xiz~=4~7b&f(H+x z)nJMU8a$ZRg9oMOLA0iL(4aw34TfqE#DfbOG?>Oi22lhx^oG9*f$zPKZ+Pz;zW087 zaw9*u_t8B7cyRsY)zgL_Hg&(n1$mGN%}M$2*O%bH-o{>ao#Q#C`m}J+Y<>^r38bP zEvD~qrZ3oY$qkihtOc176$6SVS-B@@jAHV-C0P@7vM?5r73EG^O!LFCJSMmZT@8o< zP-CEdj9(D)iq;d+%KKhv2bG_qwaRo&o*c=H*B6$i6x&+vn!B0358W!69rF@h$MR0)l36b7i+sWey|Oht%fC{#ciAd5gAhXNHvLzGQW z5x~3Pc~B(itJu&aoDnni<*5%om$b}M@DC|~c4*ec7DCE#+&Y?&|xzZdz|7qu+cR%pm(;E#Q zz4_~#MzGgcpFeB=^fLSXA$)fKk4OKOyAN((P`|YQre3$XUq5~>zOHTi+n--O|MS%+ bA6~D&|BtvT)!R4CC|p0jx%%ykuYdR-pfh~` literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_diag_1.png b/resources/g2/track/alpine/gentle_up_to_right_bank_diag_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3e425f426a01f033e01f2480f9d2ee36193870 GIT binary patch literal 1055 zcmX9-VQ3q56n|~nUfVdsj4tBIVu^anF(W(YeYg+Tc^$D{?bTf|vVfW1G_p8PxM76I zZhFI5^5LAZ+=ozu9wTC~0qZ_5M@Og@0uTV=7$*CCDvs*}VKU5`Ak-6yma1+Q3aDDe zDSwC!goPjzCn7Q#RVhhllsu=E_*_La8*$4?1Zg}R2{9tcOLR=;e*=o(n z+1+A$Q1!9k7a@>XP=qYHsZnTS2fw#FP5E}-EXrH=P^a} zsqvtmB=c#ulo2cWM7^Z8s`+lK*6(j279a|s0O$ZEfI2`21LQ*BP+CDH6FDt`0GWau z3swXi0gwnt4xlWBOaWO*)W{&mgqy+Bz;h54u%r}FQ)Et$6ium8(QLca?b^uI!V^HH zy{sM(%wXIiWQWmvu~I)(85oTntBqPc!Vh#1i-dhKHkcHtbb{B_q?uDIrJP+Wb)6dO zw`rb779a-@a3pX{=Z#xX8VxQM6O&0PotCMvMu!cSDsfbm4>tv}8x5g& z5UB*pQ^;bG&AZ1>@AGco{DG5)=S7&lyz#P2ewdv(xcJc7UC-{m9xucx20Ca3oAdF|4(uRgx<`;oslFMjvN(9UrEU-iKEU%l}0Ge4c$ zzqM^WcECfuVy^tAUAelkwYt6g#PyGwd&+1_yK(Yd{p;wBp{c8HiWk?PzS}hhvxnwq JR-ZWf&i|XQ&Ab2r literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_diag_2.png b/resources/g2/track/alpine/gentle_up_to_right_bank_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..157ce1a4ca947ae354f3e48c04443c7f00bf5785 GIT binary patch literal 9344 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_diag_3_2.png b/resources/g2/track/alpine/gentle_up_to_right_bank_diag_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e0525f7062e1243fa146b3906c2a82be94870459 GIT binary patch literal 940 zcmXAoL5SmY6vp37XC|HLE(Lq2nnT12*(FGXfDwXZ$8?E9+{v;TDcD1lh!uJWn1!Md z!djNHL)ZD`yIab z?p!|>FCIL9000+{-mKrq=asxl#X{cyxnv3e1-Sm!$<^F$ZEbCDZx;%Mot>TC-QB&t zJq*K&#p3?{ezjJsF$^sTyrM{&)-(*g+wBepqshdNqIr^}S;o-7b0ABlX0y_66CIQ8 z+1y|#k0)vn8nf75u3Uk_8eB=2s#b$=G;(Axr(Gc&G-eY$nfBI+yGbJv2bF>j4~~M3 zbu6^Yi*Y5J;b={xOhxAoLQxGs22e3fFPAMGcSzFZxKml4wpt6zdORATFvOWkjjz%& z!KtLEQw@vJ9L^XDT~F!_=z{dhfIZo)DT z6$Pp-AWR?~j2%_Q3E2#JJ#N@b!%dwCoyt^2WATni*$r;234x)+U2QQiR$ey^2b$EdQJgJ#P$kSz%9ctvZE9%pUQY>z zt*K`%!r^)mW!YoI12g~(00+PWm;$UYK)GZAnFjJ)lq_TtbO!o7_#z}SAO(!HMjC&9BI3DA(SwpO(|RNoQDt`-E{IQG`-809Ry1&mqZovQ2-s!!?(=cG+9 z>jay@?A%|XMM_qHB`}dLH+iD1FlI|~thU>?0ymM4PJh}A6H)pehA73ff&;CQ{ui}GiZ(q1c8HYb`7ykI_w_BeC z@BjY#-=CH~e6{}I%X{}8y_h{?Kf1R6-Pfvc_;a*-=cUT6&%b@`xo0o`^xo~0yO&Rh f`!D=*_g_rD-MUYFeD+aJfupO(_3z(!_p|>2fW(m{ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/gentle_up_to_right_bank_diag_4.png b/resources/g2/track/alpine/gentle_up_to_right_bank_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2018833806c3d436a7b662e67d48673cf103d1bb GIT binary patch literal 8326 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_1_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..17deeff0d55dec398488747707ff7b314a99bbbd GIT binary patch literal 994 zcmX9-QHa}g82|2ice&enD^jpx9wJmO!=Q1Ohaf@X%$?mCxg5)lI=T@hVjudDgD6F+ z2Fyc|vc*{>!zu*>Rtc``ZjiZ(apa+}q5)5>5T#(*74DQGRr_$VzZrwy_kH|czTXdi z-}m0;Mt14gBgX(>Y5nx-nRpU$rREcHS9X@S0TQtJ;?`PBr>3T+r>7H%#LUdh?Ck8^ z+#H5s^Yily3k&H?Cc`kaAn>v*s%l=>HPbY0yU}WSL9iD^qw$!bf#*OH7xVd4u}GB4 zbfwDKb*b4>+P>ZmtNno^P*{#z)Wo!rBP^9{=*+Gu_;#+_(xOgf7&((ski|ivpu~eE zV@(b7tI1w7HSXeQNTacWjx2XoLXQfV45DnH1W%+@%VAp)$xj z!%}->?TuT*quvB9QpqHnPG^aXOwlUG>7rCo;$`Jlwbp62q97dic~C@5my?D4ZY>PlVHBWopA|*q0g3>j zIEzXwcOSS}t`7!m-M$aK+ZFP8xmZ-oWsRXtmbQ7u6&PQn_athV%OHh728rqn@^}=A z@$s`yEdF)x2VOt3A;Yu#zq}Tc_t#fXZJoIM#%1w%;^e&W6?)UXMLe{$bz$k$?b|Ew zEI(*p+pazT*~2%#c>bKdK*H zxmbGp#&?ev@BG{P`=s{k%H93h2Y!3nk#?@XaCrUhEB>_|^FuwH929;${m;Sq8z-Jg so&WaJ&gZHB&OQ0_A3xm5gl|o~B;8!;y}J29>nhQg&nqokI?DNFgkt<`8JWRI?>6(M@d@B8)aI!Ome0p+p%Z z)s&79);Yv=gcJsxVyJTnI?5g*j1nb>IgFUY9!7{Thk?dgVJLH$!-Bslh3~z`cX{6j z-+M>b4#e~4UO5K<=l9>-yPnUN^V-=c=6&VX=re#KTzl*AYEBDz}T&-3ah86@~Q6ycjnWoWdwLGsk7=&?rnx^x`f}w%uK$f;@wNj%& zG%ea`b6!{O542%qj+6Fu<_i?2a$AN}wpGH_$)3raw1mi0#{(lBIa%s2=doA;je;f* zu7dRqENbJEerYkTpo~Tf4V}3N#Z>?qK*KNt$L&hRB}t#-PGoshuTO0IX|IQ(sKS)0 ze3_OBP9sHwQf)?eIkPLY0;w}p{IM3Mb%L$XVwF=UNoQ+@U^ueV(|Vy1CU%^5lB_>n zMmP^81Cd$`5ZyT0Mf&lJ}wL^%9yH81!q?C zv*vK_o-PL2*<^{fC>&?YWs#^V6s>cdDanqOFS7>i&Zs{~<76@AL6b03!EKFj8&ucg z14kKl>!ZM)MBQu>FBVS`51;~=04_iPFanrifO5zJvP=~CD4ob87z}iH2t`O`KnftE zjM@zHWfV5h*g>fe&x2<{5xUPQKRUj&vv+A@_*)?A$P literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_1_3.png b/resources/g2/track/alpine/large_turn_left_to_diag_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f112a47716f712e4b66c66a0d6224ebee65b1108 GIT binary patch literal 915 zcmX9-F^Jn{82#>iKKbG%8a#+bg9Z;8L{LD31`X;}7u-YPbVMmGh*kxay5Ki4OE&3e8N zj+Dt%pQY9!_t%?9Vz92zG-bl+Qh`B_E$+&d(y+Ujn#J5Ji)g>iIwa@}3`7W2Y+_=m zkFO@J-GW3Vi*`D?2@uNK01AMPVJ40{BpJ|jBnVfEGVk?Pj`MOnMrlfNt+q(83MJ@t z$7H$=X9R*ZlH6Dx&eUk3Cq<9qNw(7#R7N&<&6G?}@y7Z%F_YZMieX+(*83C}p``-R z1Ih+E!1yuInbKM+nt9h>ThTVi(3Qfp44xcx7{4n_3~6SmxofOKYZJTMG~DMg+GKc( zrS+hBXAik`+&{#O$d*oKL1jmhaXg=rU%hxT8}+pBdR=?5VR+Zyr0V zbX2ag-R>n40lEMdKmZT}%mFqSpbCnFYzxH^Dpm>&CI>?ik`5FKAQg~FAfH2#f|5R3 zc&Lcrb?`jM5_A=;ZxGIa83vt6WXxu6p2uaGqsoiy0cSVGfKVbzPiV6cf~^+s2D5#* zxJlM%wWV9YQ&@+^HIeG8oZXWHrymWSSv<_MxGXZXTl2Dv5-*069B20b$--{o$`m5g#-~JM(?|$?AhhL)K&F`=8 xmp_00*;~I(uDr?SlaIc8^4Ev={;03`52ojALcMr)U5UZ@gNw7D-u?Ki{{c1Bh3xJfD^~Q=bRsFa@as*Q?^9n6#TwNFSj@%ilLtpnJGmLxDYP8q{xBx{3 zN(~^}K-m~KELAn;o@u|sq&(?yLVT2;DR<42k}Hk8QH=6z%7T1n8~L@ru} zc#)&%8p|~Vv858WLcpZjpq$X?x^Xqw%6@VMqV67>xBTSgc%BMs-)ed2W`RaDC0q6 z;+pedu$qVK^#u|DY5)d+4d4Py0G1e_RI-TL267z~&t(d97J35sRfuIk3Lw3Nx-4>J zjK$S*mgs*&8E{c$8IkQ-Blc-^@5Wm%VERN|5tShpC#LQ%RRVyQvL?(p>Eb;{uN$K%(`-Q(A z|G>wmCknjw$1m@urg?Pm`mOwzl~3cR9z1*X#=j`}>Z1?wi?d%3ZyTBCGxu_jqHCEQ z{P^g-r=Q#Z^SAH*zHRWwFaET5^1?g%o0YRSxLADugJ-_@Vfy>S%0ud#`^M>=um2l; uuDtT--rWbs=GkZ7+t*+Ek$QDs{hs{!uJ!Ui_YZR^7LF<>2jAX!>(2jOgqEHF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_2_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..79c2f64af6ec5b6a4f8a8e7d68ce5516fe578d2c GIT binary patch literal 1010 zcmX9-acJXo6n>owTQC!6wW+Pyb2tl(gJ94|+E#opMUWKSZds=6}s6`_L ztS1csZ}gzohL?E0yQj*X3tkB`S+O^mHnl%~BM}ajYZ>ijvnfwOlS+R-@H&J#Q}vMqx;iz%n2TGx>b7Sj?1k zvQlNNy4Y;V?T*&iK(UFOemjw_3WDHXi2_v00aolE@9Z}pZ6nchnyU{?MPMS() z*%T>e7#ZhPB4<#F$!K-1>y1wBBHGkOb zA9fNfBqc}{Afp3rVssyg^2 z)UghI2MxSLlE#S~MHg7EBuQ08sh3KvYPHj7_^#XE+Z&BW2+}Ix7DhD_Tstjwi9(;N z4D$A{)E=38VQYBQJ47=?B0;B8d?qUqq{1+oAXemPnck|_cAKrh^TR$1vVdt)!jLm& zk*MpeQ<2*B!meZVI`v`C3&Y!p1;_zt049I~unRE207Vcvq-)5rQP2}{P${Uf;PMcN zfFwX_3RNj&i^wgaZUqH4+zFlrfrFfg6_u1xB5Eezw3T+d?EB7e=%Yw0T>wg-Va=3i zXJi*w1I8TXov_qCw7N%bAN59f66g%ZlZiZ=DN2-H5KN~PJ@ugW0Wt5N z{Nj=4KHhj@>FVPbmcBjn%IgpP^v>Cd`26MV`rF^UB-c+bp1DUmcj4vxKex{9pJ1*1 zzbn5S=s$dYG#KTh!5*CVg6a%y$? J>e4gs{tuv(v#$UE literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_2_2.png b/resources/g2/track/alpine/large_turn_left_to_diag_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab5c3667fe157aaf3ce95330d8f3b8ec961e53e GIT binary patch literal 952 zcmX9-Pl)4m82x5CGnqd-2DWGxbBI_lN|35K1j!+enI#U9$+%g!hprnTFjaa87?*-o zqUKPvU=Bs9ROul?4*?4f7$HK0fIZYD3$s!oEM=)|4!aVD2o>h=Gt0vJzQ?pdbyA*D=Vw3tEEzDZEbCReSKqN z1H-V*&CRW?EuvDXuxwQn1yz-Gy>6O@ZQK3+a6I;-=rl>PJZGyQ@Sw;$^?JG4q+0E2 zr_1*T%4nCm*x^CyZjX*6b*^1IxZP86oBb7V_mx;1{Ji-D=ewm$2d3(wBN{xbH^ zBEriY&D2<~A&4zi?dtlV)f#uZ;cyuH{`~Yb%Q6I{0dyZ@N4OY}>Xd2B#m=JcrmY}z zPV;ekK3k$42FE#qkf@5vRCS&=Wu>DP$J*m=Z!#JuQJl{O&}7V1aZ96|CNpRYUPlcE zjfrQ?!a+KV^85i30BQgxfCEs}U;?nf02NR~)HadlqGYDfV6e~=z?UFV0I7fs0(DvB zD#&l5X$K`PJPMuzS%jK`HFd&jF+E2bxq1-TaqOjOj0!KZ0c?9ma0tbvG@mvS-pT4- z-U^oe>A62gvy3hSM`2PGuM1RDW!nwev6^nr3cOw%d1(@%e9p--@&P4)P?1HauzL*B zZVwg& z_J!4h1Nqw9e|-7gS7+b6to^We?N4I&;n7Fw!yDgUppy@Np}&3q&OhJXx|vO1{T=sX p^v>abLFu~jucy4i-MV`du0Lo0_V<%7T`U~o;PT=AkFUS``Tr28m}CF| literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_2_3.png b/resources/g2/track/alpine/large_turn_left_to_diag_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..de7d82c9f410061f6aa404454ca4a20230e2dede GIT binary patch literal 943 zcmXAoL5SmY6vp37XC|E~L&P4cn?uBcLBbLxU|4gAYi5Zy<#Ene|EnA8lV8z-#@;V+l`Hl&CSh1p|G{JwY|N) zv$KO?Sg}~#-QBHJt5ud|L{U&x*)TNAGFz=yx7!~M!#JL%X|`Ii3BRzxaTkKg&jJmbS&`ihfGWFM4ED@m7&=kN^ zv4M$2ZG1K;uOjsT$qsRBp^WL8j{ zMZSW<2Aa4i_2F6Y9LOTn6s%!XoF?7zq=9dYMy(_Xmdga?ETRsqT@t*C;*)wvnJMpO zTCi%4*4@cPI7hRLDg#Gi5`$|3*-%-#E_+VH?>M8Nlf=O?jnQh($ubH7rGQYLg`4A^ zi)h)s#e(Z~pUav|L`_p04a2rgmT7TJS6~B?jbvu3(92pC=_GO})MHU7phV7(pSxW8 z``HiNxpAbzJAeIllAD`{2Um|@`s%)S<;C+iiiQ7>{pen=NZqI0>ZOwp@4ayA7w^H% zpT$?%&EwC1zw+|YM?alokIT2e9sGLhgHNx1X+Qbq?bCnbKOR0jfArbO-N&CidHpr+ iEq(vZ^zP*!|G^$?-9A0L<9?Te;PBef!4L0#{Kfx&jgYhe literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_2_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cdad1d62b7db5b6e932cb837400a07af0914d523 GIT binary patch literal 937 zcmXAoPl)4m6vyBEO=rs*r9#mNL3)S~C5PZf$RTQGsY7J4PF8a0AwqC^h?+x`A`t=> zsTwe1#UKR>Mk#K<3gZ&Bhk!u}b|HttRt-bJvgWXdvP9@%gr8X!zVAK0m-jh*-}~s= zar5$}$1efE<)fDlPs;g3S(VC8+0Q>WX@DKL_VV?srQO=v+TPyY+1c6M-QC;U+uz^E zFsxFk92^|f8;u6bGNLFbilpl;%QCy&uI~@W<0whyS+*_;mH~kWS*o^LHNzk~Hq&!? ze;|*>+9bASsk>YSB8{nh)s*UvN_sjqwAiz*82jpMY-ZD5o&}qA(j-8mp(B8&U?UTY zU3@XB6*B_m3@S8q;USbX0Av6S!%Q4^2*RVNfalL-dD?C-9Ov$Eh~k)FYYm~!$Rw{( zO_Np~R`+;oAa+BkKT(327G-UcBba7`S7=G+TBd0BcN!CyE(Q*^x0@M_! zw}G^Q@-S{#Z;q)}ESRb4F0EkgCFo41YdS}CnzXC(BVC+WO4`*IzO@Rw>)79rbMjiTjzzFw~p5GGJQ#*T1tLMSu3y%c+^R*-ilYj0kR z^NYm>RcRdO>h&hsP-sTyc}tReTDi;~yZz~CoF!?o6hM;04BFGs zS;T{Ukrc&UBmk%Y7Jvs30!#r`7@$(Jh-?dm0m>FK1ttr90iq^kG9U$zSw}950vSaH zn)Of?!2RGkkVH^r%+TvjhwgjLQJ_yI-82pJJVhmoXaj3k1+Oj#q!v+T#(V2lSac>E ze|8Zq(PB;2fFrRcgSQ0IP*}Syd5#hEok`eFlQ7Q`R4h43LJ^=05Gu3imAD5Yy7pkT z;s*W$S+kkgYAJ@H+qTIvU5@buHWb-dV&*cPs|}=)$f3}HMUj9~sXTt}nd-g!Kk)X+ zu>#Nk^T%mv)T6@}u2;T%^AqVIc(Nk?jNbkB$6KclKl|2u2OoU%->oYj|N7OZmCsI2 zzqsMPVLbP{^5@@=zWSGYvi%tRQqxyIe0cNeV(`k>?05F<^GD8aSpVM3F7EvH(;XbU X{mxUb-@M|N2spZWeE9u~uf6|2ZKRRa literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_3_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c699524b0adf9006f968b26af4a8a4c055739dc0 GIT binary patch literal 1019 zcmX9-VTjvw6o0qgU3z!So^+CJL9$ULLKyv!4?%*)TkecUyvwl+`k_d45sNDtB(j24 zGp|aW6~ZX4A1YSKhvEe-dT>!91XgCJ6(V%nX_S5_tm+NxS;l=h;cv#^_uk{jgZF!n z_ui$Ab@A~0@p%9^y!zDgnJA_r!{f2Y@7$jK5g-N|PoG_h=+xBIp+kpavDozV^vul6 z?CdOtVexo;Zf*`wrBV!&76e{VBu&d2hF&U_YPCkI<+j_sFdR=NOd5C&WN9IrP3H4t zp_ndLxLRFqwp7nIx9+K+Qyzu({m1A*leK1F{H|g|Q7>Y*AUC*Mm%DVAx};jkaYvsj);sq$?S&sR^E;1SPFsGlouS z?AP`K2MybaBumj5hRyLpK~XB2RxcDhB3{A;1Nof&JBd} zFl&zr-q`9*TBC#hK3bp?2^PmiGNsUIjpGbSE~`|XQ0Z1D?%s( zQUK{VsxZiwk()=|G74?DyLc8P0Wva{*Ko5yS1qw=Yo1pM0%tS|P^3lVfGIBU7B1VQ z>QZ{hS>voTDR}#}?twc%{V|mUmc+z#BFmF`g(>DF%gozV({rjp+ZlyzG#Rjxgj_%& zAQbJQ9Le1SQ7YDlL$+SK2cz2+vRNgc*NR1*Ntf7kjb|Kz@uhT6rbn3+Qb}Y|sLmjl zM}ZU_KYMCn@9q!0dS+dLCvM$*AtIlyE-#&ZAu*B`10524VsCq&F`$S=bky5 zRBs74Zhv{i4cVnX$)(R8e+=7P`|77F-=*GKe4BXg{`m3hKb#D9rmkK8Kgo#Vd$_>11w;>!B+wNnpV`1RN?FYj*sd&hh8A|5>1yYjxN QUyYiE)hPe@>1Q|p2Lm~{Bme*a literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_3_2.png b/resources/g2/track/alpine/large_turn_left_to_diag_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd767aa9fe27a8d43591f7d61da3ad7e6062706 GIT binary patch literal 1002 zcmX9-afsV=6n=NTyWFiFWh)vnLjI^MYLGHB$w3C0=8o=&T*hS(w1-iGRw*N}3@TIz zt{in1iCQ(o4hlvoTR1y8FlzpY&_7P-Ab(WtM$`&bt87rUVjZXa%ou#{J-&b5_rdqx z`I8&D}{0?&aYCiD4pu}GH6 z*=mim8&a#S`hn36YlER9(3rv{brCle($c7=!R%Iqz*f3#J=&{|B4;}8lD&1UF%gI;eu9wQ)hplpn3r39alyL4e7REK$I zRPx7GZ_*y^_opaHr&27A=g5pqXEly9M5(IA%gXIqeXrGyI^kr%gDPT%oHA9?D$ByZu8L#iI7 zN1QdzyOWYXwY&S?0QJXI8dws`Wm9>cEXqu|AX;Y8shhrA4?FHC>Y&Mh6-DF$iU6TF zi)t))2SlaZ7!KKneFsLjE9CQXv8a{HI+LxiS(|5EfeFNHPohUk2B{=6Db!$)$D>e; zkDq-c`N!=aIJ>za!|`9Py%3WN>#L8Sdho5&Zyq_6II@_yh0Mf>GY9W)t*rQ4#d}`8 z{_@2it-C$);g^0-ep}tR^xQiS{Py;r=MDdp-mRnCTiYLf^K)?ajSHW>|6wgr|LQg6 zi_2dgdiup{wtejA>y0bKGe6Cp+dAF+{^HW+um9eB=rVcN)vITgKY#amQe{B!At>9N1B;5&~#_Sc#;?e5PW{&bfv9>4xn>=D-2Hda4=;@NZm1M}ITQ>SC5H+*gf&9I9CC|mpr0?Tay72Xa9?LK2?hfr5qu3>SXes2 z*Ng5hCsDpVF5Ik~7S&?2PjL~t8W01Z z9H4!SpA+(u)>F|c`jd?v)_#VrRiFePLlriLDi$xen}YL$^&$fByu&~C#k3W@=hfKcPbxRHAX(sO3pEk6sM z!On9@*R|o$bR3IgJ)R9jE|R!ZVQ*BX>i3XAA(uuo4#grWl;-&PyPdzE{=f$ht~7Y# z_g~*{$g7v<_a3$%-Tn0YGkEQ}pZ-O^y)b?Lv#-8;_lM6vv>yHQ*T?U?{>>MUAOG^Q f{PTZ*e2p9VOZR^4zVc-=36~dF=ik2h-beofnW23l literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_3_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..df8b19f8e6864172ae2fc99de534396bd84c8cbc GIT binary patch literal 938 zcmXAoL5SmY6vp37r<2Zh)_`Rx7$iuA2vMShHA0lQX4X2yoeYzKEELH?V9U}&kO&1M zMC_qTVFTMkksf*oJ3U0U;2eT>B}!Nd_7Jd#y5!J9!Gd!LyE&Al;NJ`jAMd^I@_vW! zy&sN`s#mYPb_D>g9)5OklJ(0OFXXcN?;DRk1jxbh=chL_yS25oy}g~w<#u*<^7;Jk z?km)~rT~tD z4Gk>l;PYWAof2rppj1N}2cfV6AOmO^X5hF@5DrDTJby0BlX`t_+ZTfY3Ic*HRfIAl zle|V%4O+EX-Qmr?*z%j$bwt$y!HCq(!gLcSMCUSH(mA48r8_D=)Wxx>L@j;ZGnZZ~33}_u zL(32^aTKkxTwM^Giqg^bezQ61bb`Sk^8LkZmLv%R!T_p=u|r%O6UvmXFU0n;=B}FK z#F?d|)n>j%MH&LSVJ${O}gt;hps*zx1z{fts<1Mh&r%VQEWFE5~2lesTZT_ul;L?zR1UCl|jx*?<4*)2H8W cK7IZZ#@^Bkn-Bh=G6o#pJUV#v$(`^12Z&dURsaA1 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_4_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..30511674e4c00dbaa556b88436ac2f647be04a88 GIT binary patch literal 994 zcmX9-QHa}g82|2ice&d+tE(C`4@HY+7LxnQ)&>dkba)W>s1LmQOKIEaeDv=c_uHZ3(Mk#pAzZrwy_kH|czTXdi z-*<6qGkg5lW5)pC_{J;i=i*7m^}u2x?%&LQbpjv(Td!@OiRsMD%erlFT5K%t<- zgDGQe4RdSBVLKJ|2{fTmq@W`cAuj_U0Vo)zC6fk0m?UX&+<_$Z3WcFz9JX4>bqOYw z;c;3@a|)T&sGPy5CZ{)riY?Z=vej3dppa$>I-B8SN>tgrCTLZu+EQAM=JM8uAPhqUga%{-W7@lc5(yhlmHr0q6iGfDOyc zfHWM{7-UJvDWZNA1s2>5o&`~WoP-rs+$d3XGuyV*Znxt5_GIFtSc@nCQ(opxT(Z)N zLuvtMhIuwrQ!a?6QMBqt*RK1XJqbJ%jaX4c4xj)K zinFN3a`!+~%FXeZZ8q*f@Arj#UM?2Za#>^O3QIS5#ugY?qz4i;$z_m|Mh1zR403qn zi}CTZr*w<^`C?=J&28;vY19>di03Cm+APfA+BX z(aiO4Gq+y+Z}r5x5%%$?^@lE;y37pLEN{XpRGOr`e^mvn=h@r_t)yRv!gq|`|n@aL2o!mul^wHJ^Wq$cDTd6bLZqE sFYq7y?XCQ@f0cc-xBKBIZ~butPhI@+@^6IwOY99c&TOtvgJ3Nn~MUHWUpBaPC_xt7Z^8I|^ z^ZkClzE(QE_{1Ur9AABP`CK|*NbAIWChc#Z58nXD!1`+&D=D3tnwp-T&SWw(Gc&WZ zvvYHE7>3Qy&o3-2GwVLC!yIntu_L5{gna~t)EQrEVxt!B9 zylPVQ2J5uMPFD#+qZc;@LzgEpnO)L_yd~qdO0*4nr^bhl-0SMeZhe%vhvTSJ0EL7q z2eyQDbS!LS`<>jRS3n~QO%!xwBNP<@L;wZD^la8D6l{WUS$0PhcPo{?W$m}yC=3g9 zuE^yn5oZ;mq?58mt2S%2_?jm)1Ig_vep11i0#z!q5-F%mS?Be-SZ^zBU-x4xN}BPg zGdK*h9ONX(R{%GGura2cFLjA>$my}%7#Qx@j?j)s=2WIoEs+hG?WlZUNO4W=JI2tf zjYH=!_RuiO<`{yMX{N&QRY_{7YO7l9HX32O9sB-ZZ*M#vBPi%VI2hf@@;eoiKq*8XnFjJ)l=MXcbQ+o*_$5e0 zKoTH5j~X;`MdWL!S4W8p4}xbv;6WBKP0d?XvT2t(t{McjIQB-P7^PZ;3ee^fXXiy1 zSA0TGSbJRdCe`53=^gn4)E^T$U~sHNWy>6{NwirJY)f;SR^T<`$QvaQnhY30Kt7-Z z5K6PCr*aQbsF|(dkZCy&Vf1=@xh!d#YMMGt)fmd*Xpg5uf!Y(vkz7Oyjw}MTXykJ! z7SiKqo?H6o!4F(MwzZm|_Z#m|$QE3ken$78d5tJ9MD%M4B(ChLKU;cIOdU*5QyVo7PxVX5yyzKRQS65fp*Vp}iAH%T0 zU~qGDgHI+CmSsdyP*vG9b=$T)&kMtKlB7kkud1ePSq20i6nUuYW-0Yb$DKmjl?%o>ecf(R%o;`s+f*-obi*ZsI&qdX_r@kGEGh2#xNvS`g^ z&49O8q8H1{OpSI%T1`ogV5AAJ(z40vmS`=M#oAb>R$976wJht+@tltY7^{F!fpmZh zFm8=Y38m+PRcijxj+&rA4+=dtIbtr+zQ%7%F|*auGY_GCioGTe&t;5G#c0e?w8nB% zL7c0qZG(bJ>2IO$P6&zfN0CiUatjE3}R z#NoI^PE?vPdESzIYPWpv(ZiU^5eU=kzj=Hj$ZSURlOlluh1b5^Glw+cVO-t9zP zS7$TRaV(bcI3^U>SY&gV*(-FdO^`t%mqIHRr2;DD?)bT{hyOhNz>jb5Rru!bKfmwD z7k9TW-wl2>-~anxdtmzg4@v&=53c{A`RprzpI;1qpVYTcvvBwN{`R+5?|=Fqit%xj literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_4_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..85cc4ed881ebfe4b9a0666bd651fa7598f8b9788 GIT binary patch literal 944 zcmXAoL5SmY6vp37XC|F3Ly;Z|<`9_*L4uows5xXIYG&vTk;$^zwTI$nhk#v(kV6KG z_7K)A773Vz9)ecwA%~)Y?O}un72=x19D0aar6U0gTi6^{2}=$Y2Kn1z;d}4#F7G>h z@AujD!}`vp7cT+8&cU_48>{)!s<2{V)o<^F*8mD|{hgcpt95N{ZGC;cP$+C{Y;10B zZf$L07*;G6x3{;ewOWl~XhGm*Sya`gVd$1+x$a;z3ZiJ5Bw3y_H1HfqVyW4zXd2P( z&|RBz`_gcvj6-7*+w+AdP*{U2>0;Gv5ROU?4CcfVLbov)>B(s~O}u3m)p1ZLX!GF6 z*igqpyF43K@(GSo8s!Q)cMytd01|+LVS2f2;<+X(rK$TGtH-i0SZH$snqx? zEfJhT)^)03GOEKFeZlg@-dOe~N|3Y&7N_eqPNqbaZR&#FmAV6E5a>Z{MoBMDhx27v z=Aj}(wFN{6NC#sF)%u8RhP)m(?787(PJ~V*s-m)ZyH42+Zm0@lLyj$V<{As%%0hP; z`)CoBD=bMh7`DX=ZCSQewcl=!Y&#qb;vkq$r&*REz;z&9j2V`NF)mN2)?DZ=nqJx- zXU;SqrRTFHDpBP!TdmfKnoQ9u#~Gs3RaVD3BfEDx93@el&v{Tp%#h2bLO2@L@9=(C z9`{?PzBvo~=`70gr-%n=02lxcfDdpAu)qMVBnhZvAm2mDOd>&NpvOZ{heQG-1JbL= zW{@YLKtq!*N<6p-o&`~WhJK{Pg(SA0OVc&wllm jum5oW-`m;cKmOjdKKLr7K7QqbO*q&;+%b=n(LDjHoY$_*Zr;Iu9g#e>^=NQ+247;?~m6$0OTk8gRu z;d}3k%hk%xx%1}$VCUeyy`yYi$f}gjW&Pgu_p1OoxP0l#erDI!*4Ee8bGh8c#>VF6 z=GN90hGF@9etUZxFPFZO0jmMt&4ck|bR&Sq20iWT~L4rAC8n zwwO+rclz>hqy?clj=QtDE7DkvFBlST)ks^X1}1yl7DJ~t9vR7LXOXz8G^!Aw(a;pY zR7A=CXDaz&fV_80}*Qb{CWH3NsNU)`{ zfHN}5YgEOcYZj~9yxAAqp41BzcdYqIo#Y6nQsxy}(mB--jgH(IXanEyV=GE}@nSez zg+&2M3gC4hTR_r=;^d+juI zRwcsAVG0MafjAz+j;#fM0<`2BZKo zaMWdyD*Jtu%5_<5;KwMMXii95?K`Lv&a`vEM>>f zy;gYo{0D9xRTX&Wuirk&%%=x?yH{TM@^gFlrIU;K=owm7H}ahyAC(_|clE~a<{yXd zov+S6dvJ97+V{@m`kUXb-`^$Pc=@9G^JlOBvj6YBkDp%p;KnWG@9Q7!y!Geo=6|pD y9tRfo&;G-=_m~eaoZP+tfINKk!#7vc!=Lcc-CMI?Pxw0-6%O{RdtbkM?e_nlVw{iw literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_1_2.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..16a6814b40a58c8e823173200959c9e69d89a36c GIT binary patch literal 948 zcmXAoL5SmY6vp37XC^aKm%~5*(Umo1M4^V<@@7*{m?8e5%=H_OpRNC6w+TPyY z+1bG`YjlGMoTg`azFe(X1_T~tsjRBiW|OoX zrq$+qeR(j{Mu|1a+Ov5m(pZBpn-cCeNMEM{i#_$kq}P}X&3xQi!H%+^Uo zfT{wx0i*+zk8uHBA5v-}m|3Gev%;mHqEnf!>KtL$>2`x3=;FvyGEblOta;=ulioUu z&^)bFIf`zuoFRy|qO^6rZ`;FmI|+g;j%R0Q%jFUQVFJ~|*g-`c5z2%%W@2luh6{VN z^v_nq#rbrN%5bZEF#B3QHb)XOo7QlM}W8vxeQ1FWa6mJ zqEJS06HQtu58+Ah97rNGWUQ&Q?#0Kl7wPFIUrPI(JF9H zMR-nsKIi(qr?Ms!QB{>@Q+FJbWjv1Q32Y>?iNu`A^rBHi8i`yA^;r}PD3glg=UyxS z{p1Hex_+X-m50CIF3hdt!>c!*>vn&8ve>(d=eE+)k#mE1p m|NQdf`SW*P%)+;WYISz_vT^(CpnRpE!ST__;dk%cy!$`t^_8#y literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_1_3.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..35fe68540975ccb874716b17d81545f6fa53d3e5 GIT binary patch literal 904 zcmX9-F^Jn{82#>ick-Q+YVcrMK~?aeLA0U>qCtal)m_y?ms5xW8Wd1LP=|UDQ~?hj z1kqrM1`QrWG1LW73>DOcD`?Q5L4yk(1ohy81`mb`nx-Ok!NU!I6$0=3KHl=)@ZR_B z;~VMz*#~C;aR2IyizoHHSI=3qQSbO)RoOIk+qPWS4T9->9%tFAD5~9#WkBFTkz2an?)S;TkQsS= zFi~c6BT4OL?rpZANMjn`vgD4Vk-kYyZT8j`(?DC!tzt1Mi*R3M5&;Gc0|9&$n^{=u z;ppq+v4e1x(tfC6A(n1$mGLHHCE^8Br$EPB1Qe}5$q@sI_B4KGiixe}uDK5EZRA#Iu+Jm3&G0ry z(HhJ31aY9Mo@q`7gSqFW(`g>Zo7JkSDg=ZDRDiKFTucacN%uD5Xsd_iAgTP-ZeHH4 z_ozkVIM?Y&WLKpbljm(&85y86BcuixmetAF74&#AwKWAeXR0j@4@E`I*(%a{KHHAxLfn$wP!Vb6f9-yNu;9Vs#OME7BW*#nFc# z8CPbR!9}QArE`7ALm$G{!3hyN$wPz+1%n*gK_2>0U4;|MjN_1d_?t2Kec#9L<@^2M z_kB0cZwD4>u?RQ@O;x0f2&cC^JCZ%(8bMy1_nM`J3VPSD` z@yL-Q7=~rD*`=kWLa|t67+Mf`Sr#>|Y#4gIUT?KJy`CS2dvQEV5{3qz14&#im-E#s zQ8Vd=&9&N6x2N_4V;I@vi7QZ;!Y%7!!BPlEBRdAOTNi?sGVJN`pfQczgIQR@L8YL^ zgCk>I9SiK-sGCoQIGWNZQPH7;P*?<(2wt`ICvmx`QBi5gqh1-&6PI%>z){m2UAW;E@N z4}u&Ic^L{7AWR?~jO`RkJ+d6|dZgH6!<{)H+Lfrh#^SXSWh-1)6Z(c6)wNN}n0WPB z&^m}bGzoKgmZTJht?)ukmTgUI*J?f64mzF4_s4sCv)K#*t^?V^m~Kw!`rU_nX{MlriY^gv`po4Y@tvhiZVrO9A}79Lrs^NJ-a#R_Tn%~#yqGZX2>~9C7deN zHhHfh_uG|$XN`jPbQC7ZKH>os00Y1Q@Bjt?6AVxaNkFE7JQu|yi3FX2CJ%lIVhNB8 zNG~9pL9T@SDjGIW?81}aSr7$KB&@0xtQysHN?lj$_v=yQO{Wn`weSis<}&XTB$rTq zQja-jR`!xw|DZKI^v7s4BlEx#Sc%S+d7>&aW<_+Ys@t^sUNZ{4X&j0Gi$rY(`8a&Q;GBLgT+L?wL#Fom+Od=0Zm!(a|Nhxt z=>zH_f~{D&7m%wKxQ_-uCsX{PC@et7rfC^V~DqV|wTLm#!V#B0sZVJ8^lac&A!d eet9_9CjR~X>+dcrf4!YLf{inqYj@vxf9HQ7Nuy!_ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_2_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..363a8e364657a26c2af1a8f5d06da1dbe643b151 GIT binary patch literal 968 zcmX9-QHa}g82|2ixAay=l?p{8c2K;C;Ru?Ch(U5QH?kw+GA@HYM2VVVkv;^8*s*R4 z7>^UXmVi7 z*g(gEPH{RYEhachD6~+~v5inz1&{z#4AYB66US|Wa9MU=lE(G=)HEOT`zQ!-x>V)L zlvH6=LeR;YNozK1^mxk?yCd11sD50pFgPVtS(y|yM$vh_Ew%e<-`D-f4C8K;3}#0` zk%N*94s@%)*=5PCs6L^` zteq;}qB%NpCdd8^O;e%-Oa&9DqQX@gGTo|+w%KsI=E& zXL65#Tdm%F&h(r|FeVdTQRGHLYqfNmvKY$YXpg4@kvfpbq*g_01(^iu(a7geBxc9Y zY!v={_yh0n?#Qrt|L1oy^1=4jnTyZg`1Hn$%io^P=l((F-iovQHS@~L_uf7I!(;Sk zSH8Ktd;eZx{i&DitG|Z5^}|go_mOycoqYWJ&AaD^<2wKLt-b#~Uw!YA@cNng#^38- zRu4bSci-55;rH9WT>3YC>yKBJo6r8`=k4`p7JE-7SFT~~WAOQYzkFW4pAUS# z-wUU9GKW`>tOCH{?US3k@jMY%YIz~<_@&uZfCV`9{N7ef=jP_-=jRs|78Vy5mzI_e z9Xf|Hub1e9!2hS9ApSkX($R{ zD_BFv+LdI#k(zV~G-A+1MKc?rAPpb`s2HXvlNLeP6y@^#fh>3O`Mzb{s@GAwO|Yr7 zfHN}5t5im(vlgq_yipTNo>XlqZddiAJjoGECe16fq;WZ2)XQ?YuGW3s53L}ohNH${ z+D;0PQUK2bX#!xMMp&2Qr<~IHH)LD_Opwi7i73OIqJChF)ph zcBY|+hCwpLQFNB&@`6}Yl!~U+ip6H7(yrG--yigPS3=ydlYDHC|>mE7eY;83o~FAb=`ihLW^Y(k{?7 zQ}D`4tCsJ0R=-^v^@GXe77_rm00w{!-~n_1h8Un2vWQFrc`l0jG6gydRRR1AL^2=+ zkdC7Yi(DD`1=KC0$c5X%b0CS3m9c_`TSdBRXBw{7YL&v!8;wE~YY};1&4gg%vP-Hy zrANFy&Uuq!YwC1o{s8sIR0=o}%P`5DKo%6%%uBXaaI03!tA>F$iUKqlaFT?4KoKAm zXHkyj?tmznwc(JfId@=myJ9Y<6bhPY>MT>@7)M||k!?#%Po_uNG*U@qQK-fuUqGQ0 zA3yh4;*Z-u@W$?r0w;d`>1<4D+nXDEPrdtbb>rSI*Y2AC7nv`dynf%6p6O11Uw{Aj zl`g*V^4zhtZ_Z<11)rwx?q582|K8CX>#sik?X{cQ`U79Du!XliRF==L82_an{^z@2 z?m73!jVH*(7cchqv8xx>c3*k(sQ6jp^XH!YVD`fouQ}iU*xA3i-)J=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_2_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d4aba2727ca463bf7b82d9fc00a96844534bea89 GIT binary patch literal 928 zcmX9-L5SmI82x72nRKQuK`InBhb&f!5{3wI$svb~W|lZaCcBfB3OPgw*h6)LM9d*z z#2l*hkV9GOQly7~JwyyRLJk$;lEWN|MyS|@phYScStLpiJ7dj_x=H>!0k8h-YV(N&d%=cZlzMGR;zn^d;9zQ z7>3nqwS$9$W~SOx?h6uGWxjc%8;9j4dk zha+VY>C?oTW&PzU5NWK<*G;+Uwn^Wh#uj_wiOH}%i_HA8x6XrYkxB&UG}r?8DmF2( zq>nEqjm?ZeYX)s}bmb$Iwg40W9m7lthS-9@w@falu!8Te#lTk=s zrzDeZyR6~!)=2b1c`#LjnI7jIk|P+Y#jCVzaGEKaJ*79+$FUh_Zki9W^<=qCZ~+=B zG&?{#K=~LqZb}iQC4!l?`%5b*{1ja%bi?2XTcZ1IeqxAIOU*oEF|<~pS0ux27NS*( zH#mxJvs_0IZB^|X#>lp#em@zHvp8PP=S5Kn%ys?#{mHJcLIQfbEEc}rG$dMV~a{lVoV%F}GK6hN0TOT}HC^t<%P5yGB29d#~4 zcaefdH`txdKQ9WHwQsMS+6i zE}HdF9>9~}IgmwYD_GZPx;8!VrAc5+r(TwY>ve`oFQNmiQy2WE5|DaKnK|zlTDY;N z+u`ggUZO=oHGm^AiNQ62?5eEOk$txt4BTlr$kK3~r)aa}WEsVPazLoeqF35I1>rfP z)ruPppTe5WL`_q>UBhuqmhm`dD6pZ(CNeWu=ykh=bP~A~8nGxAP$rk<=Z@S@bS?{zex{2`Rw0cUOayO!Q0kL zZ{3%_y?O8GE3bO}xN3j*K|cRF`?B`xZesqKJpAM3=brVm;+Y%K-+S5lz3#7%zPMQ` P!|AQFlW$&s=hOcI^%jdb literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_1.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c88d761442dba5b53527bfd36f6ec2a2f6ac006 GIT binary patch literal 1043 zcmX9-afsV=6n=NTyY#M%vg;pp>mU82Vy5w^Gn^S_kUMj;-ZC!da#FBphGAE*xZKRR zA{|DoP^8<1vqBvOD~qgXamAgOKZ=AAv}$(*DN;w2;wq~+Flxmz5B!-i_}+Vb|GbZn z@4dHIR}%YX4$c6;zU60@PI~h}uMYTqUO)5X`I`VfSUs_J%%fvtW8>rFKA&%5Vq$V~ za%yS{!!WTdm8E08W5I9LnDTvoOl5{}k!fGls^LTfPnnEtCyPBrcQp&`@I*+WBH08{Owu)pZ7PDDm%3%8 zU(dT{d1Tj7-wK8(oJf*XnqjkoP?V%fHrpr`&1%&)j9#bXx-No<40stMYeBXd5!yt$ z#}@i2eUNRsT4&f8>~%*dKm>zSIGl*a1R^fcw8HTP(OZ^l6icmI!?EmPj{%Xx6d|aJ zQ7uDMa!kD-G%M*=UG18cLDw1%?;r*s37`OI0Cj*CKpz9-foD-pL3JHDT^kg@!$f zxzfV=l_o1}gY$_#WGEy!llkq$iFEeDFB~32g;fX;qhQugR zaa19Z!62LSj-Q$f{CV#O&YfHlVBz);>mIqjytKG>X!~Mman^dw@4JiC%)+hJ?GHPF z&GtO~(%eJqg|mPCeRuKb#`@PAzwBQ;9XtEMwNneRu`@?rIsRVHpSirceU2N=-TLC; znDx%W#fC5W`H7it4m^9~^5f4>eL4TtyTsF#w>Gv8e|trm?Oy4=v2^;6t?w%5FD%Y| z-+hAq`FH!*kKJpR_7g`M|Ne9M#aHJ)`}DW>FCBV8XszAYeD3(o9eV4hM?N~}ZYf7^ v?>_o^;K$v<^_9W)Y{^tFs1NLJzvkNvjy`$$zvUIr3@jg8S-SevsW<-z{)NR@ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_2.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f81acf91c3ffcc76ea2d071ddd4ba2f5db5dc888 GIT binary patch literal 998 zcmX9-QHa}g82|2ice&d!g7%?e9y;kmPO@FlD4Av>Zn;s9oR@Q%E7FG?1lB>7pmFO% zg~$b0UBDn67Oaqmh*cx@;e?1C_GXo;WrTSTRWm8GV3AX+ec#9L<@^2M z_kC|~tY;4&diW3k9A15Plu z2V2G(8rHV(ej^$62sENmq@aBpp-u)s0#Gna!*PQkY?5?2Zd;PNg+kvj_8bSb+XR!$ z@F`kKa|)T&sGPy5HmBDG(-W&L+3hKQSV*%3oy~AEC8}&*6SRs{aTLeb{J`jh)nL>Z zOxidPNf}ZFNSA@MG1f_Cn`FMtYeCK$=Hda2a3thVC>zCYOA9goKd2o1;@#x!uDMaVs>Fc2!k zygMqj#`bR19PRffXpzEkHkHbzGcrZ19H)y?MTwV{n^v{kXoj628t|Zqm@eanlD3Of zz07+Rxm7Q8J)_^QkNTY`+Cw}*4nPO60X%>%zz_ozLlRI~N1ltqzC?n?K$QnS3!wx^ z2Bf8s#UNKgei8L5D0JZMFUn8kq;;Y zgyJkJvD|$SX1P8bvh~`1=)Inh&&$Q4S}to0ZL)NYXFP#vi}bEUjdB^Jq>(|QI)i*3 z1!8>s?6JlF4u0UZv+FWE^T*E@VsdSD<cQ`h%qKSfF*aAXEa&OJod+)6 z{cPsq3is)A>&R?n=je13X!>wi8-@4F9cQIHX1nJNAWe zs?Hb2GPT#azuQL=gY|`ur4VkP3QT%tb9bJUhW+)zDpupNhz?aIlVC6~5+TsAxrL=Z zzMXgLHHk_V)dqS95XyQ0Du97u7LL0l8PIej2zRQw8Vt6sdq10@G$pxiPb65C5)4|l zn7+%IfnZN1FIFZ?Em|8%F`#&om3xB5C?>C4k~LPxGh>!mN$zIFBroT?LyC*g)qofP z;ULEqp(n&GIDKZ8lX^As{WFLyVi_(vsBH%wQ*t_j**0mQ}E+7v;nD zfI1A0^8_JNJ&j>aL9i8dY&6T9g+E!%7e$uWI}r>8vo+i`s9?xU9Wfqj%jsYhyW4bH zZnL_+ME(G`mN{y)$N_LpM+^uxqKt&L3L&WUxE?JJ;rb!j zp>0KXfu}H;#dVPyYMe7r0(Tfq++{q;v$!lWRPT62K?$G&5Nf;_H*#-5dd_se=cnOY z*z2{V>)LQ=I*!G$9?ym%7fW2Kup5;r`#oe($fePgLy3rTr8$27qVvz2ANcY1MuRV3 z|M`7GF0L=1JZt}Q@$-}S;Ins*YJ|;yc=z{D!WZ(lpTGKe^78#Z{`&OQZ~ras?q65` Z!bjhIaQl3B@kKKT*H<@}zkc=n<^POxdB^|& literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ac381f68f7a4a75ad386b19e87818e2bea37b417 GIT binary patch literal 939 zcmXAoPl)4m6vyBEO=s$mWs4My5TrEK(tdhyinm z7@WxN&Wf@Tv6h+eYmT4NU>-PJ@@iN5sJ1Xhx)X-#4T`}pa)3K3HxWobC z8r3vt)nRp?HwU5{O1)SKrdpJ@NseHe4PK!ooogAQ(UrSHZ5SC*=A?NqD@OD41Q(#D zK)ns54U~^@!+LW}wGzR|RBvtuOFu=YGF{U-!fMi<%8zt0HkHiPXMJ-Ky33@0o`qm_^b2>}QtGNK0gqaHNXr$kv2euG)m3Yve zgw8A(6ti@-dV~Z36~F}W0YZQYzybqQN*0lAqA)=DOs2qKp(jApgj@!s05a;xV^JWZ zsDq|mlm~DbJO`2ps*H8?x?|Bjzc~u@ICirvEQ$=3ETRppT^0Pg9FST>89DDSTj9!z z&->GhXpUw}ssTQV`T`q@Y$7pdGF_+*q>;#>(11mefHJ8(e(uHU-Y1b$GHc3kHm{O2HuKs1UG9*%fy}IjY~eZ$>e(p(m|1##@mx6P!a6z;3Hx3IyA2S5vuDnq3hBtm$e}}rB9X}G=;+wk z*!cK3hG7#E6O)sZ@nkYdQ7MjNMUj`~tg0%7Lcy}CjfUfS+d(iG4yhEd3<&&mHXF<5 zaZOJZON>l!>ZJZ524z%Cs9w&?@!=dw<}i6CjbG zv0#c=O~Kq!v{Q=>+X>W9p`nBhOoY57fB+z2m=cW|iG)cIHp6TQLMxZ+7{+e3id;8A z#gc41CE$!iq!lt_P_oIW6|PX{%T3X4OHPo(=|n1>WJHpe>8!#jMWI-gs*d9Lh8L9m zeyzLjMp=l75YGXw17TuxHJ)w|S(jD(OsT8d1JgrW0vVI(gq9{t8Kx$4O;z*@a>r78 z^}@il_We5QdC?e6kQs{3v79D~C0VX$TBB5Qt5x4|y4%}>!2m%*0m8zlT9j)h#5S4h za>ZWO?rY6~xjk(34?6p3nv6#2csz|KMKUEbjLHi|DO{#EO669q5qSQv%YwvXsu(pS z+{}{|ovjzeW+m6E8y&aO?|8%EE@A;P04jh9PzPuM^e{jn1P9AxW5t+{Wt51cOQ42T%eIF?RDvn-w$DLu!VM&2$P&3f7Q>ixh&!!FJ9 z$N>}pLSYugQ0^%b1-;Vi(G}|{)OMT8X2pD7)^&wS73h@3Qgx1U`P8;R_A^N&;m9CR zg+dOCd_FvW`lac;CqJ-uZdruac7D4Yk~>R_3+G?_yh=v z_4x}+k59ULvyIdD|2Xcw`u4qt8#h<(7GCaM(r2`tyEk80+dJ|7On2_{N54Ecz3FYv zP2Jkm?=e+AwtM9Edh6$({rb=j7_f|7c{nod5s; literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_4_2.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e34e4de8b65b3d5d9cd53c31db0a33b06d8e6e00 GIT binary patch literal 1041 zcmX9-Ux?du9RK!ucey_s<*XyHI4kran>ncvF|eTV%*}daT;_7KjEWh{uxKB`$e?a{ zh_eqxs|Hukq8%0qv)(e+hkM9Im8y9-S=_=_rGuaqDl2$OH#_O{z@Ht1&-eS~^YZ=h z;q(2zb6`2SeP-tj0Bm1+aq-}2J~gVyRCv_S5|20lVK}gVW#5Q~LZPv-v2Zv%K0ZD% zF)=wgiDB5()YSC!G#-z~X*$94oFoZ~lGZdepU;=e)q34=-Bu9v2Ln0*91Ef_n@&fw z*;r0b6pC!QBG&41qp5j*vD3A93QMuGs(>4*n5mFejb6|5&2q}CtHDO07g)o-n%2Nkv7e4j=Mg`oe!VwEow#3-Jro+|l@Z*Yp!_eZF%0-1TE{ zoc!tckHmTRmls}N`~HXMt&{(HmnN^CI=Xjr+j%Se<&I(M{VQ**o!t`+F?V;}t>HIc zzIQqodS?EsH+SyP{quwUtKJ8ntev`-rLQl2`lEMo_s7S}+8-;&u3lcH&V6?B27Tkt t+uvQe{LQbs?#yX<Cc#PN&=Lo}HbYpPyqG z*6Z~yE-r}SaL942B#D})SeD^9w(t8T+dfxw9#Q-9DBWOc(mLLU=kATJ*xiMDZjm4+V`;EZ(psd#X+s<|4Jz(krT2Suc0T92a4r0Wku~ z1v}9#;}$kIEp$o+hy)5n5~zqswfXT5ljVhG~6?(aLmkIF_~)Fe6&uyZ9cEJ z#o_PZ(A89j_=T1ylh-Z5Gqk?j1p5wK>-3*+}FPiOUuCR%L2^h)fE3G@5fL6;Y|Q$IpM#e|!G}KRmhC;Pco2 zeBX+XuP(oM+WYOZ^{Wf`^u6w@$}_E<{;YTT`-@+n|NHV~^v&P@eT4n_!TUeHefHN+ Q?EqXoy1xA5%kO^v9|ZY#RsaA1 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_left_to_diag_bank_4_4.png b/resources/g2/track/alpine/large_turn_left_to_diag_bank_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ebbc588d3a5c826c5905c0a1d2f5f86d5d734950 GIT binary patch literal 967 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 BuR{O; literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_1_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8ecc72ea947d4a11745ba81f6daccc4ae5547b71 GIT binary patch literal 878 zcmX9-Kd7sA6h8On-kAHs!y$vTwm4*PkYd5X!NIoPhrL*?kLLpi2QOG^A%heP87x>T zG?WYu8Kh*$;E+LRh6{CY5NaVq28RqOIAjQ|!yBYHf^z8{(Nva-|(ID%gcND z`Lhq70l@RSFK=IU73-om=ymzqkN-Y*J-qzt^^1;PTwGjUUiNyutE;Q)>+62Mk73wg zFu1w7A;#k|$FY(mYMNqMhU+>(5Jb^xvq_6$UsX-pax91fsLIeVMw1CO_1M{5h?eSl zV`jO#E9b{kEHRia3>}5=bt<&zmCHQ_QXc8MjZHdhB-LylVnKKu^>FE>ejXozW-*mLU~Sdqp?V^DkYe->@d2| zS)t%Ar65rjnHKNNw6ZClWaY7-F^a_-j^xbL*~(m{PFng!wJ7WL@tor#j5Hu@pgf>M zj9(G*hBk81DfRi$jhnDQk18{=cycN;b6r?lQs!!9U>zd&lmty4oy!EB3Vg)VjLz}4 zC`~nOZduFebTgmlt5un%$Nj!(8U&;RbcAthT*^po$Jj?{b~566nl<6R-PBKqGa52D z&J%=8jWvd~1i@9*nb|G#HuJ@Hy{U?_J&Ir|n5*HwNre+;>50iq%a-;w@eld3J``>H z28jSVfC~@;Bmi5069%Y*Dk0BBNsOw4N`u3}LWER?N(H0=atJi%P^_YKf_5`h#qiE} z9ux_56`NRuKV=r7ypF9b3(7L7>k@TZqz#-m6hlIdDKn*=N(dVxX{Xsa+C8O5bZF=i z@DwJqxFJ##jq_|J^e6Gc&yq!1Bz0Aw_Q)#=N&!`XQ0K+0lY0*`@Rp|&zl`3)-R&g9 z&?Xbh^Bj&1cs3HbMB;LV-K$KkkC90spGHd#r6MYo?)dpnhX20%f$v}4Yw+1We|^)D zkM3?ie?9osdU$yI-_wEZ|Lm9_{P-u||Mcx206*A+-@mKAUUzeF_u~Hcw=W)k`X8V% Ba{T}R literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_1_4.png b/resources/g2/track/alpine/large_turn_right_to_diag_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6f27f32a14f5c440a4a595626bba9b6e7c19a4ac GIT binary patch literal 943 zcmXAoL5SmY6vp4QGn3AiF=%lk1~v;tf`lb#lpF#^&8(dvGFdk(MZ=nfz!vNwhX_R? z1ni+m4-u<&r7S%JtQxVx9D)Ri5T!`n4N|2pK?+l_hed)^=wZOWSr)$c9^d8t4&Qqp zTsf}opL_Bg0PG(f9$d}m#k{amG4F5fM~47Kxbo_?%emd!+A0(Z#bR-LdwXYRXLolO z!?04Rw70iMRI62vVnsgUSPhzmTP&Q@4sZ*{&4=wJbEk*tMbZn-R&MNgbSzIGQXP_m5t70P) zi@NxHR9R0+v|`a(M`tcVaTP!T&@s%!afc*bn)U?YL{TP<#@uo44~Hm2k$S&bH(2p6HE z0?`1<2HM5=AyFICS|plDy}Piy%#G2B!c+{NY}J@FD_~d))0!M&mS2)(a7I8M9Q}(J8md3~bTwsNtY7 z@tt`zSk2@0`aTi?>Hrpi3*ZAx0G1e_T#AHj3;7;O=L!ub2R#vj8l(y!6_81wE{8k? z1x+;Vpwxp0!Sf(XP*<>~K{zd@=hjA^5r*v~@mH$^Ghn@?bYQ-4% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_2_1.png b/resources/g2/track/alpine/large_turn_right_to_diag_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1a60fd6787ff975723a6a40c59cbc315bdccfdd4 GIT binary patch literal 1005 zcmX9-VTjvw6n}TUyWCwJofHf#A0l=TA-Lf3A!t5CmpgJt&daf!6fK&$fCbA4m}%7_ zffcNyoKfrShl0fg?2Sw-o-B^4Ve~`wD(1FBIt*B_x_&sZXg{3ifqydwzxN)$FYosr zzxOV#tx8AckIe(Xk>#a@(@{-DfzQUGeC>~!9e^0Dt*kFbbYfy+a&j^ji%m^UO;1nH z%*>qcmH~kWMUH1O$y|=i z7no9+uhx`CQ)~HVHz@Z9j!0u^K5odkl_qVSs+;UqQS__nZqo=mrD5pokJ=Ie8Vz{? zY!z!5m|srx8p&~&Ktl$NHFRhr)Q)yg05l9U5($eSY>IMteoIk0*=*0U_Ud)y`vjXz z2{@yWyhcd|owiur=FOT|bmdA*b-J1tW=W1olLFR5S|)+EVDG&JlTuE~oj1F1AcHDC)hcIdF?3 zzq%i|XwXh1If_oRTvibCs#@0dT0Y+_m;HJ@@Vx%+?r1bZKo~$(F}9HqTZG!Bvwg8N z$T-7%Yh>?^o5RE2K8n+c1c&1inNn#+=Xq0BN?O#c&@5Lvjb_*m#(e=a88g*{rIB`y zt`!8gq_%3=j%)S&+OXFikN1!OkOnXTYycOa12DhaHJ$@mgtUU?bll3*6IG;krBw8$`-P+ZRMPb)p9FA+Z~2&H12bCmi0avTugW2thnT(pt>4k#9GDVK53al%#zRc_@^e~-58i_0l)mY>S zD3GJ$=N^gwb@vC(pI%kri95Gnj7V*H;mP%f-~06a#~z41IxAjBuVcs87guf_<39ep zhIYhWi+^v3hA8gE>gTdKr=J9%mQCV%qJ@RgefFSAcq zn2&z^{gU;`uYVtW`{ozdnn%~E;`PmM-rf89zJGr@fX&;th!-wyJr|7$%ZsZEpPf2$ F;eRl#wetV~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_2_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab96b9ad09747d02ed3d3b92bc753db8f0708a3 GIT binary patch literal 995 zcmX9-VTjvw6n}TUyWH(KD%7oN)rbWn#v@3Os6jH9JK`A!-HzD-_KjVwE!D zu9Kqu5YD0jt5gh9G-6?g#2HzUd^n_x2*q_Hjt(kTJ*7xK6ub|AGX}r+9=|W|_k-Vi z@15KfRu0{F2mn?#o?kna%xqHkET)qF$mbsk04X?mVrxC2Gcz-@v$LsGYHn_Betv#o zVFAOi#l^*?rKM~>pQmYx=Q&vxHBB)Ly;`l>cB|9zf}kHolQ^a+;8>8vWkt!9N_e?K z)#|L>l-eED?;5?ZJ{&nbi51voUCf#V+|r1aLGM=iu3hML^k}a(j-2Tv5OScBQ0Bmr zv9^wN>*+x|6ZdjxOrcms2Nps>9zX(6F-%XV&0NkR2!~~NC26l%9GK>QtA)DV9G%H? zSxUlLl@N5YVA7h!8cn|HiVa_Oda4%{aVAFzc~&MxjZt)7uSvC*+VXTSG=r!Sj@!d& zH_bsthHMe=3J?~?w6a2nP`aER7V1O8nOFhZmB@_7zdXqmpk=(x77+gZ`kioCKCiX9S9qv+iBj<$vv_-q*q9BZi9H=5@$Z1o>trFR+ zaBfZZo5elX9CVxGK@i9Lhyy497yuT43$O<;!T=?ZcvLZv>!4^L5unr1;J_0gk^sqo z^en2=$dQm&LcJP_9Jn1k10oLv2`gz?vrINDq3vkCUkyWdJPuK!l`8^WS>~*)QDK*&OZibXTPM5;-p9k%}XeKusEX916wc z_?gw^e{cW58>cp9IQskbR}!+bvG&~7qdTwdJbfhf#3Fwgy`4ICJadCOeEkdbYP|NV z^VS1*f2X^tzrTEE>!lYz+xYO}{qX(!fBf~}nbkA*o|{$PJ$(823n%7`s}HSQDs6vo z!T$RET^9;(`m3*3|M{)+Wd4(lZ?8V}@XtSNwoYH$K6m4npEl1w^X#=xr?+PRy!H4| r<0Agm%iDeC?2lKtwS67k{O=%j^W#hMV@KBg#2jp_Z?1iF?CkdcIQ*)< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_2_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..614c478637b91124b5c252cd0d0fb5b801c92339 GIT binary patch literal 896 zcmX9-F^Jn{6n=NUJNeE8(|Qn8AsRer5RC#FG>D?4xR0JwAc(fO06o;HECTTTA!B5WEhc>M9xi-sN?92_1Vwpy*Dqod>F?!y}p1m3dtLk zWYL<-ngMT5MK6{osT!?}q#TeO!AN~xrDc=TEzue)Ddpr-;p z0MY>}z_=MMEhs$`tU~j*cC-(2bgj@mlOskF?Q8tp6jNI*JaZG;yV%=j;Y|^vUEb|+ z6s@t`KoCc&>YL_tG+Ow6Hk%bmvR$wD`#l1}0xHDVc~?vcbwv-h;&`V=)hOKu>v~b$ zZf;PA?shpGm&m?KGbYd5vNATBWzNE%Ea!_dFY2uThK$*2*EPssNKYLh9;@keu#DYJ zHmx>!UB5;GfCgX#1OPF>5@3e`YM_Y7u~8hMa-&dSu`m%Jk)TunsemjT`7DYQlnl{o zjLHb!7|($$f~H_Y6L&}SB#`EjnWkP*#8p+GMvE8#>vV(wS0d6#D68ayy&l)2^d?;0 zCR?=GQ$65FOk%paKn_*b8OVVFUF1BTM(Wz-R-z( z_!jnRCF;659GZ?}v5dztp}@u>o5{>tp)0MA3=+8%nzASnP$4(R&%NLI=gkj%_2f#0 zhp&GBtReR=&mTQ)fBV5tKc2yZ_TkU}At!%%KlqkEq}_~h5^_uqZ-&JXW?`p4JL ee*62ypDp*_yLZ2Qc`s}x;qv0@{KbdQp8pS*F?}!q literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_2_4.png b/resources/g2/track/alpine/large_turn_right_to_diag_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..96d3234757f5df5104c1725b464bd918e0c49cbb GIT binary patch literal 935 zcmXAoL5SmY6vp37JCn{1LtqOQj1ZS1Im9(ckQ^e$F|*VmGFdmP5ragGSfxk~8L3bq zVqm&b*c_@Gq(YH^Jp{JO9C8Q}AuK)g5SAXg5U_`$1s9A`p@%{KW?1-m?|ql|JAChb zeecRj`qX z#XWpJs;;L5S}|y?qYD?Iqz)hh=on_=xJ?i)Mfp5`F3Xcu*(}d<1cV8chp{7Ej0j~)Hy2`esrjpRl)JO_ zcy%$~pnV$0xmvA3))ksDc;1rau3jwbjC=jbXq+YKdLe)=VU~j1I_b9PK}QI>N;GIr z0(%}0R`X=NevAYF6~F>;0Rn&tz!C#gNET7YLV=I6xlDn{LSKNe0htU)0c6%tk43(W z!WNo#QRc&C@Ek}Ys4~_vYId9MyN!`=M3IxG!D^MFf<-ie?d%I~P4-DWq|A(Wb1hi6 zqm4Jc2p4FcQ&r$dtij-#K(-XN)0AAh<@fC<=%-1r$`Z6*aFT>VKp7xZWYH~fPeeGK z!E(tByeG1zQ&H2DR?FygOqOvt#uL~;WMhe$$@EICBb`Jxg$67N1(Zs~@pISr|GE5u z(_1GBy!ywZj|%hF@zLS!%6Bi_J-iBs<mR;neC&Mo)3s-xd-un8)U)4zeelT{b&qU+`qyt?o;-i==co9?SCIJc!_T)S W$p?!&e}h*5;P}SL(f!xn|LTAIe2kR< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_3_1.png b/resources/g2/track/alpine/large_turn_right_to_diag_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4320e4b19388b03a2b7b1b84eb1c153d70407855 GIT binary patch literal 1019 zcmX9-e~8<36o2plOQdIY|-}C8O(Fp-`w)YK?~Dx_iDK42LuY91Ef_o5@78Sv;4g ziY2yE73&ST+0r{+sn@r75=*nQnh-P6xTz2|o!%+%txCGn(EN6B;9L8Fn~Z}@LXHDd z!s;5V$l^~`9o(ICjm|85^ATljZ^U|fBZUv@`c0@9&F!5ZHET!4H!Z&rvD=6KH-nR=u ztFrIesP9Ii3_+%8M&JGcI*VwZ|9x z8EcSh2Ik(dF*xY%qggT%VPdf)o{&gNVOd=ei*mRu-zb&a^@i_y!yX5+fay}ika06h zR`Z-)l$uqwZ5!QIb&Ui{-xUeaXee{wB*7N} zNr1E%D$&Rik&{K8BJwS`7d!(34`~t0DlsERmd#|{Qku&aqVqp1JwUdPqJ^EkAqw@y!btpO|--rpEt8#-XRy*3Ufh(3_*% zXD&Y-Ji75s{KC7bSAM~H?7sZ{xnzBJ^T~zVe_lHI_1xBO z;o_-NvheZ3iNXAT!TFi(Yx75zmcJx_KbXc|&0tIMB1_v#1#17Y8~u>b%7 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_3_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..557e7537762437320f712c6cece5cf102263e9a8 GIT binary patch literal 957 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 Y|JL!xpMH2y=)>{NlcO)5fA!t}0d=&DegFUf literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_4_1.png b/resources/g2/track/alpine/large_turn_right_to_diag_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1f6542358a71822014c0981aeb5f8819e1aee1a4 GIT binary patch literal 992 zcmX9-QHa}g82|3tyYyB@4=WUw%?L#^$&MgV^N>Nd=63bSxQxrBU>Oku7OWUG8%2sl z>_eS}%bgV}Rwy$M1#?*Nz=%cj5TR-xGO1D}4;72{;oPcJs8I25#^CpTAHSFH_k-W} z-Mq4sJ$d5P2>>{`{q*K;IEk>5u}IjJPak~+AOcq|U%eF4rKP3i<>g2u5{*VzR#sM5 zS1}BW#bRq~YpHZP%`mhe@UkqbYF^j1N~O|hv^pKf^9DgMoy`~;cn%~np3f(XMWR%u zt2M6Cl-eDo>*{^KHX2(3h2^-oCZ>!WVX9@ ztgT^gEir5-XMG$^Xf#vM!bHeR14yBN4AT+`1IJC0v^efal6r;0&@hf$E#$g5lT7m| zS|T`w%xYB5U{sUSn?l7F>s{IED^5@#Se(wLIhhhwHm?amZLeo;RSVn(jLv- z1P@6WQUxH&K$;laN@Y7_-sLqvR~zZp)b!AiL?u-gFJ-A(j%%wzSC{>YI&A1;yE1hf zbKgc|FOg(PD#x$|UMR_OO;wwvQm0mPTP@#lMuWk0Iz@nMKsGR@oe;XX+@}g7p*qf6 zlTvqT4rZOnVmL=}Dv@AQsVtF}DO%+?U6iUyxUAf%)qCwu;Q6x=4~mHCa>7suvq&|| zyj_*M%|g#MhHi5*^k%bT!~^62bN~~;2Iv8dF+d?C0hM)RTPPSxBxnrOd2q52NPuKO zS_;(|WJ$;=qJ9+x7TgP-1yO*Ugca44QKIT*wr#21ZpHWQ$;3yY7G40R9OuoHWD$x( zY5`|X^Y*ONoj3XmXM~1RG6^h!W$8qoCyFvtE{LX4wCYCJuKS)n2|P3#v7(3^Kmi~W zW>F30?gOuso8vLtY}|+5?+f|7Tr8^Pvc}LAmTvHjEikS~4>RFUk{zbyU**#`#+!kWBqdG;d2{%U#-9Q+1~gzZ0m_F?B(tCyYGH~5KHgAwuOE4-{Wr= nVz=)|;_3Ro*N)dRKgPL-KL7KdH{Vb~XRv)~XY-THb8r0*O`xZg literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_4_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd4a4796a90af7d983b26db552db5c50ae267ca GIT binary patch literal 974 zcmX9-L5SmI6n@jrOlEc*d#FrSgXGYKh;faQLs+83-OO5t$YhwzQrRv<30RyWIb@}1 zgy2@F+Cv!2QnW(X&7ok_!ptEqk%^jx9(u^3LYIxufr3@%P=+4nFv@S1h3~z`cX{6j z-+P~LZRS_cJ#!8KRyW>Q-%jS!Nv$oVlb(8~_bEUcw%**in$Wqqxl}5ZPN(PR=NA?h z78e&W3|m@ST3%kpbGaPLGNLFbilk{p!_ceMYO~qycD*nh#PM`CV;K;5kfoJkF4L>-HgB}Vsw*{o#p$bFTp~Gw$>(^5mNc%Yi+WA2wbiz#dyy5!jcC#t zody{JvI^iOAWfibjBDfhE>#Q!Ju1{khBLK8bRg4NjUy^~x?bQrn&=x!RMmz}W9(L^ zLGv_n(KyUxIf^c@TuBfsic;6KR;ALd*MoLD^1RVtFr7{j5IRszjO}DZpHTXAX(ZOh zMQ2j+r}kjhotzC%(F&c(a5$bPa|+F9Ja0&HO-+`W-FlBeC+8wsFFn4x4Wm9)!r z%M{$2;(vbE2Dl5#ST0Qo&!mQf{c|l+^WzGJKu3M->*iIJDEf%(IQH~nk#~h%MPh} zlpgc;wCK(%{%Ny+=8e#BN@al~u{@J03S?Pf&5~qWWv5~JZX*iaNgSfth?6Ab0g3^k zB#T-i_ZURgY>mfUtN9p4zb_VxO1Z3=rp_`|j%f<4E3$#a3}kvz$RU+P7KK_Y@&pt~ z$?|I*B|I(6p4}F-v{@u}6H_!iZLSFgp zW1-xZ$5SV@cVz3FO={8`@{1``~6hv=$l*d zM|WPtzrFp$T50#;C#!$|y79{1lXrI?{`CuW-gt25?ApR-?;XCs(<1+4hT9`_c;jB< Vb^Y?QTZs?YxVpLi{SRl>qZt4I literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_4_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..23e654fd174bf53a320087d767de3841387fdb56 GIT binary patch literal 914 zcmX9-F^Jn{82#>ick;y~qBuoR6;$FuP*F5!&>)J^>VkSGoUW&U2T@cahzCwJUlu& z!Z55}uOA;D6RlQ@<5)=&HBB*1-L|cMzaIqS=`_x=MNw?al4C&>Kvf#L-t2a%p2H42 zAsDHXsgb1iJoi@XP-3vQ(6AK3ZBxEUk8SR%FQq|yKDCP3U{i#Kpl*Yacsr8n-#-+Gg<9YT!f|u zLc_QD+vp z%XG9^W@Y&Ti2!W?8^8yM0A>Jd3{VACLXM515EV<628)BC2(b)>3P=NF5y<0EsG_)w z<^xoO@H%)N6bafY)-?&Y#|(XW5}HZU&+}-r$x-D+c7SslqEDzHWyG{q2>w=&%3iVy z<~Q*QEw^+NcnXtQTo6*MVlf+<%(An6ay*%p(=|(W%mYT-x;mf z{3v(>dp?(RUF&vD$FVrJ&$EHZMG}`P>_TNW?G`d9?>5>)5qfDd+%RQ74H9U|B)}Ae)#rJKR^5B wx_o*0#JOuff9s2HgvZy^Z_j_g|NP^3`0HKvGVuR?T4}-QgR_%gKmPpk6?WrP-G5&vn+h?J-*BP9lrP8 zzkXP`wDZ^w09@LCb@xU#AIhqj&t<(sKkfqL;QGPMz09tyt*x)G=W@A?jg8IC&8@91 z48!vI{Py;Csa!6zEF+47qDY!nGYs9f?QXX>7z9x?Ns@HAWEl{6kflPcR%|rLrpdJ0 zeAkux19cc0r?Nb%*Qb_s-s_<-B-mnEC^0h0 zt5ij&s}`#{yy1$rFLj2BH&%nBPI3fODf0>~Xy;`4sul`*Ty4(`FLfexD$_-cBbpVuUFG|lI5d>l)}~!!?%QeDUBy0{ zM|hE==qk(A1+l3pZB28V%|W{z_Ihy;%qEjGO%V_}P+g4eFJ#}~m2O;f4}9EnvJye5zhg*EGvV>P^vHS{}i}jXHKozeOjBnWn`62H>x*nCF%y|yRLe*ukwqbwMS*}~DLa1dnZm#K zf8frILj|t>`O{mOIojWS`DXspJ$e7~##8w@N+13B*W2*Vi}c1EK<2B@vInFko=L;+>B@BGM7n)g+&cou(}AD6zm_t z^^a~8iCQ5W6?>9t<>D;k&AFT zW-tt!ot>SVn@gtCX^P5l94kqJs%CXvE0s!?Rc|(3-|vLsa5SPaz%n2T3)yTUpHCHv znR11(YGR|QcrCphRC;}zBQcp-(1fHRr%aWo>(o|>Ygux;sfF9+L1>SMK97S!LV*QS z!WtUZs>HjE#Hfv+`w^@AZ&)&62(^*U;`a4L~z zlNm9^COVN0SPcsrJsB~82w6a*PD|J_M1H%ui!JyF_ zx8f`$BuM5URRqGs=z5ZG64@531#+dQ+e6bwTOyfIX}rLb6`5(MoTp1cN$pyC-zg1S z);Mrb-;XC~f|Myb$8rTps;FwMP-s>vt$ICh-Cn0N91aoS8W0vnHR7CyOKmdOE7k2rGxUQ|j|D}*bSZ8qDKk&j zimX$XyjpJCF}khVpzDuDyNCsl0dxQpzya6>=wpB)h#V^F$gxq_6$#KNsIuVl5Q=~# zKw1)2C}fMs&7*c1g*My@o(6#fS;X>c(kPHslW*9n=aquM84LmxY2i7biVLin6z!Da z5?aWZ!>ltZcw?)*=k`!{NF;zxVSFZ@Wm9>HD&_>!$lF!JbE<*w3_>4`dbA)Q7f=WY zMOl<1x!b@?#ah2l*R0#n+ifnJmGXJDSk$OYiOyIo<#1F>$aF+k_Q|x$|;FHrG}kJ9huOZ@(k#FRd(cI@)`0=lnz0rk;BCu8k8P z{qa-%+?6xxh28}7L~hCAUw!Lg8mw=xFD?Fa--DaqPjPQle*EtExwL+DdH)CZyfFXT zFTd{OUw@H5fA=Lx_+n1{c;(8W&mJ*1{=4HPIdN!laNrqL_O9yWsnZ9N2Y3Jd~#K5_5(xuviE SIvcr$wZrSHpFjTm>Hh)IYPnqi literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..49e2fce0fbc804abd94dd50a650d75b601d3ddaa GIT binary patch literal 1026 zcmX9-QE20I82`3z%eHbxDM!Ifa!@7Sg&DXEBL>XQY}655#&Xh!K12yxupR+(*oQtu zFV3PB!cnwBcUFvAp>P!jmxta_FzA%(gf!+QC*6gDbm)cs=@A9Vym2LH}qh)FbJGc=p_kIX~+p+ zD_Bj(T1C8Diw)ZZ8Zc<6qC*=YF99F}s2HZ>xJeK;ML9gbBg?y)OxHATSF5PiBG_0$ zh%++Dt5i~_Qzom~yipOYx>RZ^PFr<@49O8pGQlgfq;Y9o)C+QU(&Mqv#aNWdt#&C`C=H=Io zok6Y{+MQuzaM&H8D2?M>Jf0*I3e9LdZ%A@M9WTo_ilyCJBk=rTPXJZI3 z3Lrg>iY#(uYfFTQ_q@4l~3%!+qVcxmI{*DJrDF8}t+ zBl}z1H!hsK^ZZ{Ae74X(@%_BJjqjiO@AO;qy%%Rb`hoxRo6G-VYWB^SlFsq(e){>< z#c3<-Z&f0nmd;(je^DmLch4+*yR`Sv!3UF_D_aYG^f@xqfBit6|77LE$6q;m5BuZV zQuDQsTYoRljgF=ti!NR&ym8g_e!Ln!wR!Sr@r!de-ZszgEPvkp2djPc@Dt4HlgE$X X)*g3Vu}<9_dxy2v^_9y{zi{Dyo}Ry? literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..dbff2d254de9cb02b3c04b0d2ce4726dc89b5ac1 GIT binary patch literal 887 zcmX9-F^HsQ6n?w2yUyNZ8Nw7oga{deg&YPfEG)c>dzi(r9_N9DAqEVYz`$7;m_mZ# z3=Bayizy^bF@?oIBpJdM78Vx5O<)2RTTH-WiV0_Ng$Y8Y*y4}N!N+^wSG@NX-+Mnj zy_PN>eDDAOF0MYieAf1Re$wr<^@lfKB7hD&{rvfpRvsN49UmWeI-Qe~lhf1Fv$Hb{ z!@Aw>`T03M91dBQ5k)~&Wz*Dc+wwdw3>T|alIOQ&SvL*KfWU(y_jG+Q9+MM?nfiP< zSC%Uy&FoF#@Ai>MV;bMHWZc!rz@!#7d*g{&sBKnOxt>;Kbf|NQ0E32!0D+1vEiCi< z+vT9y5U65MW1zbLp?nCS02ml%_4_VC1QZqV{EeclN29IlzFjO(mJ#e=DBz4j@&+YY zwC1vAz}s`ti{)9WMjIn3ML5oq3Oz76Vj|JL#xG4VwbjBix1qg{y*djIMU3`&f51_+ z#&RP;oT#dAn)AtI<@?!UQ6$Ok_O`BT1cU`th_TDQm=fxS9__^GUXQ9tS_ikys=C`A zP>=5SIUJYBp-M9*&)c#xHQHs)%Ac*5t1>T|odAZ6*=pZ4$Y4y*9U-2o>3p<~-EB6n zwt3UMMFM~ZU;_jIF~AyNj{$0-h{&-~9HDZnP++kz6CjbGQ~;@fEFAePiWHQL(PoOu z2=0UDKo&t$u(64|6M7a%%g9VquPEZGDp2c1jDU4|LVzm~X(W_Y@IIUuM6Z@Wu1{6xZ`N%rtz%EW=i9H>F9v`9n*U;)z5eKZZ~4dF R_w4{&J-NR8?bEMb{tpUQcc1_O literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_4.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..320bc00aad361602931600590f6060cdd53792cb GIT binary patch literal 970 zcmX9-L5SmI6n-)ZD`#$*I z`{?kXeD=)wGXQXQ|HZwl+1$x$YcrSi*Ri|L0_5QE^3lbNuB@!AuCC^CxwW;m_4W0Q zjSURLHa9o7wzh~;sl>93C<=-q>3YR9jYgx<>GTEzKMW^voTMqsfWU(+L3)B0Av6S!wej^Nz$Pxm*kN3pz*E%XCZS`?@$Zm8hXlJLcSLBtd5x zd1xNu1&*Rsma7V4T~S)P-mTXMtya+MMZQ0qOp+u)KpH@GFt(42LsA*j)tT6wSKLK? zm^hPkusEGAQJ%(ejv&g#l0q{&&zq9m)UsvPpw%Ar2XPpsGXXRSGZoy{icXF0T7uV9 zhTZDOv!_9KF%8r71PK5tfC=CLcmN}SIR+?$EF#N9o{QqCOo72dTL8Zdu?$E7WDuyu zB3DL!4UL;9cHu$r97rOlGFHZ+_pXR+EM5&;t-`XPLhxhCW+$Im^H zzxUt=-nn|9!0w-S-pt5*`+LtFoxAmt^YZpLJCBI(qx6|C@`B!f{IhExd_8^*wm<&T zefrXcBk}&umET{T(qG;A>C<0t{_*6GH!J_{UNECexA?=|@*7ufVCR4S@2z|9-kx}u zSFE=`>3_F}j|ZUc literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_1.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..53767d1b257c160b8715641273189cdc13f974e2 GIT binary patch literal 1041 zcmX9-afsV=6n=NTyYzO94l35IV37{8nQ53&BW4h{+|eD8%XXO*?H}39SjFlEjZj7g zkyR+OoN*MbN5P_X_K$!acZX3s46NX}6)t*3s^pKN-4=HT##u%ghyLsseD6KJf8NK( z_uhqLbBUch_Ur(FowG-$=ZACeuyzLn!@ltRx!(W+aO}ksGebHuGBP?k8VCf&#>U3S z$0sHxFboR@gOih!k$5~#Q6$H)qR7i~N>!CyE>|j5>UFExY`d=C?^7hO3<&&GDizLT zVp)yM7no96sMV#0t+t#(w^!u|EXhnMd_+&i3>mMe)Jl%COUYJUao6&mTOIh#L=+?f zvMd-PR#Py$5bD&z{Zz?wj|3<$LJ`Th%+L=%XCWNl)R9yNEJ)59KGol z9k13M*dZ3eB1F;<(*QRxx)Mp$@s!OfPO{KdtG>}hD*_Rg>1Z}V6p~C$<{GN#E)5(L^_rnDjT1?VPP1HA6brIk&SvX{f?cUNmep;yecwkARRAwxR4v3cqGF3k zce#8oRrRtB-)Q&i-gakzrif68jzki%xJZyP!>GKFmxjxn`cRcul(PP8 z>)T6P;g8dq+v@VmpDtWmdVR$U#jfvr_&{U)JO9XMe=lsl))qe6Z=F8y>esi+>py+j tH3H=R^sVEYj}89u@7{dt&}RSNz^UcC-!mJhuMVxi?9ANsS4U2s{~zc@%Ig3C literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7c22932970df9e790c77fb22c0e497038b4a8059 GIT binary patch literal 994 zcmX9-VTjvw6n}TUyWH&Dyd?;G5!i1`2R5|2tj=}G}$M4Jg{owcB zhg+NZqeqS%0f3{0XVy<8^ZvtHP9=SC<@!EA3bvlz-bm=&+}!;9d@7Y%SXfwGTwGdO z!Z2)kd3j}JC7a9T7={)EUY12oD;kDgtJQ3~)#>E0N+M3WcjSV@x|ObaA;ym4-rnRCLFc z?!@X(JL7}F46Rb>G@H%liJVN)8pj!;R9BN_)lQ?i*Y3n&G#&DwikKm%O_i|9lvCxs zy4-b2d!9K6obe!>PH!U~KmjlSEC3H+4`74=N+1cSY9P-=@jxO$XQ0W0pNCiiBm>g3 zsKFptLVg+b>L_;MFnAV30Tc-h1Wa|6x3ZE;s6MI3 zoHZ$W(@J+{_YV9a8cfIxumqN;(?y;r%S^Q-T4vd8nq99Mh2A(0(R9d)BJu&nfKZY} zJ(0T$yjFEaBi6C+!szvcVo@%awQ5yo=o(AgJmU#WAkuw_8Y?-Z638Tx!yunWk(eAm z`{?Rlhd=PzsZAM9{&wq?gzOa7pW1%p<5zdq=2H(XFZ_$lpTo!JJ7vBy)J-+@9i9L2=?S1?ATT5%+nWdde-}GNr zetP2k-#5;Ew0rE#<$d$!dsi=9J$F;lobRvCf46)7zJh+`2E%W@!CZ3gY;LEd!dD-> p_4yz5i=Vvk@Y|>FdHp4GuJB**<<|a-KPKLwu(7%R_0wnH{T~qOsrCQ> literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..70b93377ebf1e6ea213420701d036d52b8903d25 GIT binary patch literal 895 zcmX9-F^HsQ6n?w2yUyNZF<}C7XF$jl7IJt&f`x_IxXWZQtjBp^A;Ex ziy>H8Od(;4DJ&)+WC&Xbv9Pchh=qYECc$DL1F^US2?Lp8i$5L*-+Pbm!Fylvz4!gg z`{C7-XHNj&>h6o1S8cs)1M7C${LgLJHahU~%h$IpJvli!Jw5GoI%j8R=jZ1a7Z(_Y zb-Ufm%S&P~7;qdbNusLCrm5Su<#}EhE>^1~&o@=o91a`{q5z8A)Ajy%Oidhi>I>mq zS+0yUvy0N-?IVf7G@)n7gsV}3NiS^f!IQF3D^^yup4L@#Z1N!q1_Kij0u@_YSmxu~ zW&co+sAkc@K#u`J`2auxFfh!*ahD_mnvMkFK~dJD(bjd}EEXusNUlE+309#5gC1Ip z=5l5r*mKE?TO2a1r_{5F?-* zpaYCw5W^L%XQEYV{?3k?AV&`h(>Hl?GGu&BSejC5tEFddLwg^4O%@)@80~Ys&(n;? z@gq^1sH$(8^T}l8``KbqCdqEIX_^KBX#pK#+!B{kQZ1O#PMYrZsGg)vusN*i$L$gI z7#!ybVn_{ChBXDjmX)c|E^}7?Y`t7nd3o50V91!Q;;umjV`lD%@l;Lcqjl_Vvw6ME z4~I8M1keC%fB+x{SOe@aKrIvrIW~$TRBaU+EDmNOBtxhaKq?@MKt6{e1tnutOi>lV zTjP05-aEbiZ^ys?<446O=fC{N|Ay=Dh9UTfI%t*%%O*Z5xP(@NDq~bxMGzadKmCG!@}eHzIXZF;l20C zz4PYvqgzJ+aQ*Dfll$eqy76kIoPXYa^g2KV?%jQGTGE}Jo!#BtN~N;5x3|B)e{gVs zVOX_VJv=-l8jS|Wv63XJs%#jVWtpz)2ElMVj?;9W=j+XeV?h)^k!zY(?{uiH&GtMY z7$~E$K1r-u<}FvD#9%F8a2H1B7{Xt_;r5$Y-s zZJ=zReT*Lx%`vSdqM5b4r4_FI6kRAx-QdY?lkr-@$dD$Mnz_azuvU?~PJ(R~p;e04 zd75c)d|Q;ds_GfWpxYgLUNRhJalD+**XuO`(gZrdxDhT*NOi`vmr`$~g++I=_UD^% zakrY4HJk2&s5p)@|RNT=izrze{G3u$4L3EO7Jv^B0Zai_7@!i0glr2%A<7pD4JHSD5#lD~3Lq7bNg$6yp@QNL zn)Of~!jQD{siZk9zwk)cwHYy)T4M4wPXN{?wX7yPvrZMu_f zFuRPGXtAd2z*AV0#Wj)YsGQxFeWw%lok`Ts(x}K&v{~}9jAB4JAXIwME9IVnbnU@v z#SemKux2w!)6`DKux*oLU7ig@E|R!JX6Fi1v>HgKkVB&ZhhhQBed!R>3icm6}~-26KD>bE~m-#>Wq<>Im9{{F=a$KSyW zd+4c0KY#q|jmIaS-MD!y{CMlHzrPI_^~2|Xc;%agU4M@}|2`yMbN+ejE~*rt>Ic`d SFU#fuoSmMZJbL5ZkNyYy!HWL? literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_1.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..305889e567ef8c539e986595d5586859f742a65d GIT binary patch literal 971 zcmX9-QHa}g82|2icez_Vixd}Fba^NeF&vqMk%tU3&CPg5F56{LBtnG1%IHJH42#4q zus)PgCC(xh`%o}Kk(^d3EJ%es1ignoWNVMNEO^S_jKS~wK7KFX?+3r{ zyLE9_+B|XU1OROAytciU&8@7STF+(u#s^0?0CI5gjmsA@y0o;kyu6&ti3yNFqR|p(cQ< zVm%WJn}u<&I3E#c#-O>5j$MSJ5`Y4rW0+YeI0WHRl*jV}MLDQc#*Xu_+eKkWu*H&q zGYZM;lw{Inhc#T@>WFn;ZVgp$qz6fbO4=7@ba5zygxf0FHoK?6gV80$dXDk2G3iv($KSIcE8y===GB*o=*hOWz13wj!wE&x?>A| zLmhT12fi~7JF{^#pFczbKpDUSZ~=UP1Ar+8D1#y*+d{sFlCeU8$wEtjK!QX8qyjQ= z)MSyTprDFI4U~BBD0mKJ5y}cyHE^d!w_K^`8N*>cj{VszMwu2-0oKk7F0Oc_9#Ce& zyQ${SYr{o*bR103IHiifk(k63G=Z$DtX+{^r|Pwwq2G!lf0jgOKH+2;1%MJjD9fUe z$vp;9w>#4**J(e7H5!SUrdF$lZJR7p=a{y@`XU?3%%MWh$|ai>7? z{?Bml^}8p}#lM5(oxgg`zqR$<>7&6v=JmJIXSc39>7UFMd2 znHdbjW@l&T=H~EZGRd-xC<=-qXJ zlPQ+?N>#2m)Mm@*`lbHB5os*V&+8IyrAb?(Y6iPe5L=aWx1k4};xKT=VLL^DN<&@% zTfyo&)+)t&^~9)4pdo`sD%!UZY9|3?02RaZc-$fgo1z?^-;m`_HrunT-C7N`S_GR& z3OFN^yh^2XI&HC<%^Ov*;7aAD;&fFn$dVkvq>{WsOB$EaMZG8&YiiBYJ>O~vWq(-j zk6Up85(?m1AWfibjH}_P29;?Ex}Prf4JWkQXhWtG8b{<)bScf(HL+J;3zuHa#=ylD@sYzs`-4QRBF{~zUTF~x5F?*KGz0T^I_BFG{#4dgl~=*bl5ER+TCQV__1 z6hJzTN-T0@p^8gS1#o#442uf=}-`{bS9-xxpo{a=rKvH9EKTlarDguXjEy!Y5C za_`FX>X9Q~UHokQ{MKP3{lv}vYiG_i&z{-+=1M1g|N8C5-F0$(XZOpm`RkLBSy)+G LUHsvtw?6tG*ay9w literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..251476d3532a8d2dc3c050cb22b09314a37e9ff8 GIT binary patch literal 860 zcmX9-F^HpR6n-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_4.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fa2d6ff8ea25546d2ddbe373753000a262db35cb GIT binary patch literal 928 zcmX9-L5SmI82x5CGwE!Z4cJ4`fKiI%5G801IRuGoW~oD#$+}rAnnRR;J#^QI5pxI< zFbqYC=1`U*6$<81Az+m`1UE{Q9J*529D3+T4m}j?VUQpJdl=+5%fkDOOtmOB=V^bn_C*?N^EE?iIBn9?sjuoZBnk|ux*pkbJS;|@W16y@{$xh&5*ou%Vkj>jmD3AWx88jMWx z8r3rBw!`WkZ;nJakOqLl49-Aq>77#E!fMg|Hb2qD$W&5SUk=T6;O6mgn+9l| z;B}6o+bq`+L`zZnx<0b3X}=$j$7vX@7K=R35fBDYLyVo^Vnir&y0a2{Yt`RaQSL2@ z>E>#=MKv17xkjT!HWixDdES)do>q$4)Ba#KnPy2^tOU>`%v5kkBfTy?vW1|hM5E3u zaF+3CvrLNO5(xlp029Ci2modPYYb2cSwyyp0v}~dnF51_fdF9(G8vEp$Y`KGi+mY{ zT{Q2Z%!enzb0CS(ma(qha4dS@wI;qEMQ)k~n@x&JFQNmiT@$>9?2}qZ85!^8YEW3w zb~wKZS7@12b>K*>#o($yb`{p{NS@R62Tl|W(j?eq2`W~cB%u&c1_+f|^h&#@AY6O2 zUUQ@2Q<(F)sH#f0tJ}80GA_pq1vU`bSYj43y=ga*Mk0qoBNl}MN~N;=+$*(zp8UY4 zcTN>}1O{3+Cji72MZc88&M7{63!wO1FKrJ&aoBOKk7K}XU5=r@A3Wfz7M|l z-dbDDEbQL18vqtojw~OI=KiQ2n2SaI_?efE0K{PJnPZ0|IyE)5YuBz=EH*toJu@>i zJ3EVE*xcOQ{QP_>olY|hEeO0Ui>jK_b*)@3*Xzx8+wuKw7>>qch6bJkNsQ-m$wGlB zmgq{At2d-pTX8+T6IA;HOQ5hU7uUp;ktIx(Z0gKrS@7!FPFoAND#Os4jQk7^3I#wb!%k$Xj7t+DvK90R5i=BRKeBdpse=l`oJ!a zy!s@t(ZEk6S(3^!Y@Qd2vRqZwMzPqgR=s93aGZX(I~t7;;2My1jA9H)y?MTwS`+SS@ts~!5mxX*(kV!E6#6v8Y} zjS_EHWVeyuvW=eC820?}_$uN7vH&`O319`5eO4AgjVG7w6D zWI$R9RT*SS$SI&s1%(#e3Z4Z~fUJZS)Ra-AYG$TosjgcN0(&?NP^5+Dfhom#GbLGs z;*eU%nWLONF1nL?XUFNI-iS;BOJEr~k>iPi%#`w?X%wuQ;o7ypw}+vR#(h>4kpn0M zgrY1ek=$+Io(@&^sL=my-(xwN%m=y3Epbp0NeS6X~u*4YO&a5Xc}=gFz0D z0x>#%_L2BMw|?N{(N!6q`t#=#5oxU~A3C=5?zs;y-TCc-x!4u&^1bi9X4cNlF5kGk z{qpqE>GLnVqO326C$HVJP`iG=y}kGAi{}qo_~L?uPd~UoyRSa`U-`GTR=M!y`psWIj_<2~Any5m@BE_|wa1u4#@*j(*V3mR`tSG+Vk6mo2Rr@E R9g$^NIlQ|3+0)Oz{yzuew}1cu literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_2.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..04af7358745b71ce256ca80527fc8fa44c4c28a2 GIT binary patch literal 946 zcmXAoL5SmY6vp4QGn38^OTeNLBSr|Cfv{%XC}E9|bu&vHvP_oEVuTIYcdP zz@SB{bR~zP#qFVofJK7#FpCkZM#!Ou9&+fRLS&0p?BX7Z6e%*u-z*E?dynt(euwY9 zPp%wRPM>=06abt)czOS7K8d^@E*0~B>&1`004Tzh%hxXDc4K3sP$(3O#m&vlt*x!? z?QIOhN~O}y&JID-G|zLgENPlzS%%}-jYgx>=?w-^l1#E}xmxiYNFu1pu3?mGHLC7% z&6e2ds{MgEjGb}Xn#}{5#dLAkRtQh0e2eKh{Bc8$JNkHFXQSpK3)ah|LW0RcT>@Xj z`ZgA~@M*ui8k1Q9&gACY2p09> z(x0pbi<9XZ?Xoy75JZKdHI}nP(NWZ{dsiH;ucCX|h_~LlS@v-~jjlA;1V=jseQ0%E)z47@%ybGGO!2mLRG?rUKFc*#v6w zC{R&UL*pjO0=OT%0E!H{iq$N_tFvvt(hscRu#u+WVv(YpMOJ}#cO{=t1ImmTI}`n- z5w7aPb!U7M&CqnoltG}d3WpmKRnvI4s`y?lXnVu3ohIQTOVDa2C<=-IWq?qgMKi}e z5ZQ3M^SRLNJdiUU%Z8!VYL@HTJl7Doj>LyDA1mBMWfwY)ObU4n>hdU(P^#p|FPz!^ z`~DBSef3a-3xED{JvT=O`!8L4^s{&TXA3`{EfxMn-q#mCzjglZ-KQSE`0AG~{qCLV zZx22H2n3Vlf22{6wEzGB literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_3.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8d0cf62f3addd30b4c625cd0e3c41461bb1bc082 GIT binary patch literal 906 zcmX9-F^J@382xrnx;yFc% zfGLI}LW(JdV~QzKOc8XDMN*`Qm|_k_NHN761es#Mpm!29#Rx0><~VrY_wkzdiub<9 zSC`W5vpZ)1aQotu^ZWI^RnJ+oQSay<=;-+P_~hgS z!?0$vd3t(^ce`DdWkgX>RoO6lmSwuGJDJQDizrRkd0ti(%YeXxBDZ?I&R{?eZD!>0 zlc_Ra=y77LGH<&JL>klhmMP230z`@exY901AMPVP?DS5QI-r0ncA6%Cg_zIL`Cg3?&J{cDe%2C?u~_ zl1Xb0Yxul172QxC$7-zXNu-X8O`)rWJZ~j=HslGZ}&-CfQ|}y zA4nT0ALC}Yw4i#4U}l=PwSv-5(X~Q%42~E|w5RcNLyRpobB)c!+J$bJO!irbc4@oA zQMAT#eL)uOQl zZ1$){x7!?!OJrB28H497SsCfIn7#1E%lRTtvuZ1VE@PJ3c68Do&{JCoM`}FnFGFXO zOp8rgRnL(CpaEC_K0pYt1lVDKYA7PIEffYQ-zXHAEQ|$+B*+y&Dj*X_9*Y76MFX@N zp*(<>!E+#spefkEz?~sI_N94X#Ic)YVNqnL_9FVg+AYDym4MVE%FKDc?1j}Z-cMFH z(H3n=sskK}Nld#ZkOP&q`?Bv0g0T~a<17t}JVn)(lVubE$^oG|i&1U&3WRG&$FfeS}WEq!ZCITCZY$7vjg)X!%(n;h{Xv(5UK$%>ZpL@6U_sbvn`u?Q~ zAN~I9tD1axaentf^T}u5-F*$-y!Fe!$bR(mH}Ajm=Zo*(dgIyKca}fBE=n)HRDxfh ol%N0cko(}_qpSa_COUcVw^Qor@~_7~)*5he@ACYIkH7f#f2-nwyZ`_I literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_4.png b/resources/g2/track/alpine/large_turn_right_to_diag_bank_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..12d0ac8a5700f106377b657e3314013fbb78f179 GIT binary patch literal 952 zcmX9-L5SmI82x5CGwEzy3RWx_G-{D3VTl+dN|dad8L~sx$+B6fY}E+C?V*ENHbTWR z1kIr=J>*caNYNgG77bWokO)D> z>++#^_RLdf0O0Jw#l0)}E#>n>v5@bhf7xpQ1-N|a>V8f)Ha0dlHw%Tr*4Ebc_V&)s z4u)aHVsUqOw_2;!7={)EUQr}XYZ!)ZS=L}MnoPVPn8$INWeg2G2eMRZG%BqY(eBXQ z9yb`uCucvu+YQ>ogE?P$_8hU@O>I z$NXM-F|K4GjuIMWDmt|h3Tgl{fQn&yxoqONO_C1BoyhX6*<6_B-O&j7KF(BXe3h07 zP9;U1s+){vbH-4xT&X`*oKW@RCc)ygSmP8*(%6PB=v}!xQb(TdMP?B9qh!2X`(+*~ z3RIgwbbz!mc2pH7WW(q6sNP!|PHG3}M5Zbli?>CpSLeo>Fg29O(iQ__}zx17(@G(~{xKn^fwTo$Id5>m~j&|Nj0q&-dT zc{WK-7i(0a%4N1%6^WWc(Hh4YlH67EXPrr}KO0ZtAj+0Js1jxC|<}U=nV9E@I;7ZKnfteih2xk zWaPC_*hR4e4~=I*5}+<)Ev;&{slF|a9c?2<2LM6PQkkx2v*4s2-`uoSin@ ztUX;1!c%XF7AaW)mcT^1+~A3p!gQLFZMK}gId%I{;3jc^vL!1?$O9AuLb(^+T<#HY zt211!*x}$2j4%`$4W-r6Ivt&%EtVeej4Lp{M9*a^sn?K7Ad^Hx26;S+q&)oWxzhcI z9r*alp#taszH>b%*AMpIx?23|?MQt5_RGbs^AFJbw|3uslDZRq|I%|8Ui&?65!QZw`mbk=#TTF5e&xfP7mu1>zJ7eo`}WV;y{(_Ve&Mli?%(@m{|B&> rPv3cO^jn-g_~+aw_KUxYNB_Y`=?&}VrQ^Jc00;Yrdp}ya;W`;V%oeZ0mAQ{L)z#e*t5}}8R zfvplHV9+7~d#I2@4}mQ>un~HQkV6kuvd}}72t5=mvSN_PmSu$BEDP`ZKHlZM!+YPC z=Vz^JM=u`%z_rtNj_;KBwQ{akE9Hjj1qD!n^LOu_lx$~bXLonEQmO3i?d|XH9~>ND z7*?%T4-XF;&1REj8Br7zMKTP{vdn(J@B5?4BubJ+mgPmkG9d6EOEpcacRFOZ$2czU z59RShpT^cabyw>^q%oDRnNq`6Nzb507JJzjV_%(5%xvatvS6DhEdq2Jx&n9#Ha4-? z#h2rHF(=T5L4}U4JcN=afDE8xn2F;yL3k7u@cgAL&)V&!Z9g83P#hC%y(u&pndEh< zWzwq68Xj*A#eOIarb;l^qpVGG1k-Br3N0C&W{RdGJ0pD*nNeyd*&yAFSKAmDpsqlp z4P*}}593CS)`Zex!AwJepTyq9ZX(VcGn z`Bk(+%bcnMM`A4o*95You)VhA*_~iuPs2f)gqtiu#fp<86amTrp)w1nw0jPs-y5#i z+|YjxYd#k>P3d%uUe9EiKF9b18;Wc!F$>(N;x<^IXixE>)!qU E0ZGGz<^TWy literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_2.png b/resources/g2/track/alpine/left_bank_2.png new file mode 100644 index 0000000000000000000000000000000000000000..49e268d3aba8fddd1e3786e56a23c30ed6889d74 GIT binary patch literal 926 zcmX9-Pl)4m82#pNI$MW;Jwy!>p=g945hCP}Lsm0uX2>#GHVYLhWFcyWf>E+;g&;w5 zD3X<^J@inahb;6E+zO-S5SA!$>7hstJ=7(K3I!`J7?-m2FzC-L3-9|r-sQc+d*A0* zPUXW3&s_k3!;|BqtL1&EoTn>0<%Y`JG{6pAxqR(X$+ot(wzs!;c6N4mclY-8_V@QO z469Ts2L}g4yu^+lLHPzfw74@@O8SlI*vu#0RUT}LR3<@Zpd*5>VIvbu zJbXT?t*0bfv1qNMb049!4xj?)7-r(QLy|sC2ZC^>s*_f0?l=#ILzE;WSF4Kzt5Ska z%O=xsIKvmLf#iltFV=#o9_1~HCt0~JXpCa;O;a+vYImp)BQwgJH1B1r(PER}BGfb> zT0q%A`xrkYP4f(6(CLglFBuNAC|b;BMNuFiO`!W2H^QZu)TT^pA$6C{VAY8Wf3_a4 z&gUCcWpJD)2$`yD3~LC2rKnxK6tl-(Z!#L^X|`U7pevZA;f_xEZDwGLVONU>tx4$2 zlfi19uGbHc2+#nq0DOQDU;?nj0F_WBWLqc3zPCMv1aoEe!aFwTMz2FrEMSyZZsLY~U+C2g3+Johi zAM~HVnogx=Q){;k+cr7Y<=MW-g%X!2>`Y}=jXKgPuSetWMZmrssfzxMK1_rCo3@TXUw+P?4n{>=N-4_|K`-#&hHe&hNJ#Km92{TJW; z;M4mbQ?HTl{Pot4H*ej3^WXm--TU*S?~Pl3KYw@j@WToA>)mI+xr4{d7vKH!$<1#| PT{yXPdUWTF>!1A(YJrP< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_3.png b/resources/g2/track/alpine/left_bank_3.png new file mode 100644 index 0000000000000000000000000000000000000000..dfff4af61ee01b232997c19ea9bd3895723672e4 GIT binary patch literal 957 zcmXAoQHa}g9LIlm?Ol4;jSdS|7BEW12;mG8G!J=*TRP&Ac{wkGJ`~9yVuc71BNXgI z#31D?E=YwUaTb<`3IY3YgCGS1i*REFGwq;a9{SL^a%`+fkv`nuZ^q#J`~CR7{5}ug z-|ujLPdvMQej5PJ?!HqwNaw3*J)g^@-TnT>HvlrQfBDL#)UK_qt*@_VGMQ{PyRosc zxw(m9ST2{_+S)3W%Vmb41%X!-Nz-bkY1p>i?e+$PAd1FGvREz|8h8$5DPOA8qPB^-_Hnaq(bgx%_BU?j(_dE%`Wk%)szL4yZJ z!TJUkwhNPfaXG@#oJLC(ojM3bWdIpK#W15#uyEWVNsr@>Wcj#WpIFwzUJr#K&J@dh ziIxdYB}Id(T8!p!rYqRK)EO$?NDY!Y!Q!-7<`hcO*qR|2ExFZGdw~(eR+Mz&d4IYJ z3p^ARDAj>z0_k9EuOtr0TF4u5wLLYxg%hD8nJQ{5-VmvFmFsK5&{Seun{>^YZ!f~` zD)!MVDim3gsxoYy7aEGv)-<=#7_{4AuNMcwbUa=x76@N@p3RfovcuvDiqjKNhHb&MQa>qN^(n0mo*3N&T)T`MDcRUgDPRBQm|CQ(J8md z`z>YY){lK_61wwAv|K(!JU|t|1aJU+fMb9e1}K#*pr(m@4l zS}E?CaJ%WwW~|$NCUZ0rYBfdIwPw>`Xq%u?`N-Y*D#gO?rM=3}7q5Q#KZM1Z ACjbBd literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_4.png b/resources/g2/track/alpine/left_bank_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d9cb1de935089aa2514293c24498b83cb025b6 GIT binary patch literal 966 zcmXAoL5SRR6vp4~>~3~Dlo1CUXzHdo+6bw{nnMnuWZP^>m&m4ViX-HZO3*nBm_u3y z3>a{fafuRTDx=IH#ej2&ILLxI%pqcg5vCGxEhD5bhY^FWFvuW#SnJ=E!uQ_eyS(4w zdvEXRu6XjqsS^Nja_7qS^?aVq>#6lZ-g}>Io(Cwv)t7Hv&h66D((>|hp-@;^Sy^3O zU0YkjFl>E&ePd&zQms}Qh86@~Q6ybgP19(#THUTU7=&?rkf!s+f}w%uK$eQCT5dFm zrbV|MuG^FQ18o?Y>otDHhfI;$Fj(U#ku=7mO>*m2rPvi|fa zD)CTOpi&3I0@B4;uObdeHR6q==1fh0?#5_erph{tH$}>+aeZAFno82rCtY(EwB}Lw zC<)LkE|po5sxfSx7n+LV=z6c&95_zoc}W;f4-V$@IRe}OvWqeOk}$-TF;$-m?V0Ll z&EecVSPZh`$q_12r4n1Ih(uMPXr1FsNp5TTGHc*;M*Tq=CyOZ$nuM83$<_$BLG>&? zXe+~BeH7S}sFzLR#o`e005t#;zy$~ZMgTJmP%c?OmWcu%r4yM1gMkhYp$MrANC9M2 zki#HfMqvYu+bH$nQSdBC0@P%zp;zoC)p5nXuMdZ1ps@o_jslQ~%imcT^1r1C^VVXV63+6}*B4}(q;2U!}U#gvsK6aq>Cp*)Lr zj(aS;W%Xt=w%2_ub37JQRcSPI%Q6_c#nN4#2?QpR=mVL`YE`5W$R<&bK_QP4DL;Pp zh2r0je&E*iT?Mv&|MiXB+}hc`c;oqxKl%CMli!|MFKqpXv}eEW{`t!**4B&J)9-%p z%!Ruice;xSx?)n5(;!+83KcIyyc+J~=tT zFzod7^z7`6=ytmt$4Zi@X^Ls~Y}**4NHU=5P!R4^b=mK)J@4IYhSHSeI$e=qRZ1{u z*raoMMMl9juH#waG=vm|Szj%LOzw&KFe%5hQ6H~SP9p`!uO z2g(IH!1x&T7~X!>~I%k=uTxiCQmvtNZo$QMUZ8N;X z(~QpXeNl2W%{R@d<1BnXoz03k-mF%;-3|e10X@OEIW8rnmNWg0G}`vU%1L&?s$Nw0 z>pf~SIL;GTBX6_U@Sr`L#YDN09gd`ITWfW9-w@L z$`C#j&x0a?u3`g|@Em3w$n(%ll3`IqRaKxSi|hmEw#9%@L&}J0s}zD=FRGnnKgsXo z4O;K$4)7Evvv^OW1{&w~mB1T>V=sxuMHW?MhUyKkC@2P00zyp}qbBYn$e}ykZu#lt zBkVkvdOdA0FkRQ;*dfnOL@tuJRAE;tQ|Vn~P{^avltZzI3Z*%I{z?144?pn3iyIA| z{`1%Ojri*N^6QtM{cOI!`TX|%b;E1I5 g|9zA^esu;{Ki$9i^6f9*H4bonb#wXKv)fny18*UE+5i9m literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_diag_2.png b/resources/g2/track/alpine/left_bank_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f9a07fe7c8f79d5fef5f11dc2f136a8cc016a7 GIT binary patch literal 8391 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 A#sB~S literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_diag_3.png b/resources/g2/track/alpine/left_bank_diag_3.png new file mode 100644 index 0000000000000000000000000000000000000000..82d45ca62c99b0adbceb2d6d4c50be9e6e4c29e1 GIT binary patch literal 920 zcmX9-L5SmI82x5CGij%+JroI;Ll%385S$!xh--xGY-a5ak;$?dsG38BfEBtBAwnGr z8`vOa?IB2!2su;;QXyauBjgYzXbwe+=Fmfh9C|3&!!jGRXj$g)n`PmB-^aVWcX;o6 za{sJ(T8mx}%9r^*#T3GTmlez%}IJ3G6(yQNZTZ*OmZfB)d% z0K>3yxm>AK@J6G-vWzGSiX!Q{YMO>^+pasBOu{6YXIZ}4unY)1$Wm2R>zxkS?J@lU z?|SlhqD8SeO9#u9FVa|xuNo3=wMa*&Mkae{i?Q39O^j^XUuXU{Pnra1G;{@U6l`o@ z@u0RC*Ecf)tr@h@(6xh5(g2VFGz>FpHH#n|it>5>QkJLf_QJBBjz%bs3AWx4a7HG1 zjcOWn%VKqhH$Bk~q+z7^GcC;8Bu6mK2CvYP&Z&lI^yU6Y8-+%gT1hrc*W=|jt_e_A z0B-}?1Iod;5#F3oYAhIOYp^u^+)2=-OxJae=r-v=iy!M^WGbnxFI;mK*m>-3(*UiK zTAicl7R$8-v8yNpUH7`($zTwVMrjx>=kq+z5fBDYF2;^)Vnir2y1f+pE7f0jquiNq zChP0P7FFq5jl=OK*-&Uk=Xq0-`&uE^n+%52@gz&q%~AkO!c3)RX{6Jky`B*CmB?#P z18Wg`>qWBJJVgRP3%~?$00Mw1zzPFYKo(KYM1ha8g-n6L!cc&)37HH?0c7B4z#?Bp zVF%6nDD&Y(@Ek}Yv}CNK<5rg*I?b`KN0FVT!Frvd!i#7F+p7u=F8ibwQbxu*xf*P` z(bk<^hfB1`sXA~Z)?{j`Kz0WqRFeAdN&8g*+C80!pQ#{M?(>zhC^o zXAjO4xc%3k9~b1^)05-#H@^Dr5B?RnSw8vYXLRxW!w)LoJe;0;c>Vb3_{-nEWgdO~ z&KK^duYZ2^S8DT_s8eIKfC#Tp$MmU&rW{0 I^U>q~0d-YWVy{_N)zjvw`Zh{%Wl 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 J_}Lea{|DHFf-e97 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_2_1.png b/resources/g2/track/alpine/left_bank_to_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c201e7ea025e60c4ab55bc5b01e4155756fec0f3 GIT binary patch literal 941 zcmXAoL5SmY6vp37XC|HPECDN44NDGP$stIT9CC=5)pUtNmdP?%C>k&Wfh}v1EJP_w zm8@H(NR_BXb12wD4n=}S93e;#IRxpUXkaUJAz&8^7Fo1NSbLbm-z*E?dynt(euwY9 zkFOp{=g&QR4gk&{zE(TV=W}@-6bpI3yZkT#D8SV#*DmLFYinzJd%I95?Ck99?(XjG z?O_;JEEf0o_bb(Em1P-G6jW6<49&94PN(C#!ypLbc$TK?EMplEcu?e$rj?sbvejm~ zJ>DHCqd*@=)->rYmYzssb-rZE6}wJ41~s(U(~cOq^=V+HlkO_@HtSd-K&PQ4fTLm~ z6N`HId{oY+1X?jD)6toOP+SF20CWs9aoi>dhoU^5KUI`TqcOMb2g4zXB7!Yfg$kpP zyiQ3bUAI}o;jMw#@#X$l^`?55Hb{>oo$x1j@zO5iX7ibxJoDVt1)|tJZk! z%(7s0Hs7EUjpJOUB9T>BVh(O@-?v+My90O|l1fCJzIOaPV`pj?WG+7|LXl+G0jOcweAgc76*AQg~VK|L0E z3JRNO+C`}ckAmkw7NM?SO`~GB=)NP3JYziWB#FOTB`9YR4Pe_P!Ko-7sfU!A^3GcG zv(|XyPS3&xny;xca3m%%xF(QIm2Ed<$8LIkd+hg<*k7eF$`+g~qYzLE2<2IHbKGMQ zo%Ue4;>nHcKYsn> zCj}?Cb^n87{EKJq-jfM!Q~H^181JHAkR`-g`YzWwI?pP%^W h<^SB@9-jSP__g-dM+Yyx{(X*t!^=mt?_NE*^FPs%kthHF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_2_2.png b/resources/g2/track/alpine/left_bank_to_gentle_up_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e774ad2fa07a00d0d2d791410e52019a83d42734 GIT binary patch literal 908 zcmX9-F^Jn{82#>ice;xc)YgNVYS3V)3d*5DgCL^lT3t{Nl~afUDriuPLOr-agGx;h zMNkt=F;q~ucyPf1Q9KCh!VMY(Rg0h=T+rab1q~hy(U3u;qIfvUUxmQ?zK^%OH@x?K zd;e0tb>p2I0C4N#qw@##yVX6~fag-=e1uch#4YvA&$!`C?Gy!LCeY5=;hqBKR6M zv$14|uV<}lNuq*9m5Hu>gwi&E3SeTGjpH6k`ZOH~!j-BnI-RxWy_il>l8{`hEfTCs z2_`MujP7xkFE|saA1b3*3zlY-cPO4@<+h+Pip3kYWDnHA)SO0klzC}B%8J=$m*66_ zG$1-axj_3EKPBWjZ6uBEf^lzxh?RHkL|WKU*>x-he(*wM1SwH`a$uwN$QT^6Ek zinn;0(K)^&N*TGpi3n-7P{becucX0xgJ;t~hF2$s_WI7vZur-3B7nlC3 znitpW9cnT-&J%=8wKayd1i?|%fmw^W^WkVQo9Ag(ZA35?%+YYqr2H;3am8?;#gon= z^w!CwSf^F>0*L@RfCJzIga8YGEe5EDDk0ZFVSw_rN`uY8NQ6j+Tm_^7vI#WgP@tly zi331BH_~|$Q1C2v}6951J literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_3.png b/resources/g2/track/alpine/left_bank_to_gentle_up_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a879bd03fa03e76e481d8cd031542526311ae1a0 GIT binary patch literal 998 zcmX9-QHa}g82@h9yWH(=SFyuvMi-^945QRD%sfPiyWGf*$Yosa2vRV^!1_=zgBMi>!J?KDCkDrBsTf@SQXN{4+o=HHCL@B2P}FW>Kj z-|zeQ^1689__N0W;KbUc)s1+bjcaLcI_}%g-8cl8hRbhnUX1C~)YP$K$EK&J6N$vk z%*^cUEQVoob93|a^LRR)W|)j1@QNbode$_JQmIs{HCin%2)a=;8jqO_@Epj}LN=Sq z=gC4bQ?78ey4-AOZQtyKmHxmHXiVi63<6FeA1(B|(TvHd?rV^I)UdNlSvlGMKZ0>8J*)yNiJ*gvSO=JJ#4n3ARPC3&?L-Ml9oo= zdAeTY-LlfI=MG(~=huh5U_5?+cmNf^1h4^IfH(;Q3{VVNKt&U|4vKm*1qK6E9y}2u z8IS_Vz)^)kj*PrK>XcFBz+>ZCkOWX=EU)8Mfv(zO)6v`QQW(0!VTfWaA_q)yfwytl zAvKROBF-LV-EpBksdbLLKI)CA6tE;FW|CQ+%qvVWC)rlssakEf8V2q#3edREN)qw_ zMSxK3MLCvx0-{u`4+d<#_5^09BV@BmKCc&x29qhVnHtZy0^>`Wu1pWrG}1_9QK-%! zk4K>tho60A;h)Dpu)VRaz*~R)c{L`VtgT+yJa>J^zO@v*y14QPq4ue3OTqoK-)`YM z!pS}A>-2ZO?!WoRds{2kg*(Fe^XC$;f4=|O#_Z|8(GTyx^v>O1cI#UyHu3xN;Dz05 z`+GmGJiPSb>FuYU-@JK``eNtC&r?r}%-)&bl-*CifA`e=*VORpZqr?S5qsu3wtVx- vPx(7W_uiSr2memqSbTYzeB|E#@8R8z&D&po#JX_T>0pK=8vlp literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_4.png b/resources/g2/track/alpine/left_bank_to_gentle_up_4.png new file mode 100644 index 0000000000000000000000000000000000000000..338fc0f856440cc0bf243b32309845c5d9eb7adc GIT binary patch literal 1055 zcmX9-UuYY39RK!Tu3hLN1PL?B4FjHf$}vuQ$}!INI<96zz8fYET41f(9qEE@bJjU$mrUUv||?sy}A&D zChn_SS{mgm;C)^5IGd;N71o?P(1`70YouO_4)K*&>)B+%Wg?hBNl7x`az+9 zYPBHk4{-rX!r3SxsAO2D6@%6Ce99EFRk_%VR_qwg1SuiJ%A}|;5tUcdQo0Z=RMd*4 z*X^w3lsbc&j|0C9ff(RPAPkHt1cWjXsd1_m&UCb5�pFd>kcFk4diswP`0 zrJd8dW~x`q4J;FN>pnk2kYSpMaeP9SGm4T=B+8jgtx&Kkl}@YG>-7)>RUmR0UGnkO zpxh*59X{QS6rDu1XSDid=eRvUUef1d0s#RJ$t0z)tR_n7sJkp#&SV>D$djm4KcgvxZPAD%EPrvP{RZkgFAp z0iE=6MnEd!(F&p3tkH{@{X}(;YaUlRsNEy{z~Gob`63)1m+53oH1v2et5?meRW}{G zj`|%&6j23`4G6heq+Pj32&R(xZkNgD9zkn1`A9^L$CYGKrKuD{6%EjB+?0o zP!vZxf$}t}aL5wf<7Zy<9zFblOXnA5cy(|4U63OrtEnmp({k-@2 z+@>=&^Tws}rw9ANwW+zU*`3p`oV+hA#Z`;yyv)^e8zpVXP zSO1!7U%UVM)0XVxpdw{iUg@2Zfw{=RDr=Fct8-ke!k F{~rWK%Ygs@ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_diag_1_1.png b/resources/g2/track/alpine/left_bank_to_gentle_up_diag_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..33545835bee5b86912df327b92037e0d2a5e1318 GIT binary patch literal 963 zcmXAoQHa}g9LIlmy}R^QMqm{SM#!KKISeyGkO+CmX>Qgdayc%83K1d(R-|IksDDl`yNEEDuGZ1i3*6K?-&nqz{EfoKQxYH#qcf#^C$={rJB8J`dmD z@5=sO?ewXqP65E_-B)%F^0}Q?saVMS!!1h$D8T-!7tZH)Wo2b`b+u3^tgWrBudi=x zY+x8xEEYF6H!Ia@m1P-G6ck0$b=5Qt$8oyd{%{z^@gz+b%O%Tzz=JH6RJGh}k}ZpA zyL`7N4~E((GRKKKoBJY-)%lVkRqQ(H=~Ulj4;?Y;*2hC5J!)sEf4qom1ZXt01n?AW zU|^ApPY31Ym_QkWmKr+o5Q?h+GJu9*29DbV;Zc;&^M|s0)M!j?`(D3~qKIJ2RiVPj zB(G65gRa}G?(t?%bONa}Qv9(NrVWxKm|B%rXi4W(Lp0iQyRY>_BTVc#?IhV?b{ydX zlohBnfV6<}Fs@&z4JkDejHK?)On>3U=uoE1I!Cl>v|Hx~x;QeG#L=f+a~?R0sC%3Q zXddHbj-u-<*AT>(qPV)=Yqf^18}<817|te>#bSYgFo5b}>;M->gfgZZGqF8a{j4=w zc$4KYJDDD%5{=_rrBWlS3eD&|Z%T4o%a>V0w{tWYrg5^I37|=sso=IodQG}#2|-&K z^%_TkJ&k(VG+r+6ApxKcU;=mm0l*Q!90Qa~7LjG5z(?s+rodpKBS2V#R0gB~GAhVr zkuRgLiNw*oT2H0Dg#GiH3nA&vZ=6EL-OpV-?2wQCy9eBjnQ((NfHVHrGQYLMLWkm z7U5XE`JC%@AIlt%MO9UrP2I8#mT@?yE3kpcMiMiT>8xHw8i{NQ^;i@ND3S8x=gyVx zKl*|95B3z;zI*3lZr=rFcg&-9xl(k@%=^*XLDH0W&78k@*e`^;Oxe&>zUl!+uPsY&*gIYe7;a992^{A z7*;G64-XHkwOWl~XhGm*S=2PeF!Xl2-R}>_V?PWRahz^83=KR7l2}rdN~=Yf7TxJ` z{ed(ZtJA=kN8Q!h6)3F1m2|OcHwZ@~hXylg3qijzAM5d~lf>>e4eL0l6qr0XGB(n& zpj%#!Dw{cu5*lq(v~v&&YXA~}ieY-WY~#2?k}k(hBx%-cE^YhCaEO8cXDT(mN=pQ% zl69SG*o@|I#z1I$Vs9$DbJdTV1dG%48Yfet#wxm?ccjix9s0T-*jpGba>ZsW zA-{#@9TdCpGXUlRIjQ1p z%;~m2-}x)FOvwtc1XicZ3Qx3T#%hX=-Ew>O)ayl|m&763tXNS*KA;#7%ChKWcF%yf zt-*TD4*Jhv%;$ol$gP%USvo_vS-Q_Np1=emy^yG+Q9~+$Y!VF^e0FE|QsF4`fRpQ|$3I{D`0oGZNsXNV literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_diag_2.png b/resources/g2/track/alpine/left_bank_to_gentle_up_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a4d35961be8b8720555151aa327b12905159f77 GIT binary patch literal 9375 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 NV5DcRTdw08{y&p7|4#q_ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_diag_3.png b/resources/g2/track/alpine/left_bank_to_gentle_up_diag_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3f069e96f0502732cb7f2511cd3214d345b480 GIT binary patch literal 1063 zcmX9-e`p(Z6n|~nUVm&x7c}5eVu^Cfp*KCpb=)6kz1FNd?Ui03ut2YPwNZkc?3@9E zp6=}8%~F4yn~)@zmS-V0eE2c`T40X?dj?1?d|n=JbitA{r&v| z0|OX_4GsixX;(uy$Rxx$ zFeNOnVwIG)p7*&m9JMIq%ILsEs2T(i0b~qQyYwfR%}mN``e>F?KNuR>t@er8`vw4LtYm#j!^^Ddm z80|`?V;4}f>h&=M8K#*i$Hyfpr6}2WyqHQ=ayh$HYHV+}+ie863Pc8@^IpD;OEogu z;FHaW)ryzf=C)gG9n?E$g!FnDzdsZRN+hMQtR{#_xw|Y;Orl*zRL({>3wphhZPlx;yN5V{Fn|VN0u%r?0h$<~E<_$BG*qyVQx^$PX-IQW z3V|a6k^rfGl%kO(qEZailE|^(PVfu}JcLCorug+ZnKnatODUHP+b*fLtO}hc(-gf*UV)GPQ$J1J&Dv510TJqP!6<5R>RcR510JmDbCJv|TN$l}D`E`17V*b&OuB`s@z}cgR_*J+Xu=?Sv_;rC7>CML(<8~X3L*~=?Oub*p9y<;EeFP{7Hp^G1+ z-9zr!*6a&3vGV!&kzk0h?tke`*cdc{N($e_Pus`aBcC$W3=a$6>{!*RHYm zm|sMR=)$FIZ{2uf^uCRqAIz~MU&l}1bhp&??A8-kpM3bwr^e3g*|$dfkG;M7?Q;9y Qu0fcdnwk9a*~PQ}0~#L9ZU6uP literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/left_bank_to_gentle_up_diag_4.png b/resources/g2/track/alpine/left_bank_to_gentle_up_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c720588c0efa40a75a6edf8dae5bb8154778c1 GIT binary patch literal 7892 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_1_1.png b/resources/g2/track/alpine/medium_helix_left_up_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..eab5d42496a690f85e1891d2a84ffcac73103632 GIT binary patch literal 925 zcmX9-L5SmI6n-{K`I0c7@-4M2$F>;K_X_|%n*mjWSA@)h90sI*osARh)^U# za03*-q3fn^tJp}DxgeXOF$e~~lK`K z_TpSVy7lHQ0604P_~f#jWLfoUrR)!`z9|c6N7nE0xOL-roNH{=vZk zhGEre_3-eJXfzre$4Zi@X^Lq!ZQJrZuiqbz$8nm@^L)M8a4d)ds7kHbthd`#$6>p^ z&>yIyu`x;PS>`WSp~PUiP_q=m)v3Uwhcly@?jij5u#mJju!pL1Pq?Z(5SoRl7rD7+Z1Xrg<+bM$2u2i%{2q zXaVH_9bo*BkjHd05v@%3mv*=gQgp2{b(1GMGUMyQ$do3wmU-r)Z?7V6o%FX^gjOkD z=V?ag_?9SjG|e~7L8mkJ{bV@I;&?fquh(k?qy=;z<3_kNA+;IPT1wqjGb}ojbuizI zi<`w3)fgP-2|}hC8pE1`U@L0ZD8-zy-1 z7s;Slq?^q%Bm(FFHb4Ln0Zai_7@!iWgd7`1A<7pj4HgGI5n>r~6_5tVB9PCaP(^VY z&AKQL;brhVC=%!@);0;Z!}J1q6q=KXmt|2=WT^BaTfjLrF(A~CGGf}wg<#!`Hl4|~ zKf8&SXtAd2z*Csa;!TliYn;+x(~E%+`2$~E zo@;RT-@hJ}L^(V8=>F~RzJK!mYjC%^`vQ5tefq$;bM^P(ok#CJ`RC!|&+2dd_{Yze z@$tR4j2He_uiyUt^n;_%zizXCKK;+XKHjsBe|Z}G`a|?y@uhrmakKpJ>g`e%&Q8xy Je!BPY@&7^Eh9dv~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_1_2.png b/resources/g2/track/alpine/medium_helix_left_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec5e3ea08f20c0fcd9bc24e42942b2757afccb5 GIT binary patch literal 920 zcmX9-L5SmI82x5CGwEzyi}n!N9I{IfIb_dI(r#Rs-gcL%<%YUW+eZ0$ihxfiO zZ=On*FI~9=0GChRJi1j~yqah0wQ4&r|8xzY1~+fqKCbA_&d%=cZmm|^+uPgU-#<7w zz%Z;{uOA*B;_Y^uWf@TvR8`jXu4x*!ZTtRYHjC2qJkQI`hGjtDL6IBXZmZuX2Sdhj zd4H@-XIh+?i_BfE1Cho$e8Z4&t3!G^H8I&UTTJ}UVrJxXr^thCnMwp`Gz0tpsKE}j|YR9>n4*)7DcP`^Rg@v5C%{_#!j1JOsEUGw-TLoHz)>i>78$8 z#l>=q8g#SC;kZP$RhrRx-jo$btHg#gcQl{Q@-*A51khy6RGXGYdVP946hcRh$Gv%I zEt7GvOgEcHNC4;nm;fF?2rvg&V}L3sA{v?~3{bvQC@@$U2@pw;D}Yo$298`71qzD# zXyKqdfXBgeAdApZu)dC41A631(?E}7JIlhN$WY})^ne{U1P@mNQi~`f=e@EUZU*tz zUtB~hv@EF>a3m%%&8|T9Rd(2uJ*yv#tT-HHX;|bb+N?NPMiHPK5UR3pD!V5j?BRI5 z=EnXLn2Uwj?W+C0J{%e>V{?ozu%XB%GIOrbMW>B45?K@)vnUc!CRgR>o^Sm9_y<0{ zb*jRve?GiZkvC3`Uc3F=*I#8XJ`Gpv;@hS5Zu{y}SEPU6djH2Vta10B>wkRs%lAK5ig0p#di2BV H@7@0&Z1jWa literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_1_3.png b/resources/g2/track/alpine/medium_helix_left_up_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..e78b873acd4a5e849b8289801880a6529ade1e3a GIT binary patch literal 926 zcmX9-L5SmI82x72nRK=+Wvvk0AVGQv5+p8Bf&__cW{5+U$vWAkhag!tFjacUAxe=P zf*YhrSToW?m4F2UTO??eIRxn;Lckt+$e~CVvQVU84tprtLl1-ec361d_wg?89p3xC zx_csBzjpH)09-%*;PCY7UQMO6-A8Y~d;(B{yLav#ZRyU=&hGARsZ=VL%X@o!`}_MC zhE*z+gM$OS(P*$NBZ`8m%7&p?mg%}~zdsm_;xwJ*`D(pp84!3-nVW>2Ca2;=_8aj02BZn!^~REAqbzMLY}`+lu4^Kcbw;g0ZI~rtv3XmQAl2= zB$IABtl{%kAi9y<8>`_|kMkDE5scK}Ra!PU%@ob9(jDl7*o-qL&3jofTx^n>0Cg4c z7LYbjKE@4jX+&v>U}jBkVTCI{MHdQPH#njr(O#1u8sgYeGuN2+t!3n{lKv)(&@!#n zIf`zwTuTr;s_Gd=(CLgkFBuH7I9|+VtJMktVFK01*kMf^6Y7+1EyV6p3yaQp<l#J3Lq7bi6f6ip@QNz zns!kh!d37b$RacqtZm>@Asc8b)R$03x`%XLTIpe68rBRWmXuaTM8O4BdKxmsqcWd_oglh-O zB^UHxz?x1)O;g)#!?sP9aXF?hu#w0nGBZ=?qS-(?i5v${`m3N?;o7s|K`@M$CrPez52x~ ze|`MfS^1|&H*P-3J~{WuhrjJSero^lVfnS!pMCp~GM|0<@8&eX+fRg#emVdAovkh$ NADtZj{QiSS{{vQWhOqzu literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_1_4.png b/resources/g2/track/alpine/medium_helix_left_up_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..df88f382a81650a30af81550caa7512fc34682ae GIT binary patch literal 952 zcmXAoL8#kw9LIlseeb1jbrdYpu^b}ykV9}$GmH>1Zh6n{5qWtogTQ)-5LjWwMU9w4 z4sjN&S|Lw5>7j=rK?-JAuu8-t8Rk$}VVM-E7_^SE^{_*f3Ps-GZ^q#J`~CP{exJkl z_xt4VpmOrW=@S5Oa{t2a#dJQA)>FA`+V|c?9|2_H@byc3sm)|E8yg$hY<6>Vb8BmB zdwUzhuv{*;v$Inwm&*)83j#08qNY_1LvJ)1olb8s@WXH#$H{8N(7L@TKQER?%1qxHRye^h(g>W>oXE4Kt5OkEuK##}GW$dn#u!4h1fysj- zV|^V9T7_A^xSHT-Nu!mDjva);GJpi2Vwhei*f{Qxq|0$bNgCH`GuwXH>!BdPnPQnQ z(GtO_WJRYGo6#K3=n4%_Y>#AjqWW=-U~#%q=449L*s3n*O{v*ad%o^Rb{My#Wq-a7 z3Op2LDAjxiYQXD}(wZA?;)G}@QALf#%?j00xV|Qg3^{6OvyQRw8cEPu zM;=;)g(6E*3d7cT!Ib5ergcqo&}s#}UgZ1p=`=|a1h@`l2V?pLVT8*Qsx}vzi>kXc zM~O3C4VK5VHOf!$aB4)@1TP2)2)wOu9 zDUZ6fv1iYM?s68cRu2&mpa2*E4uA(R23TN#Qb_``4CJ{eo=GI=477RhD-cV7WI%ce zwHV||$giVG6U8n(3Z4Z~07b&;TFEx4wo~c5+Gx~>B5%2jP|CtD&`lKFn zPEz$&=4joS9Q$)LOUNRy1XiI7Ri3EJj8zjIyY9B_k=KqwZyASZHD^T;`G8_TD9xgo z;vNfcSlz{f?RFl^m`sFfRj$`H%hDOT!O|U`@dPFi>8V65l`>KZWRs}NAfHE(m>xg- zZ2q4|Kk(kg0~ua@@Y|KtT-o0}cj?p@Z#n0ly!CW0`yaBtI{NF&%XjY`UgM6AKE8SV zyLZl>J-nH{^Wyb4PG9>Y^V#?JvFE-Xez0A9?flDc-~V^>r5n$`Qakhak3YZv;0E>i xg}b+2KtKJiJ~KRJ-o7pM|2*@{gAX&&l4ng9Y8S0qb$+B4pQZPbbJJ3UvEEdcm zvPJ3=FhUPOdMHcOijfWOAYttxLJmcX8XiY&7F@r2^RTcR8ylOOn_F93+uPeaJ3G6( zyBLO*N~OKMy;{9qXBb)#cv%)Tt!Wr~x7&5yVGx9IJWJCo&lwtc4kWSMY*yQCqGQrM zn{x-!C{V|dF-`2n(i135;mW#LvlPP7$f3cUc7@1Qrh%SLdaKl1XK@1um4Xfrj*N|T zEV3)}Q8l09Xhox3MduDeaUDPcP%%ueR4g2KNYdlDQ%Rb%T64=f8xBzv;Y_v8*Jz30 zRI;H{ip6LSXAFd{FZRc>H&w&5MX)&CsB4tZ6Dv;p$!fG%M-?8b zGSpf?m_RxhJFGPVvKjGuqSy<=%bXaUN>o*2@lJ!X6>g*nV?$25+T1mkem9HUb>gFC zT&c1or7&!Z7do0*06xG3V2J@LBnikgknf>%E|H)!(B~m+Kq>)}0qHelGsu%r z*hbSHNI~gwX_sewfr&(VCQ&P;j#L6!BpNU%=TzUSdOQp^Kkm-N?*S)*fZvB2VIehld2k-y#+4t$y zuf9$9pSyfEdiC=M55IYV_{g|)@7Kq>7vCkn{J@BU7s-dpJ9oZ5IWR7M;+*U~+DR@m qe?NMAa@$O*$?M+@?{B>HFMOJQcr5??;|~QBjt-9x?!Wooo&N!G6PKL; literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_1_6.png b/resources/g2/track/alpine/medium_helix_left_up_1_6.png new file mode 100644 index 0000000000000000000000000000000000000000..63eb5ebd2a88877024f3db0389a61a11bb4f83e0 GIT binary patch literal 1088 zcmX9-e`p(Z6n|^lUVm%^2^i*yK~p{0IWj!;R!(-^u5H@h?A2a1gE&q-ST-X&;e>!; zoG!39LOofOb3_)#IpY>)Hp_Nsba7-Z%z!795!r$HBhug|3nSaI+UeJf!RNil=b!iC z!{@!jbF;w>Lyrvsz=r9m@%io?>DH42u5Lf%S=|WWg1Maw6J5G)-MXHh9+%72+uPgM z*Vo_Qk73xrz`)?(px5vBQ&fQCSW)CRjH)}S29A?g5p$?O~>rC%0V0? z5@IaqB9>FIQp#P+dD>MRH3O(Ep*0<$vL8SIkT6VfyEPow3BqKUB|)e}A~j9Bk}Gz(X2|A6YZ;k&%VigrS- z8EPY+XqAkPokxwb+d~s%h@vAb7Zb&lEN5b|LMm0tW^K!=FE6)REd;m%gn>~xH&?{P zDjBJB$wt_0#)>U{xm{?k)jDXHbh~M_3Pr);GmU+whXvdQG9V^ z>*=YLx4%7h>d!5^d#-%)(dhMiFYS2k!2H~qI~TWnZBFdm^!Vh^-ai&j?Hc;&tsi15 z`=5RE(#Z>{6O-#lZ-19M{`$;aGRJ_Tu`Zp`lyXzKmus1SiEkpa1fG z#qHq6D<_%H?u>u6x;gaM<@=p?`Jc~Bd^~-1^6VIS_WVt0=D_u1wYlA|dj6ZaI{xNl z2Yc*v{zE($ezsaxRx!Sy@?KU0qvS z!!T@peSKqNqf{=J8HN@FUY12oQ%uuv9LMuIyK5H- za$Z~N_SAl44wL41;tLd3K5li98GC7SJ9!1P+SI(08|V!3I!X-U6S-UZeNlHwc5zGZ*@8-ig2b_=1a6h za4K0bsH)9qE@!p{ClFhG*&nK5S|eDTu9P{M5;aya1fwA}I%+30!o-f#Rx<657g2$S zq70=P5EhUw#&$}T9;rmUkyM*w)1SF9+Lx%J#^Ut~)vR(|P3W6);%Fn!oCMA+@)k*e zCUK$2l2nypYrIgG<))^!>-Ao<8Fe~I7>*APX0sUr+yK(Um~KJnTZjj!0+;|UKmafRm|%c1NCL7<6!<6|NhBByw0H5Q z8RSbS)X}hkQXg&y&w?mGRl;*y& zObO=o{=yp`hGR6Ekwst$tU?zQp3r5+s)??x`z^a4w30ZOrZJk2Sy4nGpcD|wvS?&- zcYr%qdop3$-W{03p`a+Tu4|TMFto$c9?t{<6N&VJL`|z@q!P#`QJX;_j}kFEe)e?! z@7q7{%HFOFXMewWF(a3Dw$5F6s5iml)DMkpAgDFx( z4BRLwQVclA6jP*_BH(~4M2Qd~#UN9pm|}z!BMe;769$Pe#TNf%Irw<*`-=Cz;(PDA zCs*?Qd+*!>fcuw^FP=92j-Rw!P5t`CX9%DLPd>eV)X1ZwqvPY_R;zV#a&mfldUke( zVOYD}K0iMvdc7XUv63Wenqpaoz9So?U%Z>tJ zGF9gbGtHb;5o~vn#9+G6u@%D8snDWl4tL{A*+gG0>~cA(%IL7qWfDvVh9ZO-Hn*`X zz&G=5y&_S?qS{2aAwqc%Km{-{%*Jt#Btx2x1mQ+im;L_6^IpzoD9cE$+Y<>^r390f zZASMvD-@ima7T-f;k%QnN&Dnrmh%|v~=2E#@;5I zR-3%8Um_7e2XFvFfEZv2u)_c~P$lF#D2`CMQE9L_7>kg|P^y45KsJE_4n-+|eHwW#Fe{S68*E{O3qc=Bi WfAaj_-@k8W;PTPc#g7j^|K=5n&3PIC literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_2_3.png b/resources/g2/track/alpine/medium_helix_left_up_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..08149c1101a0f602f131678bcd14598d39cb45a4 GIT binary patch literal 976 zcmX9-QHa}g82|3Bce%T|RVY%p2xS(Dkj;4HAxO|nbE9`gF6S~XO5idLTCmI@nN%$p zScIYx!z@yuVsJ$c$wOg%2zn3Q2zW?O^H5pAh z_kFUnT|TwCwh92Jwl+5|rt^GSE6WRM|LM;^HUSo3=jBTmQaU#`H$OkWu&|KHWEK|} zmzI_=3|n4aURhZwlu9L@!_Y0uYPCAOo*x89Q8Y~wngWgmQOGJvzFIBT z>QuvKTWzu1Q~LvB7~12B%afSQW_6)p%0)*bItG1U@q?B;?CH^ABaYnJG$`Ysl2GHo zk+80g4eZ>gn@@%~iYb(+=)^%NC;^B7Du(H~oQdNOLAWe?Ac}{T%E&bDbvkG;!0CL6 zD^OyQRf)1r$|kKjtkLEzPiXcfcc}VNrO4n^xx`AOpfQTh>kYBdQ9Hiwhh`8p!?-)1 z4RRdhB`8#&SO>zvm`A z8`t_%=P2pLC!-n4lDQmHD3psOiKH}^H3YGtrpxL*yLs5{MM0R1IZy@6kaDJ4bgE># z&Up=~->w{b=4jB4M?sR@LmYq%U;sD(9>5{M1Ot>pRVBPY(p@NF-yqgw!H33Dl;M&!JFA zkDoc0z5n0`u3p@h;QU|5Z>8j;t&JBhJ$3!Y_2_i)%rc*#vGT_4y|)kS-78;yxSm^C zCmwzCGv(_KtS7Ut$(#GH>^}GD zcdzdN;MKz~_wW08@lwM<-`|u!WB>zr_v?qZFXY9=<>lpIFu1z9y1u@?xw*kGY&aa= z-rf?E$%NxrNfI?pu`I)JY~S~zXuaL0MX|5zw(B?+L;+M~WEkVwjGDXbA`qgLy4jjp z?vzzB7iX2v4U%i(Wh2lP~3wUT*Drw`l74+!itkCIfR3LJiy4SRUYq&A2N` z)Uc>C(Q}AUF#%8kOboMe+#|`5rei^PQq|pbdhoo@>ov-Ak{eG%f>kNOq-C4YJwv~7h$XcF$Ky6I>h)j zA#Z6T7wt+9j!xW$1$t7MvBi^fnF(}ZV@a8#RlaqIoKxbrd33H4bSm&MPcu5lPep02 zX@O;}=JRb3l^*W}da-zS}m>hcg;6IL;G< zOieU~wFJRY)P>m}bGN~Ax7pT3)g47J70l6a&!oZ`vvS2`p=GP-F7XcesyP&0_Zf)* zI)DQZ0we%CfD;C&hbkf0K}n42gGz(V!BT`&hFS%r0kR1ca41$$Iz#0G)iJyn&x0a? zu3|Hb@aD`ilsB=JWqws9O;e#>i<|=Ij>M2qW6DfvyB5OMNV<7;j>_lshz>112A;xX z7B@s{rg8363B6go^s;1G6-iSUs5|nCf>J;=Ak=%Y=;gkF^xf6z#IK@naLQ6L3~e^E zT-WAUpJyYHOC&B=*uBa$`UII2@@TZ;P%5HI>7Sqfe)Q!f1An}K)ZoWY|Nh=DcMtbJ eeHi|2{ny9m3}3$^KT1@U_An+hdSyjzfDrB|B zG;F@rmOEXo7n=Rp9*sSb#!7tFkZ`L+Iy&W=>_J@&Tcv*2NRAql#5HS)V`?2F)~d>L3&q0Av6S!;DLc!zzAY1N}BPcGdc-# z0^}9I%RttEaxl)ti(N_$1tTumBh#BY5jv3Ryv`BTB5jxWjxP30C9dnkmO1w8)39|C z`)C~H@*G8%SgtIHRYkFNy)OquPB)3-*+>9Q!b~M+X{1x3+cm*& zD7|+1$hU@Jdoqk>vtuLxlmJWs2fzn70vKa}Qph5znaKB0GL$JWSZE3m6d{oTDS!+d z*(~y86jV^Zff5fM2G4;cLP^FdI&M|zrc>;AdaqZHV}CMiNw$@+V1zW+P6LPyi?agwiY; zsoWzF^;&y8=Gv`CF#CN`Rh3Fbuhk5esdG$AV11DdC1xPglTra`B(f;fW>FxZSW1td zdm;Px!ymYIaYuo(f82dPCHD5#YnNWx`>ZLQS$sMp9-`~lpWRqLRSv#5``fJtnLjT# zuaJM;oImsZrgB5weEYGd+-E*m`tg_j?)f+O=2j2(cR&92UYNOkZ~y1-4%bF+WUqa? z@%wX67WR+-TlrycSXuvPS^er(cK60l)+f)u=>Gfemsf=kU*7xm>&E7t4eIv5vi#MT g9^|WAkAwWqd%K53`0CaBsV&$(x3l%l>sLPdAJvMcMgRZ+ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_3_1.png b/resources/g2/track/alpine/medium_helix_left_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..33a2f2977ba00679230c5c3651562cef49dbaf92 GIT binary patch literal 1051 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 DqOq2z literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_3_4.png b/resources/g2/track/alpine/medium_helix_left_up_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3cdf2a63aa55d9108e3124c18220111bf3ccdbe4 GIT binary patch literal 911 zcmX9-F^J@382xrmtu-2BTNxtil|d;ks@G>$%Zv)ccEXh(`boxOnH@otp0L?d|XHHyVwDgM-7v!=s}k z48xku=JD|{(dl$Jj+G=)(-g}x9LF9Ghe0r%&*Ln+DvE7YaV&@es7lK)+PxmtAFv}& z2qx-mZYHU-%)Rv{lo(7GTDC&CI^|pR)Zs3NQX1&Xxm_$qWfAVSnM{JoKwku3!)7*? zdiZMAu9hS!SyY+m+D9ns0H^>ahS@molB7@5p&(qU>Z03Sx$e{H6s0N2wL2ogs+3^T zvd!o&XZeCNk%o~nPPA}o#zmLnNmlL%8lzaeVN3Q%9Zk(?Y{$8q72~{|t#>IdLR$l( z3)BE;ALFNlJg1FRv~%5CJK@&P(51?>EuQSljHe4TOG+FqA6l!x*+j!_8tn22Z8E&g z(~QpXT~X?5nrB&)et+(H>2#XM@%rj&yWJunZJ+~;o8eMIYD=cOmPQ*REc?mUzpCct z^=gM&436^zAyXZVVJ$&$6m?|QVuQIiUd-l2mRD;LOa*f^+%+k`$4mxdG}4kucM-X( zbW*Oes(Ok<03E;q@Bt!#1;7RaR6~`}z(G-nij_)(&B0iNScXCcqye%C7CaA%1iFg#EW+(GV_%+yR+0?!JSxi^)m~&5xIs(w2{ok5n6?YS-x^WXPjXq;zJS!AeM^NNCEKm{OFXECbno`W0?CYudE z37*4QE+xazdOd3}usL?fvw_G(5|=9MmCBTQ2bmOdX*A(bETUYg%g?{m`uEund~)|( zgE#(u{83GApPjyWule=+4_>(iFE+FPko)fMXSazH!};a6$A4k>U)}ri!OstGefZw% u7mqG}{r-<1LBH{x@a>ice;yvRlp?<(V&6{QAE+8K@<&Ys|)T`<#de#Ca9o*NIjTVg8~lK zAczX4Xb{u{K{XgEifIKk<)9igD4N-}k-cz2Uv@ zoAa~o@r^q-0O0uaqmz5}zIA;cHtPAE_2s7k4LJYg{@t4H?Ck9B?lu~Yy}iBt{r!W3 z0}R6s4-b!yj@q40hh-U26ck0$b=5Qt$8mgrGMmL&c3Bjgs$v-sc#x&0s>!!Ot*B77?ky&^Smj^Bdr#*X6|@CofTPLtpv~{%v5k&BfS9~SVA;XlAu42 z>}491%dDziApxKVU;=mm5x^W^jRC45i^wuj6ry4&Q(&+#79j3IAp=qX8ExdUD3nn= zK#LJ7Lbwi|14)FQj1Ba*J*3B8cN*$R;^cW$mN}}uh(54ZQ}EhyNNO=<6uh@lqiUFJ z{l!(hLdy-+0*=JG46X{~Kw+)E)!XTb98x4#)Tc8;NWxF_$u3_Bu!-kxik1MX`W#sV+bFZu7tEA9#H4 zOo8`bzWBT*@134}aR2tRXMg;13~#^j+w+zE@QL)+*MA+qlYji}&EWet9|g0cmp^{> r;)h$mKlt?={rgnAvwc2%^7m)x3+}<6|J?qm7J<{dXD2^@`0(lfU%7&h literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_3_6.png b/resources/g2/track/alpine/medium_helix_left_up_3_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d536658f82c486f0283383bdb6766086c1fbfa48 GIT binary patch literal 910 zcmX9-L5SmI82x5CGwEzy16#18IYcNLAxIX2h9yE)GfQ`fPS(vzz#g&?uq<7O5T%D6 zf<`D(-5iSKkVC;7dI;FVAVH!8$)QLOIrLB=V1?oa*+W>e(8D0VSr*>+eZ0$ihxfj3 z@0@q8UU}^b09-x0eR{XLuT=9=y;kjyso$Of)ZosC_ij~mZ*OmZf4^3%9UL4S9v&VY z9bp(&uh)-{k6Z0_n`IeM6ck0$^{#0ewr#uabUqK0WR+z_S+WcWJjha`+imvy2J> zHL7FKs>SLKZ+fB~NRvqMms*(hNRD7SZC;@zo$DH+F_K49Z5kS3Y9-ku&1aikj0@0I zpw$C%2$X|y(^h9rbz{Lu)$zvk3nxJrGTqcUV$h+-DnHZ3$W&5WU%Tcuu#4E;r2*O| zc$1@OmF0SZI8ct5s1H2nYix7h`9*7!k^n?rp@;w(IAEsBl*0 zJilD;P=m&CuGQ+0ZG~oZo;M|Vq*Y?W`FOIJ&9fveHv(u9W-7R)kxrlXhC(n>BCody ztaa?=>!d87AOS!HFaaEZ0AK;I#Q;^1MKm-~;G=9UQ(&+#5g_b9CIeCc87(wskuRgL zkCr2p`S3h=4kQs&8SCpUYd}w&&dk@N$WGHB&r?)+5j|js4Z&&2KB%*bJGB(G!0vm{IEHNvY&eb;3NMupSV^JueRI19)z1?{F{0F|c zd#=FE$A5lSk@wC{-@kYA!M)r)#cCqb%I*UjCiu3$M%_}MY|-g|uiypNCX zy$h==iP@P4W&mJz>FC0V(IiF{2?j>}k+=WY1PH+DvE<^2j*X3tkBTyJPCFW>1pJc*^)kSavY6mBa-S)(^{e506ZRaJk>>iN#F-%P|nCPC-G zmavM7HS*zhB{FEmP>(_b8SUE$HRAvxfQ(^kIBdpZHbFQnyCI5OnM~U>ZtGsH7R#`6B)S72D{esu4 zbcT&E2N4OP8Ndx7Y>X*K6ICMJ;8ZV_?`TfnZlVp5j3`V@PmuW(TT%GBCV4rfUDUd6 zuHPsQJr{MG;Rr*JDVoV}ye>(3MJefeHJ@*k%U-S4+1cs$`v_tx5Jilxg!y_*YLS@^ zZ*|j7Pp|jwok6v?-yWh684feiXabK*B&D#dCWw|iT4q%9g{?}}Z+e3c2eN=^QrMJn zJ4==f&b6d^DYNC8?MA8BZVm=F5C@O~&;V=z7hnsZivb!z(|TzKm4$=CmN^xaR+C*Mk*Tvs@K$$9bT=bsCmz5d2#;OO$wdhxftj~+UE zlkxsKfc;oW9=UdFes}xw3$u?c|McPV$LEHhAIhxm{oaYRw-4QSeC)e2=@QeCy8{_S%ypAF#BzvhdlFQ*Ztc@=?OD literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_4_2.png b/resources/g2/track/alpine/medium_helix_left_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1c4b304c3ca81795b1276c6c36a18bc7f99b41d5 GIT binary patch literal 1024 zcmX9-QHa}g82|2ice&eb7OYrYkq!&XjW`PCAcF|;%+2nIT#jY457lKXYL&_bFE{#- zxqxMMXVoyOR_H@@5sMdC#T#VMha3d$Lmg3yR>*N3tC)w0!Rtf88~*Jv`0;(;@8$db z;P-tSE6b@PhmIZsfFnz17SE3Qa|iQuXjFIZ-rWZX!OF|$PLJr=*x2~^cqkN_n3$NH zoSd4P!Z2)ldU|GNCYnejNHWQ?j3985lu;D9P$*O?wMN5ooQ~%Og8`WYh6bLS&153E zTs*HPizT{J4B9c|C(%Ge`#M5S0)Ph)F-#7JwOCBYaf7C}c)pd*b~Wumt%htn zMn)1$G|9(l5l_iPS|cT$R;p~l* zyMDblw8IQU1c+uKt^%%OR4tln;2E2d-E^s^7=iAfEuM%-R4kt&N@=<-u}wvA3sSeD z^vyzGSB9>M`c61P;Y6CGvJ9ISgpwpx^Z7=pWY=o0W%W9pAP5k|WWXyJSr4<#n9wG& zJ+|1-7=FGP=$%2s-|r65ED;V<(P%235QwBi(+bBI#nCdgQ7X6U4bO20JqAP$Q-rW4 z#`PRgRT;A=G^^Q`sdeqD-*pCq2Z#Yk11JDGfC_$^sFo+nda7IN;-yBxj`&JKi13Us$97`p`877_+NHxppTFxkIO|$Gertdju(4#mG zS%5r1Xp}{9B=-ohf?DnOscPjBly;lVWQ1H!QdOBu7N}%}Ax)OFxnzeY{B#0|airm> zN+OFvE;l-U>g4P{2S2cWc3FTI{`~#T5xKRrxNvUn#>c-bJbvxi;n2$8+J!TbSL_r2 zzBXq({p3ge#L3&g&HJCOow)hlx5q-)cQ=|Ub~FVajU}SsqOopZ0_7> z9{xkRxrg0;{>s~5JoEagAJ_8pc<##g?<_p=^;^UFd+WbWY_2}G@y%a%_O`wCpPap) zFTZjA12(mLsmi^JK7Z*dF+Xwt;_8|@oHX07J{7&{KfE)UwLa8pKkROQmj6z_cgg<` ZJ4!y=`Rd`ug^_buI=#Gj>&1)j{|_rRz99er literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_left_up_4_3.png b/resources/g2/track/alpine/medium_helix_left_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6f32a4470fe74ad4aebb107dafbc22f1652ad400 GIT binary patch literal 907 zcmX9-L5SmI82x5CGwE#E?Lvis5h8RUV34rn5F|p>%ut8uWSFc(2$+R{6$<7Mp-9kx zIaG}huwc<1dI(Y>Vh?kOl0#%86zxL59xCKerLZ~dp-K)t4D4@~h4+0Q@ABT^z3+>Q z^Ulp1&))!mn`dvHTvqpXHT8O}+Vda$?*VFX@z%Z5itg?0?eFi`YPExdgTuqaqoX4X z!|L_=@$oUnV!{@EB=!ViTR)U2dJaA7;gLy-S(`v=qR* zK-xh07&pN?GfGPYGgG~_6>R+!UCDII;D~;Q_Edgqh_R()uCW?fo6y}Rqg@uFP1z zGA>qWSw2PrfC^v%_yA#527nC)sDdma+d^T0@|8@1$-+>8r~|nSNC9Nx$YW6;qo{`# z1C$5wGMEn=IpU%t&BEkxe9KDbt18MmmWc3XNG52`H1Q@^ddY{(JfZA6=d+ z@YcO}ho=Bw@8Waw$AkG~P~nMC&}T1Sr2s;3Y-wd7pd%wAd-m)Jg+imFqhn)Z z>yGPg`Tk%yq$%K75QVTTM>82b zo1+RvwpL-FLlVmjgw>bSYve zxS1g}dIWLwDZhy-XflsIsb z;ERAHKw1nHX=I7W$)I)t`4-#@o&kY}l!#^2n2{w*X0m3fjYi({?0(-vfmS>XbS})9 zG10;mhtPc19LV-C+t?|$cbzWk42UQ&IF_U$GKXg*I+qqqBV(0}hF$VpyYIVb*kuF( zIe>gXD9EA^$lXUgpR4qGOr?Audb`cbvXsfFxtvB*d4?);w9V5^f!Y$ueky?!92o?v z(8%GCCj`gOJRbh%-VeNSd|860|Ge>XK)zX=KeF=J`LpMq-{&5j;B_>dKKMua@K2vD zU%LFl(ba|1Yx{fUGn?Y6H`CLH)^E+f>)dYP?|rs*H%xh0>Ikl%j@Tp`9x9=r52KYdH#>901L2v_QFO&=jP_-=jRs|78Vy5mzI{6 zmzOaNOQljPD=T;|mt$E*6a__*G_7bDdaYKo?RK~8g<(IAC(|j*fWU(+rHjRExlC57 zOufO|ExFTG{lMr&jp4`#EPOcG_6&sbQ_JJ-HtqO*zZp!69j|~l#Q{SjOY_ek1h?x`l#rP zEB?glPrKuj!3?G8OoqepJegByM&o%ylIv=+tlDif4?5jAjHW{YR0%VbjH!}VnQm1D zx32iD(t&FZg4TEtPNzpm04M+$02Y7?Z~!pE040z`R5g(6pm-otptH~vz{^7{15yC# zIBKxSk&#zMy*i2=xF0+Rk_ZJED{Ht}p_^8|<7mELiz0VCj!>dSlz^?K1q+uQQuQc3 z=B-K5omTvr-8=DyXfUC&z>!#<$rJ^$tgzLRWSM2BY5Hz63f*xWqUn&6B;)~#0ih&| zdLs7#M6KEyjkuQm07kDT7K=)`tW~Qz%hWi=7Fbtg1BvO&^tg~iDv3-AwOHf{D3X%n z=T4`O@BhH1^IHl$fB4I8LauMFzi{F4Pp?>;kG=OyYW)tn^48P0Z>4@1eD&MmosZ?U zhwq(z^Kj1$x7WV^=*jF$*Uzl~d->XpQ(ruCw{_;vbD6#GK6zv3!}(Y2e~vf)dp}ne zkFVbQ@~O3pw{HBsxwL!dhOBOoA3N| hwDT)|^rP_m;$J8J-0E|CuO^;gb7O1$=8Lai`ya>GsWAWm literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_1_1.png b/resources/g2/track/alpine/medium_helix_right_up_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ebff2e0e8e591f032073d4ed3169a916f2f0c7ad GIT binary patch literal 1039 zcmX9-Z;0D;7=G_>?$#Ye>MU4U#kz|Syy_xk8olV{j(W?yjO8GVZi^CjofeFcK|d4? zvm3pwy3BQ2v>W{puxM~)o=4D51IF9I6%2Z~iV^yudi`+DDpd;Jho2dP=Y3zEFYm*{ z^S*J-7=1Cgxw9J>pN?uh7_#-yi+px0?V%aQM*ToKFV^1_lQQhlYlRhlfW- zMn*?RF$^0U8yg=V565CLl8mz~BM6)jdW{I`#8FQ|J32y641foaFiZ&swMazAaf7B;cz!*VYHHecrGjib zLWW{YIL=3D2~Q}5sFAWxt7SH4a>cq}G$hMQMX5+U5u*iylc}V_DtSI%kt&vAxtik@ z-A=XDw}T9X1PG@fngv|Ps7g3d!;?0nxMHED8eQE%D?AaBsYoV46hyizvvpN)b8@q! zw#{7EF7;g#wVhyy!U>V2QVg3Bgn}%WGnrbUU{@-xWwkapyWK8=hyr*CBdbBS9uXQu zs>SBpNu!ggclFI)t+UhYqW}>MQsHnS8WV`POw%gI=OuqxwpJ*vS8JZ*_F4=`9Ht6E zO^WJiqMT*SyihNv)=jNxmpe_T*V{%6fC!)h=l~|bIzSr(LPC)N zD*+x4NC2dSQGrATkE}Fm}BfxQe($zp=K8k0Tsm(@nDjPrUf#a;&d%-6t%ipbRDzfIjGm7 zI1X8WJV40LBJa!HLnN0ix7$>?bPsBy!6uVJIxT0j3K`E)@e)ItENOG`O`hn8F(gHi zhNCixEC#upfBe+rfxqwm!096k0zAL<^O8@#o}YbT@v-;LU7mlyd3ZPbC3^G5zVh73 zADiPds|S}aO;3Jy?Yn2+`sV%*|F~sO9+>}PEC1DO;_T<}RBP#x%UiqGE}f{|cjJxM zetP%J!Trx&*?&r!6tDcZbj^Bo;~i;wd1I!rws_~{w;Ox^+%tFV5cx@eZR8X=`~9!C zk6)h-99{nXmzQRyo}`yvdE(a8r$;}&sC=|%^~}?+PhA+jBi=r@dbPXn2j;k3_;=yz u)Wy@=xHNHs(opi|*@ybaD$n%a-#e54=fGd*g$uqBn4epiy*~5u+y4WI*1^;O literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_1_2.png b/resources/g2/track/alpine/medium_helix_right_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4de95ca81cebaddecb3cafeace68c55b3d34fb GIT binary patch literal 1029 zcmXAoacCQL6vtndw%0Ch0V6~f{+%QP$PPx$_ z`QyL?LwA-#0tOc($o&!7p=s&lm~kF6V2YtTM}-Wo7$vZyZV*P85&Or_l);zx-uIvP z{p0iA#>#T~)X6g^0pQfqoAayVe)f2t4v*`>-rf;F7*;M`UKra@D0Je)iEubPF)=YY zIXN{og<;tA^z_WkOgx!PQWVK?tSIuboK;mt*Y!%J)@V4b*1qo#hC_-3mH~l}WV5k+ z9xoKhlEGA}LcJk1UA5yGy}rc}ScZuxd|b=mrktv&)Q--%l}x9h`0Y~QTcbfModAh| z0t=>y)fLP&qTPCI*h!#(L_-N3nFzI#00Mx7VM;WrB@$*TWiiZ-AhdJ2uBJVz)sX8Z zs92JXlLF32skB05G)guZwaV!>Uv7$4M{@iePAAB8k`W1Brn3sCl!Q`EsyT||X)V9( z1@+#@jj|9EA)W)g2q_bzYw>g=m33Lg%NRY?8kjA#BM>o}P88CFkzwjG*HlGMm%A0U zZ|eiMGV*NHZ$)EtipWrOj^zrXXvlK4P-qy2TdR4F)7#%43(P9Aki$hY7aJPkYt83D`7ajig<&2-(8n@!#G>>%*aI4h9@su*F- zxM1OulTv)f9Axcbp*gB_j+`Fq4pK3oaV$+nvn-w$sbY>dwY*im7`Qac?kn-%kUxmZ*vQm4rZOW7Rd^5nii1eqj~aHOSB zl|l}SJbrxq^laqG@ef>ET^8Zo!w2t;&Cb&N`OB|%U^}?f?E!zFNPzw)uGTk9#jfzkU2P Z^!59*SKkQM#xwzz7MAC~yYTKO{{yr}!_EKz literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_1_3.png b/resources/g2/track/alpine/medium_helix_right_up_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..61be612814c484261657016fb23317c9601f05eb GIT binary patch literal 907 zcmX9-L5SmI82x5CGwDoSBUXtRAxaMc!xA)ypb@feW{E@A$+%g_pn$8trzo+ogIA+xLZV zsE#MbG_~iszgkBUgXu!UQV3V40+Sxu+@&X_p+28j#jL+6qFtHEBp3|zL55H3}9*6A!=_u*)S(v;+yEsJW# zR7CJ7cpel9bQSBGgxg~Vfjo}P>D0^fc(ch-kajC*CRA!^MkU=4rMneuIBFdGj{QULCzmI<4(>v!H z-1z&?4=VE7+3A~i>-RtZ?Ug6t#V7V}{D+KZUq36J`}*f^UV0mTeE-#_f4{f*_?>5d u`Q*X%iwCz~zWLd=@819C*B3sjefY;4Cx3nM)lZcOoZUJ<{o&?&U;Yn3@P5Pq literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_1_4.png b/resources/g2/track/alpine/medium_helix_right_up_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e68709b9f3a1d8b874a159b887425913b5f547ed GIT binary patch literal 1043 zcmX9-acCQL6n<^mUfQe%jc{|f5hb$`4!LfpoS4BmuOls|xo)=+A<8+gEX*heyFqXf zQw$O$)ME=6Fkq$!hW23jqqqYP405deDHIBoO0Cf_ZM*HdgW-^-fQ^B`2U4j}CKJx) zsA4HrsS5RmWHr^6Q|k6~j>M9&fWqVXWLT4Y-taKz#}gCA6y{WJdr5013mCU@%V*S~RN1V(WsikxqB=`R!T_HJbz- zim*5(gkw@Pu8_$*Eo(8g$`uU0Y>9eHGTn5TA*gsHCX&3&q!dmm3dNdKGZoXx+iuzE z*SkB-APXT8@HB*T5Y;fIhQ}MxRFhSlWT~s_1IMcivx6ZfN+xM0&2m{$EXi^;n{AXz&05Vd&2GCr7z_{)3PdXyT@P{=A-2eL zmn-&CdOvFowDz#k-|g(602vH2I35p2M3RzYF_jmJlD90^D3v$r4cB&tT^1xBQ^jCj z3Tqj%nq!TkXjRi2M!wUm_B-})xQ$qVB!CK_0T=)q06h$l2Z2L56&X5mJ3^=9z^vVr; z?dNwlU-Qd)eXjo1AGP_V&c(#Phnxp9R~BFV_0p;L_U9&^ z#_ufOI~~5gM}PK0Epmytp4jrAe-JV0;pDzDyJvh8f-SNfuz3H4yTic!)SU8rLyYlMWAO8;q7{p@$ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_1_5.png b/resources/g2/track/alpine/medium_helix_right_up_1_5.png new file mode 100644 index 0000000000000000000000000000000000000000..4a816d7b46969166fcef07472e9581c371a065f5 GIT binary patch literal 992 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 G<=}tD9-Pns literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_2_4.png b/resources/g2/track/alpine/medium_helix_right_up_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ec2f03176affeb638a8b4d4ff8bce25761bd2cf2 GIT binary patch literal 910 zcmX9-L5SmI82x5CGwEzy1NIOxV03$k5F}y_IYf+3X336`$*@@n*h5x=R_Gxt5qgLa z*dB`8Ly#VVR>&bp4*`3aLy#aj=;-+P_~hgS z!?0$vd3t(EbUGc5Vo$^dNu(|7@l=}K|ZWW8st_b&KCX-+=Fc87hu$hIW zV|+bpS4$G@SX3G4#zQFU0H^>4hFLi7lB7q|p&(qV>Y~?MyYABn|+Fl(AI$H z0p$SgVSGTybGn;~R<4gXc365Dx>lLC$&&+_8SBE#loDIZhvwS1x6!an{e2#xZHBjb zn$bDFCrSfN8=K~IFqn_WX%OUbyjiWvvP3{yK>HXs!=;4OmP~IWjkeuzH%LlvRn2!d z>pf~QIL;GM0TdbO0N`1Bd_?09y=D4OK#pjiL}0Yn29zgNX>S4223v17s0s%%M<4aUU&5 zs0iVC@H{9I=qlDX33tFuJb4zHNixjyXt&Ez?M3#0b6TQDs3B#O#slLWJJ;ihT;lxd%NuEW!B16@NR}>TjDgdE6i&1U&0_4z{Znyl@ ze*t^Bl)7E5-!~n{;@Bb2`XU!eT&l1umD%YXWKhVZ(Ue26h;pSaKmT^?+4CRx^8Td; zAN=+E=QVln;{3x0&2K;ZRd^ZRXg03?b&VgsI(hWXE6LAShj%)!e)QHaPon9)?|%B? slV$YZ-_IVYj|bb=|77oc`tI5LZwBwAf1tB}Y8|+^dwKrj*~7>G1MZoCga7~l literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_2_5.png b/resources/g2/track/alpine/medium_helix_right_up_2_5.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea41812d72bcbaf0f82051255669904de533853 GIT binary patch literal 908 zcmX9-L5SmI82x5CGwEzuqgIVSjf)p&0!yKyQ&_mG(a|jZlhdKOqSa^Kj_b%T%y!XC* zaMrzfKVplIGlT4I-TZmyuP@ostN&V0v%x743`p8T{8W(G}`pSa+p;9MLjRC zR$J6!aGWQIF4a*P)(`|sRz~{nnLYQ$i`l%$@_H?TE@PI8J38eLn29Y$BQ=@y7m>3{ zC*>-u>q{g8XaE*~4-f$?05%w)9TW-K7K%bttP~nd4#pzHT__YlDj<_U9*05&#RIe) zp(2E9<9U!J&=hQ75YCVp``uY+B#E2nQCa3_r$zRGvsV8QUjH<`?Bv0!m*P?<2;MXB183>mt_+DfN2lU|`s`$+0fa1|k>h;n%se*U%AztJI(BFmEQT~@x9wG{U$#D;#bEnyQ_cx{QT$bCm;Ux s>vK;A-+y~+^Tr47{^x!6^y%e(aGU?>$M-(It`(f#KRfyE-uqwt52v7k6aWAK literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_2_6.png b/resources/g2/track/alpine/medium_helix_right_up_2_6.png new file mode 100644 index 0000000000000000000000000000000000000000..9215d09f9d901203962fb1824912e52e8450095a GIT binary patch literal 910 zcmX9-L5SmI82x72napf=saV+P1~)>%9HK!ydwtg$i@{&9d;m@8ezGJG}SZ zzjG#CyK>_S09-r0eR8+D*Q>dDRIBzm_4^Be8r=Ex-mQx6?d|RF@7HRzdcA&daBz5d zh+){#(b4hoG2U*sS(Xt+K~-g4@0zCJIF9d6X0s?sR#{e*CCh-ogCaM&-B!O(4lHKq z^8Q$v&a`=KE>m~24MZC2@C`%8?GEYb)Wl>j95MDg%bAfahItn3ibNtnqhTO`r(#nB zi{0jW+A5a>${AE@=+Z+dX#*$#8ipCorcDqYMFl*6p(u-9Z*AMpCKD9L1lwv0IHQof zMo9+Uv02^Y&9Uf&@@TFGOD)QJBu6k(n^$RB=emYy43*(Tn?y#G+DSG_^XX<6Hw9>^ zfcJp3fbuYIf=e^18w*C-aW`gAcnP{t=$6hA1BrG!{8Sg`rkXnX+BdhMQ^fu*4be7f zwm6FJuv||N2de7o`gkyyxo$j}q*1h4t%{;RKo~&z7&~o>b3$Fxy^T2Bc7uE{FT7Pb z%P-eE)S#P94#y?3tGkQcC4@tDKJG0- zdmWGSbyAkkkO0sDFabP(5MTkY#Q;@ML}ZyL3{bXKC@@$U2@pw;DS%W!298`71qzD# zXgNe#055~*Ko+5+V0|682lU93rhz`6J82r`d5S78q6e(i5IkH7NG+m_jQ5IeSPtep ze|Z^g(7K>nz>%25G`j-XS6Qnkdv-q<+4FFeCSjf>sN8U}j3Pi8AXH^Btn6NaaIEom z%Z>e4FqccQ+g1C0-LedpaX7{o*id9+nOP}x-f1I^L^g%SEQ$n_%2oNf_ZrV%{=heP z&s6y6>60%j^5N;p$M@d&>8l?K$2pMU-6pZ?$H wZ@u_6{_VRPw|{>3htJ-8E?!R`JkIJjzde7ae!r3aRq4R#t+SJdpM3HC|MxJ00RR91 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_3_1.png b/resources/g2/track/alpine/medium_helix_right_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..950ad5363afeeeef952ceaa2a4fa273b517514fe GIT binary patch literal 974 zcmX9-QHa}g82_%lyY#NkKJ=k#hT$wDV$djg$U}taanLmo1StU?)?L{?`9 z(eng;8nqUYy^4bp4k`t89xNFf z=$PNmO$Yhq7)J{lEmd@4Aruq=Bmfn|^jyxwaf>8vjysm5QMEcX&3pYm@_n4i7x@A$ z5u8evbgE)9n#CDCq3MVnPqxRZ8&wGwr%OdnrbLZZbU|-Pt-jiKbvHDFs1q&*vz4FY zAumIr3Pb})3uF6*(vVbqUJonnnPJCPfQ}_9ud#T&M71m2KodMe4x8GvYs{Ty>~~k8 zgXTdl&yrMyVXM4Qm*uvm_3HIuyY2V;q3g~jlQ@nM;5v|9j2Ywv50}SObtbgtioK|N zu{Bu^7bnvd%2K%;TPT!>qD;{m#~Gs3Qj=wkVY@RL45J`i&UjEo%#d@YN?0|j*WjI& z?DeW6$DI1T#WYwh?;#$b0$>1G01m(iV2%MwAPJ~pAjd}0R3brVpu>Y(f=B`+1JVnq z%^+JsZVioFD6-*E@GOV|R3xmX70f!-u}TA5^SovlI*Ub!5-q$6Oe4!%1<58H{8ahKaS-Q(Jj==aLJ&~wIrHE7lnI!5l$mLNeCdbdd zn0@f*2i`q@Aj4~a-M*NRYx}#em!H4!h4o5G*vSY#qpQl!k?`T{O8KqJ?>{)B{dszH z|K>}nPk%k*AMXAB)!parY;Sm<=^woP!hhde=t#=-+vG_nl`i z9Vt(hU;X#e6Z`h%TmQWG^5zd0cFaNebZ7O+x0#>5oW;Y*$2abu>^+RrzkqY}`E}>- Q#0Tu3JJ|j1?1k(912Ma#`~Uy| literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_3_2.png b/resources/g2/track/alpine/medium_helix_right_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..53f4cf2104d85a89b60b4f85610ad1411ee35c66 GIT binary patch literal 890 zcmX9-F^HsQ6n?w2yUyNZnPMP9EDX#A19Dhc7?8tD+{0{4*5y2~5Mn^c6jNAuFog+* zSPa3!Vn`%RF@?nxLZ(=Vg@ptmLzu#1iV3lpz`$7?M1sWmFWUaVPr9A9e)sxI1kiz-&tE=o<XagIXyi+J3GTL ztlRCLpP%Ey;gDq+Q4~~FHcj2OEzk49aIsn?dA=>nx@lMj1RfN*r|X09n4CDw)aS#w zvRoNyW^W3Ae~3gH)A*hxN$Fld+v5UAMF!ZN?V zTMn8Hfhq} z2dDt!7Pz#c^h~e{&EMNm9pva%p$8^MOeEUZ_@ybPwpw`RF0>D^S7+f}5u-!iA8-_{ zvD`=yC#ve3=6o_)`F^%o6iKq*ZtJ>6Kv+P97`yC?DWPuY(O#S$^r)Job+Bz#)&1@c z_2_<|!*Pimsx)Krye%tJqh02#{MmZBD)XY*3t-5Yt@d4m494`_5#p(u&PVIm-DUG? zmp9EDBmigtHb4Ln1FQiK7@!u4h#VWm5h`~I1r`f40TKyH1&|8J!jaFSNI}UMZKkM< z;30SpWDzt48=JU0p=W`#jLbCkiXyJ60<~Vm2w0~l1h^8BMnYL7AJlr>Owzk>bD!+d zuBHaSk(k8vb%7kKtTU1WcO1>!G@ccCT$MR$_M9xE1W*YGwOLGCySE@bXMQ+v^YAU~ z%|_I9bv!m5$6^_eV?u$AMK+U}twLAY5E&$LDKuwMBA`NUkDq(e`}g4oUcId~ T)7x*`8Mu0Wefi5LUw!{SY1ep2 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_3_3.png b/resources/g2/track/alpine/medium_helix_right_up_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..82bdbd5ee255b56a368dc3b94f7c58c62c73ff99 GIT binary patch literal 978 zcmX9-U#Q!36h8NFdT$wd=tD1y5?O@^nS>Eoggj)sxwE@OZpJbxl7}ea8lh+&A`~r{ zVFz_oh@(Q0GJ^&w8d#Z^nTIO5Gsqq5T#zz47NkniA_I#SEO=!*-8!GnQ)#VbmePLXmj`D7mf+k=7tW+~VPRo$adByBX?b~hWo2b` zbrr*~OeV9oww5mx3M|WrqM#^}uB(=1)@rp@%k6f9C>kWmbT(rd5O|QKtg7b9WwKIb z>J7ftmOEXo7h3(eF&cX!jg|PUDdp`F>FAVev3oT!Y?b<5GdZYF5^p|@iUephR0MDo ztYczf10QyBvp#_)44P@^&_O6F0LTCuhM72S6NE!i9?$Q|@_}ItZTq3?qA(=bTtUb) zGRbRH(WFZ@t2?~a7HhuL>?vMf3lf9m2&P!z6_ zJ{m`Oj-%)j%Nc@LQIv+Rw=0!yqY=7p90a4mU^<;5AWWcI7~8?c9-;JUVT^0Pg z(rX(BzC8@vlVLQQJwyUP3BUqy0DOQ0fH4Lrg)E|~g?tYsLzx1Tg{A;O5fT}Y0?5px z28%oy1!dH)qr`*9!E+#qP?E8-p0_J>(xkY}Jq)yX-aXp5Kfkf09IKHsT}+1%MJjD9xgt z$~^&5tG35uuHAY9tKSz@RVkPCYSm-*1SF3lgs{CE5zJ2;U!xsjZHZPzv4 z-2X>D_Uymp#bckJa9`M2KmOt7_shTickTL}KleY{xck{3)GL>7Ub^?z+Iy=nAICp= zhc<(+H;unXyeI-Sep>j_ W`tfS^E_*Ze0^4VHwytfy`u_h|_o#IM literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_3_4.png b/resources/g2/track/alpine/medium_helix_right_up_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f491d4931692414a2c76997bd32d63868e7dacb0 GIT binary patch literal 860 zcmX9-F^HsQ6n?w2yUy-#SWF?r!eR;o5-bc@SeV2;yv1WZ&I1bz145=4h=qYEEQDAL z!NOt+2~${DOd({7Ei5c7ET*uqm|_AJQw+r73JDe)vXDP62j6=i?FE2-<(bd(}_4W15%?*ZO+HI(E1xUn(NK+S$#1)i%jXRP@#Iow0$tczQtoKAZyh7&ocdi6J=ZBZm-v*Y8J*+jqO{bs zz_K>Wr3BP_;r$0?|6H%=U$IpK=`TO+;e);&Q!FPZC`O`4mJ=}l) dY5cqO&n>_U{2R}H{%=s>;qBx7A3yx~>;K#ZY5V{H literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_3_5.png b/resources/g2/track/alpine/medium_helix_right_up_3_5.png new file mode 100644 index 0000000000000000000000000000000000000000..ac258484e1895e909f45df14a69d3edee51be7cb GIT binary patch literal 982 zcmX9-QHa}g82|2icj@goGS)%FJX9zcSR6re5HVofa(DH}yd29(#XjUPxT1ZCkVyu4 z2w1TmWdtl(N7bqks>E5?$pY75r z_ib;iXBUq>cnkm**PdEFA5S)}lgUKfiJuSO0!YBdxy_ZBPEAcsPfsTjiJ6(1+1c5- zxj78OlF8)!{5+A#WLTCFML|&{P0JgGUMiJpwMMJu2f=<6jmBe^0f7fuTFB>9#bVmD zm~w@$)#YYOZFh`rSm_U3k;ZcTf-VtuF70Sk!(ewxVyBktw)AMPJdE7QD9Dna(qIbU zC|Fa+Iu*RvOpUuF8Zv0Cq9X^PAOj!+s2HZ>xJ{A{MY%k`Bg=b*LeI7j8V%IxkZdX= z5R9DWRVu5~Ih)lS-l&TuPpY;Rx2yV5A(P)H#)PbsDY!esTq|&7eeX%^q zyF;@*a`wlq;Zbjb7HAyj2qK%#C^Vz-ydlYDHC|@5D%HJaD+6$Re@~$pFQ<_v~~EvrAHrM`QlJ~<;{QIxpwFBBU=|gUpIgJ?d2DL{qpzQPk(jy&s!(g iCZ$u5V405g7y$GU=Ia@^iUy64}~qVNL+d-GRSY1h3~z`$Aj-XeDB?A zoYXH~c>DqYTs*#ZbfcJLQPqP|(O-Jy<6=>Q#`T+53%awjv%9-nDwX#3_R8h*{{B9O zVFw2XhlhtmtybeWR+2MUS-#nDEQkUqa;4dLln4bVTq}Y-D0_ z4_}O`n;D7LEZXSk+(Rg-0Vn`EhM73-kfcY`fgqeI%Cyy5IL^J{5XCXcRcj)_DwLqp zb(7H?&hP|lAi1I3pQyo1kFplUlWe^vsElmzO;a+vN_VIaBQr{!BSMYYi)O0zmR68^2|81ls=>T%kNs^LqE&)d zd79BUz9mW>RqYwZpwk)mdhu|WM$vLU&+{AsX#(wI+z6K@q&j0-OR2kR2J6lw_vV}N z`h2lP6$Zz7f~Zq9m0=A*uw3 z7V%)cNH&{$NCeOTEC3H61egM>FhB(q3E3731C%Wk8cYuQB1Cn_6hJB=$*C{Hz$QE#RMf3l=K-QSu`bX0A{Rytwnkx4-^;s=ZBIhByED;Frde$*spm zjnk*fPk(-!`|F!OuMqE#zP|I*wd-GA`tPmpsn_m*_1^Hu^1IRxUwrcN-;c_#@^4fc VxBno1+b`td`0B~gcQ2fN^go%>iC6#t literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_4_2.png b/resources/g2/track/alpine/medium_helix_right_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..02e0b3c9f22c97c996f2d7bee2be36e249d523c1 GIT binary patch literal 915 zcmX9-L5SmI82x5CGwEzy3R@&%4q53Thv){(AxMO{W`;OMChKIOhoDgd_K-sk5sFlZ zSeCK`j98W+JrvBLU|@R~BuIoDa;R7&hYD2!_E6XyRt;{I9_H|yW#N6_$Gg0Dc<;M^ z=Ulpe?Zs;VaQ*D9lZ)!&)!eApsy%$|`3pB_2c7XyxnfIEF+47s>+6;*|s$p419kwn?-55%=2=)Wf>57P~?WDwM>)j^_ii| z`(tG~)8oWmWbS$sh&0yW8!8Q7J0BMQ;7hbhMoYPicKvn zaht1YYr7y&!Jw^iZbtZSB~>|GC@f~u&uU$GYZM; zlw{Ezhc!Ij9*cue9>r>~(4)Ldas(r_d6kw8PP0U7s0=6iB(kE+N%K)wOxL@lDL_jF zybEL>C=cT%xHO}*M6j}syS9VUOVOo5w+xQxNwnMHr-m5YYBn%dzP$+tW#aF$5N*d@DjC;MA>n4*)7DemjvMfskgawq3vD2m)6Y7HQuEpU-3yNM`dduys zxLWN{gKjoC9GA$pN;3w}+p;p$E3y8}9nGh+Jk7Ri0dyI&)uyA9o=K1ULO4|8ad#d% zt7KfP((U#!5&${?Hh>2Z0?Yw67@!J@i261P1C*~63M>{z0z?wz3Lq7bg(H_mfr26v zEruu$;A!w2$RczU%rtPPM~^&d8W?dr$g;2~GE{jHU10kS!NZk+)FaBud9T#MZ7<&W zi>qjjRwdN}j>IIUsR^X1vi+{?Ic6|&;&7CuVUee3yXIsWMSyZZsLEnk**ya>=#MuW zZtOpUy;z8vrkbYF?^`T0;22+ELy=8nW~tCcr;T(HITRYRC=yU6SLNqkY5eo_2R^wt zSK*CEzkOVh+h-@Y@4oQh!B;=*!OeQ@cjx`nuiwUgdj8_ZlXt&+{jVSWS8vktf6smT z>t{9WqYwY^|J2OZy`S@Mp8WmGt$+P{?|pgee)00R_~(xvR$_2=dVcco%@4l#A3jEd A?f?J) literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_4_3.png b/resources/g2/track/alpine/medium_helix_right_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8500f1863bafb65c46d556ec91cfe3e423e4d455 GIT binary patch literal 926 zcmX9-L5SmI82x5CGwEzytJ}rM28`H4z_0`i5+R4UW`;UsovfRc3PB_QI#BbFs# zz#v6(2v{LX4?W~iBx(9myX?mXLMOm^82t3GAO;sD+F4?n~zRUYV zc|6hL#GGaBVi|}u*5+%5gxhV>)2Wfko;hOTw`UV0pY~UIurAUT0U8ZG0Xzj88(8Aj z=i^2>BhZRLrG_p&gwiH}44`3{QLozs;Zan;^JlU=?R4h0{b)2oNkXuVrhqdt$!k>0 zpxZX9d%QUmolqLYN-)!+yhCyX(`xbxE$N(Uh(=%TkF-%_M46rDgKRZktdqI`4F&KH zkQPuL#*OgSgi;g1$lC703<@trXENQ;IilC1-8Mhg#n@CbN1yxVGIWZ>UuPj&ru7C# z(QTIN2x3oBTwNdbdK1@8Mx!i>7U$cxe3UQSk* z^EIl`^*V>+EwZW5jL!3>B=@z=Gi%}wrsGMTX5~TvO~Op2Zfm61rH7Uf_LX?pnTGZ} z8LsAOSw2DnKpVgW@Bl)9DZml~w1F%l%S2&-^0`cb!NNd*s0FzUNC9Nv$YoI=qo|8! zeUt~VHJ$@Wgtm-zb=>aJ1Ftm>^f-31EL^QJw9z6uz*;rI!{va~BFe~luTaCX7q9)< zWwb!^f@%OqVlAew3S?Jdt&Zf`-C$tH;UG)HRi2`9!ATN|0Of$t#*6+&?kNbz8ZMXI z(0>YZHWO7<>2`I?GFZmp7++vRkxeA#T&7p;Celb`Q)tMdNI;pi2|stU_GH_EPwt*7 z@aErtezYOCPmXTgtA6|5@9#eQ^UKx!TaRt+ubcl}-1y;zYhOM8933|=r>{(23ch>) z+Sku~^YH@@|7mgY%dhXe`oaC*YRYG4f4ta#_}V|;fBNrmU_5{?-Vm-|JiNbcBAgtb L9{u>%hoAosY^jGt literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_4_4.png b/resources/g2/track/alpine/medium_helix_right_up_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d6b749012b3692b1b5b2fc956e3cf502320570 GIT binary patch literal 953 zcmXAoL5SmY6vp37XC^b-9m-H7Vw8wQa)=Vy2oZv0G&9s8>txw1Mkp8|Vh=?kMk!9f z$P~7YJw&WprAiNB=^gZEbCReSKqN z1H-V*&CRW?Exb~xuq-2rf}%*eUNcRj)oS&6gVD&3qDhjZS;jIT@E}XYTCLn@kWGte zclcgk9*(piG{@8yt z&7)G8qiB`o>Vnu*l#Z_Vo6S+D6AlKk@6RTaG))l@22eeW9hSs^P{wq9Cbs7_chL+| zXOfK;=hG!B(xnoI<5jYv(2UOWrX;tue3>=sbkByPB#N_{0GfoEO3Btpr$P5E!D}l) zzkcS~)3CpoMp>d93E%*D0A~Pm3{WmvM3#v>7bR1f0)vIF0Dct`8IS_Vz)^=q zu8jN!8n;p6!oA=*kVH^rtfAv}lkPgzp{oZ$D~`RzB1Sojr~_*i1qYX1Qu8Sz;hnVR zWzAsO8=w0#G)<{8a3oe`N;QFOD6CbN9J}Fm?ZE5Ck+(=9l+8FvLO!4b5X!S?=eYYK zT2_BP=lZ?-GRI@FR#O@c-LedpX>m+XU_FryC1xVi3$=nY64?~$v&a`vEak_~Jz4zw z-VeNe^-zJ`KYn{XH}!+P=dL~Y>5KA@JKyha-b6>IkKH{vvHtydW#^}(U;p{#o0o*$ zA!9lo_*tyFRp)n`ID6|f4=zPI|91>!^_SSLi+A&H?XI=M>j8h tq<(vY-g-D#bC1nw_RN3peTHB9?v+1H>#N5 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_4_5.png b/resources/g2/track/alpine/medium_helix_right_up_4_5.png new file mode 100644 index 0000000000000000000000000000000000000000..167994d6687f700ae59586aa353478fd8922a57c GIT binary patch literal 957 zcmXAoL5SmY6vp37XEvSfj0JlLZiIkc%pph?a>yZvxSLtxm~}Et1`GC(fvi?GNQ5j# zEf|;zRdUFohvN27*eE>&tT0G~C|QiyL&1PWDn{s`V1*Ha^f1C4{$^SD-g|tP_d9&= zeSUN(?Onfd9RT(YUfVw|=5A57a;fM&`o#f236Aca+%4?J#>VF6W~o%#+S=OQ-oAG2 z8irxza(QQG2d~%bEX#FY`nqK%>DHz*Di2 ziN$VpKB}#!1X?j@t)VLqp`;F=0B9IyR;vy{cogOH{JEk`TCKU`TnvXOjtRC_7jQ-) zd5w}xy5X?8$6Euj6Ue3Si6CS#Ubbu`j5=s{Zux@t6N zO#){g4_5PJy}m#KKm))6@BjjU3BVEqR7ep~+d_elvbjQm$wE(nP=ZVWqyjQ=pwViHqr3Z$X3?Uw90hTn6dpqD1WDofCM!O1cT0cC(tkwv$_JrmJs z50*=A(0?XtIu)Bu)iCsS+hmyz$Mgj@5ZPE}W(vJ()R9Iahe87ug#t?D;`q5&D*rzH zfrrP3D!lsF@9z}GIM}~^QvTu%Pk#Q%t@528&`0X_Kaby>dG0P#dhXG0AO68T{_n>Z zzMQ=K`Ym|xm+x-(?!EMPPmJ!j^0UuAwm<#(^rAl9eXDf*zWV1k4=SfOZTt!K>k(p3 qKH0nZ?V0i5<%d7bgs&EF55I@a-47l~H>Ax13kP=(_rJb#diFnLbCi|< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_helix_right_up_4_6.png b/resources/g2/track/alpine/medium_helix_right_up_4_6.png new file mode 100644 index 0000000000000000000000000000000000000000..52bab07c5fd6d3a75331849a9bb7bab4ad3a7711 GIT binary patch literal 1093 zcmX9-e`p(Z6n|ZRT)V8q8b@@8oFjFSUB`(xz3OeA?X|{wuGj6V(dLhchl?}d{c)oa z13NKxS&j3CLBk9z&cnrdV_^o35G1ToYKh~RMdCa(%-|wah$Ee~7WOq`@Okg?`R9H3 z@Of{3YSP!gdD~_H=%09M>_B@CwrhKDXS*MDt=|LC2~*EZkGE+@N5`g3n>sr?ySlo% zySsaOdN2&@?d|RB>vMZN9-5|jo|7a&mIJD)#A2~jDwE3<%H?I-Znj!91sn^a;0Od< z;V==2Qtn2{!2UDWqScWt~;ie9RP*MaifH3wDTLaLVUlB~p-?fWj+rF`fx#3QED! z%68IfWNT|BCkHMG+#w*M;MFlEhSB zMaZP?%NlaA7_%(1(Xdck z3l9Mub#S^{G>BlqtJtjG44AD*aV=HZDAZ83>2(1^U_Qzj;E1q9M?-?Hg^i?EG?P}@ zY}jSgsxg9q3V>`tsGUW;Eq5DuESj#@nRMzl)Jla91f+0Sjz$%liZN7*qfMSJ3DmMk zHvAqGB#`DsX&MzcWC`u#XLdQR-}-^W2PP$W;@Zy#+oUxyHZnbYd@d=x_T5x3e+9h} zc<|`R@!wX4?s#ba@UG!&^6dCe>w7Lf`S*t(ANnC6{V`GgbTms3?R`G|UiXi8{iUF_zuV2`_AR3R?++SrXHw0E`9UnCl{If zzC8BWmKRv(%!+Yi*tPGoQ|GUb5B~eQu(~w6_h!e?k)f`InSp29_F-ata_s!*i*Nl8 Dc8uDM literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_1_1.png b/resources/g2/track/alpine/medium_turn_left_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..86cd4f3e881081e395309db11eb838b162206ce4 GIT binary patch literal 987 zcmX9-QHa}g82|2icj>LnKJ;c}L84U5AV@aykcWWrE_cQwayc)93Vp~)rWGROAxhDL z!38O!57{hIq-w=H6bW911G8O`z>4cb!3@vQNgnDb*d0SUDdWTw{$>n*-}mu*`F=n6 zeczSsE$Q^Bv!?*y^yX{pJIQ=Dsg-mp>94NcdIXSy?bk1EBy?_WZhn3~l}arvEG#ZA zE-fu#7?w__mzS6Ed_K>zj3^4KD(iaDvP{Qu8jV(`6ZCqAaXg*PSOx?h6gg8Y<_v=@ zSD0#zZ#0#5N9%^xAgYbVo=9T_K4Z$bT_9bZYFX^QBZiH_pkv1U>Lm7#r#*=PjfS!S zu8OryEUaaR?c8iYpb3L!8aig53x01d;;Y}O_Sm!dqL-&d4=sWi0h2dx$gLxRoa z1)NbxUZW(FF4(N@@>WxHe7W9Ly@3|QC6Xf;DbK64taC+EG^)lHWEOSF-y(b8tEEz zvm*Fawc9N9eR~)-C&S)s_5cY01po`c1@Hm-0AmbL0!2g>3;7<3hYAHI3v~ek31S71 z3dqD!jYXb<0s{@IDE8oS@Eph@6co(Ral1^{U8(Kq-L4Zw{$vuNM2jc^TgeD6u6U#t zP-e`#)1p5scaIx`lVF5~Qz{1>iAhYhD3FHAR!XvK8(!V+`t_*iPvRb$jW}6G0iYNV zO0uXXa!)`wmF9TNH5*T04F+Pds2YY|shBL|a7;sBeUS}i=1`$0g*?(oWK*cgqCh~A zoE$&*Qs(c+Kk)v}mI|-@dH0=!T-jV-y?E~02UjmVy?!A*{}cKo|LxEH_ky$WhtKW) zsC|vyr*A*J{QK=Mn6z~1`}1kznfi@y$lXt`-8?w6v%R@6+q`r2yWc*~KlSM0n@rQCNfI?pF-_gJE!TCs-TrVG#_=>wm#Y=Wf+&EhlytpZuTzaC z+iDBlo;nyBqsX2l?fJr&7_2IkEQN5YlxNa?n>%x*s9T*3t#sVVQh&XSWfBYq8X|Za zHn6a$jn4+<)r3SDi&h3Y_YjIJ04jiiVHS=%BI1F8wMhw*(v9@2UwT1mA%xBaCTqcfE$n>^W&nRZnen9|7B64#t{?M2`&qwYEh z&?3gmJk3-&z9vcyO>3KGuhAH`+fl!tgyDQTT`rdhNDJsL#tm?3L~0YJHkVop-On1M zr8iv-v-8;+l^7i72|}hS8pE1`U@L0N$d@&T?ap{GOyguV7r{_4Tf-fL^6E^lDF!WV z)T@mHXBPFcS-e_3LLxvFzy|OD0)R2V0t1vwl~B`0fsfLeN`u8gM}$y@R0X5~vIx}X zkguY!jwUUX`tUS(9ux_xDpofMr@?eQdElF)k((qzmL(`>ku~6&CD9{PpE5$)N(FDJ z2dlKfOqDV|gJJI*NRByo_XF~N!PV{-E1~3j&*sqD{_IvMG8ArnXFnt28A3N^*9uYC{gm`=U**7 zdHMr)Zk=fG`ri-V&5eF^c|T7wHN>V^4Cwk zzly!T_pr77-4*%n&u@Qlu($d7XJ5bk{EykayC1TbY5^wPfAHpCd-qQFAN+Ch%j0(* gA6!+?Z)g8))GyzD@1FzyryK)EH%<<}y?*=t|E7VCKmY&$ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_1_3.png b/resources/g2/track/alpine/medium_turn_left_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d95b93f088efb9bb28de4b947ee6d4f081262eea GIT binary patch literal 960 zcmXAoPl)4m6vyBE&2)#gEMZ!{X6PH!;qf?yIwNt&_@2t3HrW~EZ7)yTTZ zG+TV9EB6QL&^N|mYc_X88Y}agx`bP0($=V+!5%h5zf&F$^k~$KBWIBWB?43$>H^pb z*4Ht=m7n$t>6kz5Q2*Rc)hvyGvc~q@VE$g_~L%vV2g`$8n zGRdn{NvF#etJ%EK6&tS99xBdQ^`a`t5lpGbE3~9>6CAwAS`!295%wxjpGnyETRgmxhdGV?2xKQ=@D-y z6*sL97oG8mH$&5eDgZ}fB_>}H$eO~MRmrw$PTLx~?J#iTC_w3qlO*H;iU6T3i)My< zAfjP*=X0*xc_3pv7AqB{R?|#VXPE}abOhEFSzlr%G98zTNF|X)p)QL&0fka_{M?h9 zf1m!qTi13Jc=pfVb~E$l_SVJg4}bc?Cl?=DyRdQTE_%n^|LKpD$DUfw(Yb#(B-%NO)r;-6cG?|#1@%J2R6==<^dk#;2`!}jH!t#2;fxcNU) Ce|}c`uh6D#>VF6 zCWc|TTyAS?t5_kU945|W>Weg1;q!)6v?`>lQyr5%vc<@&40}d8XwFi9IgiT(Xf)IXa22d; zV3C85yM@J&Kr;p{G<51B6qf*G01d+o9JdI>7+N7vi+de3p9PA3V&$!Ij6&k+y?P#(s1aj{P*L%KQE z>L9SjQF}Iy7mE`l08{`>02d$t7ywK$K$&C_HB1!vC>_fb7%a2|2+NSlfD}MR5jiaK zWfa!Xu!&M1&VuJa5}_hvHN9xn>6TmW`g*@_CrL1yB`9MNRbU%=!7a)@sfCo0^6p#> z7WMwp8=i&}G@erh;7F{@;Hp5@6t+>7T&w1{tbWi+;$W7>Xffd=359@CKq$+inc*Ia zup8~^lxuqrWe$g;sw%ab-e?#sV{?oruz|=%5;KzNS*3(D5?K^#vnUi$B4x+VJ(GWM z_5*KU-&f%IzkYioGq3OMUOvoycI~6fkHLl9&M|sNx_ePqu1$YN2XOl(`SZWGzZ!q> zbni`K=f;=6eslHY>w7=GdsBJgmh*A@`#$*I zduMeeJ-h3{T>vn zB&?xgtxBxhhzFe{8c-;Z(T;&oI|U#D$QY)^VtO)Z5QN3D8=|vG*u9ZzrjRd3Mf zjao4d;u0isfER%3r&&XzjW$Fwt}w|$nyh5lhQhm=B1o!0)G)dcI+Y5Re$O5KGF6Soki{v1aLNbnY0+}>& zIOGZ8@iULl{B!pQUO&7d!TcXT9SzB6OA80q_Puwix_{5+eDvVA=tS!5wHLqoae4pC z|MA}~ZGLqAYvZlbpWi%m|EH(szudfX_31N@jE{Gp`)kkK=httaGe6k(MP}1l{p5`K z?vs};-{(I6(gWU=Cyq}z{R8Xu-+qaoe(m>T=T3gVyZPaf&7(j6efrh&7x&(N^eO(% zvvZAOZ?0Zgv}TuY?!IAOr+!_0|BbnS*B@KId2Ow+acS-N7%pmtrZgJd0htU-&Sas)$1S#V<{$>n*-}mu*`F=n6 zecuPCGU@r*hh_m_e(mJSdN_}VbvPOcJAeD~g8&gY_58+aNGB#HCMPE&k;v54)b#Z9 zp+ko-42wpiGcz-ZR4PT&6wh;#Bq&Nw)6{agY?_T$%W>UZ-ya15O##P(D9q(@@j?MF zmZ(aVHS1!tCAT|T*Q@pi7EfYXc1{%%dKNbnqM^}SWxiu(yDin~Jq#$tLhX%K|PvRk6KozM4l{Z^xaI-MjP zPjLxK#95h0t7KNE6@%64eAyOiZOQ7&j-SVwB$ZCF5-BK5PUY2#SZT-&M|C{i^=sa+ z*&lae9KmcjSwVNAWV#I#`tzp>XP|B zUm4`AVX-|jc7xV%zc)s6WGu!c5@|dok(9!+njlu>a9OEUt!+13zUu{j4rBq-q?j(_ zMuDuCIJ+XX>-lY4?{(_Ko*M+W5C@P2&;Seo8(L*GR~pAiJ) z0P+E$FpEkkcMr*OsXiDmb@LvyZkNyHq(VU{l~kH4GnC2EHcxj1YF8wO*%Xp-q!Xx4 zBZott5FS7CE%Bk zIQ`e7N1ys}I(1^{!^K~pc;Wkng>TzCnJb6yEWO!$`M>3dN9*UG*}L%8$)g*=#b1^d zpS`;NVqx~B``2%rDSQ)qt$F0yPlL=sKult*OJHZ70(cjALk243M PTUcAotXw*A=Dq&`bbqvd literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_2_2.png b/resources/g2/track/alpine/medium_turn_left_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7c8dadf2c35423bcd5d3487bc394e5b2cfd719 GIT binary patch literal 921 zcmX9-F^Jn{82x;{JNeE84~9CNT2ydB5K%N}P(Xu{>Vk5pJ%uRLgIZJ&)KCu^RL~%Z zAR0_?L4ya;I>of2co0;DgQ}oG1q~iNXfVVrf;!X?LsKwCgK2O0s}OkK_wknZhWEaw z4=%+Ur)Q@CaO2|s`NQhIRSnjtSDSnB5era<2OmDVSJ7Inc5rY|uh$O`508$Hj*pKq z3~MwRCnqPJZnw)Yv>@<`BI&wnnuhDTzCVqkILnqru`5f42A%_1YN~2`Fd!_O9*#JF zBF`c%NzFw*T5ke@!g^fOkUCC}@N{x&GFPsU`n^SD6!YP>2==>7#6hFL;=xm}nSrIF z)@s%+7dYC|sMOH4hfvl9kO4FdGg>VN$32n^IPOZ8=l%Z5ab8WQC{1yu-Q_#9OmG@0 z8dT3=bdNJ9f*VTXLSw+=T8f_4j#*Hd(99 zl2ngj`@CQ&%1GBImKBXg>2#XM@p`%3?RE%o14tiZW-TGXl?Byb3&V{XY^`MHEz4+o zz1pKD)oQVwj!1MBiq<*Kl;ojSiP_O;JfB5HmX~WDGzl}6mZK5gfSTBRI8>5Je;zuk zbh2G#W%&y606hQ`zyk;Y<^UTEPz6~)wu!<36)TwpgMl#*u?U3>NC9MY(1<~SjN$=W z3{erl>)=_C1n9}wK<_vfHTJ|=peKo&=izpnqsj~K17kONuOkP97L!K7c{?>Mtz_>n zuH!XY?Z`H;1SZlgl_v%YWA`P`83bb|3CDRBZi@_+YgUp_45$Evsw{?;-5cPpJ=tv7 ziT?)XVj-xiG8pK#Z7{UU(mv0G0+UMgQl_@OF473(kZ8i7m`Ax(m7jgT`OoVg`10YU z0(V~i_IX9bi}SmW8ef0=(~&MYkyVhnxTY^?T!w=YP+>IC%UsU;E_g{qNqbzY|rGaB=VQ{KpSId-6Yt C&4r}^ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_2_3.png b/resources/g2/track/alpine/medium_turn_left_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d7440015a586ee25c019c2383ccfe5761e771623 GIT binary patch literal 980 zcmX9-QHa}g82|2icj@goimOmvWZ~>X#svwOhX?_4nj7(mcNxn`g$fzQtzcn!$UzVK z5M5z)ixNf|nTyzmAVmW!a!8Oq6bajHRE%&NRU&j)G!IjX6g=_NzZrwy_kH|czTXdi z-*@HAmbiTE#4!L^-gs^OY&u^`E1S)v-F^Ps_W?3+=JoB>_nVp@@WHNJebMy1_ z3kwSvhGnza#l^)!u~=jnS`c_ekun%^9xH@TFEy@dj!TR|poT#UiIrlE#*GL2t^rJt|ov!<*P4+LNig#^N=RvPxV>6MBXcHMF5)jQz%> z?;J)x8i%<&OHw6*D3hQw(BdHwA(jCt zfb;^g805()sG>m=#U4Bko&`yOl8jZgf?1AbW%w zkb2D7ld?ap^$wlEQ7}To37H3$z(hJ%=83Ap)GLy0R=t+l^IK8qCvk|TBUX}704N58 z(kz;(+!Nr9x;q}TuJZ)OU?7ysO0}xh>pDX>SlZzkUtszYeIQdwsfbhpnIv)<6!0jL z(&J}eSo-7f5A2-XQef@ZA10mYjZ&npJ@gQyhkzC4kV9D_+eZ0$ihxfj3 zZk|e)FTHdL04}$#pWG_%i{)U|O1b$*?{EMWxOwCDwUX}b?d|XHS1Of*gM-7v!=s}k z48y9`>hbY$quFe-EF+47s>-_FF-^mD-QjRNokmHr%(87!unY)1C~~dSsrP!MWix$` zAC8pCRGY=-BK6jrK%}uYUo+%}(+U>cxUUIfDufUHAwkO#lTz!!QHK9fI&FD&YBZMVWWIE5~^<9-}xW*m_fFFbc_Q zlw{Ctht+-F9Eoly4`ynx(4wqMas(qad6kxRu49NsU+Isvab!fPlVpQ5pR9K=El{V5S*|OHma2NXKC-N-=f&f38b#~na=YCkAPk^}7(2nm8KExd?po|`IzevDw*Io1 z<`=6Ss?j*kH5wAxRB1-%c~e&US}A5vy}^7k&62cO3!urEsp5`C`aODN3t?ZKjk@#D zS;eD#l@!GjBmlGlOaLDs1egPCFhC^~5!ogR1C*^43Jewo0z?vI3Lq7b(Lf%H0tH1q zwCJNOfM>yTAdApeu%6y4%qt%wG14m*KgLee7r?Pfe_MKiZaAx5kO~O1&P_gD@8AX6HK&Z^3U)ntf;o76k zh8qo^!(1%HPDkzablWyq#^soyz=k3l%gj=t^L7(yByuP;Vo@ZZR4&WUy;ghr><7+n zovLv4uRlI6Nvn18*6r&3558?(`R!_T|3752uYPg-(~UcKPtRWX@xiCB|D(JjK9=r% z^yv4$zrT0q=)uXG%`abm_lGO@ABTUw@!99r`{u*5U;oWMQ7*o_{_yLc@%KtmXk9x! K`Q_~ozxp4HxQD9% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_2_5.png b/resources/g2/track/alpine/medium_turn_left_2_5.png new file mode 100644 index 0000000000000000000000000000000000000000..199341c71f370b16159b5527057389397e9d004d GIT binary patch literal 1012 zcmX9-L5SmI6n-2w9DoT{A-*Bh4~d$f1YG2CP~&V#KOF z1kFm3vIe(@A`z<_p@)c7R|&H{gr!2k9s&+pXL6`mu;}bsb~@O@Air4_zV{yA<$WJ~ z?|pbaFC0I1-!T9;Upp~BXaWu}Msfvzlgt}P(2|&d#J(V(X+$KqvWv@w6uUH(I=6WVf&SQITNqoRDQ@O4OKw&g)gF+Ekmq?uTYKs)ys& za2BLENXw8Z0#O0d#+YVCXp@D2(?g{;G~9{ZMb{)Mtuc66plS-+()f-chn6;I7$eV` z1dUnfp;0%LW=Kk*nIgxRWx1wlPPyE!)q-X-^!?$^&SWw{fa^duFuIlEJGk7ZibK9S zD!AivXJYS6+vB6b3?->lipgXIA}doljb#l{s;cp_O1oC?wc1fPoDMlqMa+;>rb^f) z%BgT(Rqi;&o@WjMXFTXmr~8NlPyh@78^8nT0gNy}F(e*U4CJ{e8b~DQG}Jlp1&Aa- zG9W#JYBX{s81kZrTgCb!iEn}9cx-GO^t<$l>&>N3K6l>u{pesqv&PXny z`lKGQ_N3rV%bi)Hf8-C*U_z#WAuu7ADsV(erYl9!HcM{Z?0EIC>y4u>nhqIJL_VMh z5Q?*?#&UOoTNP(CVw}cZ82vt9D9ELfR;lQ8&SG*6j`nyu5OX^cHCD1nC6GxXheke! zLNPvm=5+G*oga8}D=)*@KYx26CRaDt&s})v)U(shxf02_4efT=-pN9;zmDNJ$zuWb@|s5 zKb-#W51(LO`{b!h;Y6gF5pS|^l^I~}O#^Cqu z?Tde1U-;&#V=XR751zc$tiAKZD`zS@91Gqx~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_3_1.png b/resources/g2/track/alpine/medium_turn_left_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..06ee0adfb57130d1d5a77beee2170ee8615ce4dc GIT binary patch literal 1017 zcmX9-QHa}g82_%lyY#M%f_0W#H|niu261LHXp}r;GdHp`<1#Kc`%qcLfW;LFn8S({ za;}a#A_VDNz%u%fhYC^qa6;sYS0rGS4l_8UgFMu&unI%EQK7IC|7Hw+-}mu*`F=n6 zec#pdYy5%5LyG`#VD;?EdN`NET8c%({&~{90T6}r=QhrSbY^BI5{X2k(b?JAxw*Od z`FRY(VzJo5!a^#W%~BM}ajYZ>ijvnfwNj~AR-@H&J#Q}v#*+y}0?U9X#Pj)Nv6v~9 z$*RFvb+Or!+a0av8-tsYy7OAWf!QD9HU9-ju8fD#L) zgf&&HVLQkhn9Jd)}TNJy6LSNVKHyWtZNmI!z znv@H@zg-(}v!pJdAg==e)Us3v&HgqcE zjy3fiH1rZl8YglTU0}JABpHfQFO^z`(P=b%*B$KbjmKjIX%%n_qnZh>otAn;VZc>~ zd3#i9kIlVFYqZ~=qBxOA(5V!k$w~yNFpMUMRXJQ%ZW*<1vlV#$WWa(fV49TB<&0S* z>SflcO6_`~>*)PXebo0RllzDT$N^{oCV&Ib1sGz0LWmqHYsj%t&=+w~DX6jF@(_rC zBtU8k85FWbBwWhjiU~0Kl-+rnt9ko7uaPwjB;A!T;qxWAv*nF;WjQs5G&0C4BrCU2pWcHKL PGOV6iTlxO=w=e$>NGq?R literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_3_2.png b/resources/g2/track/alpine/medium_turn_left_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac1005347798880c84e5c80daff39649569e9c0 GIT binary patch literal 952 zcmXAoPl)4m6vy98XD0K*ZiG17Lxk*7mLNF_#HHDC@|9HBxE6)S|LU|j>wp-K-0=kPPb!uP$$_wqi6 z?|XNz9Z1`o7d8Q4d;j&l>t{2sbL)k?U)lNX0YCw+y>a7eZkLvpmY0_cg~H0p%IfOs z+S(e1Ve9Mb8yg!$sZ?UwvM36wD(iaHvdm_)>AJnaAc*5pn$G5PwhRIfio8{=77c@{ zH_ELx?{<~`Kno*ln6xKTPh_wPzh%mVU7;ME?pf?nQ;gioaA2m#tt|BxvsfZQW1ud8 zqhfs%i`w|OUz`s~l$Ft3L#GZxaS1>H&@jxzahoI^n)Z19NKuY!wXtoV^m-_YNVZrK zh_XWQ8ZDVj#b$Mfx4L4}mph^A4YeSxQ5;#8O1#R*I#)GCv!%3pS}!nz#E#QWlJzHx z2p6EJ0#O610kng0Jwh7L)krXtN_%2?Gbctz3RBcMvMw?03g6eo&{C78K6b6C-<(D6 zBJt5Q#)}-yR9LPih;>zM>w33dAGF(1ua^YDWHg%1W(Y_VXcuGqxEPY^kf}|?*0kzn z^>F5l=7a2Xyg*wFj&lSdQ6-fr>pXACN=wU^H3sd@aet7;$$TP!CS#V0+ZyEDtF~Af9luHp&!$Q7?(y>B=$wEhfK!Q{OqyjPt z)Mk;Vpuj-G7D_!h3!Vd6go=V0I$_tDjwAIwJq(*k;%8Zcau!(wwy`BRgyKpqn=9E#PdY8ZN>VY1~WS9S%~7uiTIj}#`Wl#oUtn?_w01p-Rs{P?-c zTmPQ@z=zilRCwjD-*4yU_Ws_hH`c#-(~*}Sz3|NLL-eWt$q#pKee~VUyZFYkadFCR zzLXt4_tm{i@47E89^ZQQ;*&c&AHQ|@-;=L*c7Oc-+^_#^e?fkE`S0`h@4f%+;b-A5 vSN?eWwGZASZ@&EV=wSt&oSqVYT0a$@&y4dI9^IF6BJ5v1*n6=1&gcIFmo1f1 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_3_3.png b/resources/g2/track/alpine/medium_turn_left_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd162546a7f2122b0da4ce222297891eb4cd2fa GIT binary patch literal 964 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 Sd?hymTW7a7Z@vEZ$NvK{E~IDx literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_4_3.png b/resources/g2/track/alpine/medium_turn_left_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b38b42a6421f0ebd6a917c645d6f2e38ad36a078 GIT binary patch literal 918 zcmX9-L5SmI82x5CGwDoOBX%KRgd8eF3=)=rK_WyaUE&a#ESrTOIYh{^6^iB%wTB!6 z=1?R;kP1bL6bVu^t3~Dzp@$p-_RvGb9y%DLhk^wcERsVH1O8@Nc;EN&F7F-Q`#!&S zDc?GK@eBZNUA)u2U)`6gsn=`O{_`uF0jR;fcOTrX=)u9k;o)JeRy#U6IzB!=IXS^F ztX{95o}Ln|R*U0UNfI?pu`I)JY~S~X!|`;QWZAMPc4f)2APS%=4Z~=5yHw9*`++bV zsgtQWOPxg?tT&OwV7kz-6~fc0(4xlgQ z8QtToP;f?)A1i~I7A?%A=ukY#$}K@-6pJ@($?mKDu{locB=@pnkZ&jJeTs|F)PU#! zvA;`)`#eUQ3~%x@ zqjP*mlzN&LSk|c5n+8ET9_LB2UM_dL9Rkt@dWdloT$+*Eg6XWK{>F&5z1c2YmecLc zYL6NWj`IW|Q!R~QEkSS;wQp8p?lc(8C(|O!%e4rmf;k%QnN-+iMy?q5wb`gMkG)ko z+OD#)e1b#(9l!wy0b+nTzy7qp+ z6%jlQo(Dw&UB$W<;q{n7C{H45HuLj5-fnYLd66C9+=dtuYDAd{Z5KkgGvcy0+Yc8v z$r`P8bQ5?AlUdvlsjkMk9VPU-(ZHL+m2%53!(GAZQIXvCpJM7dIxpMS0K@6#Xn`2M8^ zZ~b-ss3Pr)_S+BYUw@bvFTnHlqu>5R-jBaGzWnvOvMqdie*1@LT<^d92g_W&dFQ$L zFWYjcpNEg{MAsixdT?>~vi;Nf`=9*}q6UQ# literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_4_4.png b/resources/g2/track/alpine/medium_turn_left_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f9769e67fa547d34e9388a1400306fadb6c51802 GIT binary patch literal 972 zcmX9-Z;0D;7=G_>?yeiLhk+FhSmud=%ZCU7i}XXlB0bHAB85dZp-6=)H~5(`c;5Hr`SLywJn#F- z#r@*hjYl>B;Oy>;+Xv}I5ucv%)zwXEw}yjU#TO~U>b5s|CR%y`F;(jBEo%u8@;-FAacr7YfW8InBAv%(%oXX<0B4w4ht}6Jt9M#oPOP{#)Y0#QS zE}Ded97|FqhOO{IO_nWHZP#i&%L+Q3$n(a-;dDAhfNMauFs7Rod|Vz-m9fy6l%1sJ zPwnBXmz<8~C_`nlY(8Hk3Nl5j9H)y?LrIqzJ*(O8_Tn&_jd@T+Oqa8!LfBQRZSZbG z_S==dYmS0;G74w2yNCxU0q6iWfD6zEm|%cXNCGl+*lJnNHK?ZAPJ+#37oESy4nDpcoKJvuLDp z4}jN=_GH4gTMwWQ212G0kDq-y z^Y{H9xO}iL!}GUKUQfw;yW1~ZI(O}g9dG=&wI&pZ+`mo?ejO1z2mQsKRomK ztC#N_S8qHw`s$$%wq7~;{oQ*X-|TPwbLE%(?Z^H)yea+s&L3Ysadh(V?!m3@`5zAH Q)CKJB>~DX2;kA$c2WZcv{{R30 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_4_5.png b/resources/g2/track/alpine/medium_turn_left_4_5.png new file mode 100644 index 0000000000000000000000000000000000000000..df299bb51b821689b9ba996e05cac794428fbde1 GIT binary patch literal 1002 zcmX9-e~8<36n}TUyW9_Nag?oKluqi55|0R(mp=k#XKvOrdKs64GKxeOv_gd-5h_*) zESyD)#92o-I;a}3xWJ0sA7KOx8d$-OML4x$go1??c3{yW^}Ij6W(+>>JwE@u&j&v5 zeRy^=yS(_&A^03d?aznwT-9Yl|kMf zmb{U*H*OCPdlR%o;W(R0Wz!j%qE(L5MX931%gXI)t{ zQmD!xTS9ITbt@>c;a>18hyvs!tf;1p5>>OZEnD?GGYp;KFhsEyQ2?gA#9JxJPAe{{ zMVvLtJL8f!sdo?EKI)CgB(P~LOXGPyU6h$}L9~pbT{AqV76#5R3edREiXw6WMSxJ8 zMJ1NI55g=r1_QQHzYo3J74mtxSX9epjiF7JuJeo|Fuq9dNz^cxK}s4KBx*3oTssmxJwJ1RjOC~P{c-11>$lI$lX?5x z>d`Bm2M@5XA3b*D#PdIFd~tLAr?)S?{{7L{j%imKlf?1&AKy9o`Q`1?^y>NB@1B_4 z&ir%!msei=>JEARqt%RLr45zzCz{5F}#2IrNZ24_!7a1q+sC!6G>n8SppD!u!6DcX{vd-goQt zq;>Vm(G>u=di;9xMtPqqr(Ug;`{&QUwE-${`sUg7lJ4y6?C$PXDwVyxz5V_DgM$MM z!>ZNl;o%|CXf!yEl_XJBWz*Dc+j3oZG@68Al&14M-xLMMf+&C@*L1z!=}_Gs+aCy{ zu`&&fII(BhV7c-o2GfL^B@>QDc_uxvxpP-aM%pa2@{9gD_qUt0MS{UVR|HSRrWTeA z@Wr%V%t*9mQDLA<523UHpa2*cX5qL)k{(U_f^e=V7wz`KaUM=4C`m}J-Vg~^p#+0& zS&ZgzrYG2A$qnRTtokz}%G(rAvaN=oGP23*mSpvn{=}F>R+KquKFrqBg|wcCR;CS>w!iUGbgnRUlP9|^W}pdEQ;KahbIrxbUIp$Z8Evxwtx~+s z(~QRPZBgo~>cBL|-EKG-B$G)NMa%hov)LdZEucpjH^rrxRA)?kDfL&nzwX8xZ(fA! z%f%Me7#!ybqD3`ShBXDjmX*FyiuJ<5@M0R~X;v&nFl5YDamS#%4m0kFL0^r>?Tf%! zB;)lWEsBRo1keD=0(bxczy-hx15`qhP|rqzkMe~=gT=v6gs26%0!Rg95oo|6UqMj^ z&H5%7|zy7rc!g6y10` znq5XqwAj#f;3=%d;<`w6RIb;SJ*VRjoj4d~X|T>yR4jQ}MiHPK5Gu3imv)aqy1nsg z#g9jiVb5lguB)An+3Q&x>+HX)!dr!hw%=`A;-50mdeusT<`d0PVj}^U? PhU4oe%^zQT_p|>2!_$g% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_1_2.png b/resources/g2/track/alpine/medium_turn_left_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f8cd9f75fba786037f3728ee0cd3e1a27fcb6553 GIT binary patch literal 921 zcmX9-L5SmI82x5CGwDnjDi+L+IYhQd4q+xp4pAdS%`9<hkyYiMC_qR4n0%}Y?XpJEE3lo3eMp-%fkDB*(`|TWt!$i!7?E5pvbj$yV32Ey*@Lv z`SC=V&a^Nx7m2;zcp{Cp_?jW(R*Q6W$~D=Wff$Wji_CvlfS&wwLw7+*ua0 z>~^(9HM(Bsa9kprD$VFTZ_3J0E5-UVdo-WU(l{yB0%$U3s&z{voi07;3;s|IC!M)( zt)fY`ii_e25&&8NCV&Ir1Iz(77@!i0i25e-J(R8#3JexT0t6DI3Lq7bfg_tmo`Qld zS`1O@!L#5wkVR-ISXalb9zAlTsi%kGAW8fzOHk=Wbb#&G1P50}<(<6k7rk&h zUfc$2w92Ula3m%%^|nBERkq)e9joh&tk54Nv7e<2!* zzEt7uzkd6uB+|wCJNNHA{PxT5kKwgy<#+4xTVMZi_rJ$ycOU$FdFRh6TU`D0`3I+O z5D%|^{vrJJ@AH#SMrZizr!Mi*D@P~0kK7mD%*0NiBL3Xg`ho*m_w1MIaDZ;Ly;~D9@k=Hh1PqalbJgS=pqs%7RUv)Jf18Xo=vd*wDh_ zE13@@bl!sQOPw1Dno+z^+>q&j8Hh16MU!KyXRz1e!S zI-hS)g~4&2AnH_2WmrQHY+32(g;;yk?M;TGEJ@c35p)@|Rou}jugUmrG3=;g-<*Wb zJoZ=fWW9cXM1Tf>4d4NU026>E2B?4{p|*{}0A+K928)B92vHp}1&|8JB2bq@fr6qY zns!hYz(w#p$PzRZtZ5KVi|KjwVPK5MZkmRxRf-BP(gdzu5j{c)C_SRBOz?6oT(`!X z{`5Rrpm|PLfv2!Ki)$j)RJpb(drmXxIpeUGCgCbe(0akkGKv6YfKZV|r?7hj(rx?8 zCGYni!JbYfO;ejqqusVR*5%p0$b}LY%j`^HR*f3cDdf<|=TIb~R4&TTKUewt;s@Tj zb)v#cf8M`c5asyr+G+XTjl1#{c%gjo9eUS1{r<@Rf_mfH`^3+`zA}6I#nSK3e)RmE z8&}_cX7|U6`NOx5Klb`hZ(aZIi5YS5$uAG{f1bj>`SQ0r4`2K1^N;U7`QB&pzuBwz RzAB{Q_~_*D>w`Bx_#YW5iyZ&} literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_1_4.png b/resources/g2/track/alpine/medium_turn_left_bank_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..49bb0b48e9334524103eb6913d90516431228c4a GIT binary patch literal 952 zcmXAoL5SmY6vp37XC|GgL)8jFqhz6nAVIPcH9`(?%`DxLWin1iiWW9PV0!36lq?pu zV89%T1k9l@MGN+jLl0r?VUQeh$g)9-^pHajUCE(HSBnf9+#Y(U@;A%E_uk{XyzlUP z@0*k3%HhFl2LNzby>)b&%|ceMAO|P6&u(URYinzJdpnoQ?do%d&dC!D!@1(KJcY)rw_6;6auO^?IqzzHmhvtMLV0!p$1#Xw<-9FD)_b)g~i78F!Y6yH2AD0V)kG0UQMz z>R4zOXT#EJLZBssRw~*!2t{Q889>D_y;w8}!l5Xa=PzY>+-S^9^J*|aVMws0vVb!( z$*WXFr)wswIlR#qEl=tOiaSyLq(O27Qz`QbEood`7xj+Z8K?ta_hU0ky76*2Ux!5j zN($f&AlpDW7&pKxBdQ(>dR(*ThMPJOx|HdX#u2RwZP)mrCI*HQTiUE=EIca>d+XRk zi>O%QD7waS4MA)vimhq=R%>M2;b0K^{(L%3(-Z-r1J%RWVNnbSWkNURVrNlzm#rXm zrmN9%Gh3qqT`Y1qULng0&1gJtNODKbmbFKAcRU;=QM{T9ph}pb6itwcsBIw6MafL2Kxd&VfM0<`2BZMeab&Z| zm66{>lMYH;cm|#WNrak=H8tF9(Osu9bhRL`;@Dd*W0YkP4Pe^^!NFyhRDDWMcqgrU zt5&e?O*Z}<%~Gla9Enw!VqGAc3fpc-j@fj(X5e+>$Xg~6TFp60LO!4b5Xx9|vbg6W ztag8~;QGDiGA0wTURRn;t=-mH#^RWszdWdQ;+FfRRlfFa1_Pja^Z4k;4?p|*f9DvMga7~l literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_1_5.png b/resources/g2/track/alpine/medium_turn_left_bank_1_5.png new file mode 100644 index 0000000000000000000000000000000000000000..a762111b351254b5a2f6f82c32b113aac2f496f3 GIT binary patch literal 954 zcmX9-L5SmI82x5CGnv_8Hn>Hym_rz=1c^&zBjgYvu9>wnMkdQ2yBId5hC^w zB``fiDVRf%2t_JHtV_TOg9hm#0}-ke4Op-)S++{i90n{>WSAY~H_O8NzQ?vd&ix$#4{>t93&oOzb#qCs}WL8sQ=o zRUm3WSwOoO-zCa@x*CZ_QfW<1f9}TUNMVXPPd3U-t0MGtX<({JQ=fR|ENIRn?=%U} zEXIpG%~UwPCQ1!eZRvWa(df5YQMa3f;dDHn&*un8185K9dbl(o)e%#hO3tk6XN|$! z9WVOX`Q#LBGC0l?M42k7466%*DJzbaAG7+c_ORDa<76=vL6b34#chpp>rBTI14kWn zYQw;uM4fCBFBT_A1gHR*04_iPFa(%kfO04jvP=~CD4i%Y7#y@k2+NQvfK)&Rfm$5$ z6%^Ld$U&(O4}<4HmY||wb)B#qOxrE@e0?xzCP|QG3Cg|58gSO8=n{%gX(4T-f;+DU zi^ky88=Z$!G?~*y;3=%k;#HBVtDIGnUAykL?Lp8^;vh?7w3za;j6y&uAe3j}|KP#J-9L`MK64&BS>D|?U%vA5yC3A9uy=ib=c||AIQ$Z1kaX5$ddvL6mG{T)?35%x(3ET;_6TomHX+u4<2qBZGo@ zh+0P-RdQ0WvI-UA=tE$2cSvLzmeJi#=|jXmbQ-XOPRkfrN6|hU^0#B~`@WCg%lG5Q z@B7Z5TuScUb8rs;>|K0e;na8@8rQ){c-$W@Y%>61IQio8@iCp4m~vsGBYz1OC%BuLkj{g%c82LbzRHn^W}22UU!?#b`T7PLxu*P14*1sr=!_y zJZI2_B3G_RwYuUp^p;=j_H2Q|QrxU2#>`aQQpu{$Y~_VUIn}Cb!A_wc*rP!+Nq|B@ zjt5J|Y8uuk;+!fV42S8cWv6bc5IYRI#hu1FMO)Br2-1L@r4cQ(R3IJYDwlYNxFC zocy3s9{CRHHSs7*QYnVb@Ip?Oi>g}5cIBoZ_RN<6qp z2qZuKqv0vqlJ&w?mGO2V>g%*;_GD_OHu&&&J1)9?FetVLviF=lxy zCfRYtCAEOF25D!Q^G4;?uG>YO0T~50jwNY4&BwDcV`N0j%-SW>b4q^G=?6_T?6RVW zTtERJG|r+hmU{pqZ&Z3cwo-loz10%ZX*ru!4MSt-JWH2(#u1o?NVg@bpGqJlj!Y6& z807NE7stoXJ~eyq{tuizwIsuHf8JajlOGlr=9dqDey%hhx_%@Q`VSe@*R}0+>+(Op z%{=zbd8A8xGBaP*VbD}9gZGLJQBI{ z>Mw7fefq%ZC4FJ@!o?55XHH-J^-9#Z_Z=~Mzx7(~o8I^MOnB|huWtPD9=zp!eCEQD z+pD+Nr|&&;Z0>q>Z8G;|<)x)->-%0=+4LemZynO7=0cZmd}e;J(OdiR^?K!}l_$8` p74haLnL8cq7W%8Vf4kkmH;(@O`@;OW&9M_$JifGW>G?N4`X4ZhzLEd{ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_2_1.png b/resources/g2/track/alpine/medium_turn_left_bank_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4324c4b8ac6cfba76c56f5e23b03c99b1bca0c GIT binary patch literal 963 zcmXAoL5SmY6vp4QGn1JqV+V^C3>dWx5rRetm_xw0X4cM-b+T+$dI%UbU=KY6jZoMw zMmAuOig76tu!o8fdWc$N1|k%U5M_3$ZWxMI30SbOby&1$lsSy>H_O8J-s8Kx-{E`j z-HZFx&5egP0AO=(cjr8!Ta@>&1#$DeKk*Y$N!Z5TT@UkpwnqnBbWm&G<8w`Rd8YjsjO&J<^4kWRlD5XY&Xtrp( z&ADBvKTwCEF^b#MnI}+KjVtJ4*{l(cM)nNmz!E~YHX7*3kv&hm(?wLpL8YL{gCk>o z9ShsVNxzhia5Se;s-iOop{N2N0jL)dulJxgV>CcPCV~VPs1V) zB^keKQmZWM7TjzzQEVnhS+iVWn?XcI2gJ3!yFBS^~xDKR?G5w-2#N`oHp9=O&@#f9p z!WpN7`Pt+Y6{up7EtjiAMW$$t;|x)<)ofX7(C!@d2T2sCQyx?iGvuPF5>A8aws_x` zhu!*-Z%)GQd=jPU9mE6F01N;Jzy~-2m|=i2Ndjsa$oEh(kx0-P=MX%%>s`_l{V?%}oFuYZ4I>+t5&x#L?u z{H;Fx?PD)~e~aw=v6Oq@`Cm>BUs>Jy>>1_bKmR>`KV6Eqy_5SsdFg5fhrRRrJ6}Ba H^0of~en_3q literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_2_2.png b/resources/g2/track/alpine/medium_turn_left_bank_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..26f8712af1de27b2edcaf8536b9a91ec2e8b29be GIT binary patch literal 909 zcmX9-L5SmI82x5CGwEzy3KlGE4iO4Q2y2ua!V)mLnKcfP$+}qx7$gfpi}Vnd2t5P| zTA@e|0edJ*!5jis2-w320V71rp@$xF7@N#pQ>izc*UwsMCfZOlfy;ak_y}kYY{YIm4aBy&VczASl zgke~-**rcz?)G{;hM@(4R}{%GG|MtaqtSHgFBVanUgUXMRSXS02eQ=Cw9a5a3~hSs za?_bSU+8gStulAB4Fn2Pxt1w)9hLA5(zlrNk&sN))xyk|<021sWh&yJQ!wPgQ?R*- zC2o5??^G)s6*Q`Jbm<|K_5fr69mC9a+re>Mg9rAK+6U~yXPaSA0FtY!-4SRVVjADL0+r1>N(=9^v8=AolN zw-1C3q=&J7S6q-zx{2>+QM9?ZD9aK7ZUQ;Qn0Z@>ab-pIH^O+U1;sEfy^Cs5 zT&{PhMYY>(w<{7og`y3Pvm|+}*JAdN54wa|O54#1Z$Qm#J{&9YtiKGM zbuuf~X;nQ!Jb(&d0eAo*z!G4K0jePj$hJ@zpnNTpU@|b_Arc{%0V#mYE^-+Z$S4}1 z)fnXgJPn=&NdQ&G21eHzQWH;{2Syx^vMel$4AowE9~isEdtEso^oTTb&MURB8pgZn z>N47(bxC%BB`}e0YdkSf7`rcd&LEgLaX87+u*g$XZCFV{5uh9pshiPKTmL-$fsgN; zDe%T0zkFB|?)2o%yUhn5xUW6`y#>!< zL@Zb&LSTC+V}*zTD@5#JkQ{P|5Tv?A0`^cLNMS4Xu!pb)w})Z*&9d;m@8ezGJG}RO zae5+Oz4F2p0JwVm*3nscZ_;I98HGO;Ze`X<25k*BcJK$s|mYd6wlx!Lc9;pehH=X06?(I$gH! z2*Z&&p6F3*%~EH%@+Agq2nVJ@*bT}xXwTvIs+XMTn!tW zSnS}7ajlqkL& zr)86A*qq@C)=26F${^DGnI2{>iYHmQE@+Hm@J&-P`)c3Qz0eF(JIMy=dc54kxCk{3 zh!#*?pk0jj2zf#`W6?|-&eHO8H$fLFQ!{w7BQs7z7#mV#X=%?`46Rkr%j4lD4bUpV zYdp;~IKCxH9Zho#W7O$P94Gd?Gz^#Xd7kG8NE7HG#*J|)BDERQT1x#@(_eR@+?^Mb z_2puN4j3Hg2|}jo8p9fbU@2-}FU7hOXD}U4vLr2*BIpWcX}GOZZkri(#h|Z6qt-OA z7x8GlNQ&Yi5&;?j7Jv&-)?f;-!T^;}CDgT0;G=Az(qM8h5FwNyQvqp!OaeI^@>LYJ z(X5X$AD#x!gCapg#o7j8cbI`Ik9{MGdTAQ0*C{H!$QE$j1JNZ^pVC9x%mg=Y21O^@ z3}=_&5-oDN20VqyEZ!8Uw#Ic^ifgz1fgJ^dGzr#Of{G=tC@2J!0YYUK{nG9k$X<7} zTJfXdGgz~k)NE?)w$bgH9NXjBp~wXi7c1;sW!8;4(kW!qXvCpVM5$7ipFcc!^z;Wl zIXltd^?&}nQ4W6u*WSJM@$~l>@87%g>+4j16G(r4iN%I?4gGoic|<#uxJk}R0-I_9RAI+@V@WkUEVvq_dU9I zC7++Yas~kBm+xNOukOp$oYZU8{`aSEzXGViz4sp6sp!GM!QtUytyViaIyyc+J~=tT zFsxp$pPrr)tyYWUSV}OcEX*Xp=*_CnmpN)8BZ6crj$5ZJ}_5-vxx?~G}z}6+GKc> zrx~5&yQ0+7G|x20z2408(#a%`rq9wFT2%OT$ek-1d^4zbt3l zo7EmQ7#!ybLZ(_8!M!uzw1P0FWCo+ zn|O^@JGu!xg~=@55h+XK`d!6$t#ITf(J0TNZIPjJ%_|Cu0TqBymBp~Kdk%8YA8$7N zICu_cv5-0)&9cmX-{#l>&junFNnEP1OO@H`Eo4y0rO}u}v50b|DnI{vwqL#b*R5M$JpSaj_qh#?`RzB`UR!@$>A>ZktBW7r`QY=X`#FI# literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_2_5.png b/resources/g2/track/alpine/medium_turn_left_bank_2_5.png new file mode 100644 index 0000000000000000000000000000000000000000..356cb2ddcc89425904a99caaef156c41f48b10cf GIT binary patch literal 971 zcmX9-Ux?du9RJ?m++8^%^dYc-0s9aoXuv1|gT!0zs7Lg2T;_F9M+U)FS0qTpDnT+V ztVjo87VSfkiW&4FuqrnUQlt+#ELdEW;;II&LSX^-5N44++{Vw0!RPz^@_G4wKJfW| zKil8SZ*H8~0D#Ti*R~JR$)@$>+EUuT`~A*cfF;;}{oGDU7Zw&47Z;b7mX?>7S5{V5 zS649%TU%ROUtcG3xg5u_k|e6Ctm{S7G^*8Vv)S%;{U8`cQ8JrxEQkUqa;8|!mdjMd zVrzAw*-|=Pt=Bh)VSO@nB?c=98AB%Q0_Es*+vJX_QomUkc8zFIiz9cQ1bGrP1}Y*r zD%LTuejOiova=zHViwIbbm|}!kI%qw@w+usPik%$8L3m2SP>Z?{9=pNvLHk{}=rpqm)i!KEIl4w=$Ks!fY- zT8QsGc8N> zYHF`l8hG}&--^e zaFU`otMum0;i*4CjE`hgD)_EdQF?jM&@^6~EW*12b{fAQh`<(gbKZe?;)+?H{gQJ3jg7=AGli zKQnI~TGmfLw!XX~(f|DQ%iH%KUb}H}^z8M2U!Fg_aPaM=+TW9}U-<+!AKbWg0E<^r P6R^9pw|(>M#ZUhSh0LXO literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_3_1.png b/resources/g2/track/alpine/medium_turn_left_bank_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0efb16f9386ee202688d8745ed20662b855514 GIT binary patch literal 1046 zcmX9-e`p(Z6n|~nUVp4hS&)pKa!3YI56R@v!v(pyYfZb8UfB)ejP(Xr4I1c)HyS0# zbxUWQL5?kqs8NF4Fn^pbN@2$cn3ikpFpL9(WaAj21{T8bYu~WP?YlFZ6o3cjUOqPE(!RdF{{DWC$1^Z6FgQ3k zG&F=^*zoZ1$jFF45C~9Ih-Dc;;3O%gC~`WT&gYBevT0d$$LVytR0xLI0LR}Haa;=q^>BEV=eOeVhN|8v7E!f| zQ@#M>5Aj4;3`S%!s#1~`Rtjv|;Bpl~uZgA;Culqr34{fbljxYt${9XW6pN;8+N$N` z>~^Wyt9lvm3E+N*^XwLir&#Iw91n{iN=!=G8+w-B(|amc3NuW zm6nn2RP#OCKrPGbql09WqT>vk6ojlK6_UwvHd`$gZPRSl>zz&q0WL!@k5MHrTfv1I z8E>+gR!navD;=%gEw^_XJv2soy|mvSAp!y!lEPty<1?bWELG0twn}Bkvb#+NL=IB~ zuPPE+f-IyMBO_D_@hwAbR158f)$QIv3_uh>0nh*pfGvO)2FL}^qLhLR9XSm?2r>mZ z2FwUJJRkv(>_=G&={zzMsFp#F4iAE-fny=cV+qNxCdr%@Dd|$BlD2K5-L{ddg~x$P zjWL>^*9p-K%1&78#EfpT(#zL&%qD7dfy`rFF8r}r)|iu1?Sk1j0UUb%TZ zzC3tPJo4EGr1KT)qd_H$+rv36s9Wqj@8m8l=^p8K$Tsa{`N`Q@55fA!YH z#(|H2-TdZI;-A^~-oNnY#B06X-+l4*>!+4hIimN{A3q#?`>PGt56n!>PF^~E;`IM| C562?_ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_3_2.png b/resources/g2/track/alpine/medium_turn_left_bank_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f046362f85bc2b122ce12ce9946b9614f583ca06 GIT binary patch literal 958 zcmX9-L5SmI82x5CGnv^kMz*jOa|l{7U|ezt7$IPEGD97*PL|C`4qeGWz=BVS=I-P!hI35RaJWJCo&shcp9%QN9XjED)vTZS4 zhwl&M(O3&3bDB7dr61ifaHefQDfPj@ty`Qk2K@r?Nb0Hs`kecsN8+M6i{bP-SG2 z*QmNdt2V2j}pljI1dUgH&7(z%8q8eO?N)P{i(BzBzklGSK&9^nF1 z6sR_Vw19FkZdk34sYWCiiRvs&FLPsbD$^C6BieP^QTdTBhNhBq^m*T0`kgH5pC>+A z#(0IJXqDxfg4k9RN7o1K_SkWv;V=n;#cY;k83Mups*kZFTnq_iN;el`ciHe(?J#p^ z`FM3PKSyO6$GK{?PSzBf(RtpK)P-U#8SM4_4bL%5d55rE9_^VZd3NNAwtW_4=s_c@2xLoPt)}GKEw5*XelLmrRT`sw!ATMd0HuIXkwv$#dkUgs z4VFu8(0>YZIu#oYrPb0c%V3!f$Mgl(7uiT+W-`4}Ye*xJO`!pc0s$pbQGV`f`QIl$ z@X3uM1>XGo;roTSb-4f5@pE6j>mFX&cwt+-hd%rLwzGFN{QjT+%3nVFaQn9Q-Dnu+ehoAv-2w1d-2wka=LxtiN*+bACdKmO?mWA)V$9H+Z!}s3J zljGXO3zsecz{UEDhu891%Io1`A@A?~!@UkrfRmR_k8-=UwY9yyT__ZGc6N4mclY-8 zFbpdei~IZgm1?!hvWzGSiX!QH!?MhFyWQ^($KxQ5XK9+P*DM1953*EhG|J5;*|M2V zm+uec(O3&3YnpTyOHZURl`ol6#ZgIDr-l}L))u3_Ivtzoq_axBO%~S(&}e80;40Y2 z#G)=fAC=cr0<9Rd*3h|&P+SF&0W=IVaoiyYm!dqLKa=H&Vay%p?r?~rh+xZAp~A={ zuTeFVRvlJ%d21lHeW@2J-c$=xgX9RNR^=61(z%8ynjN__)P{i>Bu~CRr!%FhL)1F^?Bb~`t2<0ZxSCZ zW4z2!w90aZAhr~xtLuYSYuxQd!(kExi`gv8G6aMPR3BqUxEK=3lr|P(XW8&ptuS+E z>+$M*zCk4#$GJ+SMphM?(RtpI*jHE#!MBoy!!MEc65jYLLo+6hLMLby?)e zC}^T-2c;g|3!Vc>1XaeGdc|qcJ-0UU^e}8EiN9JUC}$A{uy#psE3!vw0cEDVn>GA( zE8O&_=fMKaGpY<6iPadqA&^alwGGL2nqJQd{azCLt29RI1t&=;0F(kkc@~`{P?*iN`K$` zfe)@7EAZT%->>K9?fT*Kr^U}+cIyXlwYdE+vc2LPSFTE*j2^jldZv6W9shadsnn}HqTbKTL^#|kUgY(b7zx>y`(b3JvzZ)EU n`XlxV`{0e?H=(H~x4*(4y8Pk$;%)sT=Ry7G`0(2o-u&o)N>7pK literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_3_4.png b/resources/g2/track/alpine/medium_turn_left_bank_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..89a9566de1f97fc0780eddd147c97708f337c935 GIT binary patch literal 926 zcmX9-L5SmI82x5CGwEzu3l=FDHAsaVg2W|<9CC=78M;H3$+8*gp=yM{b|q>SBJ@y} zh*=0yF^7sldI(F9pb>kRL&P2e8)SrtIrLB=hl&Mz*h7#YJ@*Iv8^0M}1$9^JXR)jU_PRXcff_b-4N+`e^oT+yAKo!#BtTCKLXx3|B)e{gVs zVOYIhKRi5acRC%0p#_1LWl>f8hM`-Q<+|Q%7A46d&x^8TXy7@J#74j0(llZ?qU|x~ zPNiU`%wr?X#;dh2P*{&^=wjRK5spfF26Ju+vD-^$dVXPVa(`PST^tk&hCDbj7U)Kmt%OOm8+#9Ct|4=eTo8x)=dX$+-KFK!0Y8y9sXvxqX z05Jm6!C0@|oss>R*R$SuW%z}YpmT|8sVqM1QsW*MsKVTkGfQ2%#yYf$*xhC!S|`mG zOHw_C9q__XmdC0(9S qM|n6s;DEq9_pHI*=~L1WjR%%PBQj3HG}0Z-(>2S(LNQ z<#LM}RI|yp+g+j~Q?$x)hA7!eB{rIkCl|piPqK2wgCb&v+%y%!(WvQ&4{doq9bAOw zGM;XhNm)KYJU|b?0B`_8fD3>%2B?B0ppk(>ALUDl1f78i4^bC#36Km(Z=*4Td`?98~qmj-}AcfR7Dhga*r{)`?xAntwh`1rf@;o-yeD_?)|``?|Dm%Q)a zFkbuZ(S7^Nm)*r@C3!}D{O(6u8Z_?T`|pJhf4OP@A^-UPQ+V%&_=9IX4k}$ZIX*r5 J>Fp0b{~zyZiUt4x literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_3_5.png b/resources/g2/track/alpine/medium_turn_left_bank_3_5.png new file mode 100644 index 0000000000000000000000000000000000000000..eb18256b84f4ef7c8c90a3f0b339903dbb46c3a5 GIT binary patch literal 927 zcmX9-L5SmI82x5CGwDoOqxKLmLePp?h#Db>fI*{XmN>+n%x+e4h!7=Uk%~bg_E49I zWhvT2TzV)Hma+uwA!yN2a|jqEhaP&!LJwUGShTo3tWu@073T1pW#N6_$Gg0Dc<=k{ zZHynTxoV6c`xJ!~AO$UN-s;c99edfA%2LqHOBv-A81glbl zNy|2)yPV|-jxV)Cr59_##EkMf#gnXD6EsG#c*BpP3Ey-NC9@yeU7 zN6WL>22~gw=LtflY8t~@g5W4>$1KEJqi%0J9OY@Yo{L~An4{sYNqG&%Z;4??i~agI zbZ3dboTcmaT_ghN07U^jfDm8|u)qKnP$krIP#BWb$!f}R_Py(|rvd5YF^UQtj4C)S_ue!eVS`a7{7y86eH&wTRcwR<<-`{JpaSO0p$ zeDSt_@4Wc#FF&2`3)$BnjefoK=YJmzzkC1f!vpQ+!xx|U>QU$Se|~)W{N(xz UU*37H5Qd`*$A{m%`qroa10(^Aj{pDw literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_3_6.png b/resources/g2/track/alpine/medium_turn_left_bank_3_6.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3057ca8ce6f54a7f2411660338215c53315ad6 GIT binary patch literal 920 zcmX9-L5SmI82x5CGntt>6f7DwhoA*>h;G!N0dvT@nK2HL$*@_-Az&5)_D~^*tP~6w zFsxtb12e7lpd<&P^4fFd#DoF9!B}ivhcp|<6Yi6y!Tz4 zpGilDFB}5E(dm1~x6Au{IZy9b%KhN)`#Y{qc9@RO z_xj3kWQ-Ggn)!=mDAJh5S1lQLH8L=%fz4idV$##5BP*YDR(ZHtrxF1M4Q&Ae6&qSu z;@9TGdNC!?ia~{et^n2CECEC~cp(&1SHS^4Q&t68}I_Yh)2rbiE zoug=t<(h)nR#o3L`|b9~_mjaOi{r&?wqCCh5Ef89j2+g*F`-WB=0fZ&^>Ec5uY*}J zT3ydKs7lvr9F9w5L!}v$=WSW(7^Rpq^1GAaC{MFuA%G!cwpw!yGHB6#M~FJ=xZj*a z?mX$Q=4nwpL;`>YU;_jI5x@jsi2*91h{&-~6ry~tP++mp6(E)%R{*JiEFAeP3KbN$ z(6oc{5FQ85fh>ZiU@a4O+jKXOhM_qgds!B(Rv9Y2h$gU3RS0k;B#oG|az0q=QPCc6 zdeiH8f#z$f4jhR|OidTamdZL!IdEHH*BwXQER9xqii!m%%P0nv143mMozm_J2+!#+ zmt4R11om_)>blx$nT}(zjK?uOfsI5qk(rr7ue1g-NaRwe&!SjBnOv5id$sz{;~%(p z`%HzKfBpVpN!~p@e&^0}Uwj#SfArI9Po@8&A1^-oTDEUK`09g$!+Rh9`QI(`rHfxL z&ea#+ez~#x+Yhh2)w+K6XUn+Wa&1OKCjzW@LL literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_4_1.png b/resources/g2/track/alpine/medium_turn_left_bank_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..129083de7f154185d1be5a9f1df1ca84776662ab GIT binary patch literal 1025 zcmX9-e`p(Z6n|~nU4Kvx8b*d;2FV|%oRaFnPPn;icP+7;_GWJ*ll*bY;etju;e-f> zoERlYHjWV?YV0E1A3+WqT)`U)+lfal806F-NQZ`ohKGkEk;ur%$mrzC88y_E!C6h^tN^u-3io7gmRaGe#i`8nq*|c4E)AxhHfJy<&fWS{?v(bD$ zQP5JQGE=Pyji%Ic)V5dd_Dqh%GR&mH$Mj6XkcqlVtra<^nrSx`f1}j*&4a*A$3Y^Y zz=9!S4Fz+`c&8B^wBx9sLIVjM8VI>b00BV4Fa^i;c-$ZelVR2bVI!C8==yHGjvOaW zMU!kSB_tS$NGoJUr(}asYh2OdD=pD%OSYd&(D76{$%rH`(^-X6N$bhn)j7N#Zyii=`7ukxa=9qw+#Y3YTfka%H2@^j&YzWkKRGRm62E zVdTl0##$w@Rm*KyddI2tJMLhxi&%gRfC^v$SO6OUJq%C?fkT>#EED-1fdGYq3JZ1` zd;yRMNQt2`g-ik2dDJc;--HLj)4+3(5wN@*(+gz9NHsmpY6Vhm2d7p7U16Yoj-z!;LH5p Z{^-3Y?q_B+<7Q|b78jQ0SI@rk{{N$m$#DPx literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_4_2.png b/resources/g2/track/alpine/medium_turn_left_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e351cdbc4177aa4c6f4e9c48b5cd1cfe87c87f9 GIT binary patch literal 1001 zcmX9-e~8<36o0*6xm(=|R_ruFkWMp*N5_H$j2L&hvmTMlxm1b-%p|a)RWgX9V$tA= z6zOJ=q7{o&$sYyd)<13|2X$r=^}r6}*^G5Eaq`26!eANaiY z?)qBx;DP%O0Kmc3r*_tfHXK4Ilz27^Wo>29BE~X|e2vC~g%B1H-u0Y9ZIf>13Kq zWkiBi$gD=?4O%r>y~$T>q286Op5g=rg26M{G%Hbp%E%h8RmEycX*rtX8(vWN$L-;c zo8TZRL8<^m8AuajTB&S@lwD5q^R=OFO-v7Mh*VN#@KTnl<=M8%cXi3HsDp++vMUp} zvE$ol!!YoqF zGG|w%ZnLmu8w0mF9(ZAR3vmE>03E;tumQFJMi`(7B9F>CvMm%0L=rR_>Kr&(2t+^< zAT5PzG_pkG6j85=0t;>j&w#)~Uc`!O$|zBFGuyV*Znxt5_IT{0NDD6jU5;~RO0)>Y zA+>-tC$b%ux;u^Do-;&)37G_jz_OWy%n?P2E*AvTC|Y%+YuA0x9tR!@hm0T~2T%YA zMOjoMxjVos<>qL_G#huI_j(pX(SkvsbSg>B(b<=9;_KmLZk-0wW5lK7{K_byHC zetZ7;w_d(_>E`!ee7?N$opK?3@cQ+YdrFUA{x7!j&FsaSf5s2rz@DJRf11C({@&Y{ z&us4h#Gcsr?76QuXCBHOSvoR`oo#(^{)hg#Tx{`=8*hAk=I3`#J$q&Q+5_0b>*7nf z`#za}m%FfQt?(Xj1 z-X4Zw`}_L`2M6^=qrtL_C<=-q>3YjF4aaeOe;7q^n$GgPSg%q)2X4!o;qUUtJBEHC%si3Y>Ko=fJQ@C08hb2 z29~(^d{kRc3AAF+T0`d^LTLj)2GB6fz;T-(JcGneGEnC5=J1)H0 zI$E92H>gVEI9IPX$%aBRI?tPu+|$ZsR^;|4qbN_a^+Etm!b}CXHPY+Q14{^d%6QP8 zg!Victmf%@eTD=86~F}W078HXz!C#gLKcx_qA)=DT&BQap)Ww(gj@!s05a;xWlVMzlRvKaU+nA= zckjRQ;a_{N|MKm>&wcgi^85aA_s;ICzrOtOyN~|<@j-s?@b1q)gx{PM(M99(d!G?c Tu6$nl4RCzz2`*|jb4NWgE@K%MsTd`?J`~MEh5_>s zFoU8+!l*}tie==XNSMW)nuj!$7yvsei-h?@nkxs3&61;3h8n=Tdfkh zQK;2frzy5Oa?sWKQGGaac?v7BX;sLXCBjz7mPT(`eAg-UJ8ImkjbnFz5*BfgDbP8v zC9JJt-Fjxw&QAL{8W+%1Mh7-RVIDvPkTFcnWK0~lNz!H6Em7=MDg)EpYqe0fi__UW zmn(<_E0aZ)Dw(umvs#n4JfRUtZeRA}3c=uoVxE;KL1D@&uhzs`OK$n9ADLm?h{o;V zemBEGR)Smw2m?qPV_Lalhb(tFH7eDInme&Wv?Wqmg~9bARWGq^g%30-vXp_NjXZ18 zb@n3&p$;mRKQ*ZRzoj8o9Lk?sC)1-_k6Lytq z8k|>?f@Y=XnS*X~JP4=LJ;VW&05kv_zys(3j4(h6L>?I$@>~=TL=sdQ8XWjVh($mW zAT@{TG;&4cS5d!)Vi)cP&w#)~NyMs3&eW-fU2MBb5Li*Nd>4YebRJvd>1&5@<=9-Nunl=d=5oI za{SB_>EG}E!1*&95}dew^ISqU*H=%TJ$CVfos$n+D~oeGzo4&IPTc%{=hv+pKmT#% zed6Pl@60!hXP51dyvM)se!J9r@~zWHQak@{Uw(b#_{_CE?3oweeBh!U9J_w>!m0B0 z^KbwCbl^X=)`!P7-Tdbm`N>OPwU2j>{CITXFLL16x4ziEw0ZlXPk(wD-)>(0@ba}U vAKm`;9QVqf@ekI8746DD`XdiU@1*X#@!u_M`Ob5RL0DhgSpDqzSKs{~k_57h literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_bank_4_5.png b/resources/g2/track/alpine/medium_turn_left_bank_4_5.png new file mode 100644 index 0000000000000000000000000000000000000000..be124aa67a82ddd678de09558dce669e5681f837 GIT binary patch literal 1030 zcmX9-QHa}g82|2icez`4>##_fMSHGD)VNiNkcWs-b4PY$yBwFpB1NK$tPd6PkV%!I z0i)DeW*FTFSg{Y8)DgYT)sabssyXaK#f`5JGDPU+2_;4l@&E*pL zLaJDz&5BT~OU;(r@k;%H#S&PW4l8_2OD7B&uc~B2XIo~vQ&;?Uap+rZDT+|SVs7%H498pTsHJNRyqNmF}Qytj) zsAWz(8x7n@l){NLNo5%}FN!5uuH^IeQmIv~dXCfYc1NQTg17>>iIKGk+l-4HBHL$+ zgN!xIH%CTyTp#ZDCMZlqB2+BKC6XeMl4)Ayg`yNJE7VKncCGHa-nh?z#AB)$(WHct zBPs>PE{e@cwry*@R%O_8$KyT30Hgs_00Y1VXafu|Kmi066;xzf$nOa_C?u2_a5(S< zKq4R|hDs!|1mxsUr-*zD?gvi+&q7+ja&k<|6J>*|S#qMK7iWku$hdQ%gKd;LZ);oWiq7Ak}W>f6^LOviKGP5a8x0Y z!yu0jj-NUfzH|Qv&Tg!U@X}v@oC(PHtIIEMK6&BeTl^t+>EO(IAN_cq36(y3{QTz9 zpReESzI)>6wdzk(FKk_0zn;9zevO@09-aN*$R{hm?Yt8@6}oc!f3X|9$wWk^Ir;H@K}gOLrf;viRyhFGjz(=6v%^qxyH}$n9Z&`?U)jyXxh0d;9PI e`rf{AZy5G;w7d50_D~>B%VbA#@TIQWLp{0<<5FUF5@yOvyN;=ELtIA4ht70 zV9`2*i)WGUC{i$g6v<})I5f;EWs7o?vWrlqy0}#>cO6VEqsW2B_?a>I-g|uiypNCX zy)(xaQoE)eoC1Jd^UusK29pRX9u5UPb7kf_KnRXKdwedSBO@cDqobivXl!h3e0+Rj zVgkdka5y|UIf=*PahgtW94m^vEN4_zDHICja6K(X@$r2G-1kQRi)PoT(g{R)fIoe*!QjNft!kfL_wYf zQ^aZt)-)oWT6EZop?(4lCA4EA&c$u&V(&t^NieydtV&1Q^_ z##uZe5J`zlDO6ggWizQ(xPr}>8lu&b96w7iu|z7K6e(V2G76^@g<@5zI*Q}zu3z%{ zweEH^!a`I8JPU*dq=_+AJXI$%O;+*JMpv~4ri<1DDk?Lve2OyC$(qbHRM9KQowC}q z3xj5P+p|&6jYJueO4Cf1K+injA0|YSz$TCLPB3vUTwy12E zEA}#0Ki?Rb?P0yY)7eJTR3yUSc#4RNR6GFpaPfxHo!VS4+9iH;E<*w+d_UvAVHy_#DbFo zUjQTmQgCF@$P$o~L#-n6Ew~#z13U+50n5p_o~KG?s%FWJM#1y!e&0iZRxAs&HqDy2 zU=fl-Dt^)&Wb9$Sv0ZNMI9=2kkWpX=ER~34SRyCVT9!BUoK?~rcFA+?zVD)8m*IKj z0P+E$Ad6xkcMq|GR_XPaO8FktR*TDI#9U6+G=)wSm_(VSZH{j8iMBxX({UsbNGDN+ zMh=TSJ~)16&-CrPKd`j8Ai|Sdzq}lfOY^f&9Y6Tt+lz-D_-=2whtPqCS6-Z1{rmCX zUVZ80xs%<`3wwXR=sx}9{`VJ`l*1R>d^`2&^G99@f1E$~*hj|lTzhTzk<}Gr`9uYy z-aT~r)ZEGik$!>6Z2a@dqc_L?x;k;Y;f4->onOkHxjA^^nzsL|?zbDesmkh&_U3C3 z?fLBV%#ANkFXMlf-a32q1K|z%y0-JpuUl7_4{Toe!#Vf;@|*iE|5rYrzVx&9`uXa6 sccu{Y9KP>|v-fS>d1Pzzet!bNPovQj*Z#f21ZH4~aABD%t0{{R3 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_1_2.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8322df4fd47ee67c0fb7de54bebecaea10f96b21 GIT binary patch literal 1011 zcmX9-afsV=6n=NTyYyB@a1}e2jo|el!!R<8EQ5eibE7-5UB+@yp}Gu$)=?x#)Us6x z+JhpU1T9jfVCQ96FkmP5M;L_#jO>(dWYB{SBUY(e8qwj%e(&y2zM-sAh{eII=9 zeROUuvwz>AeE_h3_4La5Xg(3u;dm_SH;!F@3LpmO&a9t`=*-N_?CfkT7Mq)!o1dRw zSXjU?EFO<9E-t3h=`_nSq9`beq-i{5EELFM ziK$fidP8ot)sAO$gX&;ti!_$y6S|Z#v!ta_O@rMki(Wn3ZR_E7Wfa=ev7aG8rJ*Q* zrC==`^Qw5im7H`5G-A+1MSB)Pei}dqP%%u$ag!h{in4irOP06u`MzoHHk-)v2sW7( zQjARUDwWactjTH?Z#2ZRBh@;J-BsN%PjUp4N%IOVXeIkMLmy9a6rE+cydV}8rK)L-VzFJVdd+6wx`SSCJRTz;bfD@O+rq^Tp>*l|K&%XN z_NdqyTfIqpwAY`a1dZcdDwQGA3e9LdZ%A@Qjh2<#)!KHe9s0p!Ab=`ihJu?aX%*;3 zNpLDkr;*=w%)Zwc_5I0Y7YP7a00Y1RZ~(Reh8Um-vWQ9sa%>d#WeRi_Y67?!2xUMD zAU%buEV5LK_|h&w(UDR>lfi$}G|~E7P*IPNy6M&S(^%NQ=k=TS^F4O14SW zrSy=u#yMwF>`d$3J$HcmV=4(8iDei(Cy)h&E#)Q4EZ8-(Yt$dZ=yt_iPAL?$Qb}i-GRM>f))84xVtO(?%BGP@B9lT57P$fn zr0Dp$V~Kws{lMGj*A#f+uluh@`!{TK;i!>Fm|sPVMZk z*YJl2`%nKJTlwYU28NYiS^oImna!V;9~?>C*$`W+H&4ECGoJoBeQ){6;rB-_++MoG z-FWuhE7fan9Y3*o`@-jVqzky%(hwYKu@ IOBX-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_1_4.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..49bfbc4e6cb61b8b558f2949eceb7e34fbdf383b GIT binary patch literal 1075 zcmX9-Z)h8J7=D}nxpbjs8ZmPRiz8~pqg>&XV>`xmUPo4M_UdjD*f}F!+YEwU<*Grl zabOr>jd0a`NLfClctXT%O`%|ve8`7Lt46qK1`!XIjX;A|I9)7})$#Mj;CbJd=ga%> z@VxKU*_rUzfx`y?U~KyI)LCa9bZXo^==7Bz@Mi!9VfM_qQw|*%7;w22ps?$Oave=r!ND3aq?QRHP=QdK3DO678ea=B8kH!aKV^(Ycp1_a(CNxpbI zkVum043o6hU z2^Mq_D=Jtm<82jvy#|iDBN zobm-(KPd#5Xeg`@5si{{M$L1n5}&P#Mk89WVgVW_!$C$Qc$tAdrNRj?o2wxEzvdtYStoZPl>#I@%NnpG@P4Fp-HcMVYIrqM4Fg zIki(t*|l8XETK-_>!U+NgrZ|Cmk`B_Eawx6awbzN6wFGc-E7*njR035l*6c^m#gAp zgNU`cbVo9}iK?wPd*$watB*W{*Gv2T;XqI%NSR?&UPwosWyx|TyIm|>b+gxIAss8%YSmKKte3i0 z9rfBY&!Y+;3lMU$NIPjUIWa zzc`nWUb7eWZ~i_zIVGJAu6}spCph7``{O6>>zDh0B?jt9c-rpElfA;p%>vKoO4v}kz zA75KOzP73^P42CH`}v`(V@vw@v90%-zS;TkKbP+m&IgYFHE@yodat{Dbmrx)GdJ?@ b{O9`e&-wd%J1?4!S(rXGGqwK8+aLcAdcn{W literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_1_5.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_1_5.png new file mode 100644 index 0000000000000000000000000000000000000000..e6605d73be3ec6ff6402aa5ab1ef31e2a0d2f442 GIT binary patch literal 1051 zcmX9-Z)h8J7=HUFy>xZUAj1O>37QWFyN$S>^oIB0>aJ_7C%v&N2FZsAC(R(!6HgXq zz(XU1nQbQqmq`YZUT0*{Wvpv&aL&}8QY9US^h36t5J#~2&|#+e&}lb*-WWXZ`|^Bw zA0D3fJ#}O{x^u@fI{;wk)GHH5z4@G1q<_HcOY(2y00VI3wVA^n?d$97@9!TN7#JKJ z^!a>4Lqiyb`ThRk;bA-+4%2jm=Q&9dWI3*?N;aD<7R$AoY1`|r+wJw}2yiTj!bm(G zOr=8UOeB|QizTsAOIUTa;pAIwgQu_LqwusR-y!%i7UL46LaN6*;GtN zv)zKzskFB00S3g z+$^f?YPMT1ZaG!dwgW+iq+&FazB{aqtWXJj6sSCF5F}D(KOQAzN0~ajKn;gFG!F z33O(J({a%VB}`IrS-l&t_R`i?v9WEoP_s)0feB&JNFdIIQWBj>3c8ju3Yt|dICiz; z+NjrJ1Ob_VTtLXnBIn6H0g=s=+HIy(d;+!6;Nx*Am69_Vg^pyINRgwfJY5$e>mt>O zg;64eG!m6)WOB$6yyIu~kNo}k2i`wAEy4K4tyz!!IyLd~%)v8f3J0EEe!+j}20BUj zuFhDw7wN$L)bkss?uHt#?(y#n|M>do^-qlXF?{m9vmad>JwLg!>(YtalXK_x5%aq~ z-E%rW@!9h2i|*C_pTp@MGf1G)6@512P=i8Sz z@62oL&7b~#HfTRuIdJm#4?aBq@ST4S22T&K-DPgg&RxWR_-gNcet>-7nS!aq(-W5u Hz4`I~Fzw9B literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_2_1.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3307333494e3f0dd7a810bdcbfcc7344b8d68b GIT binary patch literal 999 zcmX9-Ux?du9RJ?m-0ht8s8BSp2t}eq36f!u;4)3mcw}70GA%4ZHX`<+V2}s}3kFuC zNWn1cS)pL{0`?)Y2=|bKIKs$D54sUtkq$EHLvejLv`8K*+{4cvgAaT^pO^3F;q&=? zd3i@Xd*=Bw0C0Bu-NKdmWls6p(kaXQ^c%nuT)uR5Yc3ZS78Vy5mzI{6mzP&oR#sP6 zF$`N&MFeNPIgRYzb1sOV&5~8UVV}{vuPyapixla!B()Y zfrX9Cu$xW$IGWHX)zFEJP?QId0W=IVG8qfUZIX02ZeNyrrP9!{jyoL`hB%YW^Ep~3 zIE@qys%SB~&6#bX=1R>#ar&B{ln555#XP4_lFq7zVASP$N9*{8A6rq1KogSNc?GB-F>MGpPhq zdysmQli>_)P?-#y%ZWr@p=h1sOi8Y5^Ji7B(d>1-B#P4!51NFTO2*O%yG*sKyjxd- zcB$uD!>~OWMrnGCcz_~+319=b06l;)251ghKvfgD4oZeH2?hgA9()lJ8IS_V$e{*< z92xm#)UTt&fz#kwkOU~oSXs|m6{=~AT}KasS{%ERNsQ)RcnO&525;wNhtPb|NH}|{ zx@jetwfZOi2o0xX7FYrk>5R$~WreAhB-<)GO)GGlapX>t2&E%dl8_H50fgpR)aQ0j zfY+++@tAG5p1|z)1yxnbWxZN87`n#NEuL`&CY0!bOihY;q!Gv>QJX6IM?E^u^Z;_s0(o-}vOm@3sohK6mez8|%Tt$3Gvf z-3z$hC@(?70fN=yCXYQzH^l~l-0s9a&xQcb=A%iNx zWv&n12pFZ#qJ1bBp+dkuoREh+WRQn~g+)B1lQ8>GSRYOdQnAPhe=`Q(-|xrw<@b5` z{(g7%_iCq4ojU~pr*~i3zLL%JS)D25vi|Yab@PG;BE*4Ee8bGh8c#>VF6 zW#Nu0UZ5SJcIdr4Wur4h-h7ErdN~GSZWAXOXz8G^*jCQqbbT zk+GqUg?4E=EH5WGTF_{zq7w(9s0ttfs2HY~N*0bgB5G+pDs+>%T8e7)|y(4u7>cH3i*ou;Fyco__ zVTp&b43!2DCXf!s4l1<~Sr2(VR_vMKrcQ(oC915kc&kR)3OCe*z>wp%HtiX6ubqay zRqUa8R4TJ1r7&!R7h1AxYg)h68rgO@7{tCmJ330!6alUS*~6G&NeFOxLN#VWXI^&~ ztsr%dmZQbVbcKpksl-+)HKHn0w8n9UD0S3qnK`n%yJm7<<+<>@TL#a(Rq+00qDRZ~#1jF~A%Hlt~hhX&}!<$y6diXQ0c2UxP#fBm>eb z$Yzi$A-{O9eu8M7feR@3cTf!B>AZ;?c3Ib%f;`G68YD9fUg z;hqR@oBjEm?f0I@m`sFvU2Zlt)6^Nd&C)%d@dPFm=_83+C{?5q$RbgnK|YUSF*|@h>uq!2|KRYudq=#~1#{e=)z= zcs2U!+}6E+KHUHQw*K(D>jUm={{7 z7@;dYL@7&=Dg`r8C1MYA2of>s{xaJ`t16or?ziatL}UIEyGYcJloTG)+^jm^!?t*x!??d_eNo!#AC z48uyL(%#-)wN|UKEF+47qDZ=~T9)ZJPQO1KkApa#rD>MuECT`$vQ$>pieZqgHq+_y z{ee6hYhh$flkQ^ai8R*W%cfMd8>FjKLyJ9g#Hinxj?Hw^S*6}Oi|YhvG_(Y86>MZ; zQ5T<&D*2Q^D+c8nI(HF@YXCBUhG8a-+XUfKl*jXDvOH-v=eB)!I7CrIu$7unWn_}q zsJclvY*u%9Yalwl)C(1Fss(A2%E>mE#&=Vl2Ln;GO0GUy*=l;C&dSSG~gXeEty#3}!hY!J1rOp44{qT=({CxS#n~#R?UHRp$ADowOaUYaE zd$)9Q@%XW?e%*ikHL0@q(&_h~KKu8_PZIwU#?zdKkl6V{)I);@jJ(t i?Qc&$`R?{J_prZ`o5w%>6K@wNIJ|mv@b#6G_x}fKKaw#3 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_2_4.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..95614f7fe54f812624cf9385676b24ca61242a71 GIT binary patch literal 970 zcmX9-QHa}g82|2icj;X{%2sB;fD!r-A!^h-L+5(vpJ!P{6a__*G_7P9dc9t6wK~0?7X+gyisy5d0f7fu%9KjEN`RnY08$!a!lw8gqBHT#M)RK2K7as*Sz^9n6#TuB%8hTQ0=9Z&Z{Gl-hutUFow zSpjki;AJ3dK-n1A!3#aA72$9)dFo5`K~7R4JE8=#^Tj zgf5x}*&IjFMV2cIVpUNrO>0-HJ5@sk_Qzh*R-L464 zL+Q861J@k;?b$e(&+j7vpa@_9*Z?lT0APv%N+64{^^;Lf4|%_p2BArDXl2qjrG z61m49>b3TC%C%dMVGM_2siagYTCJwDOr2v|0_%#bFEJyTo)z;*C6P&?Hj6v~g;H|- z-1C{gAN{}w2m1<~|Kqo#gk0U***bjoiw{44>1=R5oqB-GGoRhLX&k+LXE^&A1iqut?FkRTo%cWd^B`LF5XSUBF|jm_PbQ;mUS@)LHb9JNTI~_}+Vb|Ge*m z@4e4XE~XA0c4eQ8sB<%m#ulfKHIQiDniI9$sjg60wMl!^rYWB1BuP-!w61G~LZMQrH5!iRZ3V$_G@>csSP+HTbUK#J z;<-FkEU}fUSZ^pTSMT_xUf<$LOlD^_A#TXHsS-7vZWegAB6k{E&@K)FYj^0S5}=Tf zXty34brNVmp^<|2OoY57fC!*qm==v1iG)cI7Rxq8v7O0u4P&QPL#~^k zV@WPfi8!keDUFm3S~Xd{$`@>*+>)%0;shC-Nl>XIE0KcAq%~eEip82zb2P^{yrAq4 z>b+ez%0Wzmcn0u15GKad;;9Cab~(+LOFi8hnjUJ3WK3lexfEHF*}BTNbjdHM-HP6~ z3q!ZE>)WXBMPm#>$~2SV_?#q_RJEGRHA*G7R`VUFx3x7K4iO|YASxJLkMgaA)FCrH zzSvJ&gIsH9ZjBm)z3wiWC8JR$9#7#(iKJAP)djJrgv;`cQn_7k1fDL-Mvg3-sk)`MS_R*?2Lm64T8RwM`B~14 zix#dpgch*oFl~==t=&pz&*`D=kca_;V<{?{=J2dU=QDz7WUaE%vdg|_4+0O3dW;|- z2T%YAg;^9sxkpG8^3{Hysa76A?{xTdTFPeCd|soe0z*|e+U99jpteMEASaQ6BZELy z8aW*Dh4A>97iS+l{DCv47bSRY`;WDdTv?buzVz~iE0>NR{`Kf|=er)l`2e&?!?_F+xxc2u!r#H^7 QhK6C`#Nzz**H=FMAIQ$TPyhe` literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_3_1.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a24a8f119d529c156e4378c333938c0f79c73fbb GIT binary patch literal 1004 zcmX9-Z;0D;7=G_>?sncH^rWyL85GGRo?%1`EJD=W5zolwyo~ijWjQWml~oKQ!+t0d zS<#|pX19K*tgs3}i_5UeIU;1NNR)o)G{ULfj8dUug&{>MoO;ZkIR+2U`#xXZ=Y{8e z-(Fjl<_{b?008qV&n>OT_0j!)W+LW^qW5deu=c|79PNCap!4+ly)}TwXD1KI%>5DHjxsN zj6(7nB^h+uVs)E0YhuxrE57P@^rAb>oM0yvhtxdE zhS2?KW!1!&acWEpvYB0wn4 zq7>WR2T?54`hBiey$`d~5i=Pzm(vRcgJp^wQx#ZOWLq+`qtJtN3TY&=C{$ySC!kP{ zkDptd`*Z&X&aJPi@bquDPsif&%F;8(k8HhpQ9k(P;Ri$$?OnP(TRyt>_4^0UES~uL ztAE~mc=GfQAEwx?Yd5Yu|JJJuQ;VrtZe#QN>dh}cKXUAomtMcPKt8_w*y@FaH(oq^ z>X**TV;kh^$)lU6KB%pq-MZAqZ@qK=)2q}Iz0abvKX1P4|8?W~zv_jL9=au+c@qEQ z_mfY(_S1LgPDt|2M=tx{TpK%dZ+`i~SAINp=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_3_3.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..885f8216a25b73d27f03f9c7008a908ae252b4e5 GIT binary patch literal 912 zcmX9-L5SmI82x5CGwE#I4Op>Y4gq_}Axeb6Mu=-%GfQ^JI$1UYIph#EV#R=gjgUi; zpgk1HA+S9Z>7if_Jp}Aw#2`W9nnMp2a;Q=zEENj&u!kZ!6n2DvGc3IC`*@e{9o~E2 z-anJBUwiEu09-%4d-9;VuT*nbuT}fulXvz2YH-C1i@pKwz*`g@6Wyvxi@Sw;IU2j?z>2{gE z&ksk+WNIX-Gtd3iIuvP4;~Tcz@-#9qsju-v1x6LF13>sVk0u`Is zSnA`;Nwb_2Xv3h=K$ihRSsOqBFfh!jlX3AWi5T8u*S z1|`|F=CNkLJ0r0d$%8}<=SEy~NRD8nHm}mM$?3Le_m%$G7{_*;ds#8aH0bv6*#MlWgCWJbtJ1eoj*29gPY=cEP z-CQnrs6pd6*J?>*TcsJ3=N(z;8`ZP!)E~?y(;~~ul>ml}IV$cMWMI*wt`POrWYn2O z-ZC9+mRVUoMFM~Z-~a>w5x@*!jRC5lh^XtJC`83lp}=NgAV4fZp#V|=*)8O=C{$2v zp?Mz_AzT^Hfh>ZiV3yhPTzU{llh90(UY~?LI>2b_ZU?Y)DWoDt!8?B8D5_uFFu_zW$E?42_-faAL)qyV` zoT>2MzkhvNk#|o|ZlBk`yY>6+8^69)uRZ=B{qop)`_B);XZs(&@#^R2FaP%0S0CN{ yDfZp(Yft`u_T$6gpJM!o`2&6O=*G!Q_^o?)zxev~pRbw*r+3ayet7@GZ=M6xJ%V)r literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_3_4.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..251476d3532a8d2dc3c050cb22b09314a37e9ff8 GIT binary patch literal 860 zcmX9-F^HpR6n-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_3_5.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_3_5.png new file mode 100644 index 0000000000000000000000000000000000000000..d168751d5d28002408638e3379ca204120d506de GIT binary patch literal 939 zcmXAoL5SmY6vp37XC|E)#voOL<`AK1gdh>a5HM(VCbM*h$Yj|p6bWpE$W-YeVstCy z5Z!`B3LCJ8AU#ybp$n1iVGcR;5HN?X1k7O$6(aP|#VoE+B!?n{{LQlPz4!Po?|1m# z`~K!x<6!T#Jped3y>W7@oUfOKRV!t`a}eDCsKCt+Z(lF%#>U3x=4Pc*+1lFL-rnBX z*}*WZTCMKx?h^HSo#R+Z5>-_;49&94Znx`sqsb(UkHmc8Bg?SWF={TvGgSdYYO|OOgK%-HRzGWU38_$YbFyjoAvU{U$5c@2|5EE5nL4; zn^@Gx=i^$DkSJ$Sp`$Aop|}p90O%NI;L+@bwJ4rs8+ActWP{gC$?Pe;kvW=kmlpXI>JS$ zsX(-VvVnFnend1Tv=)hG+UzeZf91yLLSbqKPj(tizbT9jX=7mSrXTkFzOVCuXwm~=@X5co)zA>G4(=^EQ6qPKp1)RMvx`g6WdPtj@;I6cw z=uFpMauqJnd_~uQr?3W#Ya-QFIlCphPTLZHRA$jDanD6| z?cs9C554EIl0?!pwcR#s+vM0T&w3&kNL(bdmkN_N>qw`NL!%*wLJ_5MdHnp_`~N)q zfiG{Jsc`Mj-_J|)(do(2?dp$T-9LKan`_m|zsM%`?&7Z;{`Ka2*zqqfy<-m^!5{Dc zJ=}Wy;O?*I5AXdDOOM|A?59_Md-1`y$8X&K^kq*t`XagW?$1yD`_4H0JUpa}JW0O( ZB-_}ewe0-K2fY#kr`OL;9v**u?|*T%jXnSX literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_4_1.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a835edf1a7865f36bb2e1770a19e2f4b6be3c83 GIT binary patch literal 1031 zcmX9-Z)oFm7=HIR+wIP%#j7riVv7U`qthsvix}^+5ocuCmW?81ysi~>y z>1hnZW@ct)XJ?~{M1rQ1JkQCpsH$mQ*Yf#%xm>N+UC-+T!EiL9lfbbciF4_6B%6&H zxn!ZpmMc=Nt~8o@+b{O|Hcw$Gc1{zcW-4Z>WL2jR^L(?MYS*=(RTu>J$#ww(sQ7MyFEmp7ac}FZYWV@}nK_4E!9y*k$h{_O#KowJLP30T9?B~^PS?@df zVY7VVJE-sB5r(8vG?U?YLzauGS}}}zvDmCueb?=EI>X@*0igj|#^@T(Hwd{+WqN#} zpSA}^V`z0o^}%WP1kF)6&P1a^EFn`#m1T8NDk$NyT)kLo)#`!gk9r&^BBsl@sl==- zRmpKqL2gtsEywIOD}$~#8XY4JAO)ZUSO5+{3!sky3L)_*rz6KkL02L{qoKrsD?lIt zk^yN^RHTtDAvcTK1r*ruAb18u9#RsPRimasl`NrVtBpq9_npDON1+yx0XjFwSy9Q3 zDK4o6tTjwKBcpLrZlAh6)E$x$U}Bh%#M4|XE7Q4*Xqj2NWHy|V?>U3OL!%xeipT{N z0779Fg;4Gxh;sA za>y6M<7XD<{(bNR?{06%@amsOZ-?ZY_0TbnmUsg7+eS|8?Q(R(xS$>=<49ZRPPJVr6CJ(`|#fxtD+HtaooGPAJPSe-txc Z`EUP`pSE6DyBZpR^|g)FuP$EN{~rXqwp0KB literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_4_2.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a85901e1cbcb1c91c7481b4595bd59143413798 GIT binary patch literal 1010 zcmX9-afsV=6n=NTyY#Nk$O={#u#P&yj8aC#2;sN6`LpgAB8?Vg_XviBPpd{wPP~if)jNiq#$LXJqib_xS#K-v{4& zADrII9a=fE0sx0LURpmBO)9F#;<2c2UHI!RKnzZw+BzB0xw*Od`T1BZwy?0UxVX5q zw1i<;JRVR3WA3)22eUGiQS23qLtVesYN2kIppzLc zl@-&hOy*Q7uhWXjYE9m-g}N(Qec1_$X@g zld>C{gK1}SFr1+Th2u;rl}l$NDyy)pCWuuzT2|@Q>b-U+@cikB16jZ{3D@PcS)!U1 z&aO&sv)HrsVYfLMdeiAG!~x_1GyoI82Iv8dF+dSS9#u4CTPPTcB&amhIdF0ih=3$O zY6{h8WQoWrp?(zw7W^MP0|F0u5i2Pvy-d~3T-#Dy*YJINGVxKQMHGRqBseoAT4~uK z)qpj_f;}y}vqt~G8KGfFCV@#~xh!7b(j|$m6a`Z+S#{mD>%M1C0uN0`j36KfPyh%; zSyUsr2Ox|}b3A66jR(;BeZEkTN+qRIQR%F~WE&i9^K@6p4n%5_&mcLCbP_db-`5uAev@I}wlliz*luYA7!$L%|=@H_M4qdy!A_lVEl|K{o&#l63eADLg>yZ@>DTH^e+ zbK~$#e#+juzV*nJ+w{j5?YMI9r(dqfy>o-3?%ivH=bnB1?43(H$HJShhkveLyxP0r zs_$GPp1$`mzMIF7f43|Ay1)4I{ugWaKiPeGdv%Dv?FEg0p0LhEUSZ?p=K9w!zWVNe DEd03o literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_4_3.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0d5fad3016b5ec7682650995eff16db9312963 GIT binary patch literal 921 zcmX9-L5SmI82x5CGwEy{gY-}^hpbk}AxeZGIph%6%n--uWZkSpEo&A6Td{{6BJ|Kh z#2$h~2vRU=ksflW5ZHo)a9u&FJ=`?#ivOi!P zm-olYbf(9NmF4bo6^JyZ@eNaM*&68?)Wl-XhhpMu*~~01oU#bE>r^5@r=c%^r(#nR zOI&<0ZEi9Gl?>YG=+Z+dZ38F(I)<4zZWDw@Q321NE6PQ;yRhy1lL<-^f^D{i7Nd~7 zPDv)M*{tF5)>s^d@+ek=Opl5#$q|gy=2coYxQ;2Bj^a%8Nn}R3off0KoG!NsE)UsYYh829@#*G(pqJc^d{`Fg!ZK$t-J7(2zqm{2piyA+*OCn)>z+M91? z<>g|F8Z?e`t(HW#Rhlt)-jWqZufzs3cXTnG6=}X%3ZToFrQ)_udOdnP5JE?d$K8w2 zUL@mkk#08kkpQ3pSO6YC2yg+g!T?oJL^QBa7@%UIP++n!5+IVGPynfb%ocK46euX_ zq0B)=0FQ#_Ko&t$u%6Mf`}D|@rhyU1!#oemGDnpc(FJzU5WJQWka|R!1@Emp;ieyN z{p>PYqQ#nO0!LyJgLee7r?P{t?Ag6wWXItsPs6fE(PqiXGKv5dfKZi%Q`tQRF&vCn zD{kyRhLvSvr=#|I#$aHw%#dSzfel4Ak(s$dms%U?B(fF-dT&~K`z0i2@=m$Q$ zai+q{fB$x;BGT#cwVU-XZ{2(I$&X&F*M9i}egDJn5C6RL>FB}9dtdEdb>A01J1XD( z;G69E=YD=BdHdV__&W`WC Ia{J@|0WqA3mH+?% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_left_gentle_up_4_4.png b/resources/g2/track/alpine/medium_turn_left_gentle_up_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f1832e75c54800333a760304a75f61af5a9cd727 GIT binary patch literal 959 zcmXAoL5SmY6vp37JCn}V-3mQajGC2#8Hk!gz_>)o?qTvsHo=w@McR1}tmP9tO>!hb%-XZjrF|P$6i+f;sG=N)H9+@HfN4$9wO)yx-w_ z@9<#1a{AQcrvTve-m5#8(|-13&SlbyZry$!AOi=lUD-|T+S=Os`g$gl$!4<~8ylOO zn;3@Wa=ERotx~yMW*Ax!cv%)TO)(7JvaD{`84Ua|oW${BxnyYIIgrG>q7>_OqS2&V zZLZss`U7b54Mc; zbu4HXrv2h_jH84`OBEg42!&+;2|&d#y-+Z5+$Kqv{2 z!Kq|Lr>Z8S*__c6EKlqVWp}LlagAVcx>Dw3O4L|I7xb3Ya#Y9H{m2aCPL%X#tDwL` zQHD|th$fIW#yX|SfK&orkE-pN;V$eD9Z6JCWAR3XYFD|wCJYTZvb1T}n0wYD=&m9U z&BH>GC8;XI)_9>I%WX~TH5!9p*rfre6?-xICt6GodwC+@vvF z*puZTIi9Xio+=dBQmI0eWs24~&Jd-Rnl5V&+MQ8<5Qoun#)B$ihFmaJ!md-jChxW6 zVXrpw%xTa|rr~n=0Pz4-00Y1V@Bl^ta|}=_NkB~lc`k~l5(zp39UlAbGGkX}M< z2DuXQ>uB6Uu?r``vmgpkm9V;2G8qMcK#35SFSW!eipcoKJvuLHb zhr+F9Z$4*x-G?&9V?j~mdR=Qab%wTBy2~@3zyu;ak*K6vMk;|!67?A5^C%M2<7c1C z|9kQS?_b`R;r!pfzm=MI_I55@dF+cD_b;5edp4InkC2+Z_0+xJzI@@8@35C%ymrw0 z!MX7X>_776{*Ra5e*N0^)u;dZ_WJ#cZ|oj^c<1wtFxKzx&OT+dqxY-AJQuP9I#{yOPhB^4i`iy8!?3Nbt?lh?qFgR>94kqprYVL|wJfvQY<4=`em_c*ah5HXOO6Fm09DzkR!j9d z)v(!?D|CFd*VhNJHA>y-ERYziBJ7w7;Z!Kkpt}}#+?3)@Wz;vbVQZcRt3@J{pfk`A z!PBswiN!8H>6Mlv63tn()X|BDP*Mg^0dx#AaoizEkER1bI9AnRtu}F-N8K)pW0EVC zMS@i+L8oPtsW_bB36?K4L!~{?f{`9&HHs%$xh!amV(?W{GFxh^t9K(aN}VKYr}N%) z72_h5G$3j~*+6?3-zDTeU5!OEt+-PwSa=CKR+*B)lMR`1D?-nZ29}mKjY-Fvh0R6W zS*0PGC3uOanF`0(M5&=^u3`9%M&EVgZa0mh>3Ff8H;nINAMoeugwPw{| z-WV*r@v=WZnXJ$bgX26w$W&QlSVIsjMQ!Q%GQ01#hrNE5q|2!Yx`J66?&y?PXM9@> zTiU>{4MS%V`}0Y%Ts}e~Kn1`8@Bl)9A;1g+luMP6ZJ{tg*+iwm+KZBOn6#$eD)({MgdQO+W3z}Y*ZN2md%N3@v< z-l7^V8-rD6bP`R`WI>mJr!bktt0Gm`IJ>5JPCaNlgRq?@;XF&wa>^?TiU4JRP@Y9A z$2}F{w;yl`_&P_vSCCp5tL>J+NL!zAH2IqQi*Am;)Ug?$I!?E4uaIxm$V5giC z#)(magmPjE!3D|a38@}44^_@B;3)w+mxmj4HR3(wA!yJtfB$d}3lEmP{r|GR3ltAaIHzX_}hP=gZ}4z3w!dJHFo^49FBPH1J$llA_sc zLeHfNMY>$!YjwHdYAvtW=~^s-iF8=yVuqM76}+mETY1(ki>O~u?|q+N>+T5;4%p@EDJOoW=6rZ4FJgpL-A#MtyVq9>Fn(E`+Wp)74R}f)*@^pF0_bD zhb?p^tEV^m=FXtrJ818tFcFDRu~<5h6o`~U(;CMYVDH3bQq91OcNr8 zoG`OQCCAtWp;5_f+eX{1^xDnAU=J|>B7g>90@wiC09_1F0G>rT4cQj*+dK{`2_*)c zH26Fq0gxI)MG{#&a%i%tb{~%dmB7-eh{Pna0-4KjrjfNuM#C<7O}pne(V#CT-tF7dr&p#<9y=V8)uX@N9e(lezzfXHF3fy&_QL!B1D&kE9smFU literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_1_2.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f38996ad01c9d2a67cf75b7dff1045546c164228 GIT binary patch literal 1017 zcmX9-acJXo6nCgMw~g8u}q5u$w}0L<;WlLEL@Sm z^`Lm=4BAOgD_12*(cl#s7_omu$RAbf8E|6NAVter@x(BCus??Wj2wLLJ-&b5_rdqx zYnvOwk%hY#0N}{_6RTVCB;&d(nTY%LnVb6n3D`Wfy%y7{sj2Dd=|mziGcz+gJ3BWw zhhbPUnVg@W&*XABnx=T3lVwrU6vNOfl}e-0>U3P+-wVTNGNCEpSdhd;MM)Qnc&SWP zYiy$_wL5CpGx|YoII?*X%d?BRm@)IXr4cQI-mUOnBj4}nVXrz4?Sse{vY?Vs;=q!z zwvKtV)S#W7^s{J8p^1tPErk3WfCQjon4U_R*{nqnHp}ixQm;@LnC6XE3wd6aPUpA` zCE=_}2s)WJY0YAdCSP&HdRMmlsv8z?CQAu9RwhM_QFLCfO4XLya&#L7#KYZy@{lt?0P?CQYO_nZPzWCSwRrlm707 zjkk$#$GhD7c;}xdJ6k7|=kC0?d20EQ<)@Nw?Jk^MzrL|dSB3L~XTLsH_~qBpqs+OT z)3_8$abc?_c?3w(!AcPyg}FzbB&yez@8C=y~=}wuVRVQhzHy+t=P(i5&y1 NuWhVeef;$K{{ZzDwBY~% literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_1_3.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae89debb236c6560574ccfca3f9ca6e6161b862 GIT binary patch literal 917 zcmX9-L5SmI82x5CGwE#IEkh3hBjnIS4ne{amK<`3Yi8+=k;$@I=^+eZ0$ihxfiu z?woe6UU~is09-w}eSEjNN7XdywQ4{9@5>tiHMsNYy;~LC+1c6M-L2JXdwYBP`}+q6 z2N;Ic>-EFKL%iK?vn(Tuf}%*eu3DBk7z})WJe|gAdXeYlX2UWd@E}VKRc-ZpWZ!0n zF7F5OWU9>)YmvFDbtuwUmv5L7?sQ2{r^Xh0J`fYXyO^5!d|2e+woE$&Xf*T%@Dyxf zVu{;aPFkA&7nLTYvb6AGbhbQSut5{lcoSI z1#kmM8z>Ls#&~B+sfl1_U3X=LrI(^}nQrME(eKc1m!Ih3%u=#}zVxkiG$<2)n?-1y zHd`D;cUjI5#J-}qx*qiVQ`b$#<1CI>7Z+t&A|Onle2kqm#TlV2Xk#S~*J@bwXQg+s znHHDJEo#usCWqr4vaQgJ&hwTe54B3np1Py?WSXbhW+i|oVV2T#G}7zQfh|NsWfmCo z$XO;qu}n9cCrAM30$2bZKm;%cSYv=H$Re^W6on{X$`qI^j0A`~kjsD+Kqih{7KJj3 zduTC4c?eH~=RgvnD`Pz!clz|m>r6s@HXCGFR1_Jiya)qWyCHbE9Fkg0nK|#3YP9Lk zw*KNWUZG`4wSXhB4%1WxvZt`NA$d+O967USl%-LTr)aa{BnicUazLocVp!Qd12M3J z^_mO(XRsCvQB{>*Pq%H8Wd4FBpZ>su zyQd1g^v7>+S42EHzIm_y@b%AbUW4oP-G7mD^w<6C!K3f2cR&2$WA~c}(ebC^PyhV# zvvzd*i}xD%Ykz+9=&LjBg&RM9{r$stetrM!_uzxipL^x4Yj1pORB~`~>-6~X%Wt0j E4~~Y06#xJL literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_1_4.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae7c6430c8637aea79895a430ba2fd7187a1275 GIT binary patch literal 961 zcmXAoL5SmY6vp37XC|GkYs3l_gJiI1z@P!c5|$jIrfYVHPR7kb7b;}gu=Y?S4p}Hm z-HlqM3=tyK-5x6R5U@hf9)=}qksvu#>>-Du-Q65|DA>assvEK39R6ll_;~Mqm-jn- z?;Y;%NoUVIcLo5??p`ciO8d^~oXw;a-TnGifDG)vefdIa*Vfk7*Vi+d%*MvX=H}+s z))t0g*=%-ud%I997Fm`NML|_%U9Xs?(QGz5o!(&Jhv6iSmr24hAn>5bxk@EptC95v z)3W(aSLqM5VPK9Udp37P8Y}ZTLoQfl($T4&$sRSupi>?XjCj;q#O`VtN(5*$)CF)< ztZ!g}jZgdeWK5t1gAxs$I0%JB00lt9FayUef^aCx<@qB;8C9!O%R27$P!JGoz9JD#q#il2>hpIc){J2VT1S1uBm6mm`Vu(gdY4x<8Z}^cF#_ed)pREF1 zfV>KYDv%AJ9E|G~qybe41S2ZjGt*rP&3SEAFB` zTso6vusE5nP>#lNu27K3qDnJ5&zrK+($Zy(f!!YU2XPoBGXXRiGgaKuNT)`38-mwT zhu!MPv!+3JF%6UC7zqGn029Cg@Bl^ta|}=_MMMn~c`k~l3IzrWZ2^1Uhs`MR7K;d_ETRf*BPTco#U(YLGGg9Y zR=lJ>Ty@4L{tQi*R311IlNh`rkTsQURAtAixovCcwWH8m#34#%oGc?BPz(sAS+r8z zV-d|pcRuI3oyRiAW3f_EYc;*mFj%I^F&%;RL^hC_i9#>RMWm6)qEMGbzJMY*J$~+$ z+~21^aO2XR3a|fp|NYb$yQMcSKYQoam+wCL@y-+CkLc$05ANX87vH+}*{w(a{q*@C z|4z8<&fz9|?WNm4{JinZ3&(T%x0j!i?p*4vE`|p%eH0)m3D}Ddw)ldHi DRK}S( literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_1_5.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_1_5.png new file mode 100644 index 0000000000000000000000000000000000000000..057d4182f22fcedbcafccb54f18b45ab84477aa9 GIT binary patch literal 965 zcmXAoQHa}g9LImX-d%dT%{&zCVT7PXq6?abpm_)qXRc&N>qEhaWd>I8WI+OpkcU3>A;Kx$h+43)3I`VHLy>#l+&z zo12>$h7}5ht*xz6xm;#hMid2Am36&lS!T1@>~{OZVGzehX}VZ0Sq20i6nVQ=D;fsb zu$fky@Aj0zPzxh#oV2GiPo%LbzirATr%Jjy)wkHgrWkdrl4R0?)Om?5p1z6 zlo*BNHA*t+s>A9oZ}r5cFLy%K8*4#YCpm(V%DhU;I#)AAv!%59T0by@#EH{RG9OG= z5iUScg;E_z8z>j!`Xy;d)gr-6s_m)eE!-F#Ds)ljh=xSBtNcJ0LrYDX`lM^k{N^I+ zt`Z;3V!X&vbd}}mg4j^iwyyUYjbXbT_4`Q>OplHhivTtRN)lOCX-4OHOIBK1w#**3JEOrcjg#e608Pd$6?Zh!HRzr# z_$@W;)knTFiF)%%yj&h50iX(C0k{A@zzAT50m`I^$hMI0p>(29V6xB=Adnzc0I7h? z5^A%^Q&3=_aSNp$JOa;wEJ9Vm487zu=#DE5JUtAXN#f7v3CgmFI~m;e3M z8}B*~E?06p73txRdj5Fu%4^^CjrX7VV(b2udpGa>{OO0dd;8Y+{}irgGywK0`@47E HxODA**7}-x literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_2_1.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..23e0c00d96f50bb1c43241a534481f1b14465edd GIT binary patch literal 1011 zcmX9-Ux?du9RJ?+?s9*&1?)r7fO+UcJcC3HGY?U6Gq=@S)y0V~8ATpx-=mr0ch z0pqNrVsssJQb&boz=O38|fWs>*zD}=+}vC$oldhXBZ`8eNV=XiO~bbBYPH^M`kl^J7>>qcmH~kWSz5?ulleSZ zC^DroU#-cFrq*hky`Vf8x+0CK{DL8+ER}S0s&2A3Y_VNcdrc$kmZH$z8+9@SXfzZA za1^XzVC^#AZzRV(0!0iOYiQp=sFMbe0W=IVaNHsYhoW4bzah)rT&{0fJM}thw+S|x z7E+8%@*0&fXw_nMhc|1Y?MaoE;`TH@%#j?yWYWAsOFEY|M582^>RR15{J`pjl^|*i z_S(1rNd;0lAd5gb7*|hanpCze7=cS{Qim?q`Y!OP2&JD!U zFzZHz*2vi!H>3Uj9$KJroJ*xLWLlvao##zSE@|x zQUDn#RA!MYBR`LNB^0`F5IhHx2&#aCU?1YQ&cDE1<9z!nz-CndY2 z=2J$OF0}Tly?uXx`Xed{9EoKZJS&iSg)QbJ$I81EtL0UKju(X;G#+r0gnU3D zAQWd&itQeNu#2_fkgHW6!0h$JY*xwV^zLr-Q7MHi!WA|kDY$((~F;kN9-pLiDNX7c3*z`YU0(~k58Pr z`1ASu>(3AyUmkjTY5mTn($aUIA0^NK_1cABf6}&RmTuktu#3;F|M302Z`1QP&;EFC zs{EGp=8;A9)Od=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_2_3.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..df891c1802030b22cb591e6140d6af8134cb84d9 GIT binary patch literal 906 zcmX9-F^Jn{82#>ick-P{MRBP@MJtF?G>D>r1{E}@JzY=_mD6!b(V#&Gf_U&CiW)q4 z5UmGOe4xRD38rXJ!GjXBy>i_*zK@cGsI!Bj9u!(Ef|I?SXeh6630wCAC_ zN+!iB-EQ9?5kLoU06c&YU=Fas098;W)N@c6pnRp$U~@1MA(A0i0cn720u4D7s3_{7 z#Q^02ybqoSMFL&LIu_w}nUN^^|(_a>VS zKN)|3vsg%mp>;Y|uV-^?pJ&G+7fM{BuuGLG^cFHH=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_2_5.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_2_5.png new file mode 100644 index 0000000000000000000000000000000000000000..37c392fbfc4c5c234450e7a72f4c1fafb30a4e2d GIT binary patch literal 940 zcmXAoL5SmY6vp37XC|F3L(n1-bBIe9a|jYKha4hg-OLh8mdUVL$!HD{f|j*H4pDO` z8n9xKA`vQ-rH6_+6bxEqT!I#f5Tu6)S?EfIs67;{xQ8M|ip=3}mWA)V$9H+Z!}s3D zrzi5!rKc_dz)}6B}yKsWFpP+Mjw5)B-`_3|KujBqU3(+#c zt31u<9N!QnSJS$dHE`W=w;Ky7TExTSAnN6nZ*r}YHD1oq4-`i=y{W{mnGpUPtaz;D+-DL<$zF;MW?_$64`DI zmP>xne+iIkwHSeUS?#E>_r?%B=JnGAZQIXuzRJM43_?KmTmypNBv2 z_RSLwuKxM!8-;nbe*EIC@}1W|Q6B&C>9X`4dhh7q?6Yt0a=%3PE>q7LKY#Sto!j1( z-#`5AFIzn;|952+xc{ELTz9|vLAp`D`^V?Yciwto=Zh3>fBO9WpWaXJed*1fl&}8% bN|m_gzWK!IGxYZb1?tyNj=#S4+6VswkerYv literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_3_1.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..08a1d546c6cc2d2e504b1979f2218941851f4547 GIT binary patch literal 992 zcmX9-QHa}g9RA()?$W!m3s^?n@(^9s2vH&gi4rlJxg#Et%UlkM6pRp9!J>J{u->Xf z*M}-$My<189x4P@A+Un?5HM(mVf3MlD5q46(m~OJCsZlpgj4?Z7<};izL($kgYWyj ze|}p&v37b508VT@zj0wcxnrKq95ej-Er1N1e_>~HE*BOS78e&YnatAC((>~1%E}6c zVcBeUb#;{}6bc;2N|LB)ieZ#2%dFSytya6+4dZw}O{cRN$ATz;s^m(ge5FEFYiz?2 zTAteJ>QT=cB+h8;OAJ;Na;8GqManhkw#Dt$rCzHz=$dK2F-iTyX)KeVGf)-5)v%6< z^&EWI$gyOd1%`Q?KbN5NG@Lx309>9 zot90eXmf@uSe{f5lxC#)13gU36i>2pLC_e*;7g`tHq=I2Z--`>*m2rSCY{k?4;LY? z0Z|632DFRuZ9?wSrJiUeMQ3FBQ#VF?Dw8*OvMMu9QRo;_WNAs=7`Ci&P@nc%he?3O zF`nmXrpWPSQL1X1V;Ekw+I5^>yPbsLXn%h?ogyGjpj#N%!KH}Q226P*HO3`>QjMnW z{;WGW8Xlq?gX26w$W%dNSVIsjMQ!NwWwox;?033poXkcd=n7_OxUExeh4E@)(9j~U z+z;$w&zlV6+3Wy`07U=`zy$~Z`T%1L&>X6SY8DE7lnzxIOb(hNgfgTmAPta7AcsS~ zioyySG*Ifpaqv7S5)@UeVi0zfX}WU9H=?MXB*A2opt%=W2CkM9T|)IKJ*3T4aHpkU zR*eo@gQIYShEqBZJcY?DUJ|K_#?{J-YghcH9R4Pa{{GX&x%gmf734@Y*MR;+Hc&o_&J5_0Ho4y-Q h@_*>&r#sJveCMBEPx{xQcjuSE*5>xcjptsu@;`IQsH^}0 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_3_2.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc0ac105858ad4b7c9558045d0dbfad31144aa3 GIT binary patch literal 957 zcmXAoL1^1{6vkiTq)Os7Vz}T@9aJz(EMn*&Ivq67Hl?URB??i%2f?%=hzHuxL1W$! zLu<|I1;cbO!%%M+s(}w0^C2)%%+NM%giQw>GH{s=h8pUPLd5VPhd}>RDSYoezRUX^ zzW0vycBRW3S2qCQ^3Kie{bF7#YIChr^iP-1J_jhl-mQZhgB<)ORzDQ$rzHG@=w@!KnHL%&^mKgQw$;ir1+Vjjm&tr)Iorb0W zo{9}EEb8EsVP%mJXwIO8jxIce;u?SgpktVY<1RsX6y@{$v7($b8WY!jIvAiRBG^hz zs4@!4>y%{Cb(b|f-tLR7K<z%3X=U$AC6}n<@L{p+Wb$)1wV_QvI#-wM@f>s{& z&eH(RV!Xmpbe-iIg4k5mj$!nh%~7Wl4F+i#PESwsJV!uSK=m+oh>K%FP3Xo{Y|k`* z-W=!N>0&g$n4F_BjpJOkDv>pnW(=OUWu>hb%bZcCdomnlak`iapv#!8;;v45Cf#?0 zpskMkjg!EgME&_BUM!v>0iX_G19$)dzzM(%15`*6kz=F4N7+Q7z+#~*Kqx_`08#;2 zRn%dTub|LGNgHK8JP)1&S%kWRnMT!Z(p^s)`o?(NO4DFIPf@`l8o)Yb!K*4hsfU!6 z@m{V4i{|*emt2HXG|8z7a3m%%xF(RM$~q0%b4|bNj)QI*2lFgOizz3|Cmj zz5L(vANXj0SB1BpJUT3lxwHND!7E>Xmj1H&^R>0o-ZSKIcOKvV{ox1Ly(3Ehdu!=m zkN8!)efHI>)b?)anf>PBRq4rJhoAgr?mhT$^W&GV-(&8>^~aC?$p3k`e>W+A$G`vm xl?Pj2s`(rDH(pATAHVqXC;ZmI9qZe7&$fTOnMX?3v7gBZM7gJTQ_`bDnr7i>Qi&MnQuI zSH}7V7PbnLelZ>6XilS4L#Hl6Q5ir2&@jv>6l@%KNz&uE14$ayY7^T&?)6X@;!Ls3 zmuQLLG_q%EEFfKs?UkwnQVn?{R$5cjTeuNAkf@^0;*BcRQnwN177GNp0b~bb`UPQ#%VVlG6`C{E zn>U6F_b46APbViRPZbJmsZ=G(GDYhgXNpo&%a&P#R(sSRBvG7BdC)}6lnb^-xOJ*) z@qSYtc55Two`l``Budj`!~-Y*CV&gz1B?J>7@$m&fGiXF9!e$>2?hgg9)c<)5+E6n zQ9>;Sc@hfhXxv1J2M>d1K@>odu)1Ed8&un^_C0+#bmG{b&tsIa@ER~yo_9-5NZ&IIkefi$C`~2>+UwwnAFMNLC;&K14 zcMpI1byN9w@8;_DgUdG_{QT{WzrWkR*FL;eF)H~_wBK$oznVc|`_fM3$BVCh`ae&~ BnlbA+O!%}`z3g3H=@AAG6 zzV|-4wo^TQ>g7`aaC-a7)^0Y>WmPOJXZ`-Iw{`%Q;o8;fmovJww3N%`mY0`TR#x)) z{Oal|hGB(5VQp=#R4$iUmJvlkQ6ybgP19(#TCUq44ud#8O4Ipb!7?E5AWQ42T5L4P zrp2^7yxWrpLoJNVQPP=AJ(0$0{JJ5P>>BClRNrI|T4LnZMnfY#Y|m2fcpg^?&}e81 z;3(L@z@iR59uyZN0?in-(9ns4P+SI(0W=IVaNH&choU^5Kal0adVOr$kNbTTMFd+c z3nfM-d5x+Xbj@aUhc|m-%a^*L;*GQ*t&<$VRLi_VOFE|-qS2PyeXSoDL1M>gH<=A4 z#}O_-QGrq&NDC+jCK%O9msT1=ZI#N?$r2!E{3L(wDhrSPW{$A za*q=qO=G;sQFM*v>Vnu*l#Z_Vn$2OS6ZQK^5KNAa=JPoM!T`#}*a0qvgfgP*6R|y2 zy;(DyJ4cJ*>|}h5)@dB)N~J1UR%k}&c~g?xTDHs@cDjdyVHziki2#~}nF?-eq|=~# zmf*LQuvb6y?QztbjpN1QF%kf3049I~-~${2Off(iWD!{=@;#J}WeN-yx&j1MNM%3@ zAftpjEb?R&G|;GxQV*U5&w(UDO~x8}$!^kJr#kTTFl;4>Kbs{e(<17?TI+&Sl08xj zC?n;ax#};P;jue92_|Sfr;5OlSe3z5fov$ORhJyQ;dSlM?~_bTt6x$)^Qk2W^mQH7PQyR$dGdG(Qe=ffYa?(<)M z_i*j2jollS&At5JgJi|;?lo!Q*yo>(7~ QnF-jwytDQ7n>X+N4*&<3VgLXD literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_3_5.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_3_5.png new file mode 100644 index 0000000000000000000000000000000000000000..5e60d088ea64a2dc96cb586a04fbfd8401747c49 GIT binary patch literal 1005 zcmX9-QHa}g82|2ixAg9qb*rvoggDBKklTvpA!;1i%*}dcT;_66SinpI_Mr~}vr)aG zLGw^%(dde+8YEyID#Tg!m|+wQ(rxFg5Lv-`gi)cma_pgw4oFMc2A~7>FGdnxG zYu7Fe!;;D5+}vCyo6XX6j^{Z^5>!>zbO>{ zm0Y#PHf*ukQrdyu4Qqp;%Tri^UC@M#Q6MapbaZ;%L_xz$DKS53I$~j zED39BSWrv#o9RgxN245?C}_t*sFMW{0Tc|=QYiz+Es}Iuc3l)Vip9QR+;$uk1UQ|} za+#b+unL*isDeSO7OUI5=?V3=!Ukc&#c{9mVlAKQuZ~JsdR$ z+d+zhv;>(V5EURTjBzsg7AXgu78Ys)-5pyUv@TLkedw9v zps^i#XxK@m8Imf{Op)Wul2lVwyIgM7YJuZ~zCY;o#^W&pTm!O!(ajX!#-%P*9Prhl z?2gLqvDKTjMmzm&v_Pd&OeT{jvJ#b3SymUssuC}&v}*N@W-IE1lK}^cfay}oPzb9; z*%i*KN^QHi;TiqF9`!qu$!){|6aaJp3%~=|02pF`Vu(Dd=*V+X)E7z6XsC1G=OGdS zNr1Ers?o?5kzYdHDvDgV7d!(34+Rk`sTre8)vbKfRoiVd4874PM6niL1iG@oSsBqK z6ra>0)*8#+q}<+aba(s#>W|4ZFa(y*rDTpMNpz(sSVqaM8*Q&1cDzy4L6ZR^2*?K% z0YY&W)mZL6aI<0$hm760553#vWmzhf)JjF8b0(8(aJ0wMfspHo)Tod}3V{p~*);Mw z6bkY2GY1#$-1~tuCs!mma_f)RV`48a9bJ9$;}7b~`BZSE z?(Vr>KYz#h=+qSq<|Chdy>$BFYw|N^ql3?TS8hJ>;-4R`1@C-*_7iTCyx|=3|N1Ys3CqV;mcDu6 H^n3pUgD$af literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_4_1.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad2c7477292502301d0b8558ac7fe47e6383043 GIT binary patch literal 1035 zcmX9-QHa}g82|2ice&eb7VJZ1brz{CLX^s~E#8F@HFv}#dKs6EJQS8eJo`{IH#1i- zY++YMnN^~eqe9&JP@ziDJRB_3P9k=CVjqG#jt(LgEn4Rds#nIH9{4w7@cX`x-^=&o z$M5?tAD`#;?b*Kv0QSwjII|GW$HIDiJQDVQzS;Z(AOgosxQG%z#>{A4B* z%jJ@JJzXr(6-%f)a>LVFeyP)~u>>a3lPVuKq@=0fRgGLNuwF%KIcl(0>;<*$ev?ap zOhBFiQ^e{j=9QxDdTh{2pk5jcWVCA{)Jy>g05XQD(WsF~m^fae=~Y2k%Vyh#v01Gm z&r6W86cbMiNm|A^m5>ZlF=@?W3pQVFh_#mN2H7N)NOLJ#BzT3&sH|EPidDJls;+M| zgRk8Y@M8BZ4 zD_Yks^u5ZqZ=-HA8l!MRBB?CH=0&ljC{{l2luBN;>bq`deZAlBBS@%#S1__3Wg7{x zMPxf{v74#&@{PW^K5%-w?QJwkM59zZ&LvYKkydD0LM41ffn0hjd7^A`^_tRX6nx+A^?Vd+C9**3 zlZ+V`YDw9})qpnp8GDd#Y*$*lZU?pdcnqi{#-*bfCYcjSJhQ>fhC4jWfl;B0b|=`t`u68R_gJ zJ0Hg0KKJa!ljjfre8+n0;^OJc`gfUo`#<{h?p}tvdiUVHBa8gI(zTFCb%jicgL m?rZp=-dDPGA|fAD-q&Q=iqQ?0_JAtXFh-7^z#42VaBxp literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_4_2.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1b922dc301222d713124c37d3f94022d3dcddd GIT binary patch literal 1014 zcmX9-QHa}g82|2icj>Jhl@%Af%ED1uWKl8+BVu6L%4YDV8kdl=pf*s9R{peyn+W7$-{Bn!{3a-@B2P}FW>J6 zzwi5WZ8bZ0Z2lMk%q?G9T#x4Qs7}UXQ9tp^_a^~ju(opfVninnjmqsHRg$g<{5%Mws5`cnXS~6**(soGLnj^_A=7u5Yx zdvM?;c}U5C7l0@OX<}>(&vwYX%WHnFHqfoH>7jcPl~UPsDNEIITw4{oy6jifenTJH zm9g76@NG2ok|~y?atvGGg_11SRJBv!ip+xl&HFyZCh%$Tk(B+H1biTl`a5NPVgo! zS%l({TELm(yd9Rh2aVp5GeG?@nF5x;vUD=f6GfRR7ev!2T6Lpq*L}|(1s)0qtSBM} zPyh%;SyUsrCrDSy&Eb%3Hl9H5^@Mz0E*8~tS!3u5OE-AN78qBgcO`0+%OHh728o&s za(Lv6(ebk{CjNW;12@)JWjMe0Xfq;P%ZnE-KY#Px*O!lbXW~ONp1bs8z32%O^9&TSC&aQp+<=Jl(*>bQ? literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_4_3.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..251476d3532a8d2dc3c050cb22b09314a37e9ff8 GIT binary patch literal 860 zcmX9-F^HpR6n-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/medium_turn_right_gentle_up_4_4.png b/resources/g2/track/alpine/medium_turn_right_gentle_up_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c25e465aed06c4de36869b357f31cb6e68f74525 GIT binary patch literal 1079 zcmX9-e~8<36n}TUyWEeB4ypz(csZ>Qxu|tSi4rw)xml0sWn9LJ)-9)TD^f9NJo-n$ z=<28=NTyYbt+SIb3s$Uf+=^t-!{VxR5~N^HB2?*Sk)fTd+kvNk?HGLCdwl+RA3l8E zJGOT*ynS+d5&*U@JT|{Hm^%h_=eTdsqwjrl6u<|2AK$lUK!=8ghKGlJKHtd5$mrcwH6>KDkw#hb>gld$Z}w_o0u&k& zJXkVT)Uc}QZxsXm27$UE)K}1!g-|UBAOR>CruqE_L0A-JbKI&V)nl=iVO%T}P_;@h zfgq2EB$898utrA=MzuISFQiIh#*yuYQt@IWON7EfPNqebjcS6HmeK{KP|+%`QS&lx zx7gmS`gsV*fX9GL0%c)r0S}j{XqDI8h}qWdo>fDu5*<)kA`zy|2v<}EN0;4{+REyk zQmR+YZn`DZsrdseMMoGm#tR8qHdQsBNR&;pS}3@cO1s(Y^?C>h4X7-}6#arj$PGHy z7Sf%l-Ay<>tJyDiw_2NMiuU_i91oL0nGUHOr;Acr87xbd%}l*m_G)gw&4VIhy6iU; z(u&jhBwtF)PCiyI8Leu*+p6{Z7ZDE-0nh;~fD%9*po0M#KoU?=MtGDsj|EBhQ9w!LuL=5RtIBiW>NqLaEp@vt8fXzQV3Je3 zg-bT6R4C2ktX{O#PdJ;|##W_`T0JTNEQy6f{wPnzWhNODEhBDc45yTFYo)GNL;W@@ zil_p}1B3=yqz7`>L8OxTPKV8BuS0J%glJTb$JJy~V?rr5l;xR{z*NOhQ=+?(AW}$V zP$Z zescA@nd4tvlDV_J;xxp83Ujo77aCv(T{8@+N{Gj}F; z(9NBH=CcDI&9fgY9}I+Uet-S@8=ASbA6G6U-%^KPnqD?PJ~g9GypF9;ULBwNW$c9W z=`j1HleuN%*^?{g?}uOLpL@c0=Cw@jh~~xa8J+(5?x+4e>b-pW^lxilt@vke5)wPn dwh!;m{|9rFa_Xm;F*h&_3wsvlKi|E4SQL4;Ey1PtB4;NqxS@Mp&0dEb}k%lq)~ zyzkn=JU=otHUt18vqz^FJM&9-s#nUOYC_py?uRs z{r&wIh7Al13=R%@1AzcVksQZLk|4_=RaFv+L^_=<6pEI$?KrJ=n<9Z_Koo{UA$K(D zkHyKP&ZIM9t`IJj)vB%68zx6!L1tJHyjsw2$aq$zHWOSq9jq1%IRG@j~bTCP2)t6q9ZI9lO$c1GqG4f*UQdf+eO2K%SC&=ygwijq|7j?AST0|W$}WZs^kieWw+}rgau5M zTw2&~M2SqC%_pT&CQ`|3wQ{Cev)b+3hy@4&r~n2)9-soyzyNh1awx8%yosEeh=W2w ziiIK%jtEEsqu~DS_^jr?ZrZ+t7?}DRy=$&c ze0u8I1K*Dwc;_Iwd}r`hjGg@F@Jo|p7r(8(zH?}Ydho5GJICMKxBl=GqoWr*AHMO? z%dngoUp-M@yKwQZE%%M7p_#kmk3KTHww1z{-d^?3ZauUyacbn*<10VDf0TJ_#rfpy z>03MJ{#e}ig`SSOtA0Lp=IY7Q T6Z_{n{$O@ye){s%iPirBy1&JX literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/preview_support.png b/resources/g2/track/alpine/preview_support.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5c8638923994aeca7394ef975f442da0f3b531 GIT binary patch literal 7110 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_1.png b/resources/g2/track/alpine/right_bank_to_gentle_up_1.png new file mode 100644 index 0000000000000000000000000000000000000000..497ac705fb97e23c24b994d136526cf7d46f17b5 GIT binary patch literal 1049 zcmX9-e~8<36n}TUyWEc*73)@57#%B^aq);FbD0a6x!mZTnU`}JR46QCfmK&rlx$Wl z8nhe5l^LZ-(W)H;?O4!`J27xUiuRz>a)fbW#r#pBdQ}G2Th&8O{F*WNy!ZJ0^FDm| zy!Yn9d~9-j=QsdN&dtso_veFt?HUdEedFZscK`ygaO}iUpAHNR3=R$k0)e5Sq2b}- zk&zJ$!$wC($HvCO(P)&WDW2yfNl=u8rm5L%wpc7zt9HG<=6St-pQeCgK@=tuiBKvP zNoS~Bo-LNdN>z4hTGP$9J0?$Jadtu#!g@SnC`4JKm$H1V7;jcpuaWC|=4P)R!$Bq? z&4D3d6&0)HgRM%a-^5XuLVX!+83@&*03v{lVQMg_H6(*8P#ey z9g1>cN{p~F5mU*yPAdkhmH4bB6dcKH%C?t`FgO*9vJxpMOhV<=oR}-iWm~mfz3vs< zZl%3h3vv*WAe@9q1_%RV%Hdd*NYpshjpy5%*)!^BNhCuGgQsI;KF(GY-q9pCtF($* z$IA9<#ZA{joq90D5M-QYk{q9wq`ab((&=hGUn`eg+itI|^?E%7xC%rOqbot)!KEgd zZ1cHJ!tADssBei+n9S33O(H zGs2=7k!?ctSfiJ)`e|pg*xa()sMRAvz(lYZ6-;oEltgEef}y9(g6>!aw{CU4I_kF> zK|nSj4-oRR$oX>jfM+wMPKPNK??G!e`9wlWrIbuYrKv1K6*=1C>6$>TiDWk(MREk` z1S-+U=8!A+$InbpY~1~U^T+2UIK2MD8J{%fW*$Fr@XDpazWY~pZwvf`GQArQeSGk} zxfdo6Jon<~U+hl(MeGM^`=in~KYhLP=FjWjet0_e&Vkd~)x~SQ!(+2}X6oX~Gsj-v zcjgv(X!?~Wep}u%`^c5AR?B-nxa2JC`2Oh!9?RZX{K$ED`p@Z+mGx(D;>(zNo&9C; z`HN>S|Itua&%N(n;HRdphYt-@M)n{1?$?v|y|p~f|M=SK%bzTd*=P4|y}kXymn(sH z-KU=17~WMjm*u_kwO8+0J3hUoT)phH{?q>+`WIg6ZmXU@HF?gr1an8{XFfY}>W%*a DdC$fq literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_2.png b/resources/g2/track/alpine/right_bank_to_gentle_up_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a03245e32c59c22d9c9c166d5a8ee0358cf6d4 GIT binary patch literal 999 zcmX9-Z;0D;7=G_>?(c&3xPsm6T*1h~3?qXeL89hHJffGeY;+JLLcrpR2F#>F(V%sf z5i#6#TBO4cf^;Kd#rqJXAA$sTU_WHri9N}%NWrS-s3YPDC;ZG9Jn#GRe0iT2p69)E zYE4+2dt?p(7FVBNIi1YMlR7Xnk@O1(KidMBfKxA=IhoM0v9a;-@rj9v$;rv7sj2Dd zX$-?=W@ct*XVbY{j;1M|=VV#bG{rFVN~Kb-H`{G52)3hW6vs3L91D^-uPCWvFk*y`{3 zI0q>i(gnztfv_>AnHJiF;&XbKxB7-NvIDd!ktvPIlmybsvn`G97;;$AdUa#qRz`k( zFLco$z*7uC=4qzD@g-TdG_6r8wJpnUHbc+rZ*PxABLo>8h&o2MaK4j~yJVryR|kqS zEOkcqcHAEB_x8{{iQ`NO;0N4O7K$3(31}K5Vqq2cq2Sq)J0G);!2c7_t1V{#? zr;$Y?M?zi^b*m_H;J)z;h&<#atf-~U5?Ql_mZNn#l`wRN!w@A}nF7$|dCpEtPFD2@ zJ!0*V;>M-UUcI~T^-*s`q=3m{0);DFwkXr(f@qsXr)GBCS{S&)C_r(a5k=$yiU6U+ zi)teG0GUd;F&Hq7`U4o ze)OT2j@~F=x_+Cjp8xB`^$(Xe&f*`PJ$HEXkESP_=XN$ef4@Ea?uV;KzWsFR*5Z|= zpI*QHl}AngasXfd;^sBut$*Kr^71=#N0{FaT7N!u^V;#2*1Pkt`hj@))f2fJZ|+=I vmaV(59sB#~i{DuC-JjpE?_7zR|H1Mn-~YCID1S9M5LQpFt$g|1%kTXUXo9cq literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_3_1.png b/resources/g2/track/alpine/right_bank_to_gentle_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d445b8e77ee3eeea24b301ed2594fa0ab12097b GIT binary patch literal 943 zcmXAoL8#kw9LIm}weRJ<^=%P)sF*{PA`!C@Mh-dTkZpM*KJt7S%b>;pDI?SPmf)yVUrOqM`{F^cO{(e8cm*3~` z{r&D=JCe?xdFc!QoIQAB|9U=O&1-L`koQN64-oPMmg<Zn&A2hJ?&Eobp+b%F$d8h{1h0R#YJfCUC9mm(tDLV=IcnL>fdLPvm5f>Z&d0x~P8 z%_3hxVFOKCDD~l4@Eph@)D)~?RGcQ=@uY!oj7Dyf1j}WDau!hs)-DNNMe#{Jq|B7} zGA&p&N9*q7G@PSZMwNjhF^R!7fo!O(U6(zl;dh)-&`IK8nZ{@}=VTd$fKosx&!Uy% zo{Mnp-eSS^y3b`zCZeXPjfP>{Cd;@S(-qi2WFwiGD)h2eMLLNb3iVhN3Mi5Da`D{vFYgsD{fFj7{`Qw*`qc~PFaG<@7vG6j z>W_<6>*1&OemT7R)2#>hF8p@*$`3#9eem$k$NyCIr+;6*-}v^y&Fyoa3y+?D^5g6K l7Wex*=N}U%f4=#C;Vt*w!}sp|@mdaogR4jTUthU(_kWMSlZ^lX literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_3_2.png b/resources/g2/track/alpine/right_bank_to_gentle_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e763d9539e38741818d5001ed462aaaf4316811 GIT binary patch literal 908 zcmX9-L5SmI6n-_}+Vbm-oTCbxr_M=0$8C;&Q!nKP{WlT=Y5JN*=|Qr8QI`9Q!yZGtS&JA7{mEyH9Wt+A0uz zpd6rmjGq$SIjtq4ne|3nD=hsK-6~Am;7Pm7jC#V%kQSDjdB!HNc9B;m!9I)7F2&nC z&Gb0FFG{wmjtpaB+w;*VnNG7f-mceWSt1}!paYDX;nIRsS4@8^4R=~t*o)F%SM%a- zvqvok$9aP2QXQ3H4MDJEWvJK7ocU92Z#Wc06Pp&4MjqZg`yDU8-)gwgRuy47jgxV3dkhTh(n=*;sII> zQ69px;CYZG=qcF1AY7Xn``uY+EEZmtMMaUJT8r!h=d?thP(n(NX)_o6Qj02ku@6>v z@fK}Lx(z&qby-{!se#Hlec5*h;n-b7<1CGeJVn)(mt_lc5&=4}7V+Yf)cx&PNcC+}OYR*j#y+Ejpx2bbr+yz}ul{{tqCe**vj literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_4_1.png b/resources/g2/track/alpine/right_bank_to_gentle_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..059dac69e49cae28f052359d0477064939301d1b GIT binary patch literal 990 zcmX9-U#Q!36h8NFdRH%*6c=2C3I!tuts@U%M2z0tOTA{?jAc+=uSAGiq-rJ^6zoIL zD0O5SW|0aNss!vqz@qmdXqlN7R%SQz(1$7!D-@RLrd0#>;mUqy48C&?-^=+v_|7?d ze5bH};P3$eSl@nX^F%TqNa}EEDd{&$zdQ}F1jmn^+)C)e!ouR>;?mO6^78V^%F62M zDu!XHRBCN)jmYJ443ifGUY12wE$O;unr5@v?smO?e-wtZIA-#|b0CT7QYllZWUIA& z-Qt=psnb<@zCH}B$q)kx{$L&edpj;js#*KCx`98^Hay*fj zvYbK{G`eUos?F&w!F0t&Pj-fi7nZXunJ?rxnHE*HqzPJGs<)N4r+IaIag)UX{c`Ybf6Wy8FeY7Xh8I>ig1==cd9aZS*a$u_CrapDenctiT zE}Hi73`@~PhAs0#RhBJPZB?sX%ktap!1E@f(QGzDKx#lWF{XnHJyIUh<%v+AmYk^C zo7tnd8|{zhC{5!yOAv)@PNwrJ$LXR}SCVD5uGJWHx?w+vCp;)3rpvgYWbF#ws_|}J z?zPGT*BJY)XxxwE8;A!e0_XrXfD14Hm|}nuNCK+q$aPRSmMG8|Xz<__Ad~>ffHVSG z400soRnV}GLI-XK&w?mGQNk)JVN~gcUFbM!uV)5<8$|(1w8%0rwKQ)Nl9N?DN((uA zR&wKNZ{8g4dlNLCQ5j&fSRs#>_-sXHYGu(jDo(@bxs9OjMqwYt6IK+F2Pg!Dk}T?p z+#Qf+tu>vpt>zu*!=X?r$(4#)t7%N$Wb;j)aRtT~^CO9liaDfYkwKvrgFGGuVsiZK z!|A_o|G=3OJ2E_R?Z=lAa&CL`$&(MBfA52D@7_F;+W5_%Y(83h=D+n%BKH2fF7BqS z(bZk^*X`X4-<&#q{c-xw_0Fm5_gsB>@Z6Et?UjdqzkFZo=EbA$zIOhr=#gFQhmTKx zboAIkqOoXPy0Y^1y`LU>^VP@jYYYGGpPQP0nU}u&!h7TAGcUe>=*ro_Pu8=kjSHE# l2f@}0CiC4papBgj4`2Cg|NDRbm?yqqduwO&^Nr`<`XA-UuJ`}| literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_4_2.png b/resources/g2/track/alpine/right_bank_to_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..28d21432c8a2483361a52ad11ea894bd5a4cca00 GIT binary patch literal 920 zcmX9-L5SmI82zT5napfmiu4dPhbR@J1c@3Uha9rInY9kl$ue087}yAb>7j=lB2>sB zV2~gc<4~asJ@gQWG?_$6vdFScQLqdMJjhZ_(;A%)*|iz3 z#}9_`c%n~ZYo7L2>p-M2m9Lo+?x>`1P$P@IaK(6_&L?Iz^YSd%Zju%OIt^U`d<7eu zSlp{G$Bkl6pqxR4j;?)#k|ux*pktU>uR8?cQ&hn77qUESx0jA{H5#EfCfG((z!{n3 zb*g33s>2#SZw*B^l=@R8nCns2COLv>HF<@W3{Epe)04fCK8nmJb&{-~=Ht~it_#pm z0B-|n1Lb4f2yaa&Ef&mF?X9d}<0t4srW*!FbX#;!<;R9NwUpE~mIG@Yx|?{gO+&O! z>J5&fRhDZDVpmamhB54RC%s-g8l_RRS}Zo34FbXhYJjohx;Q12Io)1~-dYRt?sVfX zib;OG+@cy?uX8xwBAW`$7(8!DvZt3~_N3RJjVD=>7ApaC3A2>CqmzDz9@;|aDbrzl z7COs#m@ku}xIzMe3Sa^F03pB(V2uGPA&bbiP#B$Tbn2#QnCB@fy@)ojc1`ecIUx0jGBe)aXkpQv zZU^)0XoZ#=ssS8{wV1jlkR64!+mi2eg1$2i`)Ly9S%QicCrKy*lmS9z7G7!h6ohLJ z*K2M#cnWJi7d1`kbPU@zS;pm=U%J*^W+CU zJUvn1)*qK=C3*Y!==S|r&cFTQhiBo1XOc@t|M%hk!&|TZ`F?Kxe&>_DUqAck%lD4v zKjZxegnatOo0o4rI{)cx&3#k(`m4`>oc&f@J-+?&e--cVmmZ&;fB$-^2*-C%j=sC| H!N>mtBjSm< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_diag_1.png b/resources/g2/track/alpine/right_bank_to_gentle_up_diag_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb958c8077fa6e83eb662b1ac977779cdf6a0ee GIT binary patch literal 1054 zcmX9-acCQL6n<^mUc0QzB)DKBWEkiT&vD904|cfQyw0@T?5(|(2tlrJYK9SSa$?p6 zys;CaWN_0=VvU&UF|v7Ta2?(xLc~LYWN<>j2#4g4pxLMrO2jY<{>&JB?>)YM-p9xH z-g~E(V$*wO_5i^2;==sOa2_94VA412moh6U03Vz>dHTeVj*N_qj*j|#zOk{f@$vDA zi3tqDCMPGSrlvyCXq2Kzj$=iUm*s@2D!Q&03Z+WLcATc?_4<8^1eO7T_a_p;R4S6r zkl7qlC<^6@RIRBEH`nf%9D&6dzru&Kc*KzLl1gpqT&)mqR1~kC?Rw^*=fuJw5s+rV z5V5j?)pCJWIoNN6QI|x03GEsPIZ*%sK*BI35YWP51IJB<*%E|$GTG9!?NSNVYGEoE zWkaM8VI(}J5OIx?4Mr_;y2av1TWJGg;TOZwj`Bo#dbBv%e&oj zdr%9o5ELPlgh&Q(1EWi!SOrhiSjCO!+N#+z9JD16L75JxV?-{_lx41}imooV3TnsF zd$q#AwNS?i1ZkXzQ*@H$(xRA?nOLl55-TX0zApAqXpg7ci1xkt_AA}p)&Tj5K!6T~Vv(pwkTS!lypWZK%QBT*zFw|)j@xguAn}+g1~e&R zq=;gMwX$Nhn5f%Z6~F+n0O|l84A2k)hcYU%Oyso$925%jEZ8yd z1VADnC4_PmG6iI(P$P>x6Yd931J6NRz*2HZOA~n`RyO5oRd-#h+jY@UE1U!><7bVK zU`8YxS3Jh(C9HnBIw&-D?KW!l@F36;EJg+rY$PR8nIvy$DKoECt-R}4UC%-NHqG7lTCr>#-m7zAPq-F z3fU}j`Qh=?hy6SEf8foPB@vGO`P(Z)a(i+9_~}FMU;TjJrytwPeTUZZ_Uhj!H#Z+U zbDiFNhjqgS5WQ1-W0XU}Up@psULyUJnmA7}da?eUx6zkTrTPxaS^zF_gh()`!Yu3h{e Dr|ZbX literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_diag_2.png b/resources/g2/track/alpine/right_bank_to_gentle_up_diag_2.png new file mode 100644 index 0000000000000000000000000000000000000000..46b3e0c7de1e7490c0110200bd6b67d9907342ab GIT binary patch literal 9373 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 z

D3Wx)yxe<@wWc;U$fcZewsmV*4kMWbL^WJG&%;b7hEoiHFz52v3)4$}f72SX;- z{;*ET$Uo)eSYQY*j6DJ8bpeNSQxQ7!Rp1cvXL$=K|4NDu7Eji=epvCpYu*fV_1E36 zDd2|v*(D(Gvut7Zs9#3#_TCuuPebH!zq(M)_8v|c^8Ef?P=Cm=|4XtU3JQu2U?^G= ztmr^ySiun`X)h}Sm2{AomO(k76fpL`ll3P$9_L8#vG>B9cOpkhj)q)7Kcf*i`;%j_ zfBNF%j5#C_OrG0dSxK<`1sQ1=L=h&fAP$y>fx$wc-vNUTXZ0TuD}(+YPLzKt{B0Q^ zkNYJfFE8ZP3iRi4^_#Op8vhSJzjN__Xn_pa)gqSl8TConwpx1 zhK81wmX3~&o}QjdSXdYW0U;1@GczO#WsS$PyzB)^r$LyAKYwTTvO zg}9OCi20F>?bQZtUcgoy@PPwFGumt%ZEZBmU^d5k8!u@dL|V5c?GZ_&24Mg&0svcD zS{w^YFfT7rR5U|Lso2P<*~w`zICv>7jZ|C93*iukbAgQbm25?|apD%i5EM}fpMnU@ zL&jB^WwhCrk2vu|c|qF3N@n6n6x14rz(p8Eq}isGNJDzp$A&2&JTiM;b-glEM57 zqvM*h3r89{*C*hBEs_>*#u9AHPjnSe@rUO{m{p}XHRlBn)~3u4Hmt8Nk>CJe0RVUa zAOb)h05k)@G%Y|PHzNeeA5Y55AdL(fi2^tX5C;d!wSf^MfMf=ca9pHl2r0veRPIV@ ziy)0;0EdZ(0!Rd4VMObS;tKW=k0WYlXP~O8LOVP2=I1*}WLvyW0K}gWPUJGm;I}Oo z#f>NtSFQ8beX6z-+xE&QNQ0}Q8~~J`RvW}(4d-_?gZMikiNUTJaluu2ah(l$^CJzU z^$92vNh$|OBLIm+&P4>-+^@zP>Yp+_4NXb>)$na?2y1IIS67t3KMn#4g@O{{kURvW z776M#5}&saCfV|nf<;Lw5K=ju)QKb)KU9)&?QjkdObyKdwYeek-*f;92c)(J5J}Ca zL%yN+)VV|^i;?5-pa34Ga+8I$1YHA7+BqtkW1{RUS5Z&NB3E6F^B1^#FL&xPYY5U& z8LtG}=G0x0og%7mqpmP?aZBf2R7MJKdLxZPUc-{(jOM6HxTijc7crFyF;QB4*J+0d z1;2XJDaQBW#mWAT>Rd?NllV@Y;0_9ZZ?|DCd1Hzz$=QR>n+nXdcEFo=!IdFrl)znSS}eFcn)N#+G^E19inT| zeTN&4Oy#PE)UZ{;)k)7}j(b8fR41X4pY)5|KU<_C4jKhr9$W<* z8(8AhrsMi@f}?^)OAVd72&GK`89>7@qgJzV+$Bk$C>S(4|lJqEBV2P@702kWHcygCZVfQhEIB^VPo} z{lI%i2MX-`@#{OKxv{^udwu(}FMs~-5?tP>?ED+5o10!;4B?*p(wl>4UVGbcK7V+7 z_3j6|H?CA~l6SAIT-mv^{Vw&~{r_IM`P2{JvY#G(^zjqNp7-MSzy0+7liwuD?xjBu tklfBEr^7w-Rl=ho{pxAwi{{hfDlz9LE literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_diag_3_2.png b/resources/g2/track/alpine/right_bank_to_gentle_up_diag_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a76056ee3b9ba396e2b34a27a51c2aff2515485 GIT binary patch literal 943 zcmX9-L5SmI82x5CGntw0QnaIm4H&Tl5rX6pB!?X0nl5#SPL|DRamx}Rusw7khloW2 z2F#&I(6IKnq^u2{%}0@qiB{SX_hfG@Ek~DvDqxQ+eF8p zyEfM!NTab5g!(kL7fV;5um)Gu#ERJ<9F-jE%$X&G{l;{xC6n$dao1^7$3dZ>!-FGZ zBMl4f(tK3TrZ`&BC{xgdgHTijkN^}6(@G^1#~qS%Iqpo7Cau=oG@lHIC=79?T;(gY zL~sgO*Qkccs1BzO1j`e9f$UBdKWPyxPS>lPOo=Mn)C8?7b%)B(*ZkOwl3u(TE!JU) zhq4Tn77zxI4#o~E^)cBDc`a_(3*Akf2%Sk(S!MA~ow6I;NEHHIjxBZG*O#7^hW&Ny zp=DGmvn17E*cLBzWZ72LL8mje?Ql4ZeSa~VrD=))*MRI}%%~&;xICp=3!%Ggx~oo* zIh1c5gBoCsCX&cu+)4mrJHXIBjZR@LpFA z2Ca!_&cnfK9%b1Rl=q+kpaVDn9>4@(i2=$X3CPfq=b~gTk)ScqiTte|lE#aKB z>1CZ@-Jf3g3p7v3GOz?zr%O$qXv>Vz5*@Sc_RPTR#gVs4B9tvyQA9qV1Q5!z=;n6M zfm_C4xnu|Z=g_B9q1lw%ZPhR|hPGI`&oiFDgd#nYs8yqi6atwf8ZgM`Q7q==XWuCP z^XvyczHuzWTaO>!&c&^x+SQZS@7{C7{rj(8s{MvO&Eg-*Fa34!{e$H2we0sxA2@&9 zJACy1>CL}2`_7m5UwriA$;<11f2|$f-g$7SzlZ&oou8lHe8Kzk>Q_$>u6%R;Ci>*y i?zfA_#w$-hBu;}nU;n)P>>xLSqie^tpWgoH^Zx<&=9S$5 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/right_bank_to_gentle_up_diag_4.png b/resources/g2/track/alpine/right_bank_to_gentle_up_diag_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6340650d0b17575aa527053fb5bcd423fd8d5537 GIT binary patch literal 7977 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_left_1_1.png b/resources/g2/track/alpine/s_bend_left_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..9f39005edfa529e8b484ad84cedef78e5c481390 GIT binary patch literal 988 zcmX9-Ux?du9RJ?m^se6e&}qd85voMUBtp2ScX06B)XtQ%E&|HDh3T0 zq-dB?E7lpXV9=t`_2FP)RM$aHZcri0;VMKZSX>{56zM}BPW_oN_WHKu&D}`dQ$S|}Z@QNa7TG=pk+qRp{R;Lq2(P5HIrc;Ino&#CRmdp8Sm8h9? z-Qk*^-0rB|p3#q;;m8*#ti)w?sbG}|S0h^nvu6vvW~txNlY{y=@n@4r#6hK?#)GS1 zZ5``5xj{QW?c-=nqp6CHT!f+`fDE8wn4Zg7IPQ|9&vARQd{C(jEbDfwg?c@l$rt$o zEfbtdiaJ%Y7|rDjPp|{2(N+Au8YUHj#c8p~DU_tKWnIwga=oRtLOqPFC~3sw_HfqA z@sL-bPyxaO(#6uVUPkPN+ z9H3E@%d;d^V%Q2V)D*?hG_O|cI8LwCionQQzPVg*90+eK|suipn)o{hOuXVe290%iZj8ZMU0*smE-Gb~BYDnq{ z=T6GOwAP(9`$ypr4JKqBSOOF2T$v}T3S(9z*Q)vrs~a@pC>SRZnhse>LLs085K6PC zr*e0J+om@fv0n2ojDBAzmz8Q&GfkbLZI*8GOdv2li9VF6ajA$@0$C*T7!>j-meS*A zAItuI=LcRpv!%dOw|;viCGTx+oI3mHhwprFYJUIm%>2K|Vpm_^xnMf4{_uY0{OmC$=3caSO0l<_gCd!{Ko!py;ibiYt6W{G9 gYHjy9&-~W>?}T`5CAjW?n!19`(_0&t*I#`5e=NkNKmY&$ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_left_1_2.png b/resources/g2/track/alpine/s_bend_left_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3b67c7966f60c5dbcfc2fc162ac97fe1b0b4d6 GIT binary patch literal 944 zcmX9-QK;Kw82#>T?@jNz-3WasEJB1Lc?ct51`&c}nmcQa-pplCuxNBatM(y627Txt zu!8kcFb@Tz^r4OjeF#|C6(Zyzj0~#lL(nqn2w1Sgf>WaAp|H#N%@~~TJDivAJe>0# zT{^6uId%3F0Gz44c5pf4{cP|;F59cS`>z7z;L;mcE@pCTYioOZJD1Dl^ZA{fo!#AC z48sbA!rtCqxl*aHEF+47qDY$7Fbuuh?b`NeGV#K29>+{Rm4>zemV%9S zEa>BlaVebF=E5`|jz%a52)0xa%8X3% zDpl3#y2)x5Zw$q*D-C?bnWW!H|zC&6M`A-Vn%^!giXHWwxAw>AQm{bk}i+(j_NJ$O9AuLRl8Q%vVLM>2i!Mu&&4k5;K?Sb-jXA5}6blvd9xqBxU92&K3WC z@&nf{A1ZL+k6%B`#JjbFm#-AQe)Egk{+;Je=N}{V*>5kNzJ2w^^W^LIZux(neXxE1 z(Kp{-zwp)Z?Q3s+$-Q**hg+p{AAIunvxKty;GZ9V`TWr{xto98e?hC=d3;{~{`XYb lMnAuEbTs+zr;kr^AAS0M^Lqa6yO|TzE*>6y_sV-W{s-X;mQ4Tv literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_left_1_3.png b/resources/g2/track/alpine/s_bend_left_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5db0c3ef326e5fc7379f7554ca2592b8e12c0066 GIT binary patch literal 951 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 Gv;P5UbA&Pg literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_left_2_3.png b/resources/g2/track/alpine/s_bend_left_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb27e7bbfc445a9ecc524259806c491a1184142 GIT binary patch literal 973 zcmX9-Pl)4m82x7FPiCf$b?qU80fSV?K+w1Z2@){6nWZ~qne0p!3zI|Cz!s?xnFvLL z1}tn@a>z(otJ^~lK??@$VGaR%=po7=fsHWkRtVTbSqm;2BrH`%`I%+mec$6B{|qHXNBz>`bPfNMlvLU`V)KC0(8Bne1^>9CfPEz(`J7v&5UHVTAyVhK2yH zg7pn-;+bQhTU)krpI1k|UT(nOA5@=Tt*9T5_wW^#UV^?J#M_v;Jg0 zDhg0i0IvaQ0p(&`53dX;btD*Z)tQ)H>W1i8rb{|UG%B=H<@>rgG?loik2~hnZ>FQp zJoeEvES5NmuCiQB5F3i(=z6!&7&y+T*NcN-a(bGkDFVU(s)MopqBta!h^|e<)>QRo zjbZAZW`o(;c#aBmvB=?gg)A#Hqw~Be$t^8EW(}P7Nq>-paW)Y^lQ2^$+8XKB>8>UC zEoIoPo%r^6)SZpPEPH?ifGU6q-~#vnCje6nP!3r{mWg~1C1aTagN3#LK?M>SkOIiS zk;5WSMnN4#EtGihD0mJe5vnp)*KxZ+x7|wL(}%-m9Q(6bjB+oc2CP*OTwL}@Euf5q zcT?5R8pC-fItwOfoKhv=NUXvXRe`K4tW}d-yY98^q2G=}f0l$On{bkZ0ze5MlxNY( z?H+?@THWcC>vkT)j3QB0m3m#bEQ4j59Mch4Ut~uTb1KubY8h!HvMJPMQ6QjL%FEBa zQ26W754^v>tH5i&{c=4Q*3S0p*EVn6I@((gUwT5cP`3NoAOBrBJlIOU+dKa>_V4qQ zdi^NbxN!V+boj9M27Y(z&K~wn^77wDZ{Kcz)!nf+&n`YZq|U!}&`)2vdE?hFe*dyR z{(R;8=MLY!@z3Rjr`R8!jPAYj-p}`?pN{L#>UVE%ef-hA5B4_??iY4n4dxd<{V^{( Oz|N)J?Qbu>`N{vIgQHad literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_left_2_4.png b/resources/g2/track/alpine/s_bend_left_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6225ed0351b133287c6e4dd70769a7170a6bdba7 GIT binary patch literal 996 zcmX9-QHa}g82|2i*Yxff9d=l-V4S^~9nl31BeF2!UGC_PY?rxAssxP?Sk(@LW>TSI zV0|bOB;JZt>_fr8`Vg_gJp|08YQ#D!L^!0AJQP;6$R4UjSLKku8H3;Vef(a&-w%G@ z_ul!P!lC7dmI2_<_LL5v&wcgZ;{XXbfA->5Oy}n2=I7@ViNwOf!s6m$ zGMU6MER{+vEiGm9`8-WiJkLpzpsKR2YqeUf*=%>auJ7-M;WUb93OE)-VMUfRCq6t}}h+8Vr*6F<(-)j~JT`la_C!sx?`h^@QBvd%C zB&?%hJu^M*WTHV1O(+y8=)gkA&jW}63WjOvw2{kM1Yxu6o+$Q9rJ-TmX}3|Ym!mUz zE=!3xs}Kc^EE=?Gv3iTIIYPse?1AEjC7j7og*+>fg38DmuhqqRTWPzR8yJ4r2qvA; zte55>BSE$Vcohf>W7^q5mymm$78K2qZci;A?TKVYWpb4QX%^Xz%6qyL)YM^9A3L>a zuQ>}GH1^XOh9HYHQ{woFB$=w(s#LnB*=x50*B$NePp4A^ISq&=Mt9P@my-r$X~fsZ zvOTGIQ)@r!P7a1Mv_huSOg3A<^Abs^EUOD*U5S@fyJn-`>4ts~jW|#QOqbGzf?H*> zRpp$z#a*MxwgHze)0J3``4a)FtMK6_!7OfxBSJqACJ6x`|_vP z|4A?OFDLKzANlBJ;fL)@w)e_&$G-Vs^>g#o^QZrMcmCGNXV(rtaB}zPpTu{q>p!jD zJi0bJy_@GgJ`p{=_~zNw#@p_d<7-FOmb~vzU45

bTP#oO;3d*NsK;je!?vwN^1 uuh-tV@!`RvFJa@mumAq9n7ZLuQBoLtzx@5})`{31Y;Wysezx)Q)&BuD%Bt}I literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_right_1_1.png b/resources/g2/track/alpine/s_bend_right_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ad073d902d2bbc66df4fefc4080d79a7ba3d9050 GIT binary patch literal 993 zcmX9-QHa}g82|2icj?_RE9bxm|Z=UXJCULLV~BuwoyAL@3&a zu$58n`Vd`Vc_>maXb-~-a!Qasgpp~*!sX$>IwF)&wBp89jc~#Ve=`QZ@B8?@e7_(3 zzHfVTqi|yB^b!D^Sii7(DVbzakEc^f|8(}|Nq`h=UfepL(3zQ;+1c4tDm6DZH$OkW zu&{t(SUR0vTwKiM^Ld7$1%a1kQB_O2uGQ;x%j&qU7X$}UG>v112A%^+TrQQel?qX< z(Tyf&wWY4B^n85~Hb-Myps*shtcf|JNSG?w(V4xv;9JFkt400BB(jgDK>-Jaf+`QD zjCD24Z)S$wY&^ixghsJ~j!lGuJb(nCV3?N47&vZ{q|I@AlGHDkhlX*#(?PzEGub?! zqa}h<$bv={4MsINy)D!ovDK69f#OAFg2m}Vo|7q2WlNf%HKayI>3EtK8bQ^FmdYo2uHbR^4XP?{q@X8yy@>r&9#D2Bd{C-Hgz~Y5N^B{I7$HODEOl2}`E>|G(GDWK#r;AcUNtV^zW~<+Iqach&JSZZj%Nau<%nH@6 z@lHeTwab0S82atWFo@&(hzBSF=l~{w1JDN;V}KG!0;=iAu~9UXNYEH)@!%C8k^sqo zv>a+O$d-^-L4yX0YofFeLB z$)b_SJpx{@wZ~(&Z9RfM7zm}3T&bwFn#Ry|mbQ4t5g1>j4x*%YQxmf%h+M$Z+nrpWjZ1xxV`9*4dA*-{5BNJegko7JX3t)q1OZ?e5z4))Qer zy>sSu2?qJ#zfWF#VgEzs<`1dozkA8uzjFEeD>wR|Ju~;q3VjY=dpW*(W^;FU<)gKy zPaay&{xLJU_2c110;`_hfdiT`z2Unl^hg)*ry#3&( oyXlRcFC_E5H!c|ep87lW`NHkPZT;S1Vhz^MZ>)a#+U0Bi1COn$m;e9( literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_right_1_2.png b/resources/g2/track/alpine/s_bend_right_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f62aabcacdd8de0618f8e0595f27e13eeeab9f3f GIT binary patch literal 974 zcmX9-QHa}g82|2icj@hz75dQA3?fvB7&Of2f(D6aZgxlHax9aI6*CRkhYo{gP&7)= zFnSV3lsdxfLmvXG5V7E)Ve3O+aTKf=;gE_M6fD?>4TJWf;30oA2EXt7_`Q6;AN;=W z)4kow@na7k1AyZ@XSUB~^U18%^SP{l@bh0bKo0g^K6g5!OG``3%gec3Ze?Xc#AZu;Gj^@v|%Xs)0m2cf78AOR>CrWFb%jyojjaom9<4eRx>Y2N8}Q5fP(vCNlf ziQp8nqES_oQ5{b22$nCl2eLO(f}~EcI9(}oG9{{PO%t@1)aokTKnr3sO4{+PH(7)Q z9*Q!Q>OdGkIvCq6Rr+KthiKq3K>0cj;< zGsu%r&_JUWN<6q1JPV=#RS9dTC9_Gjol4JB2LmgP{n;!=nHF9L#@OJUlH?IeKxzr+ zq&0uu94y??Q7}Q{lq>>EU=_Mh3vMgGe z+aXe88Xa-*RdhQ`nqOS?Sd3rr}|hY~fbmXSgrlSCZ`1w4wy?D*Ly zHvYc%0~gQk%J9OUzrCH24|le=&TU?~{L9t@w;su_?4{-#mzGYMFUjp|*ZzC-#%JV% zuN|?spZ|j*KEL|hLmwBHZ~d727e2a~GhWZX`u@r9H@!vYhr9dh+dqB5GGn}d`{{50 zdGFNziKkw<`iynyo$sD~{KAd>-&ekT>qPVX*TLqMGYj|f$;W3)y?%IjNVHllj$dc7bRPp5I3E{dYuZaEf20aT^YZa2GK%5mBL zKnOFbto~IE;KBK@N~*I>9NgS_M{}xv#C|g`9 zgO)8u_c+rR?2*)ql;KPZGb1iK6i>2pOVAj_f{W19 zfan0_0_|h`n2@J*I}xp1AFS-K^iy=HGEI{w9hn*E!o-wjwwCwIWnizPUYP_}d4$#} z-sEXU=lG5&Ihr;w&5`3w2ZLlh&f|EsSd?XnfV6-PFm8fNGg8Z#&PwX9+u_EUmHuKo z-CQrPP=mp7o*-nZr7^522)3g3jY`a&4uNKnfDPaSL;!PuH3q1HDk0ZKQHYAAN`uA0P=r{9LItD&vIsQbP^hA~ zi?Ti{LU*aa0+2pA5B0Ipj4bdmmkTPQ0Dg?i5M_Xrh z6=c`(3N1^z2|R_#EZ!EWuEx0?#rL}5(3?fWJdHL*inc3WQBVx10EDV6`jy=akUe*_ zUh|{i1?()7+HI}dHC@-@*dEUYA{R+qqOc2<+2}1~P{^avh(oc6a-}Li|3>5K^B?&7 z&Z!3PJo@*GipVEN@1E7a|K@@4(jRZurC-s#9rD|^&K^Ac!TOW>_`ACwHU9eQAz**M z%t*f}$LIfla`E>0lP^CkKltp&f1dmvWS{@y{)anHp=sRu`Tm8KR+4aXe0ucLd!L>^ E158MT!~g&Q literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_right_1_4.png b/resources/g2/track/alpine/s_bend_right_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c2917e938a04e582f445a30789fcdfbb1ecca237 GIT binary patch literal 1006 zcmX9-VTjvw6n}TUyWCwFMf;&>Wfdw$h#DbikR0Y_?yP6VWh{q5s^lbdJ?xIC(W@+A z#K4LaFKk7sR45pvLJo_&51AJ1SU(h2BuK$JvRSsW72StAn*?>&BB-tPy$ z_dY$go;kGm@FD;lT6=lrcsQR4>w)=5*!P|sJPr_nV@EeuLpn7zH9b8Yi9}{*W@cw+ z=jP@x44a>yUsza3q|<4NA~}u~MP5;|nx>kjS*g?-4Y%Fy`TjTvC=yr(1U{P0#`F19 zK_`nPrcxE^4Y}FUx?X88v^fHkn5fDp3@K$Pcuk}BO|Dgux((Iu6i2>28MiY@kO?TT zV2M~=#ag9Uza9^|Ni-r+Afp2dp>`TT0FW_Ejm3;)(!z0@VfF=~lgsrD<94lvTCF4% zPqPV9NHH>=Q3=VQ6pPWSoayl8rf7F%*UzQsB$-JwBEc(kR^`;9P^`%{S9Lw3?U%h# zeK2XoScr>|$U#a6+`{NuBGbULEmrlU(m=DvRvYaLL|mbhg$z-Wn7YC>HPJJbenlHP z=D1avcn%u2V{sZMB#O?lTtO5|ic&2U8l_UJR`XnU(CdxIV+2VR@CruNV_Y*Sc8T18 zD-N^vsL&i+y`V8V=uc3Th{fncB9lss1gS8L#tTI`T&6cllDRiHP>;Beycj_w}ap|VgV!o4Zs3$06G9e3{VJxL%N0>8~J?!2bF>{3vLE{ z0gwntO`sBmYyr7>)GZ?4hI_%&z;hr8SYAmO1)^+a>bBBsnx5y3Mji^ak~yICC~GAI zJ0-ig>ND0j>jZ`7q|!Zb2dF>B<3Ojd3>nL^sk}((Io>kzcG+k;Wv}gw{5A>(G|wX! zkPirjSrkLL`$(F4bvUG}mHW`TT`rpy^La(rRf;revcgghN40peClDhkjpP(Ea8#v` z%OZ~tkDq=jdgtB`ynlRMgymbmoearWYb!@Ko;ds2xg!r=d~`nYA2OWBKHR$a$M=h) z?W@Z_|43bVDQdm*&%25B-KTdquW#;s(0T2`3+7+W=hX70li%p%Be%Xh9K3z_-?L>-mB++=|^sI>!&VE#4~5U&F%)P@};BKmL|{5oDO}$+UokscQ0;! F@;|qxxVQiS literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_right_2_1.png b/resources/g2/track/alpine/s_bend_right_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..90be85d757338cdc180ca5956c91fed80b3bb6e6 GIT binary patch literal 1013 zcmX9-afsV=6n=NTyWH*WRfkSqevJXR;a8ze=^s%#tdPTk1&iEamEsO}>d%b9_uk|C=Y1c1 z?_FG4OwR7wvkL%b7mm*_hjV{ePfkX{e)UY31Bk%V$y3KdIx;dcIyxGOM8?L(#>dAe zCMGZpo1C1SnwrAn@i@aI1c8@jQB~8rt`!P}N~P9lIG)!Ig28aeB!K5Y5~tJYST;-M z@`+-Jt5l_WLutBt%P)0%mOx`EZdwy@BSo4jRnwWZg5XwCt%eq?7yE&=J@AqQC^Y1F zFlDT+VQwkfsmF#b0`(JUsGuDaAukRf0Vo)zMWY5mm=tAk+?phk>>X z&f^J*01zRjPWvit)L55_BL^96Fw5YOaP0)%`v8L1<&G8K{DEs|- zciWBf5R(DV0GS8M#Mm01Y*1;J*Zfqet6KxpLu(QpQ&}RHq)RETt_n?E_6usKqWA2= zz^!ciHtKoN7)#M9hRyIoPL@lmTFvDerIK5#`Hs_Vw+Dj(0zw0-f-&`|&?Mv*o#_h2 zUfSyCngg>vZ1i_J+i04OMp+zBl5v?%s2rz@Qc($)!Ha|^C$H*<*6Ly#~61`QHMoav~K$jfsX7M4Mr0edK#Nt7Nc zWGsg|G7MOyXb(N)&_l!?-XTiBh!HDP%%O*l1?i!g7UiY;0_9Zk9@=t*x!??d_eN z9Sp;EcX#*p_A1qCm1P-G6ck0$b=5Qt+qV1t;dmUx@hnZVJZBjYc#x%iRV}w#WV^$3 z9lk%1M`JCF%xU5*mYzss4SwH{DprGZb!up`$F>;t8`H6oPP(hqTW4{d0F8#W0Iq_K z3@mc+`KX*v3AAERuAvhbp|}bl185j#;J8H)E=74fe=N(BW^-;?kA_1OMFd-}3Kd2s zd5x+Ybi-nGmp2EZ?MuB-@upgkHc5_P>Q!E$C7n|Z(df$Ep*9SRAhF`Km#jvMb%YC0 zR-n=ZvICThal=Y|OsSDzBn@X_dYK!eW0@}N9MP`RPJLF_G_~bS_h1u+S4As6#3PQUDnh67sNUYA_szA0Bw$qectL62q(C;O&ze;12FE~j;0iYBRDzfMnc27Xq zoxyU+4f;=DPN$-(Dy^2@=@=|yb4*`geUXhMW+v0CMipr!vM4lQQ6Qj1D$37Y*#GPC z4}5gxP=VJT+W!gp_(wfjf(!&g6l_N(%7xb?lPo_YB~cy95>H!uD4{{4%0KmGT` m`TU>1e|`H0?w3R61sS_|^X7-M|9&pa;NbFM?c3Mix&1#IjgwCR literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/s_bend_right_2_3.png b/resources/g2/track/alpine/s_bend_right_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..24b598adf84666ca40b00267d45dc989cdf4d5e4 GIT binary patch literal 940 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 AzW@LL literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_1_2.png b/resources/g2/track/alpine/small_helix_left_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..109ce45927c30bc3e88ee8532a0437dc0094914a GIT binary patch literal 916 zcmX9-L5SmI82x5Coy=@qbEr!ObI74Wz#tLA5+Pu8GeaHXPR7k>&@D*=nlA%`Bal0(r7IrLC5hk{+Ku!kx=^f1V8hK2WiAMf(s;l1zS z`C0SkjTdhKz|GUQj_;NC*7Y1z%KgnR?|uhRf%CU7PD;A7v$MOqTd7p`_V%jP>i+&d zhG7Q>2Zx7;M5EE*I98HGRh12+Wm%@{x?wmNjgl;z6~%h9;aCs_P~=*xRqu4DuFZPB z5cZYfNFS%xH1`+FNMbNesF^b1XjEX(1B<(Kr8Ly0BeR%zt0LO2vnB~T16>gU6&spZ z>f`faeKRG|ibWe8T?Ghb4FCl|$1oGe9g+-aIue9SMVYkQbH{l)7@#yIxq3q+ScMXF zx@j_+!x@2K^(8l!dt)`4>PgY2c#>^41eK8uzGX_Lr+5Q>keEsCWJNDu4Hw%K7on~K z(FV!}I>7h=(HzmOR5WwVUs%yP$k3(2)D52OHW^@oiD+s;X}o{cd;U`{`hiC&^+qTd&s$NE7G~asxdgu6GW40s0?cef+Z`SUW(Zxzc(348cYs)A|y>H6hJBt(My97`AP4tjn{Z$i)(u%Ir*GR$2q;6mn?P=TIV|TrSJczf$}6`Uf7| zJ5%9}zka`8k~^ozZ(baI{ry)zAHu88?OvkC4?q3v!51HXdp__U9qs(F_x>lhJ|G^y zclYn@=f6IA=fCRR6XLZWgxjzG^s;sIF-~Fsz@OEZUU>fE(Ql<1oSvK=|9I!4FaHNn CW`MH* literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_1_3.png b/resources/g2/track/alpine/small_helix_left_up_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..02e7101dcd45675c8a86ab282c631a16524e9cc3 GIT binary patch literal 939 zcmXAoL5SmY6vp4QGn3AiHA00hM#!N`4ne{aB`!H+*UVCf=w#U}8;7Dv$M0i zyNh91rBd13+p9Mk4VGm@QBV{~*ITA(^m@JFa5R~OaXe4cb)K^f2t3GAwbiP1I%L;k zoIXGFN(FIT=uV=7-Yq`Iw=u1<|i_P8fTLv=PW(i103{mnXV5}?u06~I-n zv4KT>d@-)&GXiA{$~AQ6A`~|OWB?7r3>>!!!lfvm=Z|Iiq}^WF_UUMZqKIH?4WZ7+ zB(G6TgH~-;cX`tjdx12VD*j9h(>BQwOtZl&w4`$_Lo^)O8EK=?2opO_2T3+wZX#TO zngaDUkQPub#*OOD3Dt@OBT@TH(_gzWI+p30&Jo=v-B2A)>FJB1xe9vgXt+rN zw2JW>N6{+FwFR-OD1BY`y4^{?AB{#y7%u1Y^?HqfFn}6j>=+lPgfgSsOVL@i{H!}& zyYqaKoh>$~O5-?JuQ$ntLNhwgo09Bk#WHKsADoOQX`JLs0W=9S72MWHw?liD5ID-z zYo7%6BJ#3Doad)V08jx;02d$tI00B;fC|YXvP=~CC|$@D7%U6~2%C_~fD}MR9ran{ z%P8!inS)Xv9tF>VB!Vhq9ldUM>4DoE`}%a+OOhbV5>&8=Hn3JzaO<*9Y9VE$yt{4% zd3U-Q&d$OmTCAxWa3t1b@RmS!6xM1>uHEqm_B0qIage1k%9orZp%73C2o+g41@5tk zp5?7poHu+db2bxOEv3`ZEz4k;9>)v?HW1lJV&*cPsSTu&$fl6TqEJAIR2)C|eD&`~ zKk(u8Lj^AX{_x$x93AXmxl#H0xi79f0T(N!|Bw}w{`v9Yix=-cd-+%IU-{EdxYyqP zEd1rC@85gst#8CDX!PUe4A6~w7=YQ{lk9+_C literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_1_4.png b/resources/g2/track/alpine/small_helix_left_up_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..640605a3abc64765bc19293ea27b7680bf50e16f GIT binary patch literal 1037 zcmX9-QHa}g82|2icez^~edt5yqIR=LhC$2BFiIZcmb=v>=VdH&byUqHn`IUow#b#) zu?#y`kHRvqgMxi15{^Cu*0GL7C^KTwL&_0G#U92{rD(x>s9PV(Jh{IagWvak{9e8v zKYri0d}J}UbI0x-0I+lZ&Do>g-0js1(>|}KzL~iU;DaLz$L2gbHa0dsKJN4RCMG5( zCnu+-rZ5bfo}QkWnF&QA5sHd(94m^vEGJY|$>nmTQl(b2n$5QB4u(T23M>Nx?@uIx zsZ=Y)f9Iv-*=7Cpc%tK zA|bfO1HWU@Yj6}o~GOkgw&ZuQBXY$2{XtX5DO@?Va8jCO@$;)&?;gr0PuSgY3u^g@G z7M*^zJF){T1VsoXA)Ez5$LLBZRwEKNt2psOS2YHD6V(MWDARZ*Mi$~sRpuJ1=;Y*1 zN$r`rfn6FoCh9corT!jnK{ z{j44mjId-8ip%JOggMMKMy1x4)kU2F5d=Dn#iD@(8%~K-Hp%N+$|!0Lv*whM@LI6Wpb3wN819~k4KOc zMjC<26tY<4@ZRy$FZmxl{((=9E{gERUmG8Kq%l8x@YudD@2?#E^z#1cLwC`6bZKM# z_uKWS*C+peWf0jjKP$ZWa`967+WA{c=brNydhdS!_2Hf)@9r%W=T7_I{`b}Y zf-BD--W9y}(Zi>HTxsw5;-{aloIUx+KiuADulwuQmS0PMeCBq2V!Z literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_2_1.png b/resources/g2/track/alpine/small_helix_left_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..654f8d33ecb04a8226a66455cbeef93d586ea723 GIT binary patch literal 969 zcmX9-Pl()f6n^_R`^R;_(WV$A=%7)8=8!`Up~P*rjB9jLn#Blnh$YZD3^Xhe=P*d1 zBMdTPkg?`4l@Wpr8gRf>qC^N9>evnv+C7YtmJtU!=!&5PU161d zpWP{MtUbC002|vcY@N#|o7dXPLf)TS``}H01vvZC?wOp<&CSiv&o3-2EG{lCEiElC zFJlBgytx2Po}O&V=BLHNVuhvwodg-cE2fxjyf6`$*?s`+@mxq6QI#h7r<7q zzJZ19!nj||Mg*EMDAUlfjZjnqkO4FdGYSQZAZ&_qd46A(ht=xXvJQJa6ov#_ED1Ox zle|Wi4O+EW-R8}%*z}}MptvK=PpTwGFy#`j(2~wo4AE%Gt)ABN4L`P`q!Z8jlcTU8 zKv4m_3SL-c|cV{!HCuN#B@_TLi;jZ)H$MFrrRpt*Tuk8;-)@!%&FH*L+2>= z&@?I(If_v!f8%J4ohy(x?zyz=XJb)p<6a$n)7E!}Qo{N&POo72dM*zPJi3~^qWZLzISQl(uc1g{rjD)w- zikH=cBWHB%PtZ7}iolUrnJH8RvZk<&s$^R=w_^ofCyu;X5}|CuNfPn_C4f+#MJt!P z52D%VPN!Vgxes$R5-Sy@R?`~|gJqf=;|Q!LvZ2Hr$n;DtA&o>9g}N;A1r$s9@pI3v z-@W$(ubGv+**j!tD{DG|-x6n5)KluokeOdhozxmGQ;#KG5 zM)1Uodk=s5#@D~Ee0=fF_0om&SKjCMF241N|BLnCUnf7jdUy5wY3GY)j(_0N6MMHG z{O$WoKc9Hz+N+QKp&j1bz4g%N-%Y+!(^Kz0b?P7d-_^{!_UG-tu^+GZFaP?jdL_32 O+h=yRK0E!|rT+m4_oRjZ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_2_2.png b/resources/g2/track/alpine/small_helix_left_up_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..251476d3532a8d2dc3c050cb22b09314a37e9ff8 GIT binary patch literal 860 zcmX9-F^HpR6n-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_2_3.png b/resources/g2/track/alpine/small_helix_left_up_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a65636579f7410d569cbbbe05e0566edbe796a GIT binary patch literal 996 zcmX9-Ux?du9RJ?m+@BqR6;?1p#R?gQ5g`u|BII_tTX$r;9G6Me3YkPKQZZ`O4ufV` zwHxKgd1VAC(ucsRMl5mx@0ZWZ_w#|z z_j_}DE4Q-r#1a6kY+hX7NhXuj>4ll3|7xA70nEVmr7If=otm1Oo}QkWnVFrPotvAR zpP$DtY++$xad9!7&1M;f76e|FMO7{6x>l)FY`fWRdtum%dm7Xhfrlf=(=i!YqIUpkSDW<0e5^Bxu&X(a=Bfr1u}W0K z;N7b1H;NtC><5ieKb%aC5D$G0 zj-NfZeE-o8yuY(0!|LH5ZzN=YbN&34vtQoY6HkZFom%@CP3}E-ie7s2=gZIR4mZ9a ze<@v_|M#y;H@=_VTDkGfcQ25)*I!$`{^P}KjjMR)eDj@GUi~xcpE-NDcKa*ut^Mxe zKW|@ndhfkedLNy7*0}!pXCJ-%;kDh@w|;u^_viPd-EVKbbn@=G(S4iUdGTge=y;#} r{oilfhf5#0h15y!-owt_I}fHG=DfoT?XQm#cd)s!wf@7})ldHiOU17L literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_3_1.png b/resources/g2/track/alpine/small_helix_left_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b755813c104a13c04a8993b6cf65965b45f523 GIT binary patch literal 1007 zcmX9-afsV=6n?$lU3%9W*(@Wtf{_)BERKLd0!EEz?x<(va$HV|1c?&3GW$osh((G7 z)<4SZA3+OtQqB${mLqc&4i>Ozw*_}dk$?p|4A?<+RSqp$^gK@ZnKAg@dwl=A?}P8X zOB?Ii6N_gS0pP^iiz}Pad^oB{67i`2@#N}n0CCuOd22PIu~=+oW+onw&(6-y&CSiv z&tn*tNF){(7KltH!?KJh3W_4>x@ww6xm>Q-o9(ve`~5JSOs6aZ0uQp3RMk|WKo(0( zrOMYEa;vR%x@Iq^4o8kiV>v!)NQ9LmZJlbG>|R;y)^okK5$;#Up>sI#vuV(1C<Dg*2bOivY@%*A&89K} z!N?@9QCWk|S*&jJW7zVj9bIQ zE-pYy0U{4%2`C%mnnbousa?Sca@C>fOl%+R$#hER(#0%Y&G9W=?3hYW)(3TS^#&w(UDPR0s4VHN3`oozXKr&A6BcRUVIq?OJCTS^KxAv>hz zQAWty6V;s-JBRh&u{T7636%nl#Ig*o3S>cHOL@t*3Qo=HxV6A{$Dxm=Lr#*A2Pg!D zqAV(r+ykV`rN(H)HR=yw_IjeKDusexDj6(O=9s#`x+2?^n7&Mpa~Y(O$f8h#MV^2H zDLQ`ceDcrxKk)YEx&qJNyR#jUowb$at;aw3?nCJz|IsD!Jrvj1{yFTGEZfwlgr)b=dQ@`Y^?up?3Lxe^{=trpRT-%O^%*&E1bLd^GqpG74*}>nqn@c>Uu4{f@GG literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_3_2.png b/resources/g2/track/alpine/small_helix_left_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..84e070b6c2e08a956393ece04e44dcdadd9e6005 GIT binary patch literal 928 zcmX9-L5SmI82x5Coph#*0edKHz#MwWA*?y%5ZoNHV`iyi+{v;T2~spdWCG@pLxd_h z1PxfEhX`FL+Czm1Wr=JLgGT5fNW_8_awt+IV8Nm}tXkY6MMwF~vhcp|<6Yi6y!U-@ z=d5{jc!eA5MnhWwU%^He z7I*Q*sJ59AC}+?{LsvdRNdrIz&@jxxahD)`iVArCQkJKNv2fjo!y$@ef~_@#IwO<3 zMl~&3by?l#?SbfpQg5OJGcC#tk|UUAgI8!t=USF%b>z-a8%9=?x=Gec^U-n};{wza zs2e~!K=~LqtT)G0D;BI&?Jn(L?I-9`rfWJ!w3~ESSOE(7bk==qm8B5S+#<^Jz4wn z%{aeWY*CfQajsr(k`0Asbe^{*xuX?g&bZr~j>cJ%Zk7UQ5@sv7tC7A*4;&%vD3gIP z4c$dN$QQ|G^AHIDDu4~(1B3umfE5O)fGi@%Mqz-mg-n6PLQjCG37HH?0c6!tmqme$ zA`{IzC=1|m@Ek}Ys4`~ib+=9T{N^aoClfDC!#qz>;YAq0I#t21%K@oHl$G)Rx)pBP zlWl)?6)n+XP1S%Su_lAJ1kzMk$B=y240`S)?4?PVX9?OYIY~khpbQWyvgj0cPe6Fi zV71}~{U@+zGqKfDOjCCpi)B2H=?iQqva!U>Wja?INF$L;p#h5`0i{w=e(rkp&&NOT z*4;A&ZvOhiMM2I^Pma$kA6@_M`03J4W%sMUk;5In{mSj1?@Q%RrvF~t6Gp%Par5@q z*Y16JgPuN`K3Bfqx$)y?Z@&ECUE}i6=O2Fm->XOeT)gwe`{qx-ymrnUf2zLm*Kf}} QTPVZnt+SH{&%gfO|EC0vdjJ3c literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_3_3.png b/resources/g2/track/alpine/small_helix_left_up_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fbeec21fc3d3c230aaea239df12632a7fc311372 GIT binary patch literal 927 zcmX9-L5SmI82zT5napf=Em$y%IRq>iHA+@;2$)00%?xqOI$1UgJ@gPExCM&@iBcp; zV2hL`un~*o&_jhBDg-Ptha7@rF<=ip1ersH912zq>#_vNp~@V7vn;&t`*@f44)1*r zZl6iluDpB&0Ir?BcYLS1*Q3kk0$wihGWyvxi@Sw&{!$CG9?21m)aF%M*14`B8Y5*i)uy2lrgoBz(|oqx#!UfQ zD&RdJEudVCo8r=(>c)bRcAT~87jA;i6}qK!#6Y5*4nNby$W+szzVggXFf3wkn+9l; zG+P`+cUZ0`hyzu1bbT@y%pE75PSY@4UtAPLfq*c8@-TMR6eB`i(!I4f+I0PV5Ebr4 zInOUwThySNO%BH;vaQmL&hw_MjI>J3nmgmgY@Q`)xfVc^F;i{Y8tL}wi6sOhHJbDm zfxU_+`6?;PCrAM30GI$SKmf1+*kFJvC?c{<6!<7xDHIqij0FfK$P_>-AOlAZi+lxz zeY6~*%!g;eb0CY*QLw&_+XH&+N;6-NqG6f_d7h%mi|7GsH3Sz|d{PT3Bjeqo8n$(CHCh!^3pf&!m}XZX`zmYoWY_NdV>=4QX%ggFg32`~%P0ht0YX(4qss0%h@myv zY`BT{9OiN1U3-aSY|F1I`6cRMk1R+6BdO6O698j+*^%*p8ddQ zcg|Ee`s=rQ75U)w_}#nLzx~pE`^85$uKxTlvNAXu{bGLl)8BuzUMs)(s`%t6s6Be= zSh}Cxd*vhgjqiUyy88a>Prv)~!BG-Dd?;t{eEwtf>y5{&kDq?AGiluX@9W1WR3!|j MCuhe$-2CwV|1`IYPXGV_ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_3_4.png b/resources/g2/track/alpine/small_helix_left_up_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..81760da542da675ef68a28041458f09d38916fbb GIT binary patch literal 916 zcmX9-L5SmI82x5CGwEzu0~V>6Lk<;!1c?$bhX~o-bg4shvTO!|^pJ&sVd)`YR*K{h zFhY?CITVRdq(X$EL8}a!L%|3+jM77tiWLIeLv?#tFe^C}9Pu~H!u!6DcX{vd-uJ<+ z)9%$P&s_n4t0%8@Zddo2YVdlk+ONKU?@fRj+o zx+bkUtnTyHSac(4G*`lf7Uu@Z5lpwuE3~9@JySG?@^GR}Vl&R1G#_Q#>3Wyo0yGt9 z89>@V`4~58b!SvB5zI{W)>c^fDLR+wrp^(AF72uOR2S!#lDYaSur`rfB*89=&?d#3 z97U@vX9(gzQ9NBA4+b;OOD2;nj@Qd&Q4|OW6Q}@Vr?@yLlm%_9#o?wGZU^(iUzW4& z&tvR+nrmG^6vpCCNjr60>LC=wdp{)2v(zph=je;EqQ6eR^yQ(NLL>jf==x zCFAWXEz5^U08jxe03RR%xB%E-fGWr$vMm&aC|}7Gm@JG0h`W%>fD}Mx3wbOGWfb?( zVu zRDo*`et)YXH%>a&&z}A0ou6NR>W6Ff+V%g?efVzK`P}s1{`$kt8^8Sc**7nF|C%2M z?>>6)?VnGR*spg#`Rn=n=f)queSd}?8DIQUyL;z_FJH-j`m|DmlbffVuWsCV?|;!g BiVgq( literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_4_1.png b/resources/g2/track/alpine/small_helix_left_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ace9f1e2cc35285d6f7cd4ac4b23f634731308 GIT binary patch literal 1064 zcmX9-e~8<36o2k*5i_mF@nM^5KX3^98+A;XN_xSwtK79DR zclyvmcw+3HF#wpDdn&Zpn|ph8*T_JxKXf7VHNXHII(XzjkM{NT_4oG=3=9ko4h{_s z4G#}v7&bC8GCDfy3j_ib734Tp6nR;Ws;ZJorE*WP%KI1idwfb&6dHDScDl@c%K%*b(tur)M|>Wc1mvK z)RviQS8`q3M6IgFOA};-qGK$V5XFov=M#xiCQ~UCY|CnHZnoQP1bzjG97YvAT-h(y z$yk$1x1xrdD7W>^PRZSBbkR8J@z6eB7!QbKP-YmF7t&I1S+bPL)`}&kYIm9}NIa&B z9!MH2RPt`4+UeXxEI%WpY%74{i#i8wnr@ zM;d|h6tY-k^S$Gz_m2N@`v*=eE{O2NFW%RS!{?G3o`4a!e#9teqZo^0KJo2SH SUAoe92y+J(Lg)4$f9rqx@z6E^ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_4_2.png b/resources/g2/track/alpine/small_helix_left_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c15e7f4964a69d8e386ccdb2ff3a091649b61450 GIT binary patch literal 921 zcmX9-L5SmI82x5CGwDoSBlZxP9D?)^Bxnvf1PPKIGfNzzlX0_44^^@duq*|0h|oh1 z0duGl+#CuND z7*?%T4-XHCMx()TtR#t=rWi)cvP{Que19~VL}@zD^J25%SP%tJm0GJ+?{uhckL|mH zKUBvPJx;7y<}O!(#9&RKW-5f;q&$NjS=^-~C4O@@G4pAEod??@l}XSU=!)QJ*x1Ap z7hjC)n;D7LEZXSk%0nn^0H^>uhM72SlcYz}fgoI}>a^Wn*!F|b2qg*0)f*zgs+6G9 zvdJ`U&hP|lC^?}rh_zs*M|qp#NmgzM8lxC|%aqK%+8^no$c!>O%?H_fyxb)+%(0#NTEiTBUfM zru4Hdiv2(`pL!L|2@3_`L8edFMV+P-M8QT@yoYLNjST4e)`?3 Hci#UWf*pzl literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_left_up_4_3.png b/resources/g2/track/alpine/small_helix_left_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f1de3a36da8f42f8e6d0c1587d114ddba70c0b GIT binary patch literal 1028 zcmX9-Z)h8J7=HWr+Qv4N2ob|PG>lVjlIjia!wKiS)U=%T>TVFa6izs{s6kJ-x*!n_ zJX}^{xk-?#=0lWIqCH&ZDm%9b8J?qzd^l!5L^&ivtSJtR5-~#Aex?i_-uHdJyw3yA z`>ro9C8nnyo&tdB#fA9EK|gjlPmB!e-qt&x0F1!$3#aA>bZBU3czAeZWMp)7bZl&F ze0&_ku!)I@$;ruZG#aI-7{{@q$jfp{RTW*=O|x9BIJak|YHYogVV96ycIkys+ih$Ju5DTPz=LcT1O9mVl9*DrdV zN~>QFvJes>oCZ7xgn`lJaH2}2>a5}=3oX^^8ZO!v$dF7&vI(+~WGXUOQ$?>| zmv5)6PPW!Hc6-&%L9>qnWH3mF!wEbpk};WKR9?tSgJrpDp}142`mWb&u^{o7Dh4$P zH!@@?$J%+ZR!Z;KTC-m2G~HhB4q^e404jh1U<2#`v@t*f2pr0($hMH*6bMi#D6-%r zz!w0CfRr#QP{_R981K4DHhL&R4&aMTE;4BHM{7!cE@*7uSN4b zasc^&&>)NaK<+*wdal%N(^RZol>?ET|!jVRx z5``QVdHmq`=_dn!AO67F$t4k<{r#u219D|Ce&W>QA8cG)nQ`YP;@8mI?w`iYuV1|W zpUecb~W3*tm9O|C!p#{2cz3^XQGa*@w)@ zwz>Jr?f>3C|Ig~Ht7pz#y1RAm;=;}D@fXit`1IcO<3HS(y)gbuRvE+gre0co;I3{z zv4(!u_pS0{A71_D&5y1JPX84jzS{Wg`^@R*<;~3AT0d1fHrIabtqQ&V@xA5X%z^r^ ea7%jdcHpn2|AKe_dhsF7&_@(Dwe)oUV7Qf&C literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_1_1.png b/resources/g2/track/alpine/small_helix_right_up_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..204551fcb40eecedf76a97e5db85eaa8fb5c5e84 GIT binary patch literal 1071 zcmX9-acCQL6n<^eUc0UhGh(o(=8vGaam?Fx#S?>^+qH|`)n3=D1eVDSZW=XiH@vZk z5#km!YADCZABRR8AsbPzZIFtm%SJXM6ph`%`bWwR4H`9Ip;4lZ(v6=PgYUh^_s{$I z_}+VWYBDgmZFn01430lNI^CJOJ9TfLqthS#d~^lC0aFt*V;$Pn)z#hI?Ql4pPG?U~ zPj7E8hGBhuef|CY9-q%g(-gCr}_lC04P5shXN=YGt$}kZzg5qX9A%^yg)+sESrX zuIg&tNHj}&+cHqS>~b>%8Kjvo%SA;oCCiy;w2(@bvRTVCYpbixW)lIf0HI@a-o+Jh zu|kGxT(Ta@HKN6)w%RH*wyJG3K)PIv#}n}SM3R#Iew7!JQfFDLkV-G-3wGIR)mV^t zOch;m$*V=kOpG;>Vlfk5HsaM%rco`oTI+}f2m+`88h`M!50htk0Ng_K3cYC(y%CX)g?TL=$))2(BW;z9 zhFwOj8pHF*1Y`q3oh*_axx2s{!B9F&8ysEYsa1h& z1bs;IqBwyvG%{Ia@txymb`Sh@=Lb$tPm1u=?`tn~$dBWr`)78ZpFO{S=$k#;oh{V9 z$6o*Y>f?tW{&@C1>YX!}=3Y6n6*>C-#FL4`N58uA!!J8#u8!^eBXN7<<^yj|zt%YW z^?#3yBrp4n?v?w`DbI|&J-_ct%Yj`l{b~;!`fSIc?H8Unam@LFK6!a6^NBt$>`^bQ zo!a~7qVu;~qL@>7if_1q1dlLJm1Z%%Ltta;Q)tO4WinENoo^798X^%fkDIGS9bV$*~{`pva9*r`hXKeVg?L z!f32aXL_7ii)^so1QLU3Lc^2^N27d$o><(KDNx3Ko?*y7m!DTL21xj$tN_J0$7TbRY;!GC@f~a?O@VunHyU zblYS!hckS^8cS{{4`Vf0=uzIKc#>_m1eK8uzGF(Jr+5>65}8rvr1>x_rt4jTi_lbo z=mKQ}?PL6eXwT?QBAS^tSX;r?PtldaG!35Yx0!(^Obscv)XX(jBWn}7+hnxMLbOTo zCQmaO$9F}kuc`yX829_L!62DTvM5?Fm)q?Y0cip~!ni3e#iY7mx@*bXbb_KEZ~bLC zE3Q{N)L?L&Cx|xHQW@3|1WQ&ty%Mu$gW-HS%hRk}i=fMxrQ(iG`8{TAi=n5+`ggO0CRv12B?A}A=^S>fbx|>gUP{Ags2U<0!Rg95@^7oKtWLt zEj*M5@H}`PWC=6{>luX8XNG=z8W?fxW?5Ji8LGUs2wa1$c zKOVh+wOB}l1S_|nEa%eQ>P$Z&EuFB89)p+*&2R^xf zp~CGye|}hz_s&mG9@M{lc^)D>L(|oGeJiA^}e<66A!6nN%pQe;it7l{yan+GFtHz4!U&eLnDc z@AArWa^IeZ_W;1YrN#NxVL!M#PmK-hZy#T{1~3LI$4@N`>Bz{)=;-L!*x2~^_{7A- z&LJRWD5gdp&;ENYr!7f4%v8+QsEWaC_NG zUZXS!T-5RLC`-{PhE4NAR+bBzR?cQ?g+ilJ2|Ta8wbkqO5Rf`hC5)-!LYpgp`U+eC)1}H+~I7<-8SX`zP8pj!;WU0etxmuyPS*?YB&~NjgikKnerW&&| zbUDYnmRv8VH(j&UD0f?azrT%mfE0iMU<0@Sn*bdQ&=8Va`SoANKU=)?#M+-Xew`*x&sve$A5UEQ zYW3xdFV0PUf}go??SWUnJU2qT{`-^vSTmE+Lx*l&{pM0sf3NV;*~RtZyGNb5zdyfq zPu+fO{)>|zt=&4meEzNO?dK1C|IFbdu>Z|R6x4cZ<;d;FA4D_8o#*ZiK0R}n8eCrc ZV+7B~L+QY?SBK7FX<>PO{n#rP{|9dhv>5;Z literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_2_1.png b/resources/g2/track/alpine/small_helix_right_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5032190573ad09bb16cb99bf4d0a665ce198e05a GIT binary patch literal 1006 zcmX9-QHa}g82|2iz1;1#RqeEF5j*HX#)4!ljxci?XYPzg#$_xARf=Q~SRab!A(M`k zBVffM)rC>94?V0JMwOsd?jdL%B1Sl*NYKhv4O@}o!kn&1(R;YT-;BZU`#ydz-|q*% z?|b{)ns8v>k$nJgVD-i2^YJ_!*AsJzxZgdwavLB4=gzLL#B^$EYI=G)kx0zU%p{Y^ z+1XhP!{+AZ=I7@#xm=E>DW2zKSya`6u4~n5wb^WUyN>Vo!*D#A&=hbiNa8}FkS>+7 zB;$A8kowT4nIEK-TkYN9A2z4yx*)sgLaH z*lX?vHX8Y3P@P7Wgq#xU)lg``{ool8dB{sxNzE8#vSA7xOLg695ZF-^pjZnp0$o|)%#37Z z6^GD5)*Kh?N!i_P_V%118jOiFFj-8XQUxwslIcoOG>wwgFkHJ4_;wWfXfk9(5jlWD zKq$_l7Rx;VUaho7Bc|1S0KM1a3kA7UQY#gWrm76pEqepfgJM~rZ!Ye<2yGRSie(dY77O#Kt^*bNDym{l+Z;9hqf8DeW zfAh!*Yv;o^m#;QX7hYRVUb1g~d3*EGhbZm6CFf)6-^(AJl-EDKo?M;z>HC-LD>J$J zAD`U&?ya3Gr|y;EM?SVT+F((vH3huqH|e*fsrPV5s_SJsw4fBwQ7 F{{vzuu^|8e literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_2_2.png b/resources/g2/track/alpine/small_helix_right_up_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7f53f44cbbf8e1a6cdd4d2e4feffc643b1fb9d GIT binary patch literal 931 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_3_2.png b/resources/g2/track/alpine/small_helix_right_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..251476d3532a8d2dc3c050cb22b09314a37e9ff8 GIT binary patch literal 860 zcmX9-F^HpR6n-=wvfYv6jS`?u<*V2zW0jv72kWG-#yB& z?!LPNfL9Mc-@otc#Y+qaeSTg3kO2(f-7g>Bz6>ueE-x_aJ z33*E!xoB5bH}k9w_uaO6KAh2r!Ev4- zWNM-@tR)DJqAtvSnY#^^yUn&Ps_rO)sbG$VdnOgmn3XFg3oTnscZqk%SIwd5y01tC z&;cBP5Fi2A0h};EJyZ#~4oYHFA5X_^Z4TI3WscO-^{8dGLU+qDq3M$*l*b5uU3M|5cEG4K>7 zv$!ErGmUenO6bkvrI#hksz{o;K;4m76qEw00ioWDMKAXar0=dyCw>)ugHx80VQ90N z<+?V<`aBznTq1F~!tPb3(I?2HkVm5xhf)z$N`L(P_oIJbe&CPyj~e{=<)7dB=I-JC e&4=Ni*2kV-!o`2T|N2+Y;Nk7#{og-*{PaJsac8Ok literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_3_3.png b/resources/g2/track/alpine/small_helix_right_up_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d29d6ed4dfeb218f1113395422fb67f8cebce7fb GIT binary patch literal 982 zcmX9-QHa}g82|2ice&en1g>D&vZI4OL<}R0fN@5ax!kB{}?xM(IOj zkwqvY4`CK5tV)GE6p7e}LnGuNdKnh&VPFM&5N2V;)o~9+iX3?8-;BZU`#ydz-|q*% z@4IzvySR4h%qaj^+j@C(C!I`M>&uz6|L8nz17zUZtGicIIyW~rKR=(zWEK_{78e(n zmX&pSKw%|rRTFb&DetIcTW9txA#9fVT`lR=Cy9GJjfw;)6x4Wd zWUQlMp^Xna*;$`J6B^AFbmAZs6#ygv1;aEPHwnTaNtfgHB&k=a3{CT>-9}+ZFxdj1 zqoq8jkVTCunT+aidP}f8u@T5_U-6Slo+apFfs-jwWy_kN)unn{Y5STVn^Dq;C!Nu8 zi1Uz@AypQ?<6`nc>) zYQfYQ%(|14;W1jJaGcHMiur;}(JII3qEuJXWk%O-^g7)nif1Dp6cN*9+*I;Tm1-Hh zSC@lUrRSN$ur(P*v)K{i0ZITmfCJzG^Z>>fpcImT3>|qcN`?{%8Uqa;{30Y0AQ_OB zLpFn43HepjucO3;$HB883Q&@;s+u!vRKqEDTr~)+IQAx!7^PZ71sG$McXE=OSA0@S zIA>b+X0_nB*+20|XgDRaz~-?cjhFd+Rc4He=$KWvVFq3!j=V_{q1lKPMdSlY0HHLC zdMft>gk`kGW46_N0=?fC%4NA)RSiR9Xp5zrJmU#WDAEIonv@Di$s?0QEe82KipBK! z+4HM^J^q0YcD7}>{P6JYlzg(a`O@w)x4*b|Vg2s8r!trSL$Ckv={s*;e1vagf7!Tx z(K@UC`2x1Jfxr9R&C`E7cXs~R-?87?KX`WM`j^?C8q2%4{`s1G@5aH=r8^h0ubsX7 z`}3WjUvWQw?qlQobHk(G)*oy?*!_$?_;qmU#^L?*2WxAG%)_sYfA5_>bNkyXQ>+?% bB;SAWk?DW zBw~>wJ%pjK1$(HNg@S?UVT2qCMhMzN4?%jU5U@gFBkZB8J@hc(-z*E?dynt(euwY9 zZ|@%0FJHQL2>>o1y>)mmn^&{Ki-oM$kV66#;O^~{Tba$}a`}9|P$=x|?CkFD?(OYi z7*;G6_xJblYPHI;j3^3p8f*bv1sj=I z*ex$cmCcMmDT6jTx^NMSssJ*8j$vlG>=1-YQ6A5q%ks3*SUAq(;Shx(!B(mQ&d4OM zQ+1P89oBGpYaq6LsW(x)nI0q!k|UUUl~-uV;51V-J91~J4+ArZoha$W>1eqP%K}ss zz#BlefO0Wzh}XxI77Avpc9)j7b|Z8y(-ngw>^j|5`H>+`EG2Fmi@vq;+v~8ujeWF= z$`y{HRhDZAqOB-h!x-51xZ4ef!#D_*^Z9zcMnITA^)Yr-7AJ%=Hv(miOo~+&Z zW}IFuwx~px%N&l^$*Mv#2G3iP+|jdTt#P+E9gUMH-Yf;sCCpOFj!wEwde9R5jxrfE zroOWX2k9c(Y#t*4Kn1V>TmTvvd|MCs6!$HQUIAa>axg_ zQP4!Q4oWH*J600+1O(2^J+iFOz)AV}I#P7wCpC%F7EICO+0iXmB%ChKWxMw2T zt-)%=4f@Yy&1RyeDb1$QYMCt4=9s>~`XU=j%v`2ZwTg5SITRYOC=gIAWyjCGR{H1Z z4}5m-Sb^)0{`e>}jibXGCkLmW|9<0zUtTZfum6YstmW^29RK>hefZn=cmBQ>rf*)! z-Fc<<;U%mKp^w+Dk+H+Tf+vo56^oF>4e*WF5_b%Mut)A?heRx2o p{LP!IR)6)ahzLFu~=+^P!+075W{vYk~kkbGF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_4_2.png b/resources/g2/track/alpine/small_helix_right_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c7d7745e1cfc0870e8678e3e34dbe466d73d67e0 GIT binary patch literal 910 zcmX9-L5SmI82x5CGnv^s2DV6bBj!*rhcHCQAxMO%nYBAaC(C4|haeFG7A$NIS?nQ) zfH_nNm_u1|C|EE`SpwE&4iO>-3{s?rEc8$zLcxMLEK6B(s4|D&3=8l3KHlZM!+YP? zchB3$H*Vbkfa9|}rx(?I<$4Zl)&BO6kG}_~!QBt<-LB})&d%=cZmm|^+uPgU-#<7w zz%cCa@bKv9sM%_@Se6k*K~W@KS54D!9LM*^(`l5Zi#*?yCCh-ogDllmwbAR5eTx~m zyg!mBQ!P%+dFHOxfkhx=$;c$H zQEh|n*sSjH=16oxX&5WPT#NE9$q`Ju#VfR=bE+X419>pk#*q4we`{Wk4(_=zsYrjj}O(l^(kvq}7I7NT{E zH#my!uv}LV`-S{w$Jhxj#)LAbyDM?9R)eA+Z@fi0 zEv}YZRHt#AYc|_tOQ9K^=S@i-XqA{Xb%(RbG*7c~C4eSjrh?lV>GkN5C4>Vd9(8A- zy-Y^MGA+xeNC4;nm;fF?2rvU!V}L5iBC<>r1}I<36c{WF1&G>^%YYO>MiaR#3S<=Z z(0qXM0Iq}QKoX%NV?DiT_vxY6o&I;J7=fw-Fx-nL+|l1y!Fy=|Dx5KPafev*IqlRfAzudkAJz-`0ksxZ#}y| v!^>Z9W+y*A|L?C)o;-W~Wq)+>(HlQ}-daBT`-=ya4xHUSKmGCjPrv*h-AjYM literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_4_3.png b/resources/g2/track/alpine/small_helix_right_up_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e591916deff9943792806ebef94c46f665078b2 GIT binary patch literal 933 zcmX9-L5SmI82zT5nRK=cL5mj5A!5O>1kE964pE|JmRKT_VX_dRu-P?Wg&uNu=(cEX>kvV!7Jrr?>zmK08oaLw{G9MraL>OQmI@n@9ysI?d|RF?_(HN zsZi=tp1Wc)&}I`epY~RHuwADT0Xhv`0elr3n^@xE z^Kor6BhZRL8y#Kw2&D}G1wh9z6UQBb@F^Zxg3p9k`QdIA=DX#Q=#4l z(gw=MxKUl2P_0BTGtFCA!P-yJxkA?rj_69Xr}1M$j4d^DjrqV@hVD8UY_kw8Q@qAe zw8nC6LF}rkXBfk7cj9@;Xp}|K;^JbxULzn(pavK_#>JRWXLNfZ_Li++)s5Hw#b&a) znr~5+#&ND*m&k@nGX~FFveMHFF?-_mr{hVUW}Afox{O&W?&zf7p@+5*_SAUTo`%jm z8LsB(W^;*(=rsTfzy}BcrT|L}Pyt0mwuQm~<#UAslZCzjkp#H{NCjlpk;kGyK~V?I zdMFRzI(QCb5i|ws7xXM$sS#Yw9B0xDHRAkXB>>h(~?cs9C z4F`{5&1Pb&rFJ@oZJR9Pa?C(rLy=8n=0c%YS_A1Maws%pQ6!*DF3QinP~`+KY#VBU(QPRo%cR$DksZVzKeep|NZ8Vv%mj)@WJ`RFK&MQ@)OY|{!w)2#hY(` RyDa3PdF%M-`#0`>{6BoWjxYcK literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_helix_right_up_4_4.png b/resources/g2/track/alpine/small_helix_right_up_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e95cac4da495111398426a28e6d18f25995cf327 GIT binary patch literal 1041 zcmX9-VQ3q56n|~nUeZ|eAxO$@5;4}RoF&MC2S&WL*OJzg-q;nQ1U=b_`4IJl8w(ob zh8Ybb(8I-<4-o?1B;a8~jqZkro)B3+M7X*l(H)v$+~S-zYCaS!`uE1*_uk|8<^A~a zd+*%w_2kU-k!b*!SzBE`;mspn&G~&^&t49k1@OV~XEs(mIyN>oK0faA`6ebNCMPGS zrlv3q^ZWgQKp+x}#V9JyvWy^bl9W~yxlkxnDz!$#Y_;}WcQ_hRabOa_bHQ{voXtja z`FOFEs8soSL$qwA=HD zw%AYWgPb+g_C}4tVfO$9$xw)nM3T{%K*ps+LgDzL=q<}PO67LF;kKMnj{%Xx6d|OF zQ7ubW^NdjxtZJrhs9n1{=(a|q+lT>30Vn_(fC113=wpC9@GQzJ$k377JnMIu9JPjNRDIUv85j97awPanFEUVx+#$ezePYcfgl@Bsn zgx8~@Nyu(O8>Wp>&N`@c4$U6w4v8?(Q7jn`rI~0}pz;|`Q?q(mwT!aUG6rr7je0c4 zArp`b2zgl)J-NHU3;AllPgg5

#TIIxS?gQa&$J@d6#MFqFYkHW%OH$w4ZH#3)h; zRHcx~AcymgpI!+5b>|08omdy(*v;=>_K3Ze==BH+qv<` ztAD?HcK6Z8{o9vUuQ%t~SN5;Gg8y3Hz4%|?snFG}2d>@w&un;S>4l>2+tb%y`)uo; z@!u{@eN0*xKK03`emr;bgNK7VN59JLt{kP#{QUYc_a|lZ^sPUq12d^!`TgF)weSA; r@FxG#tSrjaHtA*#F`FTX=rQvjS@?>&x3qFTVXhV`jn8 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_1_1.png b/resources/g2/track/alpine/small_turn_left_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..023c010499960270b586e712640c5f4678c1309f GIT binary patch literal 1012 zcmX9-QHa}g82|2icj>Jj1uI6(X&#DZ7|u8X#t}y5<<5FUFY_|2T4%%zi&TjaXF2;2 zu*@nQL@ih`O4%}~7_sO%!t6tY3~yRzCMR@|hawgGu!pK;6glK?#^CpTAHSFH_k-W} zy?1Ogw{+m{0|2nJ@%Y+SJc+pQWFqcYE?-&(NWiftj<3gbW@ct~b~cen%+1Zs&(AL` zEMORxOePl>7x8R1%d(6p3W_3WTEQ^%YPH&IwmKaz2==0AJejZz2t3GAs!+(3N@Tgh z)arcGmfIb*>l?kWJ{US8jpg~2F5zaLv^1(^usc=JZ{~X)J=(2}B4;`das;R}lm)O9 ztgT~yJ>73-COra;7&KAQzJ*Yb1&{$$4AawTlOQaLa(I46mUoNAzG+@>wUF-mDB0G$!ZpF*kaX{8ePTdsa{khIfBV$d4-lVuAqy0O|G@nmZy868AOe6)E-Rz zv;Y|e@FI{Epe&4Q;kgb~@C7~0*9V3(wgR*x(;1B;$~n58=i8dtHI%Tb^_#}ft&aWX zG<4B0NM|^T&a+%m5X*{E*EG9a?$qmks}*|QU~g|c9wQ)hpqd!lPK#Ya>Cwf3SQ{3c zQMo&|_9mUtet(KmbUMx9c#g~}G^6pnA;~p0URLSU8@ugJ6oiw30IGx;O4?LOt3=xs z!L2D>ySVF`ecvASgURGN5&-f527m?N0_*||F+ee75mgN2Iwfh0m+#!4D)mg$C-Ydc!ETMa{ZGzw9yMHGRpqy!6>9a8lu zJ>so#!JU-5(`Ikq8=(G}$^b`VIVN2Y$dbZVijrlPoQBzT8)4v%q5w?>oFpL+Py`6Y zS=3^=TOg_xdpP9m<}Db#o>(X-rIJ>u=qyv^n5MwGBI`@co=lJOS)`K4q>#-bPe7p* zA3wK}`upY&ys@>Zz|lXiy&RKs8*7gqKls6^4-elN98HQB(e`IE8+XjKiR5V;ef#~j zSI=au1o`Aiu;#0&#-ZE33_s3VFI`@L?CR{L+o!*7uXy)&e!lSRJIgP8^ZX~DpM3qb zk4|4bcqq8*ujf_*Z0nxH**|ui?3IUZEWYy7((mcjf6p#a=RSS&yB|*6d*SI554^v9 zYWm<)rNg@a#qxctN1pj->+2uw^Y0q{NB*mwIY0O<8@_c!U1okUAHH$Xj@`n>`sUhK It1rI&KWwP6H2?qr literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_1_2.png b/resources/g2/track/alpine/small_turn_left_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5227c8fd527a8a49b7c00f90640d855c9bcea375 GIT binary patch literal 926 zcmX9-L5SmI82x5CGwE!Z4cJ4_C=m(yY&n_23ZWwLBmibTk2V2kt+Btj1b zqZT(v(11Ne>7j=ldI)P-MhI9TNDdV$1npvlfISp8=z?J>SY!^rSr*>+eZ0$ihxfiO zZk{!dF1>IG0FF-IJh@fgYB_kdQtp2qe!K%vftxpOUoYv-&d%=cZlzM$+uPgU-#<7w zz%Z;@tsWj85{*WK<5)=&RaG_&&9cmXzwi5_$s|gWMV1wt4ab5gfFjp4t={QS-5%?> zfmQ?ap$ z#V)=a*Ee$#3vhM+RC!E2^uI*K#WN0Aw&c9IR!e7xGmxCnI> zh&E6?pgoKq5zPs$#iE(E+?5p+UV_dQrf%?Lx5>CIVQffKOHKR6(zn)Ozli;98lrWA z*Lj+0aeP~px~l3L#<1I+xNbZerBSq6EQ+E)K$<}N7&peHDXGqx_DXWrT99|Ag}2yD z@{8pb)fgP-38G0gRE9MK!IBk6FU5KjcQ6}IvLxNCM9^i-QgK_Sybd$$iJ_xThwWKt zFXLgpOg5XxNCapBSO6YC2rvU!V}MF166#qf3{bXIXfQb#h!8a)Qvj)eOai$a3KSG| z(A+^;08fMGL6)GUU>$?7yUf6Ajss&l?Wbv&=P4?^$To1jn&=TqK4Ay)uX`0&U7`>j!v3;KPMJ|-MSY{UrleZd3r;tsfA%`LnrE*z*{#R_pkWRx33l-UcujZ{{6jIK6kJ9Z~gWv{odtw zj)PA>xcB=vKivQ2!Go87o@`%y4*&Y0^Y14=-kA&k{rc5CCcpnTcA0$l^=riUk4jxQ Ny?%D`-L*TP{SW+Hh+F^w literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_1_3.png b/resources/g2/track/alpine/small_turn_left_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..22eb6a49e62a0b6c640b6b24024119a1fb712691 GIT binary patch literal 997 zcmX9-Pl)4m6n^tJof(#bJybV4M93klVJR9Uv*r*rGuAQVWZ2A7p-5yScA#L8C{^nc zm28w%dNUdl<)~@tDa0&w(T^6^og2nW$8A zHH&i^Qmd_W0zHhZ{=gMztiUa4V%8`Swn{a1X5SP7rx3Qa_@Fk7-N~q%$3dZ?!hJquQL_5KK?3cVstI{J2E0crH(JGA*iXQ4_S9RBI|tU-KiQ8`q;@t3L_S zJY;0ZmVl@NWn*kJn{QLafY+je)z{sT-9`Hnol#l5lBcZ#*HVR!E=Q)?bM%2{jsj;A zd1%m0XIP3ZFl>nzDza>;YNJwVTUO9)M!w%aJRFTi2yhK32V+`kp@YjIUFr+9LD3yn zIwSjV+#a6vCTNLHr`c>aPmnU5Q#no-rJ9l~tG2EBL8~2iqj8@HMZ|PDZ776YrW;k> ztI3^4>A*93L1WnKj>kuc2PgpO05*UJZ~!pC040zFRMnB^qPQnfpfOPA!Ouf10g?e} zS!6NDm5^UXVGYGD+zy@vQGkMkmDQ|Kq3d?O<*J>I8AaZ37@xpa{y$}&?eiMCO8>qf_`M_q3ichR`diX!p>#eh(f zMJq7N_cy-`AKtqsu?OpGo2%Czdv^DKtg)`2 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_2_1.png b/resources/g2/track/alpine/small_turn_left_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4453e4d4a0f910ec74de1eecef5b2f5937862fa3 GIT binary patch literal 1014 zcmX9-Ux?du9RJ?m+^w4hD->2VNFQ<%G;nzcE@HgPo!t@da$W|V>q8t7`%qjqGc2>R zfI*838b^_eWmJq(W`+fi5k_?Z^H7c|QBLSEw-r~g;0?ObNgwXvXU5?3{eJnpd_N!f ze7~P;Ze)%eI(i5Ij;tMD*@`9|)f015QNLdMvj8v!o3EW%jp)S0#N_1U)YR1U^z_Wk z%S+u*%ww$oI@c6kumEFM5kST;H6GVfDT^R%mfaS`c0S+L_5FGsd0vW6 zq`4#|;;c+$R5Gj6ip6R*-f)CUOR_t%8|HB)MP<^gL<$O%Q+c&4mg{oeRoy`M!%8q{ z^u}JCgMt|f$R2mcZb6vf|LqG6{8z*zLkQrLe3fh-EoiR%)7+cB2{k!KlZ9EMS@x*Ja!) zkhK!$l%-ZJ-*)t_R~vNw(P$rW09gPHzyfdp+5mkFPy~@jB@H{MLp9ul#fC?TCE4wz70$;qn)km!9OGJ-qxgy0AWZPP#v)_D}A; zcwzbMVe{I9#^(Ipi#N+36Q8f%S=>3Z@W#%)m%q8X{24rVZ&CTWwwT_0&%bizw_9JW zpZ@Ol*}t>vr%Trtj?WmG_Nf|isPW{KH-!<;66YqR~-@2$hb@I%) zSC5g!zm%od!{0x;^y$OfdzUnd{CBn0W%h1t{`5zB3x}7&4?uqA;nBCQ9s4ix3u~(z KD?cp1`QiV?^tJ#1 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_2_2.png b/resources/g2/track/alpine/small_turn_left_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..38562b1e9bdc411bb0ede4ce0185d4ba5652a9ce GIT binary patch literal 867 zcmX9-F^HpR6n-v*;3X2rNrkFxl3k!=BDJ)WC!6HTAEVhutA_r6a=d$p<_wn)IeZ}|QUvKW^ zXHUL=0sznMUf;g!xZl;~px5=+e|&fg(1SO>ynofni;IiP%gbJ`*YEeQuCA`HuQ3c8 z3~dm-0y8ZR~10udDdn6fy}W12Yjq4O`n-9^i-d zsNIpMW>IUR#}J`n44?v-7-r+RN0K2;$Aa*ns@uur;CWwGE0pIXHyVost5SkV%QmBX zoD~YrQt}gJk!kVHOsfgSldL=zG)A#_!-(YZ{}slZ1(&FCCI z5v7@?1(vm(%{D=huU2K69{2mEX%LV$&=JP1aVaCU9Wyyf^OF(Rv#bgC?WTS_oY9cM zah@P#YOFD=B?yk9&dqL_y9pNC^`V2*}+CKXPZr7I?LEn7~uiFe4C^`U6n zFGvK?0UUr3AOY9{oG?HgR0+8bN@7$UR2pm!79ylFR4O11kWHX~L$Qj|Dca3Z6~ouy zc~B(KRcvYz-i%p<@;bJ%%rDENu1nN;krUwDp%@ZsOqnTdS3=krNjuBV(e5!lqC-QE zfTu8-#SM{~YMeV!LT?%`yewIiMN(G5iZOarp1oANc*%W`+)2C+s6TtI}tMbG1Pd{`+xO;Vf`|;(kfBp}`HED+c literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_2_3.png b/resources/g2/track/alpine/small_turn_left_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..07ef7786f1a471d08bb783c7fe261f9fb1b85084 GIT binary patch literal 1021 zcmX9-QHa}g82|2icj@ie^`Q^Z#iK%T83u`G27yJ0E_c*3<1&`x3agm8pdA#Al4+GH zQ3G~bHI7aSX4r>_RU#|nI0CEKL6|ownBh$-=Amd|Mds{|Fz(?V{$>n*-}mu*`F=n6 zec#8&S9AOK9oPo|`&XV@IuTDMuK8pl?wj__5BPjubESXHs&d%c5Y?fhYLEvRsRMmp6Yo=*78qIdw^Zo5G97hpD1J8jZ&J_yjQYlle z(A65(u%%X8>2&p8P#X*#fx`0KoF?K%K4Yn5Q)f0zq1(v!+FH0(9fi*B*v}E5P*CQ< zlChSCb!(}9D;@O+G@?W-tQU*a-Bn=EvBEy&jfx-+(Xv>{Pxl_knKs+Q+ks?gEpz*PGUedwCw zZeura(a=w&S(3^#Y>^krvRqSDyIgM9YTaft@VvqH_INx-KxjZVFs79fI)vP#iUXlK zEI6ZbXKZap?a^L;7tK+r6pQ1zOjf37mE&|#sw(laO1oCyYPCZ@hz2|;BBskJL&;br z%C7KkRqoiuE!XIG?NQ&4qT7fE$OGsA7Jv(|1u(<_#gGJ4(UI$*urHCIF;M5h%Rwjs zk^yNrsxioskXJ&zDheIAA3O`90C@>3skl+5>Q=7hsGW`(1ny`QpjeA20#ljeEnIRk zibrZ8XN?PPRPO9HdVAgg^~Yoy*bJ7VQw2U#l9@_Tw2YEdH#%-T@ZC}9qiDd2BJu!* zfKZ%8HI{n-!mQZCA!|1tK=1X0LP0K-)JjETXp^NIJmU&XSERQkYLw3+C4&qS*$nb{ z6o~Qhvro+J-2Z{ICst*6=GGst#Kc`$dUoy5`7h6l^NGczprh#5_ZPokJGQo2`{&&s zPwzZJJoWQ?@7zk9JbLgtIe)PC(#s3&!bjIXJ$3WyMdr1K4kZ?!{(^bqn)&>9$uk$3 zJD;@S!bFdYez@RVdGg5BD=$2J&R_rU@fQz2nmGH|og1_EUisR(Ghuy8usaK{uPxm; z?Y~MNIY2Mm{q3jC!(aWLIQPw&ztLywuzb0B>CJyzdzaU#x9|PQ|J6cwXG&k+!{7Sg S^Iu}yu(G_mbm{1+5B~>67Px`{ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_3_1.png b/resources/g2/track/alpine/small_turn_left_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef875750bc0ee49c73a20a45ca1f0201c8850d03 GIT binary patch literal 997 zcmX9-U#Q!36h8NF?%nkoq+n$c1NI?8kZ{REz&yk)ch*Zrvn|treaL3S!mScVHp-}% zparW`2-1fRTL$={6euc02U_@!npNBnSuts20X{aIr@yL%K8;>yx4z zS9*!PH|@szqZwMGah%I$^JGq;8J*`%Nv><@vTC={9CW%-5KhMeXcA^BxTTSHnRcpz zS66yYY2aC-z7vmv>GU2F08{`Izy|OD1^^QbPzqT@RTFtGibgU81`ACA{5(W5AO(<- zMGY3YGV;r4SVxfy4}<4G5Gd~ohyVEdKQBJ})ck9|y*>Hz&i1RP%iFht@2-5y z71n?M<52a%*)xBCxcCgA?3|&u?!WiMf2YUiFXEW`+3V-d1;=k*(6|dPoWJ_b(Hrj; q9*eKt4*&UiR&NVCx8CVk`$T2c`E}>u#)H%zY#k|Ves%cN`~L&KrL!#n literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_3_2.png b/resources/g2/track/alpine/small_turn_left_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3e41e7f5b56c90d41ca58d8d47c49e0d4da24ddb GIT binary patch literal 920 zcmX9-F^J@382xr9=6);Hp?=iC@6|#7@B37!{N~LCbL$8CaeDJtOk3t3)tyDQs%I+>t2CfH_MXfZO$ z>r}_2Rhuz{_aZV^py1N!f8!gED^TNF> zXZh7?iyAbJbFEf~Y%4Tl@Vq6-BfSzE%$)IJI?Ix@TnnH}n5E#hPP#qX9|++{nfu*E zXs=>FUnOPv6bS$-fCbesAG8vEp$ZR2pMS+Z> z9$Jo27QnOMIgmt9Wvpkk>^?nqJJZ0J&xdIm=6Q-LFQNqNXXmo-r7hEHmU7PhdlljV0z%rgOE8bQ0MV@>vuKD3z-6b2l6RJ^O*r z&rTJ1-pMOhKR$Tx!mZTk;}PEtLsK4k#%Q3M9CmX zmB9L;NX4KPgX^?#5xWtv$4wTrV22%?P)3H8RTiOO)d(Bbqu>cA{LL8r-h2GMyx$Lg z@4dIamOZ%e=mG#7TwPf{5ltd0JRXbstsiba1`vbw7fv3J=+xBI^z?Kr7Mq!wnVp@T zo14QhEFO=~&(GtTOom}-LEvRsRMot$Yvpp;wi~UM*X{O$U_6;HH1HfqVj`bU6^m)3 zL|3YuU6-0IrQOkceswr<1PaS>2~EV!T-s8}hR$3o3mrSxYiYqwB@CRsaW_kVLV>}9 zC1Xtu>r|72W@^$SP)MVRg7z(hx)}foK*2CAnKTK)B1wniu1V5Pp)fGbdyNL_bOI-B8SN>tgrCTJC@(ohWF1jXBDU~IRELF{MO;u>?vR_sQwmx#p zHYs3|X$KYTYne)oQ2F@I7zX?~li01cU~pjWNxn&?e*_RTv7D zQQirS_SouATH*d+4<)E%lEv|CIwMoG%5l0VRg`F1sa37*G+RN}pA30WL`;{HrjoXb zRK3Kz6}eq6?6~HjQx6B-$>bj50dfF3fCb;Q}~KoKMXm2~7fC>Tg2XbjYN@Ujp{ zfMh@#j;aiDB;*xQuYv*x9t6*VC_qlaiYjgzRL#mZ9ktyq`@S27K8m!60x+cnZ{d=Y zRy1{R3f>DAj+lsXvEg-htPXHA)l9vMYUAY7`n{THqW>M(-G;uM1{EwQqssIQJp~^ zk9;vYes(dj```yIoLG}#>5re!MdZ@z@^dGj{P5k6#Od#s;=(uR?ZoPv>X+aCc;0LM z#;kAtbolyr{K}OV$ve~|uUa?Wcz}^)}`hF{_5h!;M3Hzr!SuIGiP>JKG?o|_4AL9-P$L{>MX2k)o|t^N|-$fl83-D%^ls5aXFTa42#4Oy()dkLv9A? zL%=FU>Jev!GJGj<26xJs;0gaV;eiasTlC8!G?_*gSV(Ev7RwGqba^i9}*cDwHD%mV$(By=`GhV|;{VLLPJ=TMYKQw1Ga2>Aqn2%un?mQI_woJEoj%kGNeUa2%R%{#3Y>h*GT zhTyV!5oZ;$pi#0(s}`%4Y-jJlas@jIpsn>h0R^WM~!C*3(AjoMzHZi)L=DRtmPnAY| zZCrFBqdTz%(@u0WJVYrfoo2Gx0!~O&US(Nb5Nk@jtkS7B_S&7$52hmy6amwvw5i}$ znX)UKTa&tWY0ou>Jv$ou)9D?=0muM4fCb;a51KruufRdnP!C>)9;Xf!l9@Cp!$ zfFwX#7S(Cwh{!9Wehq~VJP4ivfd^T{%4*g$sD@Q&J8HLE4FWfc0u*cIN7I}uh*TsKNWqawBAZ4Y zhXNr!e&$r_p9ep%eSSlNGk@LQipi(zt1n%6_Ug_@!cyXeB!2_FQ@!`P#6JF|y)M1? z$=dyuAHI6zGCKL)wTrJ_ye6OfWmD>VCVgV*?o)|pzI}ALWn3}DE6e^of!p%;zkPH1 z)?5EwA6!blxqbK2uUk*gg}*;ZgxjCLfA-I-pFI}c4!2G$r*;DAZ*BQT1D-!=Bwk5= z@%G32N<`n9J+q=7?7w*V$Lqw7`|or6f86`&^v}c5&4Yu;j*Y_l+Q#bFFTeKg|96nF A+W-In literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_4_2.png b/resources/g2/track/alpine/small_turn_left_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cc07c6f45a99ffd8bf01369d877bb16b5fec4a7e GIT binary patch literal 904 zcmX9-F^KDQ9RA()?$Wz*R_zclL(~o#f@Fx8AwxWK&v@jxJYSv!tQaL=g(4XubO;zR zLXi#`3PveXF++!dMQ+FtAxMUbMKc^yC18h&5gr&cLx)5E=JDYB{eFDQ_YL3o`{eGG zbb9jC2>_g4ymEf8zK_>))NIuI->?4q8K41oFYn)}>E7Pn{{DWW(Kt9bI6OQ&Iy%BI ztl4ZHA0Ol0ZkJ^lQ4~~FHjJKSnXc>l{%o;`()1?J%c^1-5O`4JR9?DyA>^I$eZNkXulu7EQN$?KG4 z(wf5>9&b%WHfLREy$v zy+bX!-R5vyBD*Th7(8#u%1E!p?8SJpoGKJ^XnQyCrzI5|DaCnK|#3y|5a_JAZW> zZP2=;I>3>b#I$=3D1Q0%-=F;w`{Mbx8{hu|M9`>6H5L)%Sk<;Gbt|1-Q6#b^i5BZ+-MXc5{A{ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_4_3.png b/resources/g2/track/alpine/small_turn_left_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5041c0482eaa7fa2f8b1d1cf489789db6e341dcc GIT binary patch literal 1011 zcmX9-afsV=6n=NTyWH(uD-;P>u|n0zWwVp~5m<&f&7Jj(T+Yj+8v!$nvqBj`GAR-v zYLP0@3$7d$%P1PLVqhH{GjMg}B$I+gBHka}8MT9g757Kcf+w8rXU5=r@A3Wfz7M|l z-dkJE9X@pLApkhM^7PVrG>=9VpN&QR{eRCM1Bk)evnQ7$Ix#UZIXM}N#ipjFrl+T8 zW@a!9o1LAVo14QknG8i`IgS-YUQr}XQ_JOYt=4F@T;Jaf!_jz5Wr1Zt;O8YNSuCbY zdbVORwYt!3$!$;T24;U?b0n5$=2ady@@Y#U8XC1#=Db?I+fu_$WfGx zmWVY~%rg_cW^&w3p5s|Iyg49ZHcrVX6( z$gAxK4jTB0Bu$WciY~BRNfb>*sh3JE)ASmRz;*k(yQ9$vK}rRphEdG~*G`FDve4%$ z1IZqi+9PXs+!`MA_R&0O zmR&*(8EYgt<5GLS);)0hs5c^#K&P=>HX*U;qDbil-ZF}I)o44_z;}kBkH&qP=aCC2 z1cah2Dv{hBq{@1IFre$TJJ7maPLjl8QPFjk%9iPDjinrp^7!noKo0X6B&U%6Rdcy> z>6g8Qx3)K=g(LOvj^B5q^G|T%}2h2pQbjyd<=vvXtn!SK1~BeSrwyt;Jh I$un>N56*J7TL1t6 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_1_1.png b/resources/g2/track/alpine/small_turn_left_bank_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbb08cf374431855f255cbf1e54bc53d049f1a1 GIT binary patch literal 955 zcmXAoL5SmY6vp37XC^aS)_?^o8!%wSh+&D6LzK8=-OSJ#qmyN`7&M2BMy*mXtXZj8 zAz+0d5yEbj9D1l2u!q1_oI?&3BZhTg3I?_;T@2Vmb?dr9(H;h!!{00m-+Pbm@_vW! zy-&~YR!^QdbpilR?rd*f$mglN9$GKt{m#oDIRFJX|Ki21+%7FGEiW$@3Wb%GmDSbN zwY4=2!`9c=H#RoPl}d$W8Br7zMKTP{vdmVi<@?=!KT48OmdzInmH~kWSt@E;sa_`= zO~!F~za#hh`XIK3sXLhlB8{nh(Ui)zN_qy>wb=cZ82jq5Z)OM1EDMh2NtFPdhK2y1 zg7r)+cJXnqv=|a-#-N3cjy;5u3V;ltW0;BKHbHn474ZDNEFaWrW81#l?V>m)*iuC( zGcw8RRMn(an>9S%>WHmSY7dlPs7G0irIYg zT!4}S1b<(TTou&{v z%Aiv_2<>s)nT?ah;w};ZQ~(RW0|)^Q0HzqAT(XFo777EDjb#c<7TN+tRmfyO3LvwL zTowf~it1?Spe%rU!E+#qpvqX?DBBIX?Nxh$F&MPcG@Q*+l(UE$u+5_2mF0lcBg)Kp zZ?1)l#^A^w9!C>2o>L{@NUX}>nn2bSwpo)ryB@UdLD)`{aF!)#G2tW$MSwCuD9^&l zarZ^Enw{yC>-hI&4TqwpDfPP1Y?>_7;uv3GLy?UoW+c-ywSsgK*%a!qC=yUA<;TyR zF8+P*2QFXORp9LHTW{s&ot@3+FFtYQi!0AQxbpOR;a_B*`Qz5!rRN@f`0y3gJ$LOx z?~$*5JA3Fn^WWAdKVACv)hC~N;m0pe<9}^$-~4WC`Jb=p>z%##AAj>b?eg^dt9M@8 z$+q>Y(l@vL8*hL9!2@S@e|^32^DjTV@%!PQIB&fB*k_fOmU1ZUZ0&AdJGb}o|Gu7> AIsgCw literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_1_2.png b/resources/g2/track/alpine/small_turn_left_bank_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..83c3d210344889ffb2b97deecb05da4544449d3d GIT binary patch literal 917 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 HH^2NJ9qgYi literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_2_2.png b/resources/g2/track/alpine/small_turn_left_bank_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dea5f884139fe97f9125865de829e4f7b95e101d GIT binary patch literal 868 zcmX9-F^HsQ6n?w2yUyNl2$@0>3kg$LNU*T5u<#Q1@D{^*IS(v^7!WeW6c&a|VIf4w z5ah5Jf`loiu$V%K#TFJ876zu6!eWXESWGb?7FS3RGJ!4rcpQB1eSAE4U-7;7%j*aE z`LoZS0l@S7S9foEzUu38IOzMUAK!fgFo4%zzkS)ui;IiP%ge!FaCLQceSLj%bAw^n za5%iZy(K1-3CFRLBx;&sS%%}-zVAoTI!&{(+}Cy6bsP(#0ID)FjPYzn&0Tg82+>O2 zq-I_?yDB)IVu`_YVPq?Wr&FOtuO05umx@T=rFOktG5whHY%D2=K#Z z-0euzu&6W9Q;1MG0Z;)<46||EBgv4aV?lUS)$Me8@VxiyH7W{{8&5=nRVl%wWt-7G z&I$!*CHaZ6%(ZxDX7!ZfNmiZ+8lzaeVN3QxU98P@W@nXG*2}8d9M1(V!dL@h3X}_U zi1BMePHCeM?Me@hPTYnidQ_RQ#glWH33Op&Nx7p{zIBM4Q{uNpbgmL~D)BK-Gdjml zMQN^Sfn}}c^E3#G^}5Qk<9^?^EdtU8I>NXOF6E@QW2Q%GaWdj&p10w?OPi;|8I2em z=LtflCK|(9g5W6X!t9s1X|UXG(z>j=qX?#gIU4SnR5)W+u9z&ed^O!B-l14EhqCM5 zBN0FcZ~#Jp1Yiqr!T|M9CFD9NiBWw}X|Oq1ijc`rtAI2>Hh}^T#VX2XXtzLh3?G8$ zL6JaLv6)49b7mRJo7l>8zp9d^sZj4lPJwerVo0blWoEQp3t?*{-8?@>yQl1k4lO+f zp2B1nH$-Ztaqd(Jy;;2U@?=?+NmG}oJMxNxGC(yT)Mv5i?LLC^-PP&DucD7|c00*1 zwAsvZU7KTlo{dB8G|NVP@~ literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_2_3.png b/resources/g2/track/alpine/small_turn_left_bank_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5b68eed06c88631e0599c8657b1d300e0fc798ad GIT binary patch literal 987 zcmX9-QHa}g9RA&Uce&ebL{=rtJVaI{LXbGK8C-Cg=FaSlT*fj8l0k&P741XB2vv&2 zGY{b`7`!5VsL(;c3PHPh4?#L8ERI8}M7TkPObb_LAEuVk$ss5F?J@Y^_kAzF?+4%a z+q|?UA3yr!Q2;o;dU5&kbaID$A$Q2|uWke6;L;mcR;F@hX6DF|Be`5|c6N4dZf<^l z9>cJOg@wh%MWRqBa2zX1qNXX9WjK!Qd0xHVY`5bi+0C-?WWuo^3ZN=WhLJCosB(q% zt3th@w%TT=>-5sHgarVC59Lby5=Saj3jwmqp^*L!U{+wn(PxIa#05=;ilA_N-N zvaxOz@3-=k9*IUQnwaPyKqx5yr~oF0**NZ!WI)rQAZ)AZPO;c`-TTcZ>UK#kUl0ja zr390fZAN!FD-fK99Eizmx6Q`Lo*C3PGv^{jr~8Ajf?Ti;J3 zG)(Y3Pcu5l7e%S8X;sT=l*{dEwcBi_aXi@F9goKdNE_%n#F zI*sB^%0f5{o(Dw&UByZk;g*?NAh$xR)A7K^iQdo04Q7uiPQI?>|fL9b01IhrQX%_y} z?h#0@(ijf;M*R_-UQaR%tyHoq6`Nx{o~?^qBynAZ-Bp>9UO*;=TpBev6pJWTrse0K zTY7N#1Mgp6)8N7%zphWk=IZh*SDyX+i{SK$AD%jv`xjMaloxOR`1H!BSNFdD_~iP% zv)_EQ8L!_s|M*XZ$EyF#pSq=AzxvV>8}E7Y#%Fu4zwj>cj&btk?}o>2{rU5$yJwA? zy=(sO2kr-356^sg^S29*KYRCH|3B;8!wunl?U%K!z2(1$Z##?E9$Y-}q5Az_H@3{{ gr(dJkJI{#A&u@?4Jag{O^e9+eSzG@0)we$RA8@&-i2wiq literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_3_1.png b/resources/g2/track/alpine/small_turn_left_bank_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..737c75d93c25cd12d78d1f7e1f4504e7c14a68fa GIT binary patch literal 1003 zcmX9-QHa}g82|2icj;Z-3ihGHpkeeOlb{{OkwKWbnLFxT#^tt5@(^dlfED|YhYYF) z4Ok(%!on;gN`*cIEF*9QPl!-3unrH`8+kai2O0LEY9A(7c6A)bDSvwme&6@;d-;Ap z_uZG*3(qY8z=@SNmaa_ZspCo}CcSs(!F_-PtY5miJfTxlQ`6Jai9}*%W@dJF zc5ZGC!?0vBIX^$2&E;}5o#%N@k_1gt3`4I}Dz4jTwSrD(CyqzsF`WmF1yM*TN~TmI z%4XiKvTj{$w$yfLbfap2;PDhDvngH3S~B5iWW%60D}3n6-IgA2*~8d7791ZhmtfC_ap-v7!1W++dPp2&$cSzD>*-cU0Di(W|^{CN6VTjY2 z9GA_D1gnw-osunDb6BI!SA3z?mb|VS#6^O^^MxEMQG&)OIg95)S`8bGCk-Vstajw{fXU75ltB zP`qKeJ#u!&t>IDc0HvsOn#pDhL{6ge8p|4jXseTDW~*A;YPRA|H12bt3Ya0KEtPOe zRNdr!TWZ&fTfWr`>%(4WJbr{Y02#mlZ~%OOEr0=bB zkOWB2qAHC%5d|gGwNdQBaqtWXJjfze(y~^WsyT(Gr?uOaDDsEH2u-x`BG6`vbF!jG zr~#?RtTR&lak+iqc8`KS>W#<@Fa%b}rxlJUNwirM9INEjthQf^I{q;3pmCoO1QY;@ z0ij72_C)R}@QPU<44At66h^npD~ePqX{M>u`3jSFIojvxP{{9y)KJbLl|UAW>NE;C z6bX~#XI@G@KK_C0SJot0{A>5U3HfGa>EhKhw?4Ub@!6Tv$;2V5oSr$EqV3B+{8oSd znLB4*xw(AlpKp^1ar?SQ?0&Vn@ZH^4n_s6+?LNF*mbJ6{=Ixv7iwku4jh zUATR=_3NMSe!pExZvXtDv1-3~^4jOFdHBcg(=Y7R+^M&J3VNyabK8eER+rD+_(l2P y@m*#AeD~ADL*k2#3x7}Ty|sss_~ZHiVE?s^YxkbK`R~LetSqlBZM^=@Xa55}>93Cf literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_3_2.png b/resources/g2/track/alpine/small_turn_left_bank_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c63c69495c9dbb43eda7bfe41cdd371c741fef GIT binary patch literal 928 zcmX9-L5SmI82x5CowQrmAU$L-ha7syAuic9NDetf%`A0{Ooq*{6^ca2vOVOGLw4z* zhrsqwmZ%ZB5Z!`Ba_AwjMMlh_LWH0Ni$o|`Az;Cx0Y@p4Ll1NKH_O8NzK?f#@9^ID z`0TWK{o3o-0O0z`d&hT*TP^0*N~zdCzyH%yfD)X2aDKa>dwYBP`}?I*>EPg?TrM9T z9%2|)sZ^@fD$!^(IF6MhQB`GKZ(Ekx@Ao}#Je`JdyiC(=o^vdS0w{8=-L4x3)$OqZ zNAO0~YmqqXjW01+OQ@MLVYet(r^gm|(U&5xwV0aee2}I7ZW}jA&=}~7;Hucf z#3Bb@P3rlAL>Y^64PChi#SH)jK*KN-$8C~yY1$Wr3q_fCIxE}09FI{HkzBnY60AZA z8r?LRmd)v|V2z}HAP;A%ztF<8L-8crYzQhN>wMdk%z-i(Yva%i6FW|aNj6#UB3y*J z3PcB}9?&kvkBR1#Zbzb-w4Al&Z`~MOC`?`F$!?QzTEaw^W|o@t^_6FBg8nx0c1eIX zF<$3srp56cQR=FyqwAw?cj`FNc$|dcdb!+gw+KiRXbVja&%0Mf`dQ)dOpG?y@$=4!iGG?i`tx>MQjCx`)P-mmg zJg`^MC|kvOeu+eY7Jvod0t5hafDHzyfFhxug#sU?D}@G=gP{mv6H*0`3dkgo!y#Wm zp@9|yl=|=@cphX4S_)?9gxzI^Zgb-6vsph$f-Fl=;YD_U>(xY;P<%=YX)_hvZ9B-j zvz@oN3fE}0rR%^`Sd+!uB4wytuOqv*;ScRuFihegOJkI;d09pwpcD`)vKSP0FG2Qu zqs@jNc`sot7E-&d8iwBMnH<~aSx@8wiHl@*sW4fqfiw!)G#YUz6j34<<>znI{(tcU z5AK|*@b=%o-!I7N$?-eql`n6662A7s%~wj_pzq&&{OcD_KK%!;9+jh`OaIA_e|`4! z&(Gib`Zw8mqojO$*Zk$+qx_ci$5;Q}z2)7!f95@SH2F_`c4B;YepOy+AKoL`hew4n OoZLP=e)jIikDddW(u)rO literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_3_3.png b/resources/g2/track/alpine/small_turn_left_bank_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8992033f0aeaee8639681fccc2dec85e037cb0a2 GIT binary patch literal 955 zcmXAoL5SmY6vp37XC^aS#|l*|n?sNuqJ%Xo5d!8AcQR`oGfs9livg=-CAdY(l0$?F zRRR_%L&P8j0~V|hu!q3*Foztnm_rT&_7IoCb|GrP!Ui2MED;AB^lz4h@4d%&dB4N= z-r<#l#`d}M=Kx@P?~UDS#XMisvzw)&|NizTeSi{N*}s0duq!JotE;P}QfX~%ZGC-x zV`Bruu+7cQt*xzEy?H3*GqY%P|qKw%13*2S8s5Vl5+4CbgOgpM+u=*e+EP2AHgYT%$!(BZ+B zv9XSYR%Je}=2IM{G|E+UW+N2U0VDtw!}LnU#BrM>U5-1Fq~lg=Zki{f5eh?`sn+=# zEfJhbHgrlc8O`R5q0sZhK_I(R)lXUki_?udCsU%vHg!SoOZ|~L@^wEpqht`L5EwZ?>OhP)mt*1~WzJ3>biRn=I$)1WMc8*4&f$Z=1bJI2!MWubE# zduSO|sw_z<4BO&`jx1Z6HtcjJmKBahvF|Ttvn=wGjHtrki$x z%%0_w^lW~L%2cJo)@lu+E>pC|afT@M)nZw9VhxVRlO&4s1rMr-8FIx`3A;@VyS&$z zgJJ8~Gw0zjokw|of_MN0zyPoTJb+_>B?hRFB%rQ=JQpQ%i3FX20S|ry5($tDNUtG_ zL9T@SHk$TP;=-fgSr7$KB&@B~%nmiM8)H`sf?gbZX&R$~g|~p|mU+7-xrFMIdcxUR z)5|--sWUzE7igZ5RbUCML06hQ(UzHROSH|lJ1_%p5Jz5`L?~adqKJGz2_RHt(Jye1 zh4;F{<&qsbk7Z1!LbEBi+gi7)Gjxxo9iH(7CKTzJM5Rg{sRS}fG-Qy^qgX7CpS@6i z_~-{dx^^JLYY*<{yO*xN@YUycFFjd$`H7vYf11A@t_0TWf85(Y`t+aOs~5LV zUio_V)-$d8mw(;I-+$+#l0W_K$p_Cpy!*q)7jEAA*4h7=`9d1se(&(78{gdd{@-7C vYxv*%#qWN6^MO;&ob;(X&(~j_?EIaUwar^zRDJ2U0t$PV4|Z?w-1zK&JO7%E literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_3_4.png b/resources/g2/track/alpine/small_turn_left_bank_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0b0cdd5d4805d44f6681ac125389d026fcf45021 GIT binary patch literal 912 zcmX9-L5SmI82x5CGwEy{3KoePA+S9}2ofPk4iV#;S+YZ9vThcF^bj#<(F!?ap@)D0 zgH*{ONRbLX1PNL&XptTw1j!*_4-s;hLzNsV6zpLRRRR_n@HflC`@WBNdGGMv_xb%x z>Fn0?w*cVm;@ zQ)M>Slhn!!Z@mdc8q@feDdUbt`UVwP?7|h(iI&gJayivr&d7Y9> zT60*#=dG#eM)EjO!(5NcKFJY`)a6xLHn^TCnj>Wt=s|48g_D)zVmn*!)3yK|74SZg zHc&ps1-LY)dZ}O*nzy#Xou8qFLU#;~7)rFK@iRkAEVXcr)x_FF?k=6|iwJG9c88;A zjph1+I8;^7Fs8%d-1E{PDB^g1b+y~=5D+F%6O5g;#e`6Ey1y1jn_jpbCOiMCns0Ab zd(@)aZ4SpJva8aJ!Sj}^jPzQ}o_pivY+hzXwH82^F-vVbI_VGSsVzh!HJSF8k+Vvt z+f`Oo*GK@+04x9>AOctdY%oAI6cO1Lib7Pb6beih#sb6=lnNjfkclIYMWKS?0m?_H z4B>I`9LOSQ3N|osXGo8IX%-qu;ub};-4>|!BKpAEEy2f?kkn(!EO~#|i>hI=pX4|3 z8m)Fz2RIUwn08Mf2P$j#W#1WuV<(BmMHX$#3{`7RmQf6-1cd4=Mz!4&5UxGlY`E#< z39LL9dp&h9Fl^go8JA-w0vm~JDl=CKz16x%Cy_&;DT`tO6>?pE?xoh>kAL9NgG&`& z|MR!^Yx3H~`JIQ)e))az;~Bi%Y~1;0jk_1)r~Z2M^{a26+-}U?`t-xayV5J)>i=QY u@5JD%e}fM`vw!*HyUXXUzgc|r^X)^~5h7%A+NdX-^uU|D)+}D>&0R6j;BI)+Ac5WFrcv+1 zp+Vvn<#1shB_9HwGtQevSK*L+xWOqYi*l1zQ+G&|)TU4*jC{z4uKvv!{N8)~zPukl ze(#+>zK}Su|ImH_IFLLxdtx}_!#X(O8}@h4k1+r~I6l8PH>4vYBm4I4^Z9(EqoZSE zW8>rF7=}$uOiWHrhN96ZLBtt`=6O~W)3Pk(^Lbsb)M}RFta)Cq-zVZgQ^2wQbUK*L zMsiBLP^9!SSFH(kTW-3=cE@0FEJgVxHl(H^ni#9d#7dsA^;EMad5uEXGX^~;5e5N= z91R+eRVB%S3}5&0&oBVhDm{d8V+l*m_bo19M{NXTB^EJsUX`9 z6Tv7QigOW4h$SREr4ph>$z>*QvZXq2GzH7cM96SF5v6#X70I;3NCmD?5h|8sxvJxp z+-|i!umdy%c?e}7qCiZ;$VwNtTQ8N*WqnW32+&lg3poXgdUMY~dQEvvn@*6Z~Uge8dS7*P!{^)TPW zGi|2ONgLf$#u-G=b(O@ zWLabZ@&KV>7KNeQJ%sa0xzi!b`aQ_aCX-I{*{rB25)sdnah)bihOpWA8i#jNQ6xl= z8bf6QSu}Fl;qjA?`)}XLqb8J5@^cYe9@5-G|sm}WL zs~^lPZ_F3&tbQ3hedYGq%YTnwI`h-!$|3RVlQ*{37f;PyJ*&+9Jacn;`}(!3pG`?+ zQpa|_yY*W~K+8^?rO|2{}Xo_%S0ySe%OKhK=WufFnea)$k5^2OxuzaG5_6s=3A z-~2W?ZSSr3AARe$)!JU^=_A>5f9ac){@+ES@pA8tt?B9yzV{9fZ9#HwVfLG&r{4b` DTX@ZD literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_4_2.png b/resources/g2/track/alpine/small_turn_left_bank_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..bff2d8a32cbfa7f9ca53c4ca3083154287ce2482 GIT binary patch literal 917 zcmX9-L5SmI82x5CGwDoOBNQnZAz)bo8ze44a)=P!%#azPlVP&hLk5VT$)Sfj1nD72g~;|Wha4j0kVC-=0gF_~p<=-t_E4mUvdrN(%fkDQcIQ^5zKu+`BkGy{_)-)zs^?YR`W5e*&n%)klxdD!R9~x4*w%tJMw;4h|0wkB*Ko z46E1c$H&L5cDv28j3^4KDjSAoS*Gi{qtSRejk9b~6r1gqWkBFTksF%U?DfdL%?vz# z6eyFao}|`1_g3prq_Ga)Fy)rhA$@}yTkNeXrlZb$Y8JCWS%kYyCJ~_1&=Uq2u5o2DlHqFW{T!O8I1LDY{t2h6~nxotad3bKvRWQ z7f2f@ALGU?X-a9SVCEffWrZ6*L$?auG&rI!(O!q27-C|nxoa#();e-G>1dZnXr19r zj-op(*A>LRs(OYI^!roKOUL6pj#rDtX0t&+m_Us%c7lruq0Z^7g%8LL*7sJdesUN0k@R1=el|eoF~SJ*Lcp_cvO!?I*j@ z{4QRh<%VhkM`99#YXaF*S-UIyPA?ofNi@u}s4OzHU2(FEVn78TRAn)!>|TLz?O?s; zg3&8j^SP*LYOiP5w#hOs$BYCv64_K{77AT<+DIpnL!p30v4C>9DnIv5ASsIOh|Z~XY{x910Ee`-%2{qx>6egDbLFJHWW z_|})_Cx1M!pZ#|KA=mq1?@nU=e(?L#PXhet<|_>U=IzfaIk-5xJbm`))9?NV(X4*u literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_4_3.png b/resources/g2/track/alpine/small_turn_left_bank_4_3.png new file mode 100644 index 0000000000000000000000000000000000000000..90c09421013112a82404d2feccda8bc81f54a69d GIT binary patch literal 1057 zcmX9-acCQL6n<^mUbC{r5in|S8OC|)Ay+uv{c(<)UQ1SQ?7CfDEcZw3ZZyoO2c9L+ zC~*rCW|+r}8cOE!$Kf(L);QX6&LD>kG+-(RW)Stz{1G)^l{f-cR_)IlgYUh^_s{$I z_})7|eJrwj*F(DiVE5FKi4*Q5-P$|qar@%=VGh6p(?@3}T{zIC^?JR5a5zj+B*(F$$jh>%s!Ar4DHKYTidm~Q9jDjtQzWnq2>h5N`4fpy zGDT){Ora>0E3vAjHtbxxqjLlnWyTafkdB5l884~SN`|uv(MCma>e;TNZ}n=CAjAkr zvY?4rS;4HFuT}Q<8$r}1Q9p*ZHH2zm00AI|VT#X}4hA(G*BNF-5bE)GE1ljfm5^lx zDSwy^kV1%w;Sq(1rYTut)FPKL_<30VkJ{C?R3q_ z+ud?|%kr_{7a}u< zFC7bM38I){jjUKL#_LA9Wfi-vTED-ESb!*i3ZMZP0Cj*42FQiLp_GaY9XTxl2Ze$> z3uXiy0gwnt37{N>bOD(O)W{-7hr7Ykz;h54u!I~)CyBfkDeH2znz3!8+qIFa6^sLw z8e_G9pod~6t~iX=lZ<|{x>aawn{CwU;eMb)ScLRRY$zd8sW`8t6M8;fHS%`N=sGpj zZ__-FOh67G&dewb9@tNlYZKQ(sy?hm|q;+P1BfBSykCHB z{bc&arvtBeA6*O9_pJV10N?MIb4Q+7o0~73o|LMBKD#!zzA(D*nDWca!S*2}Q zURXHr-Lks$*Soj*e>XPv-n_nk=-SycU+w(7dG^np=zq7Y^=pR)O49iKos(BSbFIPD M;-e0Z1{4}8XwO8bodOU66b#d1F$2drI>kz)pfVYa*GgikuGAgP@r<@#@dl0F z*o|=zmmraaWB~{hW9o@?lgPN7=E>!rZVk;g+7ijQ%Ha7lS(e#`%C~gME2`b9-nWZG zw>tK0)NjY)3_;2?ljZolB$ZXQmd`iKWw&1U9H+OtI~)!X;2IEBjBdpE7A|$jY>zMX zGu9yA8k)PK=3uWoMo}^rV-ksUG9{6e%Cfp3mXu℘@l%G@5?f8}&F)1WcD=hLSXM zWUav2C8<@*?$}1xtqr>E(da7T0Av6izyz=Xb^!Vqpa3F|3Oceah7SZb?P^gMeo@KB(IXMrw6IWr+z zNyQ;FpEZXWdz5dDtDQZkhq^-|4onhDQ?U$}%t>@1E0{*ksu(T1;MiJ<4xhJnah9u1F5#6jGANAW)4) z4u?D;IDY0p^!m*oSUuN))wfXq literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_1_2.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d075cc4d0d0b9ef26693f7d4b7edcc8de877fa86 GIT binary patch literal 1079 zcmX9-acCQL6n<;kUbo-@uvuU(L1-r$h4Ub|Rt^vZ4+FqD(tG-4*F-dtFN z2A4l#o9Ur}W*Ri={Solyf=oCyuBS!`>~J@z8u1)avMuOf(M1W;>CcS8_uk|C=Y4#9 z?=8>IMaDL7+YA6>vky=2@6X%&b+6ac?}b0?tpFaF-*;f9Pd9DaG%zsW@puLY2Zx4+ zhKGkS4D))uBO@b$P$)!EVUA-(k(cF|sw$aGrcfwVDrT*=?z)|BmkI;RfWVK&V*W$| zPo~1z98)L?<%(3bRNKilTRKN#QD#)(1L-KP$wWz|PG>l)5Vb3cThF##z1OKlf*_HQ zWI+?LvVvJTU!&~r+CkI~qppNDG=yp)00BV4FvaIf2ZI_x=nQjO5bE)GBb~ldDj~}X zQvMJd2n#qP5fO!qrYTut)FPKL_I+2r57nFskh1szK2v z<4rExis|iSwWF#O9~}rp@Q_G`Wrk6CAuIKlr7F36y-=a zMp-Q&=(uDOipyx7n9)sEdj)&LY@$Yo@B@uwk+3hu;t7#T#d$5A(DUi4k#}lF+pVE) zljeD30&)SNeiqrj+)V^CsbZ@|7YjF`+BO%9iHU@qN-0!0Lx&42WpI?mht~zN9StD~ zM`;2TDP*$9;rqu=Pmcb1;|C7!pA+H1%RfHZCzocYrw;6S^=cGiUDk?%)P-efsI$lb@H5-u2Z*?^VyjuPe)E zLc0dm#JjyG9)0=#k-wD>78o&ia_2ezuP=_GdZj*jdDpe!@jL(d?f1PapV_;gSa1Uu z-r9S?zWCnPGL~JZsaX^DHZu;>-=+(zG0Z1nVUZK(BsGc2j$e&H2?qr literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_1.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5599c4133cd5fdf1e586f2dcd706f4f19ce727 GIT binary patch literal 895 zcmX9-F^HsQ6n?w2yUyNlSWF>Af*}L3kc|NY!dbW%_b`iLUCsp|7KR9!VhRfbQ^+9~ zi{Y3;$P`1EVhW3a2$^CF3n3O3Qy9)-iV0W@+(3qK0SQ7Tu!KJz2j6>-uXyh(zVE%d zy^$Y3`rr`&Jih+&>UlFiYwEP!YWnAcc?8gc+pq4PHT3A{==k`!)oPuboSdGXo}Hax z7}jpL&(F_^Ua!Y-tR#t=rdXEYIJWQm)9HMh^S_C$hJDZ!*= zo6$Ya3It~+`H?b7v@kd0vQP0OEB6GAQ7qoDC3~cf=H@)Mkr^c3S3xRj7u&h)p^XlI1`VNwO_dbxkt z98ibBah@P#s;4omB?yk9j?CtmyBtqei)EP=^;QH^!5j_uOez>KGgpj8S~BaeB5#w< z_M5D(-y#t}2XFuafF=ejfE@;?fhr-_K~adxjY@;f!9;{uhEfHj0kR1+=1{1jc!2T| zDnoc@JP(Qlx{3`f!W%M^KwgAalK4dt?e_(0w8%biZbu9VHKfd#wo4(XjHn(ahiU#0 zZ_%cryTDVJ%;JVf4K&W}D}gr%CteawiY(ff8LGFuqM#U12?#Y_j2gN3AboeX+wrsM zdpLP68HP3(Sgvbxtk1Jkk&7fQRoJ!4?DZZpDdf>;#-Uh5h0=tdzv%q^?gzeqext$V zAHRRskc;c9r+4k2tbbo$KKV$-Gycup3-t20|6Z!Z?Zu~mQsS>K9{&08&Fkv&lb@eJ YP7xpf_}ACpHj8lm?B?p1FTVNVf6`uiNdN!< literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_2.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3e60f837ab1dac98bd151c1fdba53c8931ef2260 GIT binary patch literal 959 zcmXAoQHa}g9LIlmy}R^w%pwINMhV!5h+&H}NYEg0=4L#imvI^ELzE1H7AYeS5&KXi zvIxcHAz~R3Iw+clPQ&cOfpG+h81NVsgLGISU>}NBI7gA9C!X*(WAOd`etchkpNH@7 z_rdvH>Eww=P5{8kotL-wiurU=o8?l`rPsW>03|s8%7t@+9_lLtMO~-k@ST0!x1RfN5OVg^&CfRB; z9hdie%3!F+i8adH=`0Xwtj=$lGH%yN&!GAiyYGmJUmp$4{Gc<>gQG<%5unr162Mcj zfr%wzXTL3k7u@ch1_95fme+dk~~QIZgBwI<+< zLh?E#nRMM|4Ue~aq7%y9SPe#cls8C@V5Aza(z3y6rf7DQPG9dwW|Y}!-p%HN=}}S< zpsE7i0J05~hjD#e8d6#!m|5MOTEW6g(Y``g4UT9@v|Hx~h8SCF<`@&-nuX3H@sF|) z&C*Jhqv$%zH3YGxs;*)5TCJh$CjEXEMbq(ku~;A=OrU&>9aO}aP)BrQDt2aCFmJ^R zZ@e7Nk0(cHi>_2S9GA$NN;3w}Te8y8i)HPh+dUWz^E6vd1<+;8QY*GjdQH057Q&7i z_ZkPGJxO}=NxEDfA_1TdU;%glA;1B^3Al>{s+ZG Bo$det literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_3.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..32041631c0f5a6a02ab058f78bda0600b99c058e GIT binary patch literal 1037 zcmX9-Z;0D;7=GLPle;Uo;_6XmnRTn04?%*25iuX4=FWO#yNu;DlZsIzRwx)W2Neru zUXXf5ja!vY`=N08(9LX?akx18p=i_-%8YVgrvVFBT)`nd*Tciz#?Owy^S&?7m-pe} zdEb?z3+d^pd!_(jdj6@|W5Y=e>)wfxVZV6f*DZh%IC^+-Zb(C+P&gbO85tQJ9UU7R z8y_FXFl=ICVsdgao=T-CisU#}6nRC-XqsvmM!8(A*Im!s2!j4#K#{;QAn=h)CYH-3 z^98bKGUbX;tILh1*7D6x*X9UJVj?OZ*QKPT;8l%UGq`41YSq)C8u*RNHpsM$8)rpc$9GWIi^gc2kSIFKa(PiS6{V8T*G;oot@^Ip+1Tj!`v?*$;AM=eMY%>oY!TTG zSL|l&UcS+{HU{SvrmzOhqo?YbS*?&C3_lUSOJX4qs-qzYNy(sOo6Z#X62b9#Y?1|6E` zkqamQgoarZhjMq2Fbb7!m#&oWKx?(QOh(M*ltMwJNP{NJEah-ilP5O>q9>)0oJ2Z~ zDim^AKK%3(e$U*23GO%a_PgPdwEgEt zkris;#xJj4JbmW!zufPddG}pc#?943Z+`XK7Pqv2@#o`<+>_T2p4qeS?5LM^44fpe-<@Y~K7jrUEuY_BE$@Bi*3bsb&n?V;`NRv${{#JJ!DbuV`1p7tk(ij6n4FxP znwr8eYbAMODokhF&h0>-A>4?fU*s7!F4xCIdVNk~o*or!#S02B<72=^7H2esvLn_yvfWkOut2gzCY$DDT2$G*F6b4h(o~wR?gpkG)`F1vK^sY1t)gRjxnvI&>`e5UFZvy zLEesvouRceYDfFMJv2urlPr#B$+S#oRE{%5siMToO6_WGtJMzuVASV95ivtfnhI%Y zbfd&O6}i(WY&mAnYeYSNG}=WxKn}nFumBu@Er0g*}M^oq-w;ZWclb zkPJx2QI$cqgj@}ED=4(#ZtyIK0^}r2Q*pCM*Q{*IRy&kA0K~t_Uz*J zD=%LC=hE)2XU?CZ^+V403$M+byYSUd+Y5i*qTV@w@Qp`5h!!tCaNo4{`Rbj|e$6c( z_^!{lADhr&`OM+N=Wd)`|0DI=ziU5;2j?G(zUVwPeD}I{;r;Q&H^064!mC*1yGymVpZ@a7r<>a88)5$&>XG(>VclN4hWGN@>(=d`|BJoC^3j#0 Ji_for_&>?kws-&l literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_3_2.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc587357ab4754d41a0600a240e9dea69869ff3 GIT binary patch literal 947 zcmXAoL5SmY6vp37XC|GgOTZ!(;}W%p9KskOLJk45npx`*nT(r(AYsUAV2W1EA-h(r z8nsA~9s(8#Y{4FK=pkTT28|FQhahw4E;*E?3pw;q*6zB8C_PjhmcLmRzV{yA<^2xd zd*2-%)Gq8iw*vqd_TSpOlF#S!DisTP*Wlu}00lUF`{;6R*Vfk7*VhY$!p6qN=H}+s z))t0g#bR-Ld%IGtR#}!2ML|&{!_X|tY`5F4I~a|EIG&_wwp_9d2t3GANz=-W2H9*e zoi6Y8<>5#VBWs*=XLC=aF_kZwQpHwD$Djrld)gKwR~?Vc^sKW;y;T<12+(P03g9T% z(8QuHJ{^{qV*)K0wA9hLgHT)rkO6cIGjZG|2#2CPojOZA592U?ysJW_g(tqf?nK8ywNB(Os1v8e(WEN!ysZ*4%Grk-JKK zG>`EzN6{+F)djJsC|$$oH=CnwHyR9*Aec=iS(YInOrTth9pYk0C}X-l6FYOwTQtMW znJh<(^XUqeXdLG%l^R)9XvW}qOOiW!zN|Is_RfZ*G)|T?0dxto6x`NHr$P5yg5OcX ze*Mh1r%`_~jhD-ZNB~d)EC2_<2RH+mV}NqWB5GO4_fR^ODKJ^+2@upEl>sS$%nItV z$dggfK;sTdJ$M{E2a*V?j5Umk-K2X?ZRi}lN`h07JyH)SGv%F3 z^OwzV<&MvT8JcEP88{NFF}Nm>4TWvhCC6@fJv;P!N$fAu7%gX0VYFH%%d|Ph6 nZh!dkn>TJ1hyA-u2xVV)5l12K$!}_I`Tf>No!bqAZid literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_1.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c438108ed52c8c21c0aa6a909bd213c38be70d37 GIT binary patch literal 1101 zcmX9-acCQL6n<^eUfNKj1Pp7C=u!xJlQ?gB)}U8=DY4${b-lSjqh#}Nu|_%Q4TA(Z zw>YDX<+esiC4Zz_z;vE0N_A1AMoqQQ2q()VgPW$3(&*L^YKB4T_A_Jfz4!S3c^`b= zd+&^odHQ<$djX(t^hx(bdp_8%9R^*yyJu!!1<=9x-u)wO+R@R`+1aVn>GXPiS65ee zcQ=M%27{rer^jNq+X=!+(-g-sJns`lArgrs5~*x9S1gt_tQy$!e7yjh#!M9M15hPoRY;8%_CBIU%P? zMJ=w@Gu2kXM1h$DO8{(PaL5>$vUsu%Ux5--Z>%b&8*&jXvACHhtsxH{^SUxTofkPZ z!dDVvO^GxLiI%FMTG3=C9k`bu0~8(NxERkTL!oReR!F7PT&`L!HyRBDRskFdjL4Yi zyp=2AfhrxX`O@`Jz9E;J+4^>+g^ak#L|QB!o1Md*yvrprY}DUg7S6`vE19fTRGU=_ z{0t^?CdqG;gLpDbDN!z;46G1yL!Av^3ldo&<&lFN+0vixk4+vL}<~^ZAIXD)qXG z+FI5C5Md)FTiCSCpK}PBOK$j-W+>lEl(utKRB1TOK-w^m)8wOUL5>Iq7+DIY<5FIU zt3{=*6;ZQFG7QQA(g2}$7SXocEm$MrWUWRf6Sp9iO0>_%1%rGzED+8J=}b_BLK6kX zS!VIN*N*%)Bsox$KsgGjO#ArB`;A*Sf8fZ(7zaZe7Z10|_Ne=b{g2GPA7|#4A285g zqSsy-x^{SAVySOAfA(_V^_{-!ADw^vuH~(d@7p|C8~U*NU4QJzQgZ$6lauprrq-r* z)mGOB4y@j>aqrJWd2+LF-!*C14_Ecy96J5gr^goUtL}Zq#%<3XKRVC7JNw1t`ZJ9) zj}D$0IDPQ@XTP3W9B=LXmz?U7&Rw{$M!&E-K0T=W$*}vayN5O=pStn9%fIu6Ve-%i zf!5-li9e6)3!5_wj~%%5&tB!X;Y*Qofza${a}T$Uu5GP4`_;cTrRh&z>c0M~{=c>j NFgh~kK0AEy*#GeS>XrZi literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_2.png b/resources/g2/track/alpine/small_turn_left_bank_to_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ba132eda82f3d764c5155236b1690680416e563e GIT binary patch literal 1015 zcmX9-QHa}g82|2icez_{E7*sib>wEn2=NG#hagen%#G}bT+Yj+4}HiqYK3kDjZ&q! zfCa1cFzm|N?W)ufq_XI`(T5EBP)DXW?L&lu6@wJ1F2aN&edxv^e=`QZ@B8?@e7_(3 zzVDOG4e{`yM-BnN;q{YiThU~qT3(Dr{jT!vX@D4PzIf_HL}zAZW@l$(vDn<)-2D9f z!omWEVT+54OG`_5I-O=1S`c_eku)u97<#Exs?{2;mg{-_AQ(?33=KR7vJ}r|lleSR zDAMH$SF6j-mfGnWJ-;#>*#d=SxVSFiW`?jdvSBdolF+SXdM!QJFNc9W9eZL5R0;|_ zSPItEv2GzYg1gDasPGw9+vpAzJlpLwrQS6@T204OF(PElYC`n_px}cZkazkyny6c->Q1!#+ zaN14qkW>KA0Z|0f!q^5bw#aOk*ZoXoXxL-RLv5K#YHX??Qk4wX)P#x);gV%?>k}Wqev^21Ev_~EnKz< z)g|?Sv&LCxQs_);y#sfM24gY_EP;u1BFhtbg(>DF%gozVv*T2K&j|w$O@^!_As0{p z2t`?xBe@4im5TMzh^^Ni!07daY*xwVwPI0c=n_lUc*YT!u0;1`D$JyjN+6R&bq2XS z@}=nb+12>J_kZA>tqld9zy0eQ5&3F;?f9uD&+nf9@gZ+zS@;hPE9~Ewc8)DEUp(>c zk#Ej@_Vi;f{dDB}oo7G3_8k2dx3awZ7j^UJhd;e{>)Jom@pD(7Q9gR_Iw$X4PTt!1 z<@%Ki$s4bH_xd(|^OD$<7ViBZ{kHf1?oRFEv6E}78+#Y~Gy2!g+3h!fKU#k^zUp6i znT-_!CGq8%*&Bbh?`|KMo7r}FhIs01>-IX}Q%4F~RuH_BBt{~UL?V^R#C=Z~;vL#}0VCmO#KB z47s8)Dv{*U8DG92mGoG(rZ70>p$0_O8ur*_!I_eXY=kK!Jf)0i6r*)RX*D#r4SYBR zX^?p=EnJP5DweF{g($ zBd*ue)mFhwgM|mHAM7D;${3llx-(91ffjX7tSTuDSwmS4w+N&y=*D9nDlIU1iPs}S zB_Y++NTZNw=_;yeW((=WJp}2enIO-{1R)s=W@52IDy8Rg)pEJfXdtkO;7njd+RWr_ zdbA!PF;sJ?P6eEzrp{Q36&uVtgFo7 zb&mu2>?rI+Ndo0)q_gegC!Za-_uvQSrzd%MY5muO?Y?(n?B$tVCy$=`c8h7Wm-z=Z zE`KySd}r*={3Lbr&;60%>z`KScb~Yld9riQxqa7`_c^|n2H8hDMv6D)ul{{+@XJr` zzqRAkMseBS|Mc&R>qnM0*UtQVdT;2)cFn;hGgrEQJ_r}H#*4?xv((O|^DSZ5g-Z!J z;rM**?Kie62L=~Lj{Wh}U*B)k=C>{#US7Dhw+`JmggO6Q{o2CJ7jvs0WA;L(EsaCqUw+|pI93#SSHcrQqsRSdEyi8{lPALhcs#J9p$Je}| z?DuM&p^LK+5h0p|cmW6lqpQ(WoyfSX;-~eFYV{2dZ3tvUrepaOsi&Em%r#WeFUswT z+O>;)w=(o?)b;QPO^|7d&azxy6m?lP^ZB~2yVa`iIGwGne!q_(rT|gFs2a{SVq%NT zcDPbEWA*ZlzOgl^_x9UE6ee+;jz&}Qgh(c3hEaK;B#o98>Uz0Zs|TJx=&&I1m@49$ z6gP6DSzzsw*f6tATWh;!uk8&6JBS5H1E>H7fDO5E^As8p%CEtXMF+UD~WXg4$|vnT(jr$%TSKC5v>j!csOzxqNaF!;>(0cFI-R-lTi^nu~d2(<2*H<3< fWd66?_|C-D-O0UQ&i=DLvJVUMi*whGzkA_-F;B*H literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_gentle_up_2_1.png b/resources/g2/track/alpine/small_turn_left_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3998203e10ef227a2e61132afa35cee8c882c2db GIT binary patch literal 993 zcmX9-Pl)4m82#pNI$L&wR*2X`7JG=AS;7(}N)B<%taZpTStp}C^bj#%4t0qVp{x~x zcA+eh4MQ1o=%GT;E(EMFXjqFI*{~GtAwtnQMlDjbhXKP<+&K*Rv%|uJ@4d_SK6vlD zab>%B_RJG!0O0J_E1Ns>$)57e(ka6~zXz}cS1#{fn#+ZSg~i3irKP3i<>i%?mDSZ% z48t;+%-Y%-Q79BxmJvlkQ6x<(o2F5(*Il>W?FLaaOp{w zyxWpHU9}gQgV-KVJdwsqeAbW%t3)~))i&9Kx){2pLDxw7jcMW?r%^EvDh*Wu90ltb zSZL#;PHr~HqbY-CDmrlxiV6TSfQn%Tj$8S>Ls1^jAINfF*GHCh)NZ3N%(J|q;X|KG#YZFt+oRrh^;7T#?#LDIK&0W zDM08z)_`&_u1yrXR5=ukxMYt_FLfexAk#UG%U6rEUE({M*fW*5u8mxC;@8vAJ&t`e ziSQgp(IuAC1+l6qwx+eJ)vj%a?RFdlLWpxY)}p16m)8jY-*?R(q*4 zoOP!sqhpk%ahxNFB3V#qM&o%?k{jxLS*>d~`<-qQ#j~*hs)U&eZmFbGp<6YXUeY9{hMl#FBw3>KOK1Vu<>Knfs(KsJj! z83h$IXrRP{)8ILfL@3EvMI)>#-E@i_PwVySaqLg0F`9ejbzo~*!69UiR0GOLcqc9U zvuf|y9h?MXG)k!)a3oe_@UlQw6t<>Ij#crRR?lz7kv~l$G#hi0gaSYbAT-aSF}Hh& ze7)A1Ot_Z&5awVYmdi?|qSa~!%hWl>6smJKGAp`1dbw&4shIxv~4y-u~XJ=e|3i5x+&(K3h5LgS&qC$<+t_Tk+19U%j^B zl8@iMtL*Q-c?17m{p|M(U*r4dAKiFMe1?e%y(eSLlX z{rv+20~m%44h{|t4f%t?AWc&|&q#1fnP#iVlUSG?Rs_Em#&ww}sPtlrujayaLvd>9wo_c|SfKz! zNl0*@OIS(4su^#i#rW3=N02KsI6fgs8ClLJ5=JIdEfj3iY%VQzIvoT71&AC*m%Mx> zAl1oOlTWuI#df07(U-bLd%dxShDooN@%uw~P$DUrWmQ2;N8M#fBa^L_49Bv&O%9?0 zrb=EditBMQpXADEsgjS?%37nEZ#S%N_b%c9!T>6O4p0WD0kkkcE<_$BRa7n_ry&xc z(2(W841ps8k^m`wl%Y{kL}nb-)5s~pgWwqucnFJFT=r`TGOLG5MY&Q**><_zwvnq9 zhyk4(=5)VU#G@vmIIP}@l)H(_TCTosHc_KP_<+H&5ao?PGEY|pYDpy9 z;UJ3QNFz|5Mka@B!99Lv$MEWdA2@z+R)Uv)|KX@hew>-wbLfS0pU$%**7zg*yJ-F8 zXYMS_(~tjrdyM~N*Gll|_#68=dBZ+pKKJP7S8o&e(A=><=Y*Z#-8_Hd_5Dw6{%mmj z-X4~^_xB%1w=QhC`24rOJ$rn9Y_jssN2~qodtW_&qxZ7$#l*?!$#ak8?F(nvufIPm z(?)&I_4 zGWTyDU5Hh)!$j<}- literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_gentle_up_3_1.png b/resources/g2/track/alpine/small_turn_left_gentle_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf09ef8840461d5604ffeed8a7bdaf8fda6cb73 GIT binary patch literal 958 zcmXAoL5SmY6vp37XC|GkYYtT_8#G9Ts8Qk&Az%*KHM7JaGFdl^6?=#n+zMTYkd+EO zWHCr~t(ZfRAQgMaN*99`9VJK)Ib@-Sf&qJ|n1!N+&B7v8d#E_V-z*E?dynt(euwY9 zYv&H7lP6A{0DzMRFYlkvCy`gFSjhX2w|4#mD8RW_E}YHn#>U3x=4PQ#*xK6K-rnBX z*}*WZSS;@D?pCVRD$6pWD5$Ee>vhvKY}@v{{%{z^@ia}Bs};+Dz=I-}>h*H7Nw(UI z)8W0IG8k&3$ebjd`N9`ztj3oNxnk8wSEu?Wdt{4|SDOrtbnIlQzh1@?0U8Z00bCUu z7+BQ7XM^%;LZFO6D-9jH2*p(Z1wg|v1II0ba4E{?`6ERcHySg`y4&xgC?eQ$Rj4ou z$!nBk&^3$IUEb`8b|800sz1@fv_WzNBUO2omUXUfh=!v$eXSoFVPeH;H^~O`b%YC0 zR-w`WvJI4ras7%kr0S7iB(=`m^p|dojug7Ab3{v`J2ifwiz8D_Y<=dLi@;t+-Z}}; zBF4)cMb}uaA&4zi?dW>1)f#p>QNN#r;e0w>E|&-h11Jw;2e>#Q)Ct{~i_W6%XRXoF zovw!2@obGsG>&tXibPgbn$daQlodzIm$iqT?szav<771#K$9_3#Vw6=n{=-&1dclD zHO7H8i+b5CUajsT0iXt80=NJHz!+eG0m`L_sBNOaN9jzVz+j;(Kqx_~08#-N71Uvo zub{ArCJst{xEDMJvIsQ=Yw8uNMR#3k;OnE2og_h)B`9YR4Pe_P!L2AhsfCo0^6s)8 ztXiYBH#rXHXtt!vz>%25;B|p)s%*On7`*DGN+IjurYmc)J72XOP-+lGT6Hop2?``FuTaR3N x_>Vg`e%*WKh3wTI_P%}JdMCPm2mb7T#1uE|55EZ9>p2$=&K~Z6^U|9i{0}Ztn4bUu literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_gentle_up_3_2.png b/resources/g2/track/alpine/small_turn_left_gentle_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..eb1b2201b76b9565065f5b9e776f3989c19db010 GIT binary patch literal 955 zcmXAoL5SmY6vp4QGn1JqOIM3_F)LAuNqf_k+oR50);7DK^M!WLf9HPFqo5$5ID+oq{owP61(d(tm2?j(Bi?C zv7wFyR&hQot)@6iXtYw%xs6a*0gwPx4AYB66US|mbUE%sk|vGD+%(Sy0~7=}Q>yS~ zS|T`=tm>3vGMdd9eWBxty|L_0RX=VJEKXM|oJ@%tTh|4>D|H9zz}NlA4C7vu3>WL5 z$U{knas!AqkT%8+%GD8B4|qLNtcBsGc8E?Ss-&@at4di4H`Ii&Ax9l;?ifq2lLpQ@ z^3XCYmROQf7`DL+Em^iSt>0>mEGrlcBHv%kW@(xtz;z%Uj2RY%F)mN3#zN>W>u%B- zr}k_$O3vqNRG^AQwp^|f6`7(njx$85t7gmEBda$Vj^Z#{EqG8x%#e$wO4v=R-{!rp zJnlCpo;eTt$vj-G&JYiv02lx^fCn%ESYm)ONdjsc$a7IVmq^eV=<(oJA(jBifb=r5 z801RGZ=z`z#V$Mzo&`|=MZ%g|*=$igyE=5W@wgL3UXny8W8n>8+6CS&OD>`Mq#kp2 zTK871@!FZ5`wKKr$r7*xR;7z|o@mNUyCK?U)9smKuNQ@05{GEDU_}x6fMP%>%c7g% zo(b=?`^zQUcb>_ZPKA11ZZ@@cTW9DFOFKN{2}~f;Gl@!+3Q`GVlBmxhpGT3H9Y6be z;oqk}aObcl!@K{Sew>+44)(9yymbE~`^xkAS1;xgl)kY2n|S)c+xNe{{P2!@bQynq zd;Z+-hvL_@qvIE;cmBBb;Pltpy(g2mjvtUmto{DOmmgjK{^$8CpQ%^Z|NV8BI37xm ua!-EH-+27mrxzzbes}5U?=RmxOB~u7e14+d{pObp3J2F}`#)X%@ZSHqWSBVs literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_gentle_up_4_1.png b/resources/g2/track/alpine/small_turn_left_gentle_up_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6c346dfd3e8a5050478f74f3d3427446301d99da GIT binary patch literal 1054 zcmX9-acCQL6n<^mUb{LXW+Skmr=;w}W1QO|C%r$;^;)uWvsZS-Fak^2xdw@Fl-mq= z;)#L98peTfM3!Ql*$Cayg;Ll#qh{>TGBY_@rz7{s@h*T5rVq|cc(kXdr?i*)A@X{Qn74%-E}+NE=>W)f+!5fVu555 zPia&p%jOGWxe~9|)Vh;xwn{vSMcH9R2Yt9_YH*XFn|aU$1uh3*FzzLAWAH|DvE1~L_^m%ibYhb zh3G(-3sNG^#)*hRMs->?Shc{XO(9p6O7*zqCU7Q1MZ&B^3NjN@cqJodit(bQSdMPH zIj3E2Zq@u81SAM10M~#pFs2xcRESuOQ=DkFsg^p1jaEf6ATyy_SvdmXi$w|wN zyxKC;omzg&F;UC*2N;5k(oBNmQ<9XGNXicKo%eu5c0Cfcyf;rN^6Byiz(zEL9N&MSWHSLWld9PD$P)Njy8F^CQ$1l*^Y)$ z97j5V3N*4fre)t2&4^2t%((PMw9=Sd_zJKP$Q>Q=N`-E@rpzmL#IZyw# z`|9O$mwq|-^Wl-t`fPocdHrPi@aTgTZLTx_&f{h({8cb;51`FU}A2LJZj*Z0mpe{=cwjj@57U(7Fz`uBbO zQ+|H)&%1Zb*~QA{4_6*LAYVB#V=Udc_s5&VuPyy^;bO8_o;iQ)#AyF>r@uP-{TXV` z-g#u_a_ythkxwspzF=}< LYW(8Z?7RO11^v)T literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_left_gentle_up_4_2.png b/resources/g2/track/alpine/small_turn_left_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0774e3a1b639085f427b283804e7239a66fa14c2 GIT binary patch literal 1003 zcmX9-QHa}g9RA&Uce&en3tFYHAQ39dB#h`X%tPj7GdJrQy`0OmLLag-Vv&vu5}`-~P!_;a zu#S#-b$rlCCw&4%3`$gVU?JpZ0b~Fb!*m=s3BsZ%o9DM=dAC>`nC5=FjXaNF(^(ORPFlqo>$?)eVazM=-f8uh5dl6?9Rr$+foHc6B!}{jd>4o#EKS z1xPE9DFRsm%EGvICfB73o}dT$`p~dr%ST%>oz^&_oTKY`zN3jfLkX(dplOVpYV0+~ zfrCaqp5`bz&vHdUEGtS~(^}EckVjS6;D z?#0$#(v1!VW3)iyIG4%f$gDy$8qXV&TvI2@D&2Zxx6=*%AQ=jvN|>SGrb=2Rx>XUJ zn$l|(cO7%!wW5KaB>PAJ$O9Mv7Jvh=3oya}O(2V?Vj#yx;XtN9XQ3g0n}bjWqyW-0 zsLmo=Ms5l9YbdngFnA6m5%Mxt(lTb5ZdkdFt@V1k24Pq({9Es%^ydaPzg{>4N%PiRqv*$Dd--$vWB|}b&9sa;u7grTH_uJ2}PsHZR^7%_AKmO#}i^r;u-zRRPx5J%d|9zUieB60?QF`~} zJ7+uL>?2F!sVnAKv`>qccB6TdU$r x&L7velUuhU#Ma`^;`M*eyY!uP_c?Rw)!%Pl`F!cSwaJmNa$$A(o2M_o_dmidv4sEt literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_1_1.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..82f456d4f642047151a2fa4b34e315138312858d GIT binary patch literal 1106 zcmX9-Z;aD)7=F2bJvecg1?M?pk%`Swv1mV(q>zd|n3w7mC}tr`?8WNMxXTq&!q6#0 z_hGr4mxfF-<32P{aLU9P&$yUzF0v0xoTkVUhxWsW6MBHhqSG9>$j=dy=l%EPeUj&S z-Fw?9>+9?9 z?;jW#z%XoZaB$_yl^&nZN7EF~bCM(|N>J0(cs!m?8~J>pT&~%6tKFt4;8+lapK#gbOFl8vUxlURTqQUy;efa?ljX!LxXFQo(3ylPhxj%_Zt%6>1% zBt$sSB`m9ArKGE#b+@ZtI;&;)cuq(aC9^6Q>=4d)DZh`ENI_wODz7HQgdrORwP3}{ zcFJ*9-E zsY-?#e4-gNok+2z*V=ifQ(s0yq|3#4Jbv6Kk(9!+njj|R?y_h;nW|*-cG+q-IFJQQ zlUy+w*TZBc%H>E# zmr=XH2m&eqvH_v47l|(2J$U2MOtZ;k()XZMt9&phg~LiTs?t=Pq0$_k)kM+> z_>hdF7=bc0DsadWy2sCK9{Tg{4;g*5Q}7PoLS6T^z6uzIgHD4Xf52)?bNk+d6S; z@#hccx1aiP4HG|l&G+>=ZT5zIF7f2;3saxrlZ?a(ya0eP{|j^wz(%`!D~p zHTr~mbmN+zPRx}~8Jns7PxW42a(?htPh$u6T)flC9FVJDZZgf`EtPs_fAh05U)*>8 z@W6%N?reGO)Bc;*u7%ChwI7emv26`~>~(+G`6}7LJar8PQ%iw(GkYWBpe( z=cD%zY+NKBn|OKh6Z14a^Y@XZm)5ucx^;y@{YTEebJqCvnzPtR5AkjYsk%$6W@a=E^y?bqw5-Nva{ zl8vW?1S1h?h0JJ_tTSqjD_MNCC7NBy_HqdtPo=g_sEO93+ZB=onp(r<+8!%_?rDGEmJxchHtV#$*~Vq{&K#X~sVU9UGw|SXta-5fDC{NpaWO{9e^PQD1^YFqKYgNd3}KZg@P&zb{aeZ zkO)YLqY8yg0oi%fEhEo_Tfx)7bC40Ryd2jGWK~Z$Ou5x6xvu5=E(*2q98kr1R*ws2 zLb3_PWAq?vjS8)?(LJySs2>n9pc7a+70t4Vyhs&uysqWVs@Afqu4DP0gGK|I=aCJ_ z1BAjX%AwqC;H6@1IHYUFZK&NYm(7a#yj(0QRH{U$43@Gus?Dc*0_kUxNJ=1$Ks5^4 zEOPnq_~}RH|GM=9XOFLo@YLSUsgQiSwsP#mL+@Pr`PjYA{WDV=f%g0I+o!Ic{P^YG zjomL#AKgoC=EoE7f1A9vbFH=Y+F|#B>(rUc!K}3{X}rn_+k6}TmIa>_TU#c;G^^S UfIWA0IdlzctLrP5pWeLiKl)+3+yDRo literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_1.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1bfca43013b7f320284f55e2d426d1206966f3 GIT binary patch literal 1012 zcmX9-Z;0D;7=CZ}C--kwsah~#l#1DiS}-4iWL!>jGdpr#=5kVIl#Gj5v`Cmy3q}d7 zV9|o%D0f9F)GcU*$g19HggUB5cXJgYoY1i-{ZO&s*n*VvJ{Aec%GAGQPUK|(2K=lwOVgBJ>TC6!)Q39Gr+MRi8G3l%;$-M znJJaoYE5c1)mGc+1m#}e;VCT3&gf#w$`ZCl)(v{I$hWK6PE!xJOM}qai+lkGm4X5X zwv07&tX)oY8_8h@M}rI+s%YOv$WH@E04j#*iG+pYHc2`xyD3TAxm?$>uGQlXDr?M8U*{o6Hi>_E{$xcW0!W_Zi86nNel&CR^&g&(qR9EYs?gf?~R)RsJ zx7SW^kdz^n1HuH-#+Z6aXp%~s(}QfeXE>4VqfLoQY7AZwsB)HVXnf0%gQC{08hy7I zwX1u9i~4>d$&gf*W^x=~kma(b)e41Xx!kVT1JCR2>_kz70M~)6Vssb<$8Rn zuQ-E3E3$Wn&B1tGPz;Gjrh!}sg*P?<)KguFcJlu+ov&EOdjdB{pwUQ1a8s$vTbM{Bi;LEsJs0gAQo9MI+rXQw2G zP(4x)SvykPVWG8G?d*F!)Q!j_Fa#!K5(-D;W!lV%wv~4(R?DpfzB>qgH0&{=h&(_c zAQWd&isfzrFPgP}pQ%-E!RT~&MUnG)%`|m7Q)Dt#j&^yvEoOEkYLHDMl|UAWYBcgV z6o~QhGY`-FbMpsYJFzUo{9jjIjLEshg~wM8t-Zb`zVXw2v-}0Ld(M6dTc=;X_sH^- zzaQIJdS+eOy?*=O|6P3O^Jw+-;&*?%xt6}+pM31ov)A83Pe1a`#A*5C>K9kvyI;7w zvb*u<;XiMD^uXny`N83D1cf?uTeR^0zi01A?r;9w|Llb`Z_jV7&COgna%%P054W}w zmo}2Mi^2EP=2fb5;oI3ymR^1S!8!Bt{BZTzuX3;a5UoFTY2`O!ZuXZS@ss7dVz;n( Mba~<{9 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_2.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_2_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0944c6fdb17922b0095062da4ce9d34cd11e4d9 GIT binary patch literal 950 zcmXAoL5SmY6vp37XC|F3Lw2cHF)l%iM2QkKLJkq*npxrynGBP`AYqA+af*~RXp{;; z0@kHy!3afq=%Fk*6pU<@IRxn;hbTpQ2up!U+y@6ywk0ATOn?fv6?K9g6eSjf8$S8o9n;OL!`>$%<7*x20MEEEb`TU*=P+dDfu z7={&##ogWAO0`;LSw<8ERh3Osw{5H0Y<9c-;V_KjX__uqE0zI)2SqOFdbwUF8xGTI z^WB~@7#gFxFZe^*zUd9pu1`Q1XJQW*Q zSk%U6gYs%Zpo~E)16_Cs#Z>?Wz`!sI$6bQ(D9Y#gb43}~YBSe;(C?!tBG__Os4xo2 z8r5B@fg)W;M(U9o2#t%$!WUEQjoOSI*&|F5{brPUO zjF&lz)>y74hz(V3n`W=k7`EF{zn_HRd^%k&mk0<8s4m71aB)Pa6S_7RTMOOK8l$B* zT@AB~*&3B-9Oo((iL9zLWAeN$D=i~m<_z1N@nD$7$!acuA!D|Ry9Vji>7FA5Ep^nZ zjRSWU^|D#KT0KAlfCgX#cmM&w7+`?`%B6_Nu~Fcobf!>XvCt79lps|Aser5sYO}~! zP*_Kk7D|116g&sA2%3V`&5GNgJDxP~&C#ftBte!XC}$BhV4afSRTQ5zLdr^cZ>a~X z#%SH0T!eEpTT*4(pe=t@|B!6m*g}$kG_C=A0~}5KsyTR%fj_C?)AhMCnOcgrQs>mRbOQ9Z%LIEXme*E0arH7Ax z;M3zn72dr6=UHw}5B9H}JoWv}Z}}$+uM`WvpfC3RJNoL!>F0|VUw92a`c>GZPw)M9 ztMr_6}w1U2Z0!YQCZgAN4spg~tu@Ss7o z<}il`4IbRqg9i;B1oaS#1`Qfi@Zdp%2NwkA!B7o>ibDjKrsc1WgYUh^H@x=^-}heM zT+8QAK70ZI=U3lcJa6V_O&zyeP5<1UMF1_hd3Jl*(1U}6!^6W?t95jAbbNe#a&m%U zSi9XmJv}A5-7d$mk|b)HVp)dkI)lMrGMOzFah9!%qN;0-1yKN1IWvroZBu=Z9gc*_ zRGlx(Bz0H$XuAs~2GfNzMx@Cc$K&FG8SUa|cUD z_-5XzS0pM~RGa8AKq%`1r~oF0IXLcPb1gGd=CTDUUfqDS#0D|ZErQ7qnYBxk4&XXY$+;@r=QabC{1`xF#Yc;g1H**n^a&kQ%{VBS~Be|BY%@l z%S~3-_eccL0bGCppozf}V21%}pi0PdQ52$Lqtf7TFcu+}p-=&7fE)siI25WVw$W;c ziV)rz&x0a?u41-D_?hGU&!V!(P`%|91;v00K&bIz*vP#HIq;^t9Y3AC zhr3!yhN0QE<#`Ur4tRDVa*@QP3cFUBQtu*@LOzYA9EwGhD^2+MPtV@I`+@JDUu*E? zpMQMYkWa2IzPfGyY`u7T{_oSP2la!u_w;wa+}!^6_d_jw@mu;*`2l`<_~`e4UR{0+ YFCU3#Z{GZcnmxF>yuSGL>lZ)%4|Fqq00000 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_2.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..786ef79f7e26477959ce69f72a1f0e14d0bbc3a1 GIT binary patch literal 964 zcmXAoQHa}g9LIlmy}R7)wiW3^WqHWBK12u-Sso%p7iaE>XU1hNhkd9JN5(4lA#xG> z5HxTR%BUdd6*fqydw-{0@Y_vQC} z`22p?FYSn@PMkRb0H?NJ+q|63b6Kse=CUrn2E`uCA@E6-%WO!_b1jD~hCP6~oYN+ithJ{k|WDM{zt$Q-%hf16f+HR0_2k zQ8(#ElWTY6USAyq#wcn|rmjF?Wo})UidLC$G_q?j2euHj%cH&?4;xAB&S#;BgGxc2 z2S>qrIuh;V7X|s-j~Dp|AuX1E?6L=kpehJ0$6H+<`0)tJSe(J?M5(5a3Lq z#20Cq;8ar7sj|gr4rg=(+ml)Y#T}`BTqRhX7E7E$Ng7+x1-&6Rx@yh*rJ8Fagm?@x}7X0sUrTnDm^F}=Jnz?BhIod}I- z#ZBsinRAr(ljHFmtyB3tTP%u1Nug+s;|xh|sM#{J-)s$g{Wy%$2@k4-8A{$#38zMN zOx|lKgHCnmS>vFSjKeg2fOvp1fC1nDcmP9yDF!H$EFjZBo{QqKOoGlpiw9qXSO%m3 z(u=6cAXi3y4UHNocHs$l79;`6GFH=yR-I}&V$anE13QYmB#BU#g;#+w*LkNXyM*eK zddxYqikH?0^Y-Z2pP=!KEC5SjBAu`BL``ALs^nNTw`C2yRupN)qw`#eh)8 zqLIZt6>giI>6GoXpUN1Ggi1xJ)il%88QNy)HqUqh6G-%tOeN(KQVC>{sKX$iN0F2r zKl}XpqbEP`{^cD7Uisthwan~oZ(i7a_U6qS7f%0h_GIoKWU|*EzIXTIty{a_dLNuV zyFYy4M``c7JJE0H;kCs5?LeE9m~i&swWfBMbgUhUrR8!sLHb%(sYu>t?x%e`^+ z#alPN|LT|9&mF$`j{a`1`=vekDE|5W`7@0F^55o_XCASCF5f@@`Qfks{*)mB*xuUN K{QA|m_x}g<_M{B} literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_3.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5c2557bb945728c63efa088c42930e2c6094b9 GIT binary patch literal 1040 zcmX9-e~8<36n}TUTkeNP$5pMY?1C#Ub5ZLEBhH|?EqC;exXZDebWkN~)FOpNjk99a zh!u(y4M&xT6+5U$)iBFEHO}gSM0RM|0xPVi8T60p6?T7gvpf37pDL?HU7siTSyiWBp0>Yih*T@82K2d=0<{i;peM_UXXDz~JDZ&*vK&8X6uR z-mzl`hG8QkBcr3E!EiWCQ4x+~MUj`~xT-3dOvW&Zm5Sv!bpq*(z})7GuU0KB&cTT_%buwVL5ThADo(77FPEQDT@?L0C&98k)9QEF#+u zQGqZUj0iX*5mAMVX_TxpYJtm`e7-7{YLew8a5@x;h8dCMWjd~KN><1grJ|)+uI6}o zw_R@bY(EPD5rPT8(?IALT?|GmMBHW-HaApZj%Lx$5hd; zNw}UQ3u)HOiq%45&D0upq1|x0-A%*-!~j$P9l!)w188A@`VcsjR*_jkUPB;2p&-wK z6$MWKBmz=`C`X}^fUG2{Wsz5co59n-a}X1-q#V>zWL}S!OLDcEab2_Bc2Qp|lmIF{ z&gwy-gi98oc#PhOo845kXVkW>CTetu0MIxVjrij%o)oEcg4eZVDX&${yz7{4&q3WL z&GX0tke@_2pk-bH)ormxKo75FMgPw*dspu z+}!TNr&p$)-MVf>?)v?t`@p|bM^8Qc#H+9WbmEt<&g?%VS?5}Rd~ZXf*akrOj_ yZ~XlCTW9zEb>+=J@1U2@F4tx^w_iRWiukw8jq_Ladz`)#n4evk`TEFH@B9z_J1s5PDGvi{f8=EdP$(#H zU`kk1!`uqqYsSYN0u9q>te^uEAuk0W0w@@!;kZE%CP`W>yCsS{xm?dM_8JZ3x&$3h zaf!5;WEC=_QL;g+Cac%^k}Xu*lGRb1AeUr_bSA}0l%O(Mjn~RzxuG;1&G8K{sQSZZ zf8WJ9h)a;jL9z&>i7|~trbT95PV?nTU$;i4hqgp2t};X+Lsew9sq$@I@=I#3rVs4W z$gS=BHX3+%oFOThW^x=~kfe&L)(eGJrQ$XkzT@<}-O*@-fY5-fVRRGc+l17ia(%u$ z$Xdffdt`RUt>Hm$AH^sfXA+4_G9^)Im1T87EGyx%VyjZ!X|@8-ANM&>1WcE3LrI!> zs$S&mved5Uc5I{P)`vZBJl;bbfDE7mm;g4w4!{5d6hh=tQAf6gf}Ti%MnjbYCj)^9 zNCKoKP=!X8h@3p?lu=;8qu?13c#uUbuO^HFRW&nBOKrDHzHbkQJ_@yn9MHuWXC_1| zsW_w-u;wUhj|=VnTIay&quz*&1CzuuX*|m%^AcUm38s;^sz%$c`kp-uJT&ezf`A-A z0U#7+Q4ZxEgD4g2g8@^oJ%--t@Y$@C&#T3vMyE?my2jBqPrE|8D^f!_g_I;RNK~hh z!y#V?kDoaf`}@%ke0X|Yg4cHcI2#gcZDr}qk&O!*iW*KU7zB6IbpuRn98b8m=Oevy~1;V*si(Fgx+UU$3EdE&W;Kdir!KY8KSw+HXv zu)e?j#p_3&IeKh+Z|=&2e-D2=z4*lP?)YjvcYl}IrT*Mrn7jTka{Q^A>QH{`h0rdn Nt*)=!Sbp!*{{dv7vB>}c literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_4_2.png b/resources/g2/track/alpine/small_turn_right_bank_to_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..880592aad06f46dd997c2ad3924f7674a64579a0 GIT binary patch literal 1086 zcmX9-e`p(Z6n|~nTz{+!7&Op~MTn5Ga|XF}=N7kfz0S1U=xw`d{s?l);W8KS7^jOf z%+qBf&Z|2#V!(i5hAqz9478i43-kWC(M*EeA7Rb#gkV#Q+KtQxRvj?WbBSWJ@05CE&IdP~vH+5_4fTP>9_p46;IN-qknSEW_)6>)2+v{*R`uh6% z`}>_vCx&4I0|SGDgC4)%PY^+xrZ|ofgs3EmsZ=VP&6i5LY1VAJ-RTfPphCbh!_lZa z9`_}Z!L$;}=GbD1FB?+TQX0(yjbo9}u*i7ih))#)d5M@$(MC2>Es1s|-Lea7Z8Piz z9)|=4Du)$C%urnQqPtV|qE--fc(kq}WcmSE03O3cmrM3~)j*&S3eB@@B^Im8@=89B z48u#f{gfxj`a*mlEaDNF5Y&*Aqf;7_DRYG?uiG&n=?#YcAr5B*GAhzynoZ~Vye{gN zY}y&CRcx#oE(+Wncw*p7LO{jHyeC`=L=8%`B1%Ilv{e($v$$Izy@@ccL_$S@E=!!1 z66#s0sioRRcFodI({#DX03IR87)2*IP7#D$B2iKlBcHc)y-};R+ie715dv9^D7xsf zm#gBj2Ayt33#~-Ct=2lF)_Q#n4dX5s>G6bpehv=`p^(I|X}-HGSyD2UV#zkGPJ;rT z!6eQl^FB3>=aQ6`=E}KPMU(4Bu2nZXofSj@L;xfJ6+i>105mZ`U9dDtN=PdpyUqqc zBp^e99tN8Q!~qgLNFh*xMS2`n)5tEs!{A9^Xo#>_T=2*VJfnt-1)*F{S(esnS*WY! zjRBDyrc@7G@bP*;v_on;s&x|OwQO}=Z=iZR;0Dr%g@djr<%@GfGRCNKypWO0TE;T9 zmTjU=gJc+_1F`|3ZWigT+#`5X$y~EZ=CY3TAU2#6c7_%3r zzW%iI-q?=oL%T0Jk3V_)H>Y{z$Jt}|Z_l!hga2NC@Xyt7ZR2Hh{`=DlH{CpGyOs{ml(mE8o+~5f`NgNV-22EA(?8iWcJ}?s zPp=)#9ABDyQx!NbyY;R)dS>a)$v@s*{BZ8l&Ks91t23G6FUIQwFJJxc!nq%wzxU1} tcdLrR)cWdIo6+P3`>6*Pj$Uq_aD2HuxiGXUj(2^-)V}G7Z^vIf^*`gy;DG=D literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_gentle_up_1_1.png b/resources/g2/track/alpine/small_turn_right_gentle_up_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d0186d03eafacec8043ec0b54e1ce82b5af8f685 GIT binary patch literal 1059 zcmX9-acCQL6n<^mUb`|v7cg|uW+j9BBpGB`Mi4kjiYSVlOeVA0e6eU&tDCmn>2}E=Ff{PoXe8o^ z#r*L^FqNjWIlfR7%N3<=rJF6CC9p6(Dsx^n?AIhbuaKoATgis&McJ;U+P2>7R6{-x z35YYG30OhKDrtA4;OW+Vs2xOI5$$LQRRaJ#fQVtT+pYS18jkBUUE=v#G}=(r?R*|p zDn8N^V7x)zPm6d+Cc-KyX|$4KlLnV53wm8N?Wmvf1w#Q^AUKJN$gG^=Q+Y9O%BH1O z?TpnfGYn_PEjhB1b`i|K|jSlVs%8!MD?g-v3HWCqHF)5Ld$zYNSW*O38$qEY?7=$i_TA Qgcez`=MJTS!9(GbOCqW}b4HzM6Zqzg5axR0SMI#H?!|DRYQL&S# zQOa2`O3`u@EfQRXaO>d-8B_^cq<{1zf0R)*2W1uwI!4gKj_t;N_82_)-uvf!AH4Ui zudbx$58ZtT0OpsUSvonM^Z}oZ95DR+&j1lvJ#p&zSWZk#OioTlB9W=7sp;wInVA_3 z!)9k^=jP_(sZ@%lDW2yfNl=umrm2QuRIBx7(`mPRz8{W8GzA~Jq;<%njm;_<5?6xR&a=E^)U#ZuT>n7+}ii=ZX zl9h?HN@jFgFVb%%? zt`F)W9m4*rjP8xg>kOWAL zqcV*w5jlC(Eg|26gWwquc*uxYUWw}kvSOwimeOh&o@WPvhsIus9MHumXU0VOP(LJMz$CFWg=e{BUZRUR!PN6sMQ_;^uWbi@8;u5xARq^j4+xF3 zD2?rIBViP4!y!|v-iFrg^4YAE&nv~EN>c_yRXN(`X;+|nA{k^-NKPW1Ks6dU9P)&5 z`I!f!{~r9nnAaPlGf1_*hszzOr=T I>6hRCAE6GqWB>pF literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_gentle_up_2_1.png b/resources/g2/track/alpine/small_turn_right_gentle_up_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef40d7ebe27d98cc2c0582bca39d849e9d36bf4 GIT binary patch literal 965 zcmXAoQHa}g9LIlmy}R^QwjfnH4H%(==%Qp0Fb_ea=4L%JE_cf$V8950l~FZlgbG0d zi&Bmb0;^iEXdj|07_kqB1gVli1_$dygg#V=N70IX7*a-+f;aq|G5G#|KfW)&&%^ik z+uz-(oILT^2>>{`{mRzGY!X=&^0}=4@ax7sfE?^zxO6_VD=RCjtE;(OZf$LCeSLjn zV*|smd_KRqxmhZg%Ph-?qM#^}VQ7|Rx~|)9cl-S?jz?)aUo2P#1Ri9mplQWgjjY>D zqsg~Ba<8usB5Rm5CsSXfF_kZvQpr(C&!D;%d*F&uTOIbz^sq5Y{pCEa5TMgg7r;}n zo{2?GeB3K8h6I{1XrZHH523gWAOq+aX5zR*5FSPOJbxg|ht=xXaqe`xD2fQSSQbi* zO!7KaF=^Fd4Ue}vq8mu9f#MJKFs+gt!Bon;LQ4jxnWEW{8(qB{nqlI^X)BraCd&vH zpr}Bp3ZxB`hjHCfrB7**U?ysFV)=6~Mh7xoG&rJOp_?k-GsJ(VC4n<8)+GY<9E;S&+lHF=5M_GwSe86T+n`g=z8*b0l3rH8T(`kP_lec#8seDCny zyLDw>I_dUm~BKtwO#(`t1HSfC5~(eDz{Z*Vfk7*VhY$La|uf*x1uGdY|Xt&#**B=hUBpGMfV!31)5O`4JQoUYjHp!O7 zbR6F6DTARF#pWn=rZZopu^L}8WZbTiu1@t$_NXn!UTriqvg6J?^H+;RB0!^|C4j49 z0|Sel@?=n1jtDeo&{9JuE<#BaKmpJ&%qW*_f^aFy=lLT=Ic_v2w*9c*M{!KBm8yU< z3dw7fWY9I6)m`4~iS0n{Myfy3!mL4Z1S3^>m6mm`Ziq%l>GZXJXoRVqWZiT=n6Bco z02LMR29Op|F2?n7X-L&$!ANV))btl_f{qlrqH{z`qMaH)(8b79)3!eG%vsQ0#NH|m z&@3reIEt>ZTtg6Bs_N)^uhkklPTcROVK^O+7mEb~!T`#{*g;v02z5j^rebGS_vfu> z;f|NX`N?F3N_4r*;kZOrRhrRx-jtP&mOrzGPWN~)%#w6D6+n|QQ!U#X={D(}B?KKc z>NSo7dlL8NlVrJkhy;KdfC=CN1OUeXGYn7;MMRc~0v}})g#v?xt^lC~nF2@!WZ=kQ zk*}bziAEii`EY7H2eJq?1#9ZK-J-j$H1PE(YNu&1pQk9-A{xM2CBelNpVUIi$ar^A z50ai#kP%7u)=gyTL zop#{kgMAfVfAGiqIk~>Kd*SL+U%&Uog|o@|t-@nuIbRk#@A4nqyS4x3=%rVz7hb&a z-2wB%?dOR5udcoP{L>F+e|_WpcJt1;;EENfm!(VOYlk=Re|}HWKTDg+ryeeSds;%+ySTsm%Ny@}{y#6bmjM6( literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_gentle_up_3_1.png b/resources/g2/track/alpine/small_turn_right_gentle_up_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..78b31ada27f3e4e54f2d0c5a726f2373c3e43c27 GIT binary patch literal 980 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 literal 0 HcmV?d00001 diff --git a/resources/g2/track/alpine/small_turn_right_gentle_up_4_2.png b/resources/g2/track/alpine/small_turn_right_gentle_up_4_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9bfe99ef124fef166cf5b46f55fb2eec7ed8bae3 GIT binary patch literal 1079 zcmX9-acCQL6n@lMU>QF%2H$&+@1OVa z@x6Cub|yGBx^ol&#-&UvDedWyV&cPK^!C! z;w)$)R#LEP#@#4+x-}fN1E?#ZZ4DvQ4G^g#xNp zamwRoy#c|;NJLN}LrF^37&XtObUs@Vi#5rxqdpoB1pSOi@-iJ(I3+El3sS*Q3@d5c zS*u-Y_Ns0cJR*3b;7b6ZVRXS8EEC}>t5~5-Q!REh6RirQN2c+3kj#XblFU_9(MrjU zoZ8Y;oocRU>8NG8Jv2dvC_2h=aZ$|3ay}j}XEN17!7_|yz250`5a0?BIgBc~xe6}U z$Y_&Gx5CACywcI?-Ew=o(L*lM?WVonpwBOo0hwV`UPw#*Wr=boyIv~Wrqyk-An}+g zx|5Pmi;?*RtEa_EKDw?a8`XTfVRpNB5epCkPysXm9bg@xg#qeA;7~$EdJ)+TfdGYq zEDJ^uYypr6Nb#Z!g^B_)VyKozb`c&1PXo_ENWfyUHyJ0hTCh}Fu_K`dWAt zsDz8vyh70@8H8dpS|_Y`Au_};HgBu)uQvcM^I}uE*utPF*%V?s6dJiV_F!ATFZ}!RU>B&P!4=kO?9(vr|=X5+kyKKt_z#P@$JzE;}#*}ZUL_9O1(Pw($O@4A#)TyVbn z+#)2WG(XUmj|ve z{Es&_-hSb?iW#|sUDLZ`$D>b?Lre9sDLy-Tb@}4GjS~y=`~P|6=EqwpB7bCaV|-uw i&gIa_uUe=6+Qe>nCmzfklwRx`hUux9$xF{2Tl^ndwcK9- literal 0 HcmV?d00001 diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 94cb2044f2..fc3982b23a 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -103,6 +103,7 @@ static constexpr const char RideTypeViewOrder[] = { RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER, RIDE_TYPE_HYBRID_COASTER, RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER, + RIDE_TYPE_ALPINE_COASTER, // Gentle rides RIDE_TYPE_MONORAIL_CYCLES, diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 85e5e1446c..aa9e302d60 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -350,6 +350,7 @@ + @@ -828,6 +829,7 @@ + diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 713016e5f1..7d6dc1fa85 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -111,6 +111,7 @@ enum : uint16_t STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER = 92, STR_RIDE_NAME_HYBRID_COASTER = 93, STR_RIDE_NAME_SINGLE_RAIL_ROLLER_COASTER = 94, + STR_RIDE_NAME_ALPINE_COASTER = 95, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER = 512, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER = 513, @@ -202,6 +203,7 @@ enum : uint16_t STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER = 602, STR_RIDE_DESCRIPTION_HYBRID_COASTER = 603, STR_RIDE_DESCRIPTION_SINGLE_RAIL_ROLLER_COASTER = 604, + STR_RIDE_DESCRIPTION_ALPINE_COASTER = 605, STR_GUEST_X = 767, STR_HANDYMAN_X = 768, diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 7c0a2f750f..84a36aac78 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -42,7 +42,7 @@ // This string specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "0" +#define NETWORK_STREAM_VERSION "1" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr; diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index ff818b1235..40b009168a 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -1078,6 +1078,7 @@ static const EnumMap RideTypeLookupTable{ { "classic_mini_rc", RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER }, { "hybrid_rc", RIDE_TYPE_HYBRID_COASTER }, { "single_rail_rc", RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER }, + { "alpine_rc", RIDE_TYPE_ALPINE_COASTER }, }; uint8_t RideObject::ParseRideType(const std::string& s) diff --git a/src/openrct2/park/ParkFile.h b/src/openrct2/park/ParkFile.h index e445abefdd..2d3ae4e229 100644 --- a/src/openrct2/park/ParkFile.h +++ b/src/openrct2/park/ParkFile.h @@ -8,10 +8,10 @@ struct ObjectRepositoryItem; namespace OpenRCT2 { // Current version that is saved. - constexpr uint32_t PARK_FILE_CURRENT_VERSION = 0xB; + constexpr uint32_t PARK_FILE_CURRENT_VERSION = 0xC; // The minimum version that is forwards compatible with the current version. - constexpr uint32_t PARK_FILE_MIN_VERSION = 0xB; + constexpr uint32_t PARK_FILE_MIN_VERSION = 0xC; // The minimum version that is backwards compatible with the current version. // If this is increased beyond 0, uncomment the checks in ParkFile.cpp and Context.cpp! diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index b99e18571b..05bac254d5 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -580,6 +580,7 @@ enum RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER, RIDE_TYPE_HYBRID_COASTER, RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER, + RIDE_TYPE_ALPINE_COASTER, RIDE_TYPE_COUNT }; diff --git a/src/openrct2/ride/RideData.cpp b/src/openrct2/ride/RideData.cpp index 04cfebce6e..5c80115141 100644 --- a/src/openrct2/ride/RideData.cpp +++ b/src/openrct2/ride/RideData.cpp @@ -30,6 +30,7 @@ #include "Track.h" #include "Vehicle.h" #include "coaster/meta/AirPoweredVerticalCoaster.h" +#include "coaster/meta/AlpineCoaster.h" #include "coaster/meta/BobsleighCoaster.h" #include "coaster/meta/ClassicMiniRollerCoaster.h" #include "coaster/meta/CompactInvertedCoaster.h" @@ -313,6 +314,7 @@ constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = { /* RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER, */ ClassicMiniRollerCoasterRTD, /* RIDE_TYPE_HYBRID_COASTER */ HybridCoasterRTD, /* RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER */ SingleRailRollerCoasterRTD, + /* RIDE_TYPE_ALPINE_COASTER */ AlpineCoasterRTD, }; bool RideTypeDescriptor::HasFlag(uint64_t flag) const diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 19b3f71340..324d72e438 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -4440,6 +4440,43 @@ void ride_ratings_calculate_single_rail_roller_coaster(Ride* ride, RideRatingUpd ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths; } +void ride_ratings_calculate_alpine_coaster(Ride* ride, RideRatingUpdateState& state) +{ + if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED)) + return; + + ride->unreliability_factor = 7; + set_unreliability_factor(ride); + + RatingTuple ratings; + ride_ratings_set(&ratings, RIDE_RATING(2, 30), RIDE_RATING(2, 10), RIDE_RATING(1, 4)); + ride_ratings_apply_length(&ratings, ride, 6000, 873); + ride_ratings_apply_synchronisation(&ratings, ride, RIDE_RATING(0, 75), RIDE_RATING(0, 5)); + ride_ratings_apply_train_length(&ratings, ride, 187245); + ride_ratings_apply_max_speed(&ratings, ride, 44281, 88562, 35424); + ride_ratings_apply_average_speed(&ratings, ride, 291271, 436906); + ride_ratings_apply_duration(&ratings, ride, 300, 26214); + ride_ratings_apply_gforces(&ratings, ride, 20480, 23831, 49648); + ride_ratings_apply_turns(&ratings, ride, 29721, 34767, 45749); + ride_ratings_apply_drops(&ratings, ride, 8738, 5461, 6553); + ride_ratings_apply_sheltered_ratings(&ratings, ride, 15420, 32768, 35108); + ride_ratings_apply_proximity(state, &ratings, 22367); + ride_ratings_apply_scenery(&ratings, ride, 11155); + ride_ratings_apply_max_speed_penalty(&ratings, ride, 0x50000, 2, 2, 2); + ride_ratings_apply_max_negative_g_penalty(&ratings, ride, FIXED_2DP(0, 40), 2, 2, 2); + ride_ratings_apply_first_length_penalty(&ratings, ride, 0x1720000, 2, 2, 2); + ride_ratings_apply_excessive_lateral_g_penalty(&ratings, ride, 40960, 35746, 49648); + ride_ratings_apply_intensity_penalty(&ratings); + ride_ratings_apply_adjustments(ride, &ratings); + + ride->ratings = ratings; + + ride->upkeep_cost = ride_compute_upkeep(state, ride); + ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_INCOME; + + ride->sheltered_eighths = get_num_of_sheltered_eighths(ride).TotalShelteredEighths; +} + #pragma endregion #pragma region Ride rating calculation function table diff --git a/src/openrct2/ride/RideRatings.h b/src/openrct2/ride/RideRatings.h index a40a335138..3eb340ef55 100644 --- a/src/openrct2/ride/RideRatings.h +++ b/src/openrct2/ride/RideRatings.h @@ -142,4 +142,5 @@ void ride_ratings_calculate_mine_ride(Ride* ride, RideRatingUpdateState& state); void ride_ratings_calculate_lim_launched_roller_coaster(Ride* ride, RideRatingUpdateState& state); void ride_ratings_calculate_hybrid_coaster(Ride* ride, RideRatingUpdateState& state); void ride_ratings_calculate_single_rail_roller_coaster(Ride* ride, RideRatingUpdateState& state); +void ride_ratings_calculate_alpine_coaster(Ride* ride, RideRatingUpdateState& state); void ride_ratings_calculate_drink_stall(Ride* ride, RideRatingUpdateState& state); diff --git a/src/openrct2/ride/TrackPaint.h b/src/openrct2/ride/TrackPaint.h index 3f42bc5959..7b2651bfa5 100644 --- a/src/openrct2/ride/TrackPaint.h +++ b/src/openrct2/ride/TrackPaint.h @@ -479,3 +479,7 @@ namespace SingleRailRC { TRACK_PAINT_FUNCTION GetTrackPaintFunction(int32_t trackType); } +namespace AlpineRC +{ + TRACK_PAINT_FUNCTION GetTrackPaintFunction(int32_t trackType); +} diff --git a/src/openrct2/ride/Vehicle.h b/src/openrct2/ride/Vehicle.h index aeefd662b9..def7e7fd6b 100644 --- a/src/openrct2/ride/Vehicle.h +++ b/src/openrct2/ride/Vehicle.h @@ -143,6 +143,7 @@ struct Vehicle : EntityBase int8_t ferris_wheel_var_0; int8_t ferris_wheel_var_1; }; + int16_t rider_speed_preference; }; union { diff --git a/src/openrct2/ride/coaster/AlpineCoaster.cpp b/src/openrct2/ride/coaster/AlpineCoaster.cpp new file mode 100644 index 0000000000..24a42395b6 --- /dev/null +++ b/src/openrct2/ride/coaster/AlpineCoaster.cpp @@ -0,0 +1,7296 @@ +#pragma region Copyright(c) 2014 - 2022 OpenRCT2 Developers +/***************************************************************************** + * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. + * + * OpenRCT2 is the work of many authors, a full list can be found in contributors.md + * For more information, visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * A full copy of the GNU General Public License can be found in licence.txt + *****************************************************************************/ +#pragma endregion + +#include "../../drawing/Drawing.h" +#include "../../interface/Viewport.h" +#include "../../paint/Paint.h" +#include "../../paint/Supports.h" +#include "../../sprites.h" +#include "../../world/Map.h" +#include "../RideData.h" +#include "../TrackData.h" +#include "../TrackPaint.h" + +namespace AlpineRC +{ + static void TrackFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT + 1), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT + 2), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + else + { + switch (direction) + { + case 0: + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT + 1), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void TrackStation( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + static constexpr const uint32_t imageIds[4][3] = { + { (SPR_G2_ALPINE_TRACK_FLAT + 0), (SPR_G2_ALPINE_TRACK_FLAT + 0), SPR_STATION_BASE_B_SW_NE }, + { (SPR_G2_ALPINE_TRACK_FLAT + 1), (SPR_G2_ALPINE_TRACK_FLAT + 1), SPR_STATION_BASE_B_NW_SE }, + { (SPR_G2_ALPINE_TRACK_FLAT + 0), (SPR_G2_ALPINE_TRACK_FLAT + 0), SPR_STATION_BASE_B_SW_NE }, + { (SPR_G2_ALPINE_TRACK_FLAT + 1), (SPR_G2_ALPINE_TRACK_FLAT + 1), SPR_STATION_BASE_B_NW_SE }, + }; + + if (trackElement.GetTrackType() == TrackElemType::EndStation) + { + PaintAddImageAsParentRotated( + session, direction, imageIds[direction][1] | session.TrackColours[SCHEME_TRACK], { 0, 0, height }, + { 32, 20, 1 }, { 0, 6, height + 3 }); + } + else + { + PaintAddImageAsParentRotated( + session, direction, imageIds[direction][0] | session.TrackColours[SCHEME_TRACK], { 0, 0, height }, + { 32, 20, 1 }, { 0, 6, height + 3 }); + } + PaintAddImageAsParentRotated( + session, direction, imageIds[direction][2] | session.TrackColours[SCHEME_MISC], { 0, 0, height - 2 }, { 32, 28, 2 }, + { 0, 2, height }); + track_paint_util_draw_station_metal_supports(session, direction, height, session.TrackColours[SCHEME_SUPPORTS]); + track_paint_util_draw_station_2(session, ride, direction, height, trackElement, 4, 7); + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void Track25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 9), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 10), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 9), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 10), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_1); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + } + + static void TrackFlatTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 1), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 2), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 1), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 2), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + } + + static void Track25DegUpToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 6), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 6, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 6), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 6, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 40, 0x20); + } + + static void Track25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + Track25DegUp(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackFlatTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + Track25DegUpToFlat(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void Track25DegDownToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackFlatTo25DegUp(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackLeftQuarterTurn3( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 6), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 9), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 1), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 4), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 7), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 10), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 2), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 5), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 8), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE + 11), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightQuarterTurn3( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackLeftQuarterTurn3(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackLeftQuarterTurn5( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 10), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 15), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 1), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 6), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 11), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 16), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 2), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 7), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 12), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 17), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 3), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 8), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 13), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 18), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 4), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 9), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 14), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 19), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightQuarterTurn5( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackLeftQuarterTurn5(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackLeftEighthToDiag( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 12), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 1), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 5), + { 0, 0, height }, { 34, 16, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 9), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 13), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 2), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 6), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 10), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 14), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 3), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 7), + { 0, 0, height }, { 16, 18, 3 }, { 0, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 11), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 15), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightEighthToDiag( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 16), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 20), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 24), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 28), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 17), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 21), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 25), + { 0, 0, height }, { 34, 16, 3 }, { 0, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 29), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 18), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 22), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 26), + { 0, 0, height }, { 28, 28, 3 }, { 4, 4, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 30), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 19), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 23), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 27), + { 0, 0, height }, { 16, 18, 3 }, { 0, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE + 31), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftEighthToOrthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + TrackRightEighthToDiag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackRightEighthToOrthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + TrackLeftEighthToDiag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); + } + + static void TrackDiagFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiag25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + } + } + + static void TrackDiag25DegUpToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 6, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + } + } + + static void TrackDiagFlatTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height + 2, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height + 2, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 2, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 2, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 2, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 2, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackDiag25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 9), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 9), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + } + } + + static void TrackDiagFlatTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + break; + } + + paint_util_set_general_support_height(session, height + 56, 0x20); + } + + static void TrackDiag25DegDownToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + if (trackElement.HasChain()) + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + if (trackElement.HasChain()) + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + else + { + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + if (trackElement.HasChain()) + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + else + { + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackFlatToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 1), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 2), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 3), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void TrackFlatToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 6), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 9), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 10), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 11), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void TrackLeftBankToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackFlatToRightBank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackRightBankToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackFlatToLeftBank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackLeftBankTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 12), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 13), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 14), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 15), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 16), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 17), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + } + + static void TrackRightBankTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 18), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 19), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 20), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 21), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 22), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 23), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + } + + static void Track25DegUpToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 24), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 25), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 26), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 27), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 28), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 29), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 6, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 40, 0x20); + } + + static void Track25DegUpToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 30), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 31), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 32), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 33), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 34), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 35), + { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 6, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_0); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 40, 0x20); + } + + static void TrackLeftBankTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + Track25DegUpToRightBank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackRightBankTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + Track25DegUpToLeftBank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void Track25DegDownToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackRightBankTo25DegUp(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void Track25DegDownToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackLeftBankTo25DegUp(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 36), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 37), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 38), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 39), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void TrackRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + TrackLeftBank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackDiagFlatToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiagFlatToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 9), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiagLeftBankToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 6), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 7), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 8), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 5), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 9), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiagRightBankToFlat( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 2), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 3), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 0), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 1), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 4), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiagLeftBankTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 14), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 13), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 12), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackDiagRightBankTo25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 19), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 15), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 17), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 18), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 16), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackDiag25DegUpToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 24), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 20), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 21), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 23), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 22), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + } + } + + static void TrackDiag25DegUpToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 29), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 25), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 27), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 28), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 26), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + } + } + + static void TrackDiagLeftBankTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 26), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 27), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 28), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 25), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 29), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + break; + } + + paint_util_set_general_support_height(session, height + 56, 0x20); + } + + static void TrackDiagRightBankTo25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 22), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 23), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 20), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 21), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 24), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 4, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + break; + } + + paint_util_set_general_support_height(session, height + 56, 0x20); + } + + static void TrackDiag25DegDownToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 16), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 17), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 18), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 15), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 19), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackDiag25DegDownToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 12), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 13), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 10), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 11), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 14), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_b_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + } + } + + static void TrackDiagLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 33), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 30), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 32), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 31), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackDiagRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 31), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 32), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 30), + { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 33), + { -16, -16, height }, { 32, 32, 3 }, { -16, -16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftQuarterTurn3Bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 0), { 0, 0, height }, + { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 1), { 0, 0, height }, + { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 4), { 0, 0, height }, + { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 7), { 0, 0, height }, + { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 2, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 2), { 0, 0, height }, + { 16, 16, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 5), { 0, 0, height }, + { 16, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 8), { 0, 0, height }, + { 16, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 12), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 3), { 0, 0, height }, + { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 6), { 0, 0, height }, + { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 9), { 0, 0, height }, + { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 10), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 13), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 2, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightQuarterTurn3Bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackLeftQuarterTurn3Bank(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackBankedLeftQuarterTurn5( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 1), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 6), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 17), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 1, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 2), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 7), + { 0, 0, height }, { 32, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 12), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 18), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 3), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 8), + { 0, 0, height }, { 16, 16, 1 }, { 16, 16, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 13), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 19), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 4), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 9), + { 0, 0, height }, { 16, 32, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 14), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 20), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 5), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 10), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 15), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 16), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 21), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 1, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackBankedRightQuarterTurn5( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackBankedLeftQuarterTurn5(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackLeftEighthBankToDiag( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 0), { 0, 0, height }, + { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 4), { 0, 0, height }, + { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 8), { 0, 0, height }, + { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 12), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 1), { 0, 0, height }, + { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 5), { 0, 0, height }, + { 34, 16, 0 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 9), { 0, 0, height }, + { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 13), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 2), { 0, 0, height }, + { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 6), { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 10), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 14), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 3), { 0, 0, height }, + { 16, 16, 3 }, { 16, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 7), { 0, 0, height }, + { 16, 18, 0 }, { 0, 16, height + 27 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 11), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 15), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightEighthBankToDiag( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 16), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 20), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 24), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 28), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 17), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 21), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 25), + { 0, 0, height }, { 34, 16, 0 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 29), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 18), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 22), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 26), + { 0, 0, height }, { 28, 28, 0 }, { 4, 4, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 30), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 19), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 23), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 0, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 27), + { 0, 0, height }, { 16, 18, 0 }, { 0, 16, height + 27 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 2, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 31), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 3, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftEighthBankToOrthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + TrackRightEighthBankToDiag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + } + + static void TrackRightEighthBankToOrthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + TrackLeftEighthBankToDiag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); + } + + static void TrackLeftQuarterTurn3Tile25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 0), { 0, 6, height }, + { 32, 20, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 2), { 0, 6, height }, + { 32, 20, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 4), { 0, 6, height }, + { 32, 20, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 6), { 0, 6, height }, + { 32, 20, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_1); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 1), { 6, 0, height }, + { 20, 32, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 3), { 6, 0, height }, + { 20, 32, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 5), { 6, 0, height }, + { 20, 32, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 7), { 6, 0, height }, + { 20, 32, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_2); + break; + case 3: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + } + } + + static void TrackRightQuarterTurn3Tile25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 8), { 0, 6, height }, + { 32, 20, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 10), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 12), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 14), + { 0, 6, height }, { 32, 20, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_1); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 56, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 9), { 6, 0, height }, + { 20, 32, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 11), + { 6, 0, height }, { 20, 32, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 13), + { 6, 0, height }, { 20, 32, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 10, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 15), + { 6, 0, height }, { 20, 32, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 8, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_2); + break; + case 1: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + } + } + + static void TrackLeftQuarterTurn3Tile25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackRightQuarterTurn3Tile25DegUp(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + } + + static void TrackRightQuarterTurn3Tile25DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackLeftQuarterTurn3Tile25DegUp(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackLeftQuarterTurn525DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 10), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 15), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_1); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 1), + { 0, 0, height }, { 32, 16, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 6), + { 0, 0, height }, { 32, 16, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 11), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 16), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 2), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 7), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 12), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 17), + { 0, 0, height }, { 16, 16, 3 }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 3), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 8), + { 0, 0, height }, { 16, 32, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 13), + { 0, 0, height }, { 16, 32, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 18), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 4), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 9), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 14), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 19), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_2); + break; + case 3: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + } + } + + static void TrackRightQuarterTurn525DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 20), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 25), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 30), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 35), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_1); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 21), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 26), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 31), + { 0, 0, height }, { 32, 16, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 36), + { 0, 0, height }, { 32, 16, 3 }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 22), + { 0, 0, height }, { 16, 16, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 27), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 32), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 37), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 23), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 28), + { 0, 0, height }, { 16, 32, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 33), + { 0, 0, height }, { 16, 32, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 38), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 24), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 29), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 34), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 39), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 8, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_2); + break; + case 1: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 72, 0x20); + break; + } + } + + static void TrackLeftQuarterTurn525DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackRightQuarterTurn525DegUp(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + } + + static void TrackRightQuarterTurn525DegDown( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackLeftQuarterTurn525DegUp(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackSBendLeft( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 1), + { 0, 0, height }, { 32, 26, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 5, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 5), + { 0, 0, height }, { 32, 26, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 6, 1, height - 1, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 2), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 6), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 2), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 6), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 1), + { 0, 0, height }, { 32, 26, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 5, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 5), + { 0, 0, height }, { 32, 26, 3 }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 6, 1, height - 1, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 4), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 1: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 2: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackSBendRight( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 12), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 15), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 9), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 8, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 13), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 7, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 10), + { 0, 0, height }, { 32, 26, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 14), + { 0, 0, height }, { 32, 26, 3 }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 10), + { 0, 0, height }, { 32, 26, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 14), + { 0, 0, height }, { 32, 26, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 9), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 8, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 13), + { 0, 0, height }, { 32, 26, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 7, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 15), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 8), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_S_BEND + 12), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 1: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 2: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftHalfBankedHelixUpSmall( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 1), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 4), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 7), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 2), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 5), + { 0, 0, height }, { 16, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 8), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 12), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 3), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 6), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 9), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 10), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 13), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 11), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 0), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 1), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 4), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 7), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 1: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 12), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 2), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 5), + { 0, 0, height }, { 16, 16, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 8), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 7: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 13), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 3), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 6), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 9), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 10), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackRightHalfBankedHelixUpSmall( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 14), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 17), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 21), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 24), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 25), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 15), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 18), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 22), + { 0, 0, height }, { 16, 16, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 26), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 16), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 19), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 20), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 23), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 27), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_0); + break; + case 1: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 17), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 21), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 24), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 25), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 14), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 18), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 22), + { 0, 0, height }, { 16, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 26), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 15), + { 0, 0, height }, { 16, 16, 3 }, { 16, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 7: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 19), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 20), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 23), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 27), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_SMALL_HELIX + 16), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftHalfBankedHelixDownSmall( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackSequence >= 4) + { + trackSequence -= 4; + direction = (direction - 1) & 3; + } + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackRightHalfBankedHelixUpSmall(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + } + + static void TrackRightHalfBankedHelixDownSmall( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackSequence >= 4) + { + trackSequence -= 4; + direction = (direction + 1) & 3; + } + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + TrackLeftHalfBankedHelixUpSmall(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackLeftHalfBankedHelixUpLarge( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 0), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 1), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 6), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 11), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 17), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 2), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 7), + { 0, 0, height }, { 32, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 12), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 18), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 3), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 8), + { 0, 0, height }, { 16, 16, 1 }, { 16, 16, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 13), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 19), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 4), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 9), + { 0, 0, height }, { 16, 32, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 14), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 20), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 5), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 10), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 15), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 16), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 21), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 7: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 17), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 0), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 1), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 6), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 11), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 1: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 8: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 9: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 18), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 2), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 7), + { 0, 0, height }, { 16, 32, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 12), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 10: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 19), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 3), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 8), + { 0, 0, height }, { 16, 16, 1 }, { 16, 16, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 13), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 11: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 12: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 20), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 4), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 9), + { 0, 0, height }, { 32, 16, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 14), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 13: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 21), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 5), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 10), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 15), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 16), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 9, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + static void TrackRightHalfBankedHelixUpLarge( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 22), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 27), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 33), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 38), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 39), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 2: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 23), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 28), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 34), + { 0, 0, height }, { 32, 16, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 40), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 24), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 29), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 35), + { 0, 0, height }, { 16, 16, 1 }, { 16, 16, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 41), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 4: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 5: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 25), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 30), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 36), + { 0, 0, height }, { 16, 32, 1 }, { 0, 0, height + 27 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 42), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 6: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 26), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 31), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 32), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 5, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 37), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 43), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height + 8, TUNNEL_0); + break; + case 1: + paint_util_push_tunnel_left(session, height + 8, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 7: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 27), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 33), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 38), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 39), + { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 22), + { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 8: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 9: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 28), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 34), + { 0, 0, height }, { 16, 32, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 40), + { 0, 0, height }, { 16, 32, 3 }, { 0, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 23), + { 0, 0, height }, { 16, 32, 3 }, { 16, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 10: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 29), + { 0, 0, height }, { 16, 16, 3 }, { 0, 16, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 35), + { 0, 0, height }, { 16, 16, 1 }, { 16, 16, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 41), + { 0, 0, height }, { 16, 16, 3 }, { 16, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 24), + { 0, 0, height }, { 16, 16, 3 }, { 0, 0, height }); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 11: + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 12: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 30), + { 0, 0, height }, { 32, 16, 3 }, { 0, 0, height }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 36), + { 0, 0, height }, { 32, 16, 1 }, { 0, 0, height + 27 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 42), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 25), + { 0, 0, height }, { 32, 16, 3 }, { 0, 16, height }); + break; + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments( + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + case 13: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 31), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 32), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 5, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 37), + { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 43), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_LARGE_HELIX + 26), + { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height }); + metal_a_supports_paint_setup( + session, METAL_SUPPORTS_FORK_ALT, 4, 9, height, session.TrackColours[SCHEME_SUPPORTS]); + break; + } + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, + paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), + 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + break; + } + } + + static void TrackLeftHalfBankedHelixDownLarge( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackSequence >= 7) + { + trackSequence -= 7; + direction = (direction - 1) & 3; + } + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackRightHalfBankedHelixUpLarge(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + } + + static void TrackRightHalfBankedHelixDownLarge( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + if (trackSequence >= 7) + { + trackSequence -= 7; + direction = (direction + 1) & 3; + } + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + TrackLeftHalfBankedHelixUpLarge(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + } + + static void TrackBrakes( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (direction) + { + case 0: + case 2: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT + 0), { 0, 0, height }, + { 32, 20, 3 }, { 0, 6, height }); + break; + case 1: + case 3: + PaintAddImageAsParentRotated( + session, direction, session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_FLAT + 1), { 0, 0, height }, + { 32, 20, 3 }, { 0, 6, height }); + break; + } + if (track_paint_util_should_paint_supports(session.MapPosition)) + { + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 0, height, + session.TrackColours[SCHEME_SUPPORTS]); + } + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); + } + + static void TrackLeftBankToLeftQuarterTurn3Tile25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 0), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 2), + { 0, 6, height }, { 32, 20, 3 }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 3), + { 0, 6, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 5), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 7), + { 0, 6, height }, { 32, 20, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 1), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 4), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 6), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 8), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 10, height - 6, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_2); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + } + } + + static void TrackRightBankToRightQuarterTurn3Tile25DegUp( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 9), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 11), + { 0, 6, height }, { 32, 20, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 13), + { 0, 6, height }, { 32, 20, 3 }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 14), + { 0, 6, height }, { 32, 1, 26 }, { 0, 27, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 16), + { 0, 6, height }, { 32, 20, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 3, height, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_0); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 10), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 12), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 15), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 17), + { 6, 0, height }, { 20, 32, 3 }, { 0, 6, height - 6 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 10, height - 6, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height, TUNNEL_2); + break; + case 1: + paint_util_push_tunnel_left(session, height, TUNNEL_2); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + } + } + + static void TrackLeftQuarterTurn3Tile25DegDownToLeftBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 12), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 15), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 17), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 10), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height - 6, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 11), + { 6, 0, height }, { 20, 32, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 13), + { 6, 0, height }, { 20, 32, 3 }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 14), + { 6, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 16), + { 6, 0, height }, { 20, 32, 3 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 9), + { 6, 0, height }, { 20, 32, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 2: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 3: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + } + } + + static void TrackRightQuarterTurn3Tile25DegDownToRightBank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + { + switch (trackSequence) + { + case 0: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 8), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 1), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 4), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 6), + { 0, 6, height }, { 32, 20, 3 }, { 0, 6, height - 6 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK_ALT : METAL_SUPPORTS_FORK, 4, 8, height - 6, + session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_2); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 2: + paint_util_set_general_support_height(session, height + 48, 0x20); + break; + case 3: + switch (direction) + { + case 0: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 7), + { 6, 0, height }, { 20, 32, 3 }); + break; + case 1: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 0), + { 6, 0, height }, { 20, 32, 3 }); + break; + case 2: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 2), + { 6, 0, height }, { 20, 32, 3 }); + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 3), + { 6, 0, height }, { 1, 32, 26 }, { 27, 0, height }); + break; + case 3: + PaintAddImageAsParentRotated( + session, direction, + session.TrackColours[SCHEME_TRACK] | (SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 5), + { 6, 0, height }, { 20, 32, 3 }); + break; + } + metal_a_supports_paint_setup( + session, direction & 1 ? METAL_SUPPORTS_FORK : METAL_SUPPORTS_FORK_ALT, 4, 5, height, + session.TrackColours[SCHEME_SUPPORTS]); + switch (direction) + { + case 0: + paint_util_push_tunnel_right(session, height, TUNNEL_0); + break; + case 1: + paint_util_push_tunnel_left(session, height, TUNNEL_0); + break; + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D4, direction), 0xFFFF, + 0); + paint_util_set_general_support_height(session, height + 64, 0x20); + break; + } + } + + TRACK_PAINT_FUNCTION GetTrackPaintFunction(int32_t trackType) + { + switch (trackType) + { + case TrackElemType::Flat: + return TrackFlat; + case TrackElemType::EndStation: + case TrackElemType::BeginStation: + case TrackElemType::MiddleStation: + return TrackStation; + case TrackElemType::Up25: + return Track25DegUp; + case TrackElemType::FlatToUp25: + return TrackFlatTo25DegUp; + case TrackElemType::Up25ToFlat: + return Track25DegUpToFlat; + case TrackElemType::Down25: + return Track25DegDown; + case TrackElemType::FlatToDown25: + return TrackFlatTo25DegDown; + case TrackElemType::Down25ToFlat: + return Track25DegDownToFlat; + case TrackElemType::LeftQuarterTurn5Tiles: + return TrackLeftQuarterTurn5; + case TrackElemType::RightQuarterTurn5Tiles: + return TrackRightQuarterTurn5; + case TrackElemType::FlatToLeftBank: + return TrackFlatToLeftBank; + case TrackElemType::FlatToRightBank: + return TrackFlatToRightBank; + case TrackElemType::LeftBankToFlat: + return TrackLeftBankToFlat; + case TrackElemType::RightBankToFlat: + return TrackRightBankToFlat; + case TrackElemType::BankedLeftQuarterTurn5Tiles: + return TrackBankedLeftQuarterTurn5; + case TrackElemType::BankedRightQuarterTurn5Tiles: + return TrackBankedRightQuarterTurn5; + case TrackElemType::LeftBankToUp25: + return TrackLeftBankTo25DegUp; + case TrackElemType::RightBankToUp25: + return TrackRightBankTo25DegUp; + case TrackElemType::Up25ToLeftBank: + return Track25DegUpToLeftBank; + case TrackElemType::Up25ToRightBank: + return Track25DegUpToRightBank; + case TrackElemType::LeftBankToDown25: + return TrackLeftBankTo25DegDown; + case TrackElemType::RightBankToDown25: + return TrackRightBankTo25DegDown; + case TrackElemType::Down25ToLeftBank: + return Track25DegDownToLeftBank; + case TrackElemType::Down25ToRightBank: + return Track25DegDownToRightBank; + case TrackElemType::LeftBank: + return TrackLeftBank; + case TrackElemType::RightBank: + return TrackRightBank; + case TrackElemType::LeftQuarterTurn5TilesUp25: + return TrackLeftQuarterTurn525DegUp; + case TrackElemType::RightQuarterTurn5TilesUp25: + return TrackRightQuarterTurn525DegUp; + case TrackElemType::LeftQuarterTurn5TilesDown25: + return TrackLeftQuarterTurn525DegDown; + case TrackElemType::RightQuarterTurn5TilesDown25: + return TrackRightQuarterTurn525DegDown; + case TrackElemType::SBendLeft: + return TrackSBendLeft; + case TrackElemType::SBendRight: + return TrackSBendRight; + case TrackElemType::LeftQuarterTurn3Tiles: + return TrackLeftQuarterTurn3; + case TrackElemType::RightQuarterTurn3Tiles: + return TrackRightQuarterTurn3; + case TrackElemType::LeftBankedQuarterTurn3Tiles: + return TrackLeftQuarterTurn3Bank; + case TrackElemType::RightBankedQuarterTurn3Tiles: + return TrackRightQuarterTurn3Bank; + case TrackElemType::LeftQuarterTurn3TilesUp25: + return TrackLeftQuarterTurn3Tile25DegUp; + case TrackElemType::RightQuarterTurn3TilesUp25: + return TrackRightQuarterTurn3Tile25DegUp; + case TrackElemType::LeftQuarterTurn3TilesDown25: + return TrackLeftQuarterTurn3Tile25DegDown; + case TrackElemType::RightQuarterTurn3TilesDown25: + return TrackRightQuarterTurn3Tile25DegDown; + case TrackElemType::LeftHalfBankedHelixUpSmall: + return TrackLeftHalfBankedHelixUpSmall; + case TrackElemType::RightHalfBankedHelixUpSmall: + return TrackRightHalfBankedHelixUpSmall; + case TrackElemType::LeftHalfBankedHelixDownSmall: + return TrackLeftHalfBankedHelixDownSmall; + case TrackElemType::RightHalfBankedHelixDownSmall: + return TrackRightHalfBankedHelixDownSmall; + case TrackElemType::LeftHalfBankedHelixUpLarge: + return TrackLeftHalfBankedHelixUpLarge; + case TrackElemType::RightHalfBankedHelixUpLarge: + return TrackRightHalfBankedHelixUpLarge; + case TrackElemType::LeftHalfBankedHelixDownLarge: + return TrackLeftHalfBankedHelixDownLarge; + case TrackElemType::RightHalfBankedHelixDownLarge: + return TrackRightHalfBankedHelixDownLarge; + case TrackElemType::Brakes: + return TrackBrakes; + case TrackElemType::LeftEighthToDiag: + return TrackLeftEighthToDiag; + case TrackElemType::RightEighthToDiag: + return TrackRightEighthToDiag; + case TrackElemType::LeftEighthToOrthogonal: + return TrackLeftEighthToOrthogonal; + case TrackElemType::RightEighthToOrthogonal: + return TrackRightEighthToOrthogonal; + case TrackElemType::LeftEighthBankToDiag: + return TrackLeftEighthBankToDiag; + case TrackElemType::RightEighthBankToDiag: + return TrackRightEighthBankToDiag; + case TrackElemType::LeftEighthBankToOrthogonal: + return TrackLeftEighthBankToOrthogonal; + case TrackElemType::RightEighthBankToOrthogonal: + return TrackRightEighthBankToOrthogonal; + case TrackElemType::DiagFlat: + return TrackDiagFlat; + case TrackElemType::DiagUp25: + return TrackDiag25DegUp; + case TrackElemType::DiagFlatToUp25: + return TrackDiagFlatTo25DegUp; + case TrackElemType::DiagUp25ToFlat: + return TrackDiag25DegUpToFlat; + case TrackElemType::DiagDown25: + return TrackDiag25DegDown; + case TrackElemType::DiagFlatToDown25: + return TrackDiagFlatTo25DegDown; + case TrackElemType::DiagDown25ToFlat: + return TrackDiag25DegDownToFlat; + case TrackElemType::DiagFlatToLeftBank: + return TrackDiagFlatToLeftBank; + case TrackElemType::DiagFlatToRightBank: + return TrackDiagFlatToRightBank; + case TrackElemType::DiagLeftBankToFlat: + return TrackDiagLeftBankToFlat; + case TrackElemType::DiagRightBankToFlat: + return TrackDiagRightBankToFlat; + case TrackElemType::DiagLeftBankToUp25: + return TrackDiagLeftBankTo25DegUp; + case TrackElemType::DiagRightBankToUp25: + return TrackDiagRightBankTo25DegUp; + case TrackElemType::DiagUp25ToLeftBank: + return TrackDiag25DegUpToLeftBank; + case TrackElemType::DiagUp25ToRightBank: + return TrackDiag25DegUpToRightBank; + case TrackElemType::DiagLeftBankToDown25: + return TrackDiagLeftBankTo25DegDown; + case TrackElemType::DiagRightBankToDown25: + return TrackDiagRightBankTo25DegDown; + case TrackElemType::DiagDown25ToLeftBank: + return TrackDiag25DegDownToLeftBank; + case TrackElemType::DiagDown25ToRightBank: + return TrackDiag25DegDownToRightBank; + case TrackElemType::DiagLeftBank: + return TrackDiagLeftBank; + case TrackElemType::DiagRightBank: + return TrackDiagRightBank; + case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25: + return TrackLeftBankToLeftQuarterTurn3Tile25DegUp; + case TrackElemType::RightBankToRightQuarterTurn3TilesUp25: + return TrackRightBankToRightQuarterTurn3Tile25DegUp; + case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank: + return TrackLeftQuarterTurn3Tile25DegDownToLeftBank; + case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank: + return TrackRightQuarterTurn3Tile25DegDownToRightBank; + } + return nullptr; + } + +} // namespace AlpineRC diff --git a/src/openrct2/ride/coaster/meta/AlpineCoaster.h b/src/openrct2/ride/coaster/meta/AlpineCoaster.h new file mode 100644 index 0000000000..b069decc51 --- /dev/null +++ b/src/openrct2/ride/coaster/meta/AlpineCoaster.h @@ -0,0 +1,52 @@ +/***************************************************************************** + * Copyright (c) 2014-2022 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#pragma once + +#include "../../RideData.h" +#include "../../Track.h" + +// clang-format off +constexpr const RideTypeDescriptor AlpineCoasterRTD = +{ + SET_FIELD(AlternateType, RIDE_TYPE_NULL), + SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER), + SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_LONG, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_HELIX_SMALL}), + SET_FIELD(ExtraTrackPieces, {}), + SET_FIELD(CoveredTrackPieces, {}), + SET_FIELD(StartTrackPiece, TrackElemType::EndStation), + SET_FIELD(TrackPaintFunction, AlpineRC::GetTrackPaintFunction), + SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | + RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | + RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), + SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), + SET_FIELD(Naming, { STR_RIDE_NAME_ALPINE_COASTER, STR_RIDE_DESCRIPTION_ALPINE_COASTER }), + SET_FIELD(NameConvention, { RideComponentType::Car, RideComponentType::Track, RideComponentType::Station }), + SET_FIELD(EnumName, nameof(RIDE_TYPE_ALPINE_ROLLER_COASTER)), + SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)), + SET_FIELD(Heights, {18, 24, 3, 7}), + SET_FIELD(MaxMass, 4), + SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::Null, 4, 5 }), + SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_alpine_coaster), + SET_FIELD(RatingsMultipliers, { 50, 30, 10 }), + SET_FIELD(UpkeepCosts, { 35, 20, 80, 8, 3, 10 }), + SET_FIELD(BuildCosts, { 22.50_GBP, 2.50_GBP, 50}), + SET_FIELD(DefaultPrices, { 20, 20 }), + SET_FIELD(DefaultMusic, MUSIC_OBJECT_GENTLE), + SET_FIELD(PhotoItem, ShopItem::Photo), + SET_FIELD(BonusValue, 65), + SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS( + { COLOUR_GREY, COLOUR_GREY, COLOUR_BLACK }, + )), + SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_SUPPORTS }), + SET_FIELD(ColourKey, RideColourKey::Ride), +}; +// clang-format on diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index 900efba87a..fee025c4e0 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1124,7 +1124,34 @@ enum SPR_G2_SINGLE_RAIL_LIFT_TRACK_SMALL_FLAT_TO_STEEP = SPR_G2_SINGLE_RAIL_LIFT_TRACK_STEEP_DIAGONAL + 12, SPR_G2_SINGLE_RAIL_END = SPR_G2_SINGLE_RAIL_LIFT_TRACK_SMALL_FLAT_TO_STEEP + 20, - SPR_G2_END = SPR_G2_SINGLE_RAIL_END, + SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK = SPR_G2_SINGLE_RAIL_END, + SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_SUPPORTS = SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK + 1, + SPR_G2_ALPINE_BEGIN = SPR_RIDE_DESIGN_PREVIEW_ALPINE_COASTER_TRACK + 2, + SPR_G2_ALPINE_TRACK_FLAT = SPR_G2_ALPINE_BEGIN, + SPR_G2_ALPINE_TRACK_GENTLE = SPR_G2_ALPINE_TRACK_FLAT + 2, + SPR_G2_ALPINE_TRACK_SMALL_CURVE = SPR_G2_ALPINE_TRACK_GENTLE + 12, + SPR_G2_ALPINE_TRACK_MEDIUM_CURVE = SPR_G2_ALPINE_TRACK_SMALL_CURVE + 12, + SPR_G2_ALPINE_TRACK_LARGE_CURVE = SPR_G2_ALPINE_TRACK_MEDIUM_CURVE + 20, + SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL = SPR_G2_ALPINE_TRACK_LARGE_CURVE + 32, + SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL = SPR_G2_ALPINE_TRACK_FLAT_DIAGONAL + 4, + SPR_G2_ALPINE_TRACK_BANK_TRANSITION = SPR_G2_ALPINE_TRACK_GENTLE_DIAGONAL + 12, + SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL = SPR_G2_ALPINE_TRACK_BANK_TRANSITION + 40, + SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED = SPR_G2_ALPINE_TRACK_BANK_TRANSITION_DIAGONAL + 34, + SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED = SPR_G2_ALPINE_TRACK_SMALL_CURVE_BANKED + 14, + SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED = SPR_G2_ALPINE_TRACK_MEDIUM_CURVE_BANKED + 22, + SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE = SPR_G2_ALPINE_TRACK_LARGE_CURVE_BANKED + 32, + SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE = SPR_G2_ALPINE_TRACK_GENTLE_SMALL_CURVE + 16, + SPR_G2_ALPINE_TRACK_S_BEND = SPR_G2_ALPINE_TRACK_GENTLE_MEDIUM_CURVE + 40, + SPR_G2_ALPINE_TRACK_SMALL_HELIX = SPR_G2_ALPINE_TRACK_S_BEND + 16, + SPR_G2_ALPINE_TRACK_LARGE_HELIX = SPR_G2_ALPINE_TRACK_SMALL_HELIX + 28, + SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION = SPR_G2_ALPINE_TRACK_LARGE_HELIX + 44, + SPR_G2_ALPINE_LIFT_BEGIN = SPR_G2_ALPINE_TRACK_TURN_BANK_TRANSITION + 18, + SPR_G2_ALPINE_LIFT_TRACK_FLAT = SPR_G2_ALPINE_LIFT_BEGIN, + SPR_G2_ALPINE_LIFT_TRACK_GENTLE = SPR_G2_ALPINE_LIFT_TRACK_FLAT + 4, + SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL = SPR_G2_ALPINE_LIFT_TRACK_GENTLE + 12, + SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL = SPR_G2_ALPINE_LIFT_TRACK_FLAT_DIAGONAL + 4, + SPR_G2_ALPINE_END = SPR_G2_ALPINE_LIFT_TRACK_GENTLE_DIAGONAL + 12, + SPR_G2_END = SPR_G2_ALPINE_END, SPR_CSG_BEGIN = SPR_G2_END, SPR_CSG_END = SPR_CSG_BEGIN + RCT1::Limits::Num_LL_CSG_Entries,