Contenido del fichero sigcfg.dat

 

 Estructura del Fichero 

Lo que sigue es una descripción de los elementos que forman parte del archivo de configuración de la señal.

La estructura general del archivo se basa en: secciones, comandos o parámetros. Cada sección se suele encabezar con un parámetro, que si es de texto dará nombre a la sección, y si es numérico determinará que ésta, a su vez, contiene otras secciones y cuantas. Por último una sección puede contener comandos en los que se especifica su operativa por parámetros. Los parámetros de texto siempre se escriben entre comillas.

Su diseño es de la forma:

sección ( parámetro
    sección ( párametro
        comando ( parámetro parámetro ... )
    )
    sección ( párametro
        comando ( parámetro parámetro ... )
        comando ( parámetro parámetro ... )
    )
    comando ( parámetro parámetro ... )
)

El archivo sigcfg.dat contiene 5 bloques o secciones de nivel superior. Todas las secciones de nivel superior son obligatorias y deben estar en el orden que aquí se muestra:

LightTextures Define el sistema de texturas usadas para dibujar la forma de la luz de las señales.
LightsTab Define los posibles colores de las luces de las señales
SignalTypes Describe los tipos de señales (se entiende cada cabeza o brazo de señal que pueden estar solas o combinadas en un mismo mastil). Esto incluye:
- las posiciones y los colores de las luces
- información de la animación (para el brazo de un semáforo)
- estados o posiciones de la señal y cómo mostrar cada uno de éstos
SignalShapes Describe el objeto de la señal (el conjunto de un mástil y todas sus cabezas o brazos), la forma, el sistema de las cabezas de la señal y otros objetos secundarios que estén presentes en ella.
ScriptFiles Determina el archivo de scripts donde se especifica el funcionamiento de las señales (cabezas o brazos) y su interacción en el juego.

Veamos el contenido de cada una de ellas

 Sección LightTextures 

En esta sección se definen las texturas que determinarán las formas que tendran los focos luminosos de las señales

LightTextures ( num   Numero de entradas de esta sección
  LightTex (  
    "nombre" Nombre simbólico de la textura
    "archivo" Nombre del fichero de la textura (sin path)
    u0 v0 u1 v1 Coordenadas de la textura en el archivo (de 0.0 a 1.0) para las esquinas arriba, izquierda, abajo y derecha
  )  
  ... Otras entradas de texturas
)  

 Sección LightsTab 

En esta sección se definen los diferentes colores que se usará para los focos luminosos de las señales

LightsTab ( num Numero de entradas de esta sección
  LightsTabEntry (  
    "nombre" Nombre simbólico del color
    colour ( a r g b )   Color definido por valores enteros entre 0 y 255, donde:
a = brillo
r = cantidad de color primario rojo
g = cantidad de color primario verde
b = cantidad de color primario azul
  )  
  ... Otras entradas de colores
)  

 Sección SignalTypes 

En esta sección se describe los tipos de señales. Cada entrada en esta sección corresponde a una cabeza o brazo de señal (objetos HEAD de los modelos) que aparecerá en el juego, y que luego podrán estar solas o combinadas en un mismo mastil o en mástiles diferentes (objetos SIGNAL de los modelos). También incluye:

SignalTypes ( num Numero de entradas de esta sección
  SignalType (  
    "nombre" Nombre simbólico de la cabeza o brazo. Puede contener sólo los carácteres alfabéticos (mayúsculas y minúsculas), numéricos y el signo underscore "_"
    SignalFnType ( valor ) Valor estándar de función de señal (SIGFN_)
ver valores
    SignalFlags ( valor ) Uno o más valores estándar de flags de señal (SIGTYPE_) que especifican opciones adicionales de la señal
ver valores
    SigFlashDuration (  
      num Duración del foco encendido en una indicación parpadeante
      num Duración del foco apagado en una indicación parpadeante
    )  
    SignalLightTex ( "nombre" ) Nombre simbólico de la texura de los focos
    SignalLights ( num Número de luces o indicaciones luminosas de la señal, que no focos (numero máximo de secuencia + 1)
      SignalLight ( num Número de secuencia de la luz (iniciando en 0)
        "nombre" Nombre simbólico de la luz
        Position ( x y z ) Coordenadas relativas de la luz respecto al centro del objeto HEAD en el modelo
        Radius ( num ) Radio de la luz
        SignalFlags ( valor ) Uno o más valores estándar de flags de luz (SIGLIGHT_) que especifican opciones adicionales de la luz
ver valores
      )  
    ... Otras entradas de luces
    )  
    SignalDrawStates ( num Conjuntos de luces y/o posiciones de brazos semafóricos que definen un estado o posición de la cabeza de señal (numero máximo de secuencia + 1)
      SignalDrawState ( num Número de secuencia del estado (iniciando en 0)
        "nombre" Nombre simbólico del estado
        DrawLights ( num Número de luces que componen el estado (que están encendidas en este estado)
          DrawLight ( num Número de secuencia de luz (especificado en SignalLight)
          SignalFlags ( valor ) Uno o más valores estándar de flags de luz (TRLIGHT_) que especifican opciones adicionales de la luz
ver valores
      )  
    ... Otras entradas de luces para este estado
    )  
    SemaphorePos ( num ) Numero del frame definido en el modelo para este estado (número de animación del brazo)
  )  
  SignalAspects ( num Numero de estados. Información sobre cada uno de los estados de la cabeza de la señal en relación a cada conjunto de luces indicado anteriormente
    SignalAspect (  
      valor Valor estándar de estado de la cabeza o brazo de la señal (SIGASP_)
ver valores
      "nombre" Nombre simbólico del conjunto de luces para un estado (definido en SignalDrawState)
      SpeedMPH ( num ) Límite opcional de velocidad al rebasar la señal, en millas por hora
      SpeedKPH ( num ) Límite opcional de velocidad al rebasar la señal, en kilómetros por hora
      SignalFlags ( valor ) Uno o más valores estándar de flags de señal (SIGASPF_) que especifican opciones adicionales de la señal
ver valores
      )  
    ... Otras entradas de estado para la señal
    )  
    SignalNumClearAhead ( num ) Número de sectores o bloques siguientes que son necesarios para que la señal de la indicación de vía libre (CLEAR). Obligatorio para señales de tipo NORMAL.
  )  
  ... Otras entradas describiendo tipos de señal
)  

Nota

Una vez las señales están situadas en el entorno con el Route Editor, estos parámetros pueden ser ajustados si el comportamiento de las mismas no es el deseado, pero los números de secuencia de las entradas no pueden ser alterados o MSTS no reconocerá la ruta.

 Sección SignalShapes 

Esta sección describe los objetos de modelos de señales, y el conjunto de cabezas o brazos de señal que componen cada uno de ellos, así como otros sub-objetos que puedan estar presentes en una señal.

Nótese que cada unidad de cabeza o brazo en un modelo de señal tiene su propio sub-objeto, incluso si es la cabeza "original" de la señal.

SignalShapes ( num Numero de entradas de esta sección
  SignalShape (  
    "nombre" Nombre del fichero .s de la señal (sin el path)
    "texto" Descripción que aparecerá en la ventana de selección del Route Editor
    SignalSubObjs ( num Número de brazos o suib-objetos de la señal (numero máximo de secuencia + 1)
      SignalSubObj ( num Número de secuencia del sub-objeto (iniciando en 0)
        "nombre" Nombre del objeto de la cabeza en el fichero .s de la señal (HEADn)
        "texto" Descripción que aparecerá en la ventana de configuración de la señal del Route Editor para identificar el brazo de la señal
        SigSubType ( valor ) Valor estándar de flags de tipo de brazo (SIGSUBT_)
ver valores
        SignalFlags ( valor ) Valor estándar de flags de tipo de brazo (SIGSUB_)
ver valores
        SigSubSType ( "nombre" ) Nombre simbólico de la cabeza o brazo definido en SignalType de la sección SignalTypes. Sólo se aplica a los sub-objetos de tipo SIGNAL_HEAD.
        SigSubJnLinkIf ( num Número de índices de secuencia que siguen.
          num num ... Índices de secuencia opcionales de entradas SignalSubObj. Si algún sub-objeto está activado por el usuario en el Route Editor, entonces el flag SIGSUB_JN_LINK se asume para este sub-objeto.
        )  
      )  
    ... Otras entradas describiendo sub-objetos de la señal
    )  
  )  
  ... Otras entradas describiendo señales
)  

Notas

Sólo debe haber una definición de la forma (SignalShape) de la señal para cada nombre de fichero .s del objeto de la señal, puesto que el nombre de fichero de la forma es el identificador único usado. Si se requiere otra definición de la forma se requiere para la misma señal (p.e. con otro flag o parámetro) entonces se deberá crear una copia del archivo .s bajo otro nombre para referenciarlo en otra sección SignalShape.

No cambie el order o numeración de los objetos-secundarios definidos dentro una SignalShape. Si tales cambios se requieren después de poner cualesquiera señales, cree una nueva definición de la forma de la señal. La mayoría de las otras referencias dentro del archivo se hacen vía nombre, y se pueden cambiar, no así los numeros de las subsecciones (al igual que los índices de las luces de la señal).

Algunos creadores de rutas, al generar los scripts de las señales, pueden referenciar los estados de las señales por medio de su índice (y no se su valor estandar). En este caso se debe tener cuidado si se producen cambios posteriores en los estados.

En general, es mejor no introducir cambios en la configuración de las señales, una vez las hemos incorporado a una ruta, por lo cual, se recomienda probar las señales en una ruta de pruebas antes de incorporarlas a la ruta definitiva.

Una SignalShape no puede tener más de 32 objetos-secundarios.

Flags definidos por el usuario

Hay que resaltar que la característica de los flags de usuario para SIGSUBT no está verificada ni soportada por Microsoft. En las rutas originales sólo se incorporó el valor de flag para la placa de número y para la placa del gradiente.

Estos valores de flag (USER1 a USER4) se pueden usar, y recuperar posteriormente en el script de la señal (véase la descripción para SIGSUBT) como con cualquier otro flag de subtipo, pero su funcionamiento puede no ser el esperado. Personalmente, no he llegado a usarlos.

 Sección ScriptFiles 

En esta última sección se definen los archivos de script que se deberan cargar en el juego para localizar los scripts para todos los nombres simbólicos de cabezas definidos en SignalType (los scripts correspondientes deben tener estos mismos nombres simbólicos).

ScriptFiles ( Numero de entradas de esta sección
  ScriptFile ( "nombre" ) Nombre de fichero .dat que contiene scripts
  ... Otras entradas ScriptFile
)  

 

 

 Valores para SIGFN 

Describen la función de un brazo de una señal. Sólo el valor NORMAL designa una cabeza que requiere una interacción con un tren (por ejemplo "alto") y crea un sector de control de presencia de los trenes. Los demás valores actúan únicamente como categorías para las señales, y no tiene repercusión directa en el juego el usar unos u otros. En el caso de usar un valor diferente a los indicados, o de teclear incorrectamente alguno de ellos, el juego interpretará que la señal es de tipo NORMAL, con las consecuencias que de ello se deriven (se creará un sector de control de circulaciones).

NORMAL Cabeza de señal que muestra una indicación imperativa para el tren (p.e. "alto" o "via libre")
DISTANCE Cabeza de señal avanzada
REPEATER Cabeza que repite la indicación de otra
SHUNTING Cabeza de señal de dirección o de indicación de agujas
INFO Cabeza meramente informativa

 Volver al punto anterior

 

 Valores para SIGTYPE 

Describen el tipo de señal.

SEMAPHORE Brazo de semáforo. Implica animación del mismo.
NO_GANTRY Cabeza de señal no utilizable para situar en un puente de señales.

 Volver al punto anterior

 

 Valores para SIGLIGHT 

Valores para una luz, relativos al tipo de señal

SEMAPHORE_CHANGE Sincroniza el cambio de luz con el movimiento del brazo

 Volver al punto anterior

 

 Valores para TRLIGHT 

Valores para una luz, que modifican su aspecto

FLASHING Hace que la luz parpadee

 Volver al punto anterior

 

 Valores para SIGASP 

Estos son los valores posibles para los diferentes estados o aspectos de una señal.

STOP Alto. Parada absoluta. Un intento de rebasar la señal determina el final de la actividad.
STOP_AND_PROCEED Alto. Tras la detención del tren se puede proseguir con marcha a la vista.
RESTRICTING Alto, con autorización de rebase.
APPROACH_1 Anuncio de parada. Anterior a una indicación de STOP o STOP_AND_PROCEED.
APPROACH_2 Anuncio de precaución. Anterior a una indicación de APPROACH_1.
APPROACH_3 Otro nivel de Anuncio de precaución.
CLEAR_1 Vía libre hasta la siguiente señal.
CLEAR_2 Otro nivel de vía libre.

 Volver al punto anterior

 

 Valores para SIGASPF 

Modificadores de la indicación de una señal.

ASAP Limite de velocidad As Soon As Possible (tan pronto como sea posible)
p.e. no le es exigido a un tren que adapte su velocidad justo rebasar la señal.

 Volver al punto anterior

 

 Valores para SIGSUBT 

Describen el propósito o función de un brazo de una señal.

DECOR Decorativa
SIGNAL_HEAD Cabeza de señal
NUMBER_PLATE Placa de número
GRADIENT_PLATE Placa de pendiente
USER1 - USER4 Usos definidos por el usuario

 Volver al punto anterior

 

 Valores para SIGSUB 

Estos valores especifican opciones para la cabeza de la señal.

OPTIONAL Cabeza opcional en la señal (puede inhibirse en Route Editor)
DEFAULT Señal activa por defecto (cuando se coloca manualmente)
BACK_FACING Cabeza orientada en sentido contrario a la posición de la señal
JN_LINK Cabeza que debe siempre estar asociada a una ruta o dirección (en Route Editor)

 Volver al punto anterior

Pere Comas. pere_comas@hotmail.com
Copyright Agrupament Ferroviari de Barcelona © 2002.