SignalShape ( "APK_4AB_YR_GY_I_Kv.s" "APK_4AB_YR_GY_I_Kv" SignalSubObjs ( 15 SignalSubObj ( 0 "SIGNAL" "Nastrojki predidusego signala:" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_3AB_YGR_YW_DISTANCE" ) ) SignalSubObj ( 1 "SIGNAL" " - Datj zelenij (inace 2 zeltih)" SigSubType ( USER1 ) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 2 "SIGNAL" "Dlja drugix ukazanij ispolzujte marker!" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_INFO_CLEAR_2" ) ) SignalSubObj ( 3 "SIGNAL" "Nastrojki etogo signala:" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_ALSN_KZ_0_B_0" ) ) SignalSubObj ( 4 "SIGNAL" " - Videlitj, esli ALSN kodiruetsa" SigSubType ( USER2 ) SignalFlags ( OPTIONAL DEFAULT ) ) SignalSubObj ( 5 "SIGNAL" " - Verhnij zeltij iz dvuh mozet migatj" SigSubType ( USER3 ) SignalFlags ( OPTIONAL DEFAULT ) ) SignalSubObj ( 6 "SIGNAL" " - Zeltij ALSN na odin zeltij migajusij" SigSubType ( USER4 ) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 7 "SIGNAL" "Odnostoronnij propusk poezda:" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_ALSN_KZ_20_B_20" ) ) SignalSubObj ( 8 "SIGNAL" " - Vhodnoj svetofor" SigSubType ( GRADIENT_PLATE ) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 9 "SIGNAL" " - Prohodnoj svetofor" SigSubType ( NUMBER_PLATE ) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 10 "SIGNAL" " " SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_Priglasitelnij2" ) ) SignalSubObj ( 11 "SIGNAL" " " SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_3AB_YGR_YW_ALSN_Z_40_B_40" ) ) SignalSubObj ( 12 "SIGNAL" " " SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_3AB_YGR_YW_ALSN_Z_60_B_60" ) ) SignalSubObj ( 13 "SIGNAL" " " SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_4AB_YRG_YW_ALSN_Zel_B_Z" ) ) SignalSubObj ( 14 "SIGNAL" " " SigSubType ( SIGNAL_HEAD ) SigSubSType ( "APK_4AB_YR_GY_Kv" ) ) ) )
SCRIPT APK_3AB_YGR_YW_DISTANCE extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float opp_sig_lr (); extern float opp_sig_mr (); extern float sig_feature (); float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD; ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; } if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( next_INFO ==# 4 ) { next_INFO = 8; } if ( next_INFO ==# 5 ) { next_INFO = 8; } if ( next_INFO ==# 6 ) { next_INFO = 8; } if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) ) { next_INFO = 8; } state = SIGASP_STOP; if ( next_INFO ==# 8 && POEZD ==# 0 && block_state() ==# BLOCK_CLEAR ) { if ( SVET ==# 0 ) { state = SIGASP_CLEAR_1; } if ( SVET ==# 1 ) { state = SIGASP_APPROACH_3; } if ( SVET ==# 2 ) { state = SIGASP_CLEAR_2; } if ( SVET ==# 3 ) { state = SIGASP_CLEAR_2; } if ( SVET ==# 4 ) { state = SIGASP_CLEAR_2; } if ( SVET ==# 5 ) { state = SIGASP_CLEAR_2; } } if ( next_INFO ==# 0 && POEZD ==# 0 && block_state() ==# BLOCK_CLEAR ) { state = SIGASP_APPROACH_1; } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( ( block_state() ==# BLOCK_OCCUPIED || POEZD !=# 0 ) && opp_POEZD !=# 1 ) { state = SIGASP_STOP_AND_PROCEED; } if ( opp_ONE_WAY ==# 1 || opp_POEZD ==# 2 ) { state = SIGASP_STOP_AND_PROCEED; } } if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } draw_state = def_draw_state (state);
SCRIPT APK_INFO_CLEAR_2 extern float sig_feature (); extern float def_draw_state (); extern float state; extern float draw_state; state = SIGASP_STOP; if ( sig_feature( SIGFEAT_USER1 ) ) { state = SIGASP_CLEAR_2; } draw_state = def_draw_state (state);
SCRIPT APK_ALSN_KZ_0_B_0 extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float opp_sig_lr (); extern float opp_sig_mr (); extern float sig_feature (); float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD; ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; } if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) ) { next_INFO = 8; } state = SIGASP_STOP; if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) { if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } } if ( block_state() ==# BLOCK_CLEAR ) { if ( POEZD !=# 0 || next_INFO ==# 7 ) { state = SIGASP_STOP_AND_PROCEED; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD ==# 1 && next_INFO ==# 7 ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_RESTRICTING; } } } } else { state = SIGASP_STOP_AND_PROCEED; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD ==# 1 ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_RESTRICTING; } } } if ( next_INFO ==# 3 ) { state = SIGASP_STOP; } draw_state = def_draw_state (state);
SCRIPT APK_ALSN_KZ_20_B_20 extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float opp_sig_lr (); extern float opp_sig_mr (); extern float sig_feature (); float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD; ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; } if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) ) { next_INFO = 8; } state = SIGASP_STOP; if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) { if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } } if ( block_state() ==# BLOCK_CLEAR ) { if ( next_INFO ==# 2 && POEZD ==# 0 ) { state = SIGASP_STOP_AND_PROCEED; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_RESTRICTING; } } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) && next_INFO !=# 7 && POEZD ==# 0 ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_RESTRICTING; } } } if ( next_INFO ==# 3 ) { state = SIGASP_STOP_AND_PROCEED; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_RESTRICTING; } } } draw_state = def_draw_state (state);
SCRIPT APK_Priglasitelnij2 extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float sig_feature (); float WORK1; float POEZD; float next_INFO; POEZD = 0; next_INFO = 8; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } } state = SIGASP_CLEAR_2; if ( next_INFO ==# 2 && block_state() ==# BLOCK_CLEAR && POEZD ==# 0 ) { state = SIGASP_STOP; } if ( next_INFO ==# 3 ) { state = SIGASP_STOP; } draw_state = def_draw_state (state);
SCRIPT APK_3AB_YGR_YW_ALSN_Z_40_B_40 extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float opp_sig_lr (); extern float opp_sig_mr (); extern float sig_feature (); float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD; ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; } if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( next_INFO ==# 4 ) { next_INFO = 8; } if ( next_INFO ==# 5 ) { next_INFO = 8; } if ( next_INFO ==# 6 ) { next_INFO = 8; } if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) ) { next_INFO = 8; } state = SIGASP_STOP; if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) { if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } } if ( block_state() ==# BLOCK_CLEAR ) { if ( next_INFO ==# 0 && POEZD ==# 0 ) { state = SIGASP_APPROACH_1; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_STOP; } } draw_state = def_draw_state (state);
SCRIPT APK_3AB_YGR_YW_ALSN_Z_60_B_60 extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float next_sig_lr (); extern float next_sig_mr (); extern float opp_sig_lr (); extern float opp_sig_mr (); extern float sig_feature (); float WORK1; float ONE_WAY; float SVET; float POEZD; float next_INFO; float opp_ONE_WAY; float opp_POEZD; ONE_WAY = 0; SVET = 0; POEZD = 0; next_INFO = 8; opp_POEZD = 0; opp_ONE_WAY = 0; if ( block_state() !=# BLOCK_JN_OBSTRUCTED ) { WORK1 = next_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { ONE_WAY = 1; } WORK1 = next_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_CLEAR_2 ) { SVET = 5; } if ( WORK1 ==# SIGASP_CLEAR_1 ) { SVET = 4; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { SVET = 3; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { SVET = 2; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { SVET = 1; } if ( WORK1 ==# SIGASP_RESTRICTING ) { POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { POEZD = 1; } WORK1 = next_sig_mr ( SIGFN_INFO ); if ( WORK1 ==# SIGASP_CLEAR_1 ) { next_INFO = 7; } if ( WORK1 ==# SIGASP_APPROACH_3 ) { next_INFO = 6; } if ( WORK1 ==# SIGASP_APPROACH_2 ) { next_INFO = 5; } if ( WORK1 ==# SIGASP_APPROACH_1 ) { next_INFO = 4; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { next_INFO = 2; } if ( WORK1 ==# SIGASP_RESTRICTING ) { next_INFO = 3; } if ( WORK1 ==# SIGASP_STOP ) { next_INFO = 0; } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { WORK1 = opp_sig_mr ( SIGFN_NORMAL ); if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_ONE_WAY = 1; } WORK1 = opp_sig_lr ( SIGFN_DISTANCE ); if ( WORK1 ==# SIGASP_RESTRICTING ) { opp_POEZD = 2; } if ( WORK1 ==# SIGASP_STOP_AND_PROCEED ) { opp_POEZD = 1; } } if ( next_INFO ==# 4 ) { next_INFO = 8; } if ( next_INFO ==# 5 ) { next_INFO = 8; } if ( next_INFO ==# 6 ) { next_INFO = 8; } if ( next_INFO ==# 3 && sig_feature( SIGFEAT_NUMBER_PLATE ) ) { next_INFO = 8; } state = SIGASP_STOP; if ( sig_feature( SIGFEAT_NUMBER_PLATE ) && POEZD !=# 1 ) { if ( block_state() !=# BLOCK_CLEAR || POEZD ==# 2 || ONE_WAY ==# 1 ) { state = SIGASP_STOP_AND_PROCEED; } } if ( block_state() ==# BLOCK_CLEAR ) { if ( SVET ==# 0 && next_INFO ==# 8 && POEZD ==# 0 ) { state = SIGASP_APPROACH_1; if ( !sig_feature( SIGFEAT_USER2 ) ) { state = SIGASP_RESTRICTING; } } } if ( sig_feature( SIGFEAT_GRADIENT_PLATE ) && !sig_feature( SIGFEAT_NUMBER_PLATE ) ) { if ( opp_POEZD ==# 2 || opp_ONE_WAY ==# 1 ) { state = SIGASP_STOP; } } draw_state = def_draw_state (state);