https://maniacsvault.net/ecwolf/w/api.php?action=feedcontributions&user=DavidAramant&feedformat=atom ECWolf Wiki - User contributions [en] 2024-03-29T08:03:58Z User contributions MediaWiki 1.35.8 https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Skill_definition&diff=773 MAPINFO/Skill definition 2017-02-03T03:32:26Z <p>DavidAramant: Created page with &quot;'''TODO''' == Block syntax == &lt;tt&gt;skill &lt;identifier&gt; { ''properties'' }&lt;/tt&gt; == Block properties == * &lt;tt&gt;damageFactor = &lt;fixed&gt;&lt;/tt&gt; :'''TODO''' * &lt;tt&gt;fastMonsters&lt;/tt&gt; :'''T...&quot;</p> <hr /> <div>'''TODO'''<br /> == Block syntax ==<br /> &lt;tt&gt;skill &lt;identifier&gt; { ''properties'' }&lt;/tt&gt;<br /> == Block properties ==<br /> * &lt;tt&gt;damageFactor = &lt;fixed&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;fastMonsters&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;lives = &lt;int&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;mapFilter = &lt;int&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;mustConfirm = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;name = &quot;&lt;string&quot;&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;picName = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;playerDamageFactor = &lt;fixed&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;quizHints = &lt;bool&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;scoreMultiplier = &lt;fixed&gt;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;spawnFilter = &lt;int&gt;&lt;/tt&gt;<br /> :'''TODO'''</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Automap_definition&diff=772 MAPINFO/Automap definition 2017-02-03T03:25:19Z <p>DavidAramant: Created page with &quot;Sets automap colors. == Block syntax == &lt;tt&gt;automap { ''properties'' }&lt;/tt&gt; == Block properties == * &lt;tt&gt;background = &quot;&lt;color&gt;&quot;&lt;/tt&gt; :'''TODO''' * &lt;tt&gt;doorColor = &quot;&lt;color&gt;&quot;&lt;/t...&quot;</p> <hr /> <div>Sets automap colors.<br /> == Block syntax ==<br /> &lt;tt&gt;automap { ''properties'' }&lt;/tt&gt;<br /> == Block properties ==<br /> * &lt;tt&gt;background = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;doorColor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;floorColor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;fontColor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;wallColor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''<br /> * &lt;tt&gt;yourColor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :'''TODO'''</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO&diff=771 MAPINFO 2017-01-26T03:14:55Z <p>DavidAramant: /* Definition blocks */</p> <hr /> <div>The MAPINFO lump allows defining meta information about maps as well other static information such as episodes and clusters. The format follows ZDoom's [[ZDoom:MAPINFO|ZMAPINFO]], but is not necessarily compatible. In general if the name of a property is the same it is likely to behave in a similar way in ECWolf.<br /> <br /> == Definition blocks ==<br /> <br /> The following definition blocks are supported by ECWolf:<br /> * [[MAPINFO/Automap definition|Automap definition]]<br /> * [[MAPINFO/Cluster definition|Cluster definition]]<br /> * [[MAPINFO/Episode definition|Episode definition]]<br /> * [[MAPINFO/Gameinfo definition|Gameinfo definition]]<br /> * [[MAPINFO/Intermission definition|Intermission definition]]<br /> * [[MAPINFO/Map definition|Map definition]]<br /> * [[MAPINFO/Skill definition|Skill definition]]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=770 MAPINFO/Gameinfo definition 2017-01-26T02:46:27Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;deathtransition = &quot;fizzle|fade&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;dialogcolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finaleflat = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamecolormap = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gameoverpic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolors = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;menuwindowcolors = &quot;background&quot;, &quot;top&quot;, &quot;bottom&quot;, &quot;index background&quot;, &quot;index top&quot;, &quot;index bottom&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;messagecolors = &quot;background&quot;, &quot;top&quot;, &quot;bottom&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;messagefontcolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;psyched = &quot;&lt;color1&gt;&quot;, &quot;&lt;color2&gt;&quot;[, intoffset]&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titlepage = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;titlepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;trackhighscores = &lt;bool&gt;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.<br /> * &lt;tt&gt;victorymusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''<br /> * &lt;tt&gt;victorypic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> : '''TODO'''</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=769 MAPINFO/Gameinfo definition 2017-01-24T03:00:38Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> <br /> TODO: death transition<br /> TODO: dialogcolor<br /> <br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> <br /> TODO: trackhighscores<br /> <br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolors = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=768 MAPINFO/Gameinfo definition 2017-01-24T02:56:33Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolors = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=765 MAPINFO/Map definition 2017-01-05T16:58:12Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: The border flat assigned in [[MAPINFO/Gameinfo definition|&lt;tt&gt;Gameinfo&lt;/tt&gt;]].<br /> * &lt;tt&gt;cluster = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: Undefined. Something in the hierarchy should define this, otherwise the unknown texture will be displayed.<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: Undefined. Something in the hierarchy should define this, otherwise the unknown texture will be displayed.<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. &lt;tt&gt;EndSequence&lt;/tt&gt; will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. &lt;tt&gt;secretnext&lt;/tt&gt; is the same as next only applies to the secret exit. &lt;tt&gt;victorynext&lt;/tt&gt; is likewise the same but is usually triggered by bosses which call the [[Action specials|&lt;tt&gt;Exit_Victory&lt;/tt&gt;]] special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> :'''NOTE:''' Multiple special actions can be defined.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: Whatever translator is defined in [[MAPINFO/Gameinfo definition|&lt;tt&gt;Gameinfo&lt;/tt&gt;]]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Intermission_definition&diff=764 MAPINFO/Intermission definition 2017-01-04T20:06:46Z <p>DavidAramant: </p> <hr /> <div>An intermission definition defines an ending sequence. It will appear after the standard intermission stats screen.<br /> == Block syntax ==<br /> &lt;tt&gt;intermission ''name'' { ''properties'' }&lt;/tt&gt;<br /> :Defines an intermission with the given name.<br /> == Block properties ==<br /> * &lt;tt&gt;Fader { ''properties'' }&lt;/tt&gt;<br /> :Defines a fading (in/out) image.<br /> * &lt;tt&gt;GotoTitle {}&lt;/tt&gt;<br /> :Returns to the demo loop.<br /> * &lt;tt&gt;Image { ''properties'' }&lt;/tt&gt;<br /> :Displays an image with no special properties.<br /> * &lt;tt&gt;TextScreen { ''properties'' }&lt;/tt&gt;<br /> :Displays a message.<br /> * &lt;tt&gt;VictoryStats { ''properties'' }&lt;/tt&gt;<br /> :Shows the victory stats screen.<br /> == Sub-block properties ==<br /> These properties apply to any sub-block.<br /> * &lt;tt&gt;background = &quot;&lt;texture&gt;&quot;[, &lt;tile&gt;[, &quot;&lt;palette&gt;&quot;]]&lt;/tt&gt;<br /> :Draws the given texture as a full screen background.<br /> :If tile is set to 1 then the graphic will be tiled instead of stretched to full screen. An alternative palette can be set as well.<br /> * &lt;tt&gt;draw = &quot;&lt;texture&gt;&quot;, &lt;x&gt;, &lt;y&gt;&lt;/tt&gt;<br /> :Draws the given texture at the given coordinates.<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Changes the music to the given track.<br /> * &lt;tt&gt;time = &lt;value&gt;&lt;/tt&gt;<br /> :Gives how long the page should be displayed for. Positive values are in Doom tics, negative values are in seconds.<br /> === Fader properties ===<br /> * &lt;tt&gt;fadetype = &lt;type&gt;&lt;/tt&gt;<br /> :Sets the type of fade. Valid values are &lt;tt&gt;FadeIn&lt;/tt&gt; or &lt;tt&gt;FadeOut&lt;/tt&gt;.<br /> === TextScreen properties ===<br /> * &lt;tt&gt;text = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Gives the text to display for this screen. Each line is a separate string.<br /> * &lt;tt&gt;textalignment = &lt;alignment&gt;&lt;/tt&gt;<br /> :Gives the alignment for the text. Valid values are left, right, or center.<br /> * &lt;tt&gt;textcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Gives the color for the font.<br /> * &lt;tt&gt;textspeed = &lt;value&gt;&lt;/tt&gt;<br /> :Set this to 0. Will eventually indicate how fast characters are drawn on the screen.<br /> * &lt;tt&gt;position = &lt;x&gt;, &lt;y&gt;&lt;/tt&gt;<br /> :Location on the screen where text drawing starts.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Episode_definition&diff=763 MAPINFO/Episode definition 2017-01-04T20:01:28Z <p>DavidAramant: </p> <hr /> <div>An episode is a selectable starting point for the game. If more than one episode is defined, they will appear in the menu in the order they appear. There should be at least one episode defined.<br /> == Block syntax ==<br /> * &lt;tt&gt;clearepisodes&lt;/tt&gt;<br /> :Removes all previously defined episodes.<br /> * &lt;tt&gt;episode &lt;map&gt; { ''properties'' }&lt;/tt&gt;<br /> :Creates an episode that starts on the specified map.<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;key = &quot;&lt;letter&gt;&quot;&lt;/tt&gt;<br /> :Assigns the letter as a hot key for the episode in the menu.<br /> * &lt;tt&gt;lookup = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Pulls the name of the episode by a keyword in [[LANGUAGE]].<br /> * &lt;tt&gt;name = &quot;&lt;name&gt;&quot;&lt;/tt&gt;<br /> :Sets the name of the episode as it appears on the menu directly.<br /> * &lt;tt&gt;noskillmenu&lt;/tt&gt;<br /> :Causes the game to start without going through the skill selection. The skill level will be the default.<br /> * &lt;tt&gt;optional&lt;/tt&gt;<br /> :The episode will not appear unless the level it starts on is loaded.<br /> * &lt;tt&gt;picname = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Lump of graphic to display on menu. This will appear before the episode name.<br /> * &lt;tt&gt;remove&lt;/tt&gt;<br /> :Removes this episode from the menu. Of little use.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Cluster_definition&diff=762 MAPINFO/Cluster definition 2017-01-04T19:56:32Z <p>DavidAramant: </p> <hr /> <div>A cluster is a grouping of maps usually (but not necessarily) separated by story elements. This should not be confused with [[MAPINFO/Episode definition|episodes]].<br /> == Block syntax ==<br /> &lt;tt&gt;cluster &lt;positive integer&gt; { ''properties'' }&lt;/tt&gt;<br /> :Assigns the properties to a cluster with the specified number. Numbers should be greater than or equal to 1.<br /> == Block properties ==<br /> * &lt;tt&gt;exittext = &quot;&lt;text&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;exittext = lookup, &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :When exiting a level with transitions to a different cluster this message will be displayed. Use lookup to use a message from the [[LANGUAGE]] lump.<br /> * &lt;tt&gt;exittextislump&lt;/tt&gt;<br /> :The exit text is a lump containing a message to display.<br /> * &lt;tt&gt;exittextismessage&lt;/tt&gt;<br /> :Instead of showing an art screen, just pop up a message box. Used for the Spear of Destiny Demo end screen, for example.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=761 MAPINFO/Gameinfo definition 2017-01-04T19:52:49Z <p>DavidAramant: </p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;creditpage = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the credits screen in the demo loop.<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolor = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;pagetime = &lt;value&gt;&lt;/tt&gt; - '''Does this actually exist?'''<br /> :Sets the amount of time a page is held on screen during the demo loop.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=760 MAPINFO/Gameinfo definition 2017-01-04T19:52:11Z <p>DavidAramant: </p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game. Every property is required to be defined.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;creditpage = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the credits screen in the demo loop.<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolor = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;pagetime = &lt;value&gt;&lt;/tt&gt; - '''Does this actually exist?'''<br /> :Sets the amount of time a page is held on screen during the demo loop.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=759 MAPINFO/Gameinfo definition 2017-01-04T19:49:08Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;creditpage = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the credits screen in the demo loop.<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolor = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> * &lt;tt&gt;pagetime = &lt;value&gt;&lt;/tt&gt; - '''Does this actually exist?'''<br /> :Sets the amount of time a page is held on screen during the demo loop.<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=758 MAPINFO/Gameinfo definition 2017-01-04T19:48:02Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;advisorycolor = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * &lt;tt&gt;advisorypic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Defines the texture to use for the advisory screen.<br /> * &lt;tt&gt;border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;border = &lt;offset&gt;, &lt;unused&gt;, &lt;nowiki&gt;&quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;&lt;/tt&gt;<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * &lt;tt&gt;borderflat = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the background of the border area.<br /> * &lt;tt&gt;creditpage = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Graphic to use for the credits screen in the demo loop.<br /> * &lt;tt&gt;doorsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * &lt;tt&gt;drawreadthis = &lt;bool&gt;&lt;/tt&gt;<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * &lt;tt&gt;finalemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during ending intermissions.<br /> * &lt;tt&gt;gamepalette = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the lump to use for the game palette.<br /> * &lt;tt&gt;gibfactor = &lt;float&gt;&lt;/tt&gt;<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * &lt;tt&gt;highscoresfont = &quot;&lt;nowiki&gt;&lt;font&gt;&lt;/nowiki&gt;&quot;&lt;/tt&gt;<br /> :Font to use for high scores table.<br /> * &lt;tt&gt;highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for high scores table font.<br /> * &lt;tt&gt;intermissionmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play during normal intermissions.<br /> * &lt;tt&gt;menucolor = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;&lt;/tt&gt;<br /> :Sets the various colors for use in the menu.<br /> * &lt;tt&gt;menufade = &quot;&lt;color&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the menu fade.<br /> * &lt;tt&gt;menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for unselectable menu elements.<br /> * &lt;tt&gt;menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected highlighted menu elements.<br /> * &lt;tt&gt;menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * &lt;tt&gt;menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected invalid menu elements.<br /> * &lt;tt&gt;menufontcolor_label = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for normal, unselected menu elements.<br /> * &lt;tt&gt;menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for selected menu elements.<br /> * &lt;tt&gt;menufontcolor_title = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for the fonts in menu titles.<br /> * &lt;tt&gt;menumusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while the menu is active.<br /> * &lt;tt&gt;pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;&lt;/tt&gt;<br /> :Color to use for art screen page index.<br /> '''* &lt;tt&gt;pagetime = &lt;value&gt;&lt;/tt&gt;<br /> :Sets the amount of time a page is held on screen during the demo loop.'''<br /> * &lt;tt&gt;playerclasses = &quot;&lt;class&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the selectable player classes.<br /> * &lt;tt&gt;pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * &lt;tt&gt;quitmessages = &quot;&lt;string&gt;&quot;, ...&lt;/tt&gt;<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * &lt;tt&gt;scoresmusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Music to play while displaying the high scores table.<br /> * &lt;tt&gt;signon = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :The graphic to use for the background of the sign on screen.<br /> * &lt;tt&gt;titlemusic = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Sets the music to use during the demo loop sequence.<br /> * &lt;tt&gt;titletime = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Gameinfo_definition&diff=757 MAPINFO/Gameinfo definition 2017-01-04T19:40:25Z <p>DavidAramant: /* Block syntax */</p> <hr /> <div>The gameinfo section of MAPINFO defines global properties for the game.<br /> == Block syntax ==<br /> &lt;tt&gt;gameinfo { ''properties'' }&lt;/tt&gt;<br /> <br /> == Block properties ==<br /> * '''advisorycolor = &quot;&lt;color&gt;&quot;'''<br /> :Defines the color to use for the background of the advisory (aka PG13) screen.<br /> * '''advisorypic = &quot;&lt;picture&gt;&quot;'''<br /> :Defines the texture to use for the advisory screen.<br /> * '''border = inset, &quot;&lt;topcolor&gt;&quot;, &quot;&lt;bottomcolor&gt;&quot;, &quot;&lt;highlightcolor&gt;&quot;'''<br /> * '''&lt;nowiki&gt;border = &lt;offset&gt;, &lt;unused&gt;, &quot;&lt;tl&gt;&quot;, &quot;&lt;t&gt;&quot;, &quot;&lt;tr&gt;&quot;, &quot;&lt;l&gt;&quot;, &quot;&lt;r&gt;&quot;, &quot;&lt;bl&gt;&quot;, &quot;&lt;b&gt;&quot;, &quot;&lt;br&gt;&quot;&lt;/nowiki&gt;'''<br /> :Sets the border for the play screen. The inset variant uses a thin solid color border. The second variant allows tiled graphics to be used for the border. The unused parameter used to be the size and is kept for ZDoom compatibility.<br /> * '''borderflat = &quot;&lt;texture&gt;&quot;'''<br /> :Graphic to use for the background of the border area.<br /> * '''creditpage = &quot;&lt;texture&gt;&quot;'''<br /> :Graphic to use for the credits screen in the demo loop.<br /> * '''doorsoundsequence = &quot;&lt;sequence&gt;&quot;'''<br /> :Sets the default sound sequence to use for doors. Of little use at the moment.<br /> * '''drawreadthis = &lt;bool&gt;'''<br /> :Sets if the &quot;read this&quot; option should appear in the menu.<br /> * '''finalemusic = &quot;&lt;lump&gt;&quot;'''<br /> :Music to play during ending intermissions.<br /> * '''gamepalette = &quot;&lt;lump&gt;&quot;'''<br /> :Sets the lump to use for the game palette.<br /> * '''gibfactor = &lt;float&gt;'''<br /> :Sets the factor of the spawn health that much be reached for an extreme death to be triggered.<br /> * '''highscoresfont = &quot;&lt;font&gt;&quot;'''<br /> :Font to use for high scores table.<br /> * '''highscoresfontcolor = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for high scores table font.<br /> * '''intermissionmusic = &quot;&lt;lump&gt;&quot;'''<br /> :Music to play during normal intermissions.<br /> * '''menucolor = &quot;&lt;border1&gt;&quot;, &quot;&lt;border2&gt;&quot;, &lt;border3&gt;&quot;, &quot;&lt;background&gt;&quot;, &quot;&lt;stripe&gt;&quot;, &quot;&lt;stripebg&gt;&quot;<br /> :Sets the various colors for use in the menu.<br /> * '''menufade = &quot;&lt;color&gt;&quot;'''<br /> :Color to use for the menu fade.<br /> * '''menufontcolor_disabled = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for unselectable menu elements.<br /> * '''menufontcolor_highlight = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for highlighted menu elements.<br /> * '''menufontcolor_highlightselection = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for selected highlighted menu elements.<br /> * '''menufontcolor_invalid = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for invalid menu elements (unavailable episodes for example).<br /> * '''menufontcolor_invalidselection = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for selected invalid menu elements.<br /> * '''menufontcolor_label = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for normal, unselected menu elements.<br /> * '''menufontcolor_selection = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for selected menu elements.<br /> * '''menufontcolor_title = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for the fonts in menu titles.<br /> * '''menumusic = &quot;&lt;lump&gt;&quot;'''<br /> :Music to play while the menu is active.<br /> * '''pageindexfontcolor = &quot;&lt;textcolor&gt;&quot;'''<br /> :Color to use for art screen page index.<br /> * '''pagetime = &lt;value&gt;'''<br /> :Sets the amount of time a page is held on screen during the demo loop.<br /> * '''playerclasses = &quot;&lt;class&gt;&quot;, ...'''<br /> :Sets the selectable player classes.<br /> * '''pushwallsoundsequence = &quot;&lt;sequence&gt;&quot;'''<br /> :Sets the default pushwall sound sequence to use. Of little use at the moment.<br /> * '''quitmessages = &quot;&lt;string&gt;&quot;, ...'''<br /> :Sets the messages to display when confirming the quit game action. If preceded by a $ character, it will use strings from [[LANGUAGE]].<br /> * '''scoresmusic = &quot;&lt;lump&gt;&quot;'''<br /> :Music to play while displaying the high scores table.<br /> * '''signon = &quot;&lt;texture&gt;&quot;'''<br /> :The graphic to use for the background of the sign on screen.<br /> * '''titlemusic = &quot;&lt;lump&gt;&quot;'''<br /> :Sets the music to use during the demo loop sequence.<br /> * '''titletime = &lt;value&gt;'''<br /> :Sets the amount of time, in seconds, the title screen is displayed during the demo loop.<br /> * '''translator = &quot;&lt;lump&gt;&quot;'''<br /> :The default [[map translator]] to use for binary format maps.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=756 MAPINFO/Map definition 2017-01-04T19:00:53Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. &lt;tt&gt;EndSequence&lt;/tt&gt; will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. &lt;tt&gt;secretnext&lt;/tt&gt; is the same as next only applies to the secret exit. &lt;tt&gt;victorynext&lt;/tt&gt; is likewise the same but is usually triggered by bosses which call the [[Action specials|&lt;tt&gt;Exit_Victory&lt;/tt&gt;]] special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> :'''NOTE:''' Multiple special actions can be defined.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: Whatever translator is defined in [[MAPINFO/Gameinfo definition|&lt;tt&gt;Gameinfo&lt;/tt&gt;]]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=755 MAPINFO/Map definition 2017-01-04T18:57:08Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. &lt;tt&gt;EndSequence&lt;/tt&gt; will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. &lt;tt&gt;secretnext&lt;/tt&gt; is the same as next only applies to the secret exit. &lt;tt&gt;victorynext&lt;/tt&gt; is likewise the same but is usually triggered by bosses which call the [[Action specials|&lt;tt&gt;Exit_Victory&lt;/tt&gt;]] special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> :'''NOTE:''' Multiple special actions can be defined.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=754 MAPINFO/Map definition 2017-01-04T18:50:52Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. &lt;tt&gt;EndSequence&lt;/tt&gt; will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. &lt;tt&gt;secretnext&lt;/tt&gt; is the same as next only applies to the secret exit. &lt;tt&gt;victorynext&lt;/tt&gt; is likewise the same but is usually triggered by bosses which call the [[Action specials|&lt;tt&gt;Exit_Victory&lt;/tt&gt;]] special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=753 MAPINFO/Map definition 2017-01-04T18:46:55Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. EndSequence will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. Secretnext is the same as next only applies to the secret exit. Victorynext is likewise the same but is usually triggered by bosses which call the Exit_Victory special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=752 MAPINFO/Map definition 2017-01-04T18:46:41Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive number&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. EndSequence will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. Secretnext is the same as next only applies to the secret exit. Victorynext is likewise the same but is usually triggered by bosses which call the Exit_Victory special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=751 MAPINFO/Map definition 2017-01-04T18:46:05Z <p>DavidAramant: /* Block syntax */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * &lt;tt&gt;defaultmap { ''properties'' }&lt;/tt&gt;<br /> :Sets the defaults that will be automatically used for all subsequent map definitions. It resets the default information so anything specified in previous &lt;tt&gt;defaultmap&lt;/tt&gt; sections is lost.<br /> * &lt;tt&gt;adddefaultmap { ''properties'' }&lt;/tt&gt;<br /> :Similar to &lt;tt&gt;defaultmap&lt;/tt&gt; but keeps the existing defaultmap information and just adds to it.<br /> :'''Note:''' these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> <br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> * &lt;tt&gt;map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot; { ''properties'' }&lt;/tt&gt;<br /> :Defines a map block. It is recommended that the map be named through &lt;tt&gt;MAPINFO&lt;/tt&gt;, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> <br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive number&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;number&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. EndSequence will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. Secretnext is the same as next only applies to the secret exit. Victorynext is likewise the same but is usually triggered by bosses which call the Exit_Victory special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=MAPINFO/Map_definition&diff=750 MAPINFO/Map definition 2017-01-04T18:42:03Z <p>DavidAramant: /* Block properties */</p> <hr /> <div>A map definition sets properties for a specific map.<br /> == Block syntax ==<br /> * '''adddefaultmap''' { ''properties'' }<br /> * '''defaultmap''' { ''properties'' }<br /> :Sets the default set of properties. Note that these properties are copied to future definitions, so changing the default map won't retroactively apply.<br /> * '''map &quot;&lt;maplump&gt;&quot;''' { ''properties'' }<br /> * '''map &quot;&lt;maplump&gt;&quot; &quot;&lt;mapname&gt;&quot;''' { ''properties'' }<br /> * '''map &quot;&lt;maplump&gt;&quot; lookup &quot;&lt;string&gt;&quot;''' { ''properties'' }<br /> :Defines a map block. It is recommended that the map be named through MAPINFO, but is not required. The lookup keyword will cause the string to be looked up in [[LANGUAGE]].<br /> == Block properties ==<br /> * &lt;tt&gt;bordertexture = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Overrides the gameinfo border texture for this map.<br /> :Default: '''Undefined??'''<br /> * &lt;tt&gt;cluster = &lt;positive number&gt;&lt;/tt&gt;<br /> :Assigns the map to a [[MAPINFO/Cluster definition|cluster]].<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;completionstring = &quot;&lt;string&gt;&quot;&lt;/tt&gt;<br /> :Short message to display on the intermission screen instead of &quot;Floor Completed&quot;.<br /> :Default: &lt;tt&gt;&quot;Floor Completed&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;deathcam = &lt;bool&gt;&lt;/tt&gt;<br /> :Enables the death cam with [[A_BossDeath]].<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;defaultceiling = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default ceiling texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;defaultfloor = &quot;&lt;texture&gt;&quot;&lt;/tt&gt;<br /> :Default floor texture to use when a map has a blank third plane.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;ensureinventory = &quot;&lt;item&gt;&quot;, ...&lt;/tt&gt;<br /> :Checks the players inventory and gives these items if they are lacking.<br /> :Default: No items are given to the player.<br /> * &lt;tt&gt;exitfade = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Duration in Doom tics of the exit fade.<br /> :Default: &lt;tt&gt;30&lt;/tt&gt;<br /> * &lt;tt&gt;floornumber = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The floor number to show on the status bar.<br /> :Default: &lt;tt&gt;1&lt;/tt&gt;<br /> * &lt;tt&gt;highscoresgraphic = &quot;&lt;picture&gt;&quot;&lt;/tt&gt;<br /> :Small icon to display instead of the floor number on the high scores table.<br /> :Default: The floor number<br /> * &lt;tt&gt;levelbonus = &lt;positive integer&gt;&lt;/tt&gt;<br /> :Number of points to give for completing this level.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;levelnum = &lt;number&gt;&lt;/tt&gt;<br /> :The level number which is used for warping. For MAPxy labels this number is automatically assigned.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;music = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :The music to play for this level.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;spawnwithweaponraised&lt;/tt&gt;<br /> :Starts the level with the weapon already raised.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;secretdeathsounds = &lt;bool&gt;&lt;/tt&gt;<br /> :Swaps all deathsounds for their secretdeathsounds.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = &quot;&lt;map&gt;&quot;&lt;/tt&gt;<br /> * &lt;tt&gt;[secret|victory]next = EndSequence, &quot;&lt;sequence&gt;&quot;&lt;/tt&gt;<br /> :Specifies which map to go to when the exit is activated. EndSequence will instead go to a [[MAPINFO/Intermission definition|intermission]] sequence. Secretnext is the same as next only applies to the secret exit. Victorynext is likewise the same but is usually triggered by bosses which call the Exit_Victory special.<br /> :Default: '''Undefined?'''<br /> * &lt;tt&gt;specialaction = &quot;&lt;actorclass&gt;&quot;, &quot;&lt;special&gt;&quot;[, &lt;arg0&gt;[, &lt;arg1&gt;[, &lt;arg2&gt;[, &lt;arg3&gt;[, &lt;arg4&gt;]]]]]&lt;/tt&gt;<br /> :Gives a special action to be called by [[A_BossDeath]] when all of the specified type are dead.<br /> :Default: No special action.<br /> * &lt;tt&gt;nointermission&lt;/tt&gt;<br /> :Disables the normal intermission screen and goes to the next level immediately.<br /> :Default: &lt;tt&gt;false&lt;/tt&gt; (display normal intermission)<br /> * &lt;tt&gt;par = &lt;positive integer&gt;&lt;/tt&gt;<br /> :The par time of the level in seconds.<br /> :Default: &lt;tt&gt;0&lt;/tt&gt;<br /> * &lt;tt&gt;translator = &quot;&lt;lump&gt;&quot;&lt;/tt&gt;<br /> :Name of map translation lump.<br /> :Default: &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; (use the default translator)</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=749 Map translator 2017-01-02T22:50:18Z <p>DavidAramant: /* Things */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''&quot;lumpname&quot;'''''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file.<br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sides (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt; is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt; flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> :* &lt;tt&gt;'''AMBUSH'''&lt;/tt&gt; - This monster is deaf to sound.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=748 Map translator 2017-01-02T22:50:00Z <p>DavidAramant: /* Things */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''&quot;lumpname&quot;'''''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file.<br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sides (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt; is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> :* &lt;tt&gt;'''AMBUSH'''&lt;/tt&gt; - This monster is deaf to sound.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=743 Map translator 2016-12-20T02:45:36Z <p>DavidAramant: /* Including other translators */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''&quot;lumpname&quot;'''''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file.<br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sides (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt; is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=742 Map translator 2016-12-17T21:20:39Z <p>DavidAramant: /* Tiles */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''lumpname'';'''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file. <br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sides (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt; is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=741 Map translator 2016-12-15T04:09:16Z <p>DavidAramant: /* Things */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''lumpname'';'''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file. <br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sidesv (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt; is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=740 Map translator 2016-12-15T04:09:00Z <p>DavidAramant: /* Things */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''lumpname'';'''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file. <br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sidesv (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''actor'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''actor''&lt;/tt&gt; name that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt;' is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=739 Universal Wolfenstein Map Format 2016-12-15T04:07:01Z <p>DavidAramant: /* Things */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The actor name (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = &quot;Guard&quot;;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = &quot;Door_Open&quot;;<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=738 Universal Wolfenstein Map Format 2016-12-15T04:06:40Z <p>DavidAramant: /* Required Properties */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;string&gt;;&lt;/tt&gt;<br /> :The actor name (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = &quot;Guard&quot;;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = &quot;Door_Open&quot;;<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=737 Universal Wolfenstein Map Format 2016-12-15T04:06:20Z <p>DavidAramant: /* Triggers */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;string&gt;;&lt;/tt&gt;<br /> :The actor name (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = &quot;Guard&quot;;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;string&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = &quot;Door_Open&quot;;<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=736 Universal Wolfenstein Map Format 2016-12-15T04:05:04Z <p>DavidAramant: /* Example */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;string&gt;;&lt;/tt&gt;<br /> :The actor name (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = &quot;Guard&quot;;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=735 Universal Wolfenstein Map Format 2016-12-15T04:02:36Z <p>DavidAramant: /* Things */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;string&gt;;&lt;/tt&gt;<br /> :The actor name (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=734 Map translator 2016-12-15T03:59:05Z <p>DavidAramant: /* Tiles */</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''lumpname'';'''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file. <br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sidesv (in that order).<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''ednum'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''ednum''&lt;/tt&gt; that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt;' is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=733 Map translator 2016-12-15T03:58:31Z <p>DavidAramant: </p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three planes in a binary map: &lt;tt&gt;'''tiles'''&lt;/tt&gt;, &lt;tt&gt;'''things'''&lt;/tt&gt;, and &lt;tt&gt;'''flats'''&lt;/tt&gt;. Each section is similar to a [[UWMF]] block in that it is enclosed in braces. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> ==Including other translators== <br /> Other translation files can be included:<br /> * &lt;tt&gt;'''include ''lumpname'';'''&lt;/tt&gt;<br /> :If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;&quot;$base&quot;&lt;/tt&gt; then the default translator for the game will be loaded.<br /> :&lt;tt&gt;include&lt;/tt&gt; statements can appear anywhere in the global scope (i.e. outside of the &lt;tt&gt;tiles&lt;/tt&gt;, &lt;tt&gt;things&lt;/tt&gt;, and &lt;tt&gt;flats&lt;/tt&gt; blocks).<br /> :&lt;tt&gt;include&lt;/tt&gt; statements are the equivalent of copying in the contents of the referenced file. <br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;'''enable lightlevels;'''&lt;/tt&gt;<br /> :Enables ''Rise of the Triad'' global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone will be set to the first valid zone found in the tiles adjacent on the east, north, west, and south sides, in that order.<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> '''Note:''' There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''ednum'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''ednum''&lt;/tt&gt; that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt;' is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Map_translator&diff=732 Map translator 2016-12-15T03:39:46Z <p>DavidAramant: Clarifications and formatting updates</p> <hr /> <div>The map translator specifies how the engine should handle translating binary format maps into internal structures (which map closely to [[UWMF]]). A map translator is sometimes referred to as '''xlat''', but besides being a similar concept has nothing to do with the map translators in ZDoom. There is no particular lump name that the translator must conform to, but it must be referenced in [[MAPINFO]].<br /> <br /> A translator contains 3 sections which correspond to the three plans in a binary map: ''tiles'', ''things'', and ''flats''. Each section or block is enclosed in braces and the specific contents varies. Each plane consists of series of 2-byte values for each &quot;tile,&quot; so when an ''oldnum'' is asked for it should be assumed to be some value 0-65535 (although using 0 should probably be avoided in most cases).<br /> <br /> Other translation files can be included using &lt;tt&gt;'''include''' ''lumpname''&lt;/tt&gt;. If the &lt;tt&gt;lumpname&lt;/tt&gt; is &lt;tt&gt;''&quot;$base&quot;''&lt;/tt&gt; then the default translator will be loaded.<br /> <br /> == Feature flags ==<br /> Special meaning to some tiles can be enabled through feature flags. The following is to be placed outside of any block.<br /> * &lt;tt&gt;enable lightlevels;&lt;/tt&gt;<br /> :Enables Rise of the Triad global light level. In the first map plane (2,0) can be set to a value 0xD8 through 0xDF (dark to light) and (3,0) can be set to values 0xFC through 0x10B (low visibility to high visibility). These translate to the following values in Doom lighting terms. (For reference a visibility of 8.0 is the default in ZDoom.)<br /> {{Note|These numbers were derived by eye-balling the output from Rise of the Triad. They may be subject to change in the future should more accurate numbers be provided. Visibilities above 0x104 are accepted per released map specs, but they appear to allow the player nearly see clearly across the entire map and thus map to the same value.}}<br /> :{| class=&quot;wikitable&quot;<br /> |-<br /> ! Value<br /> ! Light<br /> ! Visibility<br /> |-<br /> ! 0<br /> | 130<br /> | 0.53<br /> |-<br /> ! 1<br /> | 138<br /> | 0.86<br /> |-<br /> ! 2<br /> | 146<br /> | 2.0<br /> |-<br /> ! 3<br /> | 154<br /> | 8.0<br /> |-<br /> ! 4<br /> | 162<br /> | 15.0<br /> |-<br /> ! 5<br /> | 170<br /> | 29.0<br /> |-<br /> ! 6<br /> | 178<br /> | 56.0<br /> |-<br /> ! 7<br /> | 186<br /> | 108.0<br /> |-<br /> ! 8-15<br /> | N/A<br /> | 200.0<br /> |}<br /> <br /> == Tiles ==<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] ambush;'''&lt;/tt&gt;<br /> :Checks for a thing in the tile. If one exists, the thing has the [[UWMF#Things|&lt;tt&gt;ambush&lt;/tt&gt;]] flag set. <br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile. The sound zone to use is the first one of the east, north, west, or south zone to be found.<br /> * &lt;tt&gt;'''modzone ''oldnum'' [fillzone] changetrigger ''action'' { ''properties'' }'''&lt;/tt&gt;<br /> :Searches all adjacent tiles for triggers with the specified [[Action specials|&lt;tt&gt;''action''&lt;/tt&gt;]]. For each one found, the trigger is disabled on the side facing the &lt;tt&gt;modzone&lt;/tt&gt; and a new trigger for that side is added based on the properties specified.<br /> :If the optional &lt;tt&gt;fillzone&lt;/tt&gt; keyword is specified, the tile's sound zone is taken from an adjacent tile. The sound zone to use is the first one of the east, north, west, or south zone to be found.<br /> * &lt;tt&gt;'''tile ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a wall [[UWMF#Tiles|tile]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;. <br /> :All properties from a UWMF tile definition are valid.<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assigns a [[UWMF#Triggers|trigger]] to the tile. <br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''zone ''oldnum'' {}'''&lt;/tt&gt;<br /> :Assigns a sound [[UWMF#Zones|zone]] to the &lt;tt&gt;''oldnum''&lt;/tt&gt;.<br /> <br /> Notes:<br /> * There are no limits to how you allocate your 65536 &lt;tt&gt;oldnum&lt;/tt&gt;s. Doors are simply the combination of a tile and trigger with the same number.<br /> <br /> == Things ==<br /> * &lt;tt&gt;'''elevator ''oldnum'';'''&lt;/tt&gt; {{new}}<br /> :Creates a Rise of the Triad compatible elevator destination point. Place these between a door and switch (the door and switch must be in line with each other) and the elevator will round robin between the destination points. The elevator starts in the uppermost spot (or leftmost if in same y position).<br /> * &lt;tt&gt;'''trigger ''oldnum'' { ''properties'' }'''&lt;/tt&gt;<br /> :Assign a [[UWMF#Triggers|trigger]] to the tile it is contained in. This will be in addition to any triggers already on the tile. Typically a pushwall would use this.<br /> :All properties from a UWMF trigger definition (other than &lt;tt&gt;x&lt;/tt&gt;, &lt;tt&gt;y&lt;/tt&gt;, and &lt;tt&gt;z&lt;/tt&gt;) are valid.<br /> * &lt;tt&gt;'''{ ''oldnum'', ''ednum'', ''angles'', ''flags'', ''minskill'' }'''&lt;/tt&gt;<br /> :Maps the &lt;tt&gt;''oldnum''&lt;/tt&gt; to the &lt;tt&gt;''ednum''&lt;/tt&gt; that is assigned in [[DECORATE]]. <br /> :The &lt;tt&gt;''angles''&lt;/tt&gt; parameter indicates how many sequential indexes should be assigned to rotations. For example, if &lt;tt&gt;angles&lt;/tt&gt;' is 4 and &lt;tt&gt;oldnum&lt;/tt&gt; is 100, then 100-103 would be assigned to this mapping with each being at 90 degrees. <br /> :&lt;tt&gt;''minskill''&lt;/tt&gt; indicates the minimum skill level required for this thing to spawn (starting at 0). <br /> :&lt;tt&gt;''flags''&lt;/tt&gt; are:<br /> :* &lt;tt&gt;'''HOLOWALL'''&lt;/tt&gt; - When placed into a wall, this thing will make the wall non-solid. When combined with the &lt;tt&gt;PATHING&lt;/tt&gt;flag then the wall immediate in front will be non-solid as well. Combine the flags using a pipe: &lt;tt&gt;PATHING|HOLOWALL&lt;/tt&gt;<br /> :* &lt;tt&gt;'''PATHING'''&lt;/tt&gt; - This monster follows a patrol route instead of sitting in the Spawn state.<br /> <br /> == Flats ==<br /> * &lt;tt&gt;'''ceiling { ''flats'', ... }'''&lt;/tt&gt;<br /> * &lt;tt&gt;'''floor { ''flats'', ... }'''&lt;/tt&gt;<br /> :Assigns floor/ceiling textures to sequential codes starting with 0. Up to 256 textures can be defined in each.<br /> <br /> == Info ==<br /> Currently the fourth map plane does not have any translator options. It is enabled for all maps which contain a fourth plane and maps to the Rise of the Triad info plane.<br /> <br /> This plane is used to assign functions to switches and touch plates (a touch plate is a tile which activates something when walked over). To use, simply create a trigger using any of the method above. It doesn't matter what activation method is used in the trigger as it will be adjusted automatically based on if the activating tile is a wall or not. On the tile where a trigger was placed, put 0xXXYY (coordinates in hexadecimal) as the fourth plane. A tag will be created and assigned to the arg0 parameter and then all triggers will be moved to the given coordinates.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=722 Universal Wolfenstein Map Format 2016-04-10T20:28:37Z <p>DavidAramant: Added 'comment' to all blocks</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> comment = &quot;A door facing north-south&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;comment = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :An optional comment about the block. Ignored by the engine.<br /> ::Default is an empty string.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Action_specials&diff=721 Action specials 2016-03-09T02:38:46Z <p>DavidAramant: Minor wording changes</p> <hr /> <div>Action specials are function which are activated either by [[UWMF#Triggers]] or [[DECORATE]] actions.<br /> <br /> General notes:<br /> * '''Tags''' are arbitrary numbers used to link a trigger to the tile that executes it.<br /> * '''Speeds''' are represented in the number of pixels traveled per tic/16. ECWolf runs at 70 tics per second.<br /> * '''Directions''' are relative to the triggering side or absolute if the 8 is added. '''Note that diagonal movement is not supported yet'''<br /> ** 0 = right<br /> ** 1 = back right<br /> ** 2 = back<br /> ** 3 = back left<br /> ** 4 = left<br /> ** 5 = towards left<br /> ** 6 = towards<br /> ** 7 = towards right<br /> ** 8 = east<br /> ** 9 = northeast<br /> ** 10 = north<br /> ** 11 = northwest<br /> ** 12 = west<br /> ** 13 = southwest<br /> ** 14 = south<br /> ** 15 = southwest<br /> <br /> == List of Action specials ==<br /> * 1: &lt;tt&gt;Door_Open( tag, speed, delay, lock, type )&lt;/tt&gt;<br /> :Activates a map spot as a sliding door.<br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map spot which houses the door. <br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D door is 16. <br /> ::&lt;tt&gt;delay&lt;/tt&gt; - Tics until the door closes. 300 is normal for a Wolf3D door. -1 means the door will stay open until manually closed.<br /> ::&lt;tt&gt;lock&lt;/tt&gt; - Lock specifies what keys are needed according to [[LOCKDEFS]]. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver<br /> ::&lt;tt&gt;type&lt;/tt&gt; - Whether the door is facing east-west (0) or north-south (1).<br /> * 2: &lt;tt&gt;Pushwall_Move( tag, speed, direction, distance )&lt;/tt&gt;<br /> :Moves the pushwall in the trigger's map spot. <br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map spot.<br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D pushwall is 8.<br /> ::&lt;tt&gt;direction&lt;/tt&gt; - The direction to move. See the general notes about how directions are specified.<br /> ::&lt;tt&gt;distance&lt;/tt&gt; - The distance in tiles to move. A value of 0 means the map tile will move until it is blocked by something.<br /> * 3: &lt;tt&gt;Exit_Normal( pos )&lt;/tt&gt;<br /> :Exits the level using the standard exit. <br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 4: &lt;tt&gt;Exit_Secret( pos )&lt;/tt&gt;<br /> :Exits the level using the secret exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 5: &lt;tt&gt;Teleport_NewMap( map, pos, flags )&lt;/tt&gt;<br /> :Exits and travels to the specified map by levelnum.<br /> ::&lt;tt&gt;map&lt;/tt&gt; - The levelnum to travel to.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> ::&lt;tt&gt;flags&lt;/tt&gt; - 1 = Keep direction, 2 = Keep position<br /> * 6: &lt;tt&gt;Exit_VictorySpin()&lt;/tt&gt;<br /> :Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.<br /> * 7: &lt;tt&gt;Exit_Victory( pos )&lt;/tt&gt;<br /> :Exits the level using the victory exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 8: &lt;tt&gt;Trigger_Execute( x, y, z )&lt;/tt&gt;<br /> :Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.<br /> ::&lt;tt&gt;x&lt;/tt&gt; - The X coordinate of the tile.<br /> ::&lt;tt&gt;y&lt;/tt&gt; - The Y coordinate of the tile.<br /> ::&lt;tt&gt;z&lt;/tt&gt; - The Z coordinate of the tile.<br /> * 9: &lt;tt&gt;StartConversation( tid, faceTalker )&lt;/tt&gt; {{new}}<br /> :This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.<br /> * 10: &lt;tt&gt;Door_Elevator( switchTag, speed, delay, lock, type )&lt;/tt&gt; {{new}}<br /> :Similar to Door_Open in every manner except that the tag should point to the elevator switch.<br /> * 11: &lt;tt&gt;Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )&lt;/tt&gt; {{new}}<br /> {{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}<br /> :Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.<br /> ::&lt;tt&gt;elevTag&lt;/tt&gt; - Should the tag of the first switch in the sequence.<br /> ::&lt;tt&gt;doorTag&lt;/tt&gt; - The point to the door for this stop.<br /> ::&lt;tt&gt;callSpeed&lt;/tt&gt; - The time is takes for the elevator to move to or from this floor.<br /> ::&lt;tt&gt;nextTag&lt;/tt&gt; - The point in the next switch in the sequence.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=720 Universal Wolfenstein Map Format 2016-03-09T02:36:27Z <p>DavidAramant: /* See Also */</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification (old draft)]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Action_specials&diff=719 Action specials 2016-03-09T02:34:20Z <p>DavidAramant: Minor wording changes</p> <hr /> <div>Action specials are function which are activated either by [[UWMF#Triggers]] or [[DECORATE]] actions.<br /> <br /> General notes:<br /> * '''Tags''' are arbitrary numbers used to link a trigger to the tile that executes it.<br /> * '''Speeds''' are represented in the number of pixels traveled per tic/16. ECWolf runs at 70 tics per second.<br /> * '''Directions''' are relative to the triggering side or absolute if the 8 is added. '''Note that diagonal movement is not supported yet'''<br /> ** 0 = right<br /> ** 1 = back right<br /> ** 2 = back<br /> ** 3 = back left<br /> ** 4 = left<br /> ** 5 = towards left<br /> ** 6 = towards<br /> ** 7 = towards right<br /> ** 8 = east<br /> ** 9 = northeast<br /> ** 10 = north<br /> ** 11 = northwest<br /> ** 12 = west<br /> ** 13 = southwest<br /> ** 14 = south<br /> ** 15 = southwest<br /> <br /> == List of Action specials ==<br /> * 1: &lt;tt&gt;Door_Open( tag, speed, delay, lock, type )&lt;/tt&gt;<br /> :Activates a map tile as a sliding door.<br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map spot which houses the door. <br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D door is 16. <br /> ::&lt;tt&gt;delay&lt;/tt&gt; - Tics until the door closes. 300 is normal for a Wolf3D door. -1 means the door will stay open until manually closed.<br /> ::&lt;tt&gt;lock&lt;/tt&gt; - Lock specifies what keys are needed according to [[LOCKDEFS]]. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver<br /> ::&lt;tt&gt;type&lt;/tt&gt; - Whether the door is facing east-west (0) or north-south (1).<br /> * 2: &lt;tt&gt;Pushwall_Move( tag, speed, direction, distance )&lt;/tt&gt;<br /> :Moves the pushwall in the trigger's map spot. <br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map spot.<br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D pushwall is 8.<br /> ::&lt;tt&gt;direction&lt;/tt&gt; - The direction to move. See the general notes about how directions are specified.<br /> ::&lt;tt&gt;distance&lt;/tt&gt; - The distance in tiles to move. A value of 0 means the map tile will move until it is blocked by something.<br /> * 3: &lt;tt&gt;Exit_Normal( pos )&lt;/tt&gt;<br /> :Exits the level using the standard exit. <br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 4: &lt;tt&gt;Exit_Secret( pos )&lt;/tt&gt;<br /> :Exits the level using the secret exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 5: &lt;tt&gt;Teleport_NewMap( map, pos, flags )&lt;/tt&gt;<br /> :Exits and travels to the specified map by levelnum.<br /> ::&lt;tt&gt;map&lt;/tt&gt; - The levelnum to travel to.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> ::&lt;tt&gt;flags&lt;/tt&gt; - 1 = Keep direction, 2 = Keep position<br /> * 6: &lt;tt&gt;Exit_VictorySpin()&lt;/tt&gt;<br /> :Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.<br /> * 7: &lt;tt&gt;Exit_Victory( pos )&lt;/tt&gt;<br /> :Exits the level using the victory exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 8: &lt;tt&gt;Trigger_Execute( x, y, z )&lt;/tt&gt;<br /> :Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.<br /> ::&lt;tt&gt;x&lt;/tt&gt; - The X coordinate of the tile.<br /> ::&lt;tt&gt;y&lt;/tt&gt; - The Y coordinate of the tile.<br /> ::&lt;tt&gt;z&lt;/tt&gt; - The Z coordinate of the tile.<br /> * 9: &lt;tt&gt;StartConversation( tid, faceTalker )&lt;/tt&gt; {{new}}<br /> :This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.<br /> * 10: &lt;tt&gt;Door_Elevator( switchTag, speed, delay, lock, type )&lt;/tt&gt; {{new}}<br /> :Similar to Door_Open in every manner except that the tag should point to the elevator switch.<br /> * 11: &lt;tt&gt;Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )&lt;/tt&gt; {{new}}<br /> {{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}<br /> :Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.<br /> ::&lt;tt&gt;elevTag&lt;/tt&gt; - Should the tag of the first switch in the sequence.<br /> ::&lt;tt&gt;doorTag&lt;/tt&gt; - The point to the door for this stop.<br /> ::&lt;tt&gt;callSpeed&lt;/tt&gt; - The time is takes for the elevator to move to or from this floor.<br /> ::&lt;tt&gt;nextTag&lt;/tt&gt; - The point in the next switch in the sequence.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Action_specials&diff=718 Action specials 2016-03-09T02:32:59Z <p>DavidAramant: Improving formatting</p> <hr /> <div>Action specials are function which are activated either by [[UWMF#Triggers]] or [[DECORATE]] actions.<br /> <br /> General notes:<br /> * '''Tags''' are arbitrary numbers used to link a trigger to the tile that executes it.<br /> * '''Speeds''' are represented in the number of pixels traveled per tic/16. ECWolf runs at 70 tics per second.<br /> * '''Directions''' are relative to the triggering side or absolute if the 8 is added. '''Note that diagonal movement is not supported yet'''<br /> ** 0 = right<br /> ** 1 = back right<br /> ** 2 = back<br /> ** 3 = back left<br /> ** 4 = left<br /> ** 5 = towards left<br /> ** 6 = towards<br /> ** 7 = towards right<br /> ** 8 = east<br /> ** 9 = northeast<br /> ** 10 = north<br /> ** 11 = northwest<br /> ** 12 = west<br /> ** 13 = southwest<br /> ** 14 = south<br /> ** 15 = southwest<br /> <br /> == List of Action specials ==<br /> * 1: &lt;tt&gt;Door_Open( tag, speed, delay, lock, type )&lt;/tt&gt;<br /> :Activates a map tile as a sliding door.<br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map tile which houses the door. <br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D door is 16. <br /> ::&lt;tt&gt;delay&lt;/tt&gt; - Tics until the door closes. 300 is normal for a Wolf3D door. -1 means the door will stay open until manually closed.<br /> ::&lt;tt&gt;lock&lt;/tt&gt; - Lock specifies what keys are needed according to [[LOCKDEFS]]. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver<br /> ::&lt;tt&gt;type&lt;/tt&gt; - Whether the door is facing east-west (0) or north-south (1).<br /> * 2: &lt;tt&gt;Pushwall_Move( tag, speed, direction, distance )&lt;/tt&gt;<br /> :Moves the pushwall in the trigger's tile. <br /> ::&lt;tt&gt;tag&lt;/tt&gt; - The tag of the map tile.<br /> ::&lt;tt&gt;speed&lt;/tt&gt; - Typical speed for a Wolf3D pushwall is 8.<br /> ::&lt;tt&gt;direction&lt;/tt&gt; - The direction to move. See the general notes about how directions are specified.<br /> ::&lt;tt&gt;distance&lt;/tt&gt; - The distance in tiles to move. A value of 0 means the map tile will move until it is blocked by something.<br /> * 3: &lt;tt&gt;Exit_Normal( pos )&lt;/tt&gt;<br /> :Exits the level using the standard exit. <br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 4: &lt;tt&gt;Exit_Secret( pos )&lt;/tt&gt;<br /> :Exits the level using the secret exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 5: &lt;tt&gt;Teleport_NewMap( map, pos, flags )&lt;/tt&gt;<br /> :Exits and travels to the specified map by levelnum.<br /> ::&lt;tt&gt;map&lt;/tt&gt; - The levelnum to travel to.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> ::&lt;tt&gt;flags&lt;/tt&gt; - 1 = Keep direction, 2 = Keep position<br /> * 6: &lt;tt&gt;Exit_VictorySpin()&lt;/tt&gt;<br /> :Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.<br /> * 7: &lt;tt&gt;Exit_Victory( pos )&lt;/tt&gt;<br /> :Exits the level using the victory exit.<br /> ::&lt;tt&gt;pos&lt;/tt&gt; - reserved and should be 0.<br /> * 8: &lt;tt&gt;Trigger_Execute( x, y, z )&lt;/tt&gt;<br /> :Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.<br /> ::&lt;tt&gt;x&lt;/tt&gt; - The X coordinate of the tile.<br /> ::&lt;tt&gt;y&lt;/tt&gt; - The Y coordinate of the tile.<br /> ::&lt;tt&gt;z&lt;/tt&gt; - The Z coordinate of the tile.<br /> * 9: &lt;tt&gt;StartConversation( tid, faceTalker )&lt;/tt&gt; {{new}}<br /> :This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.<br /> * 10: &lt;tt&gt;Door_Elevator( switchTag, speed, delay, lock, type )&lt;/tt&gt; {{new}}<br /> :Similar to Door_Open in every manner except that the tag should point to the elevator switch.<br /> * 11: &lt;tt&gt;Elevator_SwitchFloor( elevTag, doorTag, callSpeed, nextTag )&lt;/tt&gt; {{new}}<br /> {{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}<br /> :Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.<br /> ::&lt;tt&gt;elevTag&lt;/tt&gt; - Should the tag of the first switch in the sequence.<br /> ::&lt;tt&gt;doorTag&lt;/tt&gt; - The point to the door for this stop.<br /> ::&lt;tt&gt;callSpeed&lt;/tt&gt; - The time is takes for the elevator to move to or from this floor.<br /> ::&lt;tt&gt;nextTag&lt;/tt&gt; - The point in the next switch in the sequence.</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=717 Universal Wolfenstein Map Format 2016-03-09T02:22:41Z <p>DavidAramant: Updated formatting</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;namespace = &quot;Wolf3D&quot;;&lt;/tt&gt;<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * &lt;tt&gt;name = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * &lt;tt&gt;tileSize = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * &lt;tt&gt;width = &lt;integer&gt;;&lt;/tt&gt;<br /> :Width of the map in tiles.<br /> * &lt;tt&gt;height = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureEast = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureNorth = &quot;&lt;string&gt;&quot;:&lt;/tt&gt;<br /> * &lt;tt&gt;textureSouth = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureWest = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;blockingEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;blockingWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the side of the tile as blocking. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> *&lt;tt&gt;offsetVertical = &lt;bool&gt;;&lt;/tt&gt;<br /> *&lt;tt&gt;offsetHorizontal = &lt;bool&gt;;&lt;/tt&gt;<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;dontOverlay = &lt;bool&gt;;&lt;/tt&gt; {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;mapped = &lt;int&gt;;&lt;/tt&gt; {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * &lt;tt&gt;soundSequence = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * &lt;tt&gt;textureOverhead = &quot;&lt;string&gt;&quot;;&lt;/tt&gt; {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;textureCeiling = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> * &lt;tt&gt;textureFloor = &quot;&lt;string&gt;&quot;;&lt;/tt&gt;<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;depth = &lt;integer&gt;;&lt;/tt&gt;<br /> :Height of the plane in pixels.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There '''must''' be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> &lt;tt&gt;{tile,sector,zone,tag}&lt;/tt&gt;<br /> === Required Components ===<br /> *&lt;tt&gt;tile&lt;/tt&gt; - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *&lt;tt&gt;sector&lt;/tt&gt; - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *&lt;tt&gt;zone&lt;/tt&gt; - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *&lt;tt&gt;tag&lt;/tt&gt; - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;type = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * &lt;tt&gt;x = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;float&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;float&gt;;&lt;/tt&gt;<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * &lt;tt&gt;angle = &lt;integer&gt;;&lt;/tt&gt;<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;ambush = &lt;bool&gt;;&lt;/tt&gt;<br /> :If enabled the thing is deaf to sound.<br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;patrol = &lt;bool&gt;;&lt;/tt&gt;<br /> :Spawns the thing as patrolling. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;skill1 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill2 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill3 = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;skill4 = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt; (although you should enable at least one!)<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * &lt;tt&gt;x = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;y = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;z = &lt;integer&gt;;&lt;/tt&gt;<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * &lt;tt&gt;action = &lt;integer&gt;;&lt;/tt&gt;<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * &lt;tt&gt;arg0 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg1 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg2 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg3 = &lt;integer&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;arg4 = &lt;integer&gt;;&lt;/tt&gt;<br /> :Arguments to pass to the action. <br /> ::Default is &lt;tt&gt;0&lt;/tt&gt;.<br /> * &lt;tt&gt;activateEast = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateNorth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateSouth = &lt;bool&gt;;&lt;/tt&gt;<br /> * &lt;tt&gt;activateWest = &lt;bool&gt;;&lt;/tt&gt;<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is &lt;tt&gt;true&lt;/tt&gt;.<br /> * &lt;tt&gt;playerCross = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;playerUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the player to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;monsterUse = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows monsters to activate the trigger. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;repeatable = &lt;bool&gt;;&lt;/tt&gt;<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> * &lt;tt&gt;secret = &lt;bool&gt;;&lt;/tt&gt;<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is &lt;tt&gt;false&lt;/tt&gt;.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=716 Universal Wolfenstein Map Format 2016-03-09T02:12:51Z <p>DavidAramant: Trigger section</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureCeiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureFloor = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There must be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> '''{tile,sector,zone,tag}'''<br /> === Required Components ===<br /> *'''tile''' - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *'''sector''' - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *'''zone''' - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *'''tag''' - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Set to '''true''' to make the thing deaf to sound.<br /> ::Default is '''false'''.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. <br /> ::Default is '''false'''.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is '''false''' (although you should enable at least one!)<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> Triggers define actions that can occur from the player performing an action.<br /> <br /> === Required Properties ===<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> <br /> === Optional Properties ===<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. <br /> ::Default is '''0'''.<br /> * '''activateEast = &lt;bool&gt;;'''<br /> * '''activateNorth = &lt;bool&gt;;'''<br /> * '''activateSouth = &lt;bool&gt;;'''<br /> * '''activateWest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. <br /> ::Default is '''true'''.<br /> * '''playerCross = &lt;bool&gt;;'''<br /> :Allows the player to activate the trigger by crossing the face. <br /> ::Default is '''false'''.<br /> * '''playerUse = &lt;bool&gt;;'''<br /> :Allows the player to activate the trigger. <br /> ::Default is '''false'''.<br /> * '''monsterUse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the trigger. <br /> ::Default is '''false'''.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the trigger to be activated multiple times. <br /> ::Default is '''false'''.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. <br /> ::Default is '''false'''.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;trigger<br /> {<br /> x = 5;<br /> y = 6;<br /> z = 0;<br /> type = 1; // door type<br /> arg0 = 1; // tag<br /> arg1 = 16; // speed<br /> arg2 = 300; // delay<br /> arg3 = 0; // lock<br /> arg4 = 1; // facing north-south<br /> playerUse = true;<br /> repeatable = true;<br /> monsterUse = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=715 Universal Wolfenstein Map Format 2016-03-09T02:02:26Z <p>DavidAramant: Updated Thing section.</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureCeiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureFloor = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There must be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> '''{tile,sector,zone,tag}'''<br /> === Required Components ===<br /> *'''tile''' - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *'''sector''' - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *'''zone''' - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *'''tag''' - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> Actors inside the map.<br /> <br /> === Required Properties ===<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing (in map tile coordinates). Note that these are floating point values; a position of (2.5, 9.5) would be in the middle of tile (2, 9).<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees. 0 = east, 90 = north, 180 = west, 270 = south.<br /> <br /> === Optional Properties ===<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Set to '''true''' to make the thing deaf to sound.<br /> ::Default is '''false'''.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. <br /> ::Default is '''false'''.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. <br /> ::Default is '''false''' (although you should enable at least one!)<br /> <br /> === Example ===<br /> &lt;nowiki&gt;thing<br /> {<br /> type = 11;<br /> x = 2.5;<br /> y = 10.5;<br /> z = 0;<br /> angle = 90;<br /> ambush = true;<br /> skill2 = true;<br /> skill3 = true;<br /> skill4 = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Triggers ==<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> * '''activateeast = &lt;bool&gt;;'''<br /> * '''activatenorth = &lt;bool&gt;;'''<br /> * '''activatesouth = &lt;bool&gt;;'''<br /> * '''activatewest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. Default is true.<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. Default is 0.<br /> * '''playercross = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special by crossing the face. Default is false.<br /> * '''playeruse = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special. Default is false.<br /> * '''monsteruse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the line special. Default is false.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the special to be activated multiple times. Default is false.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. Default is false.<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=714 Universal Wolfenstein Map Format 2016-03-09T01:52:24Z <p>DavidAramant: Fixed plane map description</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Required Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Required Properties ===<br /> * '''textureCeiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureFloor = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Required Properties ===<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> == Plane Maps ==<br /> A plane map defines a layer of map spots that create the layout of the level. There must be Width * Height map spots in each plane map. Map spots start at (0,0) and are assigned in row-major order.<br /> === Components ===<br /> '''{tile,sector,zone,tag}'''<br /> === Required Components ===<br /> *'''tile''' - The index of the [[#Tiles|tile]] to use to draw at this map spot. Use -1 for empty space.<br /> *'''sector''' - The index of the [[#Sectors|sector]] to use at this map spot. '''Note that walls surrounding the area the player can move around in should have a sector specified to avoid rendering errors.''' A value of -1 can be used for map spots in the &quot;void.&quot;<br /> *'''zone''' - The index of the [[#Zones|sound zone]] to use at this map spot. -1 can be used for areas in the &quot;void&quot; outside the playable map area.<br /> === Optional Components ===<br /> *'''tag''' - An optional tag to link this map spot to a [[#Triggers|trigger]] or other action. Used for doors, pushwalls, etc.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;// a 4x4 level<br /> planeMap<br /> {<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {-1,0,0},<br /> {-1,0,0},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1},<br /> {0,0,-1} // Note that the last entry does not have a trailing comma<br /> }&lt;/nowiki&gt;<br /> <br /> == Things ==<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Sets the ambush flag for the thing. Default is false.<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. Default is false.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. Default is false.<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing. In pixels.<br /> <br /> == Triggers ==<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> * '''activateeast = &lt;bool&gt;;'''<br /> * '''activatenorth = &lt;bool&gt;;'''<br /> * '''activatesouth = &lt;bool&gt;;'''<br /> * '''activatewest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. Default is true.<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. Default is 0.<br /> * '''playercross = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special by crossing the face. Default is false.<br /> * '''playeruse = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special. Default is false.<br /> * '''monsteruse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the line special. Default is false.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the special to be activated multiple times. Default is false.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. Default is false.<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=713 Universal Wolfenstein Map Format 2016-03-08T03:49:27Z <p>DavidAramant: Fixing casing</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''textureCeiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureFloor = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> == Plane Maps ==<br /> === Example ===<br /> === Properties ===<br /> <br /> == Things ==<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Sets the ambush flag for the thing. Default is false.<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. Default is false.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. Default is false.<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing. In pixels.<br /> <br /> == Triggers ==<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> * '''activateeast = &lt;bool&gt;;'''<br /> * '''activatenorth = &lt;bool&gt;;'''<br /> * '''activatesouth = &lt;bool&gt;;'''<br /> * '''activatewest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. Default is true.<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. Default is 0.<br /> * '''playercross = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special by crossing the face. Default is false.<br /> * '''playeruse = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special. Default is false.<br /> * '''monsteruse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the line special. Default is false.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the special to be activated multiple times. Default is false.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. Default is false.<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=712 Universal Wolfenstein Map Format 2016-03-08T03:48:31Z <p>DavidAramant: A couple more simple things and some more formatting changes</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Properties global for the map. Must be the first thing defined in a map.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Examples ===<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile. Sectors will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;sector<br /> {<br /> textureCeiling = &quot;#C0C0C0&quot;;<br /> textureFloor = &quot;#A0A0A0&quot;;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''textureceiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''texturefloor = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on the floor/ceiling of a tile. This can be the name of a texture or a hexadecimal color prefixed with a hash character.<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined. Zones will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;zone<br /> {<br /> }&lt;/nowiki&gt;<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format, a plane contains all information for one slice of the level's Z-axis. In other words, most levels have one plane. Each plane '''must''' have a corresponding [[#Plane Maps|Plane Map]] defined.<br /> <br /> === Example ===<br /> &lt;nowiki&gt;plane<br /> {<br /> depth = 64;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Properties ===<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> == Plane Maps ==<br /> === Example ===<br /> === Properties ===<br /> <br /> == Things ==<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Sets the ambush flag for the thing. Default is false.<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. Default is false.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. Default is false.<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing. In pixels.<br /> <br /> == Triggers ==<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> * '''activateeast = &lt;bool&gt;;'''<br /> * '''activatenorth = &lt;bool&gt;;'''<br /> * '''activatesouth = &lt;bool&gt;;'''<br /> * '''activatewest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. Default is true.<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. Default is 0.<br /> * '''playercross = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special by crossing the face. Default is false.<br /> * '''playeruse = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special. Default is false.<br /> * '''monsteruse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the line special. Default is false.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the special to be activated multiple times. Default is false.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. Default is false.<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Universal_Wolfenstein_Map_Format&diff=711 Universal Wolfenstein Map Format 2016-03-08T03:33:51Z <p>DavidAramant: Work in progress for re-formatting and expanding UWMF spec</p> <hr /> <div>The Universal Wolfenstein Map Format (UWMF) is a text based, extendable, specification for defining map structures. At the current time ECWolf is not a complete implementation of the specification.<br /> <br /> == Overview ==<br /> UWMF is loosely based on the textual map format for Doom known as [http://www.doomworld.com/eternity/engine/stuff/udmf11.txt Universal Doom Map Format (UDMF)]. The UDMF format should be referenced for the grammar rules.<br /> <br /> UWMF keeps the main concepts present in vanilla Wolf3D map editing. At its core, the format still supports the idea of planes of data which act as paintable canvases. The big difference is that textures are referenced by names instead of a global index, making maps much more portable than before. In the future editors will, however, likely hide most of the details in defining the palettes for textures, sectors, and sound zones (previously floor codes). Technically each individual wall side on a map tile could be given its own unique texture, if desired.<br /> <br /> One thing the format does away with is special floor codes. A secret exit is defined by assigning a secret exit trigger to a wall. &quot;Deaf&quot; enemies are defined by simply flagging them as such. The format also handles special triggers which are possible to assign uniquely to each side of a wall - for example, one way doors or pushwalls that can be activated only from a certain direction.<br /> <br /> Currently ECWolf does not implement the entirety of the new format, and no editor is directly capable of creating it. Maps can be created by using the export feature present in WDC and HWE. This is for two main reasons: whilst the format allows things to be placed independently on different walls of the grid, no editor is capable of providing this granularity; also, the format is designed assuming the possibility of stacking planes, a goal for ECWolf 2.x. Currently maps are limited to one plane (a plane in the new format is a Z layer).<br /> <br /> Note that ECWolf planes are a different concept from planes in vanilla Wolfenstein 3D. In the latter case the term 'plane' refers to the wall/floor layer or the object layer, whereas in ECWolf the term refers to a complete 2-d map layout including all objects and walls.<br /> <br /> In order to harness the full power of the ECWolf engine, this map format will need to be used. It is, however, not required as binary format maps can be [[Map translator|translated]] on the fly with some limitations.<br /> <br /> ==General Notes==<br /> * All coordinates are in tile units. (0,0) is at the top-left (north-west) corner of the map. (3,1) would be a tile in the fourth column, second row. Fractional units represent positions inside a tile.<br /> * UWMF properties are case-insensitive but are documented as camelCase for clarity.<br /> <br /> ==UWMF Sections==<br /> * [[#Global Properties|Global Properties]]<br /> * [[#Tiles|Tiles]]<br /> * [[#Sectors|Sectors]]<br /> * [[#Zones|Zones]]<br /> * [[#Planes|Planes]]<br /> * [[#PlaneMaps|Plane Maps]]<br /> * [[#Triggers|Triggers]]<br /> * [[#Things|Things]]<br /> <br /> == Global Properties ==<br /> Example:<br /> &lt;nowiki&gt;namespace = &quot;Wolf3D&quot;;<br /> name = &quot;Test Map&quot;;<br /> tileSize = 64;<br /> width = 64;<br /> height = 64;&lt;/nowiki&gt;<br /> === Required Global Properties ===<br /> * '''namespace = &quot;Wolf3D&quot;;'''<br /> :The namespace of the textures/actors/etc used by this map. Must be the first item in a map.<br /> * '''name = &quot;&lt;string&gt;&quot;;'''<br /> :The name of the map. This can be overridden in [[MAPINFO]].<br /> * '''tileSize = &lt;integer&gt;;'''<br /> :Sets the width, in pixels, of a standard map tile. A standard Wolf3D map uses 64.<br /> * '''width = &lt;integer&gt;;'''<br /> :Width of the map in tiles.<br /> * '''height = &lt;integer&gt;;'''<br /> :Height of the map in tiles.<br /> <br /> == Tiles ==<br /> Defines a set of textures and properties to use for the walls of a map tile. Tiles will automatically be assigned an index based on the order in which they are defined, starting with 0.<br /> <br /> Examples:<br /> &lt;nowiki&gt;tile<br /> {<br /> textureEast = &quot;GSTONEA2&quot;;<br /> textureNorth = &quot;GSTONEA1&quot;;<br /> textureWest = &quot;GSTONEA2&quot;;<br /> textureSouth = &quot;GSTONEA1&quot;;<br /> }<br /> // A door facing north-south<br /> tile<br /> {<br /> textureEast = &quot;SLOT1_1&quot;;<br /> textureNorth = &quot;DOOR1_1&quot;;<br /> textureWest = &quot;SLOT1_1&quot;;<br /> textureSouth = &quot;DOOR1_1&quot;;<br /> offsetHorizontal = true;<br /> }&lt;/nowiki&gt;<br /> <br /> === Required Tile Properties ===<br /> * '''textureEast = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureNorth = &quot;&lt;string&gt;&quot;:'''<br /> * '''textureSouth = &quot;&lt;string&gt;&quot;;'''<br /> * '''textureWest = &quot;&lt;string&gt;&quot;;'''<br /> :Sets the texture to use on each side of the tile. This can be the name of a texture, a hexadecimal color prefixed with a hash character, or &quot;-&quot; which indicates there is no texture for that side.<br /> <br /> === Optional Tile Properties ===<br /> * '''blockingEast = &lt;bool&gt;;'''<br /> * '''blockingNorth = &lt;bool&gt;;'''<br /> * '''blockingSouth = &lt;bool&gt;;'''<br /> * '''blockingWest = &lt;bool&gt;;'''<br /> :Sets the side of the tile as blocking. <br /> ::Default is '''true'''.<br /> *'''offsetVertical = &lt;bool&gt;;'''<br /> *'''offsetHorizontal = &lt;bool&gt;;'''<br /> :Whether to offset the two of the side by a half-tile (typically used for doors). Vertical = the sides facing east/west will be offset, Horizontal = the sides facing north/south will be offset.<br /> ::Default is '''false'''.<br /> * '''dontOverlay = &lt;bool&gt;;''' {{new}}<br /> :Prevents the tile from appearing on the overlay map. <br /> ::Default is '''false'''.<br /> * '''mapped = &lt;int&gt;;''' {{new}}<br /> :Sets if the tile should appear on the auto map even if the player hasn't seen it. The value must be greater than the [[MAPINFO/Skill_definition|skill]]'s MapFilter property in order to be seen. <br /> ::Default is undefined (tiles will only appear on map when the player has seen it).<br /> * '''soundSequence = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the [[SNDSEQ|sound sequence]] to use for events regarding this tile.<br /> ::Default is undefined (no sound sequence).<br /> * '''textureOverhead = &quot;&lt;string&gt;&quot;;''' {{new}}<br /> :Sets the texture to be used for the tile on the auto map.<br /> ::Default is undefined (the east texture will be used).<br /> <br /> <br /> == Sectors ==<br /> Defines the floor and ceiling texture for a tile.<br /> * '''textureceiling = &quot;&lt;string&gt;&quot;;'''<br /> * '''texturefloor = &quot;&lt;string&gt;&quot;;'''<br /> <br /> == Planes ==<br /> Defines a single plane of tiles. Unlike in the binary format a plane contains all information for one slice of the level's Z-axis. In other words most levels have one plane.<br /> * '''depth = &lt;integer&gt;;'''<br /> :Height of the plane in pixels.<br /> <br /> <br /> <br /> == Things ==<br /> * '''ambush = &lt;bool&gt;;'''<br /> :Sets the ambush flag for the thing. Default is false.<br /> * '''angle = &lt;integer&gt;;'''<br /> :Angle of the spawning point in degrees.<br /> * '''patrol = &lt;bool&gt;;'''<br /> :Spawns the thing as patrolling. Default is false.<br /> * '''skill1 = &lt;bool&gt;;'''<br /> * '''skill2 = &lt;bool&gt;;'''<br /> * '''skill3 = &lt;bool&gt;;'''<br /> * '''skill4 = &lt;bool&gt;;'''<br /> :Sets the skill levels in which the thing will spawn. Default is false.<br /> * '''type = &lt;integer&gt;;'''<br /> :Gives the editor number (as defined in [[DECORATE]]) of thing to spawn.<br /> * '''x = &lt;float&gt;;'''<br /> * '''y = &lt;float&gt;;'''<br /> * '''z = &lt;float&gt;;'''<br /> :Gives the coordinates of the spawning point of the thing. In pixels.<br /> <br /> == Triggers ==<br /> * '''action = &lt;integer&gt;;'''<br /> :Sets the [[Action specials|action special]] to execute for this trigger.<br /> * '''activateeast = &lt;bool&gt;;'''<br /> * '''activatenorth = &lt;bool&gt;;'''<br /> * '''activatesouth = &lt;bool&gt;;'''<br /> * '''activatewest = &lt;bool&gt;;'''<br /> :Sets the faces on which the trigger will activate. Default is true.<br /> * '''arg0 = &lt;integer&gt;;'''<br /> * '''arg1 = &lt;integer&gt;;'''<br /> * '''arg2 = &lt;integer&gt;;'''<br /> * '''arg3 = &lt;integer&gt;;'''<br /> * '''arg4 = &lt;integer&gt;;'''<br /> :Arguments to pass to the action. Default is 0.<br /> * '''playercross = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special by crossing the face. Default is false.<br /> * '''playeruse = &lt;bool&gt;;'''<br /> :Allows the player to activate the line special. Default is false.<br /> * '''monsteruse = &lt;bool&gt;;'''<br /> :Allows monsters to activate the line special. Default is false.<br /> * '''repeatable = &lt;bool&gt;;'''<br /> :Allows the special to be activated multiple times. Default is false.<br /> * '''secret = &lt;bool&gt;;'''<br /> :The trigger will count as a secret and will be tallied on first activation. Default is false.<br /> * '''x = &lt;integer&gt;;'''<br /> * '''y = &lt;integer&gt;;'''<br /> * '''z = &lt;integer&gt;;'''<br /> :Gives the coordinate of the map tile this trigger applies to.<br /> <br /> == Zones ==<br /> Zones are areas in which sound can travel through. There are no properties for zones at this time, but they must be defined.<br /> <br /> == See Also ==<br /> * [https://docs.google.com/document/d/1LaQ7WqtejfrPPm_vkCbZCFwiZoStjD6ZmWVFlGTmgCQ/edit?authkey=CO-mu7EJ Formal Specification]</div> DavidAramant https://maniacsvault.net/ecwolf/w/index.php?title=Action_specials&diff=710 Action specials 2016-03-08T02:49:39Z <p>DavidAramant: Reformatted a bit and specified arguments in a more readable fashion.</p> <hr /> <div>Action specials are function which are activated either by [[UWMF#Triggers]] or [[DECORATE]] actions.<br /> <br /> General notes:<br /> * '''Tags''' are arbitrary numbers used to link a trigger to the tile that executes it.<br /> * '''Speeds''' are represented in the number of pixels traveled per tic/16. ECWolf runs at 70 tics per second.<br /> * '''Directions''' are relative to the triggering side or absolute if the 8 is added. '''Note that diagonal movement is not supported yet'''<br /> ** 0 = right<br /> ** 1 = back right<br /> ** 2 = back<br /> ** 3 = back left<br /> ** 4 = left<br /> ** 5 = towards left<br /> ** 6 = towards<br /> ** 7 = towards right<br /> ** 8 = east<br /> ** 9 = northeast<br /> ** 10 = north<br /> ** 11 = northwest<br /> ** 12 = west<br /> ** 13 = southwest<br /> ** 14 = south<br /> ** 15 = southwest<br /> <br /> == List of Action specials ==<br /> * 1:'''Door_Open'''(tag, speed, delay, lock, type)<br /> :Activates a map tile as a sliding door.<br /> ::'''tag''' - The tag of the map tile which houses the door. <br /> ::'''speed''' - Typical speed for a Wolf3D door is 16. <br /> ::'''delay''' - Tics until the door closes. 300 is normal for a Wolf3D door. -1 means the door will stay open until manually closed.<br /> ::'''lock''' - Lock specifies what keys are needed according to [[LOCKDEFS]]. 0 = None, 1 = Gold, 2 = Silver, 101 = Gold + Silver<br /> ::'''type''' - Whether the door is facing east-west (0) or north-south (1).<br /> * 2:'''Pushwall_Move'''(tag, speed, direction, distance)<br /> :Moves the pushwall in the trigger's tile. <br /> ::'''tag''' - The tag of the map tile.<br /> ::'''speed''' - Typical speed for a Wolf3D pushwall is 8.<br /> ::'''direction''' - The direction to move. See the general notes about how directions are specified.<br /> ::'''distance''' - The distance in tiles to move. A value of 0 means the map tile will move until it is blocked by something.<br /> * 3:'''Exit_Normal'''(pos)<br /> :Exits the level using the standard exit. <br /> ::'''pos''' - reserved and should be 0.<br /> * 4:'''Exit_Secret'''(pos)<br /> :Exits the level using the secret exit.<br /> ::'''pos''' - reserved and should be 0.<br /> * 5:'''Teleport_NewMap'''(map, pos, flags)<br /> :Exits and travels to the specified map by levelnum.<br /> ::'''map''' - The levelnum to travel to.<br /> ::'''pos''' - reserved and should be 0.<br /> ::'''flags''' - 1 = Keep direction, 2 = Keep position<br /> * 6:'''Exit_VictorySpin'''()<br /> :Standard exit but does a BJ jump sequence. Normally activated by a pickup. This sequence is partially handled by the {{Class|BJRun}} actor which is spawned.<br /> * 7:'''Exit_Victory'''(pos)<br /> :Exits the level using the victory exit.<br /> ::'''pos''' - reserved and should be 0.<br /> * 8:'''Trigger_Execute'''(x, y, z)<br /> :Executes all triggers on a given map spot. Useful for activating something on monster death or having multiple switches do the same thing.<br /> ::'''x''' - The X coordinate of the tile.<br /> ::'''y''' - The Y coordinate of the tile.<br /> ::'''z''' - The Z coordinate of the tile.<br /> * 9:'''StartConversation'''(tid, facetalker) {{new}}<br /> :This is an experimental function for starting a [[USDF]] dialog. Not very useful with current implementation. Documented here for completeness.<br /> * 10:'''Door_Elevator'''(switchtag, speed, delay, lock, type) {{new}}<br /> :Similar to Door_Open in every manner except that the tag should point to the elevator switch.<br /> * 11:'''Elevator_SwitchFloor'''(elevtag, doortag, callspeed, nexttag) {{new}}<br /> {{Note|Elevator support is somewhat experimental and may be missing a few features. Changes may occur in order to improve compatibility with Rise of the Triad.}}<br /> :Triggers the elevator movement. Things in the elevator are moved relative to the switch and the door.<br /> ::'''elevtag''' - Should the tag of the first switch in the sequence.<br /> ::'''doortag''' - The point to the door for this stop.<br /> ::'''callspeed''' - The time is takes for the elevator to move to or from this floor.<br /> ::'''nexttag''' - The point in the next switch in the sequence.</div> DavidAramant