Lat
Latitud Geográfica.
Valores positivos al Norte del Ecuador, valores negativos al Sur del
Ecuador.
Lon
Longitud. Valores
positivos al Este de Grenwich, valores negativos al Oeste de Grenwich.
Los valores de Lat/Lon se asume que son en grados (0..180) : minutos (0..60)
: segundos (0..60).decimales_de_ segundos
Se aceptan las letras N/S, E/W, +/-
Las posiciones que no se usen se pueden omitir.
Ejemplos:
53:30:30.0 // N53:30.5 // +53.50833 son los mismos valores y son
correctos.
la distancia x es en
dirección este - oeste (entero)
la distancia y es en dirección norte - sur (entero)
la distancia z es la altitud, elevación (entero)
:Label
Nombre para el destino de
un salto (hasta 15 caracteres). No se puede salir de un bloque Area() con un
salto, por lo que las :Labels solo son validas dentro de un bloque. Se debe
poner el carácter ':' pero el nombre se puede omitir. En este caso el salto
se dirige al final del bloque (->EndA). Una :Label como definicion del
destino de un salto deberia introducirse en una sola linea y deberia empezar
en la primera columna.
Los nombres de las Label
distinguen mayusculas y minusculas.
El numero de Labels permitidas por bloque estan limitadas a 400.
El numero de referencias a Labels esta limitado a 600.
$varname
(versión 1.7 o posterior)
Variables definidas por el
usuario (no variables del FS5) para almacenar algun resultado de un
parámetro de cálculo para uso posterior o para pasar valores frecuentes a
las macros. El nombre de la variable debe empezar con el carácter
"$", pero no usar otros caracteres especiales en el nombre para
evitar confusiones en su evaluación.
vx
Componente x de un vector
vy
Componente y de un vector
vz
Componente z de un vector
Un vector consta de estos
3 componentes. La suma geométrica (3D) de estos componentes se normaliza a
32767 (máximo valor positivo en un entero). Los vectores se usan para
definir una dirección en el mundo 3D, por ejemplo para indicar desde que
lado la superficie de un objeto se puede ver.
len
Esta es la longitud o
distancia en unidades RefPoint. Si el factor de escala del punto de
referencia es uno, las unidades RefPoint se dan en metros. Cuando se usa con
vectores este factor se puede ver como la longitud del vector. Se puede
tomar 'len' como un valor de coma flotante.
vattr
Atributos de Vectores para
calculo automático de vectores. En el FS5 los vectores se usan para indicar
direcciones en el mundo 3D. En muchos casos el programa puede calcular estos
vectores. El parámetro 'vattr' se usa para controlar este calculo.
Se asume que el RefPoint
esta en el centro del objeto que se quiere construir, entonces el programa
se puede hacer una idea de la direccion del vector. Si quieres dibujar una
casa y el RefPoint está fuera o en una esquina no se puede usar el calculo
automático.
m
manual, se tiene que
calcular los componentes del vector uno mismo (por defecto).
a
automatico. Todos los
componentes (vx, vz, vy y len, si se necesitan) se calculan por el programa.
z
El vector solo tiene
componente z. (los puntos directos hacia arriba en el aire). No se calcula el
vector pero se calcula la len.
xy
Solo se calcula el
componente z-y. z siempre es 0.
xz
Solo el componente x-z.
yz
Solo el componente y-z
Estos tres componentes vattr
son utiles para VectorPoints() en objetos de formas regulares (por
ejemplo redondas) conjuntamente con ShadedPoly().
au
automático, pero el vector siempre apunta hacia
arriba. Esto significa que si el componente-z es negativo, el vector esta
invertido.
ad
automático, pero el vector siempre apunta hacia
abajo. Si el componente-z es positivo, el vector se invierte.
ai
útil para dibujar los muros interiores de casas y
hangares. El vector siempre esta invertido.
p
se usan coordenadas polares para el siguiente vector.
(ángulo de elevación, dirección, [longitud]). El programa convierte esto
en el formato vector BGL.
t
habilita el calculo automático del Point Texture para
cualquier ..TexPoly. El SCASM intenta usar el mapa de textura entero, pero
el ratio de aspecto se mantiene. Solo válido con ..TexPoly.
b
Igual que el anterior, pero el ratio de aspecto de la
textura no se mantiene. Esto puede dar un escalado distinto para el bitmap
en las direcciones x e y. Solo válido con ..TexPoly.
r
Este flag invierte el bitmap en la dirección y
(arriba/abajo). Solo válido con ..TexPoly.
( )
Si un comando requiere parámetros estos DEBEN
introducirse entre paréntesis. DEBE haber como mínimo un espacio entre el
paréntesis y el primer/último parámetro.
{ }
La versión actual de SCASM no puede tratar corchetes
anidados. Ya que algunos usuarios quieren incluirlos en los nombres de radio
ayudas o en mensajes ATIS, convierte los corchetes en paréntesis.
[ ]
En la descripción de comandos:
Si encuentras un nombre de parámetro entre estos corchetes en una
descripción de un comando el parámetro es opcional y se puede omitir.
[ ]
En el código SCASM, estos corchetes ejecutan el
evaluador de expresiones. Esto permite hacer cálculos simples con los
parámetros. Nota: esto no funciona con ningún parámetro de frecuencia.
;
Indica que el texto siguiente es un comentario.
Cuidado cuando se use entre paréntesis ya que el resto entero de la línea
se ignora. Utiliza la siguiente línea para el resto de parámetros y para
cerrar el paréntesis para evitar confundir al compilador de escenarios.
_
Underscores (guion bajo) se convierten a espacio ' '
solo en strings de nombres de radio ayudas y en mensajes ATIS.
#
Este parámetro simboliza un contador numérico en
algun parámetro. Por ejemplo OBI# puede reemplazarse por OBI1 o OBI2.
hex
Algunos parámetros se requiere que sean en hexadecimal. Ya que el SCASM
se espera recibir este formato no se necesitan caracteres adicionales para
indicarlo. Por lo que simplemente pon C1, no C1h. Para evitar el riesgo de
confusión en operadores, deberías usar mayúsculas para números
hexadecimales. Si no sabes usar hexadecimales puedes calcularlos mediante la
calculadora que viene con el Windows. Solo tienes que cambiarla de estándar
a científica en su menú de opciones.
@
Carácter especial para generar etiquetas ambiguas en macros. (ver
macro())
Letras en Mayúsculas
Las letras en mayúsculas se usan en este documento solo para una mejor
visión. El ensamblador de escenarios NO distingue entre mayúsculas y
minúsculas excepto en las nombres de etiquetas.
Header ( type [*] TopLat BottomLat RightLon
LeftLon )
Este comando DEBE ser el primero en el fichero (principal) de tu
escenario. Este genera la cabecera del fichero BGL que define el perímetro
del área cubierta por el fichero de escenario.
Los valores de Lat/Lon deben estar en el formato
DD:MM:SS.SSSS
type de 1 a 4, este número tiene algo que ver con los
ficheros .VIS. Los siguientes valores se asocian con:
1 Escenario Visual (sección 9), bloques sinteticos (secc. 1..6)
2 Mundo Crop Duster, no usar este valor.
3 Radio ayudas como, VOR, ILS, NDB, Radiobalizas.
4 Menú de aeropuertos, ATIS.
Parece que estos números informan al FS5 la importancia de la información
contenida en estos y cada cuanto buscar en estos ficheros para actualizar los
escenarios. Por lo tanto se deberían poner todos los objetos visibles en el
tipo 1 y la información u objetos menos importantes como datos de land-me en
ficheros de tipo 4. Pero si se diseñan escenarios pequeños se puede poner
todo en un solo fichero.
* Si se pone el carácter asterisco no se testea el correcto orden
de RightLon y LeftLon. Esta opción solo la necesitarás si tu escenario cruza
la linea de fecha (meridiano 180). Normalmente no se usa!
LatRange ( BottomLat TopLat)
Este comando debe seguir al comando Header. En esta versión solo se
puede poner un solo comando LatRange. En esta versión el registro
LatRange se usa para todas las secciones del BGL.
Menu ( Cadena Titulo del Escenario )
Si quieres definir algunas posiciones de comienzo que puedan ser elegidas
del menú de aeropuertos utiliza este comando. La longitud está limitada a 20
caracteres ahora. Utiliza corchetes '{' en vez de paréntesis '(' si son parte
del título. En esta versión solo se puede poner un solo comando menu().
MenuEntry ( Lat Lon alt hdg COMfrq NAV1frq OBI1 Nav2frq OBI2 Text Info
String, max 40 caracteres)
Datos para una situación de partida. DEBE existir un comando menu(..) en
el fichero ANTES del comando MenuEntry (..), si no obtendrás una secuencia de
error del SCASM. La cadena de información está limitada a 40 caracteres.
Lat Latitud
Lon Longitud
alt Altitud en metros. Si se pone a 0 el FS5 automaticamente se
ajustará al nivel del suelo. Se aceptan números con coma flotante.
hdg Rumbo (magnético) en drados -> 23.33
COMfrq Frecuencia de la radio COM -> 123.40 (el primer
dígito se ignora)
NAV#frq Frecuencia de la radio NAV#. -> 116.30
OBI# Valores en grados del OBI# -> 271
NDB ( Freq Rng ID Name Lat Lon Elev )
Este comando define un NDB
Freq Frecuencia en kc, rango de 200.0 a 526.5
Rng Rango en Nm (número entero)
ID Código id en 5 caracteres del NDB
Name Nombre de máximo 24 caracteres, si se quieren incluir
espacios usa el '_' en donde quieras ponerlos.
Lat Latitud de la posición del NDB
Lon Longitud de la posición del NDB
Elev Elevación (MSL) en metros (número entero)
VOR ( Frq Rng Flags Magvar ID Name Lat Lon Elev Hdg )
Define un VOR.
Para detalles de los parámetros ver el comando ILS(..)
ILS ( Frq Rng Flags Magvar ID Name Lat Lon Elev Hdg ; localizer Lat Lon
Elev Slope ; GP )
Define un ILS.
Frq Frecuencia en mc -> 113.45
rango de frecuencias VOR 108.0 ... 117.975
rango de frecuencias ILS 108.0 ... 111.975
Rng Rango en Nm (número entero)
Nota: Se pueden poner valores superiores a 255. Parece que el FS5 puede
tratarlos, pero el display del DME siempre mostrará 99 si se sobrepasa este
valor.
Flags Se acepta cualquier valor de dos dígitos hexadecimal.
80 Habilita el Localizador.
40 Habilita la senda de planeo.
10 El DME está en la posición del transmisor de la senda de planeo.
01 DME habilitado.
02 Desconocido, encontrado a menudo.
08 DME deshabilitado (-> 09 es un DME sin VOR)
Magvar Variación magnética (p.ej. -3.7). Solo para VOR.
Normalmente 0 para ILS. Si se pone 0 el VOR/ILS está alineado con el norte
verdadero. Para obtener una lectura del receptor NAV que corresponda con la brújula
se debería introducir la variación magnética. Esto da al VOR el mismo error
que la brújula.
ID Código, hasta 5 caracteres.
Name Nombre, hasta 24 caracteres. Utiliza '_' en vez de espacios
en blanco.
Lat Latitud
Lon Longitud
Elev Elevación en metros (MSL, número entero)
Hdg Rumbo (verdadero) en grados (Solo para ILS, siempre 0 para un
VOR) -> 144.1
Slope Angulo de descenso del transmisor de senda -> 3.0
Nota: Existe un problema conocido con la senda en el emisferio sur en el
FS5.0 y FS5.0a.
IM (Lat Long Elev )
MM ( Lat Long Elev )
OM (Lat Long Elev )
Balizas de marca.
IM Baliza interior
MM Baliza media
OM Baliza Exterior
Lat Latitud
Long Longitud
Elev Elevación en metros (MSL, número entero)
ATIS ( Rng Lat Lon Frq RW1 RW2 RW3 RW4 Text )
Rng Rango en Km (número entero)
Lat/Lon Posición del ATIS
Frq Frecuencia en Kc 123.45 Rango de frecuencias COM 118.0 ...
137.0 Mc.
RW1 Pista en uso para vientos de dirección 0...89º
RW2 Pista en uso para vientos de dirección 90...179º
RW3 Pista en uso para vientos de dirección 180...269º
RW4 Pista en uso para vientos de dirección 270...359º
Text Cualquier mensaje ATIS que quieras. Los siguientes
caracteres especiales el FS5 los sustituye por los siguientes textos:
%A " weather -"
%B " observation "
%C " ##:## zulu "
%D ---
%E " Temperature ## F -"
%F " Information "
%G " Landing and departing runway # -"
%H " Advise controller "
%I " Altimeter ##.## -"
%J " Visibility ## -"
%K " winds $$$$ - "
%L " Measured ceiling ###### $$$$,"
%M " on initial contact "
Nota: Si tienes que poner mensajes muy largos los puedes
partir en varias líneas. Todos los <CR/LF> dentro de los paréntesis de
esta instrucción se convertirán en un espacio. El tamaño del buffer de
entrada es de aproximadamente 4000 caracteres pero parece que la versión
actual del FS5.0 solo puede tratar 255 caracteres. Si necesitas usar
paréntesis en el texto pon en su lugar llaves '{'. Así mismo los '_' y los
caracteres de línea nueva se convierten en espacios.
LandMe ( Lat1 Long1 Elev1 ID1 Lat2 Long2 Elev2 ID2
Airport name Rwy )
Este es el registro para la opción de menu Land Me en el
FS5. Esta opción solo está disponible con la Cessna que viene por defecto.
Lat#/Lon# Define la posición de los puntos de
aterrizaje para cada final de pista.
Elev Elevación de los puntos de aterrizaje en metros (MSL). ->
17.3
ID# ID de la pista de este punto de aterrizaje.
TimeZone ( TopLat BottomLat RightLon LeftLon minutes
ds1 ds2 )
Define una zona rectangular de Hora. Asegúrate de que no
se cruza la línea de cambio de fecha (meridiano 180) por el área definida.
minutes Diferencia de tiempo en minutos de
UTC (GMT).
ds1 Relacionado con el cambio de hora del verano (comienzo?)
ds2 Relacionado con el cambio de hora del verano (final?)
ds1, ds2 no está completamente testeado, pon a 0 si no hay
dst, valores encontrados en ficheros originales: 0,0 1,1 2,0 2,1 2,2 1,4 1,3
1,0.
include ( filename.ext )
Incluye un fichero de texto. Simplemente el fichero se
copia en el codigo principal. El fichero incluido no puede contener otro
fichero incluido. Se acepta cualquier nombre correcto de fichero. La llamada a
un fichero de macro está permitida. Esto hace posible hacer un fichero
principal parecido a
Header( ... )
LatRange( ...)
Include( ... )
...
Include( ... )
con todos los comandos en los ficheros include().
macro ( filename.scm p1 ... pn )
Esto es una macro llamada a escenario visual. Llama la
macro con hasta 30 parámetros (dímelo si necesitas más). p1 a pn es
cualquier texto de hasta 14 caracteres. No se permiten espacios, paréntesis o
'%'. Una macro no puede llamar a otra macro o un fichero include.
El fichero de la macro puede contener cualquier comando de
escenario VISUAL. Cada vez que se encuentra el texto '%#', este se reemplaza
por el parámetro número # de la llamada de la macro. El contador de
parámetros empieza por 1.
ejemplo:
llamada macro: macro ( ejemplo.scm param1 param2 )
fichero macro: Area ( 5 %1 %2 20 )
%1 es sustituido por param1
%2 es sustituido por param2
Translación condicional de macros (pseudo comando,
MacroIf):
mif ( %# ) El parámetro de la macro # se testea. Si su
valor NO es 0 (=Verdadero) los comandos que le siguen son interpretados. No se
soportan mif() anidados. Solo se testea el 0, pero se pueden instroducir
expresiones lógicas (por ejemplo con operadores relacionales) si están
dentro de corchetes.
mif ( [%3 >= 2] )
melse es opcional. Si la condición mif() es FALSA se
interpreta esta sección.
mifend indica el final de la translación condicional.
Nota: En muchos casos las macros tendrán un bloque entero
Area(). Pero si estás utilizando macros para generar código dentro del area
de la misma macro mas de una vez y la macro tiene definiciones de etiquetas
puedes tener un error de etiqueta duplicada (duplicated label error). Para
evitar esto se puede poner el carácter especial @ en el nombre de la
etiqueta. Este caracter hace que el SCASM incluya el contador interno de
macros en en nombre de la etiqueta durante la translación de la macro. Debido
a que el contador es un codigo de 3 digitos, el nombre está limitado a 12
caracteres.
ejemplo:
Label@ se expande en :Label1095 durante la translación de la macro número
95.
CopyRight ( cualquier texto hasta 80 caracteres )
Este texto se inserta en el fichero de salida. No se
necesitan subrayados bajos.
Gen Excl ( name.BGL mask TopLat1 BottomLat1 RightLon1
LeftLon1 TopLat2 Bottomlat2 RightLon2 LeftLon2
name nombre del fichero *.BGL generado (p.ej. LEBLEXC.BGL)
LL1 Lat/Lon Bordes de la cabecera del fichero BGL; igual que en Header()
LL2 Lat/Lon Bordes del escenario (normalmente igual a LL1)
mask un valor hexadecimal de 16 bits para indicar datos del CD a suprimir.
Cualquier combinación de los de aqui abajo se permite.
01 Sin escenario visual, pistas.
02 Sin VOR, ILS
04 Sin NDB
08 Sin ATIS
otros bits no encontrados todavia. Para excluir escenarios
añadidos simplemente pon F en la mascara. Parece que no todas las
combinaciones son posibles.
Genera un pequeño fichero bgl para suprimir areas por
defecto especificas del CD del FS5.1. Parece que estos ficheros tienen efectos
sobre todos los demas ficheros que no están en el mismo directorio que este
fichero. Se puede definir mas de un fichero exclude para el mismo escenario
pero ve con cuidado cuando definas el area que cubren. Mueve estos ficheros al
mismo directorio que el resto de tus bgl de tu escenario.
Nota: no se pueden inhabilitar escenarios synteticos
(incluyendo montañas) con estos ficheros. ver SC_HINTS.TXT para más
información.
Uvar ( $name value ) versiones 1.7 expandidas
Este es un comando interno del SCASM para definir variables
de usuario. Este comando no tiene ningún efecto sobre el código BGL. Las
variables de usuario pueden ser usadas por expertos para una mayor
flexibilidad en calculos de parámetros.
Nota: variables que se definan dentro de un bloque Area()
solo son validas dentro de este Area() pero otras variables siempre son
válidas.
Map ( stat )
Este es otro comando interno que puede ser usado para
suprimir el mapa de generación para algunas partes del fichero de codigo
fuente.
stat 1 = on, 0 = off
Recibirás mas información con el programa que necesita la
opción map.