From: ryan <> Date: Mon, 14 Apr 2014 23:11:39 +0000 (+0000) Subject: Script guide work X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;ds=sidebyside;h=60e6572ddf307fc6b494d3df449c907e1e4df550;p=skyscrapersim%2Fskyscraper.git Script guide work --- diff --git a/designguide.html b/designguide.html index b4e1db5b..6c63138e 100644 --- a/designguide.html +++ b/designguide.html @@ -49,18 +49,18 @@ also allow the user to view the building in 3D as it's being created.

building

Buildings are stored in text files in Skyscraper's -buildings folder, usually at c:\program files\skyscraper\buildings on -Windows, or in the "buildings" directory on Unix. The filenames end in BLD, and -so you need to make sure your text file ends with ".bld" and not ".txt". To +buildings folder, usually at "c:\program files\skyscraper\buildings" +on Windows, or in the "buildings" directory on Unix. The filenames end in BLD, +and so you need to make sure your text file ends with ".bld" and not ".txt". To create a new building, first open up a text editor, and read the instructions below. When you're finished, save it into the buildings folder shown -above, as something like "mybuilding.bld". The building will appear in -Skyscraper's buildings list the next time you run it. A simplistic building is -included for you to get a good idea of the overall format of a typical building -data file. You might also want to open one of the other buildings that come -with Skyscraper ("Triton Center.bld", "Glass Tower.bld", etc) for examples on -the more advanced functions. Please note that the script syntax will change in -the future.

+above, as something like "mybuilding.bld". The building will appear when you +choose "Other buildings..." in Skyscraper's main menu the next time you run it. +A simplistic building is included for you to get a good idea of the overall +format of a typical building data file. You might also want to open one of the +other buildings that come with Skyscraper ("Triton Center.bld", "Glass +Tower.bld", etc) for examples on the more advanced functions. Please note that +the script syntax will change in the future.

 

@@ -76,7 +76,7 @@ before your comment. For example:

It's a good idea to use comment markers to add a title header at the top of your building file. The Triton Center file has this header:
#The Triton Center
-#Copyright ©2003-2010 Ryan Thoryk

+#Copyright ©2002-2013 Ryan Thoryk


2. Variables

@@ -148,12 +148,13 @@ the script, by referencing the floor in this manner:

Floor(number).parameter

-

Available parameters are Base, Altitude, Height, FullHeight and -InterfloorHeight. Note that this function must only be called after the -specified floor has been created.
-If the InterfloorOnTop parameter in the globals section is set to 'false' (the -default), then Base refers to the floor's altitude plus interfloor height; -otherwise it refers to the altitude.

+

Available parameters are Base, Altitude, +Height, FullHeight and InterfloorHeight. Note that +this function must only be called after the specified floor has been +created.
+If the InterfloorOnTop parameter in the globals section is set to +'false' (the default), then Base refers to the floor's altitude plus +interfloor height; otherwise it refers to the altitude.

Example:
Set 1 = Floor(5).Altitude

@@ -162,7 +163,8 @@ Set 1 = Floor(5).Altitude

6. Includes

Other script files can be included (inserted) anywhere in the -current script by using the <Include> command. Scripts can be included multiple times, and included scripts can include other scripts.

+current script by using the <Include> command. Scripts can be included +multiple times, and included scripts can include other scripts.

Syntax:
<Include @@ -179,8 +181,10 @@ you would enter:

Functions can be created to share code between sections of scripts, and also between entire scripts when used in conjunction with -includes. An unlimited number of parameters can be specified for each -function. If a function is specified with the same name as a previously defined function, the function will be skipped and a warning will be printed. This can only be used outside of any section, such as <Floor>.

+includes. An unlimited number of parameters can be specified for each function. +If a function is specified with the same name as a previously defined function, +the function will be skipped and a warning will be printed. This can only be +used outside of any section, such as <Floor>.

Syntax:
<Function @@ -188,11 +192,12 @@ function. If a function is specified with the same name as a previously defined (code)
<EndFunction>

-

The above is a function definition, and must be used before the function call. -Functions can be called from anywhere in the script, and can also call other functions, resulting in nested functions. -To call the function later in your code, use the function name followed by a list -of parameters contained within parenthesis, or just parenthesis if you're not -passing any parameters:

+

The above is a function definition, and must be used before the +function call. Functions can be called from anywhere in the script, and can +also call other functions, resulting in nested functions. To call the function +later in your code, use the function name followed by a list of parameters +contained within parenthesis, or just parenthesis if you're not passing any +parameters:

Syntax:
name(parameter1, parameter2, ...)
@@ -471,9 +476,9 @@ mywindows, true, 1, 1
windows_spec.png as a specular mask (which needs to be a file that contains an alpha blended image that is used to determine how the blending texture applies to the original texture), and loads a texture to blend as sky.jpg (see -Skyscraper's data folder for examples of this). The spherical parameter -determines if the texture is spherically mapped (true) or planar mapped -(false). The values tile_x and tile_y are per-texture +Skyscraper's data folder for examples of this). The spherical +parameter determines if the texture is spherically mapped (true) or planar +mapped (false). The values tile_x and tile_y are per-texture multipliers. For example, if you set tile_x to 2, and you specify a texture width (tw) of 2 during an AddFloor command later, the tiling value will be 4 (2 times 2), and the texture will be repeated 4 times @@ -493,10 +498,10 @@ Skyscraper's data/materials folder, and are all automatically loaded on startup. The material definitions (the example being testmat.material) contain a material name along with the texture processing parameters. The material name specified in this command needs to match the one in the material definition you -want to use; the example file is named "testmat". Name is the standard texture -name you want to map it to, to use with other commands. The other commands are -the same as in previous commands. For more information on how to make material -definition scripts, see the Name is the standard +texture name you want to map it to, to use with other commands. The other +commands are the same as in previous commands. For more information on how to +make material definition scripts, see the OGRE manual's "Material Scripts" section.

@@ -510,27 +515,29 @@ h_align, v_align, ColorR, ColorG, ColorB[, force
]
Button100, nimbus_sans.ttf, 47, 100, -1, -1, -1, -1, center, center, 255, 255, 255

-

With this command, texture_name is the name of the previously -loaded texture to draw text onto (loaded with either Load or LoadRange). Name -is the name to call this new texture. Font_filename is the filename of the font -to use - fonts are in Skyscraper's data/fonts directory. X1, y1, x2, and y2 are -coordinate values mainly used to position the text in a boxed area, with the -position of 0, 0 (x 0, y 0) being on the top left.. If any value is -1, the -dimension of the texture will be used (so in this example, the loaded texture -has a size of 128x128 pixels, and so the values are 0, 0, 128, 128). This will -place the text in the center of the texture image, but to position it -elsewhere, specify the pixel box to place it in. H_align and v_align determine -the alignment of the text - for h_align, it can either be "left", "right" or -"center", and for v_align either "top", "bottom" or "center". ColorR, ColorG -and ColorB determine the color of the text, and the values range from 0 to 255. -If all values are 255, the text is white, and if all values are 0, then it's -black. The force value is optional, and if set to false, autosizing -will always be disabled for this texture; if set to true, autosizing will -always be enabled. Note that the source texture needs to be a power-of-two -size, such as 128x128, 256x256, 512x512, etc - this is because the work is done -directly on the graphics card, and the majority of cards only support those -kinds of sizes. Normal textures loaded with the Load command are internally -resized by Crystal Space before use, and don't have that limitation.

