[ Platforms | Path_Corner | Doors | Secret Doors | Func_Wall | Func_Illusionary ]
There are two types of advanced entities -- functional and trigger types. All functions and some triggers are created by first making a brush, then selecting the brush and going to the Entities menu and selecting the entity you want from the pull-down menu. The Functions are movable brushes (by and large), like doors, while triggers are often for affecting gameplay. They look like a brush in your map editor but are invisible in the game. First come the functional entities. The triggers are handled in the next section, Items & Monsters.
Platforms in PracticeA rising platform is basically one or two brushes. The single brush platform is what you find in E1M1 that lifts you out of the water to the Green Armor, or in E1M5 that leads to the gold key door. As a matter of style, these platforms are used when they are up against a wall, and l33t map makers will put small brushes under the main platform that run inside a groove that's in the wall. Look under the platforms in E1M2 or E1M5. There's two small brushes under the platform that are nested in the grooves in the wall. It's these little details that make for a cool Quake level.
Two-brush platforms have a thin stem under the main flat platform that the player stands on. You see them in DM 3, among other levels. Whatever you use, remember that every brush that should be associated with the platform has to be selected when you convert the brush into a platform.
To make the platform, create a brush with the texture of your choice. Try and get the length of the brushes right before converting them to a func_plat, because sizing doesn't work really well with grouped items. Place the platform where you want it to be in the UP position.After that, select the brush right click on the brush, and select Tie to Entity. You want func_plat. Select it, and click on the Make Entity button. The entity will turn blue on the screen.
BSP only has two check boxes, plat_low_trigger and plat_toggle. plat_low_trigger starts the platform in the up position instead of down, which is the default. plat_toggle is for the Zerstorer TC, so you can make the plat stop at different locations. (I think).
Speed, sound, trigger, target, and targetname are all set by adding the key and value, just like with other entities. Use height only if you want the platform to stop at a certain distance, rather than its full length. You only use target and targetname if you want to leave the platform in a raised position and have it lowered with a button, for example. Change the sound to make it fit with the setting of the map. Mess with the speed (default is 150) at your own leisure/discretion.
Set the travel altitude to a positive value that corresponds to the number of units it would take to lower your platform to the lowest position. One way to figure out this distance if your platform is the type with a 'stem' is to select the func_plat, then read the height value printed in the status bar below, then subtract about 8 or 16 from that value to allow some of the top of the platform to be showing when it is all the way down. If you have platform without a stem, you can go to selection mode and draw an outline rectangle in either the YZ or XZ 2D screen alongside the platform reaching from the top of the platform to the ground level and read off the height from that.
Note:There is a limit to how long this travel altitude can be! From my experimenting, I have found the maximum value is (Height of platform) + 256. In other words, if you select your plat and it measures 44 units high, then the travel altitude can be no more than 300 units. This distance rule is also true for lip values on doors.
path_corner is used for moving platforms and monsters. This class makes platforms and monsters move on a continuous, circular path. Monsters, of course, will break from it once they attack you. This section will cover using path_corner for both platforms and monsters
path_corner entities have only 3 assignable values:
path_corner can be used in other innovative ways. Those pushers in Gloom Keep (E1M5) that often knock you down into the area with the fiends are just a func_train brush using two path_corners: one to push out, one to pull back in. (insert your favorite sexual reference joke here)
Moving platforms, a.k.a. trains, are the floating plates you see in the game, which frequently transport you over areas. Trains are always moving, unlike platforms, which activate when you walk on them. Moving platforms range from the simple one floating near the top of DM2 or the complex platforms in E3M4 (Satan's Dark Delight).
Simple test. Make a large room, four walls, floor and ceiling. Create a starting point that's high off the ground, so you can have fun with rising and falling stops, and a flat brush that will function as the train (ie. where your character will stand). Convert that platform brush to func_train. Then create your first path_corner right next to the starting point, so the platform will be close enough for you to get on. It can be directly lined up with, higher or lower than, or to the left or right of the first stop point. Then add three more path_corner's.
Now, make a train with target and targetname. BSP has a great shortcut for doing this. Say you want to tie a button to a lift. Select your button, then hold the Control key and click on the lift entity. BSP will automatically assign a target/targetname between the two. You can do it the slow way, too. Enter 'target' in Key and 'stop1' in Value.
Remember, the target is the next stop point. Using the hypothetical StopX, a platform with four corners would be Stop1, Stop2, Stop3, and Stop4. Stop1, ostensibly where you first get on the platform, has a target of Stop2 and a targetname of Stop1. When you get to Stop4, it's target is Stop1. This completes the circle.
Using path_corner for a walking monstersYou set up a circular path for monsters the same way you would for platforms. Just remember they can't fly, except for Scrags, so keep your stop points on an even plane.
Set the path_corners for the circle you want the monster to walk in. Remember, the monster has to hit all of the path_corner points, so don't make it impossible for the monster to get around. Place your monster near the first point, and join the two using the target and targetname. Once you get to the last corner, point it back to the first path_corner so the circle is complete.
Single brush doors open in any direction. Draw a brush, then convert it to a func_door by selecting the brush and selecting func_door in the Entities window. Doors have more spawnflags than armor, weapons, etc.
These fields are fairly straight-forward
Note on the key-opened doors and toggle: If you have a door or doors with either the gold or silver key flag selected, you do not need a trigger to open them! Also, if you have a 2-door set, then you must have the DOOR_DON box unchecked, otherwise only one of the doors will open when activated and you may not be able to get through.
From the BSP help file: If two doors touch, they are assumed to be connected and operate as a unit. TOGGLE causes the door to wait in both the start and end states for a trigger event.
Again, use the overhead view and set the angle the doors move on opening via the 360 degree switch. If you want the door to go up, use the 'Up' button, or 'Dn' to move down. To make a door stay open, set the "Delay Before Close" (in the Flags) to -1. That keeps it open permanently. A VERY nice feature of BSP is that once you set the direction, it puts an arrow pointing in the direction the door should open.
Other flags are:
A dual-brush door, one that splits in opposite directions, requires two brushes. Convert both brushes to func_door separately, then set their angles for opening in opposite directions, so they part when they open. For example, a north-facing door (in the overhead view) would open by setting the right door to open at 0 degrees and the left door at 180 degrees. (see below)
Secret doors follow the same paramenters as normal doors, although they use func_door_secret. It also has several unique spawnflags.
The func_wall entity is a strange entity. This entity hasn't been well defined or used much. Basically, func_wall is a brush entity that remains solid when you tie it to an entity. As an experiment, try this: create a solid wall and convert it to a func_wall. Give it a targetname of your choice. Then create a button or trigger with the target that matches the targetname.
This is important. Set the spawnflag on the trigger to "kill target".
When you activate the trigger, the wall brush you made will disappear immediately. If you don't, the wall will behave like standard wall brush. This could be good for traps where you don't want to wait for the wall to open all the way.
These are fake (illusionary) walls that look solid, but you can walk through them. In E2M1, there's a secret area near the beginning with the dog and enforcer with a 100 hp megahealth.
Illusionary walls are created the same way as any other entity. It has no spawnflags.
Portions Copyright ©1996-97 Niklata and Thomas Winzig.