<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micky+C</id>
	<title>EDukeWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eduke32.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micky+C"/>
	<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/wiki/Special:Contributions/Micky_C"/>
	<updated>2026-04-12T19:17:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0-alpha</generator>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11957</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11957"/>
		<updated>2014-07-08T23:52:37Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Software renderer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TROR water example===&lt;br /&gt;
&lt;br /&gt;
This is how you create transparent water using TROR. It works just like regular water, but there are a few things you need to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create a main sector, then a child sector in that and extend it downwards. &lt;br /&gt;
&lt;br /&gt;
2. Make both the top and bottom of the TROR surface masked or transparent, and give it the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Give the floor of the top sector a lotag of 1 for water. Give the floor of the bottom sector a lotag of 2 for underwater.&lt;br /&gt;
&lt;br /&gt;
4. Place an SE 7 with the same hitag in the same position in both the top and bottom sector.&lt;br /&gt;
&lt;br /&gt;
5. This is the one that people normally forget. Set the TROR surface in both the top and bottom layer to BLOCKING otherwise it will not work as intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See, it&#039;s not too bad, just remember the lotags and the blocking. Note if you split up the water sector or add more sectors, make sure those sectors are in both the top and bottom layers, and have new SE 7s, just like normal water. In the future TROR water will be more automatic in that you won&#039;t need the SE 7, however this is incomplete as of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something that might make life a bit easier is that if you extend the floor of the below-water sector downwards, you can then edit the floor of the new bottom layer and make as complex as you want without having to worry about placing lots of SE 7s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
Also note that currently the software renderer doesn&#039;t allow the player to see through more than 8 layers of TROR (it draws the texture on the surface instead). This normally isn&#039;t a problem in small sectors of TROR because the player typically won&#039;t be able to look up high enough to see the 8 layers due to vertical distortion. The limit could potentially be increased if someone desperately needed it (talk to the devs for that.)&lt;br /&gt;
&lt;br /&gt;
Having void sectors (white-walled sectors with null space inside them) inside a TROR sector, or inside a sector adjacent to/bounding a TROR sector, it will cause visual glitches when viewed from some angles. Consider turning potential void sectors into child sectors, and raise the floor to the ceiling to fix this, as the result would look identical to having a void sector, but without the glitching.&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=User:Micky_C&amp;diff=11703</id>
		<title>User:Micky C</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=User:Micky_C&amp;diff=11703"/>
		<updated>2013-11-13T13:43:37Z</updated>

		<summary type="html">&lt;p&gt;Micky C: Created page with &amp;quot;Micky C is an eduke32 mapper who started playing around with the editor in 2009. Being highly skilled in TROR (and polymer lighting), Micky C wrote the True Room Over Room map...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Micky C is an eduke32 mapper who started playing around with the editor in 2009. Being highly skilled in TROR (and polymer lighting), Micky C wrote the True Room Over Room mapping guide, with tweaks from Helixhorned (TROR&#039;s creator). He also did the polymer lighting maphacks for episodes 2 and 3 (with minor changes in episodes 1 and 4) for the HRP, as well as those for Duke it out in DC&#039;s HRP.&lt;br /&gt;
&lt;br /&gt;
He is perhaps considered the community&#039;s expert mapper on TROR and polymer lights, certainly being amongst the most experienced in both fields.&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=11702</id>
		<title>EDuke32 Modifications</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=EDuke32_Modifications&amp;diff=11702"/>
		<updated>2013-11-13T12:44:36Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Released */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11670</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11670"/>
		<updated>2013-06-23T07:52:21Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Software renderer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TROR water example===&lt;br /&gt;
&lt;br /&gt;
This is how you create transparent water using TROR. It works just like regular water, but there are a few things you need to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create a main sector, then a child sector in that and extend it downwards. &lt;br /&gt;
&lt;br /&gt;
2. Make both the top and bottom of the TROR surface masked or transparent, and give it the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Give the floor of the top sector a lotag of 1 for water. Give the floor of the bottom sector a lotag of 2 for underwater.&lt;br /&gt;
&lt;br /&gt;
4. Place an SE 7 with the same hitag in the same position in both the top and bottom sector.&lt;br /&gt;
&lt;br /&gt;
5. This is the one that people normally forget. Set the TROR surface in both the top and bottom layer to BLOCKING otherwise it will not work as intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See, it&#039;s not too bad, just remember the lotags and the blocking. Note if you split up the water sector or add more sectors, make sure those sectors are in both the top and bottom layers, and have new SE 7s, just like normal water. In the future TROR water will be more automatic in that you won&#039;t need the SE 7, however this is incomplete as of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something that might make life a bit easier is that if you extend the floor of the below-water sector downwards, you can then edit the floor of the new bottom layer and make as complex as you want without having to worry about placing lots of SE 7s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
Also note that currently the software renderer doesn&#039;t allow the player to see through more than 8 layers of TROR (it draws the texture on the surface instead). This normally isn&#039;t a problem in small sectors of TROR because the player typically won&#039;t be able to look up high enough to see the 8 layers due to vertical distortion. The limit could potentially be increased if someone desperately needed it (talk to the devs for that.)&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11537</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11537"/>
		<updated>2013-03-16T02:56:27Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TROR water example===&lt;br /&gt;
&lt;br /&gt;
This is how you create transparent water using TROR. It works just like regular water, but there are a few things you need to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create a main sector, then a child sector in that and extend it downwards. &lt;br /&gt;
&lt;br /&gt;
2. Make both the top and bottom of the TROR surface masked or transparent, and give it the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Give the floor of the top sector a lotag of 1 for water. Give the floor of the bottom sector a lotag of 2 for underwater.&lt;br /&gt;
&lt;br /&gt;
4. Place an SE 7 with the same hitag in the same position in both the top and bottom sector.&lt;br /&gt;
&lt;br /&gt;
5. This is the one that people normally forget. Set the TROR surface in both the top and bottom layer to BLOCKING otherwise it will not work as intended.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See, it&#039;s not too bad, just remember the lotags and the blocking. Note if you split up the water sector or add more sectors, make sure those sectors are in both the top and bottom layers, and have new SE 7s, just like normal water. In the future TROR water will be more automatic in that you won&#039;t need the SE 7, however this is incomplete as of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Something that might make life a bit easier is that if you extend the floor of the below-water sector downwards, you can then edit the floor of the new bottom layer and make as complex as you want without having to worry about placing lots of SE 7s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11536</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11536"/>
		<updated>2013-03-16T02:53:55Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TROR water example===&lt;br /&gt;
&lt;br /&gt;
This is how you create transparent water using TROR. It works just like regular water, but there are a few things you need to be aware of.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create a main sector, then a child sector in that and extend it downwards. &lt;br /&gt;
&lt;br /&gt;
2. Make both the top and bottom of the TROR surface masked or transparent, and give it the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Give the floor of the top sector a lotag of 1 for water. Give the floor of the bottom sector a lotag of 2 for underwater.&lt;br /&gt;
&lt;br /&gt;
4. Place an SE 7 with the same hitag in the same position in both the top and bottom sector.&lt;br /&gt;
&lt;br /&gt;
5. This is the one that people normally forget. Set the TROR surface in both the top and bottom layer to BLOCKING otherwise it will not work as intended.&lt;br /&gt;
&lt;br /&gt;
See, it&#039;s not too bad, just remember the lotags and the blocking. Note if you split up the water sector or add more sectors, make sure those sectors are in both the top and bottom layers, and have new SE 7s, just like normal water. In the future TROR water will be more automatic in that you won&#039;t need the SE 7, however this is incomplete as of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11535</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11535"/>
		<updated>2013-03-16T02:53:25Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TROR water example===&lt;br /&gt;
&lt;br /&gt;
This is how you create transparent water using TROR. It works just like regular water, but there are a few things you need to be aware of.&lt;br /&gt;
&lt;br /&gt;
1. Create a main sector, then a child sector in that and extend it downwards. &lt;br /&gt;
2. Make both the top and bottom of the TROR surface masked or transparent, and give it the water texture.&lt;br /&gt;
3. Give the floor of the top sector a lotag of 1 for water. Give the floor of the bottom sector a lotag of 2 for underwater.&lt;br /&gt;
4. Place an SE 7 with the same hitag in the same position in both the top and bottom sector.&lt;br /&gt;
5. This is the one that people normally forget. Set the TROR surface in both the top and bottom layer to BLOCKING otherwise it will not work as intended.&lt;br /&gt;
&lt;br /&gt;
See, it&#039;s not too bad, just remember the lotags and the blocking. Note if you split up the water sector or add more sectors, make sure those sectors are in both the top and bottom layers, and have new SE 7s, just like normal water. In the future TROR water will be more automatic in that you won&#039;t need the SE 7, however this is incomplete as of this writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11534</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11534"/>
		<updated>2013-03-16T02:44:38Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
==Tricks and Effects with TROR==&lt;br /&gt;
&lt;br /&gt;
===SE 13 destructible floor/ceiling===&lt;br /&gt;
&lt;br /&gt;
If you have a TROR extension in the floor, you can place an SE 13 on it (facing downwards in 2D mode, and it will become a solid floor in-game (blocked and masked). When the hitag is activated, the TROR surface will become invisible as though a hole has just formed in the floor. You can place the SE 13 on the surface, or above, in which case the floor will initially have the height of the SE 13 just like with the original effect. You can also place it near the ceiling to make the SE 13 control the ceiling instead, or have one near the ceiling and one near the floor to control both.&lt;br /&gt;
&lt;br /&gt;
When placed in a TROR extension with many sectors, it will not just control the sector, but rather the entire extension. So you can add sectors and give them different textures and don&#039;t have to worry about adding extra SE 13&#039;s. If you want to have TROR surfaces have different heights with different SE 13 sprites, they need to be different extensions; i.e they need to have a sector in both the top and bottom layer, and be extended individually.&lt;br /&gt;
&lt;br /&gt;
The SE 13 also works with TROR slopes, allowing you to create relatively complex destructible objects compared to sprites. But remember that TROR is pretty wall hungry, so keep an eye on complexity.&lt;br /&gt;
Note that regardless of whether a TROR surface is set to masked or transparent in mapster, it will always become invisible after SE 13 activation.&lt;br /&gt;
&lt;br /&gt;
===TROR water height manipulation===&lt;br /&gt;
&lt;br /&gt;
TROR water can also be made to move up and down using the SE 31/32, much like the raising/lowering submergible water in e1l4 Toxic Dump. The effect is the same, however it&#039;s easier with TROR, because you only have to set up the effect on one side, either in the top layer or bottom layer, because this effect is set up so that if the ceiling of the bottom sector is moved, it moves the floor of the top sector as well, and vice versa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it. It has also been observed that some TROR constructions work perfectly on some computers, however are incredibly glitchy on others, so if you do decide to use this renderer, and TROR works for you, make sure you have two or three other people check it on their setups before you release your map. There are no plans to add complete polymost TROR compatibility as polymost will be obsolete once polymer is finished and optimised. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11533</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=11533"/>
		<updated>2013-03-16T02:22:25Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* List of TROR maps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it. This is not a complete list, as other maps make minor or simple use of the effect and hence are not listed here.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
4. Brooklyn Bridge is another city themed map which also makes extensive and interesting use of TROR, such as an alien ship that flies over water, shooting rockets, and in vents. [http://www.scent-88.com/reviews/B/brooklyn/brooklyn.php Download here]&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11507</id>
		<title>SE49</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11507"/>
		<updated>2013-01-31T23:19:21Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SE49&#039;&#039;&#039; or &#039;&#039;&#039;Point Lights&#039;&#039;&#039; are used to cast a round light when the [[Polymer]] Renderer is used, it will not cast a light in other rendering modes and is unavailable in other ports. Unlike [[SE50]], this type of light does not cast shadows.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
Mappers can create an SE49 by placing a [[SECTOREFFECTOR]] into their map and editing it&#039;s properties in 2D Mode.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SE49 Properties&lt;br /&gt;
! Property&lt;br /&gt;
! Value&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! Lotag&lt;br /&gt;
| 49 || Use &#039;&#039;&#039;ALT+T&#039;&#039;&#039; in 2D Mode to set the Lotag value. Set it to 49.&lt;br /&gt;
|-&lt;br /&gt;
! Hitag&lt;br /&gt;
| Range || Use &#039;&#039;&#039;ALT+H&#039;&#039;&#039; in 2D Mode to set the Hitag value, this will determine the range or &amp;quot;spherical radius&amp;quot; of the light (the size of the area it will light up). unlike many other SE&#039;s, the Hitag does not have to be unique.&lt;br /&gt;
|-&lt;br /&gt;
! Xvel&lt;br /&gt;
| Red || Use &#039;&#039;&#039;F8&#039;&#039;&#039; in 2D Mode to edit the sprite&#039;s properties.&lt;br /&gt;
The &#039;&#039;&#039;cursor&#039;&#039;&#039; and &#039;&#039;&#039;Return&#039;&#039;&#039; keys are used to navigate and select which property to edit in this mode, you can use the &#039;&#039;&#039;Esc&#039;&#039;&#039; key to exit this window.&lt;br /&gt;
XVEL, YVEL and ZVEL represent the RGB (Red, Green and Blue) color levels for the light respectively.&lt;br /&gt;
&lt;br /&gt;
Set the XVEL to the desired amount of Red, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Yvel&lt;br /&gt;
| Green || The same as above except this sets the level of Green, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Zvel&lt;br /&gt;
| Blue || The same as above except this sets the level of Blue, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Transparency&lt;br /&gt;
| Priority || This controls the priority of the light and can be set using the &#039;&#039;&#039;T&#039;&#039;&#039; key in 3D Mode, a solid sprite is the highest priority, a 33% transparent light is a lower priority and a 66% transparent light is an even lower priority. Changing the transparency will not affect how the light appears. Lights with a low priority tend to do these first in low framerates: stop casting shadows (SE 50), stop casting light in a sector if there are too many lights in the sector (see notes).&lt;br /&gt;
|-&lt;br /&gt;
! Center Bit&lt;br /&gt;
| Negative || If you press &#039;&#039;&#039;C&#039;&#039;&#039; in 3D Mode, the light will remove light instead of casting it, can be used to make very dark spots in otherwise well lit areas, and other interesting light effects.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You should also use &#039;&#039;&#039;PGUP&#039;&#039;&#039; and &#039;&#039;&#039;PGDN&#039;&#039;&#039; in 3D Mode to set the height of the light, leaving it too close to a floor will prevent the light from being cast very far.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* You can preview lights in Mapster32 by pressing &#039;&#039;&#039;&#039;+X&#039;&#039;&#039; in 3D Mode, although you may have to use the [[console]] to enable Polymer with the command &#039;&#039;setrendermode 4&#039;&#039;.&lt;br /&gt;
* If a lot of lights are visible at the same time, performance begins to decrease quickly, keep an eye on the framerate counter. Aim for segmented maps that consist of smaller areas separated by ceiling doors, corridors or teleporters rather than huge outdoor areas.&lt;br /&gt;
* Also, if too many lights are visible in one sector, some will disappear. This can usually be fixed by splitting up the sector.&lt;br /&gt;
* Lights will often move with sectors, but it may cause flickering with certain effects. Sectors that the lights will move horizontally with (when the floor relativity bit is set) include: two way trains, subway vehicles, SE 1&amp;amp;0 rotating sectors (lights can be made to move in a circular path, or can be made to spin which great for spotlights). Lights will also move up and down with elevators. &lt;br /&gt;
* There is currently no way to turn the lights off in the game, you could use a door to cover them up or use a mod such as [http://fissile.duke4.net/ DukePlus] or [http://forums.duke4.net/topic/6269-polymer-light-control/ CONtrol].&lt;br /&gt;
* It might be useful to use the Edit Colors mode in Paint to help you get a grasp on how the RGB values work. It&#039;s also useful for finding values of a specific colour you have in mind.&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11506</id>
		<title>SE49</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11506"/>
		<updated>2013-01-31T23:16:40Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SE49&#039;&#039;&#039; or &#039;&#039;&#039;Point Lights&#039;&#039;&#039; are used to cast a round light when the [[Polymer]] Renderer is used, it will not cast a light in other rendering modes and is unavailable in other ports. Unlike [[SE50]], this type of light does not cast shadows.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
Mappers can create an SE49 by placing a [[SECTOREFFECTOR]] into their map and editing it&#039;s properties in 2D Mode.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SE49 Properties&lt;br /&gt;
! Property&lt;br /&gt;
! Value&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! Lotag&lt;br /&gt;
| 49 || Use &#039;&#039;&#039;ALT+T&#039;&#039;&#039; in 2D Mode to set the Lotag value. Set it to 49.&lt;br /&gt;
|-&lt;br /&gt;
! Hitag&lt;br /&gt;
| Range || Use &#039;&#039;&#039;ALT+H&#039;&#039;&#039; in 2D Mode to set the Hitag value, this will determine the range or &amp;quot;spherical radius&amp;quot; of the light (the size of the area it will light up). unlike many other SE&#039;s, the Hitag does not have to be unique.&lt;br /&gt;
|-&lt;br /&gt;
! Xvel&lt;br /&gt;
| Red || Use &#039;&#039;&#039;F8&#039;&#039;&#039; in 2D Mode to edit the sprite&#039;s properties.&lt;br /&gt;
The &#039;&#039;&#039;cursor&#039;&#039;&#039; and &#039;&#039;&#039;Return&#039;&#039;&#039; keys are used to navigate and select which property to edit in this mode, you can use the &#039;&#039;&#039;Esc&#039;&#039;&#039; key to exit this window.&lt;br /&gt;
XVEL, YVEL and ZVEL represent the RGB (Red, Green and Blue) color levels for the light respectively.&lt;br /&gt;
&lt;br /&gt;
Set the XVEL to the desired amount of Red, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Yvel&lt;br /&gt;
| Green || The same as above except this sets the level of Green, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Zvel&lt;br /&gt;
| Blue || The same as above except this sets the level of Blue, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Transparency&lt;br /&gt;
| Priority || This controls the priority of the light and can be set using the &#039;&#039;&#039;T&#039;&#039;&#039; key in 3D Mode, a solid sprite is the highest priority, a 33% transparent light is a lower priority and a 66% transparent light is an even lower priority. Changing the transparency will not affect how the light appears. Lights with a low priority tend to do these first in low framerates: stop casting shadows (SE 50), stop casting light in a sector if there are too many lights in the sector (see notes).&lt;br /&gt;
|-&lt;br /&gt;
! Center Bit&lt;br /&gt;
| Negative || If you press &#039;&#039;&#039;C&#039;&#039;&#039; in 3D Mode, the light will remove light instead of casting it, can be used to make very dark spots in otherwise well lit areas, and other interesting light effects.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You should also use &#039;&#039;&#039;PGUP&#039;&#039;&#039; and &#039;&#039;&#039;PGDN&#039;&#039;&#039; in 3D Mode to set the height of the light, leaving it too close to a floor will prevent the light from being cast very far.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* You can preview lights in Mapster32 by pressing &#039;&#039;&#039;&#039;+X&#039;&#039;&#039; in 3D Mode, although you may have to use the [[console]] to enable Polymer with the command &#039;&#039;setrendermode 4&#039;&#039;.&lt;br /&gt;
* If a lot of lights are visible at the same time, performance begins to decrease quickly, keep an eye on the framerate counter.&lt;br /&gt;
* Also, if too many lights are visible in one sector, some will disappear. This can usually be fixed by splitting up the sector.&lt;br /&gt;
* Lights will often move with sectors, but it may cause flickering with certain effects. Sectors that the lights will move horizontally with (when the floor relativity bit is set) include: two way trains, subway vehicles, SE 1&amp;amp;0 rotating sectors (lights can be made to move in a circular path, or can be made to spin which great for spotlights). Lights will also move up and down with elevators. &lt;br /&gt;
* There is currently no way to turn the lights off in the game, you could use a door to cover them up or use a mod such as [http://fissile.duke4.net/ DukePlus] or [http://forums.duke4.net/topic/6269-polymer-light-control/ CONtrol].&lt;br /&gt;
* It might be useful to use the Edit Colors mode in Paint to help you get a grasp on how the RGB values work. It&#039;s also useful for finding values of a specific colour you have in mind.&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11505</id>
		<title>SE49</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11505"/>
		<updated>2013-01-31T23:15:59Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SE49&#039;&#039;&#039; or &#039;&#039;&#039;Point Lights&#039;&#039;&#039; are used to cast a round light when the [[Polymer]] Renderer is used, it will not cast a light in other rendering modes and is unavailable in other ports. Unlike [[SE50]], this type of light does not cast shadows.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
Mappers can create an SE49 by placing a [[SECTOREFFECTOR]] into their map and editing it&#039;s properties in 2D Mode.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SE49 Properties&lt;br /&gt;
! Property&lt;br /&gt;
! Value&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! Lotag&lt;br /&gt;
| 49 || Use &#039;&#039;&#039;ALT+T&#039;&#039;&#039; in 2D Mode to set the Lotag value. Set it to 49.&lt;br /&gt;
|-&lt;br /&gt;
! Hitag&lt;br /&gt;
| Range || Use &#039;&#039;&#039;ALT+H&#039;&#039;&#039; in 2D Mode to set the Hitag value, this will determine the range or &amp;quot;spherical radius&amp;quot; of the light (the size of the area it will light up). unlike many other SE&#039;s, the Hitag does not have to be unique.&lt;br /&gt;
|-&lt;br /&gt;
! Xvel&lt;br /&gt;
| Red || Use &#039;&#039;&#039;F8&#039;&#039;&#039; in 2D Mode to edit the sprite&#039;s properties.&lt;br /&gt;
The &#039;&#039;&#039;cursor&#039;&#039;&#039; and &#039;&#039;&#039;Return&#039;&#039;&#039; keys are used to navigate and select which property to edit in this mode, you can use the &#039;&#039;&#039;Esc&#039;&#039;&#039; key to exit this window.&lt;br /&gt;
XVEL, YVEL and ZVEL represent the RGB (Red, Green and Blue) color levels for the light respectively.&lt;br /&gt;
&lt;br /&gt;
Set the XVEL to the desired amount of Red, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Yvel&lt;br /&gt;
| Green || The same as above except this sets the level of Green, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Zvel&lt;br /&gt;
| Blue || The same as above except this sets the level of Blue, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Transparency&lt;br /&gt;
| Priority || This controls the priority of the light and can be set using the &#039;&#039;&#039;T&#039;&#039;&#039; key in 3D Mode, a solid sprite is the highest priority, a 33% transparent light is a lower priority and a 66% transparent light is an even lower priority. Changing the transparency will not affect how the light appears. Lights with a low priority tend to do these first in low framerates: stop casting shadows, stop casting light in a sector if there are too many lights in the sector (see notes).&lt;br /&gt;
|-&lt;br /&gt;
! Center Bit&lt;br /&gt;
| Negative || If you press &#039;&#039;&#039;C&#039;&#039;&#039; in 3D Mode, the light will remove light instead of casting it, can be used to make very dark spots in otherwise well lit areas, and other interesting light effects.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You should also use &#039;&#039;&#039;PGUP&#039;&#039;&#039; and &#039;&#039;&#039;PGDN&#039;&#039;&#039; in 3D Mode to set the height of the light, leaving it too close to a floor will prevent the light from being cast very far.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* You can preview lights in Mapster32 by pressing &#039;&#039;&#039;&#039;+X&#039;&#039;&#039; in 3D Mode, although you may have to use the [[console]] to enable Polymer with the command &#039;&#039;setrendermode 4&#039;&#039;.&lt;br /&gt;
* If a lot of lights are visible at the same time, performance begins to decrease quickly, keep an eye on the framerate counter.&lt;br /&gt;
* Also, if too many lights are visible in one sector, some will disappear. This can usually be fixed by splitting up the sector.&lt;br /&gt;
* Lights will often move with sectors, but it may cause flickering with certain effects. Sectors that the lights will move horizontally with (when the floor relativity bit is set) include: two way trains, subway vehicles, SE 1&amp;amp;0 rotating sectors (lights can be made to move in a circular path, or can be made to spin which great for spotlights). Lights will also move up and down with elevators. &lt;br /&gt;
* There is currently no way to turn the lights off in the game, you could use a door to cover them up or use a mod such as [http://fissile.duke4.net/ DukePlus] or [http://forums.duke4.net/topic/6269-polymer-light-control/ CONtrol].&lt;br /&gt;
* It might be useful to use the Edit Colors mode in Paint to help you get a grasp on how the RGB values work. It&#039;s also useful for finding values of a specific colour you have in mind.&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11504</id>
		<title>SE49</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=SE49&amp;diff=11504"/>
		<updated>2013-01-31T23:06:20Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SE49&#039;&#039;&#039; or &#039;&#039;&#039;Point Lights&#039;&#039;&#039; are used to cast a round light when the [[Polymer]] Renderer is used, it will not cast a light in other rendering modes and is unavailable in other ports. Unlike [[SE50]], this type of light does not cast shadows.&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
Mappers can create an SE49 by placing a [[SECTOREFFECTOR]] into their map and editing it&#039;s properties in 2D Mode.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ SE49 Properties&lt;br /&gt;
! Property&lt;br /&gt;
! Value&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! Lotag&lt;br /&gt;
| 49 || Use &#039;&#039;&#039;ALT+T&#039;&#039;&#039; in 2D Mode to set the Lotag value. Set it to 49.&lt;br /&gt;
|-&lt;br /&gt;
! Hitag&lt;br /&gt;
| Range || Use &#039;&#039;&#039;ALT+H&#039;&#039;&#039; in 2D Mode to set the Hitag value, this will determine the range of the light (the size of the area it will light up). unlike many other SE&#039;s, the Hitag does not have to be unique.&lt;br /&gt;
|-&lt;br /&gt;
! Xvel&lt;br /&gt;
| Red || Use &#039;&#039;&#039;F8&#039;&#039;&#039; in 2D Mode to edit the sprite&#039;s properties.&lt;br /&gt;
The &#039;&#039;&#039;cursor&#039;&#039;&#039; and &#039;&#039;&#039;Return&#039;&#039;&#039; keys are used to navigate and select which property to edit in this mode, you can use the &#039;&#039;&#039;Esc&#039;&#039;&#039; key to exit this window.&lt;br /&gt;
XVEL, YVEL and ZVEL represent the RGB (Red, Green and Blue) color levels for the light respectively.&lt;br /&gt;
&lt;br /&gt;
Set the XVEL to the desired amount of Red, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Yvel&lt;br /&gt;
| Green || The same as above except this sets the level of Green, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Zvel&lt;br /&gt;
| Blue || The same as above except this sets the level of Blue, the value must not be less than 0 and can be no more than 255.&lt;br /&gt;
|-&lt;br /&gt;
! Transparency&lt;br /&gt;
| Priority || This controls the priority of the light and can be set using the &#039;&#039;&#039;T&#039;&#039;&#039; key in 3D Mode, a solid sprite is the highest priority, a 33% transparent light is a lower priority and a 66% transparent light is an even lower priority. Changing the transparency will not affect how the light appears.&lt;br /&gt;
|-&lt;br /&gt;
! Center Bit&lt;br /&gt;
| Negative || If you press &#039;&#039;&#039;C&#039;&#039;&#039; in 3D Mode, the light will remove light instead of casting it, can be used to make very dark spots in otherwise well lit areas.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You should also use &#039;&#039;&#039;PGUP&#039;&#039;&#039; and &#039;&#039;&#039;PGDN&#039;&#039;&#039; in 3D Mode to set the height of the light, leaving it too close to a floor will prevent the light from being cast very far.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* You can preview lights in Mapster32 by pressing &#039;&#039;&#039;&#039;+X&#039;&#039;&#039; in 3D Mode, although you may have to use the [[console]] to enable Polymer with the command &#039;&#039;setrendermode 4&#039;&#039;.&lt;br /&gt;
* If a lot of lights are visible at the same time, performance begins to decrease quickly, keep an eye on the framerate counter.&lt;br /&gt;
* Also, if too many lights are visible, some will disappear.&lt;br /&gt;
* Lights will often move with sectors, but it may cause flickering with certain effects.&lt;br /&gt;
* There is currently no way to turn the lights off in the game, you could use a door to cover them up or use a mod such as [http://fissile.duke4.net/ DukePlus] or [http://forums.duke4.net/topic/6269-polymer-light-control/ CONtrol].&lt;br /&gt;
* It might be useful to use the Edit Colors mode in Paint to help you get a grasp on how the RGB values work.&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=Sector_Effector_Reference_Guide&amp;diff=11432</id>
		<title>Sector Effector Reference Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=Sector_Effector_Reference_Guide&amp;diff=11432"/>
		<updated>2013-01-02T00:38:15Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Sector Effector Lotag Listing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
==Sector Effector Lotag Listing==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#c0c0c0&amp;quot; | &#039;&#039;&#039;Tag number&#039;&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#c0c0c0&amp;quot; | &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! bgcolor=&amp;quot;#c0c0c0&amp;quot; | &#039;&#039;&#039;Associated sector tag&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#c0c0c0&amp;quot; | &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
|Rotating Sector&lt;br /&gt;
|30 (optional)&lt;br /&gt;
|See [[:Category:Editing Moving Sectors#Rotating Sectors (Gears)]]. The hitag of this sectoreffector must be something other than zero because a sectoreffector with both tags equal to zero causes an error.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
| Pivot Sprite for SE 0&lt;br /&gt;
| 30 (optional)&lt;br /&gt;
|See [[:Category:Editing Moving Sectors#Rotating Sectors (Gears)]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
|Earthquake&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing General Sector Effects#Earthquake]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
|Random Lights After Shot Out&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Lighting Effects#Making Lights Blink When Shot]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
|Random Lights&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Lighting Effects#Making Lights Blink]].&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|&#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|(undocumented)&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|When used with a series of sequentially numbered [[Level_editing#Locator|locator]]s, this causes the sector to move rapidly to the locator nearest the player. It also spawns some fireballs in a way they won&#039;t hit the player. It was intended to be  a boss ship in Lameduke but it got eventually scratched. The effect is very buggy. There are graphics glitches, and the moving sector eventually seems to just go around in circles.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
|Subway&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Moving Sectors#One Car Subways]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
|Teleporter&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Teleporters]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
| Up Open Door Lights&lt;br /&gt;
|20, 21, 22, 23, 25 or 26&lt;br /&gt;
|See [[:Category:Editing Lighting_Effects#Open Door &amp;amp; Room Lights Up]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;9&#039;&#039;&#039; &lt;br /&gt;
|Down Open Door Lights&lt;br /&gt;
|20, 21, 22, 23, 25 or 26&lt;br /&gt;
|See [[:Category:Editing Lighting_Effects#Open Door &amp;amp; Room Lights Up]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;10&#039;&#039;&#039;&lt;br /&gt;
|Door Auto Close&lt;br /&gt;
|20, 21, 22, 23, 25 or 26&lt;br /&gt;
|Hitag = delay&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;11&#039;&#039;&#039;&lt;br /&gt;
|Rotate Sector Door&lt;br /&gt;
|23&lt;br /&gt;
|Hinge for the swinging door. See [[Swinging Doors]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;12&#039;&#039;&#039;&lt;br /&gt;
| Light Switch&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Lighting Effects#Light Switches]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;13&#039;&#039;&#039; &lt;br /&gt;
| C-9 Explosive&lt;br /&gt;
| N/A&lt;br /&gt;
| See [[:Category:Editing C-9 Effects#Cracked Walls]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;14&#039;&#039;&#039;&lt;br /&gt;
|Subway Car&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Moving Sectors#Making Multi-Car Subways]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;15&#039;&#039;&#039;&lt;br /&gt;
|Slide Door&lt;br /&gt;
|25&lt;br /&gt;
|See [[Sliding Doors]].&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|&#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|Rotate Reactor Sector&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|All this does is rotate the sector a small amount and raise the ceiling by about a quarter of a step at runtime. It is an incomplete effect that is not used in the game.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;17&#039;&#039;&#039;&lt;br /&gt;
|Elevator Transport&lt;br /&gt;
|15&lt;br /&gt;
|See [[:Category:Editing Sectors That Rise and Fall#Elevator Transports]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;18&#039;&#039;&#039;&lt;br /&gt;
|Incremental Sector Rise/Fall&lt;br /&gt;
|N/A&lt;br /&gt;
|Causes the sector to be raised or lowered by one step every time it is activated. Only works in version 1.4 or above. See [[:Category:Editing Sectors That Rise and Fall]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;19&#039;&#039;&#039;&lt;br /&gt;
|Explosion Lowers Ceiling&lt;br /&gt;
|N/A&lt;br /&gt;
|If an explosion occurs in a sector containing this SE, the ceiling drops to the floor. This effect is not used in the game but is fully functional. The rate the ceiling falls can be controlled with a [[Level_editing#GPSPEED|GPSPEED]]. [[See [[:Category:Editing Sectors That Rise and Fall#Making the Ceiling Fall Upon an Explosion]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;20&#039;&#039;&#039;&lt;br /&gt;
|Stretch (also known as &amp;quot;Bridge&amp;quot;)&lt;br /&gt;
|27&lt;br /&gt;
||See [[:Category:Editing General Sector Effects#Stretching Sectors]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;21&#039;&#039;&#039;&lt;br /&gt;
|Drop Floor&lt;br /&gt;
|28&lt;br /&gt;
|See [[:Category:Editing Sectors That Rise and Fall]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;22&#039;&#039;&#039;&lt;br /&gt;
|Teeth Door Prong&lt;br /&gt;
|29&lt;br /&gt;
|See [[Teeth Doors]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;23&#039;&#039;&#039;&lt;br /&gt;
|One-Way Teleporter Destination&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Teleporters#One Way Teleporters (Version 1.4 or 1.5 Required)]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;24&#039;&#039;&#039;&lt;br /&gt;
|Conveyor Belt or Water Current&lt;br /&gt;
|N/A&lt;br /&gt;
||See [[:Category:Editing General Sector Effects#Conveyor Belts &amp;amp; Water Current]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;25&#039;&#039;&#039;&lt;br /&gt;
|Engine&lt;br /&gt;
|N/A&lt;br /&gt;
|Ceiling continually lowers to the floor and raises again. Its speed can be regulated with a [[Level_editing#GPSPEED|GPSPEED]].&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|&#039;&#039;&#039;26&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|(undocumented)&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|A rudimentary and incomplete implementation of a step escalator. The effect repeatedly raises the sector by two clicks and moves it one grid size 3 square in the direction of the SE&#039;s angle, and then snaps back instantly. It carries sprites along with it. The effect is incomplete, so there are graphics glitches like stretching textures, and it can kill Duke by carrying him into non-player space. Use with caution.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;27&#039;&#039;&#039;&lt;br /&gt;
|Demo Camera&lt;br /&gt;
|N/A&lt;br /&gt;
|Used to record demos.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;28&#039;&#039;&#039;&lt;br /&gt;
| Lightning&lt;br /&gt;
|N/A&lt;br /&gt;
|Version 1.4 or above&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;29&#039;&#039;&#039;&lt;br /&gt;
|Float&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Water#Making Waves]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;30&#039;&#039;&#039;&lt;br /&gt;
|Two-Way Train&lt;br /&gt;
|31&lt;br /&gt;
|See [[:Category:Editing Moving Sectors#Two-Way Trains]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;31&#039;&#039;&#039;&lt;br /&gt;
|Floor Rise/Fall&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Sectors That Rise and Fall]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;32&#039;&#039;&#039;&lt;br /&gt;
|Ceiling Rise/Fall&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Sectors That Rise and Fall]].&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;33&#039;&#039;&#039;&lt;br /&gt;
|Earthquake Debris&lt;br /&gt;
|N/A&lt;br /&gt;
|Use in conjunction with an earthquake (SE 2) to spawn bits of scrap. See [[:Category:Editing General Sector Effects#Earthquake]]. It is also used in the exploding ceiling effect (see [[:Category:Editing C-9 Effects#Making the Ceiling Blow Up (And Enemies Fall From the Sky!)]]).&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|&#039;&#039;&#039;34&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|(undocumented)&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|A conveyor belt effect very similar to SE 24. It moves at about half the speed, and the floor texture moves at right angles to the direction of motion.&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|&#039;&#039;&#039;35&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|(undocumented)&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#ffb099&amp;quot;|An unfinished implementation of a drill head. The floor is lowered at runtime, and then the ceiling lowers to the floor repeatedly. Silent, harmless explosions and bits of scrap are continually spawned in the sector. Can be combined with rotating sectors (SE 0,1) to simulate a drill, but is pretty much useless.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;36&#039;&#039;&#039;&lt;br /&gt;
|Projectile Shooter&lt;br /&gt;
|N/A&lt;br /&gt;
|See [[:Category:Editing Miscellaneous#Shooters]]&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|&#039;&#039;&#039;49&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|Point Light&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|Casts uniform light in all directions as name suggests. Does not cast shadows. HITAG = light distance (range: 0-65535)&lt;br /&gt;
XVEL/YVEL/ZVEL = RGB values (range: 0-255) (edit with F8 when SE highlighted in 2D mode.)&lt;br /&gt;
TRANSPARENCY = priority (solid sprite = high priority, 33% transparency = lower priority, 66% = lowest priority. This is required to avoid glitches resulting from projectile lights interacting with world lights.)&lt;br /&gt;
Centre bit (press c on SE in 3D mode): Inverts colours so it subtracts light to the scene instead of adding it. E.g use a pure white light to make the SE emit pure black.&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|&#039;&#039;&#039;50&#039;&#039;&#039;&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|Spotlight&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|N/A&lt;br /&gt;
|bgcolor=&amp;quot;#99ff99&amp;quot;|Casts light in one direction as name suggests. Casts shadows. HITAG = light distance (range: 0-65535)&lt;br /&gt;
XVEL/YVEL/ZVEL = RGB values (range: 0-255) (edit with F8 when SE highlighted in 2D mode.)&lt;br /&gt;
Angle of SE = direction light points in.&lt;br /&gt;
Shade = width of light (range: -127 to 127)&lt;br /&gt;
Extra = horizontal up/down angle. Light points roughly 45 degrees down by default. An extra of 100 points straight ahead. Positive values angle light up, negative values angle light downn.&lt;br /&gt;
Owner = picnum of sprite/texture to project.&lt;br /&gt;
TRANSPARENCY = priority (solid sprite = high priority, 33% transparency = lower priority, 66% = lowest priority. This is required to avoid glitches resulting from projectile lights interacting with world lights.)&lt;br /&gt;
1-Way (press 1 on SE to make 1-sided) = Does not project shadow maps. Spotlights without shadows are much better for performance, and useful for projecting textures.&lt;br /&gt;
Centre bit (press c on SE in 3D mode): Inverts colours so it subtracts light to the scene instead of adding it. E.g use a pure white light to make the SE emit pure black.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10722</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10722"/>
		<updated>2012-04-20T06:15:03Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* TROR Mapping Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10721</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10721"/>
		<updated>2012-04-20T06:14:43Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* TROR Mapping Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===List of TROR maps===&lt;br /&gt;
&lt;br /&gt;
This (hopefully up to date) list contains maps which make heavy use of the TROR feature in order to make a huge variety of constructions. They each contain a wealth of examples for you to look at to see what&#039;s possible and how it works/how to make it.&lt;br /&gt;
&lt;br /&gt;
1. The trueror.map in the Samples folder included with eduke32 contains a large amount of random examples of TROR.&lt;br /&gt;
&lt;br /&gt;
2. Retaliation is a small hi-tech map by Loke that was the first proper TROR map and makes some great use of the feature. [http://www.scent-88.com/reviews/R/retaliation/retaliation.php Download here]&lt;br /&gt;
&lt;br /&gt;
3. Parkade is a large city themed map containing large multiple story buildings, along with a large amount of unique, pioneering uses of the feature, made by myself (Micky C) and Paul B. It is the largest, most extensive TROR map and perhaps the best example of what TROR is capable of so far, if I do say so myself. [http://www.scent-88.com/reviews/P/parkade/parkade.php Download here]&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10720</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10720"/>
		<updated>2012-04-20T06:04:58Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Two Story Building Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage you should have a perfect two story house where you can look into and enter both stories. Cool stuff eh? ;)&lt;br /&gt;
&lt;br /&gt;
There&#039;s nothing stopping you from going on to build a third.. forth.. fifth.. floor in the same manner either.&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10719</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10719"/>
		<updated>2012-04-20T06:01:28Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* TROR Mapping Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10718</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10718"/>
		<updated>2012-04-20T06:01:12Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Two Story Building Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. If you&#039;re learning TROR for the first time, it is very helpful at this point to go into 3D mode and press &#039;&#039;&#039;[i]&#039;&#039;&#039; to reveal the boundaries between layers so that you can understand what you&#039;ve done.&lt;br /&gt;
&lt;br /&gt;
7. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10717</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10717"/>
		<updated>2012-04-20T05:58:51Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* TROR Mapping Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Two Story Building Example===&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure that a big reason that people want to use TROR is to build multiple story buildings, and this is how you do it.&lt;br /&gt;
&lt;br /&gt;
1. Design the first floor of your building, both inside and out. This is going to be the first layer, which means the ceiling of every sector, especially the outdoor sectors should not be any higher than the roof of the first floor. Pretend that the second floor doesn&#039;t even exist.&lt;br /&gt;
&lt;br /&gt;
2. Make your windows, doors, and anything you want.&lt;br /&gt;
&lt;br /&gt;
Highlight with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039; all of the &#039;&#039;outdoor&#039;&#039; sectors (the outdoor sectors should all have the same ceiling height, and should not be parallaxed). Knowing your advanced highlighting will come in useful here to select all the sectors.&lt;br /&gt;
&lt;br /&gt;
3. Extend the highlighted area up, and make the top layer the active editing layer.&lt;br /&gt;
&lt;br /&gt;
4. You should notice that the outline of your house has become completely white, and the area inside the house is empty. This is because this area is the second floor of your house.&lt;br /&gt;
&lt;br /&gt;
5. Make a sector inside the house outline, this will be the room on the second floor of your house. Draw small sectors between that room and the house outline to create second floor windows. Alternatively you could just press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; inside the house sector to make it a regular child sector, and if you go into 3D mode, you&#039;ll see your house has a roof you can stand on top of.&lt;br /&gt;
&lt;br /&gt;
6. You can connect the ground floor to the second floor the same way you&#039;d connect two sector-over-sector sectors; by having a staircase or lift that connects to a different area on the top floor than it does on the bottom (because a lift for example cannot directly cross TROR layers, therefore it must be connected to sectors which do not overlap; i.e have the entrance on one side and the exit on the other.)&lt;br /&gt;
Or you can connect the ground floor and second floor via TROR and have some sprite stairs or something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10681</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10681"/>
		<updated>2012-04-15T04:04:44Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* 2D mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended, see below&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;[Right Shift]&#039;&#039;&#039;+&#039;&#039;&#039;[Left Ctrl]&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10680</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10680"/>
		<updated>2012-04-15T04:03:30Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* 2D mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; make sandwich [&#039;&#039;if extending a sector in a direction that has already been extended&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[PGUP]&#039;&#039;&#039;/&#039;&#039;&#039;[PGDN]&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Ctrl-tab]&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[HOME]&#039;&#039;&#039; and &#039;&#039;&#039;[END]&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10679</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10679"/>
		<updated>2012-04-15T04:00:44Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Invisible surfaces viewing mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[&#039;-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10678</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10678"/>
		<updated>2012-04-15T04:00:10Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Polymer renderer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass. This means that it doesn&#039;t require any additional computer power to draw TROR, hence TROR will not affect the framerate in polymer.&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10622</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10622"/>
		<updated>2012-04-06T03:54:34Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Random Trivia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector. If you want different TROR sectors with different slopes, you must use completely different extensions for that, as opposed to breaking up a single extension.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10621</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10621"/>
		<updated>2012-04-06T00:58:20Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Advanced Highlighting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10620</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10620"/>
		<updated>2012-04-06T00:57:56Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
The information on the advanced features is outlined below:&lt;br /&gt;
&lt;br /&gt;
You can highlight a second, third, and multiple sectors by holding down &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; as you drag the selection box over them. This way you can highlight sectors in different parts of the map. Likewise, use the &#039;&#039;&#039;[;]&#039;&#039;&#039; key to deselect sectors. A small plus or minus will appear next to the cursor depending on which button you&#039;re holding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select individual sectors with the mouse by moving the cursor inside the sector you want, holding &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;, and holding &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; as you release &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039;. The sector is now highlighted. This method of selection also works with &#039;&#039;&#039;[&#039;]&#039;&#039;&#039; and &#039;&#039;&#039;[;]&#039;&#039;&#039; to select/deselect additional sectors by mouse. Simply hold &#039;&#039;&#039;[RIGHT ALT]&#039;&#039;&#039; and the appropriate button depending on what you want to do, then hold &#039;&#039;&#039;[RIGHT CTRL]&#039;&#039;&#039; while releasing the other buttons. This becomes very quick and easy to do after doing it a few times.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10619</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10619"/>
		<updated>2012-04-06T00:55:01Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* TROR related keys */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Highlighting===&lt;br /&gt;
Not really specific to TROR, but having greater control over which or how many sectors you can highlight makes doing extensions in TROR much easier. Make sure you&#039;re familiar with [http://wiki.eduke32.com/wiki/Level_editing#Copying_and_Pasting_Sectors advanced sector highlighting].&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10618</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10618"/>
		<updated>2012-04-06T00:44:42Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sandwiching and Sector Punching===&lt;br /&gt;
It&#039;s possible and easy to create a new TROR layer between two TROR layers. All you have to do is highlight one of them, and extend it as you would normally, and it automatically adds a new layer in the middle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It&#039;s also possible to easily create an island sector in the middle of a TROR sector. This is called &#039;&#039;sector punching&#039;&#039;, and mainly involves stamping a child sector into the sector below or above. Follow the example below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Extend a sector downwards.&lt;br /&gt;
&lt;br /&gt;
2. Create a child sector in the original sector.&lt;br /&gt;
&lt;br /&gt;
3. Select the vertices of the child sector with &#039;&#039;&#039;[Right-Shift]&#039;&#039;&#039; or &#039;&#039;&#039;[R-Ctrl + R-Shift]&#039;&#039;&#039; and press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039; as though you&#039;re extending a sector.&lt;br /&gt;
&lt;br /&gt;
4. It will prompt you whether to punch up or down, in this case, choose down and hit &#039;&#039;&#039;[Enter]&#039;&#039;&#039;. A sector identical in size, shape and position should now be in the bottom layer.&lt;br /&gt;
&lt;br /&gt;
5. Point the mouse cursor at the child sector in the top layer and press &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039;. It will prompt you whether you want to break the connection, and unless you press [Ctrl-U] accidentally, you usually do.&lt;br /&gt;
&lt;br /&gt;
6. The child sector should now be a floating sector island. Have fun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;[Ctrl-U]&#039;&#039;&#039; only breaks the connection of a single sector if that sector has been punched. Otherwise it&#039;ll break the connection of the entire bunch, which is usually bad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10617</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10617"/>
		<updated>2012-04-06T00:31:57Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Random Trivia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10616</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10616"/>
		<updated>2012-04-06T00:30:48Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Random Trivia==&lt;br /&gt;
Extended sectors can be sloped, but the bunch has to be 1:1 in that case. I.e you can&#039;t have any child sectors within a sloped TROR sector.&lt;br /&gt;
&lt;br /&gt;
Maps containing one or more TROR bunches are saved in a new map format (v9) since some fields had to be taken over: xrepeat is unavailable on TROR&#039;ed floors and ceilings, and on walls it&#039;s lotag if the ceiling, and extra if the floor of the wall&#039;s sector is extended. When in-game, these get transferred to internal arrays though.&lt;br /&gt;
&lt;br /&gt;
The system is supposed to be used for &#039;large-scale&#039; RoR, as a rule of thumb each affected sector should be at least a Duke high [that&#039;s too strict though].&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10615</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10615"/>
		<updated>2012-04-06T00:26:27Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Retro-fitting via Joining Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference.&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10614</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10614"/>
		<updated>2012-04-06T00:26:08Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
4. Press [Ctrl-J] and answer the simple questions.&lt;br /&gt;
&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10613</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10613"/>
		<updated>2012-04-06T00:25:34Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Examples==&lt;br /&gt;
&lt;br /&gt;
===Manhole Sewer Example===&lt;br /&gt;
&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Retro-fitting via Joining Example===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re absolutely clueless with the whole idea of extending, or you want to go back and retrofit some TROR into maps you&#039;ve done in the past, there&#039;s a very easy way of joining them to form TROR.&lt;br /&gt;
If you have two sectors that have the same shape, area, and external vertices have the same relative positions (essentially they&#039;re the same sector, at least as far as their edges are concerned), then all you have to do is highlight both sectors with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-J]&#039;&#039;&#039; to join, the same as joining two sectors normally. It will then prompt you with a few questions such as which sector you want to have on top of the other, which sector(s) you want to move (doesn&#039;t matter most of the time), and whether you&#039;d like to move all the connected non-TROR sectors as well (definitely yes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The good thing about this method is that besides the questions you have to answer, mapster does everything automatically, it even moves the heights for you. Now there&#039;ll be a quick example of this method below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Make a child sector in a larger sector and copy-paste it into void space.&lt;br /&gt;
2. Give the floor of the original child sector and the ceiling of the new sector the water texture.&lt;br /&gt;
3. Highlight both the child sector and new sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
4. Press [Ctrl-J] and answer the simple questions.&lt;br /&gt;
5. You should end up with a TROR water sector just as you would via the extension method. You can now alter the transparency of the water to your preference. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like a comic relief in bad Hollywood films who can&#039;t do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10612</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10612"/>
		<updated>2012-04-06T00:13:39Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Example==&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visual Glitches and Workarounds==&lt;br /&gt;
&lt;br /&gt;
===Software renderer===&lt;br /&gt;
Even though TROR sectors are already physically overlapping, the 8-bit software renderer still needs to render them separately, having to do an extra rendering pass for each additional TROR extension in view. Theoretically if you create a huge amount of extensions in the same area the framerate could potentially drop to unplayable levels, however this is far fetched and I wouldn&#039;t worry about it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The real problem with the software renderer is HOM glitching. In each rendering pass, there can only be one area along the x-interval drawn. For example, if you have an island on the ground, the area between you and the island will be fine, but everything on the other side of the island will show HOM. Try it out yourself to see what I mean. Technically this means that TROR extensions cannot contain islands (although it&#039;s been kind of hacked in to do exta-extra passes to overcome this problem, I wouldn&#039;t rely on them for perfect drawing.)&lt;br /&gt;
&lt;br /&gt;
However, this can be overcome by breaking up the sector surrounding the child sector, and extending each sector individually. This means there will be multiple drawing portals around the island instead of one big one, and none of the individual extensions would contain the island, hence it should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This HOM doesn&#039;t just occur due to islands, it can also happen when part of a normal sector is jutting out into a TROR sector, this can be thought of here as a mini-island even though it&#039;s connected to something. Don&#039;t call it a mini-island, I only called it that to explain why it would cause that glitching. This means that TROR extensions should be &#039;&#039;convex&#039;&#039;, i.e if you draw a straight line through a TROR portal so that it leaves the sector, and then comes back, it is not convex (and is most likely due to something jutting out.) However if you draw a line through it and this does not happen, as is the case for a circle, square etc.. then it is convex, and should draw fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymer renderer===&lt;br /&gt;
Masked floors and ceilings in polymer are always the last thing drawn on the screen. That means if you have a transparent surface such as a masked wall or sprite, it would cause everything all the TROR masked surfaces behind the transparent surface to stop being drawn and become invisible. There&#039;s no real work around for this, just try not to use masked walls or sprites with big transparent surfaces around TROR masked surfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other than that, polymer is by far the most stable renderer for TROR, and apart from what&#039;s written above, is 100% glitch free. Despite being slow sometimes, it is the renderer of choice for TROR. It works by drawing the entire scene, TROR and all in a single rendering pass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Polymost renderer===&lt;br /&gt;
The polymost renderer is bad, M&#039;kay? It&#039;s like that character who&#039;s a comic relief in bad Hollywood movies who can&#039;t seem to do anything right. Don&#039;t use it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10611</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10611"/>
		<updated>2012-04-05T23:41:04Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Properties and Terminology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great thing about stacks (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Example==&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10610</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10610"/>
		<updated>2012-04-05T23:39:44Z</updated>

		<summary type="html">&lt;p&gt;Micky C: /* Properties and Terminology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood, Redneck Rampage) are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other, and EDuke32 has a similar feature using Sector Effectors. The difference between game ROR and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building. For the more technically minded, TROR is part of the engine and map format themselves, instead of an effect bolted on in the game code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[Ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[Ctrl-Alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; without having any sectors highlighted to unlock the range again and be able to edit them normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Quote-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great things about stack (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press &#039;&#039;&#039;[Ctrl-S]&#039;&#039;&#039; there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that later.&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Example==&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10603</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10603"/>
		<updated>2012-04-05T09:23:27Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood)are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other. The difference between that and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[ctrl-alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; again to unlock the range again and be able to edit sectors normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Ctrl-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great things about stack (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press [ctrl-S] there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Example==&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10600</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10600"/>
		<updated>2012-04-05T06:39:40Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood)are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other. The difference between that and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[ctrl-alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; again to unlock the range again and be able to edit sectors normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Ctrl-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great things about stack (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press [ctrl-S] there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Mapping Example==&lt;br /&gt;
In this straightforward example, you&#039;re going to make a manhole that goes below a street, and some area around the end of the hole at the bottom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Create the child sector where you want the manhole to be.&lt;br /&gt;
&lt;br /&gt;
2. Highlight the sector with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Press &#039;&#039;&#039;[Ctrl-E]&#039;&#039;&#039;. Mapster will prompt you whether you want to extend up or down.&lt;br /&gt;
&lt;br /&gt;
4. We want to extend down so press &#039;&#039;&#039;[Z]&#039;&#039;&#039; (&#039;&#039;&#039;[A]&#039;&#039;&#039; if you&#039;re extending up).&lt;br /&gt;
&lt;br /&gt;
5. Go into side view mode with &#039;&#039;&#039;[F3]&#039;&#039;&#039;, and move the viewpoint down until you&#039;re editing the bottom layer.&lt;br /&gt;
&lt;br /&gt;
6. The child sector you created should now have a white boundary, with the street sectors above either greyed out or gone depending on your settings. &lt;br /&gt;
&lt;br /&gt;
7. Now you can treat the manhole sector (the extension) as the very first room you&#039;ve made on a new map. You can draw sectors on the side of it to attach some rooms there. If you go into 3D mode, you should be able to see that if you go down that manhole, there should now be some area at the bottom which overlaps the street. This was not previously possible without using some kind of cheap trick. Congratulations, you&#039;ve just made TROR.&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10599</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10599"/>
		<updated>2012-04-05T06:21:42Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood)are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other. The difference between that and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[ctrl-alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; again to unlock the range again and be able to edit sectors normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Ctrl-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Properties and Terminology==&lt;br /&gt;
TROR is created by selecting a sector and extending it (this will be covered later in method). This means that it creates a new sector directly on top of or below the selected sector, which is exactly the same size and shape as the original. The ceiling of the bottom sector is linked with the floor of the top sector. It then makes sense that the extended sector is called an &#039;&#039;&#039;extension&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can have more than one extension on a sector. You can extend it above and below, then take the bottom and extend that down again and again, and the same with the top. You are effectively stacking sectors on top of each other, so these sectors are part of a &#039;&#039;&#039;stack&#039;&#039;&#039;. The great things about stack (even with only one extension) is that if you move the vertex of a wall of one layer, it will automatically move the vertices of all the other layers, so that they&#039;re easy to change the shape of without worrying about breaking the connection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can highlight a group of sectors and extend them all at the same time so that there can be a single extension covering them all. This is useful because it saves walls, and you can still edit all the child sectors with ease. Now, as soon as you extend these sectors so that they share an extension, they all become a part of the same &#039;&#039;&#039;bunch&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you take a room with a child sector in the middle, and extend everything upwards except the child layer, there will now be void space in the top layer where the child sector is. If you press [ctrl-S] there to make it into a child sector in the top layer, you&#039;ll then find that you have a floating normal (non-TROR) sector between the two TROR layers that you can do with as you please. This is called an &#039;&#039;&#039;island&#039;&#039;&#039;. I suppose it&#039;s still an island even if you don&#039;t make it a child sector in the top layer but hey, now you can create floating sectors. These can potentially be glitchy if you&#039;re not using the polymer renderer, but we&#039;ll get onto that layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
	<entry>
		<id>https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10598</id>
		<title>True Room Over Room Mapping Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.eduke32.com/w/index.php?title=True_Room_Over_Room_Mapping_Guide&amp;diff=10598"/>
		<updated>2012-04-05T05:59:04Z</updated>

		<summary type="html">&lt;p&gt;Micky C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Build Intro}}&lt;br /&gt;
&lt;br /&gt;
True Room Over Room is a feature new to EDuke32 that allows for the construction of [[sector]]s in a vertical arrangement. Other build games (Shadow Warrior, Blood)are able to fake ROR by having sectors in different parts of the map and rendering them on top of each other. The difference between that and TROR is that the sectors are physically on top of each other, making editing a lot easier and more automatic, while also making it easier to visualize what you&#039;re building.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR Editing Modes==&lt;br /&gt;
There are two modes you should be aware of before starting to build with TROR.&lt;br /&gt;
&lt;br /&gt;
===Side view (orthographic view) mode===&lt;br /&gt;
This mode allows you see a 3D representation of your map while in 2D mode. This is toggled with &#039;&#039;&#039;[F3]&#039;&#039;&#039;. It can be rotated with the &#039;&#039;&#039;[Q]&#039;&#039;&#039; and &#039;&#039;&#039;[W]&#039;&#039;&#039; buttons, and the angle of viewing can be changed by pressing &#039;&#039;&#039;[A]&#039;&#039;&#039; and &#039;&#039;&#039;[Z]&#039;&#039;&#039;.&lt;br /&gt;
This mode is absolutely essential not only because it allows you to actually see what you&#039;re doing, but because in order to properly use TROR, you need to designate which is the &#039;active&#039; layer that new sectors will connect to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be done in 2 ways. &lt;br /&gt;
&lt;br /&gt;
The first way is to press &#039;&#039;&#039;[ctrl-A]&#039;&#039;&#039; which will grey out all other layers except the one the viewpoint (the arrow in 2D/side view mode)is in, which is the active layer. You can move the view point up and down, allowing you to edit above and below layers, by either pressing &#039;&#039;&#039;[page up]&#039;&#039;&#039; and &#039;&#039;&#039;[page down]&#039;&#039;&#039; respectively, or more accurately by pressing down the &#039;&#039;&#039;[middle mouse button]&#039;&#039;&#039; and moving the mouse forward or backwards. This method is usually prefered as it gives you much more control over the vertical position of the viewpoint. If you find the greyed-out walls distracting, you can remove them altogether by pressing &#039;&#039;&#039;[ctrl-alt-A]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second way allows for more precision as you can narrow the active editing range to the height of a single (or set of) sectors. Firstly, select the sector(s) that you want to be able to edit with &#039;&#039;&#039;[Right-Alt]&#039;&#039;&#039;, and press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039;. It&#039;s as easy as that. Press &#039;&#039;&#039;[Ctrl-R]&#039;&#039;&#039; again to unlock the range again and be able to edit sectors normally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Invisible surfaces viewing mode=== &lt;br /&gt;
This is for 3D mode when you want to toggle seeing invisible objects.&lt;br /&gt;
All you have to do to toggle this mode is press &#039;&#039;&#039;[I]&#039;&#039;&#039;, which primarily allows you to see objects you&#039;ve made invisible with &#039;&#039;&#039;[Ctrl-I]&#039;&#039;&#039;. However, the reason why it&#039;s so useful here, is that it also shows you the boundaries between TROR layers (which are invisible in-game). This is a huge benefit when you want to visualize/figure out what&#039;s actually going on. It also allows you to edit the TROR surfaces and apply transparent or masked floors, and edit characteristics like the blocking and hitscan bits.&lt;br /&gt;
&lt;br /&gt;
The following are a list of keys which are related to editing TROR. They can also be found in the [http://wiki.eduke32.com/wiki/Build/Mapster32_Keyboard_Commands mapster32 keyboard commands page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==TROR related keys==&lt;br /&gt;
===2D mode===&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; sector extension prompt (sectors to extend must be highlighted)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; make sandwich [&#039;&#039;needs better explanation&#039;&#039;]&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;E+CTRL&#039;&#039;&#039; punch loop through extension (loop points must be highlighted, e.g. with &#039;&#039;&#039;RSHIFT&#039;&#039;&#039;+&#039;&#039;&#039;LCTRL&#039;&#039;&#039;)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;A+CTRL&#039;&#039;&#039; toggle auto-grayout of non-extended sectors&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;J+CTRL&#039;&#039;&#039; TROR-join sectors. The selection must consist of the two sets of sectors you wish to join.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;U+CTRL&#039;&#039;&#039; Clear extension: delete the bunch (i.e. ceiling-floor connection) of the aimed-at sector&#039;s floor&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PGUP&#039;&#039;&#039;/&#039;&#039;&#039;PGDN&#039;&#039;&#039; Change &#039;player&#039; height in discrete steps in order to go through the different levels&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;TAB+CTRL&#039;&#039;&#039; Display one currently aimed at sector (of potentially many that lie under the mouse crosshair)&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HOME&#039;&#039;&#039; and &#039;&#039;&#039;END&#039;&#039;&#039; as modifiers to AltGr: select all sectors whose floor&#039;s/ceiling&#039;s bunchnum equal the bunchnum of the aimed at sector (useful for further operations on whole bunches)&lt;br /&gt;
&lt;br /&gt;
===3D mode===&lt;br /&gt;
&#039;&#039;&#039;I&#039;&#039;&#039; invisibility preview: toggle fake ROR texture on non-masked portals&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;LENTER+CTRL&#039;&#039;&#039; When aiming at an extended floor/ceiling, paste to all floors/ceilings of the bunch of the aimed at one&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;T&#039;&#039;&#039;, &#039;&#039;&#039;B&#039;&#039;&#039; and &#039;&#039;&#039;H&#039;&#039;&#039; work as with walls, though they set/toggle the bits only on &#039;&#039;&#039;one&#039;&#039;&#039; side&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Level editing documentation]]&lt;/div&gt;</summary>
		<author><name>Micky C</name></author>
	</entry>
</feed>