Editing
Linked portal
(section)
From Eternity Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Setup== There are two kinds of linked portals: plane portals and line portals. Plane portals are sector floor or ceiling surfaces that vertically connect different sector groups (layers) of the map. Line portals are linedefs that connect areas horizontally. ===Setting up sector portals=== There must be (at least) two sectors in the map, not linked together by any path (similar to how disjoint areas exist in classic Doom maps and are gameplay-connected only by teleporters). The ceiling height of one of them must match the floor height of the other. Let's call the bottom sector A and the top sector B. Even though the sectors need to have the same outline, they can have different detail inner sectors in them. For example, sector A can have several crate sectors whose outlines don't need to be copied into upper sector B, which has much less detail. Note that one-sided linedef walls inside sectors (e.g. columns) must have their outlines copied. Reserve two linedefs for each sector. Make sure the two linedefs selected for sector A will have the same relative coordinates and sizes as the two corresponding linedefs from B. Tag sector A and its inner details with a number. Tag B and its details with another number. Give the reserved linedefs from A special 359, tag of B and special 360, tag of A respectively. Give the reserved linedefs from B special 358, tag of A and special 361, tag of B respectively. Here is how they should correspond: * Reserved linedef 1 of sector A: special 359, tag B (Apply linked portal to floor of B) * Reserved linedef 1 of sector B: special 361, tag B (Linked portal anchor line for special 359) * Reserved linedef 2 of sector A: special 360, tag A (Linked portal anchor line for special 358) * Reserved linedef 2 of sector B: special 358, tag A (Apply linked portal to ceiling of A) Note that with this implementation, you'll have to give a tag to every sector which needs a portal. Sometimes this is not practical, because you may want to make various sectors with special effects within A or B. To bypass this problem, you can tag the special sector differently, but one of the linedefs facing it must have special 385 (Apply portal to front sector) and have the tag of the non-special sectors that surround it (A or B). This will copy the portal information into the special sector. Here is a diagram on how to set up: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -----------------x---------------------x::::::::::::: ~-------------------x---------------------x::::::::::::::::::: / \:::::::::::: ~ Neighbour / \:::::::::::::::::: Neighbour / SECTOR A \:::::::::: ~ sector of / SECTOR B \::::::::::::::::: sector of / x----x floor \::::::::: ~ B / x----x \:::::::::::::::: A / |::::| detail \:::::::: ~ (not tagged) / | | \::::::::::::::: (untagged) / |::::|wall x---x \::::::: ~ / | |top of wall from A \:::::::::::::: -----------x x----x | | x::::::::: ~-------------x x----x <NOT tagged x::::::::::::: ::::::::::::\ x---x /:::::::::::::::::::::::::::::\ /:::::::::::::: :::::::::::::\ x---x-----x same tag as^ /:::::::::::::::::::::::::::::::\ x-------------x /::::::::::::::: ::::::::::::::\ \ \ | < A x:::::::::::::::::::::::::::::::::\ x-------------x x:::::::::::::::: :::::::::::::::\ x---x---x /360,A::::::::::::::::::::::::::::::\ ceil. detail /358,A:::::::::::: ::::::::::::::::\ flr.detail 359,B /:::::::::::::::::::::::::::::::::::::\ tag of B 361,B /:::::::::::::::::: :::::::::::::::::x-------------x-------x:::::::::::::::::::::::::::::::::::::::x-------------x-------x::::::::::::::::::: :::::::::::::::::::::::::::::::::THE PORTAL LINEDEFS:::::::::::::::::::::::::::::::::::::::::THE PORTAL LINEDEFS::::::::: ===Setting up wall portals=== Wall portals are slightly simpler to implement. The two separate sectors must have the same floor and ceiling heights and the portal linedefs need to be of the same length and angle. On [[UDMF]], use the [[Line_QuickPortal]] (301) special on both lines and give them the same tag (line ID, not the first arg). The first arg can be used to specify if it's a completely linked portal, or a mere visual one. On the classic format, the two linedefs will have the 376 and 377 specials (respectively, order not being important) and a common tag (which doesn't have to belong to any sector). Note that on older Eternity versions, the portal lines needed to be 2-sided and passable, and you had to add a buffer sector behind the portal lines. On the latest versions, 1-sided lines are accepted. The only requirement left is to leave enough space in the void behind these 1-sided lines to prevent actors from bumping on other walls from the same layer. ===Lifts between sector portals=== You can make the floor or ceiling of a sector move from a sector group (layer) to another by using the [[Attached surface linedef types]]. Here's how to do it: * Place the two parts of the lift as two sectors, the one below the portal and the one above the portal. Make sure the sectors have the same size, floor texture, floor height and lower textures relative to floor. * Set the floor height of both sectors to the Z position of the portal plane. Do this even if the lift's resting position is lower or higher. * Set up a sector portal between the two sectors. * Attach the floor movement between the two sectors. Check the link above to see how it's done. * To adjust the floor to the bottom or top height, you can use a special at the beginning of the level (either through an OPEN ACS script, using Boom voodoo dolls / conveyors or a trigger near the player start). ===Polyobject portals=== You can even place portals on polyobjects now. Connecting the edges of a polyobject with a sector matching its "interior", you can now have moving platforms. Unlike conventional wall portals, the ones on the polyobject's exterior must be one-sided. Upper and lower textures will still work, despite this. The wall portals from the inside area to the outside will have to be conventional though (2-sided with a buffer sector behind). ====Caveats==== Though this may get fixed in future versions, make sure to connect the polyobject control sector (the one holding all prototype polyobjects) to the main area it will appear in. You can use tunnel sectors or joined sectors. To avoid glitches, the sector containing the prototypes must not be the same sector as the one where polyobjects will be spawned. ====Simple moving platform illusion==== You can put a linked portal in the ceiling of the inner sector to give the illusion that a simple platform is moving on the floor. It works if you used the [[Portal_Define]] special for the line portals and if the background room has the same ceiling height, or in very small variation, in the area where the polyobject moves. Acceptable variations are at most 8 map units. Otherwise, you get bleeding effects. The platform sector must have the ceiling height set to the maximum ceiling of the outside area. Set the '''portalceiling''' field of the sector to the same ID you used for the walls. Make sure the z offset of [[Portal_Define]] is set correctly: if the inner sector is a raised platform compared to the outside sector, the z offset should be the ''minimum'' ceiling height from the outside area, minus the elevation of the platform against the background. If it's a "moving pit", the z offset should be the negative of the height of the lowest ceiling detail from the outside area. It is recommended to set '''portal_ceil_nopass''' on the sector, especially if there is no height variation. This prevents unnecessary side effects. An example is available for download: [https://www.dropbox.com/s/xi1xhv92h27ptep/polyceilport.wad?dl=0 PolyCeilPort.wad]. ===Edge portals=== You can also put portals on upper and lower edges of linedefs. See [[Edge portals]]. ===Attached portals=== You can attach linked portals to their floors or ceiling. By default they stay fixed, so that making elevators going through portals is possible. But if you want the linked portal to move along with the floor or ceiling over which it's drawn, you enable the [[UDMF]] '''portal_floor_attached''' or '''portal_ceil_attached''' flags, or the [[ExtraData]] '''ATTACHEDPORTAL''' portal flag. Set these flags for both parts of the portal, and combine them with the [[attached surfaces]] feature, so that all required surfaces move synchronized. An example usage of this is a platform you can walk both under and above, which is made possible by sector portals (optionally with [[edge portals]] surrounding it). Giving the "attached portal" flag to the portals, and attaching both their surfaces and platform's surfaces to a moving floor, will allow you to setup the effect of the platform itself bobbing up and down. You can also setup other less realistic effects with this flag.
Summary:
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see
Eternity Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Log in
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Search
Tools
What links here
Related changes
Special pages
Page information