+

With this command, texture_name is the name of the +previously loaded texture to draw text onto (loaded with either Load or +LoadRange). Name is the name to call this new texture. +Font_filename is the filename of the font to use - fonts are in +Skyscraper's data/fonts directory. X1, y1, x2, and +y2 are coordinate values mainly used to position the text in a boxed +area, with the position of 0, 0 (x 0, y 0) being on the top left.. If any value +is -1, the dimension of the texture will be used (so in this example, the +loaded texture has a size of 128x128 pixels, and so the values are 0, 0, 128, +128). This will place the text in the center of the texture image, but to +position it elsewhere, specify the pixel box to place it in. H_align +and v_align determine the alignment of the text - for h_align, it can +either be "left", "right" or "center", and for v_align either "top", "bottom" +or "center". ColorR, ColorG and ColorB determine the +color of the text, and the values range from 0 to 255. If all values are 255, +the text is white, and if all values are 0, then it's black. The force +value is optional, and if set to false, autosizing will always be disabled for +this texture; if set to true, autosizing will always be enabled. Note that the +source texture needs to be a power-of-two size, such as 128x128, 256x256, +512x512, etc - this is because the work is done directly on the graphics card, +and the majority of cards only support those kinds of sizes. Normal textures +loaded with the Load command are internally resized before use, and don't have +that limitation.

7. AddTextRange - similar to LoadRange, but draws text onto a texture
@@ -570,14 +577,14 @@ single texture, by drawing one on top of the other. Texture_name specifies the original source texture name to use (all textures must be loaded beforehand), overlay_texture_name specifies the texture to draw on top of the source texture, and name specifies the name of the new texture. -X and Y determine the position to place the top-left of the new image at (since -position 0, 0 is the top left of the image), and width and height determine the -size in pixels of the overlay texture. In the above example, the "Brick2" -texture is drawn on top of the "Brick1" texture, starting at pixel position 25, -25, with a width of 50 and a height of 50. The resulting texture is called -"NewBrick". The force value is optional, and if set to false, -autosizing will always be disabled for this texture; if set to true, autosizing -will always be enabled.

+X and Y determine the position to place the top-left of the +new image at (since position 0, 0 is the top left of the image), and +width and height determine the size in pixels of the overlay +texture. In the above example, the "Brick2" texture is drawn on top of the +"Brick1" texture, starting at pixel position 25, 25, with a width of 50 and a +height of 50. The resulting texture is called "NewBrick". The force +value is optional, and if set to false, autosizing will always be disabled for +this texture; if set to true, autosizing will always be enabled.

10. Rotate - sets a texture's rotation to a set amount. This can be used with other texture modifiers.
@@ -598,9 +605,9 @@ speed
Example: RotateAnim Brick1, 0.2

-

This command sets the texture's animated rotation value. Speed -is in rotations per second. In the example, the Brick1 texture's rotation -animation is set to 0.2 rotations per second.

+

This command sets the texture's animated rotation value. +Speed is in rotations per second. In the example, the Brick1 texture's +rotation animation is set to 0.2 rotations per second.

12. Scroll - set's a texture's fixed scrolling value. This can be used @@ -622,9 +629,9 @@ x_speed, y_speed
Example: ScrollAnim Brick1, 1, 1

-

The speed values are the number of full scrolls per second. In -the example, the Brick1 texture will scroll to the right once per second, and -up once per second.

+

The speed values are the number of full scrolls per +second. In the example, the Brick1 texture will scroll to the right once per +second, and up once per second.

14. Scale - sets a texture's scaling factor. This can be used with other @@ -675,9 +682,9 @@ size of the wave.

5. The Floor Sections

-

There are 2 Floor sections available - Floor -and Floors. Floor specifies a single floor, while -Floors specifies a range of floors.
+

The Floor section can either be defined as a single floor, +using the Floor name, or as a range of floors, using the +Floors name.
For a single floor, the section would start with this:
<Floor number>
@@ -849,9 +856,9 @@ Example: AddShaftFloor 1, My Floor, brick, 0.5, -10, -10, 10, 10, 0, 0, false, false, 0, 0

The parameters are the same as the AddFloor command, and the -number value is the shaft number to use. The x1, z1, x2, and z2 -parameters are offsets of the shaft's origin (similar to creating elevator -walls and floors)

+number value is the shaft number to use. The x1, z1, +x2, and z2 parameters are offsets of the shaft's origin +(similar to creating elevator walls and floors)

7. AddShaftWall - adds a textured wall to the specified shaft, on the current floor
@@ -861,9 +868,9 @@ Syntax: AddShaftWall voffset1, voffset2, tw, th

The parameters are the same as the AddWall command, and the -number value is the shaft number to use. Also, the x1, z1, x2, and z2 -parameters are offsets of the shaft's origin (similar to creating elevator -walls and floors)

+number value is the shaft number to use. Also, the x1, +z1, x2, and z2 parameters are offsets of the shaft's +origin (similar to creating elevator walls and floors)

8. AddStairsFloor - adds a textured floor to the specified stairwell, on the current floor
@@ -885,9 +892,9 @@ Syntax: AddStairsWall voffset1, voffset2, tw, th

The parameters are the same as the AddWall command, and the -number value is the stairwell number to use. Also, the x1, z1, x2, and -z2 parameters are offsets of the stairwell's origin (similar to creating -elevator walls and floors)

+number value is the stairwell number to use. Also, the x1, +z1, x2, and z2 parameters are offsets of the +stairwell's origin (similar to creating elevator walls and floors)

10. ColumnWallBox - creates 4 walls (box) at the specified coordinate locations, as part of the current floor's columnframe @@ -1028,7 +1035,7 @@ Syntax: AddStairsDoor

Number specifies the stairwell number. Direction specifies the direction the door faces and also the direction it opens. For values of this, look at the AddDoor command above. -Leave the sound fields blank for no sounds to be played.

+Leave the sound fields blank for no sounds to be played.

17. AddShaftStdDoor - adds a standard textured door for the specified @@ -1039,11 +1046,12 @@ elevator shaft doors.
Syntax: AddShaftStdDoor number, opensound, closesound, open, texturename, thickness, direction, speed, CenterX, CenterZ, width, -height, voffset, tw, -thNumber specifies the stairwell number. -Direction specifies the direction the door faces and also the -direction it opens. For values of this, look at the AddDoor command above. -Leave the sound fields blank for no sounds to be played.

+height, voffset, tw, th

+
+Number
specifies the stairwell number. Direction specifies the +direction the door faces and also the direction it opens. For values of this, +look at the AddDoor command above. Leave the sound fields blank for no +sounds to be played.

