WAD Editor Torture Test
Solutions for DEU 5.21
(First draft - not finished yet)
Use Object/Rectangle, enter the dimensions (320x256) and you now have your first room. Switch to Things mode (press T), then press Ins to insert the player 1 start.
Check that the grid is disabled, then use Object/Polygon, enter the number of sides (6) and the radius (128). Without moving the pointer, insert a new hexagon with a radius of 64. DEU will create an obstacle inside the existing room. Now you can re-activate the grid and move the room in the right position if necessary.
Note: for an hexagon, the length of the sides is equal to the radius. The problem would have been more serious with an octagon, for example.
Use Object/Rectangle to insert a new sector between the two rooms. Its size doesn't matter (take 128x128, for example). Then drag both ends of this sector over the walls of the first and second room. Confirm that you want to join the linedefs.
Switch to LineDef mode (L) and select the two sides of the hallway. Use the option Misc/Split LineDefs and Sector twice. Now you have a new sector in the middle of the hallway. Switch to Sector mode (S), select the new sector and use the option Misc/Make door from sector. If necessary, move it in the right position.
Select the two sides of the hallway between the door and the first room. Use Misc/Split LineDefs and Sector. Switch to Sector mode and use Misc/Make lift from sector.
Use Object/Rectangle to insert a rectangle (64 by 192) in the first room. While the linedefs are still selected, press Ins to create a sector inside this rectangle. Drag the sector in the corner of the room, with two of its linedefs superimposed on the corresponding walls of the room. Confirm that you want to split and merge the lines. Unfortunately, DEU 5.21 will not do everything correctly: you will have to change the references on two of the sidedefs in order to make sure that they point to the new sector (this is easier to do with DEU 5.3).
When this is fixed, select the western and eastern sides of the rectangle and use Misc/Split LineDefs and Sector five times. Then set the grid to 32 and drag the new vertices so that each step is 32 units long. Select the sector in the southwest corner and set its altitude to 144. Then select the sector for the first room, followed by all sectors for the steps, up to the top one, and use Misc/Distribute floor heights. Now you have your stairs.
Select all linedefs on the western wall (from South to North) and use Misc/Align Textures (X Offset)/1. Due to a bug in DEU 5.21, you will not be able to do this for the other side of the steps. Instead, you have to select the linedefs one by one and copy the same X offsets as the linedefs on the left side. You will also have to set the "Lower unpegged" bit on all these linedefs (alternatively, you can set the Y offsets by hand to 0, 24, 48, 72, 96 and 120, but the automatic Y alignment feature for the Misc menu does not work in DEU 5.21).
Use Object/Rectangle to insert a new room (size 128x128) a bit away from the first room. Then drag this new sector so that its northern wall is joined with the southern wall of the first room. Confirm that you want to split and join the linedefs.
Set the "Upper unpegged" bit on the linedef that separates this room fromt the top of the stairs, in order to align the top texture correctly. Do the same for the linedef on its right, but also set the "Lower unpegged" bit.
Modifiy the type of the linedef which is between the second room and the hallway (choose the type Special.../Teleport) and set its tag number to 2. Switch to Sector mode and change the tag number of the third room to 2. Switch to Things mode and press Ins to insert a new object in this room. Change its type to Teleport Landing. Press Ins to insert another object and modify its properties so that it is an Imp which doesn't appear on the first difficulty level. Press Ins once again to insert the second Imp.
There is no easy way to do that... If you don't like to do too much hand-editing, do as follows: select the eastern and western walls of the third room and use Misc/Split LineDefs and Sector. Then set the grid to 64, switch to Things mode and drag the three objects one square south. Switch to Vertex mode and drag the two southern vertices one square south too. Now delete the two linedefs that are not needed anymore, select the three other linedefs that still have a side connected to the old sector and set their second linedef number to -1 (note: check that you don't have to flip them first - the first side must be facing towards the inside of the room). Run the check for cross-references in order to delete the old sidedefs and sector.
In order to avoid the HOM effect, you should either run the check for missing textures or set the textures by hand on the three sidedefs that were affected. You should also clear the "Upper unpegged" and "Lower unpegged" bits on these linedefs. If you don't want to waste one linedef, select the vertex in the middle of the southern wall of the first room and use Misc/Delete Vertex and join Linedefs.
This one is also a bit tricky... Set the grid to 64 or 128 and move the third room inside the first one. Then select all four walls and press Ins: this will create an incorrect sector outside the third room. Now select all four walls again and change the sector reference on the second sidedef to 0 (the same as the first room). While they are still selected, change their lower and upper textures as requested. Run the automatic check for cross-references in order to get rid of the unused sector.
Use the box-select option (press shift, then click and move the mouse) to select everything in the level. Then use Misc/Rotate and scale sectors and set the angle to 90. You will have to rotate the Things separately, and you will have to move them in the right position. Then select the things one by one and change their angle.
Use Object/Rectangle to insert a very small rectangle inside the hexagon. While the linedefs are still selected, press Ins to create a sector inside this rectangle. Switch to Vertex mode and drag the four corners of the rectangle over the vertices that will be the new corners of the sector.
In principle, your level should be correct now. But alas, DEU 5.21 doesn't merge the linedefs correctly and you will get two-sided linedefs in the inner and outer hexagon, instead of single-sided ones. So you have to edit the linedefs and change their second sidedef reference to -1. Also, check that the first sidedef is linked to the new sector (13) instead of the old one (1). Run the automatic check for cross-references in order to get rid of the old sidedefs. Adjust the height and light level of this sector as necessary, then put the right texture on the upper and lower panels of the linedefs.
This one is easier: in Vertex mode, select the vertices on the southeastern corner of the inner and outer hexagon, then use Misc/Add a LineDef and split Sector. Do the same thing for the two vertices in the southern corner of the inner and outer hexagon. Adjust the properties of the two new sectors as necessary.
DEU 5.21 doesn't have an automatic search and replace feature, so you will have to select all walls in the first room and set their normal texture to STARTAN3. Do the same for the lower textures on the side of the steps and for the upper texture of the high platform.