Advanced lift design techniques

Usually, Doom II elevators are restricted to raise (or lower) their floor height to the one from an adjacent sector at a higher or lower position. MAP30: Icon of Sin includes an elevator that works without adjacent sectors, but is severely limited. What follows is a trick that allows you to have a sector that may raise and lower its ceiling and floor heights without needing to have an adjacent sector on the room to sets the desired height. These advanced lifts are very interesting because they allow plenty of advanced tricks, including spiral staircases and second floors.

Implementation
This trick is extracted from Bug's Revolutionary Techniques for Doom and Doom II v2.3 guide, to be used along with Doom Construction Kit. In order to work, two sectors must be created with the same sector ID. There are two methods to obtain this:


 * Method 1:
 * Extend the lift sector so a part of it is placed outside the level map.
 * For each linedef on the lift which is at the same time inside and outside the map, create two vertexes: one outside, and other inside.
 * Remove the linedefs created between those two vertexes. After this, there should be two open polygons.
 * Close the polygons by joining vertexes. There should be a sector inside the map and another outside the map, but the level editor should think they are the same sector.


 * Method 2:
 * Select and copy all the linedefs from the lift sector (Note: this is not the same as selecting the sector).
 * Paste the linedefs outside the level map. This should create a copy of the sector, which will be considered to be the same sector by the level editor.

After this is done,
 * Draw a sector outside the map, adjacent to the new sector.
 * Set its floor height to be equal to the desired height, that is, the height the lift will raise to.
 * Select all the linedefs of the lift sector which are inside the map.
 * Give them the function lift, floor raise, or floor lower.

Lift completed.

Limitations

 * None known.

Example

 * [[Media:LIBRARY.WAD|LIBRARY.WAD]] (file info) is an example of this trick.