17. AddDirectionalIndicator - creates a single elevator directional indicator/lantern on the current floor (similar to the @@ -1059,9 +1067,9 @@ UpLight, UpLightOn, DownLight, DownLightOn, -3, -4.162, 6, front, 0.5, 1, true, 0, 0

This command will create a directional indicator on the current -floor (if ActiveDirection is false, then it'll only create it if the elevator -serves that floor). It'll also automatically create the up and down lights -depending on the floor.

+floor (if ActiveDirection is false, then it'll only create it if the +elevator serves that floor). It'll also automatically create the up and down +lights depending on the floor.

Elevator specifies the elevator to create the indicators for.

@@ -1126,17 +1134,18 @@ on the floor, and also for only creating shaft doors on one side if an elevator serves a specific floor. The SetShaftDoors command in the elevator section must be used before using this command. Parameters such as width, height, and direction are taken from the AddDoors command (so the -regular elevator doors need to be created first). The voffset parameter allows -you to create shaft doors at a different vertical position than the base of the -floor, and the elevator will automatically stop according to the shaft door's -voffset for that floor. These doors should be moved slightly away from the -elevator doors (to separate them both). Also, this command cuts any shaft walls -that are within the door area (and so this must be called after the shaft walls -are created). Number specifies the number of the door to create -(related to the Doors command) - if the elevator only has one door, or -if the Doors command was not used, specify 1 here. Note that for -filler walls to be created automatically, the names of the surrounding walls -(shaft and outer floor walls) must contain the word "Shaft".

+regular elevator doors need to be created first). The voffset +parameter allows you to create shaft doors at a different vertical position +than the base of the floor, and the elevator will automatically stop according +to the shaft door's voffset for that floor. These doors should be moved +slightly away from the elevator doors (to separate them both). Also, this +command cuts any shaft walls that are within the door area (and so this must be +called after the shaft walls are created). Number specifies the number +of the door to create (related to the Doors command) - if the elevator +only has one door, or if the Doors command was not used, specify 1 +here. Note that for filler walls to be created automatically, the names of the +surrounding walls (shaft and outer floor walls) must contain the word +"Shaft".

19. AddFloorIndicator - creates a floor indicator associated with a specific elevator
@@ -1151,34 +1160,34 @@ direction the indicator faces, and can be either "left", "right", "front" or "back". Relative determines if the CenterX and CenterZ values are relative of the elevator's center or not. This command can be given multiple times to create multiple indicators. -Texture_prefix is the base name of the texture to load when displaying a floor -ID; for example if the indicator is on floor 3, and you specify a prefix of -"Button", it'll load the "Button3" texture.

+Texture_prefix is the base name of the texture to load when displaying +a floor ID; for example if the indicator is on floor 3, and you specify a +prefix of "Button", it'll load the "Button3" texture.

20. Cut - performs a manual box cut on an area within the current floor
-Syntax: Cut x1, y1, z1, x2, -y2, z2, cutwalls, cutfloors
+Syntax: Cut x1, y1, z1, +x2, y2, z2, cutwalls, cutfloors
Example: Cut -5, -5, -5, 5, 5, 5, false, true

-

The x, y and z values specify the start and end coordinates of -the box cut. The Y values are relative to the current floor's altitude. If -cutwalls is true, the function will cut walls; if cutfloors is true, it'll cut -floors.

+

The x, y and z values specify the +start and end coordinates of the box cut. The Y values are relative to the +current floor's altitude. If cutwalls is true, the function will cut +walls; if cutfloors is true, it'll cut floors.

21. CutAll - performs a manual box cut on all objects associated with the current floor (the level itself, interfloor, shafts, stairs and external)
-Syntax: CutAll x1, y1, z1, x2, -y2, z2, cutwalls, cutfloors
+Syntax: CutAll x1, y1, z1, +x2, y2, z2, cutwalls, cutfloors
Example: CutAll -5, -5, -5, 5, 5, 5, false, true

-

The x, y and z values specify the start and end coordinates of -the box cut. The Y values are relative to the current floor's altitude. If -cutwalls is true, the function will cut walls; if cutfloors is true, it'll cut -floors.

+

The x, y and z values specify the +start and end coordinates of the box cut. The Y values are relative to the +current floor's altitude. If cutwalls is true, the function will cut +walls; if cutfloors is true, it'll cut floors.

22. AddFillerWalls - helper function to add fillers around a door's cut location. When a door is created, the wall in it's @@ -1186,15 +1195,15 @@ location is cut to provide space; after the cut, the sides are open (if the wall has thickness) - this creates a covering wall on each side and a floor above the door frame to fill the area.
Syntax: AddFillerWalls -texture, thickness, CenterX, CenterZ, width, height, voffset, direction, tw, -th
+texture, thickness, CenterX, CenterZ, width, height, voffset, direction, +tw, th
Example: AddFillerWalls ConnectionWall, 0.5, -10, 0, 3.5, 8, 0, true, 0, 0

The parameters in this function are similar to the related -door's parameters. Direction is either true if the door faces the front/back -(width is along the X axis), or false if the door faces left/right (width is -along the Z axis).

+door's parameters. Direction is either true if the door faces the +front/back (width is along the X axis), or false if the door faces left/right +(width is along the Z axis).

23. AddSound - creates a user-defined sound at the specified position
@@ -1256,17 +1265,19 @@ cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, true, 0.1, 0.5, 0.1

-

The Center value is either true or false, and determines if the -loaded model should be automatically centered, otherwise the exact mesh -positioning in the model file will be used. The CenterY value is relative to -the current floor's base. MaxRenderDistance determines the maximum distance in -feet that the object will be shown (0 means unlimited). ScaleMultiplier allows -you to change the size of the object during the load - for example, set to 2 to -double the size. Models are in the OGRE native mesh format. In the example, the -material/texture file is cube.material, and the optional collider mesh file is -cube.collider. EnablePhysics enables Bullet physics on the object (physics will -only work if you don't provide a collider mesh), and Restitution, Friction and -Mass determine the physical properties of the object.

+

The Center value is either true or false, and +determines if the loaded model should be automatically centered, otherwise the +exact mesh positioning in the model file will be used. The CenterY +value is relative to the current floor's base. MaxRenderDistance +determines the maximum distance in feet that the object will be shown (0 means +unlimited). ScaleMultiplier allows you to change the size of the +object during the load - for example, set to 2 to double the size. Models are +in the OGRE native mesh format. In the example, the material/texture file is +cube.material, and the optional collider mesh file is cube.collider. +EnablePhysics enables Bullet physics on the object (physics will only +work if you don't provide a collider mesh), and Restitution, +Friction and Mass determine the physical properties of the +object.

27. AddStairsModel - adds a 3D model to the specified stairwell, on the current floor. See the AddModel command above for @@ -1278,8 +1289,8 @@ EnablePhysics, Restitution, Friction, Mass
Example: AddModel 1, MyModel, cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, false, 0, 0, 0

-

The CenterY value is relative to the current floor's altitude. -

