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 |
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. |
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 |
Valores para TRLIGHT |
Valores para una luz, que modifican su aspecto
FLASHING | Hace que la luz parpadee |
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. |
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. |
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 |
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) |