//   
//----------------------------- :    ,  5--------(by Den_spb)-------------------------------------------
//
// ----------------------------------------------------------------------------------------------------------------------- 
{
0@ -    (         )
1@ -   
2@ -   
3@ -   
4@ -   
5@ -     
6@ -   
7@ -   
8@ -    
9@ -    
10@ -     
11@ -       ,     
12@ -       ,     
13@ -       ,     
14@ -       ,     
15@ -           (  )
16@ - ,         (   ,   )
17@ - ,         (   ,   )
18@ -   .
     
    0 -   . ,       ,  
    1 -   . ,       ,    
    2 -  
    3 -    
    4 -    
19@ -   .   .
20@ -   
21@ -   
22@ -   
23@ -   
24@ -   
25@ -   
26@ -     
27@ -     
28@ -   
29@ -   
30@ -    .
    
    0 -    CJ     -  
    1 -     -  
31@ -    .   .
32@ -  1.     
33@ -  2.              }
//------------------------------------------------------------------------------------------------------------------------------ 
{$CLEO .cs}
wait 1000
0A95: enable_thread_saving    //   (),  ,       
var                           //   
    20@ : Integer
    22@ : Integer
    23@ : Integer
    24@ : Integer
    25@ : Integer
end                       
16@ = 0
17@ = 0
30@ = 0
31@ = 0
32@ = 0
33@ = 0
while true  //------------------------------------------------------------------------------------------------------------  
    wait 0


    if
        0AE3: 7@ = random_object_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 0
    then
        repeat
            0984: 20@ = object 7@ model
            if or
                20@ == 18631
                20@ == 18632
                20@ == 18633
            then
                if and
                    803B: 7@ <> 26@
                    803B: 7@ <> 27@
                then
                    0108: destroy_object 7@
                end
            end
        until  8AE3: not 7@ = random_object_near_point 0.0 0.0 0.0 in_radius 10000.0 find_next 1
    end



    if  //--------------------------------------------------------------------------    (   )
        856E:   not car 8@ defined
    then
        if
            18@ <> 1
        then
            18@ = 1
            0209: 16@ = random_int_in_ranges 10 16 //15 21 // min  max   ,        
            16@ *= 1000
            32@ = 0
        else
            0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0 //   ,  ,     
            if and
                15@ == 0 //  ,      .  
                001D:   32@ > 16@ // (int)
            then       
                actor.StorePos($PLAYER_ACTOR,3@,4@,6@)
                if or
                    3@ < 956.0
                    4@ < 1281.0
                    856E:   not car 9@ defined //         ,      
                then
                    //       .  -  2,    -  4 (   Y  X)
                    //         ,   
                    if
                        3@ >= 0.0 //     
                    then
                        if
                            4@ >= 0.0
                        then
                            21@ = 1 //  
                        else
                            21@ = 2
                        end
                    else
                        if
                            4@ >= 0.0
                        then
                            21@ = 4
                        else
                            21@ = 3
                        end
                    end
                    //  tracks2.dat         .  ,  ,
                    //      ,    .
                    //         .
                    //       ,    .
                    //     300  ( 300 ).          (),
                    //   600   -  ,       ( ).
                    //     - ,      ,    .
                    //        600 ,       .
                    // ,         .
                    // ,        300 - 600   .
                    //       ,       ,
                    //     .      - tracks4.dat  
                    if
                        21@ == 1
                    then
                        jump @kvad_1t1
                    end
                    if
                        21@ == 2
                    then
                        jump @kvad_2t1
                    end
                    if
                        21@ == 3
                    then
                        jump @kvad_3t1
                    end
                    if
                        21@ == 4
                    then
                        jump @kvad_4t1
                    end
                    :kvad_1t1 //------------------------------------------------------------------------------ .   1
                    0@ = -598.09   //      pas- 
                    1@ = 1188.22
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@ //     
                            2@ > 600.0     //    600 ,      
                    jf @create1                                       // ,      
                    0@ = -325.94
                    1@ = 1248.88
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -35.79
                    1@ = 1293.15
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 241.37
                    1@ = 1229.34
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 536.14
                    1@ = 1247.17
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 739.12
                    1@ = 1461.33
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 742.99
                    1@ = 1697.59
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 742.51
                    1@ = 1787.34
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 740.75
                    1@ = 2026.49
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 726.84
                    1@ = 2321.07
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 801.16
                    1@ = 2609.48
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1072.24
                    1@ = 2722.62
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1236.12
                    1@ = 2632.27
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1481.99
                    1@ = 2632.34
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1774.87
                    1@ = 2675.03
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2021.92
                    1@ = 2694.18
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2229.69
                    1@ = 2690.17
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2519.59
                    1@ = 2639.43
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2552.81
                    1@ = 2344.89
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2735.05
                    1@ = 2111.73
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2781.06
                    1@ = 1816.16
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2856.25
                    1@ = 1531.03
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2864.77
                    1@ = 1239.22
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2764.76
                    1@ = 983.25
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2764.79
                    1@ = 743.27
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    if
                            21@ == 4  //     4 ,   
                    then
                            jump @_5                    // ,     
                    end
                    :kvad_2t1  //--------------------------------------------------------------------------- .   2
                    0@ = 2765.28
                    1@ = 528.72
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2781.32
                    1@ = 239.50
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2827.61
                    1@ = 36.33
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2763.10
                    1@ = -250.25
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2467.57
                    1@ = -275.00
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2192.47                                                // point 1
                    1@ = -357.99
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2122.11                                                // point 2 
                    1@ = -647.61
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2284.98
                    1@ = -897.82
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2284.99
                    1@ = -1186.05
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2273.19
                    1@ = -1484.06
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 2198.65
                    1@ = -1760.34
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1989.68
                    1@ = -1953.75
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1696.98
                    1@ = -1953.73
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1398.43
                    1@ = -1948.14
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1197.64
                    1@ = -1779.76
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 1002.70
                    1@ = -1556.24
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 815.00
                    1@ = -1366.51
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 778.25
                    1@ = -1333.63
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    if
                            21@ == 1
                    then
                            jump @_5
                    end
                    :kvad_3t1    //------------------------------------------------------------------------- .   3
                    wait 0
                    0@ = 589.52
                    1@ = -1187.75
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 335.44
                    1@ = -1061.40
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = 49.59
                    1@ = -1018.00
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -237.89
                    1@ = -1069.90
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -470.71
                    1@ = -1253.47
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -742.62
                    1@ = -1133.88
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -847.02
                    1@ = -1404.64
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1113.11
                    1@ = -1514.30
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1392.21
                    1@ = -1509.24
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1676.36
                    1@ = -1465.42
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1876.64
                    1@ = -1258.10
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1976.75
                    1@ = -995.47
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1978.81
                    1@ = -717.47
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    if
                            21@ == 2
                    then
                            jump @_5
                    end
                    :kvad_4t1 //-------------------------------------------------------------------------- .   4
                    0@ = -1980.12
                    1@ = -592.06
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1960.09
                    1@ = -296.04
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1944.42
                    1@ = -11.95
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1942.72
                    1@ = 171.88
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1756.16
                    1@ = 399.26
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1523.12
                    1@ = 568.50
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1290.21
                    1@ = 737.81
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -1082.96
                    1@ = 888.28
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -992.44
                    1@ = 954.08
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    0@ = -760.64
                    1@ = 1122.39
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                            2@ > 600.0
                    jf @create1
                    if
                            21@ == 3
                    then
                            jump @_5
                    end
                    jump @kvad_1t1
                    :create1 //---------------------------------------------------------------------------------  
                    wait 0
                    0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0
                    if
                            15@ == 0 //    (    )
                    then
                        while true
                            wait 0
                            0209: 21@ = random_int_in_ranges 0 16  //    (1-15)
                            if and
                                21@ <> 8
                                21@ <> 9
                                21@ <> 14  //     ,   
                            then
                                break          //   
                            end
                        end                       
                        7@ = -382234               //    ,        
                        21@ *= 16                  //   *     
                        005A: 7@ += 21@            // (int) -     
                        0016: 21@ /= 16
                        11@ = 6.643               //     -    60 /  
                        //  = 6,643 + 6,357 *  
                        while &0(7@,1i) <> 0      //    
                            wait 0
                            Model.Load(&0(7@,1i)) //   
                            11@ += 6.357          //      
                            7@ += 1 
                        end
             //           038B: load_requested_models
                        0087: 12@ = 11@ // (float) 
                        12@ += 20.0 
                        //   60 /   .  .   20 
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        while &0(7@,1i) <> 0  //  ,   
                            repeat
                                wait 0
                            until Model.Available(&0(7@,1i))
                            7@ += 1
                        end
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        7@ += 14                //   14   
                        if and                  //    19 ,     
                            &0(7@,1i) <> 0      //     14 
                            21@ < 7             //   0-6 (  -    ,   )
                        then
                            22@ = &0(7@,1i)   //  14 
                            7@ += 1
                            &0(7@,1i) = 22@   //   15 (0)   14
                            7@ += 1
                            23@ = &0(7@,1i)   //      16 (     )
                            &0(7@,1i) = 22@   //   16   ,   14
                            7@ += 1
                            20@ = &0(7@,1i)   //  17 
                            &0(7@,1i) = 22@
                            7@ += 1
                            24@ = &0(7@,1i)   //  18 
                            &0(7@,1i) = 22@
                            7@ += 1
                            25@ = &0(7@,1i)   //  19  ()
                            &0(7@,1i) = 0    
                        end
                        //       2  
                        //       ,   .
                        //       .
                        //   ,        .
                        if and
                            0@ == 2192.47      //   1                                              
                            1@ == -357.99
                        then
                            06D8: 8@ = create_train_at 0@ 1@ 60.0 type 21@ direction 1
                        else
                            if and
                                0@ == 2122.11   //    2 
                                1@ == -647.61
                            then
                                06D8: 8@ = create_train_at 0@ 1@ 70.0 type 21@ direction 1
                            else                //  -  
                                06D8: 8@ = create_train_at 0@ 1@ 0.0 type 21@ direction 1
                            end                 //         - 0.0
                        end
                        18@ = 2
                        30@ = 1
                        06DC: set_train 8@ acc 16.67          //    -
                        06DD: set_train 8@ speed 16.67        // 60 /
              {          if
                            $ONMISSION == 0                   //      
                        then
                            5@ = Marker.CreateAboveCar(8@) 
                            Marker.SetColor(5@, 0x808000FF)       // 0
                            018B: set_marker 5@ radar_mode 2
                        end                                       }
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        7@ += 14
                        if and                            //     ,    
                            &0(7@,1i) <> 0
                            21@ < 7
                        then
                            7@ += 1                // 15
                            &0(7@,1i) = 0
                            7@ += 1                // 16
                            &0(7@,1i) = 23@
                            7@ += 1                // 17
                            &0(7@,1i) = 20@
                            7@ += 1                // 18
                            &0(7@,1i) = 24@
                            7@ += 1                // 19
                            &0(7@,1i) = 25@
                        end
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        while &0(7@,1i) <> 0              //     
                            wait 0
                            Model.Destroy(&0(7@,1i))
                            7@ += 1 
                        end
                    end
                end
            end        
        end            
    end
    :_5
    wait 0
    if  //---------------------------------------------------------------------------    (   )
        856E:   not car 9@ defined
    then
        if
            19@ <> 1
        then
            19@ = 1
            0209: 17@ = random_int_in_ranges 10 16 //15 21 // min  max   ,        
            17@ *= 1000
            33@ = 0
        else
            0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0 //   ,  ,     
            if and
                15@ == 0 //  ,      .  
                001D:   33@ > 17@ // (int)
            then       
                actor.StorePos($PLAYER_ACTOR,3@,4@,6@)
                if or
                    3@ < 956.0
                    4@ < 1281.0 //     ,     
                then
                    if
                        3@ >= 0.0 //     
                    then
                        if
                            4@ >= 0.0
                        then
                            21@ = 1 //  
                        else
                            21@ = 2
                        end
                    else
                        if
                            4@ >= 0.0
                        then
                            21@ = 4
                        else
                            21@ = 3
                        end
                    end
                    if
                        21@ == 1
                    then
                        jump @kvad_1t4
                    end
                    if
                        21@ == 2
                    then
                        jump @kvad_2t4
                    end
                    if
                        21@ == 3
                    then
                        jump @kvad_3t4
                    end
                    if
                        21@ == 4
                    then
                        jump @kvad_4t4
                    end
                    :kvad_4t4    //------------------------------------------------------------------------------ .   4
                    0@ = 515.98
                    1@ = 1240.23
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 226.84
                    1@ = 1238.51
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -53.40
                    1@ = 1296.12
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -347.38
                    1@ = 1247.21
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -631.83
                    1@ = 1185.07
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -880.27
                    1@ = 1040.72
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1030.44
                    1@ = 931.37
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1240.99
                    1@ = 778.43
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1342.19
                    1@ = 704.87
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    if
                            21@ == 1
                    then
                            jump @_6
                    end
                    :kvad_3t4    //---------------------------------------------------------------------------- .   3
                    wait 0
                    0@ = -1498.99
                    1@ = 590.90
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1601.06
                    1@ = 516.83
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1837.42
                    1@ = 347.58
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1948.42
                    1@ = 100.00
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1950.42
                    1@ = -190.28
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1982.39
                    1@ = -488.08
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1982.55
                    1@ = -768.10
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1971.89
                    1@ = -1059.67
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1846.91
                    1@ = -1309.37
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1629.08
                    1@ = -1486.73
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1347.52
                    1@ = -1513.87
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -1053.53
                    1@ = -1508.42
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -835.57
                    1@ = -1370.31
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -718.41
                    1@ = -1128.25
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    if
                            21@ == 4
                    then
                            jump @_6
                    end
                    :kvad_2t4    //------------------------------------------------------------------------------ .   2
                    0@ = -596.65
                    1@ = -1164.91
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -349.44
                    1@ = -1223.16
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = -137.48
                    1@ = -1027.47
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 151.78
                    1@ = -1026.41
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 438.87
                    1@ = -1107.08
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 690.56
                    1@ = -1266.07
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 910.87
                    1@ = -1464.63
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1097.41
                    1@ = -1669.80
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1293.72
                    1@ = -1894.03
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1573.67
                    1@ = -1957.68
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1857.49
                    1@ = -1957.93
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2152.76
                    1@ = -1957.85
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2205.95
                    1@ = -1686.16
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2288.74
                    1@ = -1407.02
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2288.95
                    1@ = -1110.09
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2281.21
                    1@ = -816.01
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2078.88
                    1@ = -607.04
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    if
                            21@ == 3
                    then
                            jump @_6
                    end
                    :kvad_1t4    //------------------------------------------------------------------------------- .   1
                    0@ = 2062.91
                    1@ = -593.55
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2087.84
                    1@ = -365.31
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2367.59
                    1@ = -284.31
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2661.26
                    1@ = -298.92
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2832.24
                    1@ = -92.44
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2805.30
                    1@ = 182.18
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2769.17
                    1@ = 442.68
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2768.74
                    1@ = 701.56
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2768.72
                    1@ = 983.27
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2868.74
                    1@ = 1239.21
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2860.00
                    1@ = 1532.27
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2785.01
                    1@ = 1782.76
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2765.17
                    1@ = 2066.97
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2563.53
                    1@ = 2264.64
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2551.77
                    1@ = 2560.03
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2342.07
                    1@ = 2694.16
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 2092.40
                    1@ = 2694.22
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1797.40
                    1@ = 2682.39
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1510.13
                    1@ = 2636.25
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 1212.03
                    1@ = 2637.34
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 957.59
                    1@ = 2762.66
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 768.57
                    1@ = 2550.89
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 725.39
                    1@ = 2288.51
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 736.95
                    1@ = 2009.09
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 738.76
                    1@ = 1746.69
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 735.12
                    1@ = 1461.95
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    0@ = 616.45
                    1@ = 1297.93
                    0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
                        2@ > 600.0
                    jf @create4
                    if
                            21@ == 2
                    then
                            jump @_6
                    end
                    jump @kvad_4t4
                    :create4 //-------------------------------------------------------------------------------------  
                    wait 0
                    0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0
                    if
                        15@ == 0 //    (    )
                    then
                        while true
                            wait 0
                            0209: 21@ = random_int_in_ranges 0 16  //    (1-15)
                            if and
                                21@ <> 8
                                21@ <> 9
                                21@ <> 14  //     ,   
                            then
                                break          //   
                            end
                        end                       
                        7@ = -382234               //    ,        
                        21@ *= 16                  //   *     
                        005A: 7@ += 21@            // (int) -     
                        0016: 21@ /= 16
                        13@ = 6.643               //     -    60 /  
                        //  = 6,643 + 6,357 *  
                        while &0(7@,1i) <> 0      //    
                            wait 0
                            Model.Load(&0(7@,1i)) //   
                            13@ += 6.357          //      
                            7@ += 1 
                        end
          //              038B: load_requested_models
                        0087: 14@ = 13@ // (float) 
                        14@ += 20.0 
                        //   60 /   .  .   20 
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        while &0(7@,1i) <> 0  //  ,   
                            repeat
                                wait 0
                            until Model.Available(&0(7@,1i))
                            7@ += 1
                        end
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        7@ += 14                //   14   
                        if and                  //    19 ,     
                            &0(7@,1i) <> 0      //     14 
                            21@ < 7             //   0-6 (  -    ,   )
                        then
                            22@ = &0(7@,1i)   //  14 
                            7@ += 1
                            &0(7@,1i) = 22@   //   15 (0)   14
                            7@ += 1
                            23@ = &0(7@,1i)   //      16 (     )
                            &0(7@,1i) = 22@   //   16   ,   14
                            7@ += 1
                            20@ = &0(7@,1i)   //  17 
                            &0(7@,1i) = 22@
                            7@ += 1
                            24@ = &0(7@,1i)   //  18 
                            &0(7@,1i) = 22@
                            7@ += 1
                            25@ = &0(7@,1i)   //  19  ()
                            &0(7@,1i) = 0    
                        end
                        06D8: 9@ = create_train_at 0@ 1@ 0.0 type 21@ direction 0
                        //        - 0.0
                        19@ = 2
                        31@ = 1
                        06DC: set_train 9@ acc 16.67          //    -
                        06DD: set_train 9@ speed 16.67        // 60 /
                  {      if
                            $ONMISSION == 0                   //      
                        then
                            10@ = Marker.CreateAboveCar(9@) 
                            Marker.SetColor(10@, 0x008080FF)  // 1
                            018B: set_marker 10@ radar_mode 2
                        end               }
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        7@ += 14
                        if and                            //     ,    
                            &0(7@,1i) <> 0
                            21@ < 7
                        then
                            7@ += 1                // 15
                            &0(7@,1i) = 0
                            7@ += 1                // 16
                            &0(7@,1i) = 23@
                            7@ += 1                // 17
                            &0(7@,1i) = 20@
                            7@ += 1                // 18
                            &0(7@,1i) = 24@
                            7@ += 1                // 19
                            &0(7@,1i) = 25@
                        end
                        7@ = -382234
                        21@ *= 16
                        005A: 7@ += 21@ // (int) 
                        0016: 21@ /= 16
                        while &0(7@,1i) <> 0              //     
                            wait 0
                            Model.Destroy(&0(7@,1i))
                            7@ += 1 
                        end
                    end
                end
            end
        end 
    end                   
    :_6 // --------------------------------------------------------------------------------------------------   
    wait 0
    //  ,    ,     -.
    //          -.     13 .
    //   -  1000 ,   600  (        1  )
    //       ,       
    //         ,   
    00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
    3@ = 1431.0647                                       // X  1
    4@ = 2634.4133                                       // Y  1
    0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@    //  
    20@ = 1                                              //    
    3@ = 2550.8633                                       //    
    4@ = 2498.4736
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@    //  
    if
        0025:   2@ > 6@ // (float)                       //     2  ,   
    then 
        0087: 2@ = 6@ // (float)                         //    
        20@ = 2                                          //   
    end
    3@ = 2866.9167
    4@ = 1287.7421
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 3 
    end
    3@ = 2791.6074
    4@ = 218.3158
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 4 
    end
    3@ = 2284.8879
    4@ = -331.9585
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 5 
    end
    3@ = 2287.0544
    4@ = -1051.7172
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 6 
    end
    3@ = 1919.104
    4@ = -1955.9293
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 7 
    end
    3@ = -21.6351
    4@ = -1020.1892
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 8 
    end
    3@ = -1260.7156
    4@ = -1515.5342
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 9 
    end
    3@ = -1946.1219
    4@ = 134.2469
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 10 
    end
    3@ = -915.0107
    4@ = 1012.6142
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 11 
    end
    3@ = 156.3303
    4@ = 1265.4232
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 12 
    end
    3@ = 739.1387
    4@ = 1994.1334
    0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
    if
        0025:   2@ > 6@ // (float)
    then 
        0087: 2@ = 6@ // (float)
        20@ = 13 
    end
    //       ,       
    // ,     ,        
    //    ( )
    if
        20@ == 1                                           //       - 1, 
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ > 1483.521// train position -     (   )
                // ,       -
                // ,  X    X  , ,    
                //         
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if 
                32@ < 30000  //             30000  (30 )
                             //     
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if                   //       
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ < 1380.6613// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end                 //       
        0@ = 1483.521       // x   
        1@ = 2629.804       // y   
        2@ = 9.8203         // z   
        28@ = 90.0          // z   .   - ,    .
        3@ = 1380.6613      
        4@ = 2638.6968
        6@ = 9.8203
        29@ = 270.0    
        jump @lights_1      //     ,     
    end
    if
        20@ == 2
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ < 2489.8071// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if 
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ > 2507.032// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 2545.4644
        1@ = 2489.8071
        2@ = 9.8203
        28@ = 0.0
        3@ = 2555.9687
        4@ = 2507.032
        6@ = 9.8203
        29@ = 180.0 
        jump @lights_1
    end
    if
        20@ == 3
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ < 1226.0918// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if 
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ > 1341.5892// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 2861.7556
        1@ = 1226.0918
        2@ = 9.8203
        28@ = 0.0
        3@ = 2871.428
        4@ = 1341.5892
        6@ = 9.8203
        29@ = 180.0 
        jump @lights_1
    end
    if
        20@ == 4
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ < 208.3398// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if 
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ > 228.1062// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 2790.0676
        1@ = 208.3398
        2@ = 10.4456
        28@ = 17.1433
        3@ = 2793.0969
        4@ = 228.1062
        6@ = 9.3835
        29@ = 197.625 
        jump @lights_1
    end
    if
        20@ == 5
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if and
                0@ < 2274.7961// train position
                1@ > -481.795
            then
                21@ = 18633 // set traffic light color to red
            else
                if
                    1@ < -481.795
                then
                    21@ = 18633 // set traffic light color to red
                else
                    21@ = 18632 // set traffic light color to green
                end
            end
        else
            if 
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if and
                1@ > -481.795// train position
                0@ > 2294.8137
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 2274.7961
        1@ = -332.2822
        2@ = 37.0372
        28@ = 298.171
        3@ = 2294.8137
        4@ = -331.2238
        6@ = 34.7746
        29@ = 122.6793   
        jump @lights_1
    end
    if
        20@ == 6
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ < -1060.2272// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ > -1042.8805// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 2281.8567
        1@ = -1060.2272
        2@ = 25.8661
        28@ = 0.0
        3@ = 2292.123
        4@ = -1042.8805
        6@ = 25.8325
        29@ = 180.0
        jump @lights_1
    end
    if
        20@ == 7
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ < 1910.3224// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ > 1928.194// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if 
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 1910.3224
        1@ = -1950.7422
        2@ = 12.5547
        28@ = 270.0
        3@ = 1928.194
        4@ = -1961.0897
        6@ = 12.5469
        29@ = 90.0
        jump @lights_1
    end
    if
        20@ == 8
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ < -30.3923// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ > -12.0904// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = -30.3923
        1@ = -1014.865
        2@ = 19.3695
        28@ = 270.0
        3@ = -12.0904
        4@ = -1025.2236
        6@ = 19.7471
        29@ = 90.0 
        jump @lights_1
    end
    if
        20@ == 9
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ < -1268.5348// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ > -1252.0717// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = -1268.5348
        1@ = -1509.6836
        2@ = 25.4872
        28@ = 265.262
        3@ = -1252.0717
        4@ = -1521.1899
        6@ = 27.1844
        29@ = 86.347 
        jump @lights_1
    end
    if
        20@ == 10
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ > 206.1199// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ < 61.969// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end 
        0@ = -1936.4524
        1@ = 206.1199
        2@ = 24.5516
        28@ = 180.0
        3@ = -1951.3076
        4@ = 61.969
        6@ = 24.7109
        29@ = 0.0
        jump @lights_1
    end
    if
        20@ == 11
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ > -905.1539// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ < -925.2382// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = -905.1539
        1@ = 1014.1198
        2@ = 33.5781
        28@ = 125.4259
        3@ = -925.2382
        4@ = 1011.7167
        6@ = 33.5781
        29@ = 305.5475  
        jump @lights_1
    end
    if
        20@ == 12
    then
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                0@ > 163.6387// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                0@ < 150.1235// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 163.6387
        1@ = 1257.507
        2@ = 21.837
        28@ = 69.524
        3@ = 150.1235
        4@ = 1273.7073
        6@ = 21.6341
        29@ = 248.1258
        jump @lights_1
    end
        if
            056E:   car 8@ defined // . 
        then
            car.StorePos(8@,0@,1@,2@)
            if
                1@ > 2002.6312// train position
            then
                21@ = 18633 // set traffic light color to red
            else
                21@ = 18632 // set traffic light color to green
            end
        else
            if 
                32@ < 30000
            then
                21@ = 18631 // set traffic light color to yellow
            else
                21@ = 18632 // set traffic light color to green
            end
        end
        if
            056E:   car 9@ defined // . 
        then
            car.StorePos(9@,0@,1@,2@)
            if
                1@ < 1985.515// train position
            then
                22@ = 18633 // set traffic light color to red
            else
                22@ = 18632 // set traffic light color to green
            end
        else
            if
                33@ < 30000
            then
                22@ = 18631 // set traffic light color to yellow
            else
                22@ = 18632 // set traffic light color to green
            end
        end
        0@ = 744.1491
        1@ = 2002.6312
        2@ = 4.7541
        28@ = 180.0
        3@ = 733.924
        4@ = 1985.515
        6@ = 4.3359
        29@ = 0.0   
    :lights_1  // ------------------------------------------------------------------------------------    
    wait 0
    23@ = -382079 // place of traffic lights -             
    24@ = -382078 // colour of traffic light 1 -          ..  
    if and
        003B: 20@ == &0(23@,1i) // (int) 
        003B: 21@ == &0(24@,1i) // (int)
    then
    else                    //       .    , 
        model.Load(21@)
        repeat
            wait 0
        until model.Available(21@)
        if
            03CA: object 26@ exists            //     ,
        then
            0108: destroy_object 26@           //    
        end
        object.Create(26@,21@,0@,1@,2@)        //   
        0177: set_object 26@ Z_angle_to 28@
        model.Destroy(21@)

        marker.CreateAboveObject(7@ 26@)
        if
            21@ == 18631
        then
            marker.SetColor(7@ 0xFFFF00FF)
        else
            if
                21@ == 18632
            then
                marker.SetColor(7@ 0x00FF00FF)
            else
                marker.SetColor(7@ 0xFF0000FF)
            end
        end
        018B: set_marker 7@ radar_mode 2     }
        
        0085: &0(24@,1i) = 21@ // (int)         //       
    end
    24@ = -382077 // colour of traffic light 4 -      
    if and
        003B: 20@ == &0(23@,1i) // (int)  -    
        003B: 22@ == &0(24@,1i) // (int)
    then
    else                                   //     
        model.Load(22@)
        repeat
            wait 0
        until model.Available(22@)
        if
            03CA: object 27@ exists
        then
            0108: destroy_object 27@
        end
        object.Create(27@,22@,3@,4@,6@)
        0177: set_object 27@ Z_angle_to 29@
        model.Destroy(22@)
         
    {    marker.CreateAboveObject(7@ 27@)
        if
            22@ == 18631
        then
            marker.SetColor(7@ 0xFFFF00FF)
        else
            if
                22@ == 18632
            then
                marker.SetColor(7@ 0x00FF00FF)
            else
                marker.SetColor(7@ 0xFF0000FF)
            end
        end
        018B: set_marker 7@ radar_mode 2         }
        
        0085: &0(23@,1i) = 20@ // (int)   save new parameters in memory
        0085: &0(24@,1i) = 22@ // (int)
    end    //           
    //-------------------------------------------------------------------------------------     
        056E:   car 8@ defined   //   
    jf @_7                       
    if and
        18@ == 2                  //   
        30@ == 1                  //    
    jf @_7
    car.StorePos(8@,3@,4@,6@)     //             
        0509: 2@ = distance_between_XY 1474.9031 2634.6375 and_XY 3@ 4@ // 1474.9031 2634.6375 -   -     
    if and
        0025:   12@ > 2@ // (float)       
        0025:   2@ > 11@ // (float)     (     )
        3@ < 1474.9031   //    
        // ,       -. ,  Y    Y   ,
        //   ,     ,      -                                            
    then
        06DD: set_train 8@ speed 0.0  //  
        18@ = 3                       //   
        jump @_7                      //    
    end 
    0509: 2@ = distance_between_XY 2866.8667 1246.4919 and_XY 3@ 4@     // 
    if and
        0025:   12@ > 2@ // (float) 
        0025:   2@ > 11@ // (float)
        4@ > 1246.4919                                          
    then
        06DD: set_train 8@ speed 0.0
        18@ = 3
        jump @_7
    end 
    0509: 2@ = distance_between_XY 1696.873 -1955.7689 and_XY 3@ 4@     
    if and
        0025:   12@ > 2@ // (float) 
        0025:   2@ > 11@ // (float)
        3@ > 1696.873                                          
    then
        06DD: set_train 8@ speed 0.0
        18@ = 3
        jump @_7
    end 
    0509: 2@ = distance_between_XY 784.326 -1341.736 and_XY 3@ 4@     //   821.194 -1364.7119 -0.4794
    if and
        0025:   12@ > 2@ // (float) 
        0025:   2@ > 11@ // (float)
        3@ > 784.326                                          
    then
        06DD: set_train 8@ speed 0.0
        18@ = 3
        jump @_7
    end 
    0509: 2@ = distance_between_XY -1943.7788 183.2991 and_XY 3@ 4@     
    if and
        0025:   12@ > 2@ // (float) 
        0025:   2@ > 11@ // (float)
        4@ < 183.2991                                          
    then
        06DD: set_train 8@ speed 0.0
        18@ = 3
    end
    :_7
    //---------------------------------------------------------------------------------------------------   
        056E:   car 9@ defined  //   ,     
    jf @_8
    if and
        19@ == 2
        31@ == 1
    jf @_8
    car.StorePos(9@,3@,4@,6@)
        0509: 2@ = distance_between_XY 1392.7462 2634.2546 and_XY 3@ 4@     
    if and
        0025:   14@ > 2@ // (float) 
        0025:   2@ > 13@ // (float)
        3@ > 1392.7462                                         
    then
        06DD: set_train 9@ speed 0.0
        19@ = 3
        jump @_8
    end 
    0509: 2@ = distance_between_XY 2867.2666 1330.1616 and_XY 3@ 4@     
    if and
        0025:   14@ > 2@ // (float) 
        0025:   2@ > 13@ // (float)
        4@ < 1330.1616                                          
    then
        06DD: set_train 9@ speed 0.0
        19@ = 3
        jump @_8
    end 
    0509: 2@ = distance_between_XY 1778.1157 -1955.7063 and_XY 3@ 4@     
    if and
        0025:   14@ > 2@ // (float) 
        0025:   2@ > 13@ // (float)
        3@ < 1778.1157                                          
    then
        06DD: set_train 9@ speed 0.0
        19@ = 3
        jump @_8
    end 
    0509: 2@ = distance_between_XY 841.0762 -1393.855 and_XY 3@ 4@     
    if and
        0025:   14@ > 2@ // (float) 
        0025:   2@ > 13@ // (float)
        3@ < 841.0762                                          
    then
        06DD: set_train 9@ speed 0.0
        19@ = 3
        jump @_8
    end 
    0509: 2@ = distance_between_XY -1946.4993 81.0843 and_XY 3@ 4@     
    if and
        0025:   14@ > 2@ // (float) 
        0025:   2@ > 13@ // (float)
        4@ > 81.0843                                          
    then
        06DD: set_train 9@ speed 0.0
        19@ = 3
    end
    :_8
    if  //-------------------------------------------------------------------------------------    
        056E:   car 8@ defined
    then
        if and
            18@ == 3
            30@ == 1    
            01C1:   car 8@ stopped
        then 
            18@ = 4
            0209: 16@ = random_int_in_ranges 15 21  //         
            wait 0
            16@ *= 1000
            32@ = 0
        end
    end
    if  //-------------------------------------------------------------------------------------    
        056E:   car 9@ defined
    then
        if and
            19@ == 3
            31@ == 1    
            01C1:   car 9@ stopped
        then 
            19@ = 4
            0209: 17@ = random_int_in_ranges 15 21  //         
            wait 0
            17@ *= 1000
            33@ = 0
        end
    end        
    if //---------------------------------------------------------------------------------------    
        056E:   car 8@ defined
    then
        if and
            18@ == 4
            30@ == 1
            001D:   32@ > 16@ // (int) -   
        then
            18@ = 2
            06DD: set_train 8@ speed 16.67
        end
    end
    if //-------------------------------------------------------------------------------------------    
        056E:   car 9@ defined
    then
        if and
            19@ == 4
            31@ == 1
            001D:   33@ > 17@ // (int) -   
        then
            19@ = 2
            06DD: set_train 9@ speed 16.67
        end
    end
    if //---------------------------------------------------------------------------------------     
        056E:   car 8@ defined
    then
        if and
            not actor.InCar($PLAYER_ACTOR,8@)
            0203:   actor $PLAYER_ACTOR near_car 8@ radius 8.0 8.0 flag 0 on_foot 
            00E1:   player 0 pressed_key 15
        then            
            05CB: AS_actor $PLAYER_ACTOR enter_car 8@ as_driver -1 ms
        end
    end  
    if //-------------------------------------------------------------------------------------------     
        056E:   car 9@ defined
    then
        if and
            not actor.InCar($PLAYER_ACTOR,9@)
            0203:   actor $PLAYER_ACTOR near_car 9@ radius 8.0 8.0 flag 0 on_foot 
            00E1:   player 0 pressed_key 15
        then            
            05CB: AS_actor $PLAYER_ACTOR enter_car 9@ as_driver -1 ms
        end
    end       
    if //------------------------------------------------------------------------------------     
        056E:   car 8@ defined
    then
        if and
            30@ == 1
            actor.InCar($PLAYER_ACTOR,8@)
            09AE:   actor $PLAYER_ACTOR driving_train  //   ,     
        then
            30@ = 0
            06DD: set_train 8@ speed 0.0  //     ,     
        end
    end
    if //----------------------------------------------------------------------------------------     
        056E:   car 9@ defined
    then
        if and
            31@ == 1
            actor.InCar($PLAYER_ACTOR,9@)
            09AE:   actor $PLAYER_ACTOR driving_train  //   ,     
        then
            31@ = 0
            06DD: set_train 9@ speed 0.0  //     ,     
        end
    end
    if  //--------------------------------------------------------------------------------------------------------  
        056E:   car 8@ defined
    then    
        actor.StorePos($PLAYER_ACTOR,0@,1@,6@)
        car.StorePos(8@,3@,4@,6@)
        0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
        if
            2@ > 600.0  //      ,   600 
        then
            07BD: destroy_train 8@  //   
            30@ = 0 
            18@ = 0
        end
    end                 
    if  //-----------------------------------------------------------------------------------------------------------  
        056E:   car 9@ defined
    then    
        actor.StorePos($PLAYER_ACTOR,0@,1@,6@)
        car.StorePos(9@,3@,4@,6@)
        0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
        if
            2@ > 600.0  //      ,   600 
        then
            07BD: destroy_train 9@  //   
            31@ = 0 
            19@ = 0
        end
    end
    if //------------------------------------------------------------------        
        056E:   car 8@ defined
    then
        7@ = -382076
        0085: &0(7@,1i) = 8@ // (int) -             
    end               
    if //---------------------------------------------------------------------        
        056E:   car 9@ defined
    then
        7@ = -382075
        0085: &0(7@,1i) = 9@ // (int) -             
    end 
end