SCASM 2.88 |
Jumps, conditional Jumps and Calls |
FS5 - FS2002 |
Jump( :Label ) |
Execution is continued at :Label |
TOP |
FS98 - FS2002 |
Jump32( :Label ) |
Jump with a 32 bit address displacement. Practically no limit of jump distance |
TOP |
FS5 - FS2002 |
IfVarRange( :Label Var minval maxval ) |
The contents of the FS variable Var is tested. If the value is within the range of minval and maxval the execution is continued with the next command. Otherwise execution is continued at :Label.
|
TOP |
FS5 - FS2002 | ||
|
Similar to IfVarRange(), conditions ANDed |
TOP |
FS5 - FS5.1 | ||
|
Similar to IfVarRange(), conditions ANDed |
TOP |
FS5 - FS2002 |
IfVarAnd( :Label Var Mask ) |
The contents of the FS5 variable Var is AND_ed with the value of Mask. If the result of this operation is TRUE execution is continued with the next command. Otherwise execution is continued at :Label.
|
TOP |
FS5 - FS2002 |
IfHSize( :Label r p ) IfHRes( :Label r p ) |
The horizontal size is tested. If the object size given by r does not cover p pixels
on the screen a jump to :Label is performed and the object is not drawn. But you can
force FS to draw it just by increasing your zoom factor during flight.
|
TOP |
FS5 - FS2002 |
IfVSize( :Label r p ) IfVRes( :Label r p ) |
The vertical size is tested.
|
TOP |
FS5 - FS2002 |
IfVis( :Label ptnum0 ... ptnumX ) MonitorPt( :Label ptnum0 ... ptnumX ) |
This command tests whether one of the points in the list is visible or not. If none of the points is visible a jump to :Label is performed. This command is usually used with 4 or 8 points describing an flat or 3-dimensional area. The points have to be defined with the Points() command before. |
TOP |
FS5 - FS2002 |
AreaSense( :Label ptx0 pty0 ... ptxn ptyn ) SenseBorder( :Label ptx0 pty0 ... ptxn ptyn ) |
The following instruction block is executed if we are within the polygon defined by the list of point coordinates. Oterwise execution is continued at :Label. Concave polygones are not allowed and the points should be entered in a clockwise order ! |
TOP |
FS5 - FS2002 |
IfPlaneInBox( :Label xmin xmax zmin zmax ymin ymax ) Monitor3D( :Label xmin xmax zmin zmax ymin ymax ) |
The 3D area is monitored. If the aircraft is NOT in the specified area a jump to :Label is performed. All values are in meters. This command cannot be roteted (RotatedCall) or transformed (TransformCall) in FS5.x and FS2000 |
TOP |
FS5 - FS2000 ? | ||||||||
|
This is the transformed 3D monitoring instruction. The monitored 3D area is shifted (from the RefPoint position) and rotated. A jump to :Label is performed if the aircraft is outside.
|
TOP |
FS5 - FS2002 |
SeparationPlane( ... ) VectorJump( :Label m vx vz vy len ) VectorJump( :Label a pnum1 pnum2 pnum3 ... ) VectorJump( :Label p elev_angle heading len ) |
The elements vx, vz and vy are representing a vector standing rectangular on a
virtual plane (surface). Len is a distance in RefPoint-units. The following commands
are executed if the distance from the viewer (aircraft) to the virtual plane measured
in the vectors direction is greater than dist. Otherwise execution is continued
at :Label (Jump to :Label). |
TOP |
FS5 - FS2002 |
Call( :Label ) Call32( :Label ) |
Calls a subroutine at :Label. After the Return from the subroutine execution continues with the next command. |
TOP |
FS5 - FS2002 |
Return |
Returns the control to the next instruction after the |
TOP |
FS5 - FS2002 |
PerspectiveCall( :Label ) AddObj( :Label ) |
Use this instruction for drawing 3 dimensional objects. There is no need to draw flat ground polygons with this instruction. Typical sequence:
|
TOP |
FS5 - FS2002 |
Perspective |
This should be the first command in a subroutine called with
|
TOP |
FS95 - FS2002 |
PerspectiveCall32( :Label ) |
The 32 bit Version of PerspectiveCall() |
TOP |
FS5 - FS98 ? |
PerspectiveCall2( :Label ) AddMountain( :Label ) |
Another version of PerspectiveCall. Objects drawn with this command are added to the scenery before normal 3D objects are drawn. |
TOP |
FS5 - FS2002 |
LayerCall( :Label layer ) |
Ground surface polygons drawn within a LayerCall'ed subroutine are sorted according to their layer number before they are drawn into the scenery. The sorting is done with all currently visible scenery elements, even if they are in different BGL files. It is reported that only layer numbers 4, 8, 12, 16 ... are working in FS2000.
See
|
TOP |
FS5 - FS2002 |
ShadowCall( :Label ) |
The shadow of the static object at :Label is drawn. Do not direct a ShadowCall to a Perspective command, use the next command instead. Otherwise scenery hangups can happen (in FS5). |
TOP |
FS5 - FS2002 |
ShadowCallVI( :Label var ) |
SHADOWVINSTANCECALL in FS98SDK |
TOP |
FS5 - FS2002 |
RotatedCall( :Label pitch bank heading ) |
The subroutine at :Label is called with rotated coordinates. The pivot point is the active RefPoint().
|
TOP |
FS5 - FS2002 |
PBHCall( :Label var ) |
VINSTANCE_CALL in FS98SDK |
TOP |
FS5 - FS2002 | ||
|
This is an expansion of the RotatedCall(). A subroutine is called with transformed
coordinates. That means you can assume the new temporary reference point is at the
given delta_# distances from the original point. Also the coordinate system is rotated
around this point according the #_deg values.
|
TOP |
2.01 | FS5 - FS98 |
LandingLights( :Label varptr vx vz vy ) LightBeamCall( :Label varptr vx vz vy ) |
This instruction is used to generate the aircrafts landing lights in FS
versions 5.0 to 98. For FS2000 and later see the
|
TOP |
FS5 - FS5.1 |
CallAsm( :Label seg ) |
Calls an 8086 assembly language programm at :Label |
TOP |
FS95 - FS2000 |
AsmCall32( :Label ) |
This is the 32 bit version of CallAsm(). Found in MDL files. |
TOP | © Manfred Moldenhauer |