Classname: | func_door_rotating |
Purpose: | Access granted/denied. |
H2 Code: | doors.hc |
fields required: | flags, origin |
Rotating doors have a lot in common with ordinary
doors. Their brushes
swing around the vertical axis by default, but
can be set by spawnflags to rotate around X or Y axes, thereby
working as trapdoors, and this can be supplemented with the
angle to make them swing around an arbitrary axis in the
horizontal plane. They can also throw things
and do damage, which I haven't gotten to happen with standard doors.
If doors touch, they will be `linked' and open & close together, but otherwise behave in accord with their own attributes (w.r.t message display, for example). Use REVERSE spawnflag for automatic 180-degree angle offset. Rotating doors can be ridden on; the swinging bridge in the Graeco-Roman levels was presumably done that way. In Siege, rotating doors have some additional fields, which I don't actually list here, but describe the use of in the tutorial section on Siege doors. |
origin | Value is a triple of numbers, the X-Y-Z coordinates of the point around
which the door rotates (no default; value REQUIRED). But if the door
rotates around the Z axis, it doesn't matter what the Z-coordinate
actually is. Some editors may not easily support the origin field for rotating doors, but instead require the use of an alternative, an origin brush, which some people might find more convenient anyway. This is simply a brush, owned by the rotating door, and typically extending through it, that carries the `origin' texture (white texture with ORIGIN written on it). The origin brush will not appear in the .bsp, but the door will rotate around its center. What's nice about this is that the the center of the origin-brush is perceivable visually, so that one doesn't have to mess around with coordinate numbers. |
flags | Value is a number; angle door opens to, in degrees (no default; value REQUIRED). |
speed | Value is a number, opening and closing speed; 100 = default. |
wait | Value is a number, amount of time before closing; 3 = default, -1 = never return. Doors requiring puzzle-pieces never return. |
health | Value is a mumber, if > 0=default, the door can be actuated by damage and mass (says Eutectic; I'm not getting either mass or damage to work for rotators. Maybe trigger_once/multiples should be used be used?). |
soundtype | Value is a number, indicating the sound type the door makes when it moves. |
message | Value is a number, indicting the message to be displayed upon touching a triggered or shot door that hasn't been opened yet. |
dmg | Value is a number, damage to inflict on player etc. when impeding door. Default = 2, 666 for terminate with extreme prejudice. |
speed | Value is a number; movement speed (default 100). |
abslight | Value is a number between 0 and 1, giving absolute light-level. |
flags2 | Value is a number; amount of damage when touched (so far, I've only find rotating doors to have this flag; would be cool for doors leading into burning rooms or something). |
targetname | Value is a name, the target-value of the door's remote trigger. If this field is absent, the door will generate a (rather large) `trigger-field' that will cause it to open on approach. If it's present, no trigger-field will be created, and the door must be operated remotely, by for example a button or a trigger_once. |
angle | Value is a number, door brushes will appear in the game rotated by that amount around its origin in the horizontal plane, and if the X_AXIS or Y_AXIS spawnflag is checked, will open accordingly (swinging around the X and Y axes thru its origin as rotated by angle). This rotation does not show up up in the map (at least with QuArK 4.7), so getting complex effects might requuire a fair amount of pre-calculation. The 3D angles field angles_y can also be used for this effect, but I haven't gotten the others to do anthing, and I haven't gotten a door to rotate around an arbitrary 3D axis). |
puzzle_piece1..4 | (4 fields). Value is the name of a puzzle piece; these are listed here. Door won't open until player has all the required pieces. Puzzle-doors never reclose (are effectively wait=-1). |
no_puzzle_msg | Value is a number, indicating the message displayed when player lacks required puzzle pieces. |
target | Value is a name, the targetname-value of some entity that is triggered when the door opens. |
close_target(PoP) | Value is a name, the targetname-value of some entity that is triggered when the door closes. |
spawnflags | Value is a number, sum up the ones below for the properties you
want (hopefully your editor has a checkbox scheme or something to
do the arithmetic for you):
|