+

The CenterY value is relative to the current floor's +altitude.

28. AddShaftModel - adds a 3D model to the specified shaft, on the current floor. See the AddModel command above for @@ -1291,8 +1302,8 @@ EnablePhysics, Restitution, Friction, Mass
Example: AddModel 1, MyModel, cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, false, 0, 0, 0

-

The CenterY value is relative to the current floor's altitude. -

+

The CenterY value is relative to the current floor's +altitude.

29. AddActionControl - creates a custom control that uses a specific @@ -1312,8 +1323,8 @@ actions. There needs to be a texture for every action; if you specify 3 actions and only 2 textures, you will get an error. The control starts up in the first action, and switches to the next actions in sequence when it's clicked. Direction is the direction the control itself will face in 3D space -(front, left, right, back). Voffset is relative of the floor's base. Leave the -sound field blank for no sound to be played.trong>

+(front, left, right, back). Voffset is relative of the floor's base. +Leave the sound field blank for no sound to be played.

30. AddShaftActionControl - creates a custom control in a specified shaft @@ -1333,8 +1344,9 @@ actions. There needs to be a texture for every action; if you specify 3 actions and only 2 textures, you will get an error. The control starts up in the first action, and switches to the next actions in sequence when it's clicked. Direction is the direction the control itself will face in 3D space -(front, left, right, back). Voffset is relative of the floor's base. Leave the -sound field blank for no sound to be played.

+(front, left, right, back). Voffset is relative of the floor's base. +Leave the sound field blank for no sound to be +played.

31. AddStairsActionControl - creates a custom control in a specified @@ -1354,8 +1366,9 @@ actions. There needs to be a texture for every action; if you specify 3 actions and only 2 textures, you will get an error. The control starts up in the first action, and switches to the next actions in sequence when it's clicked. Direction is the direction the control itself will face in 3D space -(front, left, right, back). Voffset is relative of the floor's base. Leave the -sound field blank for no sound to be played.

+(front, left, right, back). Voffset is relative of the floor's base. +Leave the sound field blank for no sound to be +played.

32. AddTrigger - creates a trigger that is used to signal an action when @@ -1367,12 +1380,13 @@ size="2"> UndoMyAction, MyAction

AddTrigger creates a trigger similar to action controls (AddActionControl) and -elevator controls. The action_names(s) parameter allows you to specify a list -of actions that this trigger will call when the camera enters or exits the -area. The trigger starts in the first action, and will switch to each -consecutive action when the users enters/leaves. The X, Y and Z parameters -specify the 3D box that defines the trigger area. Y is relative of the floor's -base. Leave the sound field blank for no sound to be played.

+elevator controls. The action_names(s) parameter allows you to specify +a list of actions that this trigger will call when the camera enters or exits +the area. The trigger starts in the first action, and will switch to each +consecutive action when the users enters/leaves. The X, Y and +Z parameters specify the 3D box that defines the trigger area. Y is +relative of the floor's base. Leave the sound field blank for no sound +to be played.

@@ -1467,8 +1481,8 @@ Example: DoorTimer 1 =

11. QuickClose - the length of time (in milliseconds) that the elevator doors should stay open before automatically -closing, in quick-close mode. Specify 0 to disable. The default is 3000, or -3seconds. This must be specified after the CreateElevator command.
+closing, in quick-close mode. Specify 0 to disable. The default is 3000, or 3 +seconds. This must be specified after the CreateElevator command.
Syntax: QuickClose doornumber = value
Example: QuickClose 1 = @@ -1704,8 +1718,8 @@ Example: Doors = 2

motor sound emitter; if this command is not specified, it'll be placed at the base (altitude + interfloor) of the highest floor in the corresponding shaft. The X and Z values are relative of the elevator center.
-Syntax: MotorPosition = x, y, -z
+Syntax: MotorPosition = x, +y, z
Example: MotorPosition = 0, 100, 0

@@ -1787,8 +1801,8 @@ Syntax: NotifyEarly =

55. MusicPosition - sets the position of the music sound emitter relative of the elevator's position. If this command is not specified, it'll be placed in the center of the elevator on the ceiling.
-Syntax: MusicPosition = x, y, -z
+Syntax: MusicPosition = x, +y, z
Example: MusicPosition = 0, 8, 0

@@ -1875,15 +1889,24 @@ elevator will immediately stop. This is used to mimic a modern manual elevator Syntax: FloorHold = true

-

69. DoorSensor - enable or disable the door sensor -(electric eye), which is a trigger object placed in the elevator door area. Default -is enabled for automatic doors. A second parameter specifies the sound file to play -- only specify the first parameter for no sound. This must be specified after -the CreateElevator command.
+

69. DoorSensor - enable or disable the door +sensor (electric eye), which is a trigger object placed in the elevator door +area. Default is enabled for automatic doors. A second parameter specifies the +sound file to play when switching between on and off - this is normally used +for a relay switch sound effect. Only specify the first parameter for no sound. +This must be specified after the CreateElevator command.
Syntax: DoorSensor doornumber = enable[, filename]
-Example: DoorSensor 1 = -true, click.wav

+Example: DoorSensor 1 = true, +click.wav
+
+To have the sensor play a continuous beep while it's on (obstructed), create a +sound inside the elevator with the AddSound command using the filename of the +beep sound you want, and then create an action with the elevator's "sensor" +command name. So for elevator 1, you would create an action named "Elevator +1:sensor", and the action would do a "playsound" command on the sound you +created.
+

@@ -1893,8 +1916,8 @@ true, click.wav

specified location
Syntax: CreateElevator relative, x, z, floor
-
Example:CreateElevator false, 0, 10, 0

+
Example: +CreateElevator false, 0, 10, 0

Relative determines if the coordinates are relative to the shaft center, or if they're absolute, X and Z are the @@ -1947,17 +1970,18 @@ voffset, tw, th

at the central location specified by CenterX and CenterZ. Other parameters such as width, height, and direction are taken from the AddDoors command (so the regular elevator doors need to be created first). The -voffset parameter allows you to create shaft doors at a different vertical -position than the base of the floor, and the elevator will automatically stop -according to the shaft door's voffset for that floor. These doors should be -moved slightly away from the elevator doors (to separate them both). Also, this -command creates doors at all the floors specified in the ServicedFloors value, -and cuts any shaft walls that are within the door area (and so this must be -called after the shaft walls are created). Number specifies the number -of the door to create (related to the Doors command) - if the elevator -only has one door, or if the Doors command was not used, specify 1 here. Note -that for filler walls to be created automatically, the names of the surrounding -walls (shaft and outer floor walls) must contain the word "Shaft".

+voffset parameter allows you to create shaft doors at a different +vertical position than the base of the floor, and the elevator will +automatically stop according to the shaft door's voffset for that floor. These +doors should be moved slightly away from the elevator doors (to separate them +both). Also, this command creates doors at all the floors specified in the +ServicedFloors value, and cuts any shaft walls that are within the door area +(and so this must be called after the shaft walls are created). Number +specifies the number of the door to create (related to the Doors +command) - if the elevator only has one door, or if the Doors command was not +used, specify 1 here. Note that for filler walls to be created automatically, +the names of the surrounding walls (shaft and outer floor walls) must contain +the word "Shaft".

