From Eternity Wiki
Jump to navigation
Jump to search
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
fill this in!
==='''Method 1: The <code>Polyobj_StartLine</code> Special'''=== :The <code>348:Polyobj_StartLine('''polyobj_id''', '''mirror_id''')</code> special marks the first line in a PolyObject which is made up of a cyclic set of linedefs (that is, each line "points toward" the next line, ending at the first vertex of the first line). :Diagrammatic Example: :[[File:Polyobjects_basic.png]] :Assume that the linedef '''A''' is assigned the <code>Polyobj_StartLine</code> special and has argument #1 set to "1" -- this is its '''PolyObject ID number''', which must be unique amongst all on the map, and must be a number greater than zero. :Starting from line '''A''', the engine will go from vertex to vertex, adding the first line found which shares the current line's second vertex as its first vertex. In this example, since the object is closed as is required, the process will end at the first vertex of line '''A''', and there will be four lines in the PolyObject (note that unlike Hexen, there is NO limit to the number of lines that can be placed in one PolyObject). :Now, once the lines are added, it is necessary to define the control objects. Points '''B''' and '''C''' are the two required objects: :* '''B''': This is the PolyObject's anchor point (type EEPolyObjAnchor with DoomEd #9300). It defines the point relative to which all the lines in the PolyObject will be translated to the spawn point. This object's angle must be set to the same value as the StartLine's first argument (the '''PolyObject ID'''). There must be one and only one of these objects for each '''PolyObject ID'''. :* '''C''': This is the PolyObject's spawn point (one of EEPolyObjSpawnSpot  or EEPolyObjSpawnSpotCrush ). It defines the point where the PolyObject will initially spawn on the map. The anchor point will be translated to this exact location, and all lines in the PolyObject will maintain their relative positions to it. This object must also have its angle field set to the same value as both the StartLine's first argument and the anchor point's angle field. There must be one and only one of these objects for each PolyObject ID. Use 9302 to cause the PolyObject to do crushing damage to things that block it while it is in motion. :Note that when you use this method, the other lines belonging to the PolyObject can be given their own line specials, including ones which affect the PolyObject itself. When the player presses the PolyObject, the specials will work as expected. :The complete arguments to <code>Polyobj_StartLine('''polyobj_id''', '''mirror_id''')</code> are as follows: :* ''polyobj_id'' : the unique ID number (greater than zero) of the PolyObject :* ''mirror_id'' : the ID number of a PolyObject that you want to mirror every action that affects this PolyObject. This number cannot be the same as the PolyObject's own ID. :In order to use this line special in a DOOM-format map, it is necessary to use [[ExtraData]]. In that case, you must give the line you want to have the Polyobj_StartLine special the ExtraData linedef control special (#270) instead, and then specify Polyobj_StartLine and its arguments in its corresponding ExtraData linedef record.
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see
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!
(opens in new window)
Retrieved from "
Not logged in
Help about MediaWiki
What links here
About Eternity Wiki