New signalling functions OR specific signalling functions added in version 2266
#47
Posted 20 February 2020 - 04:42 AM
Hi all,
Been an open rails user on and off for a few years now, have rekindled my interest by attempting a timetable for Scottish Capitals Express route.
This is my second timetable as 5 years ago I wrote one for North Wales Coast.
I can't for the life of me figure out how to get the signal Scripts to be able to allow a loco to pass a signal and attach to a train in a platform.
Every amendment to the sigscr file has caused the signals to cease working. Usually holding the train so it won't pass them or in one case running all trains pass them at danger although this happening did prove my pickup command had worked!
Has anyone successfully amended the SCE sigscr file or similar? The making tracks produced files appear to be written differently to the original style MSTS scr files hence why maybe I am going wrong.
Thanks for reading anyhow.
J
#48
Posted 23 February 2020 - 11:45 AM
Cheers,
Thiago.
#49
Posted 25 February 2020 - 05:47 PM
JBM37156, on 20 February 2020 - 04:42 AM, said:
Hi all,
Been an open rails user on and off for a few years now, have rekindled my interest by attempting a timetable for Scottish Capitals Express route.
This is my second timetable as 5 years ago I wrote one for North Wales Coast.
I can't for the life of me figure out how to get the signal Scripts to be able to allow a loco to pass a signal and attach to a train in a platform.
Every amendment to the sigscr file has caused the signals to cease working. Usually holding the train so it won't pass them or in one case running all trains pass them at danger although this happening did prove my pickup command had worked!
Has anyone successfully amended the SCE sigscr file or similar? The making tracks produced files appear to be written differently to the original style MSTS scr files hence why maybe I am going wrong.
Thanks for reading anyhow.
J
Hi,
with this Timetable, the Train "Blockzug is waiting at Testingen until 12:20
The second Train is waiting at the red Entrance-Signal of Testingen until the Blockzug has stopped at the Plattform.
;;#comment;#comment;Blockzug;Re 6/6 solo #comment;;CHSignale_LN;;; #path;;;;quer;sehen #consist;;;;re66greensolo;re66greensolo #comment;;;;; #start;;;;11:59:40;12:00 #note;;;;; ;;;;; Testingen;$hold;;;12:20;12:02 $callon ;;;;; ;;;;; ;;;;; #dispose;;;;$static;
In the sigscr.dat is for this entrance-signal a State defined for entrance on a ocuppied track:
else if ( block_state() ==# BLOCK_OCCUPIED && TrainHAsCallOn_Restricted()) //Einfahrt auf besetztes Geleise { if ((route_set() ) || (this_state ==# SIGASP_STOP_AND_PROCEED)) //Route freigegeben { state = SIGASP_STOP_AND_PROCEED; draw_state = 6; } else { state = SIGASP_STOP; draw_state = 0; } }
This state is shown if the Block is occupied and the Train has Callon at this station
#50
Posted 07 April 2020 - 05:08 PM
roeter, on 31 May 2014 - 03:07 AM, said:
(...)
The use of this function must be combined with a check for blockstate ==# BLOCK_OCCUPIED.
Note: this function must NOT be used in combination with blockstate ==# JN_OBSTRUCTED.
Example (part of script only) :
if (enabled && route_set() ) { if (block_state == #BLOCK_CLEAR) { // normal clear, e.g. state = #SIGASP_CLEAR_1; } else if (block_state == #BLOCK_OCCUPIED && TrainHasCallOn() ) { // clear on occupied track and CallOn allowed state = #SIGASP_STOP_AND_PROCEED; } else { // track is not clear or CallOn not allowed state = #SIGASP_STOP; } }
Hi, I am using a route where, now, I need to implement the TrainHasCallOn. For some reason that, I guess, is irrelevant, the route has five script files. The word "OCCUPIED" is not used in any of them. I attached it:
File sigscr.dat
/////////////////////////////////////////////////////////////////////////////// SCRIPT UKSemHome // UK Semephore (Home) extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; if (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR || // Block ahead not clear? !route_set()) // Switch not set as per link? { state = SIGASP_STOP; } else { state = SIGASP_CLEAR_2; } // Get draw state draw_state = def_draw_state (state); /////////////////////////////////////////////////////////////////////////////// SCRIPT UKSemDist // UK Semephore (Distance) extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float dist_multi_sig_mr (); extern float state; extern float draw_state; extern float enabled; if ( //!enabled || // Not enabled/cleared to show natural state? !route_set() || // Switch not set as per link? dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP) { state = SIGASP_APPROACH_2; } else { state = SIGASP_CLEAR_2; } // Get draw state draw_state = def_draw_state (state); // End of File
File sigscr_A1.dat:
/////////////////////////////////////////////////////////////////////////////// SCRIPT UKSemHome // UK Semephore (Home) extern float block_state (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; if (enabled // Not enabled/cleared to show natural state? && block_state() ==# BLOCK_CLEAR // Block ahead not clear? ) { state = SIGASP_CLEAR_2; } else { state = SIGASP_STOP; } // Get draw state draw_state = def_draw_state (state); //------------------------------------------------------------ SCRIPT UKSemDist extern float def_draw_state(); extern float dist_multi_sig_mr(); extern float state; extern float draw_state; if (dist_multi_sig_mr(SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP) state = SIGASP_APPROACH_2; else state = SIGASP_CLEAR_2; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ARSemLink extern float block_state(); extern float route_set(); extern float def_draw_state(); extern float state; extern float draw_state; extern float enabled; if (enabled && block_state() ==# BLOCK_CLEAR && route_set()) state = SIGASP_CLEAR_2; else state = SIGASP_STOP; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemDistL extern float route_set(); extern float def_draw_state(); extern float dist_multi_sig_mr(); extern float state; extern float draw_state; if (!route_set() || next_sig_lr (SIGFN_NORMAL) ==# SIGASP_STOP ) state = SIGASP_APPROACH_2; else state = SIGASP_CLEAR_2; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT FARamapo extern float route_set(); extern float def_draw_state(); extern float state; extern float draw_state; if (!route_set()) state = SIGASP_APPROACH_2; else state = SIGASP_CLEAR_2; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemDesvio extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && route_set() && opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP ) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_STOP; } // Get draw state draw_state = def_draw_state (state); //------------------------------------------------------------ SCRIPT ArSemManiobrasMult extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && route_set() && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR ) state = SIGASP_CLEAR_2; else state = SIGASP_RESTRICTING; } else state = SIGASP_STOP; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemManiobras extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && route_set() && opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP ){ state = SIGASP_RESTRICTING; } else{ state = SIGASP_STOP; } draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemAbsolutaMult extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && route_set() && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR ) state = SIGASP_CLEAR_2; else state = SIGASP_RESTRICTING; } else state = SIGASP_STOP; draw_state = def_draw_state(state); SCRIPT ArSemDesvioAAOM extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR && route_set() ) state = SIGASP_CLEAR_2; else{ if(route_set()) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_RESTRICTING; } } } else state = SIGASP_STOP; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemAbsAAOM extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR && route_set() ) state = SIGASP_CLEAR_2; else{ if(route_set()) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_RESTRICTING; } } } else state = SIGASP_STOP; draw_state = def_draw_state(state); //------------------------------------------------------------ SCRIPT ArSemManiobrasAAOM extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR && route_set() ) state = SIGASP_CLEAR_2; else{ if(route_set()) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_RESTRICTING; } } } else state = SIGASP_STOP; draw_state = def_draw_state(state); //------------------------------------------------------------
File sigscr_enanas.dat:
/////////////////////////////////////////////////////////////////////////////// // Signal Type Logic Scripts // /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// SCRIPT SenalEnCir // Pantalla Principal (Home) 2 estados // válida para: Salida de ramales // Salida de estación 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 (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR || // Block ahead not clear? !route_set()) // Switch not set as per link? { state = SIGASP_STOP; } else { state = SIGASP_APPROACH_2; } // Get draw state draw_state = def_draw_state (state); ///////////////////////////////////////////////////////////////////////////////////////////////// SCRIPT ArSemAbsAAOM2 extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR && route_set() ) state = SIGASP_CLEAR_2; else{ if(route_set()) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_RESTRICTING; } } } else state = SIGASP_STOP; draw_state = def_draw_state(state); /////////////////////////////////////////////////////////////////////////////// // End of File
File sigscr-mec.dat:
/////////////////////////////////////////////////////////////////////////////// SCRIPT UKSemHome // UK Semephore (Home) extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; if (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR || // Block ahead not clear? !route_set()) // Switch not set as per link? { state = SIGASP_STOP; } else { state = SIGASP_CLEAR_2; } // Get draw state draw_state = def_draw_state (state); /////////////////////////////////////////////////////////////////////////////// SCRIPT UKSemDist // UK Semephore (Distance) extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float dist_multi_sig_mr (); extern float state; extern float draw_state; extern float enabled; if ( //!enabled || // Not enabled/cleared to show natural state? !route_set() || // Switch not set as per link? dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP) { state = SIGASP_APPROACH_2; } else { state = SIGASP_CLEAR_2; } // Get draw state draw_state = def_draw_state (state); // End of File
File sigscr-UK-RI.dat:
//------------------------------------------------------------ // // Created by SigMexx V1.4.3 // // contains following scripts: // - RI-Feather // - BannerRepeaterHome (unused) // - BannerRepeaterDistant (unused) // - RA-OFF-Indicator (unused) // - Theatre-BAY (unused) // - Theatre-DM (unused) // - Theatre-DR (unused) // - Theatre-UM (unused) // - Theatre-UR (unused) // - Theatre-1 (unused) // - Theatre-2 (unused) // - Theatre-3 (unused) // - info-1 // - info-2 // - info-3 // - info-4 // - Clackbox-BAY (unused) // - Clackbox-DM (unused) // - Clackbox-DR (unused) // - Clackbox-UM (unused) // - Clackbox-UR (unused) // - Clackbox-1 (unused) // - Clackbox2 (unused) // - Clackbox3 (unused) // - TRACKSTART //------------------------------------------------------------ SCRIPT RI-Feather extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT BannerRepeaterHome extern float route_set(); extern float next_sig_lr(); extern float sig_feature(); extern float draw_state; if ((next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP) || !route_set()) draw_state = 0; else if (sig_feature(SIGFEAT_USER2)) draw_state = 2; else draw_state = 1; //------------------------------------------------------------ SCRIPT BannerRepeaterDistant extern float route_set(); extern float next_sig_lr(); extern float sig_feature(); extern float draw_state; float next_state; if (sig_feature(SIGFEAT_USER1)) next_state = next_sig_lr(SIGFN_DISTANCE); else next_state = next_sig_lr(SIGFN_NORMAL); if ((next_state <# SIGASP_CLEAR_1) || !route_set()) draw_state = 0; else if (sig_feature(SIGFEAT_USER2)) draw_state = 2; else draw_state = 1; //------------------------------------------------------------ SCRIPT RA-OFF-Indicator extern float next_sig_lr(); extern float sig_feature(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP) draw_state = 0; else if (sig_feature(SIGFEAT_USER1)) draw_state = 2; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-BAY extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-DM extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-DR extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-UM extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-UR extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-1 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-2 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Theatre-3 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-1 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-2 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-3 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-4 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-5 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-6 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-7 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT info-8 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-BAY extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-DM extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-DR extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-UM extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-UR extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox-1 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox2 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT Clackbox3 extern float route_set(); extern float next_sig_lr(); extern float draw_state; if (next_sig_lr(SIGFN_NORMAL) ==# SIGASP_STOP || !route_set()) draw_state = 0; else draw_state = 1; //------------------------------------------------------------ SCRIPT TRACKSTART extern float state; extern float draw_state; state = SIGASP_STOP; draw_state = 0;
The route has an unique sigcfg.dat file:
SIMISA@@@@@@@@@@JINX0G0t______ LightTextures ( 1 LightTex ( "ltex" "SigLight.ace" 0 0 1 1 ) ) LightsTab ( 6 LightsTabEntry ( "Red Light" colour ( 255 255 40 40 ) ) LightsTabEntry ( "Amber Light" colour ( 255 255 200 0 ) ) LightsTabEntry ( "Green Light" colour ( 255 0 255 0 ) ) LightsTabEntry ( "Verde Azulado" colour ( 255 0 255 200 ) ) _LightsTabEntry ( "White Light" colour ( 255 255 255 255 ) ) LightsTabEntry ( "Incoloro Light" colour ( 255 243 170 102 ) ) ) SignalTypes ( 6 SignalType ( "ArSemLink" SignalFnType ( NORMAL ) SignalFlags ( SEMAPHORE ) SemaphoreInfo ( 0.5 ) SignalLightTex ( "ltex" ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.25 0 -0.01 ) Radius ( 0.4 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Verde Azulado" Position ( -0.25 0 -0.01 ) Radius ( 0.4 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Red" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Green" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "Red" ) SignalAspect ( CLEAR_2 "Green" ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "ArSemDesvio" SignalFnType ( NORMAL ) SignalFlags ( SEMAPHORE ) SemaphoreInfo ( 0.5 ) SignalLightTex ( "ltex" ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.21 0 -0.01 ) Radius ( 0.4 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Verde Azulado" Position ( -0.21 0 -0.01 ) Radius ( 0.4 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Bloqueado" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Abierto" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "Bloqueado" ) SignalAspect ( STOP_AND_PROCEED "Abierto" SpeedKPH ( 25 ) ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "ArSemAbsAAOM2" SignalFnType ( NORMAL ) SignalFlags ( SEMAPHORE ) SemaphoreInfo ( 0.5 ) SignalLightTex ( "ltex" ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.13 0 0 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Verde Azulado" Position ( -0.13 0 0 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Rojo" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Libre" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "Rojo" ) SignalAspect ( CLEAR_2 "Libre" ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "SenalEnCir" SignalFnType ( NORMAL ) SignalLightTex ( "ltex" ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.178 0 0 ) Radius ( 0.6 ) ) SignalLight ( 1 "Incoloro Light" Position ( -0.178 0 0 ) Radius ( 0.4 ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Peligro" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Incoloro" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect (STOP "Peligro" ) SignalAspect (APPROACH_2 "Incoloro" ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "UKSemHome" SignalFnType ( NORMAL ) SignalLightTex ( "ltex" ) SemaphoreInfo ( 0.5 ) SignalFlags ( SEMAPHORE ) SignalLights ( 2 SignalLight ( 0 "Red Light" Position ( -0.18 0.00 -0.01 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Verde Azulado" Position ( -0.18 0.00 -0.01 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Red" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Green" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect ( STOP "Red" ) SignalAspect ( CLEAR_2 "Green" ) ) SignalNumClearAhead ( 1 ) ) SignalType ( "UKSemDist" SignalFnType ( DISTANCE ) SignalLightTex ( "ltex" ) SemaphoreInfo ( 0.5 ) SignalFlags ( SEMAPHORE ) SignalLights ( 2 SignalLight ( 0 "Amber Light" Position ( -0.18 0.00 -0.01 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) SignalLight ( 1 "Green Light" Position ( -0.18 0.00 -0.01 ) Radius ( 0.5 ) SignalFlags ( SEMAPHORE_CHANGE ) ) ) SignalDrawStates ( 2 SignalDrawState ( 0 "Yellow" DrawLights ( 1 DrawLight ( 0 ) ) SemaphorePos ( 0 ) ) SignalDrawState ( 1 "Green" DrawLights ( 1 DrawLight ( 1 ) ) SemaphorePos ( 1 ) ) ) SignalAspects ( 2 SignalAspect ( APPROACH_2 "Yellow" ) SignalAspect ( CLEAR_2 "Green" ) ) SignalNumClearAhead ( 1 ) ) ) SignalShapes ( 34 SignalShape ( "portico_CDE_A_N.s" "Portico Cruz del Eje-A-N" SignalSubObjs ( 4 SignalSubObj ( 0 "HEAD1" "Brazo Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ARSemLink" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Central" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ARSemLink" ) ) SignalSubObj ( 2 "HEAD3" "Brazo Derecho Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ARSemLink" ) ) SignalSubObj ( 3 "HEAD4" "Brazo Derecho Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ArSemDesvio" ) ) ) ) SignalShape ( "portico_CDE_A1_S.s" "Portico Cruz del Eje-A1-S" SignalSubObjs ( 5 SignalSubObj ( 0 "HEAD1" "Brazo Izquierdo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ARSemLink" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Izquierdo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ARSemLink" ) ) SignalSubObj ( 2 "HEAD3" "Brazo Central Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ArSemDesvio" ) ) SignalSubObj ( 3 "HEAD4" "Brazo Central Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ArSemDesvio" ) ) SignalSubObj ( 4 "HEAD5" "Brazo Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "ArSemDesvio" ) ) ) ) SignalShape ( "senalT_aAD.s" "Torre Senales aAD" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD3" "Brazo Abs Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 2 "HEAD1" "Brazo Abs Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Dist Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senalTADa.s" "Torre Senales ADa" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Brazo Abs Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Dist Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemDist" ) ) SignalSubObj ( 2 "HEAD3" "Brazo Abs Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalT_aADa.s" "Torre Senales aADa" SignalSubObjs ( 4 SignalSubObj ( 0 "HEAD1" "Brazo Abs Central" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Dist Central" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemDist" ) ) SignalSubObj ( 2 "HEAD3" "Brazo Abs Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 3 "HEAD4" "Brazo Abs Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalTADAD.s" "Torre Senales ADAD" SignalSubObjs ( 4 SignalSubObj ( 0 "HEAD1" "Brazo Abs Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Dist Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemDist" ) ) SignalSubObj ( 2 "HEAD3" "Brazo Abs Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 3 "HEAD4" "Brazo Dist Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senalTOM.s" "Portal - Senal Desvio Maniobras" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior (O)" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior (M)" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalA8.s" "Senal absoluta alta" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Home arm" SigSubType ( SIGNAL_HEAD ) SignalFlags ( OPTIONAL Default ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalA4.s" "Senal absoluta 4m" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Home arm" SigSubType ( SIGNAL_HEAD ) SignalFlags ( OPTIONAL Default ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "EnanaSimple.s" "Señal Enana Simple" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Signal Head 1" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 1 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 1 "LINK1" "Link Heads." SigSubType ( LINK1) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 2 "USER1" "Show Restricting Speed." SigSubType ( USER1 ) SignalFlags ( OPTIONAL ) ) ) ) SignalShape ( "EnanaTriple.s" "Señal Enana Triple" SignalSubObjs ( 5 SignalSubObj ( 0 "HEAD1" "Signal Head 1" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 3 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 1 "HEAD2" "Signal Head 2" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 3 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 2 "HEAD3" "Signal Head 3" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 3 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 3 "LINK1" "Link Heads." SigSubType ( LINK1) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 4 "USER4" "Show Restricting Speed." SigSubType ( USER4 ) SignalFlags ( OPTIONAL ) ) ) ) SignalShape ( "EnanaCircular.s" "Senal Enana Circular" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Absoluta 1" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 1 ) SigSubSType ( "SenalEnCir" ) ) SignalSubObj ( 1 "LINK1" "Link Heads." SigSubType ( LINK1) SignalFlags ( OPTIONAL ) ) ) ) SignalShape ( "EnanaDoble.s" "Señal Enana Doble" SignalSubObjs ( 4 SignalSubObj ( 0 "HEAD1" "Signal Head 1" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 2 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 1 "HEAD2" "Signal Head 2" SigSubType ( SIGNAL_HEAD ) SigSubJnLinkIf ( 1 2 ) SigSubSType ( "ArSemAbsAAOM2" ) ) SignalSubObj ( 2 "LINK1" "Link Heads." SigSubType ( LINK1) SignalFlags ( OPTIONAL ) ) SignalSubObj ( 3 "USER4" "Show Restricting Speed." SigSubType ( USER4 ) SignalFlags ( OPTIONAL ) ) ) ) SignalShape ( "senalA.s" "Senal absoluta" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Home arm" SigSubType ( SIGNAL_HEAD ) SignalFlags ( OPTIONAL DEFAULT ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalD.s" "Senal de distancia" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Distance arm" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senalAD.s" "Senal absoluta y distancia" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Senal Principal" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Senal Auxiliar" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senalO.s" "Senal Desvio" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal Desvio" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalM.s" "Senal Maniobras" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal Maniobras" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalMpie.s" "Senal Maniobras" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal Maniobras" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalApie.s" "Portal - Senal Absoluta" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal Principal" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalOpie.s" "Portal - Senal Desvío" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal Desvio" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalDpie.s" "Portal - Senal distancia" SignalSubObjs ( 1 SignalSubObj ( 0 "HEAD1" "Senal distancia" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senal_I_D.s" "Senal I - D" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senal_D_I.s" "Senal D - I" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Izquierdo" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Derecho" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAA.s" "Senal Abs Abs" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAApie.s" "Portal - Senal Abs Abs" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAMpie.s" "Portal - Senal Abs Maniobras" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAM.s" "Senal Abs Maniobras" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAOpie.s" "Portal - Senal Abs Desvio" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAO.s" "Senal Abs Desvio" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalADpie.s" "Portal - Senal Abs Dist" SignalSubObjs ( 2 SignalSubObj ( 0 "HEAD1" "Brazo Superior" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Brazo Inferior" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "UKSemDist" ) ) ) ) SignalShape ( "senalAAO.s" "Senal Abs Abs Desvio" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Absoluta 1" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Absoluta 2" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 2 "HEAD3" "Desvio" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAAM.s" "Senal Abs Abs Maniobras" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Absoluta 1" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Absoluta 2" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 2 "HEAD3" "Maniobras" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) SignalShape ( "senalAAA.s" "Senal Abs Abs Abs" SignalSubObjs ( 3 SignalSubObj ( 0 "HEAD1" "Absoluta 1" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 1 "HEAD2" "Absoluta 2" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) SignalSubObj ( 2 "HEAD3" "Absoluta 3" SigSubType ( SIGNAL_HEAD ) SignalFlags ( JN_LINK ) SigSubSType ( "UKSemHome" ) ) ) ) ) ScriptFiles ( ScriptFile ( sigscr.dat ) ScriptFile ( sigscr_A1.dat ) ScriptFile ( sigscr-mec.dat ) ScriptFile ( sigscr-UK-RI.dat ) ScriptFile ( sigscr_enanas.dat ) )
I don't know where to put the new script information, as it doesn't have a value that contains the word OCCUPIED.
Thanks!
#51
Posted 07 April 2020 - 05:24 PM
CLEAR if nothing is in the block to the next signal,
OCCUPIED if a train is between this signal and the next (or end of track), or
JN_OBSTRUCTED if the block is impassible due to a switch being lined against the intended route.
Basically, call-on should only be necessary when the block ahead is occupied hence the typically required check if (block_state() ==# BLOCK_OCCUPIED)
#52
Posted 08 April 2020 - 06:41 AM
SCRIPT UKSemHome extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; if (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR || // Block ahead not clear? !route_set()) // Switch not set as per link? { state = SIGASP_STOP; } else { state = SIGASP_CLEAR_2; } draw_state = def_draw_state (state); // Get draw state SCRIPT UKSemDist extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float dist_multi_sig_mr (); extern float state; extern float draw_state; extern float enabled; if ( //!enabled || // Not enabled/cleared to show natural state? !route_set() || // Switch not set as per link? dist_multi_sig_mr (SIGFN_NORMAL, SIGFN_DISTANCE) ==# SIGASP_STOP) { state = SIGASP_APPROACH_2; } else { state = SIGASP_CLEAR_2; } draw_state = def_draw_state (state); // Get draw state SCRIPT ARSemLink extern float block_state(); extern float route_set(); extern float def_draw_state(); extern float state; extern float draw_state; extern float enabled; if (enabled && block_state() ==# BLOCK_CLEAR && route_set()) state = SIGASP_CLEAR_2; else state = SIGASP_STOP; draw_state = def_draw_state(state); SCRIPT ArSemDesvio extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && route_set() && opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP ) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_STOP; } draw_state = def_draw_state (state); // Get draw state SCRIPT SenalEnCir // Pantalla Principal (Home) 2 estados. válida para: Salida de ramales. Salida de estación 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 (!enabled || // Not enabled/cleared to show natural state? block_state() !=# BLOCK_CLEAR || // Block ahead not clear? !route_set()) // Switch not set as per link? { state = SIGASP_STOP; } else { state = SIGASP_APPROACH_2; } draw_state = def_draw_state (state); // Get draw state SCRIPT ArSemAbsAAOM2 extern float block_state (); extern float route_set (); extern float def_draw_state (); extern float state; extern float draw_state; extern float enabled; extern float opp_sig_mr(); if (enabled && (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP || block_state() ==# BLOCK_CLEAR)) { if (opp_sig_mr(SIGFN_NORMAL) == SIGASP_STOP && block_state() ==# BLOCK_CLEAR && route_set() ) state = SIGASP_CLEAR_2; else{ if(route_set()) { state = SIGASP_STOP_AND_PROCEED; } else { state = SIGASP_RESTRICTING; } } } else state = SIGASP_STOP; draw_state = def_draw_state(state);
However, I still can't understand where to put the new "call on" element, because there is not a use of the word "OCCUPIED" in the entire script, and I have a locomotive that is unable to finish the runround in a Timetable.
#53
Posted 26 April 2020 - 02:30 PM
What does that mean <n>? Is it a typo error in the document of "Additional signal script functions "? Is there one more function of sigid = opp_Nsig_id(SIGFN_Type, <n>) exists?
I've a signal point with back-facing Signal Head. Is it correct to identificate those Signal Head with that sigid = opp_sig_id(SIGFN_Type, <n>) if I need to check an opposite aspect only?
Thanks.
Oleg
#54
Posted 27 April 2020 - 02:02 AM
http://i.piccy.info/i9/d4c86327a7fff4e1d2189207f0f81609/1587980415/67461/1373151/RunActivityLAA_2020_04_27_12_32_44_17_800.jpghttp://i.piccy.info/a3/2020-04-27-09-40/i9-13776576/763x559-r/i.gif
To make it different, I need to “catch” the moment in picture 1, when opposite exit signal is at RESTRICTING state, transfer it to the shunting signal, distribute it to all “sub-heads” and remember.
[img][URL=http://piccy.info/view3/13777723/3aa5fe555ec9da1e49430f46fef5784d/orig/][IMG]http://i.piccy.info/i9/cf358e639c1698bb6c4c85c5e14444fd/1588021256/72234/1373151/RunActivityLAA_2020_04_27_12_34_10_98_800.jpg[/IMG][/URL]http://i.piccy.info/a3/2020-04-27-21-00/i9-13777723/763x559-r/i.gif[/img]
A script of the shunting signal (all sub-heads - the same):
Quote
extern float route_set ();
extern float next_sig_lr ();
extern float this_sig_lr ();
extern float def_draw_state ();
extern float state;
extern float draw_state;
extern float enabled;
extern float sig_feature ();
extern float this_sig_lvar ();
extern float opp_sig_id ();
extern float ID_SIG_LR ();
extern float store_lvar();
float next_state;
float sigid;
float opp_state;
float shunt_mode;
sigid = opp_sig_id (SIGFN_NORMAL);
next_state = next_sig_lr (SIGFN_NORMAL);
opp_state = ID_SIG_LR (sigid);
shunt_mode = this_sig_lvar(1);
if (route_set () )
{
state = SIGASP_STOP;
if (!enabled && (opp_state ==# SIGASP_RESTRICTING))
{
store_lvar(1, 1);
}
if (!enabled && (block_state() ==# BLOCK_OCCUPIED))
{
store_lvar(1, 0);
}
if (enabled && (block_state() ==# BLOCK_CLEAR) && (shunt_mode ==# 1))
{
state = SIGASP_RESTRICTING;
}
if (enabled && (block_state() ==# BLOCK_CLEAR) && (shunt_mode ==# 0))
{
state = next_state;
}
draw_state = def_draw_state (state);
}
else
{
state = SIGASP_STOP; draw_state = 0;
if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP)
{
draw_state = 2;
}
}
What am I doing wrong?
#55
Posted 27 April 2020 - 03:52 AM
It reads :
else { [A] state = SIGASP_STOP; draw_state = 0; [B] if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP) { draw_state = 2; } }
Take a look at lines [A] and [B]. In [A], 'state' is set to SIGASP_STOP. In [B], you check if the state is > SIGASP_STOP. Guess what - it never is.
I think it should be like this :
else { state = SIGASP_STOP; draw_state = 0; } if (this_sig_lr (SIGFN_NORMAL) ># SIGASP_STOP) { draw_state = 2; }
By the way, indentation helps a lot to catch such errors. It makes reading the script a lot easier.
Another note : you retreive the info for shunt_mode from the local variable (1), and later set the value of this variable.
That means that shunt_mode uses the previous value of this variable. Is that your intention?
Regards,
Rob Roeterdink
#56
Posted 27 April 2020 - 02:24 PM
Obviously, I do not quite understand the syntax of the new additions. Therefore, I ask for help in Developing Features - I have no found examples of their use on the network.
The signal is a multi-head linked signal based on one shape with two lights - white and blue. It is a part of historical signalization of USSR Railways. There are two modes of railway work in simulation: the "Mainline Mode" and the "Shunting Mode". At the "Mainline Mode" a signal's job - not to "disturb" - blue light is the danger aspect for shunting work only. In the "Mainline Mode" it has no danger value. Because of this reason - line "state = next_state;" in the script.
Each head of the signal has it's own link. If a head gets TRUE from route_set() - a first block of script is in operation, else - SIGASP is STOP. draw_state = 0; - blue. But if another head is operated, I need to repay it. So I looking for least restrictive aspect of all of heads with function this_sig_lr () and if so - draw_state = 2; - no lights.
I'll try your syntax, but it is a working script, it is in use few years and my expression is quite does it's job too.
roeter, on 27 April 2020 - 03:52 AM, said:
That means that shunt_mode uses the previous value of this variable. Is that your intention?
I need to separate between the modes. As I said, a script is work properly exсept an act that I pictured: a path from the shunting signal to empty station line when exit signal from those line is at STOP. Because it is the same what a train from Main Line do... I must to let him to pass the signal at STOP_AND_PROCEED and in case of RESTRICTING on the shunting signal an entrance signal is at STOP - to let a shunting to complete if exist. Until now the shunting moves in those conditions with STOP_AND_PROCEED. It is not realistic, but I didn't found something better. So I hoping on new functions.
I've trying to program for shunting RESTRIGTING for this.
I set shunt_mode = this_sig_lvar(1); at the top similarly I getting other information from functions. Near next_state = next_sig_lr (SIGFN_NORMAL);, for example.
Is it uncorrect?
An intention was to set the values subject to the conditions. And to store them. "1" - for Shunting Mode and "0" to reset.
And then - to set aspect according to those values.
I didn't understand store_lvar well?
(Firstly I put conditions
if (!enabled && (opp_state ==# SIGASP_RESTRICTING))
{
store_lvar(1, 1);
}
if (!enabled && (block_state() ==# BLOCK_OCCUPIED))
{
store_lvar(1, 0);
}
were before if (route_set () ) - no result)
Thank you again and most regards
Oleg
#57
Posted 28 April 2020 - 05:14 AM
#58
Posted 28 April 2020 - 08:41 AM
VicenteIR, on 28 April 2020 - 05:14 AM, said:
Here:
http://www.elvastowe...-in-msts-vs-or/
in Post #7 you can find a definition for ENABLED.
#59
Posted 29 April 2020 - 11:47 PM
(How stupid I can to be...((()
Obviously, I can have some more questions than the subject. If so, I'll ask them in the topic that you've pointed. I think - this is not for Developing Futures.
One more question about the storing of variables please.
If this logic is correct?:
Conditions => store_lvar (key, value)
Another Conditions => store_lvar (same key, different value)
Function always checking for value that stored by key
If the value returned => get state
If returned another value => get different state.
?
Thanks
Oleg
#60
Posted 30 April 2020 - 12:48 AM
One thing to remember, though: the variables are stored and set per signal, not per signal head.
So if a signal has multiple heads, these can access (both set and read) variables for other heads.
But if separate heads use variables in different ways, these must not use the same variables.
Regards,
Rob Roeterdink