6. CreatePanel - creates a button panel
Syntax: CreatePanel @@ -1991,28 +2015,28 @@ Example 2: AddButton 1, , Button5, ButtonLit5, 7, 3, 4, 1, 1, 0.1, -0.1

The AddButton command creates a button on the button panel -created with CreatePanel. Panel_number specifies the number of the panel to add -the button to. Row and Column specify the position on the -grid where the button should be. Floor/Type specifies either the floor -number that this button calls, or the action name such as "Open" (see the -AddControl command for more info). Width and Height specify -the width and height of the button, as a percentage of a single grid unit size -(1 being 100%, 0.5 being 50%). If both values are 0, the default of 1 is used -for both values. If only one of the values is 0, then the exact size other is -used; for example, if width is 0 and height is 1 (or any -other number), then the width will end up being the same size as the height. -Hoffset and Voffset are optional parameters, and are used to -position the button outside the normal grid, and are in grid units (buttonwidth -and buttonheight parameters of the CreatePanel function). In the second -example, the button is positioned 0.1 grid units to the right, and 0.1 grid -units down. Notice that no sound is specified in the 2nd example - this means -that a sound won't be played.

+created with CreatePanel. Panel_number specifies the number of the +panel to add the button to. Row and Column specify the +position on the grid where the button should be. Floor/Type specifies +either the floor number that this button calls, or the action name such as +"Open" (see the AddControl command for more info). Width and +Height specify the width and height of the button, as a percentage of +a single grid unit size (1 being 100%, 0.5 being 50%). If both values are 0, +the default of 1 is used for both values. If only one of the values is 0, then +the exact size other is used; for example, if width is 0 and +height is 1 (or any other number), then the width will end up being +the same size as the height. Hoffset and Voffset are optional +parameters, and are used to position the button outside the normal grid, and +are in grid units (buttonwidth and buttonheight parameters of the CreatePanel +function). In the second example, the button is positioned 0.1 grid units to +the right, and 0.1 grid units down. Notice that no sound is specified in the +2nd example - this means that a sound won't be played.

8. AddControl - advanced command for creating buttons, switches and knobs on the panel
Syntax: AddControl panel_number, sound, row, column, width, height, hoffset, voffset, -action_name(s), texture_name(s)
+command_name(s), texture_name(s)
Example 1: AddControl 1, switch.wav, 7, 3, 1, 1, 0, 0, open, ButtonOpen
Example 2: AddControl 1, @@ -2026,20 +2050,20 @@ FireKnob2, FireKnob3

The AddControl command creates an advanced control on the specified button panel (created with CreatePanel). Most of the parameters are -the same as the AddButton command, but the action_name(s) and texture_name(s) -parameters allow you to specify a list of actions, and a list of textures to go -along with those actions. There needs to be a texture for every action; if you -specify 3 actions and only 2 textures, you will get an error. The first example -shows a door open button being created, with the action "open" and the texture -"ButtonOpen". The 2nd example shows a fan switch being created, with the first -action being "FanOff" with the "SwitchFanOff" texture being used for that, and -"FanOn" for the second action with the "SwitchFanOn" texture being used for -that. Example 3 shows a standard floor button being created (which is what the -AddButton command does) and example 4 shows a fire service mode knob being -created with 3 positions. Leave the sound field blank for no sound to be -played.

- -

Available action names:

+the same as the AddButton command, but the command_name(s) and +texture_name(s) parameters allow you to specify a list of commands, +and a list of textures to go along with those commands. A texture needs to be +specified for every command; if you specify 3 commands and only 2 textures, you +will get an error. The first example shows a door open button being created, +with the command "open" and the texture "ButtonOpen". The 2nd example shows a +fan switch being created, with the first command being "FanOff" with the +"SwitchFanOff" texture being used for that, and "FanOn" for the second command +with the "SwitchFanOn" texture being used for that. Example 3 shows a standard +floor button being created (which is what the AddButton command does) and +example 4 shows a fire service mode knob being created with 3 positions. Leave +the sound field blank for no sound to be played.

+ +

Available command names for elevators:

Off (no action)
[floor number]
@@ -2058,8 +2082,8 @@ played.

Stop (put elevator in stop state)
EStop (emergency stop)
Alarm
-Fire1Off (fire service phase 1 off for all elevators in same bank, which means -all served by first call button on recall floor)
+Fire1Off (fire service phase 1 off for all elevators in same bank, +which means all served by first call button on recall floor)
Fire1On (fire service phase 1 on for all elevators in same bank)
Fire1Bypass (fire service phase 1 bypass for all elevators in same bank)
@@ -2093,12 +2117,21 @@ bank)
InterlocksOn (enable interlocks)
InterlocksOff (disable interlocks)
Sensor (open and hold doors, used by door sensor)
-Reset (reset door timer which turns off hold, also used by door sensor)

+Reset (reset door timer which turns off hold, also used by door +sensor)

In the above list, Open, Close, related -commands such as OpenInt and OpenManual, Hold, Sensor, and Reset -can have the door number after the name - for example, Open2 will open -door 2, while Open will open all doors.
+commands such as OpenInt and OpenManual, Hold, +Sensor, and Reset can have the door number after the name - +for example, Open2 will open door 2, while Open will open all +doors.
+
+When this command is used, actions are created using the specified commands. +The resulting names of the actions are the elevator name, followed by a colon +and the command name, in order to be unique to each elevator. So the "Open" +command for Elevator 1 is created as an action named "Elevator 1:open", and you +can specify more actions with that name to run multiple actions when the +elevator opens it's doors.

9. AddFloorIndicator - creates a floor indicator
Syntax:

position (relative to the elevator) specified by CenterX and CenterZ. Direction is the direction the indicator faces, and can be either "left", "right", "front" or "back". This command can be given -multiple times to create multiple indicators. Texture_prefix is the base name -of the texture to load when displaying a floor ID; for example if the elevator -is on floor 3, and you specify a prefix of "Button", it'll load the "Button3" -texture.

+multiple times to create multiple indicators. Texture_prefix is the +base name of the texture to load when displaying a floor ID; for example if the +elevator is on floor 3, and you specify a prefix of "Button", it'll load the +"Button3" texture.

10. AddDirectionalIndicator - creates an internal directional indicator/lantern
@@ -2250,14 +2283,15 @@ size="2">AddFloorSigns CenterX, CenterZ, width, height, voffset

The AddFloorSigns command creates floor signs (similar to floor -indicators) on all the floors serviced by the current elevator. Direction is -the direction the signs face, and can be either "left", "right", "front" or -"back". Texture_prefix is the base name of the texture to load when displaying -a floor ID; for example if the sign is on floor 3, and you specify a prefix of -"Button", it'll load the "Button3" texture. Door_number specifies the door -number to check against, meaning if shaft doors don't exist on a certain floor -for the specified door, the sign won't be created on that floor. This can be -bypassed by setting door_number to 0.

