I received many e-mails from SCASM users having problems with some sceneries. Now I will start to collect some types of problems and show a way how they can be solved. How to install the generated scenery ============================================================================== FS5.0(a) (all versions) ----------------------- In FS5.0 you have only to deal with 2 subdirectories of your FS5 main directory. Asuming you have installed FS5 on drive C: with the default name you have the following directory structure: C:\FLTSIM5\SCENERY all *.BGL files (there is a maximum of 128 !) | \TEXTURE all texture files, ie. *.R8, *.CAR, *.EU1 FS5.1 ----- In FS5.1 the structure is more complicated. All aditional comercial sceneries are installed in their own subdirectories. This lets you enable or disable the sceneries by using the FS5.1 scenery manager menu. Of course you still can copy your scenery files to the \FLTSIM5\SCENERY directory as long as you do not exceed the 128 file limit. All bigger sceneries should be installed in its own subdirectory. C:\FLTSIM5\SCENERY main BGL's | \TEXTURE main (global) texture files | | \HAWAII\SCENERY all *.bgl for Hawaii scenery | \TEXTURE all textures for Hawaii | | \MY_SCEN\SCENERY all BGL's for your scenery | \TEXTURE All texture files for your scenery If you use your own color palette the palette (*.PAL) and haze file (*.HAZ) must also copied into this directory. To use the scenery you have to do a scenery search in you scenery manager menu. After the manager has found your directory make the scenery ACTIVE and LOCAL. In FS5.1 you can also create sceneriy subdirectory on other drives. WARNING! Sometimes it happens that the scenery manager produces an corrupted WORLD.VIS file in your C:\FSTSIM5 directory. The result of this bug is an empty World-Airports menu. It is asumed this bug is related to the length of the MenuEntry info string. So you should make a backup of WORLD.VIS file before installing any 3rd party scenery. ------------------------------------------------------------------------------ Problem: I cannot add polygons to BAO/EUROPE1 scenery ============================================================================== In the EUROPE1 scenery the instruction RunwayCall() is used to draw ground polygons and ground bitmaps. I'm asuming the 2nd parameter of this instruction is a priority or a layer number (1 below, 64 on top). It seems surfaces drawn with this instruction are sorted according this numbers and that ones with the highest numbers are drawn last. You should use RunwayCall only for flat (2D) objects and NOT for 3D objects. (for 3D objects always use PerspectiveCall) In EUROPE1 the following numbers are used: (source:Hermann Lange) 4 lowest ground textures, covering the synth blocks 8 ground textures overlays, villages 12 RoadLine2, rivers 16 RoadLine, TaxiLine 20 ? 24 runways (in all sceneries) 60 shadows (->ShadowCall() ) To make your scenery visible you need a number at least 1 higher than the object which covers your object. If your flat polygons routine looks like this: Area( 5 ... ) RefPoint( 7 :end ... ) Points( ... ) SurfaceColor( . ) Poly() ... :end EndA you should change it to: Area( 5 ... ) RunwayCall( :polygons layer# ) Jump( :end ) :polygons ; polygon drawing is now done in a subroutine RefPoint( 7 :end_poly ... ) ; please note this label ! Points( ... ) SurfaceColor( . ) Poly() ... :end_poly Return ; do not forget ! :end EndA If there is only the lowest ground texture you can use layer# = 5 for your polygons. ------------------------------------------------------------------------------ DATABASE ERRORS ============================================================================== Database errors are caused by several facts. One of them are duplicated navaid frequencies. But unfortunately some people do not accept the fact that these errors can also be caused by misplaced jump targets. These form of errors will mostly occure with RefPoint() instructions. Unfortunately these errors are sometimes disappearing when changing the position (in the BGL file) of the area or when changing the scale factor. This form of database error always occures when you are entering or leaving the range of visibility of this object. Since the scaling factor has some effect on the range parameter in the Area() instruction you are actually moving the 'crash distance'. Please keep in mind that all instructions accessed via an instruction with a __CALL__ in its name are subroutines. Subroutines MUST always be closed with a RETURN. As a result all jump labels from RefPoints() in a subroutine must be directed to a RETURN, but this is only true for RefPoint()s in subroutines ! Examples: ; this is ok Area( 5 54:55:25 8:20:19 10 ) RefPoint( 7 :end 1 54:55:25 8:20:19 ) Points( 0 -10 0 10 10 0 10 10 0 -10 -10 0 -10 ) SurfaceColor( 5 F0 ) Poly( z 0 1 2 3 ) :end EndA ; this is not ok because of the missing Return ! Area( 5 54:55:25 8:20:19 10 ) RefPoint( 7 :end 1 54:55:25 8:20:19 ) RotatedCall( :subroutine 0 0 45 ) Jump( :end ) ; :subroutine Points( 0 -10 0 10 10 0 10 10 0 -10 -10 0 -10 ) SurfaceColor( 5 F0 ) Poly( z 0 1 2 3 ) :end EndA ; this is ok ! Area( 5 54:55:25 8:20:19 10 ) RefPoint( 7 :end 1 54:55:25 8:20:19 ) RotatedCall( :subroutine 0 0 45 ) Jump( :end ) ; :subroutine Points( 0 -10 0 10 10 0 10 10 0 -10 -10 0 -10 ) SurfaceColor( 5 F0 ) Poly( z 0 1 2 3 ) Return ; DO NOT FORGET THIS RETURN :end EndA ; this is not ok because of the wrong directed refpoint label ! Area( 5 54:55:25 8:20:19 10 ) PerspectiveCall( :subroutine ) Jump( :end ) ; :subroutine Perspective RefPoint( 7 :end 1 54:55:25 8:20:19 ) ; <<- ERROR Building( 0 0 0 4 20 20 0 1F ) Return ; :end EndA ; this is ok Area( 5 54:55:25 8:20:19 10 ) PerspectiveCall( :subroutine ) Jump( :end ) ; :subroutine Perspective RefPoint( 7 :end_of_sub 1 54:55:25 8:20:19 ) Building( 0 0 0 4 20 20 0 1F ) :end_of_sub Return ; this instruction is the only exit from the subroutine! ; :end EndA ------------------------------------------------------------------------------ Problem: When using FS5 internal buildings and when I am far away of them I can only see them as poles. ============================================================================== You cannot increase the screen visibility range of buildings drawn with the Building() command. The only thing you can do is to try to suppress these poles. To do this you have to experiment with the V1= parameter in the RefPoint() command. Assuming the reference point scaling factor is one then V1= 1300 means that the following objects are only drawn if you are within these 1300 meter range. I did not found out how to calculate this distance but as a rule of thumb you can start your experiment with a value of 20 times the buildings x- or y- dimensions (take the larger one). ------------------------------------------------------------------------------ Large Areas ============================================================================== If your scenery covers a large area I think it is a good idea to split it up into several overlapping latitude stripes (one stripe per file). You can link these files together with SCLINK, the scenery linker. -> SCLINK.TXT In many original BGL-files I found latitude ranges of about 2 degrees. Be carefull when selecting these ranges. You should avoid putting large range visible objects at that border because FS5 will show this object only if the border is crossed. ------------------------------------------------------------------------------ Correct altitude ============================================================================== Your homebrewed scenery has to fit into the default scenery. In particular your runway altitude must be the same as defined in the default scenery. In some cases it is possible to define an own Synth 6 tile with the correct altitude but sometimes this is not possible. If so you have to put your runway on the default ground altitude regardles what airport diagramms says. The easiest way to get the altitude is to chose the Cessna and position it where you want to put the runway. Go into the positioning menu again and read the shown altitude. Now you have to subtract 3ft (the height of the altimeter) and convert the result to meters. This methode is accurat enough in most cases. But there is another problem. For some geographic areas there might be an altitude difference between the FS5.1-disk and the FS5.1-CD version. You can test this by disableling the CD-default area in the FS5 scenery manager (FS5.1). If there is an altitude difference you should support the user with an aditional BGL file containing the "missing" synth tiles for the disk version. ------------------------------------------------------------------------------ How to make objects which are shown only if high scenery complexity is enabled ============================================================================== This is very easy. You only have to insert an 'IfVarRange' instruction and the following commands are only executed if the scenery complexity is within the limits you want. Area( 5 ... ) ; IfVarRange( :low_comp 346 2 4 ) ; ; place your 'high complexity' object here ; shown if conplexity is 2, 3, or 4 (very high). ... ; :low_comp EndA ------------------------------------------------------------------------------ How to make textured objects ============================================================================== I will include an article about this topic in the next version. In the moment I can only recommend the study of the "house03.scm" macro file in my SCXMPL.ZIP example collection. ------------------------------------------------------------------------------ I will try to expand these list. Please let me know if you have an other problem (and the solution?) which you want to be added to this list.