DSA
Usage
A dungeon design can contain up to 256 DSA definitions. Each
level of the dungeon can use a subset of 32. A level can contain
as many DSAs as you please but there can only be 32 different
'kinds'. This is a bit like the Wall Decorations where each level
can contain 100s of Wall Decorations but only 15 kinds of Wall
Decorations.
In the Edit/Global menu you can select any one of the 256 DSA
definitions to edit. In the Edit/Level menu you can specify which
32 of the 256 you want to use on any particular level. And you
place 'instances' of the DSA using the same mechanism that you use to
place Pushbuttons or Pressure Pads.
An 'instance' of a DSA is an actuator like any other actuator except
that how it acts depends on which definition it uses. When you
place an instance of a DSA you are invited to edit it and you may
specify which definition it is to use. There are also two
parameters associated with a DSA. This is just like a teleporter,
which has one paramter to specify the destination, or like a Pressure
Pad which has one parameter to specify the target of any messages
produced. But a DSA has two parameters. Each parameter can
be a location in the dungeon or a simple integer. If it is a
location, then it can specify any location on any level of the
dungeon. If it is an integer then it can be any non-negative
integer less than 262144. How this instance of the DSA behaves
depends on the definition it uses. And the definition can use the
parameters to further alter its behaviour. The parameters are
named 'A' and 'B'.
As a simple example, we might use a DSA to forward messages from one
level to another. Pressure Pads can only send messages to the
same level on which the Pressure Pad resides. We could write a
DSA that forwards any message to another level. We could write it
so that it forwards the message to a particular location on a
particular level. But then if we wanted to forward messages to a
different place we would have to write another DSA to do it. A
better idea is to write the DSA so that it forwards the message to the
location specified by parameter A. Then we can forward to several
different locations using the one definition and specifying the proper
locatation in parameter A when we insert an instance of the DSA into
the dungeon. This is exactly analogous to inserting teleporters
and supplying as a parameter the destination location. We don't
want a different kind of teleporter for each possible location that
might be a destination. We have one kind of teleporter and each
instance of the teleporter has a different destination because we
supply a different parameter. We have one kind of DSA and it does
different things depending on the parameter supplied.