+indicators) on all the floors serviced by the current elevator. +Direction is the direction the signs face, and can be either "left", +"right", "front" or "back". Texture_prefix is the base name of the +texture to load when displaying a floor ID; for example if the sign is on floor +3, and you specify a prefix of "Button", it'll load the "Button3" texture. +Door_number specifies the door number to check against, meaning if +shaft doors don't exist on a certain floor for the specified door, the sign +won't be created on that floor. This can be bypassed by setting +door_number to 0.

14. AddSound - creates a user-defined sound at the specified position
@@ -2273,7 +2307,7 @@ MySound, ambient.ogg, 10, 100, 5, true, 1, 100, 1, -1, 0, 360, 360, 1, 0, 0,

For information on the parameters, see the AddSound command in the Globals section. The only difference here is that the X, Y and Z position -values are relative of the elevator's center/origin.Loop specifies if +values are relative of the elevator's center/origin. Loop specifies if the sound should loop and play on startup.

15. AddDoorComponent - creates a single @@ -2363,17 +2397,18 @@ Mass
Example: AddModel MyModel, cube.mesh, true, 0, 0, 0, 0, 0, 0, 0, 1, false, 0, 0, 0

-

The Center value is either true or false, and determines if the -loaded model should be automatically centered, otherwise the exact mesh -positioning in the model file will be used. The CenterY value is relative to -the current floor's base. MaxRenderDistance determines the maximum distance in -feet that the object will be shown (0 means unlimited). ScaleMultiplier allows -you to change the size of the object during the load - for example, set to 2 to -double the size. Models are in the OGRE native mesh format. In the example, the -material/texture file is cube.material, and the optional collider mesh file is -cube.collider. EnablePhysics enables Bullet physics on the object, and -Restitution, Friction and Mass determine the physical properties of the -object.

+

The Center value is either true or false, and +determines if the loaded model should be automatically centered, otherwise the +exact mesh positioning in the model file will be used. The CenterY +value is relative to the current floor's base. MaxRenderDistance +determines the maximum distance in feet that the object will be shown (0 means +unlimited). ScaleMultiplier allows you to change the size of the +object during the load - for example, set to 2 to double the size. Models are +in the OGRE native mesh format. In the example, the material/texture file is +cube.material, and the optional collider mesh file is cube.collider. +EnablePhysics enables Bullet physics on the object, and +Restitution, Friction and Mass determine the +physical properties of the object.

21. AddActionControl - creates a custom control that uses a specific @@ -2393,8 +2428,9 @@ actions. There needs to be a texture for every action; if you specify 3 actions and only 2 textures, you will get an error. The control starts up in the first action, and switches to the next actions in sequence when it's clicked. Direction is the direction the control itself will face in 3D space -(front, left, right, back). Voffset is relative of the elevator's base. Leave -the sound field blank for no sound to be played.

+(front, left, right, back). Voffset is relative of the elevator's +base. Leave the sound field blank for no sound to be +played.

22. AddTrigger - creates a trigger that is used to signal an action when @@ -2406,12 +2442,13 @@ size="2"> UndoMyAction, MyAction

AddTrigger creates a trigger similar to action controls (AddActionControl) and -elevator controls. The action_names(s) parameter allows you to specify a list -of actions that this trigger will call when the camera enters or exits the -area. The trigger starts in the first action, and will switch to each -consecutive action when the users enters/leaves. The X, Y and Z parameters -specify the 3D box that defines the trigger area, and are relative of the -elevator's location. Leave the sound field blank for no sound to be played.

+elevator controls. The action_names(s) parameter allows you to specify +a list of actions that this trigger will call when the camera enters or exits +the area. The trigger starts in the first action, and will switch to each +consecutive action when the users enters/leaves. The X, Y and +Z parameters specify the 3D box that defines the trigger area, and are +relative of the elevator's location. Leave the sound field blank for +no sound to be played.

 

@@ -2429,7 +2466,9 @@ will be used, and altitude/y values specified in these commands will be offsets of that altitude.


-a. AddTriangleWall - adds a textured triangular wall. If specified in a floor section, the Y values are then relative to the floor base.
+a. AddTriangleWall - adds a textured triangular wall. If +specified in a floor section, the Y values are then relative to the floor +base.
Syntax: AddTriangleWall destobject, name, texturename, x1, y1, z1, x2, y2, z2, x3, y3, z3, @@ -2468,12 +2507,12 @@ AddGround Ground, Downtown, -158400, -158400, 158400, 158400, 0, 7920,

This command is mainly for creating large ground sections, since using the AddFloor function with a large amount of texture tiling causes -interference problems. The X and Z values specify the total size of the ground, -and the tile_x and tile_y specify the size of each tile square to create. For -example, if the ground is 10,000 feet wide, and tile_x and tile_y are both -1000, then 100 total tiles will be created; 10 wide and 10 deep. In the example -above 7920 is 1/40 of the total width (316800 which is 158400 * 2), so the tile -grid will be 40x40 tiles.

+interference problems. The X and Z values specify the total +size of the ground, and the tile_x and tile_y specify the +size of each tile square to create. For example, if the ground is 10,000 feet +wide, and tile_x and tile_y are both 1000, then 100 total tiles will be +created; 10 wide and 10 deep. In the example above 7920 is 1/40 of the total +width (316800 which is 158400 * 2), so the tile grid will be 40x40 tiles.

e. CreateWallBox - creates 4 walls (box) at the specified coordinate locations
@@ -2504,8 +2543,8 @@ Example: CreateWallBox2 external, My Box, brick, 0, 0, 10, 10, 15, 0, 0, 0, false, true, false, false

-

The parameters are the same as the above command, except -thatcenterx and centerz define the center of the box, and +

The parameters are the same as the above command, except that +centerx and centerz define the center of the box, and widthx and lengthz specify the width and length off of the center.

@@ -2519,7 +2558,9 @@ Example: AddCustomWall external, My Wall, brick, 0, 0, 0, 0, 10, 0, 10, 10, 0, 10, 0, 10, 0, 0

-

h. AddCustomFloor - the same as AddCustomWall, but with only one vertical parameter. If specified while in a floor section, the altitude is relative to the current floor's base.
+

h. AddCustomFloor - the same as AddCustomWall, +but with only one vertical parameter. If specified while in a floor section, +the altitude is relative to the current floor's base.
Syntax: AddCustomFloor destobject, name, texturename, x1, z1, x2, z2, x3, z3, ..., altitude, tw, th
@@ -2533,11 +2574,11 @@ centerx, centerz, startfloor, endfloor

Example: AddShaft 1, 10, 10, 0, 9

-

The number parameter specifies the shaft number to create. This -command just tells the simulator the area that the shaft will take up, and does -not create the actual shaft walls. Later on when you create the walls/floors -for the shaft, make sure that you make a floor at the very bottom and very top -of the shaft (they can extend beyond the walls).

+

