1. If the signal is set for the main route = No approach control
2. If the signal is set for a diverging route = approach control is used.
The signal in question is a 4 colour light aspect with one route indicator and is one shape and one script. This is the default signal script. Can this script be used for approach control as above? For clarity, Approach_CONTROL_Position will only be used! Thanks for any assistance!
SCRIPT BRCL-4A-RIR // BR Colour Light 4 Aspect Right RI extern float block_state (); extern float route_set (); extern float next_sig_lr (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; float next_state; // If required, show the 'stop' indication. if (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR) // Block ahead not clear? { state = SIGASP_STOP; } // Signal head is enabled and the block ahead is clear - update based on state of // next signal head. else { next_state = next_sig_lr (SIGFN_NORMAL); if (next_state ==# SIGASP_STOP || next_state ==# SIGASP_STOP_AND_PROCEED || next_state ==# SIGASP_RESTRICTING) { state = SIGASP_APPROACH_1; } else if (next_state ==# SIGASP_APPROACH_1) { state = SIGASP_APPROACH_2; } else //if (next_state ==# SIGASP_APPROACH_2 || // next_state ==# SIGASP_CLEAR_2) { state = SIGASP_CLEAR_2; } } // Get draw state draw_state = def_draw_state (state); if (state ==# SIGASP_APPROACH_1 && route_set()) { draw_state = 4; // (Draw state index from signal config) } else if (state ==# SIGASP_APPROACH_2 && route_set()) { draw_state = 5; // (Draw state index from signal config) } else if (state ==# SIGASP_CLEAR_2 && route_set()) { draw_state = 6; // (Draw state index from signal config) }