Open main menu

Location (LOC) scripts specification

Level-0 simple statements:

DISK Selects data file containing resources for this location (it used to ask the user to switch floppy in the original games). This statement appears any other resource specification.
LOCATION Specifies location name and selects background bitmap and depth mask. It is not necessary for this statement to be the first one in the script.
LOCAFLAGS Declares custom flags for the current location: the default value is *clear*. The flags values are retained across savegames and location switches.
FLAGS Sets flags declared in LOCALFLAGS.
SOUND Specifies sound effect to be looped (as it was background music).
MUSIC Specifies background music.
ENDLOCATION Tells the parser there is nothing more to read in this location script.


Level-0 block statements (with brief description):

ZONE Declares interactive screen area.
ANIMATION Declares visible animation.
COMMENT Defines text to be displayed in a balloon when the location is accessed for the first time.
ENDCOMMENT Special text displayed on end game. There is only one instance in the last location for Nippon Safes.
NODES Defines points to be used as aid when computing walk paths.
COMMANDS Defines a list of commands to be executed before COMMENT text -if any- is displayed.
ACOMMANDS Defines a list of commands to be executed after COMMENT text -if any- is displayed.


Zone block

LIMITS Defines rectangular interactive area on screen.
LABEL Text to be displayed when mouse enters the area defined by LIMITS.
FLAGS One or more among behaviour flags (*link needed*), separated by pipe character.
COMMANDS List of commands to be executed when zone is activated.
MOVETO Specifies position (x, y) character is set to walk to when action is triggered on this zone.
TYPE Block defining special features of the zone (*link needed*).
ENDZONE Marks the end of Zone definition.


Animation block

POSITION Defines starting position (x, y, z) of the animation on the screen.
FILE Data file holding animation frames and respective sizes.
SCRIPT Name of script file (SCR) containing instructions to drive this animation (and possibly others).
LABEL Text to be displayed when mouse enters the area occupied by the animation. Since animations can move, the area is computed on the fly.
FLAGS One or more among behaviour flags (*link needed*), separated by pipe character.
COMMANDS List of commands to be performed when execution of animation script (SCR) is over.
MOVETO Specifies position (x, y) character is set to walk to when action is triggered on this animation (usually a non-playing character).
TYPE Block defining special features of the animation (*link needed*).
ENDANIMATION Marks the end of Animation definition.


Comment/Endcomment block

These blocks are made of plain text, followed by an ENDTEXT statement on its own line.


Nodes block

This block only appear once in a location file, and holds a list of screen coordinates.

COORDS Declares one point (x, y) to be used in walk path calculation, whenever a direct path between two positions is not available.
ENDNODES Marks the end of Nodes block.


Commands/Acommands block

This block holds a list of commands with their own parameters. With regard to the order in which commands are encountered during parsing, the execution flow is backwards.

SET Sets a global (system) flag or a flag declared with LOCALFLAGS statement.
CLEAR Clears a global (system) flag or a flag declared with LOCALFLAGS statement.
START Sets kFlagsActing flag, starting animation script (SCR) execution.
STOP Clears kFlagsActing flag, stopping animation script (SCR) execution.
SPEAK Schedules a dialogue for execution at the beginning of the next game loop.
GET Adds an item to the inventory and removes corresponding Zone from screen, unless kFlagsFixed is set for the same Zone.
DROP Removes an item from inventory.
LOCATION Schedules a location switch.
OPEN Schedules a door for opening at the next frame.
CLOSE Schedules a door for closing at the next frame.
ON Sets kFlagActive, this displaying a previously hidden Zone or Animation.
OFF Sets kFlagRemove, this scheduling a visible Zone or Animation for hiding.
CALL Calls a built-in routine for special gfx.
TOGGLE Toggles a global (system) flag or a flag declared with LOCALFLAGS statement.
QUIT Sets system quit flag, thus telling the engine to exit the game.
MOVE Sets animation to be moved at the specified position.
ENDCOMMANDS Marks the end of Commands list.