The number parameter specifies the shaft number to +create. This command just tells the simulator the area that the shaft will take +up, and does not create the actual shaft walls. Later on when you create the +walls/floors for the shaft, make sure that you make a floor at the very bottom +and very top of the shaft (they can extend beyond the walls).

j. CreateStairwell - creates a stairwell at a specified location and floor range
@@ -2546,9 +2587,9 @@ Syntax: CreateStairwell Example: CreateStairwell 1, 10, 10, 0, 9

-

The number parameter specifies the stairwell number to create. -This command just tells the simulator the area that the stairwell will take up, -and does not create the actual walls.

+

The number parameter specifies the stairwell number to +create. This command just tells the simulator the area that the stairwell will +take up, and does not create the actual walls.

k. WallOrientation - changes the internal wall orientation parameter, which is used for determining the wall thickness @@ -2558,14 +2599,14 @@ Syntax: Example: WallOrientation = left

-

The direction parameter can either be left, center, or right. -Center is default. For example, if center is used, than half of the wall's -thickness is to the right (positive) of it's x1/x2 or z1/z2 coordinates, and -half is to the left (negative) of the coordinates. If left is used, than the -coordinates define the wall's left (negative) edge, and the full thickness is -to the right (positive) of those. If right is used, then again the coordinates -define the wall's right (positive) edge, and the full thickness is to the left -(negative) of those. See this graphic for a good example:

+

The direction parameter can either be left, center, or +right. Center is default. For example, if center is used, than half of the +wall's thickness is to the right (positive) of it's x1/x2 or z1/z2 coordinates, +and half is to the left (negative) of the coordinates. If left is used, than +the coordinates define the wall's left (negative) edge, and the full thickness +is to the right (positive) of those. If right is used, then again the +coordinates define the wall's right (positive) edge, and the full thickness is +to the left (negative) of those. See this graphic for a good example:

@@ -2582,10 +2623,10 @@ Syntax: Example: FloorOrientation = bottom

-

The direction parameter can either be bottom, center, or top. -Top is default. For example, if center is used, than half of the floor's -thickness is above (positive) it's x1/x2 or z1/z2 coordinates, and half is -below (negative) the coordinates. If bottom is used, than the coordinates +

The direction parameter can either be bottom, center, +or top. Top is default. For example, if center is used, than half of the +floor's thickness is above (positive) it's x1/x2 or z1/z2 coordinates, and half +is below (negative) the coordinates. If bottom is used, than the coordinates define the floor's bottom edge, and the full thickness is the top (positive). If top is used, then again the coordinates define the floor's top edge, and the full thickness is the bottom (negative).

@@ -2600,40 +2641,41 @@ true, false, false, false, false

The example shown is the default setting. This can seem complex, but I'll provide a graphic soon to explain it more easily. -MainNegative is the main (that makes up the length if a wall, or the main area -if a floor) face on the negative side, MainPositive is the main face on the -positive side, SideNegative is the side (the part that is along the thickness) -face on the negative side, SidePositive is the side face on the positive side; -Top refers to either the top side if a wall, or to the positive X face if a -floor; Bottom refers to either the bottom side if a wall, or the negative X -face if a floor. In the graphic above in the WallOrientation section, let's say -that the large box's difference in x values are larger (meaning that it is -horizontal from the left to the right), and that it has the same z values. With -that, MainNegative would be the front wall, MainPositive the back, SideNegative -the left, SidePositive the right, etc.

+MainNegative is the main (that makes up the length if a wall, or the +main area if a floor) face on the negative side, MainPositive is the +main face on the positive side, SideNegative is the side (the part +that is along the thickness) face on the negative side, SidePositive +is the side face on the positive side; Top refers to either the top +side if a wall, or to the positive X face if a floor; Bottom refers to +either the bottom side if a wall, or the negative X face if a floor. In the +graphic above in the WallOrientation section, let's say that the large box's +difference in x values are larger (meaning that it is horizontal from the left +to the right), and that it has the same z values. With that, +MainNegative would be the front wall, MainPositive the back, +SideNegative the left, SidePositive the right, etc.

n. SetPlanarMapping - sets the planar texture mapper's parameters.
-Syntax: SetPlanarMapping Flat, -FlipX, FlipY, FlipZ, Rotate
+Syntax: SetPlanarMapping +Flat, FlipX, FlipY, FlipZ, Rotate
Example: SetPlanarMapping false, false, false, true, false

-

FlipX, FlipY and FlipZ reverse the texture mapping per axis, -and Flat has it ignore depth., Skyscraper by default uses a simple planar -texture mapper, which in simple terms draws the texture in a box around the -object. With a basic wall, the top-left of the texture image is mapped to the -top left of the wall, the top-right is mapped to the top-right of the wall, -etc. If you want the top-right of the texture mapped to the top-left of the -wall for example (to flip or change alignment), you'd set FlipX to false. This -command is mainly used to change alignment - since the top-left of the texture -is mapped to the top-left of the object, that means that textures have a -left/top alignment by default. If you change FlipX to true, it'll be -right-aligned. If you change FlipY to true, it'll be bottom-aligned. Rotate has -it rotate the texture mapping 90 degrees counterclockwise, so instead of the -texture being mapped from the top left to bottom right, if Rotate is true, -it'll be mapped from the bottom left to top right. See this picture for an -example:

+

FlipX, FlipY and FlipZ reverse the +texture mapping per axis, and Flat has it ignore depth., Skyscraper by +default uses a simple planar texture mapper, which in simple terms draws the +texture in a box around the object. With a basic wall, the top-left of the +texture image is mapped to the top left of the wall, the top-right is mapped to +the top-right of the wall, etc. If you want the top-right of the texture mapped +to the top-left of the wall for example (to flip or change alignment), you'd +set FlipX to false. This command is mainly used to change alignment - +since the top-left of the texture is mapped to the top-left of the object, that +means that textures have a left/top alignment by default. If you change +FlipX to true, it'll be right-aligned. If you change FlipY to +true, it'll be bottom-aligned. Rotate has it rotate the texture +mapping 90 degrees counterclockwise, so instead of the texture being mapped +from the top left to bottom right, if Rotate is true, it'll be mapped +from the bottom left to top right. See this picture for an example:

@@ -2641,9 +2683,9 @@ example:

yellow around it) 2.5 times on width and height. The bottom floor shows the default texture mapping (ReverseExtents false, false, false, false, false); you'll notice that it's aligned to the top-left. In the middle one, I set the -FlipX value to true (ReverseExtents false, true, false, false, false). In the -top one, I set the FlipY value to true (ReverseExtents false, false, true, -false, false).

+FlipX value to true (ReverseExtents false, true, false, false, false). +In the top one, I set the FlipY value to true (ReverseExtents false, +false, true, false, false).

o. SetTextureMapping - manually sets UV texture mapping for all polygons generated after this command; @@ -2695,7 +2737,8 @@ SetTextureMapping - manually sets UV texture mapping for all polygons generated after this command; ResetTextureMapping restores the values to the defaults or previous
Syntax: SetTextureMapping2 -v1x, v1y, v1z, u1, v1, v2x, v2y, v2z, u2, v2, v3x, v3y, v3z, u3, v3
+v1x, v1y, v1z, u1, v1, v2x, v2y, v2z, u2, v2, v3x, v3y, v3z, u3, +v3

Example: SetTextureMapping2 x0, y0, z0, 0, 0, x1, y1, z1, 1, 0, x2, y2, z2, 1, 1

@@ -2763,7 +2806,8 @@ stairwell object - performs a vertical box cut on all floor objects (floors, ceilings, interfloor, etc) in the specified range. For the parameters, see the ShaftCut command.
Syntax: CutStairwell -number, startx, startz, endx, endz, start_voffset, end_voffset
+number, startx, startz, endx, endz, start_voffset, +end_voffset

Example: CutStairwell 1, -4, -3.5, 4, 3.5, 0, 5

@@ -2899,14 +2943,14 @@ horizontally.

ad. Cut - performs a manual box cut on an object
-Syntax: Cut -destobject, x1, y1, z1, x2, y2, z2, cutwalls, cutfloors
+Syntax: Cut destobject, +x1, y1, z1, x2, y2, z2, cutwalls, cutfloors
Example: Cut external, -5, -5, -5, 5, 5, 5, false, true

-

The x, y and z values specify the start and end coordinates of -the box cut. If cutwalls is true, the function will cut walls; if cutfloors is -true, it'll cut floors.

+

The x, y and z values specify the +start and end coordinates of the box cut. If cutwalls is true, the +function will cut walls; if cutfloors is true, it'll cut floors.

ae. Mount - mounts a zip file in the data directory into a virtual path.
@@ -3011,22 +3055,23 @@ such as "Floors 3 to 8".

parameters:

(General)
-ChangeTexture: oldtexture, newtexture
-PlaySound: name, loop true/false
-OpenShaftDoor: door number (0 for all), floor number (parent needs to be the -elevator object)
-CloseShaftDoor: door number (0 for all), floor number (parent needs to be the -elevator object)
-OpenShaftDoorManual: door number (0 for all), floor number (parent needs to be -elevator object)
-CloseShaftDoorManual: door number (0 for all), floor number (parent needs to be -elevator object)
-(for other elevator commands, see AddControl command in elevator section; these -have no parameters)

- -

With the PlaySound -command, if multiple sounds have the same name, all of those sounds will be -played simultaneously when the related action is run.

+ChangeTexture: oldtexture, newtexture
+PlaySound: name, loop true/false
+OpenShaftDoor: door number (0 for all), floor number (parent needs to +be the elevator object)
+CloseShaftDoor: door number (0 for all), floor number (parent needs to +be the elevator object)
+OpenShaftDoorManual: door number (0 for all), floor number (parent +needs to be elevator object)
+CloseShaftDoorManual: door number (0 for all), floor number (parent +needs to be elevator object)
+(for other elevator commands, see the AddControl command in the elevator +section)

+ +

The +PlaySound command plays sounds created with the AddSound command. With +this command, if multiple sounds have the same name, all of those sounds will +be played simultaneously when the related action is run.

OpenShaftDoor example, to open elevator 1's shaft doors on floor 2:

@@ -3035,6 +3080,13 @@ example, to open elevator 1's shaft doors on floor 2:

face="Courier New, Courier, mono" size="2">AddAction MyDoorOpen, Elevator 1, OpenShaftDoor, 0, 2

+

PlaySound example, +to play sound FireAlarm created using the AddSound command on Floor 1:

+ +

AddAction MySound, Floor 1, +FireAlarm, true

+

aj. AddActionControl - creates a custom control that uses a specific action defined by AddAction.
@@ -3066,12 +3118,12 @@ size="2"> UndoMyAction, MyAction

AddTrigger creates a trigger similar to action controls (AddActionControl) and -elevator controls. The action_names(s) parameter allows you to specify a list -of actions that this trigger will call when the camera enters or exits the -area. The trigger starts in the first action, and will switch to each -consecutive action when the users enters/leaves. The X, Y and Z parameters -specify the 3D box that defines the trigger area. Leave the sound field blank -for no sound to be played.

+elevator controls. The action_names(s) parameter allows you to specify +a list of actions that this trigger will call when the camera enters or exits +the area. The trigger starts in the first action, and will switch to each +consecutive action when the users enters/leaves. The X, Y and +Z parameters specify the 3D box that defines the trigger area. Leave +the sound field blank for no sound to be played.

al. SetKey - specifies that the next created model will be a key. The @@ -3111,7 +3163,8 @@ defaults, use 0 for the locked setting and 0 for keyid.
Print - prints the contents of a line to the console. This command will still convert variables and even math expressions, and output the results.
-Syntax: Print text
+Syntax: Print +text
Example: Print 1+1

@@ -3136,7 +3189,8 @@ myaction

aq. -AddActionParent - adds a parent object to an existing action. See the AddAction command for details on parent objects
+AddActionParent - adds a parent object to an existing action. See the +AddAction command for details on parent objects
Syntax: AddActionParent name, object
Example: AddActionParent @@ -3147,7 +3201,8 @@ myaction, Floors 2 to 5

ar. -RemoveActionParent - removes a parent object from an existing action. See the AddAction command for details on parent objects. This command is +RemoveActionParent - removes a parent object from an existing action. +See the AddAction command for details on parent objects. This command is normally used after a building has loaded.
Syntax: RemoveActionParent name, object
@@ -3167,12 +3222,13 @@ Example: GotoFloor 3

-

at. EndPoint - the EndPoint function calculates -endpoint coordinates given a starting point, direction (angle in degrees), and distance.
+

at. EndPoint - the EndPoint function +calculates endpoint coordinates given a starting point, direction (angle in +degrees), and distance.
Syntax: endpoint(startx, starty, angle, distance)
-Example: endpoint(-150, -150, 180, 20)
+Example: endpoint(-150, 150, +180, 20)
Result: -150, 130

@@ -3191,9 +3247,10 @@ Example: <end>

9. BREAK command

The Break command triggers a break section in the script -processor, and is used when running the simulator in debug mode. A debugger -breakpoint can be set on the associated line in fileio.cpp, and when this -command is called, the debugger will hit the breakpoint.
+processor, and is used when running a debug build of the simulator, with a +debugger attached. A breakpoint can be set on the associated line in +fileio.cpp, and when this command is called, the debugger will hit the +breakpoint.
Example: <break>

@@ -3219,9 +3276,10 @@ size="2">elevdoor_single(door_number, texture, side_texture, thickness, CenterX, CenterZ, width, height, door_direction, movement_direction, speed, is_shaft_door)

-

Door_Direction is either "left", "right", "front" or "back" and -is the direction the doors face (torwards the outside of the elevator). -Movement_direction is the direction the door should move.

+

Door_Direction is either "left", "right", "front" or +"back" and is the direction the doors face (torwards the outside of the +elevator). Movement_direction is the direction the door should +move.

2. elevdoor_center - creates a center-open elevator door.